Udostępnij za pośrednictwem


Rozwiązywanie problemów z modułem HSM w chmurze platformy Azure

Ten artykuł ułatwia rozwiązywanie typowych problemów i błędów, które mogą wystąpić podczas korzystania z usługi Azure Cloud HSM.

Typowe komunikaty o błędach

W poniższych sekcjach znajdują się odpowiedzi na pytania dotyczące typowych błędów, w tym błędów związanych z maszynami wirtualnymi i sprzętowymi modułami zabezpieczeń (HSM).

Dlaczego podczas uruchamiania azcloudhsm_mgmt_util jest wyświetlany komunikat o błędzie "Błąd certyfikatu: [Błąd podpisu certyfikatu]"?

Ten błąd może wystąpić podczas wykonywania następujących kroków:

  1. Utwórz i zainicjuj wdrożenie modułu HSM w chmurze platformy Azure z innej maszyny wirtualnej.
  2. pl-PL: Spróbuj zainstalować zestaw SDK klienta modułu HSM w chmurze i uruchomić go na innej maszynie wirtualnej, której brakuje lub która nie ma poprawnego pliku PO.crt z maszyny wirtualnej administratora, z której ją zainicjowano.

Jeśli skopiujesz plik PO.crt z maszyny wirtualnej administratora do nowej maszyny wirtualnej i ponownie uruchomisz azcloudhsm_mgmt_util, powinno zostać wyświetlone pomyślne połączenie z modułem HSM.

Dlaczego otrzymuję komunikat o błędzie "INF: shutdown_ssl_socket: SSL_shutdown wysłano alert close_notify" podczas uruchamiania azcloudhsm_client?

Ten błąd może wystąpić podczas wykonywania następujących kroków:

  1. Utwórz i zainicjuj wdrożenie modułu HSM w chmurze platformy Azure z innej maszyny wirtualnej.
  2. Spróbuj zainstalować pakiet SDK klienta Cloud HSM i uruchomić go na innej maszynie wirtualnej, która nie ma lub brakuje jej poprawnego pliku PO.crt z maszyny wirtualnej administratora, z której został zainicjowany.

Jeśli skopiujesz plik PO.crt z maszyny wirtualnej administratora do nowej maszyny wirtualnej i ponownie uruchomisz azcloudhsm_client, powinieneś zobaczyć pomyślne połączenie z modułem HSM.

Dlaczego pojawia się komunikat o błędzie "azcloudhsm_application.cfg nie jest obecny"?

Aby zapewnić pomyślne wykonanie aplikacji, należy spełnić następujące dwa warunki:

  • Plik azcloudhsm_application.cfg znajduje się w tym samym katalogu co aplikacja.

  • Narzędzie azcloudhsm_client jest uruchomione. Jeśli azcloudhsm_client nie jest aktywne, napotkasz nieudane połączenie gniazda.

    Podobnie brak azcloudhsm_application.cfg pliku powoduje wyświetlenie komunikatu o błędzie. W zależności od lokalizacji wykonywania aplikacji może być konieczne skopiowanie azcloudhsm_application.cfg pliku z katalogu zestawu SDK modułu HSM w chmurze platformy Azure do katalogu, w którym jest uruchomiona aplikacja.

Aparat OpenSSL dla modułu HSM w chmurze platformy Azure

Czy silnik OpenSSL dla modułu HSM chmury Azure obsługuje system Windows?

Nie. Silnik OpenSSL dla modułu HSM platformy Azure w chmurze obsługuje wyłącznie systemy Linux (Ubuntu 20.04, Ubuntu 22.04, RHEL 7, RHEL 8 i CBL Mariner 2).

Dlaczego otrzymuję komunikat o błędzie „Nieprawidłowy silnik 'azcloudhsm_openssl' - nie udało się załadować współdzielonej biblioteki”?

Komunikat o błędzie sugeruje, że zmienna LD_LIBRARY_PATH środowiskowa wymagań wstępnych nie jest skonfigurowana. Ta konfiguracja jest niezbędna. Ustaw zmienną LD_LIBRARY_PATH środowiskową na katalog, w którym znajduje się zestaw SDK modułu HSM w chmurze platformy Azure.

Aby odzwierciedlić poprawną wersję zestawu SDK, należy zaktualizować zmienne środowiskowe, uruchamiając następujące polecenie:

export LD_LIBRARY_PATH=/opt/azurecloudhsm/lib64/:$LD_LIBRARY_PATH

Dlaczego pojawia się komunikat o błędzie "zmienna środowiskowa azcloudhsm_openssl_conf nie jest ustawiona"?

Komunikat o błędzie sygnalizuje, że nie skonfigurowano zmiennej środowiskowej azcloudhsm_openssl_conf wymagań wstępnych. Ustaw zmienną azcloudhsm_openssl_conf środowiskową na lokalizację azcloudhsm_openssl_dynamic.conf ścieżki pliku w katalogu zestawu SDK modułu HSM w chmurze platformy Azure.

Aby odzwierciedlić poprawną wersję zestawu SDK, należy zaktualizować zmienne środowiskowe, uruchamiając następujące polecenie:

export azcloudhsm_openssl_conf=/opt/azurecloudhsm/bin/azcloudhsm_openssl_dynamic.conf  

Dlaczego pojawia się komunikat o błędzie "zmienna środowiskowa azcloudhsm_password nie jest ustawiona"?

Komunikat o błędzie sugeruje, że zmienna azcloudhsm_password środowiskowa wymagań wstępnych nie jest skonfigurowana. Ustaw zmienną azcloudhsm_password środowiskową na wartość cryptouser:password.

Musisz zaktualizować zmienne środowiskowe, aby odzwierciedlały poprawnego użytkownika i hasła kryptografii:

export azcloudhsm_password="cu1:user1234"

Dostawca JCE dla modułu HSM w chmurze platformy Azure

Poniższe sekcje odpowiadają na pytania związane z rozszerzeniem kryptografii Języka Java (JCE).

Czy integracja JCE z modułem HSM w chmurze platformy Azure obsługuje system Windows?

Nie. Integracja JCE z modułem HSM w chmurze platformy Azure obsługuje tylko system Linux (Ubuntu 20.04, Ubuntu 22.04, RHEL 7, RHEL 8, CBL Mariner 2).

Dlaczego pojawia się komunikat o błędzie "Nie można odnaleźć poświadczeń logowania do modułu HSM"?

Błąd wskazuje wyzwanie podczas lokalizowania lub uwierzytelniania poświadczeń wymaganych do zalogowania się do modułu HSM w chmurze. Jeśli używasz przykładów w tej dokumentacji lub dołączasz dostawcę JCE dla modułu HSM w chmurze platformy Azure do aplikacji, ważne jest, aby jawnie zalogować się przy użyciu poświadczeń:

// Explicit Login with Credentials
LoginManager lm=LoginManager.getInstance();
lm.login("PARTITION_1","cu1","user1234");

// Logout of the HSM
lm.logout();

Dlaczego otrzymuję komunikat o błędzie "atrybut o wartości 0 dla tej operacji? Atrybut powinien być ustawiony dla klucza KEK użytkownika"?

Błąd wskazuje, że klucz szyfrowania wygenerowany przez użytkownika nie został utworzony, nie wyznaczono go jako wyodrębnialny, a wrap_with_trusted jest ustawiony na 1. Aby użyć odpowiednich ustawień podczas importowania kluczy, zawijania kluczy i operacji odpakowania klucza, zobacz sekcję dotyczącą tworzenia klucza KEK wygenerowanego przez użytkownika w przewodniku integracji JCE.

Dlaczego otrzymuję komunikat o błędzie "Błąd połączenia gniazda demona, logowanie do API nie powiodło się"?

Błąd wskazuje wyzwanie podczas lokalizowania lub uwierzytelniania poświadczeń wymaganych do zalogowania się do modułu HSM w chmurze. Jeśli używasz przykładów w przewodniku integracji JCE lub włączasz dostawcę JCE Azure Cloud HSM do swoich aplikacji, niezbędne jest jawne logowanie przy użyciu poświadczeń w celu zapewnienia połączenia.

Biblioteka PKCS#11 dla modułu HSM w chmurze platformy Azure

Dlaczego pojawia się komunikat o błędzie "C_Login zakończył się niepowodzeniem z kodem błędu: 0xa3"?

Błąd 0xa3 wskazuje błąd logowania. Błąd może być związany z formatem przekazywanych parametrów numeru PIN lub numer PIN (hasło) może być niepoprawny.

Numer PIN powinien być podany w następującym formacie: char pPin[256] = "crypto_user:user123";. Wartość pPin powinna być zgodna ze strukturą <username>:<password>. Sprawdź, czy podajesz pPin wartość w tym formacie, ponieważ każde odchylenie może spowodować niepowodzenie logowania.

Dlaczego pojawia się komunikat o błędzie "C_Initialize() nie powiodło się z 00000005 (nie można nawiązać połączenia z socketem)"?

Nieudane połączenie gniazda podczas C_Initialize może być związane z tym, że narzędzie azcloudhsm_client nie działa na twoim systemie. Aby aplikacje PKCS#11 działały pomyślnie, azcloudhsm_client musi być uruchomione. Możesz zacząć od azcloudhsm_client uruchomienia jednego z następujących poleceń w osobnym terminalu.

Jeśli zestaw SDK modułu HSM w chmurze platformy Azure został zainstalowany przy użyciu funkcji DEB lub RPM, klient nie jest konfigurowany automatycznie do uruchamiania jako usługa. Zestaw SDK podczas instalacji zawiera plik jednostki usługi w folderze /etc/systemd/system/azure-cloud-hsm.service. Aby włączyć uruchamianie azcloudhsm_client jako usługi, użyj wstępnie zdefiniowanego pliku azure-cloud-hsm.service.

Załaduj ponownie konfigurację i włącz usługę systemd , aby upewnić się, że jest ona stale uruchomiona. Wykonaj następujące kroki:

  1. Otwórz okno terminalu i zmień katalog na /etc/systemd/system, gdzie znajduje się plik jednostki usługi HsM w chmurze:

    cd /etc/systemd/system
    
  2. Uruchom i włącz usługę klienta modułu HSM w chmurze:

    sudo systemctl start azure-cloud-hsm.service
    sudo systemctl enable azure-cloud-hsm.service
    
  3. Sprawdź stan usługi klienta modułu HSM w chmurze:

    sudo systemctl status azure-cloud-hsm.service
    
  4. Załaduj ponownie konfigurację systemd :

    sudo systemctl daemon-reload
    sudo systemctl list-units --type=service --state=running
    

Linux (instrukcja)

Uruchom demona klienta, jeśli nie jest uruchomiony:

sudo ./azcloudhsm_client azcloudhsm_client.cfg

Możesz również uruchomić demona klienta w tle, używając następującego polecenia. Możesz też uruchomić demona klienta jako usługę, aby upewnić się, że jest ona zawsze uruchomiona.

sudo ./azcloudhsm_client azcloudhsm_client.cfg > /dev/null 2>&1 &

Jeśli zestaw SDK modułu HSM w chmurze platformy Azure został zainstalowany przy użyciu pakietu MSI, klient jest już skonfigurowany do uruchamiania jako usługa. Jeśli klient nie jest uruchomiony, możesz otworzyć plik Services.msc, kliknij prawym przyciskiem myszy pozycję Microsoft Azure Cloud HSM Client Service, a następnie wybierz polecenie Uruchom.

Windows (ręcznie)

Uruchom demona klienta, jeśli nie jest uruchomiony:

cd C:\Program Files\Microsoft Azure Cloud HSM Client SDK 
.\azcloudhsm_client.exe .\azcloudhsm_resource.cfg 

Jak biblioteka PKCS#11 dla systemu Linux wie, jak znaleźć konfigurację klienta?

Biblioteka PKCS#11 wie, jak znaleźć konfigurację klienta, ponieważ musisz mieć kopię certyfikatu właściciela partycji (PO.crt) na serwerze aplikacji z uruchomioną aplikacją i przy użyciu biblioteki PKCS#11. Oprócz certyfikatu właściciela partycji:

  • Należy zaktualizować /azcloudhsm_client/azcloudhsm_client.cfg na serwerze aplikacji z zainstalowanym zestawem SDK, aby wskazać wdrożenie modułu HSM w chmurze platformy Azure (czyli hsm1.chsm-<resourcename>-<uniquestring>.privatelink.cloudhsm.azure.net).
  • Narzędzie azcloudhsm_client musi być uruchomione na serwerze aplikacji, który łączy się z wdrożeniem modułu HSM w chmurze platformy Azure.
  • Należy określić numer PIN w aplikacji PKCS#11 przy użyciu składni <username>:<password>. Ten numer PIN służy do wywoływania C_Login wdrożenia modułu HSM w chmurze platformy Azure.
  • Aby korzystać z biblioteki PKCS#11 dla modułu HSM w chmurze Azure, musisz w aplikacji PKCS#11 dołączyć pkcs11_headers/include/cryptoki.h i pkcs11_headers/include/pkcs11t.h.

Jak biblioteka PKCS#11 (azcloudhsm_pkcs11.dll) dla systemu Windows wie, jak znaleźć konfigurację klienta?

azcloudhsm_pkcs11.dll Plik w systemie Windows SDK chmury Azure HSM wie, jak znaleźć konfigurację klienta, ponieważ musisz mieć kopię certyfikatu właściciela partycji (PO.crt) na serwerze aplikacji, na którym działa Twoja aplikacja i używana jest biblioteka PKCS#11. Oprócz certyfikatu właściciela partycji:

  • Należy zaktualizować /azcloudhsm_client/azcloudhsm_client.cfg na serwerze aplikacji z zainstalowanym zestawem SDK, aby wskazać wdrożenie modułu HSM w chmurze platformy Azure (czyli hsm1.chsm-<resourcename>-<uniquestring>.privatelink.cloudhsm.azure.net).
  • Narzędzie azcloudhsm_client musi działać na serwerze aplikacji, który łączy się z wdrożeniem modułu HSM w chmurze platformy Azure.
  • Należy określić numer PIN w aplikacji PKCS#11 przy użyciu składni <username>:<password>. Ten PIN służy do uzyskiwania dostępu do C_Login wdrożenia modułu HSM w chmurze platformy Azure.
  • Aby używać biblioteki PKCS#11 z modułem HSM w chmurze Azure, musisz dołączyć pkcs11_headers\include\cryptoki.h i pkcs11_headers\include\pkcs11t.h w swojej aplikacji PKCS#11.

Dlaczego podczas próby ustawienia klucza lub magazynu kluczy otrzymuję błędy PKCS#11?

Upewnij się, że masz uruchomionego klienta modułu HSM w chmurze platformy Azure (sudo ./azcloudhsm_client azcloudhsm_client.cfg). Niepoprawny użytkownik, nieprawidłowe hasło, klient zabezpieczeń cieczy nie jest uruchomiony lub klient, który nie może nawiązać połączenia, może spowodować następujący błąd:

Error Message:ERROR at line 1:
ORA-28407: Hardware Security Module failed with PKCS#11 error
CKR_GENERAL_ERROR(5)

W jaki sposób biblioteka PKCS#11 (azcloudhsm_pkcs11.dll) integruje się z programem OpenSC?

Musisz użyć argumentów --sensitive i --private podczas korzystania z narzędzi OpenSC do obsługi otwartoźródłowej karty inteligentnej, ponieważ poufne i prywatne atrybuty nie mogą być zmieniane na 0. Bez tych argumentów narzędzia OpenSC ustawiają atrybuty poufne i prywatne na wartość 0. Te atrybuty generują wyjątek, ponieważ moduł HSM w chmurze platformy Azure zawsze nakłada poufne i prywatne zachowanie.

Oto przykład stosujący standard szyfrowania AES (Advanced Encryption Standard):

pkcs11-tool.exe --sensitive --private --module "C:\AzureCloudHSM-ClientSDK\AzureCloudHSM-ClientSDK-Windows-1.0.3.0\libs\pkcs11\azcloudhsm_pkcs11.dll" --login --login-type user --pin cu1:user1234 --keygen --key-type AES:32*

Oto przykład kryptografii krzywej eliptycznej (ECC) P521:

pkcs11-tool.exe --sensitive --private --module "C:\AzureCloudHSM-ClientSDK\AzureCloudHSM-ClientSDK-Windows-1.0.3.0\libs\pkcs11\azcloudhsm_pkcs11.dll" --login --login-type user --pin cu1:user1234 --keypairgen --key-type EC:prime256v1 --usage-sign

Odciążanie protokołu SSL/TLS dla modułu HSM w chmurze platformy Azure

W poniższych sekcjach odpowiadają na pytania związane z odciążaniem przetwarzania protokołów Secure Sockets Layer (SSL) lub Transport Layer Security (TLS).

Czy silnik OpenSSL dla modułu HSM w chmurze Azure obsługuje odciążanie SSL/TLS przy użyciu PKCS#11?

Nie. Silnik OpenSSL dla Azure Cloud HSM nie obsługuje PKCS#11 do odciążania SSL/TLS. Klienci, którzy wymagają wykorzystania PKCS#11 do odciążania SSL/TLS, muszą używać biblioteki TLS Offload dla Azure Managed HSM.

Dlaczego podczas uruchamiania azcloudhsm_util pojawia się komunikat o błędzie "Nie można połączyć gniazda, LIQUIDSECURITY: Błąd połączenia z gniazdem demona"?

Komunikat o błędzie sugeruje, że azcloudhsm_client nie jest uruchomiony. Upewnij się, że azcloudhsm_client jest uruchomione, aby narzędzia Azure Cloud HSM działały prawidłowo. Możesz zacząć od azcloudhsm_client upewnienia się, że działa jako usługa lub ręcznie uruchamiając jedno z następujących poleceń w osobnym terminalu.

Jeśli zestaw SDK modułu HSM w chmurze platformy Azure został zainstalowany przy użyciu funkcji DEB lub RPM, klient nie jest konfigurowany automatycznie do uruchamiania jako usługa. Zestaw SDK podczas instalacji zawiera plik jednostki usługi w obszarze /etc/systemd/system/azure-cloud-hsm.service. Aby włączyć uruchamianie azcloudhsm_client jako usługę, użyj wstępnie zdefiniowanego pliku azure-cloud-hsm.service.

Załaduj ponownie konfigurację i włącz usługę systemd , aby upewnić się, że jest ona stale uruchomiona. Wykonaj następujące kroki:

  1. Otwórz okno terminalu i zmień katalog na /etc/systemd/system, gdzie znajduje się plik jednostki usługi HsM w chmurze:

    cd /etc/systemd/system
    
  2. Uruchom i włącz usługę klienta modułu HSM w chmurze:

    sudo systemctl start azure-cloud-hsm.service
    sudo systemctl enable azure-cloud-hsm.service
    
  3. Sprawdź stan usługi klienta modułu HSM w chmurze:

    sudo systemctl status azure-cloud-hsm.service
    
  4. Załaduj ponownie konfigurację systemd :

    sudo systemctl daemon-reload
    sudo systemctl list-units --type=service --state=running
    

Linux (podręcznik)

Uruchom demona klienta, jeśli nie jest uruchomiony:

sudo ./azcloudhsm_client azcloudhsm_client.cfg

Możesz również uruchomić demona klienta w tle, używając następującego polecenia. Możesz też uruchomić demona klienta jako usługę, aby upewnić się, że jest ona zawsze uruchomiona.

sudo ./azcloudhsm_client azcloudhsm_client.cfg > /dev/null 2>&1 &

Dlaczego pojawia się komunikat o błędzie "zmienna środowiskowa azcloudhsm_password nie jest ustawiona"?

Komunikat o błędzie sugeruje, że zmienna azcloudhsm_password środowiskowa wymagań wstępnych nie jest skonfigurowana. Aby rozwiązać ten problem, ustaw zmienną azcloudhsm_password środowiskową na wartość cryptouser:password.

Zaktualizuj zmienne środowiskowe w celu odzwierciedlenia poprawnego użytkownika i hasła kryptografii:

export azcloudhsm_password="cu1:user1234"

Dlaczego podczas próby zaimportowania klucza jest wyświetlany komunikat o błędzie "Nie znaleziono klucza/tokenu" lub "Nieprawidłowy uchwyt klucza/token"?

Komunikat o błędzie sugeruje, że określony uchwyt klucza opakowującego (identyfikator uchwytu klucza KEK) jest niepoprawny. Parametr -f określa nazwę pliku, który zawiera klucz do zaimportowania, natomiast -w określa uchwyt klucza opakowującego. Podczas tworzenia klucza KEK generowanego przez użytkownika, wartość -w powinna być identyfikatorem uchwytu klucza dla Twojego wygenerowanego identyfikatora KEK.

azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 importPrivateKey -l importTestKey -f key.pem -w 262150

Dlaczego podczas próby skonfigurowania źródeł NGINX pojawia się komunikat o błędzie "/configure: błąd: nie znaleziono kompilatora języka C"?

Komunikat o błędzie sugeruje, że w systemie brakuje kompilatora języka C podczas uruchamiania configure polecenia. W zależności od instalacji, po uruchomieniu następujących poleceń może być również konieczne zainstalowanie openssl libssl-dev i zlib1g zlib1g-dev. Te elementy są zależnościami.

Systemy oparte na systemie Red Hat (przy użyciu YUM)

sudo yum update
sudo yum groupinstall "Development Tools"

Systemy oparte na systemie Red Hat (przy użyciu systemu DNF)

sudo dnf update
sudo dnf install "Development Tools"

Systemy oparte na systemie Ubuntu (przy użyciu narzędzia APT)

sudo apt update  
sudo apt install build-essential 

Dlaczego pojawia się komunikat o błędzie "/configure: błąd: moduły SSL wymagają biblioteki OpenSSL"?

Komunikat o błędzie wskazuje, że biblioteka OpenSSL jest wymagana do włączenia modułów SSL dla serwera NGINX. Aby rozwiązać ten problem, uruchom następujące polecenie, a następnie uruchom ponownie polecenie configure :

sudo apt-get install libssl-dev

Dlaczego pojawia się komunikat o błędzie "/configure: błąd: moduł HTTP gzip wymaga biblioteki zlib"?

Komunikat o błędzie wskazuje, że biblioteka zlib jest wymagana dla modułu HTTP gzip w NGINX. Aby rozwiązać ten problem, uruchom następujące polecenie, a następnie uruchom ponownie polecenie configure :

sudo apt-get install zlib1g-dev

Dlaczego pojawia się komunikat o błędzie "Błąd HSM: RET_USER_LOGIN_FAILURE"?

Komunikat o błędzie wskazuje, że określony użytkownik nie istnieje w co najmniej jednym węźle, w którym próbujesz wykonać operację kryptograficzną. Mimo że moduł HSM w chmurze platformy Azure działa z klastrem trzech węzłów, operacja została skierowana do węzła, w którym logowanie nie powiodło się.

W takich przypadkach plik critical_err_info_ jest generowany w katalogu AzureCloudHSM-ClientSDK. W pliku jest wyświetlany komunikat "Stan: błąd HSM: ten użytkownik nie istnieje".

Aby wyeliminować ten błąd, należy utworzyć użytkownika kryptografii (CU), który jest replikowany we wszystkich trzech węzłach wdrożenia modułu HSM w chmurze platformy Azure. W poniższym przykładzie pokazano, jak zostaje zainicjowane azcloudhsm_mgmt_util oraz logowanie administratora jako użytkownika pełniącego rolę oficera kryptografii (CO). W tym przykładzie utworzony zostanie użytkownik z rolą CU.

sudo ./azcloudhsm_mgmt_util ./azcloudhsm_mgmt_util.cfg
loginHSM CO admin adminpassword 
createUser CU cu1 user1234
logoutHSM
loginHSM CU cu1 user1234

Jak wyświetlić zawartość utworzonego pliku CRT, CSR lub klucza?

Aby wyświetlić zawartość certyfikatu (CRT), żądanie podpisania certyfikatu (CSR) lub plik klucza utworzony w terminalu, użyj następującego polecenia:

cat filename.key

Aby wyświetlić szczegółowe informacje na temat certyfikatu X.509 zawartego w pliku PEM (Privacy Enhanced Mail), użyj następującego polecenia. Jeśli plik PEM zawiera klucz prywatny lub inne typy danych, może być konieczne odpowiednie dostosowanie polecenia.

openssl x509 -in filename.pem -text -noout

Aby wyświetlić szczegółowe informacje o csr, użyj następującego polecenia. Te informacje obejmują temat, klucz publiczny i wszystkie atrybuty uwzględnione w żądaniu.

openssl req -in filename.csr -text -noout

Aby wyświetlić szczegółowe informacje dotyczące klucza prywatnego Rivest-Shamir-Adleman (RSA), użyj następującego polecenia. Te informacje obejmują moduł klucza, wykładnik publiczny klucza i inne parametry.

openssl rsa -in filename.key -text -noout

Aby wyświetlić szczegółowe informacje na temat klucza prywatnego krzywej eliptycznej (EC), użyj następującego polecenia. Wyświetla parametry krzywej, wartość klucza prywatnego i inne istotne informacje.

openssl ec -in filename.key -text -noout

Jak wygenerować parę kluczy ED25519 w module HSM w chmurze platformy Azure na potrzeby podpisywania?

klucze ED25519 są zwykle używane w przypadku certyfikatów z podpisem własnym lub w procesach podpisywania certyfikatów, które bezpośrednio korzystają z klucza prywatnego. Możesz wygenerować parę kluczy ED25519 za pomocą azcloudhsm_util lub silnika OpenSSL dla modułu HSM w chmurze Azure.

Ważne

Nie zalecamy używania openssl genpkey lub openssl ecparam. Użycie openssl genpkey lub openssl ecparam z -engine azcloudhsm_openssl do wygenerowania klucza ED25519 lub ECCKeyPair nie generuje klucza HSM. Zamiast tego generuje klucz oprogramowania. Jeśli potrzebujesz ED25519 lub innych typów kluczy EC, musisz użyć azcloudhsm_util do utworzenia klucza w HSM.

Openssl genpkey i openssl ecparam są poleceniami OpenSSL do generowania kluczy kryptograficznych, ale mają różne zastosowania i obsługują różne typy kluczy. Użyj openssl genpkey, gdy musisz wygenerować szeroką gamę asymetrycznych kluczy kryptograficznych, w tym RSA, DSA, ECDSA i ED25519. Użyj openssl ecparam specjalnie do generowania kluczy kryptograficznych krzywej eliptycznej (ECDSA), takich jak prime256v1, secp384r1 lub secp521r1.

./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 genECCKeyPair -i 28 -l labelED25519Test

Czy mogę użyć azcloudhsm_util do wygenerowania kluczy RSA i EC przed użyciem modułu OpenSSL Azure Cloud HSM do wygenerowania CSR?

Tak. Możesz uruchomić następujące azcloudhsm_util polecenia, aby utworzyć klucz RSA lub EC, a następnie wyodrębnić klucz prywatny do fałszywego formatu PEM. Zastąp {PRIVATE_KEY_HANDLE} uchwytem klucza prywatnego RSA lub EC, który utworzyłeś.

Plik metadanych klucza prywatnego w formacie PEM nie zawiera żadnych poufnych materiałów klucza prywatnego. Metadane identyfikują klucz prywatny, a tylko silnik OpenSSL dla Azure Cloud HSM rozumie ten plik.

Użyj tego polecenia, aby utworzyć klucz RSA:

./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 genRSAKeyPair -m 2048 -e 65537 -l labelRSATest 
./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 getCaviumPrivKey -k {PRIVATE_KEY_HANDLE} -out web_server_fake_PEM.key 
openssl req -new -key web_server_fake_PEM.key -out web_server.csr -engine azcloudhsm_openssl 
openssl x509 -req -days 365 -in web_server.csr -signkey web_server_fake_PEM.key -out web_server.crt -engine azcloudhsm_openssl 

Użyj tego polecenia, aby utworzyć klucz EC:

./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 genECCKeyPair -i 2 -l labelECTest 
./azcloudhsm_util singlecmd loginHSM -u CU -p user1234 -s cu1 getCaviumPrivKey -k {PRIVATE_KEY_HANDLE} -out web_server_fake_PEM.key 
openssl req -new -key web_server_fake_PEM.key -out web_server.csr -engine azcloudhsm_openssl 
openssl x509 -req -days 365 -in web_server.csr -signkey web_server_fake_PEM.key -out web_server.crt -engine azcloudhsm_openssl 

Program SQL Server EKM dla modułu HSM w chmurze platformy Azure

W poniższych sekcjach przedstawiono odpowiedzi na pytania związane z funkcją rozszerzonego zarządzania kluczami (EKM) w programie SQL Server.

Czy dostawca EKM programu SQL Server dla modułu HSM w chmurze platformy Azure obsługuje klucze symetryczne?

Nie. Program SQL Server nie obsługuje kluczy symetrycznych na potrzeby przezroczystego szyfrowania danych. Obsługiwane są tylko klucze asymetryczne.

Czy dostawca EKM programu SQL Server dla modułu HSM w chmurze platformy Azure obsługuje program SQL Server w systemie Linux?

Nie. Dostawca EKM programu SQL Server dla modułu HSM w chmurze platformy Azure obsługuje tylko system Windows Server.

Czy dostawca EKM programu SQL Server dla modułu HSM w chmurze platformy Azure obsługuje program SQL Server SaaS/PaaS?

Nie. Moduł HSM w chmurze platformy Azure to tylko infrastruktura jako usługa (IaaS). Klienci oprogramowania jako usługi (SaaS) lub platformy jako usługi (PaaS) powinni używać zarządzanego modułu HSM platformy Azure, który obsługuje przezroczyste szyfrowanie danych dla usług Azure SQL Database i Azure SQL Managed Instance.

Czy dostawca EKM programu SQL Server dla modułu HSM w chmurze platformy Azure obsługuje wiele logów, poświadczeń i połączeń?

W przypadku dostawcy EKM programu SQL Server dla modułu HSM w chmurze platformy Azure logowanie lub połączenie SQL jest ograniczone i może mieć przypisane tylko jedno poświadczenie.

Dlaczego pojawia się komunikat o błędzie "Błąd: nie można zainicjować dostawcy usług kryptograficznych. Kod błędu dostawcy: 1. (Błąd — zapoznaj się z dostawcą EKM, aby uzyskać szczegółowe informacje)"?

Ten typowy błąd może wystąpić podczas uruchamiania pakietu MSI dla modułu HSM w chmurze platformy Azure po zainstalowaniu programu SQL Server. Błąd zniknie po ponownym uruchomieniu programu SQL Server. W tym momencie pobiera zmienne środowiskowe i ustawienia utworzone podczas uruchamiania pakietu MSI dla modułu HSM w chmurze platformy Azure.

Integracja usług AD CS z modułem HSM w chmurze platformy Azure

Poniższe sekcje odpowiadają na pytania związane z usługami certyfikatów Active Directory (AD CS).

Dlaczego otrzymuję komunikat o błędzie "Nie można otworzyć pliku openssl-ca.cnf", gdy próbuję przeprowadzić migrację certyfikatu z dostawcy KSP firmy Microsoft przy użyciu podanego przykładu?

Ten błąd często pojawia się, gdy plik openssl-ca.cnf nie istnieje, podczas próby migracji certyfikatu z dostawcy przechowywania kluczy (KSP). Możesz utworzyć plik samodzielnie lub uzyskać go z innego źródła.

Czy mogę używać własnych serwerów podpisywania w sieci firmowej, która korzysta z modułu HSM w chmurze platformy Azure jako rozwiązania SaaS?

Moduł HSM w chmurze platformy Azure to tylko usługa IaaS. Możesz jednak użyć własnych serwerów podpisywania w sieci firmowej.

Połączenie sieci VPN typu lokacja-lokacja lub punkt-lokacja można skonfigurować z bramy sieci lokalnej. Jest to najbardziej typowa metoda i jest odpowiednia dla większości przypadków użycia. Skonfiguruj połączenie sieci VPN między serwerami lokalnymi sieci firmowej a lokalizacją, w której wdrożono moduł HSM w chmurze platformy Azure. Aby uzyskać więcej informacji, zobacz Samouczek: tworzenie połączenia sieci VPN typu lokacja-lokacja w witrynie Azure Portal.

Możesz mieć usługi AD CS dla swoich serwerów podpisywania lokalnie. Zestaw SDK musi znajdować się na hoście lokalnym, a klient musi być dostępny dla prywatnych adresów IP w sieci wirtualnej platformy Azure. Obowiązują następujące wymagania:

  • Musisz uruchomić azcloudhsm_client na tej samej maszynie, na której istnieje dostawca Cryptography API: Next Generation (CNG) dla modułu HSM w chmurze platformy Azure.
  • Narzędzie azcloudhsm_client powinno mieć możliwość komunikowania się z prywatnymi adresami IP sieci wirtualnej platformy Azure.

Po przetestowaniu usług AD CS wygenerowaliśmy parę kluczy RSA, a następnie użyliśmy zarządzania certyfikatami do podpisania.

Czy jedynymi akceptowanymi metodami podpisywania lub weryfikowania są te poprzez dostawców modułów HSM w chmurze (na przykład azcloudhsm_util)?

Nie. Naszym zaleceniem jest użycie Azure Cloud HSM SDK i interfejsów (takich jak PKCS#11, CNG, KSP, JCE i aparat OpenSSL), które ono udostępnia. Możesz również użyć narzędzia podpisywania (signtool.exe) na potrzeby operacji podpisywania lub weryfikacji.

Usługa AD CS jest skonfigurowana do używania CNG lub KSP dla modułu HSM w chmurze platformy Azure.

Czy mogę użyć podpisywania/weryfikacji z modułu HSM w chmurze za pośrednictwem signtool.exe?

Tak. Narzędzie podpisywania automatycznie przechodzi do wdrożenia modułu HSM w chmurze. Nie ma potrzeby używania azcloudhsm_util. Uwzględniliśmy azcloudhsm_util w instrukcjach jako sposób dla klientów na szybkie testowanie i weryfikację konfiguracji AD CS.

Czy do testowania można używać certyfikatów z podpisem własnym na podstawie pary kluczy w module HSM w chmurze?

Tak. Do celów testowych można używać certyfikatów z podpisem własnym na podstawie pary kluczy.

Czy istnieje integracja, czy sposób udostępniania certyfikatów za pośrednictwem lokalnego magazynu certyfikatów systemu Windows?

Możesz użyć certreq.exe jako narzędzia w tym celu.

Jakie algorytmy są obsługiwane przez dostawców CNG i KSP na potrzeby obsługi modułu HSM w chmurze platformy Azure?

  • Szyfrowanie i odszyfrowywanie RSA
  • Podpisywanie RSA przy użyciu algorytmów wyznaczania wartości skrótu SHA1, SHA256, SHA384, SHA512 i MD5
  • Krzywe ECC ECDSA_P256, ECDSA_P384 i ECDSA_P521

Jak zmienić uprawnienia klucza prywatnego lub zarządzać nimi dla użytkowników niebędących administratorami w systemie Windows?

W przypadku generowania klucza przy użyciu dostawcy kluczy lub CNG dla modułu HSM w chmurze platformy Azure tylko administrator otrzymuje dostęp do klucza prywatnego. Mogą wystąpić problemy z wyświetlaniem informacji zabezpieczających lub modyfikowaniem uprawnień za pośrednictwem programu Microsoft Management Console (MMC). To zachowanie jest zamierzone.

Domyślnie w przypadku korzystania z KSP lub CNG dostęp do pliku klucza prywatnego dla nowego klucza jest ograniczony do SYSTEM i administratorów. Jeśli musisz zapewnić dostęp do użytkownika niebędącego administratorem dla określonego pliku klucza prywatnego, zidentyfikuj nazwę pliku klucza prywatnego i przypisz uprawnienia bezpośrednio. Klucze prywatne znajdują się w katalogu C:\Users\Default\AppData\Roaming\Microsoft\Crypto\CaviumKSP w systemie Windows for Cloud HSM keys ( Klucze HSM w chmurze).

Co robi azcloudhsm_ksp_import_key.exe?

Możesz użyć azcloudhsm_ksp_import_key.exe do importowania lub reprezentowania kluczy asymetrycznych w dostawcy KSP modułu HSM w chmurze.

Obsługiwane algorytmy to RSA (od 2048 do 4096 w wielokrotnościach 256), ECDSA i ECDH. W przypadku ECDSA i ECDH obsługiwane krzywe to P256, P384 i P521. Po zaimportowaniu lub reprezentowaniu klucza w dostawcy KSP modułu HSM w chmurze należy zarządzać kluczem tylko z dostawcy KSP modułu HSM w chmurze.

Połączenie można nawiązać za pośrednictwem sieci wirtualnej. Użyj następujących narzędzi:

  • Narzędzie azcloudhsm_mgmt_util wykonuje operacje (zadania administracyjne w module HSM). Wymaga to poświadczeń oficera kryptografii partycji (PCO).
  • azcloudhsm_client Narzędzie (demon klienta) łączy się za pośrednictwem poświadczeń użytkownika kryptografii partycji (PCU).

Narzędzie azcloudhsm_client i aplikacja muszą działać na tej samej maszynie wirtualnej w sieci wirtualnej. Przyczyną jest to, że aplikacja łączy się z procesem klienta za pośrednictwem zdalnego wywołania procedury (RPC).

Usługa Azure Cloud HSM nasłuchuje na porcie 443 (azcloudhsm_client żądania), 444 (azcloudhsm_mgmt_util żądania) i 445 (komunikacja między serwerami).

Porty front-end to 2224 i 2225 dla protokołu TCP w protokole TLS. Te porty są przeznaczone tylko dla klientów.