대답은 "안전한"의 의미에 어느 정도 달려 있습니다.
먼저 요약에서 SSL / TLS와 STARTTLS의 차이점을 파악하지 못합니다.
- SSL / TLS를 사용하면 클라이언트는 사용하려는 응용 프로그램 프로토콜에 할당 된 "SSL 포트"에 대한 TCP 연결을 열고 즉시 TLS 말하기를 시작합니다.
- STARTTLS를 사용하면 클라이언트는 사용하려는 응용 프로그램 프로토콜과 관련된 "일반 텍스트 포트"에 대한 TCP 연결을 연 다음 서버에 "어떤 프로토콜 확장을 지원합니까?" 그런 다음 서버는 확장명 목록으로 응답합니다. 이러한 확장 중 하나가 "STARTTLS"인 경우 클라이언트는 "알겠습니다. TLS를 사용하겠습니다"라고 말하고 두 개는 TLS를 말하기 시작합니다.
클라이언트가 TLS를 요구하도록 구성된 경우, 두 가지 접근 방식은 다소 안전합니다. 그러나 안전을 위해 STARTTLS를 어떻게 사용해야하는지에 대한 미묘한 점이 있으며 STARTTLS 구현에서 이러한 세부 정보를 올바르게 얻는 것이 조금 더 어렵습니다.
반면에 클라이언트가 TLS를 사용할 수있는 경우에만 TLS를 사용하도록 구성되고 TLS를 사용할 수없는 경우 일반 텍스트를 사용하는 경우 클라이언트가 먼저 수행 할 수있는 작업은 프로토콜이 사용하는 SSL 포트에 연결을 시도하는 것입니다. 실패한 다음 일반 텍스트 포트에 연결하고 STARTTLS를 사용 해보고 TLS를 사용할 수없는 경우 일반 텍스트로 돌아갑니다. 공격자가 SSL 포트 연결을 실패시키는 것은 상당히 쉽습니다 (시간이 걸리는 TCP RST 패킷 또는 SSL 포트 차단 만 있으면됩니다). 공격자가 STARTTLS 협상을 물리 치고 트래픽을 일반 텍스트로 유지하는 것은 조금 어렵지만 조금만 어렵습니다. 그런 다음 공격자는 전자 메일을 읽을뿐만 아니라 나중에 사용할 수 있도록 사용자 이름 / 암호를 캡처합니다.
따라서 간단한 대답은 이미 이메일을 보내거나 읽을 때와 같이 TLS를 지원하는 서버에 연결하는 경우 SSL / TLS를 사용해야한다는 것입니다. 연결이 공격을 받으면 연결 시도는 실패하지만 암호와 이메일은 손상되지 않습니다.
반면, TLS를 지원하는지 여부를 모르는 일부 서비스에 연결하는 경우 STARTTLS가 약간 더 나을 수 있습니다.
STARTTLS가 발명되었을 때, "수동적"청취 전용 공격은 매우 일반적이며 공격자가 보안을 낮추기 위해 트래픽을 주입하는 "활성"공격은 덜 일반적이었습니다. 그 이후로 20여 년 동안 활발한 공격이 더욱 실현 가능해졌으며보다 일반적이되었습니다.
예를 들어, 공항이나 다른 공공 장소에서 랩톱을 사용하려고 시도하고 제공된 Wi-Fi를 통해 메일을 읽으려고 시도하는 경우 해당 Wi-Fi 네트워크가 트래픽에 어떤 영향을 미치는지 알 수 없습니다. Wi-Fi 네트워크가 특정 종류의 트래픽을 "프록시"로 라우팅하여 클라이언트 응용 프로그램과 통신하려는 서버 사이에 자신을 배치하는 것이 일반적입니다. 이러한 프록시가 클라이언트가 일반 텍스트로 돌아가도록 시도하기 위해 STARTTLS를 비활성화하고 "한 포트를 다른 포트로 시도"하는 것은 쉽지 않습니다. 예, 이런 일이 발생하며 이는 네트워크에서 트래픽을 감시하는 방법의 한 예일뿐입니다. 그리고 그러한 공격은 3 글자 국가 지원 기관으로 제한되지 않습니다.