Integrointi#
Luvussa kuvataan eri tehtäviä koskevia prosesseja, ja se on suunnattu kaikille käyttäjäryhmille.
REST-API#
NetHSM:n ensisijainen käyttöliittymä on nykyaikainen REST-API, joka takaa parhaan suorituskyvyn ja toimivuuden. API-määrittely on saatavilla OpenAPI-muodossa, ja sitä voi tarkastella ja testata API-selaimella.
PKCS#11#
NetHSM tukee PKCS#11-standardia. Tarvittava ajuri on saatavilla osoitteesta ` <https://github.com/Nitrokey/nethsm-pkcs11>` __. Arkisto sisältää lähdekoodin ja kirjastot eri käyttöjärjestelmille. ` PKCS#11-oppaassa <pkcs11-setup.html>`_ kuvataan käyttö yksityiskohtaisesti.
Kehittäminen ja testaus#
Demo Instanssi#
Julkinen NetHSM-demoinstanssi on saatavilla osoitteessa nethsmdemo.nitrokey.com. Se nollataan kahdeksan tunnin välein (CET 6:00, 14:00, 22:00). Käyttäjä ”admin”, salasana ”adminadmin”, lukituksen avaussalasana ”unlockunlock”.
Säiliön kuva#
Kontti-imago on jaettu OCI-imagena, ja sen saa osoitteesta Docker Hub. Sitä voidaan ajaa paikallisesti yhteensopivalla suoritinohjelmalla, esimerkiksi Dockerilla tai Podmanilla.
NetHSM-laitteistoon verrattuna seuraavia toimintoja ei ole toteutettu ohjelmistosäiliön REST API:ssa:
verkon kokoonpano
tehdasasetusten palautus
uudelleenkäynnistys
ohjelmistopäivitys
Säiliö voidaan suorittaa seuraavasti.
$ sudo docker run --rm -ti -p8443:8443 nitrokey/nethsm:testing
$ podman run --rm -ti -p8443:8443 docker.io/nitrokey/nethsm:testing
Tämä ajaa NetHSM:ää Unix-prosessina kontin sisällä ja paljastaa REST API:n portissa 8443 HTTPS-protokollan kautta.
NetHSM:ää voidaan käyttää Unix-prosessina, mutta sitä voidaan käyttää myös KVM:n tukemana unikernelinä.
Säiliö voidaan suorittaa seuraavasti.
$ docker run -ti --rm -p 8443:8443 --device /dev/net/tun --device /dev/kvm --cap-add=NET_ADMIN nitrokey/nethsm:testing
Tämä ajaa NetHSM:ää yhtenä ytimenä KVM-virtuaalikoneen sisällä. Kontti avaa REST API:n HTTPS-protokollan kautta rajapinnalla tap200, jonka IP-osoite on 192.168.1.100 ja portti 8443.
Tärkeä
Säiliö käyttää itse allekirjoitettua TLS-varmentetta. Varmista, että käytät oikeita yhteysasetuksia yhteyden muodostamiseksi. Lisätietoja on luvussa NetHSM:n käyttöönotto.
Integrointi mukautettuun sovellukseen#
NetHSM:n integroimiseksi omiin mukautettuihin sovelluksiin on saatavilla asiakaskirjastoja lähes kaikille ohjelmointikielille. Tässä ovat kirjastot Python ja Rust sekä tämä kolmannen osapuolen Rust crate. Kaikille muille ohjelmointikielille suosittelemme OpenAPI Generator.
Kaikkien käytettävissä olevien kielten luettelo voidaan hakea seuraavasti.
$ docker run --rm -ti openapitools/openapi-generator-cli list -i stable
$ podman run --rm -ti openapitools/openapi-generator-cli list -i stable
NetHSM-asiakasohjelma voidaan luoda ohjelmointikielellesi seuraavasti.
$ 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
Tuotettu asiakaskoodi, tässä esimerkissä JavaScript, luodaan hakemistoon ./out/
. Tämä kansio sisältää myös tarvittavan dokumentaation, miten sitä käytetään.
Tärkeä
Jos Podmania käytetään SELinuxin käyttöönoton yhteydessä, voidaan tarvita merkintä niteen kiinnitykseen. SELinuxin tila voidaan pyytää komennolla sestatus |grep "Current mode"
. Jos tilaksi on asetettu enforcing
, kontekstia on muutettava. Tällöin volyymin kiinnitys on jälkikäteen määriteltävä komennolla :z
, jolloin tuloksena on -v "${PWD}/out:/out:z"
.
Komentorivin käyttöliittymä#
Käyttäjät voivat hallinnoida ja käyttää NetHSM:ää erillisen komentorivikäyttöliittymän (CLI) avulla. Nitrokey tarjoaa nitropy
, joka on jaettu Python-pohjaisessa pynitrokey-ohjelmassa. ` nethsm` on olemassa vaihtoehtoinen kolmannen osapuolen sovellus, joka on kehitetty Rust crate nethsm-cli.