Hardware Security Modules (HSM)¶
TeskaLabs SeaCat PKI podporuje hardwarové bezpečnostní moduly (HSM) s rozhraním PKCS#11.
Konkrétně se HSM používají pro generaci a správu privátních klíčů a také pro generaci náhodných čísel.
Warning
TeskaLabs SeaCat PKI v současnosti podporuje pouze jeden nakonfigurovaný modul PKCS#11, nelze nakonfigurovat více modulů v jedné instanci PKI. Můžete použít více tokenů stejného modulu.
Konfigurace¶
seacatpki.conf
:
[seacatpki:pkcs11:<identifikace>]
path=/cesta/k/pkcs11modulu.so
identifikace
je interní název PKCS#11 poskytovatele (např.softhsm2
)-
path
je umístění modulu PKCS#11 v souborovém systému -
session_persistence
je boolean příznak, který určuje, zda by měla být relace PKCS#11 udržována otevřená po použití (výchozí hodnota jetrue
). Některé tokeny uzavírají relaci po použití, takže tento příznak by měl být nastaven nafalse
pro takové tokeny. Nastavení tohoto příznaku nafalse
ovlivní výkon HSM.
Konfigurace autoskenování¶
Tento přístup znamená, že PKI automaticky prohledá tokeny PKCS#11 na dostupné privátní klíče.
seacatpki.conf
:
[seacatpki:pkcs11:<identifikace>]
path=/cesta/k/pkcs11modulu.so
tokens=
SoftHSMToken1,PIN1,tenant1
SoftHSMToken2,PIN2,tenant2
SoftHSMToken3,PIN2,tenant3
...
tokens
je seznam tokenů v HSM
Každý token je definován následovně:
token_name
je název tokenu (např.SoftHSMToken1
)pin
je PIN tokenu (např.PIN1
)tenant
je název nájemce, který má přístup k tokenu (např.tenant1
)
Explicitní konfigurace¶
Tento přístup znamená, že PKI použije pouze privátní klíče, které jsou explicitně nakonfigurovány v souboru seacatpki.conf
.
[seacatpki:pkcs11:<identifikace>]
path=/cesta/k/pkcs11modulu.so
[seacatpki:private_key:<nazev_klice>]
provider=pkcs11:<identifikace>
tenants=tenant1,tenant2
token_label=SoftHSMToken1
pin=PIN
cka_id=100002
nazev_klice
je interní název privátního klíče (např.my_rsa_key
)provider
je interní název modulu PKCS#11 (např.softhsm2
)tenants
je seznam nájemců, kteří mají přístup k tokenu (např.tenant1,tenant2
)token_label
je štítek tokenu (např.SoftHSMToken1
)pin
je PIN tokenu (např.PIN
)cka_id
je ID privátního klíče (např.100002
)
Požadavky na privátní klíče¶
Privátní klíče umístěné na tokeny PKCS#11 musí splňovat následující požadavky:
CKA_CLASS
musí býtCKO_PRIVATE_KEY
CKA_LABEL
musí být nastavenCKA_ID
musí být nastaven a unikátní pro každý privátní klíč- Musí existovat exportovatelný veřejný klíč (
CKA_CLASS
musí býtCKO_PUBLIC_KEY
) se stejnýmCKA_ID