Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Jak to wszystko się zaczęło

Już na samym początku okresu samoizolacji otrzymałem pocztą list:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Pierwsza reakcja była naturalna: albo trzeba iść po żetony, albo trzeba je przynieść, ale od poniedziałku wszyscy siedzimy w domach, obowiązują ograniczenia w poruszaniu się, a kto to do cholery jest? Dlatego odpowiedź była całkiem naturalna:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

A jak wszyscy wiemy, od poniedziałku 1 kwietnia rozpoczął się okres dość rygorystycznej samoizolacji. Wszyscy przeszliśmy też na pracę zdalną i potrzebowaliśmy także VPN. Nasza sieć VPN jest oparta na OpenVPN, ale zmodyfikowana tak, aby obsługiwała rosyjską kryptografię i możliwość pracy z tokenami PKCS#11 i kontenerami PKCS#12. Naturalnie okazało się, że sami nie byliśmy całkiem gotowi do pracy przez VPN: wielu po prostu nie miało certyfikatów, a niektóre wygasły.

Jak przebiegł proces?

I tu na ratunek przychodzi narzędzie kryptoarmpkcs i zastosowanie CAFL63 (Centrum weryfikacji).

Narzędzie cryptoarmpkcs umożliwiło pracownikom przebywającym w izolacji i posiadającym tokeny na komputerach domowych generowanie żądań certyfikatów:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Pracownicy przesłali mi zapisane prośby e-mailem. Ktoś może zapytać: - A co z danymi osobowymi, ale jeśli przyjrzysz się uważnie, nie ma ich we wniosku. A samo żądanie jest chronione podpisem.

Po otrzymaniu żądanie certyfikatu jest importowane do bazy CAFL63 CA:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Następnie wniosek musi zostać odrzucony lub zatwierdzony. Aby rozpatrzyć wniosek należy go zaznaczyć, kliknąć prawym przyciskiem myszy i z rozwijanego menu wybrać „Podejmij decyzję”:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Sama procedura decyzyjna jest całkowicie przejrzysta:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Certyfikat wydawany jest w ten sam sposób, jedynie pozycja menu nosi nazwę „Wydaj certyfikat”:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Aby wyświetlić wystawiony certyfikat, możesz skorzystać z menu kontekstowego lub po prostu kliknąć dwukrotnie odpowiednią linię:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Teraz zawartość można przeglądać zarówno poprzez openssl (zakładka OpenSSL Text), jak i wbudowaną przeglądarkę aplikacji CAFL63 (zakładka Tekst certyfikatu). W tym drugim przypadku za pomocą menu kontekstowego można skopiować certyfikat w formie tekstowej, najpierw do schowka, a następnie do pliku.

W tym miejscu należy zwrócić uwagę, co zmieniło się w CAFL63 w porównaniu do pierwszej wersji? Jeśli chodzi o przeglądanie certyfikatów, już to zauważyliśmy. Stało się także możliwe wybranie grupy obiektów (certyfikaty, żądania, listy CRL) i przeglądanie ich w trybie stronicowania (przycisk „Wyświetl wybrane…”).

Chyba najważniejsze jest to, że projekt jest ogólnodostępny github. Oprócz dystrybucji dla Linuksa przygotowano dystrybucje dla Windows i OS X. Dystrybucja dla Androida ukaże się nieco później.

W porównaniu do poprzedniej wersji aplikacji CAFL63 zmienił się nie tylko sam interfejs, ale także, jak już wspomniano, dodano nowe funkcje. Przykładowo przeprojektowano stronę z opisem aplikacji i dodano bezpośrednie linki do pobierania dystrybucji:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Wielu pytało i nadal pyta, skąd można zdobyć GOST openssl. Tradycyjnie daję link, uprzejmie pod warunkiem Garex. Jak korzystać z tego openssl, jest napisane tutaj.
Ale teraz zestawy dystrybucyjne zawierają wersję testową openssl z rosyjską kryptografią.

Dlatego podczas konfigurowania urzędu certyfikacji można określić /tmp/lirssl_static dla systemu Linux lub $::env(TEMP)/lirssl_static.exe dla systemu Windows jako używany plik openssl:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

W takim przypadku konieczne będzie utworzenie pustego pliku lirssl.cnf i określenie ścieżki do tego pliku w zmiennej środowiskowej LIRSSL_CONF:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Zakładka „Rozszerzenia” w ustawieniach certyfikatu została uzupełniona o pole „Dostęp do informacji o urzędzie”, w którym można ustawić punkty dostępu do certyfikatu głównego CA oraz do serwera OCSP:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Często słyszymy, że urzędy certyfikacji nie akceptują generowanych przez siebie żądań (PKCS#10) od wnioskodawców lub, co gorsza, wymuszają tworzenie wniosków wraz z generowaniem pary kluczy na przewoźniku za pośrednictwem jakiegoś CSP. Odmawiają także generowania żądań na tokenach z nieodzyskiwalnym kluczem (na tym samym RuToken EDS-2.0) za pośrednictwem interfejsu PKCS#11. Dlatego zdecydowano się na dodanie do funkcjonalności aplikacji CAFL63 generowania żądań z wykorzystaniem mechanizmów kryptograficznych tokenów PKCS#11. Do włączenia mechanizmów tokenowych wykorzystano pakiet TclPKCS11. Tworząc wniosek do urzędu certyfikacji (strona „Wnioski o certyfikaty”, funkcja „Utwórz wniosek/CSR”) możesz teraz wybrać sposób, w jaki zostanie wygenerowana para kluczy (za pomocą openssl lub na tokenie), a samo żądanie zostanie podpisane:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Bibliotekę wymaganą do pracy z tokenem określa się w ustawieniach certyfikatu:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Odeszliśmy jednak od głównego zadania, jakim jest wydawanie pracownikom certyfikatów do pracy w korporacyjnej sieci VPN w trybie samoizolacji. Okazało się, że część pracowników nie posiada tokenów. Zdecydowano się na wyposażenie ich w kontenery zabezpieczone PKCS#12, gdyż pozwala na to aplikacja CAFL63. W pierwszej kolejności dla takich pracowników wykonujemy żądania PKCS#10 wskazując typ CIPF „OpenSSL”, następnie wystawiamy certyfikat i pakujemy go w PKCS12. Aby to zrobić, na stronie „Certyfikaty” wybierz żądany certyfikat, kliknij prawym przyciskiem myszy i wybierz „Eksportuj do PKCS#12”:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Aby mieć pewność, że z kontenerem wszystko jest w porządku, skorzystajmy z narzędzia cryptoarmpkcs:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Możesz już wysyłać wystawione certyfikaty do pracowników. Niektórym osobom po prostu wysyłane są pliki z certyfikatami (są to właściciele tokenów, ci, którzy wysłali żądania) lub kontenery PKCS#12. W drugim przypadku każdy pracownik otrzymuje hasło do kontenera drogą telefoniczną. Pracownicy ci muszą jedynie poprawić plik konfiguracyjny VPN, podając poprawnie ścieżkę do kontenera.

Jeśli chodzi o właścicieli tokenów, musieli oni również zaimportować certyfikat dla swojego tokena. Aby to zrobić, użyli tego samego narzędzia cryptoarmpkcs:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Teraz nastąpiły minimalne zmiany w konfiguracji VPN (etykieta certyfikatu na tokenie mogła się zmienić) i to wszystko, korporacyjna sieć VPN działa prawidłowo.

Szczęśliwe zakończenie

I wtedy dotarło do mnie, dlaczego ludzie mieliby przynosić mi żetony, czy też powinienem wysłać po nich posłańca. I wysyłam list o następującej treści:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Odpowiedź przychodzi następnego dnia:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Natychmiast wysyłam link do narzędzia cryptoarmpkcs:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Przed utworzeniem żądań certyfikatów zaleciłem wyczyszczenie tokenów:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Następnie przesłano prośby o certyfikaty w formacie PKCS#10 mailem i wydałem certyfikaty, które wysłałem na adres:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

A potem nadszedł przyjemny moment:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

Był też taki list:

Infrastruktura klucza publicznego. Wydawanie zaświadczeń w czasie samoizolacji

I po tym narodził się ten artykuł.

Można znaleźć dystrybucje aplikacji CAFL63 dla platform Linux i MS Windows

tutaj

Znajdują się dystrybucje narzędzia cryptoarmpkcs, w tym na platformę Android

tutaj

Źródło: www.habr.com

Dodaj komentarz