
오늘은 웹 통신의 핵심 보안 기술인 '암호화'에 대해 이야기해 보려 한다.
특히, 대칭키(Symmetric Key) 와 비대칭키(Asymmetric Key) 암호화 방식의 개념을 명확히 이해하고, HTTP와 HTTPS에 어떻게 적용되어 웹을 안전하게 만드는지 알아보려 한다.
암호화, 왜 필요한 걸까?
- 웹에서 데이터를 주고받을 때(예: 로그인 정보, 결제 정보), 이 데이터가 누군가에게 탈취된다면 심각한 문제가 발생한다.
- HTTP 는 데이터를 암호화하지 않은 평문 그대로 전송한다. 따라서 중간에서 데이터를 가로채면 내용이 그대로 노출된다.
- 이 취약점을 해결하기 위해 등장한 것이 바로 보안 계층을 추가한 HTTPS(HyperText Transfer Protocol Secure) 이다.
- HTTPS는 통신에 암호화를 적용하여 제3자가 데이터를 엿보거나 위변조하는 것을 막는다. 이때 사용되는 핵심 기술이 바로 대칭키와 비대칭키 암호화이다.
대칭키 암호화
- 하나의 키를 사용하여 암호화와 복호화를 모두 수행하는 방식이다.
- 암호화에 사용한 키와 복호화에 사용한 키가 같다는 의미에서 '대칭'이라는 이름이 붙었다.
- 대표적인 알고리즘: AES, DES, SEED 등
특징 및 장단점
- 속도 : 매우 빠름, 알고리즘이 단순하여 대용량 데이터 암호화에 유리.
- 키 관리 : 어렵다. 송신자와 수신자가 안전하게 키를 공유해야 한다. 키가 노출되면 데이터 보안이 무너진다.
- 보안성 : 키 공유 과정에서 키 탈취 위험이 있다.
키 공유의 어려움
- 대칭키는 속도가 빠르지만, 통신을 시작하기 전에 이 '비밀 키'를 상대방에게 안전하게 전달해야 하는 문제가 발생한다.
- 이 키를 안전하지 않은 채널(예: HTTP)로 보내면, 암호화 자체가 무의미해진다.
- 이 문제를 해결하기 위해 비대칭키 암호화가 필요하다.
비대칭키 암호화 (공개키 암호화)
- 서로 다른 두 개의 키, 즉 공개키(Public Key) 와 개인키(Private Key) 한 쌍을 사용하는 방식
- 한 쌍의 키 중 하나로 암호화하면, 나머지 하나로만 복호화할 수 있다.
- 공개키는 누구나 알 수 있도록 공개하며, 개인키는 소유자만이 비밀리에 보관한다.
- 대표적인 알고리즘: RSA, ECC 등
특징 및 장단점
- 속도 : 매우 느리다. 알고리즘이 복잡하여 대용량 데이터 암호화에는 비효율적
- 키 관리 : 용이하다. 공개키는 누구나 가질 수 있고, 개인키만 안전하게 보관하면 된다.
- 보안성 : 공개키로 암호화해도 개인키 없이는 복호화할 수 없어 보안성이 높다.
키의 역할 분리
- 비대칭키는 느리지만, 키를 공개해도 안전하다는 장점이 있다.
- 주로 데이터를 암호화하기보다는 상대방의 신원을 인증하거나 대칭키를 안전하게 교환하는 용도로 사용된다.
HTTPS, 두 암호화 방식의 '하이브리드' 사용
대칭키와 비대칭키 암호화는 각각의 장단점을 보완하며, HTTPS라는 안전한 통신 환경을 구축하는 핵심 기술이다.
단 하나의 완벽한 방식보다는, 여러 기술을 조합하여 최적의 효율과 보안성을 달성하는 방향으로 발전하고 있다고 볼 수 있다.