INTEGRITY Dokumentace

Azure Dedicated HSM

Tento tutoriál používá Azure Dedicated HSM : implementace certifikovaná podle FIPS 140-2 Level 3 založená na zařízení Gemalto SafeNet Luna a790.


Než začnete

Ujistěte se, že máte:


1. Vytvoření, přiřazení a inicializace nového oddílu

Prvním krokem je vytvoření oddílu HSM, který si můžete představit jako samostatný logický HSM v rámci vašeho zařízení Azure Dedicated HSM.

vm$ ssh tenantadmin@hsm

[local_host] lunash:>hsm login
  Please enter the HSM Administrators' password:
  > ********


'hsm login' successful.


Command Result : 0 (Success)

[local_host] lunash:>partition create -partition KeylessSSL


          Type 'proceed' to create the partition, or
          'quit' to quit now.
          > proceed
'partition create' successful.


Command Result : 0 (Success)

Dále je potřeba přiřadit oddíl klientovi, v tomto případě vašemu serveru klíčů.

[local_host] lunash:>client assignpartition -client azure-keyless -partition KeylessSSL


'client assignPartition' successful.


Command Result : 0 (Success)

Po přiřazení oddílu spusťte lunacm z vašeho virtuálního serveru a inicializujte oddíl.

vm$ lunacm
lunacm (64-bit) v7.2.0-220. Copyright (c) 2018 SafeNet. All rights reserved.


  Available HSMs:

  Slot Id ->              0
  Label ->
  Serial Number ->        XXXXXXXXXXXXX
  Model ->                LunaSA 7.2.0
  Firmware Version ->     7.0.3
  Configuration ->        Luna User Partition With SO (PW) Signing With Cloning Mode
  Slot Description ->     Net Token Slot


  Current Slot Id: 0

lunacm:>partition init -label KeylessSSL -domain cloudflare

  Enter password for Partition SO: ********

  Re-enter password for Partition SO: ********

  You are about to initialize the partition.
  All contents of the partition will be destroyed.

  Are you sure you wish to continue?

  Type 'proceed' to continue, or 'quit' to quit now ->proceed

Command Result : No Error

2. Vygenerování páru klíčů RSA a žádosti o podepsání certifikátu (CSR)

Než spustíte níže uvedené příkazy, ověřte si u svého týmu pro informační bezpečnost a/nebo kryptografii schválené postupy pro vytváření klíčů ve vaší organizaci.

# cmu generatekeypair -keyType=RSA -modulusBits=2048 -publicExponent=65537 -sign=1 -verify=1 -labelpublic=myrsakey -labelprivate=myrsakey -keygenmech=1

Please enter password for token in slot 0 : ********

# cmu list

Please enter password for token in slot 0 : ********
handle=51 label=myrsakey
handle=48 label=myrsakey

Pomocí klíče vytvořeného v předchozím kroku vygenerujte CSR, který lze odeslat k podpisu veřejně důvěryhodné certifikační autoritě (CA).

# cmu requestCertificate -c="US" -o="Example, Inc." -cn="azure-dedicatedhsm.example.com" -s="California" -l="San Francisco" -publichandle=48 -privatehandle=51 -outputfile="rsa.csr" -sha256withrsa

Please enter password for token in slot 0 : ********
Using "CKM_SHA256_RSA_PKCS" Mechanism

3. Získejte podepsaný certifikát od své certifikační autority (CA) a nahrajte ho

Poskytněte CSR vytvořený v předchozím kroku preferované certifikační autoritě (CA) vaší organizace, prokažte podle požadavků, že doménu ovládáte, a poté stáhněte podepsané certifikáty SSL. Postupujte podle pokynů uvedených v Nahrání certifikátů Keyless SSL.


4. Upravte konfigurační soubor gokeyless a restartujte službu

Nakonec je třeba upravit konfigurační soubor, který server klíčů načte při spuštění. Nezapomeňte změnit object=mykey a pin-value=username:password hodnoty tak, aby odpovídaly zadanému štítku klíče a vámi vytvořenému uživateli CU.

Otevřete /etc/keyless/gokeyless.yaml a bezprostředně poté:

private_key_stores:
  - dir: /etc/keyless/keys

přidat:

- uri: pkcs11:token=KeylessSSL;object=myrsakey?module-path=/usr/safenet/lunaclient/lib/libCryptoki2_64.so&pin-value=password&max-sessions=1

Po uložení konfiguračního souboru restartujte gokeyless a ověřte, že se úspěšně spustil.

sudo systemctl restart gokeyless.service
sudo systemctl status gokeyless.service -l