często pojawia się nieporozumienie dotyczące różnych terminów: SSL, TLS, STARTTLS i STLS.

SSL i TLS

SSL i TLS są protokołami kryptograficznymi, oba zapewniają sposób szyfrowania kanału komunikacji między dwoma maszynami przez Internet (np. komputer kliencki i serwer). SSL oznacza Secure Sockets Layer, a aktualna wersja to 3.0. TLS oznacza Transport Layer Security, a aktualna wersja to 1.2. TLS jest następcą SSL., Terminy SSL i TLS mogą być używane zamiennie, chyba że chodzi o konkretną wersję protokołu.

numeracja wersji jest niespójna między SSL i TLSs. Kiedy TLS przejął SSL jako preferowaną nazwę protokołu, zaczęło się od nowego numeru wersji. Kolejność protokołów od najstarszych do najnowszych to: SSLv2, SSLv3, TLSv1.0, TLSv1.1, TLSv1.2.

STARTTLS i STLS

STARTTLS to polecenie protokołu wydawane przez klienta poczty elektronicznej. Oznacza to, że klient chce uaktualnić istniejące, niebezpieczne połączenie do bezpiecznego połączenia przy użyciu protokołu kryptograficznego SSL / TLS., Nazwa polecenia STARTTLS jest używana przez protokoły SMTP i IMAP, podczas gdy protokół POP3 używa STLS jako nazwy polecenia.

pomimo posiadania TLS w nazwie, STARTTLS nie oznacza, że TLS będzie używany. Zarówno SSL, jak i TLS są akceptowalnymi protokołami do zabezpieczania komunikacji.

Czysty tekst/zwykły tekst

w ogóle nie jest używany żaden protokół bezpieczeństwa. Wszystkie polecenia, odpowiedzi i dane są przesyłane w postaci zwykłego tekstu.

client.Connect("mail.example.com");

Implict SSL mode

Implict SSL mode oznacza, że łączysz się z szyfrowanym portem SSL/TLS.,

client.ConnectSSL("mail.example.com");

jawny tryb SSL

jawny tryb SSL oznacza, że łączysz się z portem tekstowym i zabezpieczasz połączenie, wydając następnie polecenie STARTTLS (lub STLS) (jawnie zabezpieczasz połączenie).

client.Connect("mail.example.com");client.StartTLS();

zabezpieczanie połączenia

niezależnie od tego, czy używasz trybu implict (łączenie się z szyfrowanym portem SSL / TLS), czy jawnego (używanie STARTTLS do uaktualniania istniejącego połączenia), obie strony będą negocjować, który protokół i która wersja ma być używana., Ta negocjacja opiera się na tym, jak klient i serwer zostały skonfigurowane i co każda ze stron obsługuje.

obsługa SSL/TLS

Obsługa SSL / TLS jest praktycznie uniwersalna, jednak obsługiwane wersje są zmienne. Prawie wszystko obsługuje SSLv3. Większość maszyn obsługuje TLSv1. 0.

problem z nazwami TLS vs STARTTLS

jednym z istotnych czynników komplikujących jest to, że niektóre programy pocztowe nieprawidłowo używają terminu TLS, gdy powinny użyć „STARTTLS” lub „explicit SSL / TLS”., Starsze wersje Thunderbird używały „TLS”, aby oznaczać „wymuszanie użycia STARTTLS do uaktualnienia połączenia i niepowodzenie, jeśli STARTTLS nie jest obsługiwane” i „TLS, jeśli dostępne”, aby oznaczać „użyj STARTTLS do uaktualnienia połączenia, jeśli serwer reklamuje wsparcie dla niego, w przeciwnym razie po prostu użyj niezabezpieczonego połączenia” (bardzo problematyczne, jak zobaczymy poniżej).

numery portów

aby dodać zabezpieczenia do niektórych istniejących protokołów (IMAP, POP3, SMTP), zdecydowano się po prostu dodać szyfrowanie SSL/TLS jako warstwę pod istniejącym protokołem., Aby jednak odróżnić, że oprogramowanie powinno rozmawiać z szyfrowaną wersją protokołu SSL/TLS, a nie ze zwykłym tekstem, dla każdego protokołu użyto innego numeru portu:

protokół zwykły tekst SSL
IMAP 143 993
POP3 110 995
SMTP 587 lub 25 465

zbyt wiele portów?, Rozwiązanie: zwykły tekst + STARTTLS

w pewnym momencie zdecydowano, że posiadanie 2 portów dla każdego protokołu jest marnotrawstwem, a zamiast tego lepiej mieć 1 port, który zaczyna się jako zwykły tekst, ale klienci mogą uaktualnić połączenie do szyfrowanego SSL/TLS za pomocą polecenia STARTTLS (lub STLS dla protokołu POP3).

problemy startowe

było z tym kilka problemów. Istnieje wiele programów, które używały alternatywnych numerów portów z czystymi połączeniami SSL / TLS., Oprogramowanie klienckie może być bardzo długotrwałe, więc nie można po prostu wyłączyć zaszyfrowanych portów, dopóki całe oprogramowanie nie zostanie zaktualizowane.

każdy protokół otrzymał mechanizmy informujące klientów, że serwer obsługuje aktualizację do SSL / TLS (np. STARTTLS w odpowiedzi na zdolność IMAP) i że nie powinni oni próbować się zalogować bez przeprowadzenia aktualizacji STARTTLS (LOGINDISABLED w odpowiedzi na zdolność IMAP)., Wywołało to dwie niefortunne sytuacje:

  • niektóre programy zignorowały komunikat „login disabled until upgraded” (LOGINDISABLED, STARTTLS) i mimo to próbowały się zalogować, wysyłając nazwę użytkownika i hasło przez kanał tekstowy. Serwer odrzucił login i hasło, ale dane zostały już wysłane przez Internet w postaci zwykłego tekstu.
  • inne oprogramowanie widziało komunikat „login disabled until upgraded”, ale wtedy nie aktualizowało połączenia automatycznie, a tym samym zgłaszało błędy logowania z powrotem do użytkownika, co spowodowało zamieszanie co było nie tak.,
    • oba te problemy spowodowały poważne problemy ze zgodnością z istniejącymi klientami, więc większość administratorów systemu nadal używała połączeń tekstowych na jednym porcie, a połączeń szyfrowanych na oddzielnym numerze portu.

      Wyłącz zwykły tekst dla IMAP i POP3

      wielu firm (np. Gmail, Outlook.com) wyłączono zwykły IMAP (port 143) i zwykły POP3 (port 110), więc ludzie muszą używać szyfrowanego połączenia SSL / TLS-eliminuje to potrzebę posiadania polecenia STARTTLS całkowicie.

      SMTP STARTTLS zostaje

      jedynym prawdziwym wyjątkiem od powyższego jest SMTP., Większość oprogramowania e-mail używało SMTP na porcie 25 do przesyłania wiadomości na serwer e-mail w celu dalszej transmisji do miejsca docelowego. Jednak SMTP został pierwotnie zaprojektowany do transferu, a nie składania. Zdefiniowano więc kolejny port (587) do przesyłania wiadomości.

      Port 587 nie wymaga STARTTLS, jednak użycie portu 587 stało się popularne mniej więcej w tym samym czasie, gdy uświadomiono sobie, że szyfrowanie SSL/TLS komunikacji między klientami a serwerami było ważną kwestią., W rezultacie większość systemów oferujących przesyłanie wiadomości przez port 587 wymaga od klientów użycia STARTLS do uaktualnienia połączenia. Login i hasło do uwierzytelniania jest również wymagane.

      to podejście również przyniosło dodatkową korzyść. Poprzez odsunięcie użytkowników od używania portu 25 do wysyłania wiadomości e-mail, dostawcy usług internetowych mogą blokować połączenia wychodzące portu 25 z komputerów użytkowników, które były znaczącym źródłem spamu, ze względu na komputery użytkowników zainfekowane wirusami wysyłającymi spam.,

      dalsze odczyty

      przy użyciu SSL / TLS z IMAP
      przy użyciu SSL/TLS z SMTP
      przy użyciu SSL/TLS z POP3

      Tagi: IMAP, POP3, SMTP, SSL, TLS