Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Efektywne zarządzanie kluczami ma kluczowe znaczenie dla optymalizacji wydajności, zabezpieczeń i wydajności modułu HSM w chmurze platformy Azure. Ten artykuł zawiera najlepsze rozwiązania i zalecenia dotyczące obsługi limitów magazynu kluczy, zabezpieczeń opakowujących klucze, kluczowych atrybutów i strategii buforowania.
Zarządzanie limitem magazynu kluczy
Sprzętowe moduły zabezpieczeń (HSM) mają limity maksymalnej liczby tokenów i kluczy sesji, które mogą być przechowywane jednocześnie. Aby uzyskać szczegółowe informacje na temat tych limitów, zapoznaj się z tematem Azure Cloud HSM service limits (Limity usługi HSM w chmurze platformy Azure).
Aby uniknąć przekroczenia limitów usługi Moduł HSM w chmurze platformy Azure, rozważ użycie co najmniej jednej z następujących strategii efektywnego zarządzania kluczami:
- Rotacja kluczy: Obracanie kluczy często w celu zapewnienia wymiany starszych kluczy i zwolnienia miejsca dla nowych. Częsta rotacja pomaga utrzymać HSM w granicach przechowywania, zachowując bezpieczeństwo.
- Hierarchia kluczy: użyj hierarchii kluczy, w której klucze podstawowe są używane do szyfrowania innych kluczy. Ta hierarchia zmniejsza liczbę kluczy, które muszą być przechowywane bezpośrednio w module HSM.
- Udostępnianie kluczy i ponowne użycie: w przypadku aplikacji z wieloma sesjami lub tokenami rozważ udostępnienie kluczy lub ponowne użycie ich w celu zmniejszenia całkowitej liczby przechowywanych.
- Usuwanie klucza: po zakończeniu sesji nie potrzebujesz już klucza (na przykład po zakończeniu sesji), upewnij się, że jest bezpiecznie usuwany, aby zwolnić miejsce dla nowych kluczy.
Uwaga
Poczekaj 24 godziny po utworzeniu klucza, aby upewnić się, że synchronizacja i kopie zapasowe w ramach wdrożenia modułu HSM w chmurze platformy Azure zostaną ukończone.
Zarządzanie zawijaniem kluczy
Atrybut EXTRACTABLE w usłudze Azure Cloud HSM służy do oznaczania kluczy jako wyodrębnialnych lub niewyodrębnialnych. Domyślnie klucze HSM są ustawiane jako możliwe do wyodrębnienia. Klucze możliwe do wyodrębnienia można wyeksportować z modułu HSM przy użyciu mechanizmu owijania klucza, który je szyfruje. Następnie klucze muszą zostać rozpakowane przy użyciu tego samego klucza do owinięcia przed użyciem.
Natomiast kluczy nieekstraktowalnych nie można eksportować z modułu HSM w chmurze platformy Azure w żadnym wypadku. Po ustawieniu kluczy jako niewyodrębnialne nie ma możliwości zmiany ich na wyodrębnialne. Należy dokładnie rozważyć, czy potrzebne jest, aby klucze były wyciągane i odpowiednio ustawić atrybut klucza.
Jeśli aplikacja wymaga zawijania kluczy, zalecamy użycie zaufanego zawijania kluczy. Takie podejście ogranicza użytkownikom modułu HSM opakowywanie i rozpakowywanie tylko tych kluczy, które administrator jawnie wskazał jako zaufane.
EXTRACTABLE=0: klucze utworzone za pomocą atrybutu ustawionegoEXTRACTABLEna0nie mogą być eksportowane, z wyjątkiem obiektów maskowanych. Są one idealne dla kluczy, które nigdy nie powinny opuszczać modułu HSM.WRAP_WITH_TRUSTED=1: Domyślnie klucze możliwe do wyodrębnienia utworzone za pomocą zestawu SDK modułu HSM w chmurze platformy Azure używają zaufanego zawijania kluczy. Jednak specyfikacja PKCS#11 domyślnie ustawiaWRAP_WITH_TRUSTEDnaCK_FALSE (0). Bez zaufanego zawijania kluczy użytkownik kryptografii może wyeksportować prywatny materiał klucza bez żadnej autoryzacji. Każda osoba, która ma dostęp do aplikacji klienckiej i używa tych kluczy, może je wyeksportować w postaci zwykłego tekstu.
Obsługa atrybutów klucza dla dostawców modułu HSM w chmurze platformy Azure
| Dostawca modułu HSM w chmurze platformy Azure | Atrybuty domyślne dla kluczy prywatnych i symetrycznych | Obsługuje funkcję EXTRACTABLE=0 | Obsługuje konfigurowanie WRAP_WITH_TRUSTED w ramach dostawcy | Domyślna wartość WRAP_WITH_TRUSTED |
|---|---|---|---|---|
azcloudhsm_util |
EXTRACTABLE, !WRAP_WITH_TRUSTED |
Tak | Tak |
1 (0 można ustawić za pomocą parametrów) |
| PKCS#11 |
EXTRACTABLE, !WRAP_WITH_TRUSTED |
Tak | Tak |
0 (określone w specyfikacji PKCS#11, ale w interfejsie API można ustawić na wartość 1) |
| CNG/KSP |
EXTRACTABLE, !WRAP_WITH_TRUSTED |
Nie. | Nie. | 1 |
| Silnik OpenSSL |
EXTRACTABLE, !WRAP_WITH_TRUSTED |
Nie. | Nie. | 1 |
| JCE |
!EXTRACTABLE, !PERSISTANT, !WRAP_WITH_TRUSTED |
Tak | Nie. | 1 |
Klucze tworzone przy użyciu interfejsu API kryptografii dostawcy następnej generacji (CNG) są zawsze ustawiane jako EXTRACTABLE. Za pomocą narzędzia CavImportKey.exe można importować klucze z innych narzędzi HSM w chmurze Azure do dostawcy usług CNG przy użyciu ich identyfikatorów kluczy. Ten import tworzy klucz w dostawcy usług magazynowania kluczy (KSP) z istniejących uchwytów kluczy.
W przypadku urzędów certyfikacji korzystających z CNG lub KSP jako dostawcy wszystkie klucze wygenerowane w dostawcy CNG są nadal oznaczone jako możliwe do wyodrębnienia. Jeśli klucz jest oznaczony jako TRUSTED w module HSM (na przykład klucz szyfrowania klucza wygenerowany przez użytkownika), może służyć do wyodrębnienia klucza prywatnego w postaci zwykłego tekstu tych kluczy, nawet po WRAP_WITH_TRUSTED zmianie.
W takich przypadkach zalecamy użycie polecenia azcloudhsm_util w celu wygenerowania klucza, jeśli nie chcesz, aby został on oznaczony jako EXTRACTABLE. Zalecamy użycie getAttribute polecenia w celu sprawdzenia, czy wygenerowane klucze mają żądane atrybuty.
Stosowanie atrybutów klucza do zarządzania uprawnieniami klucza
Użyj kluczowych atrybutów, aby zarządzać kluczowymi możliwościami, takimi jak uprawnienia. Podczas generowania klucza użyj atrybutów klucza, aby określić uprawnienia, które zezwalają na określone operacje dla tego klucza lub ograniczają je. Zalecamy generowanie kluczy tylko przy użyciu atrybutów niezbędnych do ich zamierzonego celu.
Na przykład klucz Advanced Encryption Standard (AES), który jest używany do szyfrowania, nie powinien mieć możliwości zawijania kluczy poza modułem HSM. Aby uzyskać więcej informacji na temat atrybutów zestawu SDK modułu HSM w chmurze platformy Azure, zobacz przewodniki dotyczące integracji.
Optymalizowanie opóźnienia przez buforowanie obiektów kluczy
Aby zmniejszyć opóźnienie, należy rozważyć buforowanie obiektów kluczy zawsze, gdy jest to możliwe. Podczas wyszukiwania kluczy każdy moduł HSM w klastrze na platformie chmurowej Azure jest odpytywany. Ta operacja jest kosztowna i nie jest wydajnie skalowana. Metoda wyszukiwania kluczy zależy od dostawcy:
- W przypadku PKCS#11 do wyszukiwania kluczy używa się interfejsu
C_FindObjectsAPI. - W przypadku rozszerzenia kryptografii języka Java (JCE) wyszukiwanie kluczy używa wartości
KeyStore.
Aby uzyskać optymalną wydajność, zalecamy użycie poleceń znajdowania kluczy (takich jak findKey i key list) tylko raz podczas uruchamiania aplikacji. Zapisz zwrócony obiekt klucza w pamięci aplikacji. Gdy ten obiekt klucza będzie potrzebny później, pobierz go z pamięci podręcznej zamiast wykonywać zapytania dotyczące niego przy użyciu każdej operacji. Wykonywanie zapytań w związku z tym wiąże się ze znacznym obciążeniem wydajności.