Important
Acest driver este încă o implementare timpurie de tip „Proof of Concept” care implementează doar funcțiile necesare pentru operarea serverelor TLS, cum ar fi, de exemplu, un server HTTPS.
Accesarea unui NetHSM utilizând driverul PKCS#11#
Descărcați driverul PKCS#11 pentru NetHSM.
Modificați fișierul de configurare p11nethsm.conf în funcție de configurația dvs. (de exemplu, adresa, numele operatorului) și stocați-l în $HOME/.nitrokey, /etc/nitrokey/ sau în dosarul în care este executată aplicația dvs.
Criptare și descifrarea#
După ce ați creat o cheie (aici: ID 42) cu mecanismul corespunzător, o puteți utiliza pentru criptare și decriptare, dar mai întâi trebuie să creați cheia:
$ 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
Acum puteți cripta:
$ 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 decriptează:
$ pkcs11-tool --module p11nethsm.so -v --decrypt --mechanism RSA-PKCS-OAEP --input-file encrypted.data --id $HEXID --hash-algorithm SHA512
Semnarea#
Mai întâi, creați din nou cheia:
$ 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
După ce ați creat o cheie (aici: ID 23) cu mecanismul corespunzător, o puteți utiliza pentru semnare:
$ 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