SMTP 클라이언트는 명시 적 또는 암시 적 SSL을 사용할지 여부를 결정하는 방법

StackOverflow https://stackoverflow.com/questions/803899

  •  03-07-2019
  •  | 
  •  

문제

SSL/TLS를 지원하는 대부분의 메일 클라이언트는 사용자에게 SSL이 활성화되어야하는지 여부를 말해야합니다. 사용자는 명시 적 및 암시 적 SSL과 차이점에 대해 아무것도 알 필요가 없습니다.

그렇다면 메일 클라이언트가 사용할 SSL 유형을 어떻게 결정합니까? 기본 포트 번호를 기반으로합니까? 하나만 시도하고 다른 하나를 시도합니까?

도움이 되었습니까?

해결책

메일 클라이언트는 SSL 핸드 셰이크를 ClientHello 메시지. 이것이 고객에게 달려 있다고 결정하는 방법. 포트 번호는 큰 힌트이지만 일부 UI에는 표준 (보호되지 않은) 포트 번호가 사용될 때에도 강제로 확인 된 확인란이있을 수 있습니다.

보안 메일 용 IANA 등록 포트 번호가 있지만 일부 ISP는 다른 포트를 사용할 수 있습니다.

  • IMAP/SSL : 993
  • POP3/SSL : 995

SMTP/SSL은 종종 포트 465에서 제공되지만 등록되지 않았으며 명시 적 SSL에 대한 지원이 SMTP 에이전트에 의해 널리 지원되기 때문에 덜 일반적입니다.

명시 적 SSL에 대한 지원은 프로토콜 별 협상을 사용하여 서버에서 광고 할 수 있습니다. 예를 들어, 클라이언트가 SMTP 서버에 연결하고 EHLO 명령을 발행하면 서버는 STARTTLS 명령에 대한 지원이 포함될 수있는 기능을 나열합니다.

다른 팁

포트 465는 상업용 메일 서버에서 매우 일반적이며 매우 자주 사용됩니다. 대부분은 종종 암시 적 SSL에 사용됩니다. 이 포트에 텔넷을 텔넷에 올리면 메일 서버와 통신하기 전에 먼저 SSL 연결을 설정해야하므로 시간 초과가 발생합니다. 따라서 타임 아웃은 암시 적 SSL 연결이있는 첫 번째 단서 일 수 있습니다. SSL 연결 이외의 연결이 허용되지 않으므로 EHLO를 사용하여 결과를 반환 할 수 없습니다. 그리고 당신은 단순히 암시 적 SSL을 실행하는 SMTP 서버에 연결하지 않으면 응답하지 않으며 연결을 삭제합니다. 그것이해야 할 일입니다. 명시 적 SSL은 먼저 연결을 허용 한 다음 SSL을 설정합니다. 그리고 네, 암시 적 SSL은 자주 사용됩니다. 단점은 RFC 표준이 어떻게 구현되는지에 대해 구체적이지 않기 때문에 다른 개발자는 일부가 감가 상각 된 것으로 간주 되더라도 다양한 개발자가 다양한 방식으로 설정합니다.

SSL을 통해 SMTP를 지원하는 대부분의 고객은 암호화되지 않은 연결로 시작하여 Helo가 아닌 EHLO를 발행한다고 생각합니다. 전자는 추가 플래그 응답이 있으며 그 중 하나는 서버가 STARTTLS 명령을 지원하는지 여부를 나타냅니다. 그렇다면 클라이언트는 starttls를 사용한 다음 해당 시점에서 SSL을 사용할 수 있습니다.

예시:

% telnet quack.kfu.com 25
220 quack.kfu.com ESMTP ready NO UCE
EHLO client
250-quack.kfu.com Hello client [xx.xx.xx.xx] (may be forged), pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE 25000000
250-ETRN
250-AUTH PLAIN LOGIN
250-STARTTLS
250-DELIVERBY
250 HELP
starttls
220 2.0.0 Ready to start TLS
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top