Belangrijk

Dit stuurprogramma is nog een vroege “Proof of Concept” implementatie die alleen de functies implementeert die nodig zijn voor het bedienen van TLS servers, zoals bijvoorbeeld een HTTPS server.

Toegang tot een NetHSM met het PKCS#11 stuurprogramma#

  1. Download het PKCS#11 stuurprogramma voor NetHSM.

  2. Wijzig het configuratiebestand p11nethsm.conf volgens uw instellingen (bijv. adres, naam operator) en sla het op in $HOME/.nitrokey, /etc/nitrokey/, of in de map waar uw applicatie wordt uitgevoerd.

Versleutelen & ontsleutelen#

Nadat u een sleutel (hier: ID 42) met het overeenkomstige mechanisme hebt aangemaakt, kunt u die gebruiken voor encryptie en decryptie, maar eerst moet u de sleutel aanmaken:

$ 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

Nu kun je coderen:

$ 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

… En ontcijferen:

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

Ondertekening#

Maak eerst de sleutel opnieuw:

$ 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

Nadat u een sleutel (hier: ID 23) met het overeenkomstige mechanisme hebt aangemaakt, kunt u die gebruiken om te ondertekenen:

$ 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