14 Lis

Jak sprawdzić status certyfikatu SSL za pomocą OCSP?

OCSP (Online Certificate Status Protocol) to protokół, który pozwala na sprawdzenie statusu certyfikatu SSL. Standard ten opisuje komunikację między serwerem usługowym, a systemem odbiorcy usług certyfikacyjnych. OCSP określa strukturę oraz format żądania o status certyfikatu, a także odpowiedzi zawierającej wynik weryfikacji. Jedynie poprawny status oznacza, że certyfikat wystawiony został przez podmiot korzystający z usługi OCSP.

Okres ważności certyfikatu

Wszystkie certyfikaty SSL posiadają swoje okresy ważności. Maksymalnie wydawane są na dwa lata i przez ten czas uznawane są za ważne. Unieważnienie certyfikatu może być jednak w niektórych sytuacjach konieczne – przyczyną odwołania bywa np. dezaktualizacja danych zawartych w certyfikacie lub utrata kontroli nad kluczem prywatnym. W momencie unieważnienia certyfikatu, konieczne jest poinformowanie o tym wszystkich korzystających z niego użytkowników. Jeżeli posiadany certyfikat SSL zabezpieczający stronę logowania unieważni np. bank, jego klienci muszą się o tym dowiedzieć. Obecnie informację o odwołaniu przekazać można na dwa sposoby – za pomocą list CRL lub właśnie protokołu OCSP.

Online Certificate Status Protocol

OCSP to protokół, w którym zapytanie o status certyfikatu wysyłane jest przez klienta do serwera odpowiedniego Urzędu Certyfikującego CA (Certificate Authority). W odpowiedzi zwrotnej znajduje się właściwy status certyfikatu SSL. Status poprawny oznacza, że certyfikat nie został unieważniony w swoim czasie ważności i pozostaje ważny. Status unieważniony obejmuje certyfikaty SSL zarówno unieważnione, jak i zawieszone. W tym drugim przypadku możliwe jest odwieszenie, dzięki czemu certyfikat znów stanie się ważny. Ostatni status to nieznany – oznacza, że responder OCSP nie znalazł żadnych informacji dotyczących certyfikatu z zadanego żądania. Zwykle status ten zwracany jest w sytuacji, gdy weryfikowany wystawca certyfikatu nie jest obsługiwany przez określony serwer OCSP.

Adres serwera protokołu

Wysyłając zapytanie do serwera OCSP, klient musi znać jego adres. Można go uzyskać bezpośrednio z certyfikatu SSL będącego podmiotem zapytania. Zapytania o jego status należy kierować na adres zlokalizowany w rozszerzeniu AIA (Authority Information Access), którego struktura zbudowana jest z sekwencji pól accessMethod oraz accessLocation. Pierwsze z nich opisuje format oraz typ danych – jedna z jego dopuszczalnych wartości wskazuje możliwość weryfikacji statusu z zastosowaniem protokołu OCSP. Drugie pole zawiera natomiast konkretny adres serwera OCSP, pod którym znajduje się usługa udostępniona przez wystawcę certyfikatu SSL. Pod ten właśnie adres należy kierować żądanie o status sprawdzanego certyfikatu. OCSP wykorzystuje do przekazywania danych o statusie certyfikatu SSL protokół HTTP. Standard ten pozwala na zastosowanie także innych protokółów, jednak obecnie taka forma komunikacji pozostaje najpopularniejsza.

OCSP w przeglądarkach

Protokół OCSP zastosować można do weryfikacji statusu certyfikatu SSL w czterech z pięciu najczęściej użytkowanych przeglądarek internetowych. Z narzędzia tego nie korzysta jedynie Chrome, które standardowo posługuje się CRLSets. W innych popularnych przeglądarkach (Internet Explorer, Firefox, Opera oraz Safari) istnieje możliwość weryfikowania statusu certyfikatu za pomocą OCSP, jednak w każdym wariancie wygląda to nieco inaczej. Na przykład po rozpoznaniu niedostępności serwera OCSP w Internet Explorerze, weryfikacja odbywa się w oparciu o CRLs, podczas gdy Firefox korzysta jedynie z Online Certificate Status Protocol.