Przejdź do treściHisnLabs
← Kryptografia, na której możesz polegać

Lekcja 2 z 4 · 9 min

Podpisy cyfrowe, certyfikaty i TLS

Jak przeglądarka wie, że naprawdę rozmawia z twoim bankiem, dlaczego ikona kłódki znaczy coś konkretnego i czego nie znaczy.

Poprzednia lekcja pozostawiła jedno pytanie otwarte: szyfrowanie asymetryczne pozwala wysłać sekret komuś, czyj klucz publiczny posiadasz — ale skąd wiesz, że ten klucz publiczny faktycznie należy do tej osoby, a nie do atakującego stojącego pośrodku? Podpisy cyfrowe i certyfikaty odpowiadają na to pytanie, a razem umożliwiają TLS, protokół stojący za każdym adresem https://.

Podpisy cyfrowe: dowód pochodzenia, nie tajności

Podpis cyfrowy uruchamia szyfrowanie asymetryczne odwrotnie. Zamiast szyfrować wiadomość czyimś kluczem publicznym, by tylko ta osoba mogła ją odczytać, nadawca podpisuje wiadomość własnym kluczem prywatnym, a każdy może to zweryfikować za pomocą klucza publicznego nadawcy. Jeśli weryfikacja się powiedzie, prawdziwe są dwie rzeczy: wiadomość pochodzi od tego, kto posiada ten klucz prywatny, i nie została później zmieniona — ta sama właściwość odporności na kolizje z omówienia funkcji skrótu w poprzedniej lekcji sprawia, że manipulację można wykryć. Podpis dowodzi autentyczności i integralności; sam w sobie nie utrzymuje wiadomości w tajemnicy.

Certyfikaty: podpis poręczający za klucz publiczny

Certyfikat cyfrowy rozwiązuje problem „czyj to naprawdę klucz publiczny”. Jak wyjaśnia Cloudflare Learning Center, certyfikat SSL/TLS to „plik danych przechowywany na serwerze źródłowym strony”, zawierający nazwę domeny, klucz publiczny, datę wygaśnięcia oraz — co kluczowe — „podpis cyfrowy urzędu certyfikacji”. Urząd certyfikacji (CA) to zaufana strona trzecia, która sprawdza, czy strona kontroluje domenę, dla której prosi o certyfikat, a następnie podpisuje ten certyfikat swoim własnym kluczem prywatnym. Twoja przeglądarka ma wbudowaną listę urzędów CA, którym ufa, więc gdy otrzymuje certyfikat podpisany przez jeden z nich, może zaufać zawartemu w nim kluczowi publicznemu, nigdy nie spotkawszy operatora strony. Certyfikat samopodpisany — taki, który strona podpisuje sama, zamiast uzyskać go od CA — nie ma takiego zewnętrznego poręczenia, dlatego przeglądarki domyślnie traktują go jako niezaufany.

TLS: uruchomienie obu mechanizmów

RFC 8446, specyfikacja TLS 1.3, opisuje uzgadnianie w fazach: wymiana kluczy, w której obie strony ustalają wspólny materiał sekretny; następnie uwierzytelnianie, gdzie, słowami RFC, „strona serwera kanału jest zawsze uwierzytelniana; strona klienta jest uwierzytelniana opcjonalnie” — zwykle tylko strona internetowa dowodzi swojej tożsamości, a nie odwiedzający. Serwer dowodzi, kim jest, używając swojego certyfikatu i podpisu, który tylko on mógł stworzyć swoim kluczem prywatnym. Gdy obie strony ufają połączeniu, wyprowadzają szybkie klucze symetryczne (zwykle AES z poprzedniej lekcji) dla właściwych danych. RFC 8446 wprost stwierdza, co to daje: poufność i integralność wymienianych danych oraz uwierzytelnienie serwera. Równie wprost stwierdza ograniczenie: „TLS nie ukrywa długości przesyłanych danych”, a metadane, takie jak z jakim serwerem się połączyłeś i kiedy, pozostają widoczne dla każdego, kto jest w stanie obserwować połączenie.

Co znaczy ikona kłódki, a czego nie znaczy

Kłódka / https:// oznaczaNie oznacza
Połączenie z tym serwerem jest szyfrowane, a jego integralność jest chronionaŻe strona jest godna zaufania, uczciwa lub bezpieczna w użyciu
Rozmawiasz z tym, kto kontroluje tę nazwę domenyŻe ta nazwa domeny jest tym, za kogo ją uważasz — przekonująca podszywająca się domena też otrzyma ważny certyfikat
Nikt na drodze sieciowej nie może odczytać ani po cichu zmienić ruchuŻe nikt nie widzi, że odwiedziłeś tę stronę, kiedy ani jak często

Strona phishingowa zbudowana na podszywającej się domenie może mieć całkowicie ważny certyfikat: TLS uwierzytelnia domenę, a nie intencje tego, kto ją zarejestrował. Dlatego wcześniejsza lekcja o tym, jak przebiegają ataki, traktuje fałszywą stronę logowania, z kłódką włącznie, jako realne zagrożenie, a nie sprzeczność.

Najważniejsze

  • Podpis cyfrowy dowodzi, kto wysłał wiadomość i że nie została zmieniona — sam w sobie nie utrzymuje wiadomości w tajemnicy.
  • Certyfikat to podpisane oświadczenie, od urzędu certyfikacji, któremu przeglądarka już ufa, że dany klucz publiczny należy do danej domeny.
  • Uzgadnianie TLS (RFC 8446) zawsze uwierzytelnia serwer; odwiedzający jest uwierzytelniany w ten sam sposób rzadko.
  • TLS chroni poufność i integralność w tranzycie oraz potwierdza, że dotarłeś do zamierzonej domeny — nie ukrywa faktu, że doszło do połączenia, ani nie gwarantuje, że stojąca za nim strona jest godna zaufania.
  • Strona phishingowa na podszywającej się domenie może wyświetlać całkowicie ważną kłódkę; certyfikat uwierzytelnia domenę, a nie intencje operatora.

Sprawdź się

  1. 1. Co dowodzi ważny podpis cyfrowy na wiadomości?

    • Że wiadomość jest tajna dla wszystkich oprócz odbiorcy
    • Że wiadomość pochodzi od posiadacza konkretnego klucza prywatnego i nie została zmieniona — Dobrze.
    • Że wiadomość została wysłana za pomocą TLS
    • Że wiadomość jest wolna od jakiejkolwiek szkodliwej zawartości

    Podpisy weryfikują autentyczność i integralność za pomocą pary kluczy podpisującego; nie szyfrują wiadomości w celu zachowania tajności.

  2. 2. Jaką rolę pełni urząd certyfikacji (CA) w TLS?

    • Przechowuje twoje hasła w twoim imieniu
    • Poręcza własnym podpisem, że dany klucz publiczny należy do danej domeny — Dobrze.
    • Szyfruje cały ruch w internecie
    • Automatycznie blokuje strony phishingowe

    CA sprawdza kontrolę nad domeną i podpisuje certyfikat, pozwalając przeglądarkom, które już ufają CA, zaufać kluczowi publicznemu z certyfikatu bez bezpośredniego kontaktu z operatorem strony.

  3. 3. Według RFC 8446, która strona typowego połączenia TLS jest zawsze uwierzytelniana?

    • Tylko klient (twoja przeglądarka)
    • Serwer — Dobrze.
    • Żadna ze stron domyślnie
    • Obie strony, zawsze, bez wyjątków

    RFC 8446 stwierdza, że strona serwera jest zawsze uwierzytelniana, podczas gdy uwierzytelnianie klienta jest opcjonalne i znacznie rzadsze przy zwykłym przeglądaniu.

  4. 4. Dlaczego strona phishingowa nadal może pokazywać ważną ikonę kłódki?

    • Ikony kłódki są kosmetyczne i nic nie znaczą
    • Certyfikat uwierzytelnia nazwę domeny, a nie uczciwość tego, kto ją zarejestrował — Dobrze.
    • Przeglądarki nie sprawdzają już certyfikatów
    • Strony phishingowe w ogóle nie mogą używać HTTPS

    Certyfikaty TLS potwierdzają, że rozmawiasz z faktycznym posiadaczem danej domeny; przekonująco podszywająca się domena może uzyskać swój własny, całkowicie ważny certyfikat.

Wypróbuj to z FireAI

Zastosuj tę lekcję w praktyce na swoim Macu.

Źródła

Zastosuj to na swoim Macu

Wypróbuj wszystkie funkcje za darmo przez 17 dni, bez karty.

Pobierz na Maca Dokumentacja