StartTLS란 무엇입니까?
게시 됨: 2020-03-21이메일이 한 서버에서 다른 서버로 어떻게 안전하게 전송되는지 궁금하십니까? SMTP(Simple Mail Transfer Protocol)를 사용하여 메일을 보낼 때 StartTLS와 TLS(전송 계층 보안) 또는 SSL(Secure Sockets Layer)의 조합을 사용하여 메일을 암호화하고 받은 편지함에 안전하게 도착할 수 있습니다.
그러나 StartTLS는 무엇입니까?
StartTLS는 이메일 클라이언트가 TLS 또는 SSL을 사용하여 비보안 연결에서 보안 연결로 업그레이드하기를 원한다는 것을 이메일 서버에 알리는 데 사용되는 프로토콜 명령입니다. StartTLS는 SMTP 및 IMAP과 함께 사용되는 반면 POP3는 암호화에 약간 다른 명령인 STLS를 사용합니다.
TLS와 SSL의 차이점, StartTLS 프로세스, 프로그램에 대해 StartTLS를 테스트하는 방법을 알아보겠습니다.
StartTLS는 어떻게 작동합니까?
TLS 대 SSL
"TLS"가 이름에 있지만 StartTLS는 암호화 프로토콜인 TLS 및 SSL과 함께 작동합니다.
StartTLS는 두 프로토콜 모두에서 작동하지만 SSL을 통한 TLS를 사용하는 것이 좋습니다. SSL은 이전 프로토콜이며 후속 프로토콜인 TLS만큼 안전하지 않습니다. SSLv2 및 SSLv3은 모두 더 이상 사용되지 않습니다.
참고로 SSL 및 TLS 프로토콜 목록은 가장 오래된 것부터 최신 순으로 나열되어 있습니다.
SSLv2, SSLv3, TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3
이메일 클라이언트와 이메일 서버 모두 사용할 연결에 동의해야 합니다. 이메일 클라이언트는 TLSv1.3을 지원할 수 있지만 이메일 서버는 TLSv1.2까지만 지원할 수 있습니다. 즉, 암호화를 진행하려면 양 당사자가 TLSv1.2를 사용해야 합니다.
TLS와 SSL에 대한 자세한 내용은 문서 페이지 를 확인하십시오 .
StartTLS 프로세스
SMTP는 항상 암호화되지 않은 상태로 시작됩니다. StartTLS 명령은 서버와 클라이언트 간의 협상을 시작합니다. 다음은 이메일 클라이언트와 이메일 서버 사이에서 발생하는 통신의 개요입니다.
- 이 프로세스는 이메일 클라이언트와 서버가 서로를 식별하는 데 도움이 되는 TCP(Transmission Control Protocol) 핸드셰이크로 시작됩니다.
- 서버는 이메일 클라이언트가 통신을 진행할 수 있음을 220 Ready로 식별합니다.
- 클라이언트는 확장 SMTP(이미지, 첨부 파일 등을 포함할 수 있는 고급 버전의 SMTP)를 사용할 것임을 서버에 알리기 위해 "EHLO" 서버를 보냅니다.
- 클라이언트는 메일 서버에 "250-STARTTLS"를 전송하여 StartTLS가 허용되는지 여부를 묻습니다.
- 서버가 "go head"를 되돌려 보내면 StartTLS 연결이 생성될 수 있습니다.
- 클라이언트가 연결을 다시 시작하고 이메일 메시지가 암호화되었습니다.
다음은 StartTLS 프로세스를 시각적으로 나타낸 것입니다.
어떤 포트를 사용해야 합니까?
StartTLS를 가장 자주 사용하는 포트는 포트 587입니다. 이메일 클라이언트가 StartTLS를 사용하여 메일을 보내야 하는 경우가 많습니다. 암호화된 메일을 보내는 데 사용되는 다른 포트는 25, 465 및 2525입니다. 포트 25는 제출이 아닌 메일 전송을 위해 설계되었으므로 ISP가 이 포트를 통해 보내는 이메일을 차단할 수 있습니다. 포트 465는 StartTLS에 두 번째로 가장 일반적으로 사용되는 포트입니다.
기회주의적 vs. 강제 TLS
Opportunistic TLS 또는 Enforced TLS를 사용하여 이메일 암호화 프로그램을 설정하는 몇 가지 다른 방법이 있습니다.
기회적 TLS (또는 명시적 TLS)를 사용하면 이메일 클라이언트가 수신자 서버가 허용하는 가장 높은 암호화 수준으로 전달할 수 있습니다. 수신자 서버가 TLS를 허용하지 않는 경우 이메일 클라이언트는 서버와 협상하고 암호화되지 않은 연결로 다운그레이드하는 데 동의합니다. 그러면 메시지가 암호화되지 않은 일반 텍스트 형식으로 전송됩니다. 이 방법은 암호화된 메일과 일반 텍스트 메일 모두에 동일한 포트를 사용할 수 있기 때문에 유용합니다.
강제 TLS (또는 암시적 TLS)를 사용하려면 보안 연결을 통해 메일을 보내야 합니다. 연결이 암호화되지 않은 경우 메일 전송이 차단됩니다. 이 방법은 Opportunistic TLS보다 훨씬 더 안전하지만 더 많은 메일이 삭제됩니다.
두 가지 접근 방식 모두 이메일 세계에서 널리 사용되므로 프로그램에 가장 적합한 방법을 고려하십시오. 민감한 개인 정보가 포함된 이메일을 보내는 경우 Enforced TLS를 사용하는 것이 가장 좋습니다. 반면에 마케팅이나 프로모션과 같이 민감하지 않은 자료를 보내는 경우 Opportunistic TLS를 사용하는 경향이 더 커질 수 있습니다.
기타 TLS 사용 사례
TLS는 이메일 외부의 다양한 통신 방법을 암호화하는 데 자주 사용됩니다. TLS는 비교적 간단한 다단계 프로토콜이므로 다양한 통신 유형에 맞게 쉽게 조정할 수 있습니다. 여기에는 웹 브라우저, SMS 및 VoIP(Voice over IP)가 포함됩니다. 사실, 대부분의 통신이 민감한 자료가 아니더라도 많은 회사에서 TLS를 사용하여 웹 서버와 브라우저 간의 모든 통신을 암호화합니다.
Twilio에서 TLS를 사용하는 방법에 대한 자세한 내용은 Twilio의 보안 페이지 를 확인하십시오 .
StartTLS가 왜 중요한가요?
SMTP는 기본적으로 보안되지 않습니다. 즉, StartTLS 없이 SMTP를 통해 이메일을 보내면 이메일이 가로채어 쉽게 해석될 수 있습니다. 이는 사용자 이름, 비밀번호 또는 은행 정보와 같은 민감한 개인 정보를 보낼 때 특히 걱정스럽습니다.
StartTLS가 없으면 개인 정보가 도난당할 위험이 있습니다.
이메일 클라이언트가 StartTLS를 사용하는 경우 콘텐츠를 암호화해야 한다고 서버에 알립니다. 이렇게 하면 메일이 가로채는 경우 내용이 뒤섞여 해독하기가 매우 어렵습니다. 이메일 서버와 이메일 클라이언트는 메시지를 해독하기 위한 키를 보유하고 있는 유일한 것입니다.
단점
StartTLS를 사용하는 데에는 몇 가지 단점이 있습니다. 이메일 클라이언트는 이메일 클라이언트와 서버 간의 초기 연결에서 IP 주소가 암호화되지 않기 때문에 메시지 가로채기(man-in-the-middle) 공격에 취약합니다.
StartTLS를 사용하면 SMTP 연결에 약간의 대기 시간이 추가될 수도 있습니다. 이것은 암호화되지 않은 이메일을 보내야 할 만큼 지연이 되지는 않지만 명심하는 것이 좋습니다.
어떻게 StartTLS를 테스트합니까?
서버가 StartTLS를 처리할 수 있는지 미리 테스트하는 것이 중요합니다. StartTLS를 처리할 수 없는 경우 암호화되지 않아 공격 벡터에 취약한 상당한 양의 이메일을 실수로 보낼 수 있습니다.
다음은 SendGrid의 SMTP 서버에서 StartTLS를 테스트하는 방법의 예입니다.
Twilio SendGrid는 StartTLS를 어떻게 사용합니까?
Twilio SendGrid는 TLS v1.1 이상을 지원합니다. 암호화되지 않은 TLS 연결은 포트 25, 587 및 2525에서 허용됩니다. 또는 포트 465에서 SSL을 통해 연결할 수 있습니다.
우리는 Opportunistic TLS 를 따르고 수신자 서버가 허용하는 가장 높은 암호화 수준으로 전송합니다. 또한 Enforced TLS 를 제공합니다 . 암호화된 연결을 통해 이메일을 보내야 하는지 여부는 사용자의 선택입니다. 수신자 서버가 암호화된 메시지를 수락하지 않으면 메시지가 삭제되고 차단 이벤트가 전송됩니다.
Twilio SendGrid에 대한 SMTP 요청을 시작할 때 주로 StartTLS와 상호 작용하여 메일을 보내도록 요청합니다. 그렇지 않으면 Twilio SendGrid가 TLS 인증서의 일치, 나머지 암호화 프로세스 및 그 과정에서 발생할 수 있는 모든 문제를 처리합니다.
Twilio SendGrid 및 SMTP에 대한 자세한 내용은 문서 문서 SMTP 이메일을 보내는 방법을 참조하십시오 .