Certificate Patrol (uwaga długie)

Zanim opiszę dodatek Certificate Patrol potrzebny jest krótki wstęp. Gdy łączymy się z bankiem przez Internet aby wykonać przelew chcemy być pewni dwóch rzeczy:

  • że strona, którą widzimy jest stroną banku
  • że nikt nie podgląda informacji przesyłanych między bankiem a naszym komputerem

Za uniemożliwianie podsłuchu odpowiada szyfrowanie połączenia. Jeśli łączymy się przy użyciu protokołu SSL (w adresie strony jest na początku HTTPS zamiast HTTP) wszystkie przesyłane informacje są szyfrowane. Jest to stosunkowo bezpieczny sposób komunikacji. Nie zabezpiecza on jednak przed atakiem zwanym Man In The Middle (MitM). Polega on tym, że pomiędzy nami a bankiem pojawia się trzecia osoba: złodziej. Szyfruje on oba kanały komunikacyjne (czyli my-złodziej oraz złodziej-bank) więc możemy mieć wrażenie, że połączenie jest zaufane.

Aby mieć pewność, że łączymy się bezpośrednio z bankiem musimy sprawdzić cyfrowy podpis strony. Jeśli strona ma taki podpis to będzie to zaznaczone w pasku adresu. Firefox adres podpisanej strony poprzedza niebieskim lub zielonym przyciskiem. Kolor zielony oznacza podpis zweryfikowany czyli możemy mieć pewność, że właścicielem podpisu jest firma wymieniona z nazwy i adresu w okienku, które pojawi się po kliknięciu na zielony przycisk. Przykładem takiej strony jest https://addons.mozilla.org/.

Kolor niebieski oznacza jedynie, że podpis został wydany właścicielowi domeny. A dokładniej: w chwili wydawania podpisu kontrolę nad domeną sprawowała osoba, który podpis otrzymała. Przykładem takiej strony jest https://mail.google.com/.

Dość oczywiste jest, że strony “zielone” są bezpieczniejsze od “niebieskich” a te od “białych” (bez podpisu). Co jednak znaczy słowo “zweryfikowane”? Kto weryfikuje tożsamość osób ubiegających się o podpisy “zielone” lub kontrolę nad domeną dla podpisów “niebieskich”? Otóż podpisy wydają firmy lub instytucje zwane Certificate Authorities (CA). Aby otrzymać podpis zielony trzeba zgłosić się do siedziby firmy z dowodem osobistym lub dokumentami firmy aby można było na miejscu zweryfikować naszą tożsamość. Wydanie podpisu niebieskiego jest prostsze, wystarczy umieścić na swojej stronie określony kod co teoretycznie oznacza, że mamy nad tą stroną kontrolę.

Skąd przeglądarka wie, że podpis strony został zweryfikowany? Otóż, podobnie jak strony internetowe, podpisy cyfrowe też można podpisywać. CA podpisuje podpis cyfrowy Mozilli swoim poświadczając tym samym prawdziwość zawartych w nim informacji. A kto weryfikuje podpis CA? Tu odpowiedzi mogą być dwie. W pierwszym wypadku będzie to CA wyższego rzędu (większa firma lub CA rządowy), w drugim nikt.

Prędzej czy później musimy dojść do momentu gdy jednemu z podpisów musimy zaufać na wiarę. Po prostu przyjmujemy, że informacje w nim zawarte są prawdziwe, i że ufamy bezgranicznie osobie, która taki podpis wystawiła. Dzięki takiemu domniemanemu zaufaniu tworzy się ciąg podpisów, główny CA weryfikuje podpis podrzędnego CA, podrzędny CA weryfikuje podpis firmy a jej podpis znajdzie się na stronie WWW.

Tu pojawia się problem, bo główny podpis CA musi być dostarczony z przeglądarką. W dodatku instytucja z takim podpisem miała by dużą władzę. Dlatego nie ma jednego, głównego CA. Praktycznie każdy kraj ma CA związanego z rządem oraz kilka lub kilkanaście CA innych firm i instytucji. I wszystkie one są traktowane jako zaufane oraz wbudowane w popularne przeglądarki (IE, Firefox, Chrome czy Opera).

Aby uświadomić sobie jak niebezpieczna jest ta sytuacja wystarczy sprawdzić ile jest tych certyfikatów. W Firefoksie ponad kilkaset. Co więcej, pochodzą one z praktycznie każdego kraju: oprócz Polski także z USA, Rosji czy Chin. Oznacza to ni mniej ni więcej, że chińska firma będąca CA może wystawić certyfikat potwierdzający, że serwer, z którym się łączymy należy do banku a przeglądarka pokaże zielony przycisk. Bez dokładnego przyjrzenia się podpisowi nie zobaczymy informacji o tym kto go wystawił. A nawet jeśli sprawdzimy to skąd można wiedzieć czy dowolny z kilkuset CA jest nadal godny zaufania.

Piszę “nadal” gdyż zdarzały się sytuacje gdy z winy CA wystawiano podpisy nieuczciwym firmom. W dodatku był to podpis “uniwersalny” pozwalający takiej firmie wydawać własne podpisy. Ponieważ łańcuch cyfrowych podpisów był zachowany przeglądarki traktowały tak podpisane strony jako zaufane i oznaczały na zielono. Pamiętajmy, że ciąg kolejnych podpisów zaczynający się od podpisu wbudowanego w przeglądarkę jest jedynym sposobem na weryfikację strony.

Czym to grozi? Potencjalny scenariusz jest następujący:

  • korzystamy ze strony banku podpisanej podpisem zweryfikowanym przez zaufanego CA
  • ktoś wchodzi w posiadanie podpisu uniwersalnego pozwalającego na wystawianie własnych podpisów, może to być dotychczasowy CA, który zszedł na złą drogę albo przestępca, który znalazł sposób na oszukanie CA
  • sfałszowany podpis zostaje użyty do podpisania strony banku
  • przestępca używa ataku MitM do przechwycenia danych przesyłanych przez klientów
  • klienci niczego nie podejrzewają gdyż w pasku przeglądarki znajduje się zielony przycisk, co więcej po jego kliknięciu można zobaczyć, że podpis jest wystawiony dla banku

Jak uchronić się przed takim atakiem? Trzeba dokładnie sprawdzać podpis cyfrowy strony za każdym razem gdy wchodzimy na stronę. Co więcej, trzeba go porównywać ze starym podpisem i w razie zmiany zdecydować czy można zaufać nowemu podpisowi.

Oczywiście manualne sprawdzanie tych informacji jest niepraktyczne. Tutaj do akcji wkracza tytułowy Certificate Patrol. Po instalacji zapamiętuje on parametry wszystkich podpisów cyfrowych pobranych do tej pory z internetu przez przeglądarkę. Przy każdej następnej wizycie na podpisanej stronie CP sprawdza czy podpis się zmienił i podpowiada czy można ufać nowemu. Niektóre zmiany podpisów są “legalne”. Podpisy wystawiane są zawsze na określony czas (zwykle rok lub dwa lata) i muszą być odnawiane (czyli wystawione jeszcze raz). CP porównuje datę wygaśnięcia starego podpisu i jeśli jest zbliżona do daty wystawienia nowego oraz CA wystawiający podpis się nie zmienił to proponuje zatwierdzić nowy podpis. W pozostałych przypadkach należy dokładnie sprawdzić dlaczego wystawiono nowy podpis. Najlepiej dzwoniąc do banku i pytając o numer seryjny nowego podpisu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *


*