Online Certificate Status Protocol jest protokołem pozwalającym na sprawdzenie statusu certyfikatu. Ten wpis jest pierwszą z kilku części, w których postaram się przybliżyć zasadę jego działania.
Czas życia certyfikatu
Każdy certyfikat x509 posiada swój okres ważności. Z reguły jest to rok, dwa lub trzy lata. W tym czasie certyfikat jest uznawany za ważny. Może zdarzyć się jednak sytuacja, w której konieczne będzie jego unieważnienie. Wśród przyczyn odwołania certyfikatu wyróżnić można między innymi utratę kontroli nad kluczem prywatnym czy to, że dane zawarte w certyfikacie przestały być aktualne. Kiedy certyfikat zostaje unieważniony, informacja ta musi zostać przekazana do wszystkich użytkowników, którzy będą mieli z nim styczność. Jeżeli Twój bank unieważni certyfikat SSL (który zabezpieczał na przykład stronę logowania), to Ty – jako klient tego banku – musisz o tym wiedzieć.
Obecnie istnieją dwie metody na dostarczenie informacji o unieważnieniu. Pierwszą z nich są listy CRL (Certificate Revocation Lists), a drugą właśnie Online Certificate Status Protocol (OCSP).
Protokół OCSP
OCSP jest protokołem, w którym to klient (np. przeglądarka internetowa) wysyła zapytanie o status konkretnego certyfikatu do serwera OCSP danego Urzędu Certifikacyjnego (ang. Certificate Authority – CA). Zwrotnie otrzymuje podpisaną cyfrowo odpowiedź zawierającą właściwy status.
Zgodnie z RFC 2560 responder OCSP może zwrócić trzy statusy:
- good,
- revoked,
- unknown.
Status good oznacza, że certyfikat jest ważny tj. nie został unieważniony w swoim okresie ważności. Odpowiedź zawierająca status revoked oznacza, że certyfikat został unieważniony, z włączeniem w to certyfikatów zawieszonych (certyfikat zawieszony może zostać odwieszony, czyli może stać się znowu ważny). Ostatni ze statusów, który może zostać zwrócony w odpowiedzi OCSP to unknown. Oznacza to, że responder nie wie nic o certyfikacie z żądania. Najczęściej informacja ta zwraca jest w momencie, gdy wystawca certyfikatu o który jest zapytanie nie jest obsługiwany przez dany serwer OCSP.
Adres serwera OCSP
Klient wysyłający zapytanie do serwera OCSP musi znać jego adres. Informację tę uzyskuje z certyfikatu, który jest podmiotem zapytania. Adres na który powinno kierować się zapytania o status danego certyfikatu znajduje się w jednym z jego rozszerzeń – Authority Information Access (AIA). Na język polski jest to tłumaczone jako “Dostęp do informacji o Urzędzie”. Rozszerzenie to nie jest krytyczne, a jego OID to 1.3.6.1.5.5.7.1.1. Na strukturę AIA składają się sekwencje pól accessMethod i accessLocation.
Pole accessMethod opisuje typ i format danych, jego dwie dopuszczalne wartości to:
- id-ad-ocsp (OID: 1.3.6.1.5.5.7.48.1),
- id-ad-caIssuers (OID: 1.3.6.1.5.5.7.48.2).
Tutaj interesuje nas pierwsza z nich, która wskazuje na możliwość zweryfikowania statusu certyfikatu z wykorzystaniem OCSP. Pole accessLocation zawiera natomiast adres pod którym znajdziemy określone dane lub usługę udostępnioną przez wystawcę certyfikatu (wskazane w accessMethod). W tym przypadku będzie to adres serwera OCSP pod który należy kierować zapytania o status danego certyfikatu.
Jak można zauważyć OCSP do dostarczania informacji o statusie certyfikatów wykorzystuje protokół HTTP. Sam standard dopuszcza użycie innych protokołów, ale obecnie jest to najpopularniejsza forma transportu żądań i odpowiedzi OCSP.
Które przeglądarki korzystają z OCSP?
Na koniec krótka informacja o tym, jak przedstawia się sytuacja wykorzystywania OCSP podczas weryfikacji certyfikatu SSL w pięciu najpopularniejszych przeglądarkach internetowych.
Obecnie, jedynie Chrome nie używa OCSP (zamiast tego posługuje się CRLSets). Pozostałe przeglądarki, czyli: Firefox, Internet Explorer, Opera i Safari przy weryfikowaniu statusu certyfikatów korzystają z OCSP. Warto jednak zaznaczyć, że pomiędzy tymi przeglądarkami także występują pewne różnice. Na przykład Firefox weryfikując certyfikat korzysta wyłącznie z OCSP, a IE w przypadku niedostępności serwera OCSP przechodzi do weryfikacji opartej na CRLs.
W kolejnej części przedstawię strukturę żądania i odpowiedzi OCSP.
Fajnie się zapowiada :)
Z niecierpliwością czekam na następne posty.