Delen via


Verificatie in Azure Cloud HSM

Verificatie is een cruciaal aspect van het veilig openen en werken binnen Azure Cloud HSM. In dit artikel vindt u een overzicht van verificatiemethoden, waaronder opdrachtregelinterface (CLI), PKCS#11, Java Cryptography Extension (JCE) en OpenSSL. Dit artikel bevat ook aanbevolen procedures voor multithreading en sessieafhandeling.

Cloud HSM CLI-verificatie

U kunt zich verifiëren met behulp van CLI-hulpprogramma's, zoals azcloudhsm_util in de interactieve modus of in de modus met één opdracht. In de interactieve modus, gebruik de login opdracht. Voor de modus met één opdracht, neem singlecmd op en specificeer parameters voor loginHSM. U wordt aangeraden uw HSM-referenties veilig op te slaan wanneer uw toepassing deze niet gebruikt.

Interactieve modus

./azcloudhsm_util
loginHSM -u CU -s cu1 -p user1234

Modus met één opdracht

sudo ./azcloudhsm_util singlecmd loginHSM -u CU -s cu1 -p user1234 findKey

PKCS#11-authenticatie

In PKCS#11 meldt u zich aan met behulp van de C_Login API nadat u een sessie hebt geopend met behulp van C_OpenSession. U hoeft C_Login slechts één keer per slot (Cloud HSM-cluster) te gebruiken. Nadat u zich met succes hebt aangemeld, kunt u extra sessies openen met C_OpenSession zonder u opnieuw aan te melden.

char pPin[256] = "cu1:user1234";
…
rv = (func_list->C_Initialize) (NULL);
rv = (func_list->C_GetTokenInfo) (slot, &token_info);
rv = (func_list->C_OpenSession) (slot, CKF_SERIAL_SESSION | CKF_RW_SESSION, NULL, NULL, &session_rw);
rv = (func_list->C_Login) (session_rw, CKU_USER, (CK_UTF8CHAR_PTR) pPin, n_pin);
…

Zie de handleiding voor het integreren van PKCS#11 met Azure Cloud HSM voor codevoorbeelden voor verificatie bij PKCS#11.

JCE-authenticatie

De JCE-provider voor Azure Cloud HSM biedt ondersteuning voor zowel impliciete als expliciete aanmeldingsmethoden. Elk is geschikt voor verschillende use cases.

U wordt aangeraden waar mogelijk impliciete aanmelding te gebruiken, omdat de SDK autonoom verificatie beheert. Deze methode is met name nuttig als uw toepassing de verbinding met het cluster verbreekt en opnieuw moet worden geverifieerd. Impliciete aanmelding vereenvoudigt ook het opgeven van referenties voor uw toepassing tijdens de integratie met platforms waar directe controle over toepassingscode niet haalbaar is.

LoginManager lm = LoginManager.getInstance();
lm.login("PARTITION_1","cu1", "user1234");
…
lm.logout();
…

Raadpleeg de handleiding voor het integreren van JCE met Azure Cloud HSM voor meer informatie over aanmeldingsmethoden.

OpenSSL-verificatie

Wanneer u een OpenSSL-engine gebruikt voor Azure Cloud HSM, leveren omgevingsvariabelen de referenties op. U wordt aangeraden uw HSM-referenties veilig op te slaan wanneer uw toepassing deze niet gebruikt. In het ideale voorbeeld configureert u uw omgeving om deze omgevingsvariabelen automatisch op te halen en in te stellen om handmatige invoer te voorkomen.

export azcloudhsm_password="cu1:user1234" 
export azcloudhsm_openssl_conf=/usr/local/bin/AzureCloudHSM-ClientSDK-1.0.4.0/azcloudhsm_openssl_dynamic.conf
export LD_LIBRARY_PATH=/usr/local/lib64/AzureCloudHSM-ClientSDK-1.0.4.0/:$LD_LIBRARY_PATH
…
sudo ./azcloudhsm_client azcloudhsm_client.cfg > /dev/null 2>&1 &
openssl genpkey -algorithm RSA -out private_key.pem -engine azcloudhsm_openssl
…

Raadpleeg de handleiding voor het integreren van OpenSSL met Azure Cloud HSM voor verificatiedetails met OpenSSL.

Multithreading technieken

Azure Cloud HSM ondersteunt multithreaded toepassingen, maar er zijn overwegingen voor het afhandelen van deze toepassingen:

  • PKCS#11: Initialiseer de PKCS#11-bibliotheek met slechts C_Initialize één keer. Wijs elke thread een eigen sessie toe met behulp van C_OpenSession. Vermijd het gebruik van dezelfde sessie in meerdere threads.
  • JCE: Initialiseer de Azure Cloud HSM-provider slechts één keer. Vermijd het delen van exemplaren van SPI-objecten (Service Provider Interface) tussen threads. Gebruik bijvoorbeeld de objecten Cipher, Signature, Digest, Mac, KeyFactory en KeyGenerator alleen binnen hun respectieve threadcontexten.

Herhaalde pogingen voor integratie van HSM-bewerkingen

Microsoft kan een HSM in uw Azure Cloud HSM-cluster verwisselen voor operationele of onderhoudsdoeleinden, bijvoorbeeld als een apparaat uitvalt. Om uw toepassing voor te bereiden op dergelijke scenario's, raden we u aan om logica voor opnieuw proberen aan de clientzijde toe te voegen aan alle bewerkingen die naar uw cluster worden verzonden. Deze installatie verwacht dat de volgende nieuwe pogingen voor mislukte bewerkingen, ongeacht of deze zijn veroorzaakt door vervangingen of tijdelijke onderhoudsstoringen, succesvol zijn.

Verwerking van cloud-HSM-clientsessies

De Azure Cloud HSM-client meldt zich aan bij alle HSM-sessies wanneer een toepassing zich aanmeldt of afmeldt. Als een tweede toepassing deze gebruikt azurecloudhsm_client, worden dezelfde sessies gedeeld en worden dezelfde aanmeldingsreferenties overgenomen als deze wordt uitgevoerd vanaf dezelfde host. Het azurecloudhsm_client hulpprogramma houdt bij welke toepassingen zich proberen aan te melden. Hiermee kunnen correct aangemelde toepassingen opdrachten uitvoeren waarvoor verificatie is vereist.

Als u bijvoorbeeld bent aangemeld met azurecloudhsm_util en u probeert uw toepassing of een sleutelhulpprogramma uit te voeren in een ander terminalvenster met de Azure Cloud HSM-provider, krijgt u een foutmelding omdat er al een actieve sessie open is. U moet de azurecloudhsm_util sessie van uw toepassing sluiten om een nieuwe sessie te creëren waarbij azurecloudhsm_client op uw host actief is, zodat deze kan worden geverifieerd.