Dôležité

Tento ovládač je ešte stále ranou implementáciou Proof of Concept, ktorá implementuje len funkcie potrebné na prevádzku serverov TLS, ako je napríklad server HTTPS.

Prístup k zariadeniu NetHSM pomocou ovládača PKCS#11#

  1. Stiahnite si ` ovládač PKCS#11 <https://github.com/Nitrokey/nethsm-pkcs11>`_ pre NetHSM.

  2. Upravte konfiguračný súbor p11nethsm.conf podľa svojho nastavenia (napr. adresa, meno operátora) a uložte ho do adresára $HOME/.nitrokey, /etc/nitrokey/ alebo do adresára, v ktorom je spustená vaša aplikácia.

Šifrovanie a dešifrovanie#

Po vytvorení kľúča (tu: ID 42) pomocou príslušného mechanizmu ho môžete použiť na šifrovanie a dešifrovanie, ale najprv by ste mali vytvoriť kľúč:

$ 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 môžete šifrovať:

$ 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

… A dešifrovanie:

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

Podpisovanie#

Najprv znovu vytvorte kľúč:

$ 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 vytvorení kľúča (tu: ID 23) s príslušným mechanizmom ho môžete použiť na podpisovanie:

$ 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