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#

  1. Descărcați driverul PKCS#11 pentru NetHSM.

  2. 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