기술 · 출처 기반 답변

SMTPS 암시적 TLS(Implicit TLS)란?

SMTPS 암시적 TLS는 연결 즉시 TLS 핸드셰이크가 이루어지는 SMTP 통신 보안 방식입니다. 평문 세션으로 시작하는 STARTTLS와 달리, SMTPS는 SMTP 명령을 주고받기 전에 연결이 먼저 암호화되어야 합니다.

동작 원리

암시적 TLS 연결에서는 클라이언트가 보통 포트 465에서 서버에 TCP 연결을 맺습니다. 서버는 즉시 TLS 핸드셰이크를 기대합니다. 핸드셰이크가 실패하거나 클라이언트가 평문을 보내려고 하면 서버는 연결을 끊습니다. 따라서 인증 자격 증명이나 이메일 내용 같은 민감한 데이터가 평문으로 전송되는 일이 없습니다.

STARTTLS와의 비교

STARTTLS는 명시적 TLS로, 세션이 포트 587이나 25에서 평문으로 시작됩니다. 클라이언트가 STARTTLS 명령을 보내 연결을 암호화로 업그레이드합니다. SMTPS 암시적 TLS는 이 업그레이드 단계를 없애, 중간자가 STARTTLS 명령을 제거해 세션을 평문으로 강제하는 다운그레이드 공격의 위험을 없애 줍니다.

발신자에게 중요한 이유

암시적 TLS를 사용하면 트랜잭션 메일에 더 강력한 보안을 보장할 수 있습니다. 실수로 평문이 유출되는 것을 막고, 암호화를 통신의 전제 조건으로 만들어 클라이언트 설정도 단순해집니다. 개발자는 SendHQ 무료 도구로 전반적인 이메일 설정을 확인하고, 인프라가 최신 보안 표준에 맞는지 점검할 수 있습니다.

운영 참고 사항

많은 레거시 시스템은 여전히 포트 25 또는 587에 의존합니다. SMTPS를 설정할 때는 클라이언트 라이브러리가 STARTTLS가 아니라 SSL 또는 TLS 모드를 사용하도록 명시적으로 설정되어 있는지 확인하세요. 포트 465에서 STARTTLS를 사용하도록 클라이언트를 잘못 설정하면, 서버는 TLS 핸드셰이크를 기다리는데 클라이언트는 평문을 보내기 때문에 타임아웃이나 연결 재설정(connection reset)이 발생합니다.

구현 예시

일반적인 구현에서는 SMTP 클라이언트가 SSL/TLS 플래그를 활성화한 채 포트 465로 smtp.example.com에 연결하도록 설정합니다. 클라이언트는 TCP 소켓을 열고 TLS 핸드셰이크를 수행한 뒤에야 EHLO 명령을 보내 메일 전송 절차를 시작합니다.

팀에서 자주 묻는 질문

SMTPS 암시적 TLS는 어떤 포트를 사용하나요?

SMTPS 암시적 TLS의 표준 포트는 IANA에 등록되어 있고 안전한 제출을 위해 최신 RFC에서 권장하는 465입니다.

SMTPS는 STARTTLS와 다른가요?

네. SMTPS는 암시적 방식이라 암호화가 즉시 시작됩니다. STARTTLS는 명시적 방식으로 평문으로 시작해 명령을 통해 암호화로 업그레이드합니다.

명시적 TLS 대신 암시적 TLS를 선택해야 하는 이유는 무엇인가요?

암시적 TLS는 안전한 암호화 터널이 먼저 구축되지 않으면 통신을 거부하므로 다운그레이드 공격에 더 안전합니다.

1차 출처