PKCS#11 beállítása#

Telepítés#

A NetHSM PKCS#11 modult vagy előfordított bináris formában szerezheti be, vagy lefordíthatja a forrásból.

Előre lefordított binárisok#

  1. Töltse le a rendszerének megfelelő modulfájlt a releases oldalról az adattárból.

  2. Másolja a modulfájlt abba a könyvtárba, ahol a PKCS#11 alkalmazások várják.

Fordítás forrásból#

  1. Telepítse a Rust toolchain.

  2. Töltse le és töltse ki a forrást a releases oldalról vagy klónozza a repository-t.

  3. Futtassa a cargo build --release a forráskönyvtárban.

Konfiguráció#

Alapértelmezés szerint a modul a következő helyen keresi a konfigurációs fájlokat:

  • „/etc/nitrokey/p11nethsm.conf

  • „/usr/local/etc/nitrokey/p11nethsm.conf

  • „$HOME/.config/nitrokey/p11nethsm.conf

Ha több fájl van jelen, a konfigurációkat egyesíti, így a modul az összes konfigurációs fájl slotjait fogja használni.

A konfigurációs fájl helyét manuálisan is beállíthatod (csak ez lesz olvasva) az env változóval P11NETHSM_CONFIG_FILE (pl. P11NETHSM_CONFIG_FILE=./p11nethsm.conf).

Konfigurációs fájl formátuma#

A konfiguráció yaml-formátumú:

# Set this option to true to enable the compatibility option for the C_SetAttributeValue() function.
# This allows the applications using the Java Sun PKCS11 module (like EJBCA) to generate keys.
# When using this, the names given to the keys will be ignored and the keys will have random names.
# Under the hood it will store in memory the name given to the key when calling C_SetAttributeValue(). When a certificate is uploaded it will check if the name was previously passed to C_SetAttributeValue() and translate it to the real name on the NetHSM.
enable_set_attribute_value: false

# You can set the log file location here.
# If no value is set the module will output to stderr.
# If a value is set it will output to the file.
log_file: /tmp/p11nethsm.log
# Optional log level
log_level: Debug

# Each "slot" represents a NetHSM server
slots:
  - label: LocalHSM                        # Name you NetHSM however you want
    description: Local HSM (docker)        # Optional description

    # Users connecting to the NetHSM server
    operator:
      username: "operator"
      password: "env:LOCALHSMPASS"
    administrator:
      username: "admin"

    # List the NetHSM instances
    instances:
      - url: "https://keyfender:8443/api/v1"   # URL to reach the server
        # When the NetHSM has a self-signed certificate, it can be verified by a sha256 fingerprint of the NetHSM's certificate:
        sha256_fingerprints:
          - "31:92:8E:A4:5E:16:5C:A7:33:44:E8:E9:8E:64:C4:AE:7B:2A:57:E5:77:43:49:F3:69:C9:8F:C4:2F:3A:3B:6E"

Instances#

Ha több NetHSM példány szerepel ugyanabban a foglalatban, akkor ezeket a példányokat fürtben kell konfigurálni. A felhasználók hitelesítő adatainak és a kulcsoknak minden példányban azonosnak kell lenniük.

A modul a példányokat körkörösen használja, és ha az egyik meghibásodik, egy másik példányt próbál meg.

Felhasználók#

Az operátor és a rendszergazda felhasználó nem kötelező, de a modul nem indul el, ha nincs felhasználó beállítva. Ez azért van így, hogy a modult csak rendszergazdai, csak üzemeltetői vagy mindkettő felhasználóval egyszerre konfigurálhassa.

Ha a két felhasználó be van állítva, a modul alapértelmezés szerint az operátort használja, és csak akkor használja a rendszergazda felhasználót, ha a műveletnek szüksége van rá.

A hagyományos PKCS11 felhasználó a NetHSM operátorhoz, a PKCS11 SO pedig a NetHSM rendszergazdához van hozzárendelve.

Jelszavak#

A jelszó többféle módon is megadható:

  • Egyszerű szövegben a konfigurációban password: "mypassword"

  • A modul által a env: előtaggal olvasott környezeti változóban: env:ENV_STORING_THE_PASSWORD

  • A pkcs11 bejelentkezési funkcióján keresztül, például a pcks11-tool esetében: pkcs11-tool --module libnethsm_pkcs11.so -p opPassphrase Az admin jelszó megadásához a --so-pin helyett a ` ` jelszót kell használni: pkcs11-tool --module libnethsm_pkcs11.so --login --login-type so --so-pin Administrator

Ha a felhasználó jelszava nincs megadva a konfigurációs fájlban, akkor a jelszó megadásához bejelentkezésre van szükség (3. módszer).

A nem működő NetHSM olyan slotnak minősül, amelyben nincs jelen a token.