Integratsioon#
Peatükis kirjeldatakse erinevate ülesannete protsesse ja see on suunatud kõikidele kasutajarühmadele.
REST-API#
NetHSMi peamine liides on kaasaegne REST-API, mis tagab parima jõudluse ja funktsionaalsuse. API spetsifikatsioon on saadaval OpenAPI formaadis ning seda saab kontrollida ja testida API-bauseris.
PKCS#11#
NetHSM toetab PKCS#11 standardit. Vajalik draiver on saadaval repositooriumist. See repositoorium sisaldab lähtekoodi ja raamatukogusid erinevate operatsioonisüsteemide jaoks. ` PKCS#11 juhend <pkcs11-setup.html>`_ kirjeldab kasutamist üksikasjalikult.
Arendus ja testimine#
Demo instants#
Avalik NetHSM-i demoinstants on saadaval aadressil nethsmdemo.nitrokey.com. See lähtestatakse iga kaheksa tunni järel (CET 6:00, 14:00, 22:00). Kasutaja „admin“, parool „adminadmin“, lukustuse avamise parool „unlockunlock“.
Konteineri pilt#
Konteineri kujutis on levitatud OCI-kujutisena ja selle saab kätte Docker Hubist. Seda saab käivitada lokaalselt ühilduva käivitajaga, nt Dockeriga või Podmaniga.
Võrreldes NetHSMi riistvaraga ei ole järgmised funktsioonid rakendatud tarkvarakonteineri REST API-s:
võrgu konfiguratsioon
tehase lähtestamine
taaskäivitamine
tarkvara uuendamine
Konteinerit saab täita järgmiselt.
$ sudo docker run --rm -ti -p8443:8443 nitrokey/nethsm:testing
$ podman run --rm -ti -p8443:8443 docker.io/nitrokey/nethsm:testing
See käivitab NetHSMi kui Unixi protsessi konteineri sees ja avab REST API portis 8443 HTTPS-protokolli kaudu.
Lisaks sellele, et NetHSM-i saab käivitada Unixi protsessina, saab seda käivitada ka KVM-i poolt toetatud unikernelina.
Konteinerit saab täita järgmiselt.
$ docker run -ti --rm -p 8443:8443 --device /dev/net/tun --device /dev/kvm --cap-add=NET_ADMIN nitrokey/nethsm:testing
See käivitab NetHSMi kui unikerneli KVM-i virtuaalmasina sees. Konteiner avab REST API HTTPS-protokolli kaudu liidesel tap200 IP-aadressiga 192.168.1.100 ja pordiga 8443.
Tähtis
Konteiner kasutab ise allkirjastatud TLS-sertifikaati. Veenduge, et ühenduse loomiseks kasutate õigeid ühendussätteid. Lisateavet leiate peatükist NetHSMi tutvustus.
Integreerimine kohandatud rakendusse#
NetHSMi integreerimiseks oma kohandatud rakendustesse on saadaval kliendikirjastikud peaaegu kõigi programmeerimiskeelte jaoks. Siin on raamatukogud Python ja Rust ning see kolmanda osapoole Rust crate. Kõigi teiste programmeerimiskeelte jaoks soovitame kasutada OpenAPI Generator.
Kõigi kättesaadavate keelte loetelu saab välja otsida järgmiselt.
$ docker run --rm -ti openapitools/openapi-generator-cli list -i stable
$ podman run --rm -ti openapitools/openapi-generator-cli list -i stable
NetHSMi kliendi saab genereerida teie programmeerimiskeele jaoks järgmiselt.
$ docker run --rm -ti -v "${PWD}/out:/out" openapitools/openapi-generator-cli generate -i=https://nethsmdemo.nitrokey.com/api_docs/nethsm-api.yaml -o out -g javascript
$ podman run --rm -ti -v "${PWD}/out:/out" openapitools/openapi-generator-cli generate -i=https://nethsmdemo.nitrokey.com/api_docs/nethsm-api.yaml -o out -g javascript
Genereeritud kliendikood, antud näites JavaScript, luuakse kataloogis ./out/
. See kaust sisaldab ka vajalikku dokumentatsiooni, kuidas seda kasutada.
Tähtis
Kui Podmani kasutatakse koos SELinuxi jõustamisega, võib olla vaja märgistada mahu kinnitus. SELinuxi režiimi saab küsida aadressiga sestatus |grep "Current mode"
. Kui režiimiks on määratud enforcing
, on vaja muuta konteksti. Sellisel juhul tuleb mahu mount’ile lisada postfixing :z
, mille tulemuseks on -v "${PWD}/out:/out:z"
.
Käsurea liides#
Kasutajad saavad NetHSMi hallata ja kasutada spetsiaalse käsurea liidesega (CLI). Nitrokey pakub nitropy
, mida levitatakse Pythonil põhinevas pynitrokey. Koos nethsm
on olemas alternatiivne kolmanda osapoole rakendus, mis on välja töötatud Rust crate’is nethsm-cli.