Ważne

Ten sterownik jest nadal wczesną implementacją typu Proof of Concept, która implementuje tylko funkcje niezbędne do obsługi serwerów TLS, takich jak na przykład serwer HTTPS.

Uzyskiwanie dostępu do urządzenia NetHSM za pomocą sterownika PKCS#11#

  1. Pobierz sterownik PKCS#11 dla programu NetHSM.

  2. Zmodyfikuj plik konfiguracyjny p11nethsm.conf zgodnie ze swoimi ustawieniami (np. adres, nazwa operatora) i zapisz go w $HOME/.nitrokey, /etc/nitrokey/ lub w folderze, w którym jest uruchamiana Twoja aplikacja.

Szyfrowanie iamp; Odszyfrowywanie#

Po utworzeniu klucza (tutaj: ID 42) za pomocą odpowiedniego mechanizmu można go używać do szyfrowania i deszyfrowania, ale najpierw należy utworzyć klucz:

$ KEYID=42
$ HEXID=$(echo ${KEYID}'\c' | xxd -ps)
$ curl -s -X GET https://nethsmdemo.nitrokey.com/api/v1/keys/$KEYID/public.pem -o public.pem

Teraz można szyfrować:

$ echo 'NetHSM rulez!' | openssl pkeyutl -encrypt -pubin -inkey public.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha512 -pkeyopt rsa_mgf1_md:sha512 -out encrypted.data

… i odszyfrować:

$ pkcs11-tool --module p11nethsm.so -v --decrypt --mechanism RSA-PKCS-OAEP --input-file encrypted.data --id $HEXID --hash-algorithm SHA512

Podpisywanie dokumentów#

Najpierw należy ponownie utworzyć klucz:

$ KEYID=23
$ HEXID=$(echo ${KEYID}'\c' | xxd -ps)
$ curl -s -X GET https://nethsmdemo.nitrokey.com/api/v1/keys/$KEYID/public.pem -o public.pem

Po utworzeniu klucza (tutaj: ID 23) za pomocą odpowiedniego mechanizmu można go użyć do podpisywania:

$ echo 'NetHSM rulez!' | pkcs11-tool --module p11nethsm.so -v --sign --mechanism SHA512-RSA-PKCS-PSS --output-file sig.data --id $HEXID
$ echo 'NetHSM rulez!' | openssl dgst -keyform PEM -verify public.pem -sha512 -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:-1 -signature sig.data