Weryfikacja właściciela domeny na podstawie certyfikatu SSL

Czasami da się sprawdzić kto jest właścicielem danej domeny na podstawie informacji zawartych w certyfikacie SSL. Można to wykorzystać aby upewnić się, ze jesteśmy na właściwej stronie.

Opublikowano 19-01-2023 10:11

TL;DR Czasami możesz sprawdzić kto jest właścicielem danej domeny weryfikując informacje z certyfikatu SSL. Poniżej przykład dla mBanku. Teoretycznie możnaby tak sprawdzać, czy aby nie trafiliśmy na stronę phishingową. Dlaczego zatem nie mówi się o tym na szkoleniach bezpieczeństwa? Bo temat jest bardziej skomplikowany niż mogłoby się wydawać.


Jak sprawdzić certyfikat

Ostatnio jeden z widzów zapytał mnie mailowo czy aby na pewno ten blog należy do mnie. Skąd ta niepewność? Sprawdził certyfikat SSL i nie ma w nim moich danych.

Ty też możesz to sprawdzić. W przypadku Google Chrome:

  1. Kliknij w szarą kłodeczkę obok nazwy domeny.
  2. Wybierz połączenie jest bezpieczne.
  3. Kliknij certyfikat jest ważny.
  4. Zobaczysz, że certyfikat jest wystawiony dla Cloudflare, Inc.

To w końcu kto jest właścicielem bloga? Kacper Szurek czy Cloudflare?

Zaufane urzędy certyfikacji

Chcemy, aby nikt niepowołany nie wiedział co robimy na danej stronie. Dlatego szyfrujemy ruch pomiędzy naszą przeglądarką i serwerem. Aby to wszystko działało potrzebny jest certyfikat SSL.

Cały ten system opiera się na zaufaniu. Każda przeglądarka czy system operacyjny posiadaa listę zaufanych głównych urzędów certyfikacji. W przypadku Chroma możesz wkleić w pasku adresu wartość chrome://system/ i sprawdzić pole chrome_root_store. Jest ich całkiem sporo.

Są to firmy, które uczestniczą w procesie wydawania certyfikatów. Wierzymy, że spełniają one określone normy i weryfikują czy osoba prosząca o certyfikat jest właścicielem danej domeny.

Ale jak sprawdzić czy ktoś rzeczywiście jest właścicielem domeny?

  • Można mu wysłać maila na adres [email protected] i poprosić o kliknięcie w link.
  • Można poprosić o umieszczenie specjalnego pliku pod określonym adresem, na przykład: http://example.com/.well-known/acme-challenge/.

Zauważ jednak, że nie weryfikujemy tutaj osoby. Sprawdzamy tylko, czy jest właścicielem danej domeny. Nie wiemy jak ma na imię czy gdzie mieszka. Wiemy tylko, że może zarządzać daną domeną.

To najpopularniejszy rodzaj weryfikacji systosowany przy wydawaniu certyfikatów SSL. Nazywamy go w skrócie DV (z angielskiego Domain Validation). Taki certyfikat każdy może uzyskać za darmo. Korzystając ze strony Let's Encrypt.

Z takiego rodzjau certyifkatu korzysta sporo dużych firm. Wtedy w szczegółach certyfikatu - przy wierszu organizacja - widnieję wpis brak w certyfikacie. Możesz samodzielnie sprawdzić przykłady:

W przypadku tego bloga (jak i Niebezpiecznika czy Zaufanej Trzeciej Strony jako organizacja widnieje Cloudflare. Dlaczego?

Problemy z datą wazności

Certyfikaty mają datę ważności. Obecnie standardem jest 90 dni. Po tym czasie certyfikat przestaje działać. Wtedy przeglądarka wyświetla ostrzeżenie. Certyfikaty trzeba więc odnawiać. I tu pojawia się problem. Bo możesz o tym zapomnieć. I wtedy tracisz użytkowników. Warto więc mieć kogoś kto za nas pamięta o wymianie certyfikatów. Taką rolę spełnia Cloudflare. I to za darmo. Ale to nie wszystko. Pełnią oni również rolę pośrednika.

Wyobraź sobie, że jesteś popularnym YouTuberem i chcesz przyjmować od widzów listy. Ale nie chcesz podawać swojego prywatnego adresu. Możesz wynająć skrytke pocztową. Listy trafiają w jedno miejsce, z którego możesz je odbierać. Twój adres dalej nie jest publicznie znany.

Podobną rolę odgrywa Cloudflare. Gdy ktoś chce połączyć się z moim serwerem nie łączy się z nim bezpośrednio - ale przy pomocy serwerów firmy pośredniczącej.

I może się to wydawać dziwne. Po co tak robić?

Aby ochronić się przed atakami DDoS. Źli ludzie mogą chcieć nam zaszkodzić i wysyłać do naszej strony wiele żądań - symulując odwiedziny realnych użytkowników. A to problem. Bo strony buduje się tak, aby były w stanie wytrzymać określony ruch.

Jeśli Twój sklep odwiedza dziennie 100 osób to nie potrzebujesz olbrzymich serwerów aby obsłużyć 100 000 osób. Bo nie ma takiej potrzeby. Jeśli więc nagle ktoś Cię zaatakuje - to jest spora szansa, że strona przestanie działać dla wszystkich - bo serwery nie będą w stanie obsłużyć tylu osób na raz.

Cloudflare to taki bufor ochrony. To wielka firma, która ma dużo większe zasoby niż ja i może pomóc w odpieraniu takich ataków.

To dlatego w certyfikacie SSL widnieją ich dane. Oni w moim imieniu generują certyfikat dla mojej strony. Ale skąd nagle wzięła się tam nazwa firmy? Przecież przed chwilą wspominałem o DV - kiedy to nie weryfikuje się nazwy organizacji?

Dane firmy w certyfikacie

Istnieje drugi rodzaj weryfikacji OV (Organization Validation). Wtedy certyfikat zawiera dane Firmy. Ale wiąże się to z dodatkową weryfikacją danych. Na przykład Certum wymaga:

  • potwierdzenia tożsamości w Punkcie Rejestracji/notarialnego potwierdzenie tożsamości/kopii dokumentu tożsamości osoby zamawiającej,
  • opłaconego rachunku za domenę,
  • upoważnienie/pełnomocnictwo potwierdzające upoważnienie wnioskodawcy do reprezentowania podmiotu.

Jest tu więc sporo więcej formalności i certyfikat nie jest wydawany od ręki. Poza tym to płatna usługa. W przypadku Certum Trusted SSL to 552 zł brutto na rok. A przypominam, że podstawowy certyfikat można uzyskać za darmo.

Z tego też powodu mało kto decyduje się na to rozwiązanie. Po co mam dopłacać skoro i tak nikt na to pole nie zwraca uwagi? A certyfikat darmowy czy nie działa dokładnie tak samo. Tak samo dobrze szyfruje dane.

Dlatego też z tego rozwiązania korzystają głównie banki.

Bywa ono też problematyczne w przypadku awarii - gdy na szybko trzeba wygenerować nowy certyfikat. Bo ponownie trzeba przesłać nowe dokumenty, które ktoś musi zweryfikować. A to trwa.

Zielona kłódka

Ale to nie koniec historii. Ostatnią opcją weryfikacji jest EV (Extended Validation). W przeszłości ten rodzaj certyfikatu dawał wymierne korzyści. Mityczną zieloną kłódeczkę obok paska adresu.

Podszył się pod Apple

https://chromium.googlesource.com/chromium/src/+/HEAD/docs/security/ev-to-page-info.md

Podsumowanie

Czy zatem używać tej metody do weryfikacji domeny? Tak, ale tylko jako dodatkowej metody. Dużo prościej jest stosować menadżer haseł, który za nas sprawdzi domenę za każdym razem gdy na nią wejdziemy.

  1. Przeglądarki zrezygnowały z wyświetlania tej informacji.
  2. Dostęp do niej jest utrudniony.
  3. Stosunkowo mało podmiotów z tego korzysta.
  4. To nie jest bezpłatne rozwiązanie.
  5. Zwykły certyfikat i takie z danymi firmy technicznie działają tak samo i szyfrują dane dokładnie tak samo. Jeśli nie ma różnicy to po co przepłacać?
  6. W przypadku awaryjnej zmiany certyfikatu jest to problematyczne - bo przecież trzeba wysłać dokumenty, które ktoś musi sprawdzić.
  7. Ktoś może się podszyć - zakładając firmę o podobnej nazwie.
  8. Istnieją lepsze rozwiązana chroniące przed phishingiem - na przykład menadżer haseł czy klucze U2F.