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

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

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

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.