Doświadczenie w wykorzystaniu technologii Rutoken do rejestracji i autoryzacji użytkowników w systemie (część 3)

Dzień dobry!

W poprzedniej części Z sukcesem stworzyliśmy własne centrum certyfikacji. Jak może się to przydać do naszych celów?

Za pośrednictwem lokalnego urzędu certyfikacji możemy wystawiać certyfikaty, a także weryfikować podpisy na tych certyfikatach.

Wydając użytkownikowi certyfikat, urząd certyfikacji korzysta ze specjalnego żądania certyfikatu Pkcs#10, które ma format pliku „.csr”. To żądanie zawiera zakodowaną sekwencję, którą urząd certyfikacji wie, jak poprawnie przeanalizować. Żądanie zawiera zarówno klucz publiczny użytkownika, jak i dane do wytworzenia certyfikatu (tablica asocjacyjna z danymi o użytkowniku).

O tym, jak otrzymać wniosek o certyfikat, przyjrzymy się w następnym artykule, a w tym artykule chcę podać główne polecenia urzędu certyfikacji, które pomogą nam wykonać nasze zadanie po stronie backendu.

Najpierw musimy więc stworzyć certyfikat. W tym celu używamy polecenia:

openssl ca -batch -in user.csr -out user.crt

ca to polecenie openSSL powiązane z urzędem certyfikacji,
-batch - anuluje żądania potwierdzenia podczas generowania certyfikatu.
user.csr — żądanie utworzenia certyfikatu (plik w formacie .csr).
user.crt - certyfikat (wynik polecenia).

Aby to polecenie zadziałało, urząd certyfikacji musi być skonfigurowany dokładnie tak, jak opisano w poprzedniej części artykułu. W przeciwnym razie konieczne będzie dodatkowe określenie lokalizacji certyfikatu głównego urzędu certyfikacji.

Polecenie weryfikacji certyfikatu:

openssl cms -verify -in authenticate.cms -inform PEM -CAfile /Users/……/demoCA/ca.crt -out data.file

cms to polecenie openSSL używane do podpisywania, weryfikowania, szyfrowania danych i innych operacji kryptograficznych przy użyciu openSSL.

-verify - w tym przypadku weryfikujemy certyfikat.

Authenticate.cms - plik zawierający dane podpisane certyfikatem wydanym poprzednim poleceniem.

-inform PEM - używany jest format PEM.

-CAfile /Users/……/demoCA/ca.crt - ścieżka do certyfikatu głównego. (bez tego polecenie u mnie nie zadziałało, chociaż ścieżki do ca.crt zostały zapisane w pliku openssl.cfg)

-out data.file — wysyłam odszyfrowane dane do pliku data.file.

Algorytm korzystania z urzędu certyfikacji po stronie zaplecza jest następujący:

  • Rejestracja Użytkownika:
    1. Otrzymujemy żądanie utworzenia certyfikatu i zapisania go do pliku user.csr.
    2. Zapisujemy pierwsze polecenie tego artykułu do pliku z rozszerzeniem .bat lub .cmd. Uruchamiamy ten plik z kodu, po wcześniejszym zapisaniu żądania utworzenia certyfikatu do pliku user.csr. Otrzymujemy plik z certyfikatem user.crt.
    3. Odczytujemy plik user.crt i wysyłamy go do klienta.

  • Autoryzacja użytkownika:
    1. Otrzymujemy od klienta podpisane dane i zapisujemy je do pliku Authenticate.cms.
    2. Zapisz drugie polecenie z tego artykułu w pliku z rozszerzeniem .bat lub .cmd. Uruchamiamy ten plik z kodu, po uprzednim zapisaniu podpisanych danych z serwera w pliku Authenticate.cms. Otrzymujemy plik z odszyfrowanymi danymi data.file.
    3. Odczytujemy plik data.file i sprawdzamy te dane pod kątem ważności. Opisano co dokładnie sprawdzić w pierwszym artykule. Jeśli dane są prawidłowe, autoryzację użytkownika uważa się za pomyślną.

Do implementacji tych algorytmów można użyć dowolnego języka programowania, który służy do pisania backendu.

W następnym artykule przyjrzymy się, jak pracować z wtyczką Retoken.

Dziękuję za uwagę!

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

Dodaj komentarz