SSL

Starszy protokół szyfrowania połączeń internetowych, poprzednik TLS. Nazwa nadal potocznie używana w kontekście certyfikatów SSL.

SSL (Secure Sockets Layer) to wycofany już protokół kryptograficzny, który miał jedno zadanie: zaszyfrować ruch między klientem a serwerem, żeby nikt po drodze nie podsłuchał Twojego loginu ani numeru karty. Stworzył go Netscape w połowie lat 90. (SSL 2.0 w 1995, SSL 3.0 w 1996), a dziś to bezpośredni przodek TLS — protokołu, którego faktycznie używasz, nawet jeśli wszyscy dalej mówią „certyfikat SSL”.

Jak to działa i po co powstał

SSL działał między warstwą transportową (TCP) a aplikacją (np. HTTP). Najpierw odbywał się handshake: serwer przedstawiał swój certyfikat, strony uzgadniały zestaw szyfrów i wymieniały klucze. Dopiero potem leciały zaszyfrowane dane. Załatwiał trzy rzeczy naraz: poufność (szyfrowanie), integralność (że dane nie zostały zmienione po drodze) i uwierzytelnienie serwera (że gadasz z tym, z kim myślisz).

Problem w tym, że stare wersje miały dziury. SSL 3.0 padł ofiarą ataku POODLE (2014), a wcześniej SSL 2.0 był dziurawy jak sito. W efekcie RFC 7568 (2015) oficjalnie zakazał używania SSL 3.0. Następcą został TLS: 1.0 (1999), potem 1.2 (2008) i aktualne TLS 1.3 (2018).

Przykład z praktyki

Chcesz sprawdzić, czy serwer wciąż akceptuje przedpotopowe SSL? Odpalasz openssl i wymuszasz starą wersję:

openssl s_client -connect example.com:443 -ssl3

Jeśli połączenie przejdzie — masz problem do załatania w konfiguracji (np. w nginx ustaw ssl_protocols TLSv1.2 TLSv1.3;). Jeśli dostaniesz błąd handshake — i dobrze, SSL3 jest wyłączony.

Częste mity i pułapki

  • „Certyfikat SSL” — marketingowy skrót. Sam certyfikat X.509 jest neutralny; protokołem, który go używa, jest dziś TLS, nie SSL.
  • Kłódka w przeglądarce oznacza tylko szyfrowanie połączenia, a nie że strona jest uczciwa. Phishing też potrafi mieć ważny certyfikat.
  • Włączanie starego SSL „dla kompatybilności” to proszenie się o downgrade attack. Nie rób tego.

Pojęcia powiązane: TLS, HTTPS, handshake, certyfikat X.509, urząd certyfikacji (CA), szyfrowanie symetryczne i asymetryczne, POODLE, Let’s Encrypt.