TLS/SSL
▶아키텍처 다이어그램
점선 애니메이션은 데이터 또는 요청의 흐름 방향을 나타냅니다
카페 와이파이에서 로그인하면 같은 네트워크의 누군가가 패킷을 캡처해 아이디와 비밀번호를 볼 수 있습니다. 심지어 통신 내용이 실제로 원하는 서버에서 왔는지도 확인할 방법이 없습니다. 데이터 도청과 서버 위장을 동시에 막으려면 암호화와 신원 검증이 모두 필요합니다.
TLS 핸드셰이크는 서버가 인증서를 보내면 클라이언트가 신뢰할 수 있는 CA(Certificate Authority)가 서명했는지 검증하고, 공개키 암호화로 대칭키를 교환합니다. 이후 모든 통신은 그 대칭키로 암호화되어 중간에서 가로채도 내용을 알 수 없습니다. 데이터마다 MAC(Message Authentication Code)을 붙여 변조도 탐지합니다.
TLS와 VPN은 둘 다 암호화 통신이지만 범위가 다릅니다. TLS는 특정 애플리케이션의 개별 연결을 암호화하고, VPN은 네트워크 레벨에서 모든 트래픽이 통과하는 터널을 만듭니다. 웹 서비스 보안에는 TLS, 사내 네트워크 전체 연결에는 VPN이 적합합니다.
1990년대 전자상거래가 시작되면서 신용카드 정보를 인터넷에서 안전하게 전송할 방법이 필요했습니다. Netscape가 SSL을 만들었고, 이후 보안 취약점이 발견될 때마다 개선을 거쳐 현재의 TLS 1.3까지 발전했습니다. 지금은 모든 웹사이트에서 기본으로 사용됩니다.
HTTPS 웹사이트, API 서버 간 통신, 이메일, 데이터베이스 연결 등 데이터 보안이 필요한 모든 통신에 씁니다. 내부 네트워크라도 제로 트러스트 원칙을 따른다면 TLS를 생략하지 않는 것이 좋습니다. 인증서 만료를 놓치면 서비스가 중단될 수 있으므로 자동 갱신(Let's Encrypt, AWS ACM 등)을 설정하는 것이 중요합니다.