Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A hitelesítés kulcsfontosságú szempont a Azure felhőbeli HSM biztonságos eléréséhez és működtetéséhez. Ez a cikk a hitelesítési módszereket ismerteti, beleértve a parancssori felületet (CLI), a PKCS#11-et, a Java titkosítási bővítményt (JCE) és az OpenSSL-t. Ez a cikk a többszálú és a munkamenet-kezelés ajánlott eljárásait is ismerteti.
Támogatott hitelesítési módszerek
Azure felhőalapú HSM csak a jelszóalapú hitelesítést támogatja. Nem támogatja a PIN-kód beviteli eszközén (PED) keresztüli hitelesítést.
Felhőalapú HSM CLI-hitelesítés
A hitelesítést cli-eszközökkel végezheti el, például azcloudhsm_util interaktív vagy egyparancsos módban. Interaktív módban használja a loginHSM parancsot. Egyetlen parancs mód esetén adja meg a singlecmd és a paramétereket ehhez: loginHSM. Javasoljuk, hogy biztonságosan tárolja HSM-hitelesítő adatait, ha az alkalmazás nem használja őket.
Interaktív mód
./azcloudhsm_util
loginHSM -u CU -s cu1 -p user1234
Egyparancsos mód
sudo ./azcloudhsm_util singlecmd loginHSM -u CU -s cu1 -p user1234 findKey
PKCS#11 hitelesítés
A PKCS#11-ben a C_Login API használatával jelentkezik be, miután a C_OpenSession használatával megnyitott egy munkamenetet. Pontonként csak egyszer kell használnia C_Login (felhőalapú HSM-fürt). Miután sikeresen bejelentkezett, további munkameneteket is megnyithat anélkül C_OpenSession, hogy újra be kellene jelentkeznie.
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);
…
A PKCS#11-re való hitelesítésre vonatkozó kódpéldákat a PKCS#11 guide című cikkben találhatja meg, amely a PKCS#11 és a Azure Felhőalapú HSM integrálását ismerteti.
JCE-hitelesítés
A Azure felhőbeli HSM JCE-szolgáltatója implicit és explicit bejelentkezési módszereket is támogat. Mindegyik alkalmas különböző használati esetekre.
Javasoljuk, hogy amikor csak lehetséges, implicit bejelentkezést használjon, mert az SDK autonóm módon kezeli a hitelesítést. Ez a módszer különösen akkor hasznos, ha az alkalmazás megszakad a kapcsolatról a fürttel, és újrahitelesítést igényel. Az implicit bejelentkezés emellett lehetővé teszi az alkalmazás hitelesítő adatainak megadását olyan platformokkal való integráció során, ahol az alkalmazáskód közvetlen vezérlése nem lehetséges.
LoginManager lm = LoginManager.getInstance();
lm.login("PARTITION_1","cu1", "user1234");
…
lm.logout();
…
A bejelentkezési módszerekkel kapcsolatos további részletekért tekintse meg a JCE Azure Cloud HSM-mel való integrálásának útmutatóját.
OpenSSL-hitelesítés
Amikor OpenSSL-motort használ Azure felhőbeli HSM-hez, a környezeti változók biztosítják a hitelesítő adatokat. Javasoljuk, hogy biztonságosan tárolja HSM-hitelesítő adatait, ha az alkalmazás nem használja őket. Ideális esetben úgy konfigurálja a környezetet, hogy automatikusan lekérje és állítsa be ezeket a környezeti változókat a manuális bevitel elkerülése érdekében.
export azcloudhsm_password="cu1:user1234"
export azcloudhsm_openssl_conf=/opt/azurecloudhsm/bin/azcloudhsm_openssl_dynamic.conf
export LD_LIBRARY_PATH=/opt/azurecloudhsm/lib64/:$LD_LIBRARY_PATH
…
sudo ./azcloudhsm_client azcloudhsm_client.cfg > /dev/null 2>&1 &
openssl genpkey -algorithm RSA -out private_key.pem -engine azcloudhsm_openssl
…
Megjegyzés:
Frissítse a telepített SDK-verziónak megfelelő elérési utakat. Az alapértelmezett telepítési útvonal a következő /opt/azurecloudhsm/: . A legújabb SDK-t a Azure Cloud HSM SDK-kiadásokban talál.
Az OpenSSL-vel való hitelesítés részleteiért tekintse meg a guide-t az OpenSSL és a Azure Cloud HSM integrálásához.
Többszálú feldolgozás technikái
Azure felhőalapú HSM támogatja a többszálú alkalmazásokat, de a kezelésükhöz megfontolandó szempontok vannak:
-
PKCS#11: A PKCS#11 kódtár inicializálása a
C_Initializehasználatával csak egyszer történjen meg. Mindegyik szálhoz saját munkamenetet rendelhet hozzá a használatávalC_OpenSession. Ne használja ugyanazt a munkamenetet több szálon. -
JCE: A Azure Felhőalapú HSM-szolgáltató inicializálása csak egyszer. Kerülje a Service Provider Interface (SPI) objektumok példányainak megosztását a szálak között. Használjon például
Cipher,Signature,Digest,Mac,KeyFactory, ésKeyGeneratorobjektumokat csak a megfelelő szálkörnyezetekben.
Újrapróbálkozások a HSM-műveletek integrációjához
A Microsoft felcserélhet egy HSM-et a Azure felhőbeli HSM-fürtben működési vagy karbantartási célokra, például ha egy eszköz meghibásodik. Az alkalmazás ilyen helyzetekre való előkészítéséhez javasoljuk, hogy adjon hozzá ügyféloldali újrapróbálkozási logikát a fürtnek küldött összes művelethez. Ez a beállítás arra számít, hogy a sikertelen műveletek későbbi újrapróbálkozásai – akár csere, akár ideiglenes karbantartási leállások miatt – sikeresek lesznek.
Felhőbeli HSM-ügyfél munkamenet-kezelése
A Azure felhőbeli HSM-ügyfél minden HSM-munkamenetbe bejelentkezik és kijön, amikor bármely alkalmazás bejelentkezik vagy kijelentkezik. Ennek eredményeképpen, ha egy második alkalmazás azurecloudhsm_client használ, ugyanazokkal a munkamenetekkel rendelkezik, és ugyanazt a bejelentkezési hitelesítő adatokat örökli, ha ugyanabból a gazdagépről fut. Az azurecloudhsm_client eszköz nyomon követi, hogy mely alkalmazások próbálnak bejelentkezni. Lehetővé teszi a megfelelően bejelentkezett alkalmazások számára a hitelesítést igénylő parancsok futtatását.
Ha például azurecloudhsm_util van bejelentkezve, és egy másik terminálablakban próbálja futtatni az alkalmazást vagy a kulcseszközt a Azure felhőalapú HSM-szolgáltatóval, hibaüzenet jelenik meg, mert egy aktív munkamenet már meg van nyitva. Az alkalmazásnak le kell zárnia a azurecloudhsm_util munkamenetet, hogy a azurecloudhsm_client által futtatott munkamenetet a gazdagépen létrehozhassa a hitelesítéshez.