Trochę o certyfikatach SSL

Temat ten wraca do mnie jak bumerang. Jest to o tyle dziwne, że nawet w firmie IT mało kto ten temat rozumie. Oczywiście mowa o moich kochanych certyfikatach. Nie to, że uważam się za wybitnego specjalistę w dziedzinie ceryfikatów i kryptografii, ale mogę liczyć dosłownie godziny tłumaczeń do czego one są w ogóle nam w życiu potrzebne. Stwierdziłem więc, że przekuję tą wiedzę w artykuł i może oszczędzi to wielu strudzonym wędrowcom czasu i energii.

Co tak naprawdę kryje się pod magicznym skrótem HTTPS?

Google się ostatnio tak bardzo upiera, że HTTP jest złe. Tak naprawdę HTTPS ma podwójną funkcję. Pierwsza z nich to szyfrowanie połączenia. I tutaj mała uwaga – szyfrowanie odbywa się pomiędzy naszym komputerem i serwerem.

Czyli nie ratuje nas to przez wszelkiej maści keyloggerami czy też innymi wirusami. Jedynie i aż chroni nasze połączenie i jeżeli szyfrowanie jest odpowiednio mocne ktoś siedzący u np. naszego dostawcy internetu nie zobaczy co dokładnie oglądamy czy też wysyłamy.

Czym się to różni HTTPS od VPN?

W przypadku samego szyfrowania HTTPS można zobaczyć, które IP się łączy z jakim IP serwera. Także jeżeli łączymy się z dużą stroną, która ma unikalny IP to będzie można odczytać, że przeglądamy facebooka, ale już nie odczytamy z kim sobie tam romansujemy.

Certyfikaty budzą zaufanie

Drugą funkcję certyfikatów jest zaufanie. Zaufanie to podstawa biznesu. Tylko tak naprawdę skąd wiemy, że strona z którą się łączymy jest tą z którą chcemy się połączyć? Ataki w przypadku HTTP są liczne i dość proste (można zatruć DNS, przekierować na routerze na inną stronę itp). W przypadku HTTPS też są pewne formy ataków, ale wynikają one głównie ze słabości algorytmów, które są zastępowane przez nowsze i pozbawione danych wad (SSLv3 i pudelek)

Zatem jak zaufać danej stronie?

Internet wytworzył strukturę organizacji, które mają bardzo rygorystyczne wymagania i stanowią tzw. Root CA (Certificate Authority). Certyfikaty tych instytucji są wystawiane na wiele lat (np. 21). Jest to spowodowane tym, że muszą być zaimportowane do przeglądarki jak i całego systemu.

Jeżeli chcemy zobaczyć listę Root CA w firefoxie to klikamy w opcje, szukamy słowa „certyfikaty” i „manadżer certyfikatów”. W zakładce „Organy certyfikacji” mamy listę wszystkich Root CA. Ponieważ te certyfikaty są odłączone od sieci, nie służą do podpisywania bezpośrednio certyfikatów stron. Za ich pomocą podpisuje się inne certyfikaty, którymi z kolei podpisuje się kolejne. To jest minimum. Zdarza się, że tych poziomów jest więcej.

Tu się nasuwa kolejne pytanie.

Dlaczego haker nie wyśle do podpisania certyfikatu i nie podepnie takowego pod swoją stronę?

Otóż proces podpisywania to nie tylko wysłanie plików i po opłaceniu (lub tez nie – Let’s encrypt oferuje darmowe certyfikaty) ich odebraniu. Organizacja która nam wystawia certyfikat zawsze upewnia się, że domena którą chcemy podpisać jest naszą własnością. Jak to robi? Sposobów jest kilka:

  1. Do DNS domeny dopisujemy kod o jaki nas poprosi dostawca
  2. Na stronie umieszczamy plik z zawartością podaną przez dostawcę
  3. Wpis w WHOIS musi kierować na nas
  4. Musimy odebrać maila z adresem admin@domena.tld

Czy trzeba mieć firmę aby mieć certyfikat?

Nie, wystarczy kupić domenę i wystarczy do tego zwykły hosting. I tutaj niestety mała garść goryczy. Nie każdy dostawca hostingu oferuje nam darmowy certyfikat, nawet jest wielu takich gdzie trzeba sporo dopłacić za osobne IP dla certyfikatu (mimo, że od wprowadzenia TLS oraz SNI osobne IP nie jest wymagane). Także tutaj trzeba uważać przy wyborze dostawy hostingu. Niestety sam się poważnie zastanawiam nam zmianą hostingu z tego powodu.

Willcard a cóż to?

Wybierając dostawcę certyfikatu spotkamy takie pojęcie jak wildcard. Czy się to różni od standardowego certyfikatu i czemu jest droższy? Jeżeli posiadamy jedną domenę i nie zamierzamy tworzyć podstron to wystarczy nam opcja bez wildcard. Ale jeżeli zamierzamy tworzyć subdomeny, czyli posiadając domene giat.pl, tworzymy mariusz.giat.pl, iwona.giat.pl etc. opcja wildcardu może nam się przydać. Możemy wtedy wystawić certyfikat na domenę *.giat.pl co zawieta w sobie wszystkie subdomeny domeny giat.pl z nią włącznie (ale i prawdawne www.giat.pl).

I to na tyle.

Następnym razem opiszę jak to działa od strony technicznej – czyli CSR, klucz publiczny, klucz prywatny, chain i inne hasła, które trzeba znać jak się konfiguruje certyfikat.

Do zobaczenia! 🙂

Scroll to top