Tak sobie właśnie pomyślałem, że SSL jest zwykle utożsamiany z szyfrowaniem komunikacji. Oczywiście jest to prawda, ale taki sposób patrzenia trochę niepotrzebnie zawęża zakres stosowania SSL do obszarów, gdzie wymagana jest poufność transmisji. Dlaczego? Wyobraźmy sobie serwis, który udostępnia pewne istotne dane. Dane, które są jak najbardziej jawne, powszechnie dostępne... Tutaj nie ma potrzeby zapewnienia poufności transmisji, więc nie ma potrzeby stosowania SSL(?).
SSL to nie tylko poufność
Czy aby na pewno? Uważam, że nie zawsze tak jest. Poza poufnością danych, istotna jest również ich integralność. W szczególności skąd można wiedzieć, że oglądana jest prawdziwa strona? Niestety, jedna z podstaw działania sieci Internet, czyli protokół DNS z bezpieczeństwem ma niewiele wspólnego. Wystarczy wspomnieć o atakach DNS cache poisoning. Owszem, jest sobie protokół DNSSEC, ale jego popularność jest znikoma.
Co z tego wynika? To, że nie można być pewnym, czy wpisując konkretny adres, otrzymuje się rzeczywiście tę stronę, którą się chciało uzyskać, ponieważ translacja nazwy na adres IP nie jest pewna. W niektórych przypadkach atak na stronę w celu upowszechnienia nieprawdziwych informacji może być opłacalny.
Jak można temu przeciwdziałać? Ponieważ protokół DNS jest w swych założeniach niebezpieczny odpowiedź jest prosta - nie da się. A przynajmniej nie da się w łatwy sposób zagwarantować, iż tłumaczenie nazwy na adres IP jest prawidłowe. Można natomiast dodatkowo potwierdzić autentyczność serwera, właśnie przy pomocy SSL (a konkretnie przy pomocy certyfikatu). Oczywiście, nie daje to 100% pewności, że ktoś nie kupi certyfikatu dla tej samej nazwy i nie podstawi go na fałszywym serwerze. Wówczas jednak wiadomo, kto taki certyfikat kupił. Tak, można certyfikat wystawić sobie we własnym zakresie, ale wówczas certyfikat ten nie zweryfikuje się (automatycznie) w przeglądarce klienta.
Wadą są oczywiście koszty... Nie chodzi tutaj o koszt zakupu certyfikatu, ale o koszty generowane przez zwiększone wymagania wydajnościowe związane z kryptografią asymetryczną. Czasami może jednak się to opłaca?