Σημαντικό

Αυτό το πρόγραμμα οδήγησης είναι ακόμα μια πρώιμη υλοποίηση Proof of Concept που υλοποιεί μόνο τις λειτουργίες που είναι απαραίτητες για τη λειτουργία διακομιστών TLS, όπως για παράδειγμα ένας διακομιστής HTTPS.

Πρόσβαση σε ένα NetHSM με χρήση του προγράμματος οδήγησης PKCS#11#

  1. Κατεβάστε το πρόγραμμα οδήγησης PKCS#11 για το NetHSM.

  2. Τροποποιήστε το αρχείο ρυθμίσεων p11nethsm.conf σύμφωνα με τις ρυθμίσεις σας (π.χ. διεύθυνση, όνομα χειριστή) και αποθηκεύστε το στο $HOME/.nitrokey, στο /etc/nitrokey/ ή στο φάκελο όπου εκτελείται η εφαρμογή σας.

Κρυπτογράφηση & αποκρυπτογράφηση#

Αφού δημιουργήσετε ένα κλειδί (εδώ: ID 42) με τον αντίστοιχο μηχανισμό, μπορείτε να το χρησιμοποιήσετε για κρυπτογράφηση και αποκρυπτογράφηση, αλλά πρώτα θα πρέπει να δημιουργήσετε το κλειδί:

$ 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

Τώρα μπορείτε να κρυπτογραφήσετε:

$ 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

… Και αποκρυπτογράφηση:

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

Υπογραφή#

Πρώτα δημιουργήστε ξανά το κλειδί:

$ 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

Αφού δημιουργήσετε ένα κλειδί (εδώ: ID 23) με τον αντίστοιχο μηχανισμό, μπορείτε να το χρησιμοποιήσετε για υπογραφή:

$ 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