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

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.