OpenSSL#
Hoiatus
Privaatvõtme kättesaamise katse viib OpenSSL-i kokku. See on normaalne, sest privaatvõtmeid ei saa NetHSMist välja võtta. Selle asemel võib soovida hankida avalikku võtit (vt näide allpool).
Mootor#
Hoiatus
Kui kasutate mootorit (libp11) versiooniga 0.4.12 või vanem, siis põhjustab EdDSA võtme olemasolu NetHSM-is seda, et OpenSSL ei leia ühtegi võtit. Versioonis 0.4.12 ja vanemates versioonides loetleb mootor kõik NetHSMis olevad võtmed, kui võtit küsitakse. Võtme otsimisel sildi või id järgi on soovitatav kasutada versiooni 0.4.13 või uuemat või ehitada libp11 lähtekoodist. Mootori binaarsüsteem on src/.libs/pkcs11.so
.
OpenSSL-i mootoriliides on vana viis OpenSSL-i jaoks kohandatud tagakülgede rakendamiseks ja see on OpenSSL 3-s kaotanud kehtivuse. See on endiselt kõige stabiilsem viis NetHSM-i kasutamiseks koos OpenSSL-iga.
Sa pead seadistama PKCS#11 mooduli, järgides neid juhiseid.
Paigaldage mootor:
apt install libengine-pkcs11-openssl
dnf install openssl-pkcs11
pacman -S libp11
Järgmisena peate seadistama OpenSSL-i mootori kasutamiseks. Selleks tuleb lisada järgmised read oma openssl.cnf
faili:
openssl_conf = openssl_init
[openssl_init]
engines = engine_section
[engine_section]
pkcs11 = pkcs11_section
[pkcs11_section]
engine_id = pkcs11
dynamic_path = /usr/lib/x86_64-linux-gnu/engines-3/libpkcs11.so
MODULE_PATH = /usr/lib/x86_64-linux-gnu/pkcs11/libnethsm_pkcs11.so
init = 0
Märkus
OpenSSLile saab määrata OpenSSL-i konfiguratsioonifaili tee, kasutades keskkonnamuutujat OPENSSL_CONF
.
Hoiatus
Kui OpenSSL-i põhikonfiguratsioonifaili muudetakse nii, et see sisaldaks ainult neid ridu, võib see rikkuda teisi OpenSSL-i kasutavaid programme. Seega võiksite luua mootori jaoks eraldi konfiguratsioonifaili.
Asendage /usr/lib/x86_64-linux-gnu/pkcs11/libnethsm_pkcs11.so
varem paigaldatud PKCS#11 mooduli tee.
Asendage /usr/lib/x86_64-linux-gnu/engines-3/libpkcs11.so
installeeritud OpenSSL-mootori teekonnaga. See tee sõltub teie distributsioonist. Number engines-3
vastab teie OpenSSL-i versioonile. Debianis on OpenSSL 3 mootori tee /usr/lib/x86_64-linux-gnu/engines-3/libpkcs11.so
; Fedora puhul on see /usr/lib64/engines-3/libpkcs11.so
.
Nüüd saate kasutada võtmeid NetHSMis, kasutades PKCS#11 URIsid, näiteks:
engine:pkcs11:pkcs11:object=webserver;type=private
See kasutab võtit webserver
.
Märkus
Võtmete täieliku URI saate kätte käsuga p11tool
käsuga GnuTLS <https://gnutls.org/>:
p11tool --provider /usr/lib/x86_64-linux-gnu/pkcs11/libnethsm_pkcs11.so --list-all
Näidise käsk#
Asümmeetrilise võtmepaari avaliku võtme hankimine NetHSMist :
openssl pkey -engine pkcs11 -inform ENGINE -in "pkcs11:object=webserver;type=public" -pubout
Teenusepakkuja#
OpenSSLi pakkujate liides on uus viis OpenSSLi kohandatud tagakülgede rakendamiseks. ` pkcs11-provider backend <https://github.com/latchset/pkcs11-provider>`__ on veel varajases arengujärgus.
Sa pead seadistama PKCS#11 mooduli, järgides neid juhiseid.
Paigaldage teenusepakkuja. Fedora jaoks on olemas pakett nimega pkcs11-provider
. Teiste Linuxi distributsioonide puhul peate selle lähtekoodist koostama.
Seejärel tuleb OpenSSL konfigureerida teenusepakkuja kasutamiseks. Selleks tuleb lisada järgmised read oma openssl.cnf
faili:
openssl_conf = openssl_init
[openssl_init]
providers = provider_sect
[provider_sect]
pkcs11 = pkcs11_sect
[pkcs11_sect]
module = /home/sautax/git/pkcs11-provider/src/.libs/pkcs11.so
pkcs11-module-path = /usr/lib/libnethsm_pkcs11.so
activate = 1
Määra module
paigaldatud teenusepakkuja tee ja pkcs11-module-path
paigaldatud PKCS#11 mooduli tee.
Kui soovite määrata NetHSM-i vaikimisi teenusepakkujaks, saate lisada default = pkcs11
provider_sect
sektsiooni.
Märkus
OpenSSLile saab määrata OpenSSL-i konfiguratsioonifaili tee, kasutades keskkonnamuutujat OPENSSL_CONF
.
Hoiatus
Kui OpenSSL-i põhikonfiguratsioonifaili muudetakse nii, et see sisaldaks ainult neid ridu, võib see rikkuda teisi OpenSSL-i kasutavaid programme. Seega võiksite luua eraldi konfiguratsioonifaili teenusepakkuja jaoks.
Seejärel saate kasutada võtmeid NetHSM-is, kasutades PKCS#11 URIsid, näiteks:
openssl pkey -provider pkcs11 -in "pkcs11:object=rsakey" -pubout
Kui määrate NetHSMi vaikimisi teenusepakkujaks, võite jätta ära argumendi -provider pkcs11
.
Märkus
Praegu ei suuda teenusepakkuja URI võtmetüübi käsitsi määramisel võtit leida. Võite jätta URI-st välja ;type=private
või ;type=public
osa, et see toimiks.