Câu trả lời phụ thuộc vào một mức độ nào đó về ý nghĩa của "an toàn".
Đầu tiên, tóm tắt của bạn không nắm bắt được sự khác biệt giữa SSL / TLS và STARTTLS.
- Với SSL / TLS, máy khách sẽ mở kết nối TCP tới "cổng SSL" được gán cho giao thức ứng dụng mà nó muốn sử dụng và bắt đầu nói TLS ngay lập tức.
- Với STARTTLS, máy khách sẽ mở kết nối TCP tới "cổng Cleartext" được liên kết với giao thức ứng dụng mà nó muốn sử dụng, sau đó hỏi máy chủ "bạn có hỗ trợ giao thức nào?". Sau đó, máy chủ trả lời với một danh sách các phần mở rộng. Nếu một trong những tiện ích mở rộng đó là "STARTTLS", thì máy khách có thể nói "được, hãy sử dụng TLS" và hai bắt đầu nói TLS.
Nếu máy khách được cấu hình để yêu cầu TLS, hai cách tiếp cận ít nhiều an toàn như nhau. Nhưng có một số sự tinh tế về cách STARTTLS phải được sử dụng để làm cho nó an toàn và việc triển khai STARTTLS khó hơn một chút để có được những chi tiết đó đúng.
Mặt khác, nếu máy khách được cấu hình để chỉ sử dụng TLS khi TLS khả dụng và sử dụng Cleartext khi TLS không khả dụng, trước tiên khách hàng có thể làm gì để thử kết nối với cổng SSL được sử dụng bởi giao thức và nếu điều đó không thành công, sau đó kết nối với cổng Cleartext và thử sử dụng STARTTLS, và cuối cùng quay lại Cleartext nếu TLS không khả dụng trong cả hai trường hợp. Kẻ tấn công khá dễ dàng khiến kết nối cổng SSL bị lỗi (tất cả chỉ là một số gói TCP RST được định thời gian tốt hoặc chặn cổng SSL). Khó hơn một chút - nhưng chỉ một chút thôi - để kẻ tấn công đánh bại cuộc đàm phán STARTTLS và khiến lưu lượng truy cập ở trạng thái rõ ràng. Và sau đó, kẻ tấn công không chỉ được đọc email của bạn mà còn có thể chiếm được tên người dùng / mật khẩu của bạn để sử dụng trong tương lai.
Vì vậy, câu trả lời đơn giản là nếu bạn đang kết nối với máy chủ mà bạn đã biết hỗ trợ TLS (như trường hợp bạn đang gửi hoặc đọc email), bạn nên sử dụng SSL / TLS. Nếu kết nối bị tấn công, nỗ lực kết nối sẽ thất bại, nhưng mật khẩu và email của bạn sẽ không bị xâm phạm.
Mặt khác, nếu bạn đang kết nối với một số dịch vụ mà bạn không biết liệu nó có hỗ trợ TLS hay không, STARTTLS có thể tốt hơn một chút.
Khi STARTTLS được phát minh, các cuộc tấn công chỉ nghe "thụ động" là rất phổ biến, các cuộc tấn công "chủ động" trong đó kẻ tấn công sẽ tiêm lưu lượng để cố gắng bảo mật thấp hơn là ít phổ biến hơn. Trong khoảng 20 năm kể từ đó, các cuộc tấn công tích cực đã trở nên khả thi và phổ biến hơn.
Ví dụ: nếu bạn đang cố gắng sử dụng máy tính xách tay trong sân bay hoặc một nơi công cộng khác và cố gắng đọc thư của bạn qua wifi được cung cấp ở đó, bạn không biết mạng wifi đó đang làm gì với lưu lượng truy cập của mình. Rất phổ biến đối với các mạng wifi để định tuyến một số loại lưu lượng truy cập nhất định đến "proxy" xen kẽ giữa các ứng dụng khách của bạn và các máy chủ mà chúng đang cố gắng nói chuyện. Việc các proxy đó vô hiệu hóa cả STARTTLS và "thử một cổng rồi đến cổng khác" là một nỗ lực để khiến khách hàng của bạn quay trở lại với văn bản rõ ràng. Vâng, điều này xảy ra và đó chỉ là một ví dụ về cách lưu lượng truy cập của bạn có thể được theo dõi bởi một mạng. Và các cuộc tấn công như vậy không giới hạn ở các cơ quan ba nhà nước hỗ trợ,