3. Zakres prac

Aby spełnić wymagania opisane w scenariuszach potrzebne są prace w następującym zakresie:

  1. modyfikacja interfejsu www bazy LDAP w celu wyświetlania informacji o certyfikatach w sposób pełny i jednoznaczny (scenariusz 4)

  2. modyfikacja narzędzi PKI aby uwzględniały wstawianie Certyfikatu do bazy LDAP po jego wydaniu (scenariusz 1 punkt 4)

  3. stworzenie narzędzia do automatycznej aktualizacji certyfikatów publikowanych w bazie LDAP (scenariusz 3, 2)

Ogólne założenia projektowe:

3.1. Rozszerzenie funkcjonalności interfejsu WWW bazy LDAP

Interfejs WWW zostanie rozszerzony o dwie dodatkowe funkcjonalności:

  1. Wyświetlanie listy WAŻNYCH certyfikatów dla każego adresu email danego użytkownika

  2. Wyświetlanie listy WSZYSTKICH certyfikatów danego użytkownika

Założenia ad.1:

Założenia ad.2:

Symbole certyfikatów:

Przewiduje się, ze certyfikaty prezentowane będą w formie graficznej, co ułatwi użytkownikowi szybką ocenę stanu ważności każdego z nich.

Powinna istnieć możliwość szybkiego pobrania certyfikatu przez przeglądarkę za pomocą kliknięcia w wybrany symbol.

Przeglądarka powinna natomiast rozpoznawać pobierane dane jako dane certyfikatu.

3.2. Modyfikacja interfejsu WWW

W celu osiągnięcia zamierzonej funkcjonalności istniejący interfejs WWW (utworzony w PHP) zostanie rozszerzony o poniższe funkcje:

  1. pobierającą certyfikaty z bazy LDAP i przetwarzającą je na wewnętrzny format base64

  2. pobierającą wybrane informacje z certyfikatu (takie jak data ważności czy adres e-mail)

  3. weryfikującą ważność certyfikatu

  4. wyśwetlającą certyfikat z możliwością pobrania go do przeglądarki

Ad. 1:

Certyfikaty w bazie LDAP przechowywane są w formacie binarnym, dlatego do ich pobrania konieczne będzie wykorzystanie odrębnych funkcji php. Dane będą też przekazywane w parametrach GET protokołu HTTP, dlatego celowa wydaje się konwersja tych danych do formatu base64.

Ad. 2:

Dane takie jak adres e-mail, numer seryjny lub data ważności są zakodowane w certyfikacie protokołem X509 i mogą zostać odczytane za pomocą odpowiednich funkcji openssl. Pewnych funkcji obsługi certyfikatów dostarcza php-openssl, lecz jest to jeszcze produkt niestabilny i wciąż ma duże braki. Alternatywę stanowią wywołania systemowe komend openssl z odpowiednimi parametrami.

Ad. 3:

Podobnie jak w przypadku funkcji X509, również weryfikacja certyfikatu musi odbywać się z wykorzystaniem wywołań komend systemu operacyjnego. Dodatkowo przewiduje się sprawdzenie, czy numer seryjny certyfikatu nie widnieje na liście cofniętych certyfikatów (CRL) - w takim bowiem przypadku certyfikat zostanie uznany za nieważny.

Ad. 4:

Funkcje wyświetlające certyfikat korzystać będą z opisanych w punkcie 3 metod weryfikacji w celu pobrania odpowiedniego symbolu.