Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Проверка подлинности является важным аспектом безопасного доступа и работы в azure Cloud HSM. В этой статье описаны методы проверки подлинности, включая интерфейс командной строки (CLI), PKCS#11, расширение шифрования Java (JCE) и OpenSSL. В этой статье также приведены рекомендации по многопоточности и обработке сеансов.
Проверка подлинности интерфейса командной строки HSM в облаке
Вы можете пройти проверку подлинности с помощью таких средств CLI, как azcloudhsm_util в интерактивном или однокомандном режиме. В интерактивном режиме используйте команду login. Для однокомандного режима включите singlecmd и параметры для loginHSM. Мы советуем безопасно хранить учетные данные HSM, если приложение не использует их.
Интерактивный режим
./azcloudhsm_util
loginHSM -u CU -s cu1 -p user1234
Режим одной команды
sudo ./azcloudhsm_util singlecmd loginHSM -u CU -s cu1 -p user1234 findKey
Проверка подлинности PKCS#11
В PKCS#11 вы войдите с помощью C_Login API после открытия сеанса с помощью C_OpenSession. Необходимо использовать C_Login только один раз на слот (кластер Cloud HSM). После успешного входа можно открыть дополнительные сеансы с использованием C_OpenSession без повторного входа.
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);
…
Чтобы получить примеры кода для проверки подлинности в PKCS#11, см. руководство по интеграции PKCS#11 с Azure Cloud HSM.
Аутентификация JCE
Поставщик JCE для Azure Cloud HSM предлагает поддержку как неявных, так и явных методов входа. Каждый вариант подходит для разных вариантов использования.
По возможности рекомендуется использовать неявный вход, так как пакет SDK автономно управляет проверкой подлинности. Этот метод особенно полезен, если приложение отключается от кластера и требует повторной проверки подлинности. Неявный вход также упрощает предоставление учетных данных приложению во время интеграции с платформами, где прямой контроль над кодом приложения невозможен.
LoginManager lm = LoginManager.getInstance();
lm.login("PARTITION_1","cu1", "user1234");
…
lm.logout();
…
Дополнительные сведения о методах входа см. в руководстве по интеграции JCE с Azure Cloud HSM.
Проверка подлинности OpenSSL
При использовании обработчика OpenSSL для Azure Cloud HSM переменные среды предоставляют учетные данные. Мы советуем безопасно хранить учетные данные HSM, если приложение не использует их. В идеале настройте среду для автоматического извлечения и задания этих переменных среды, чтобы избежать ручной записи.
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
…
Сведения о проверке подлинности с помощью OpenSSL см. в руководстве по интеграции OpenSSL с Azure Cloud HSM.
Методы многопоточности
Azure Cloud HSM поддерживает многопоточные приложения, но существуют рекомендации по их обработке:
-
PKCS#11. Инициализация библиотеки PKCS#11 с помощью
C_Initializeтолько один раз. Назначьте каждому потоку собственный сеанс, используяC_OpenSession. Избегайте использования одного и того же сеанса в нескольких потоках. -
JCE: Инициализируйте поставщика Azure Cloud HSM только один раз. Избегайте совместного использования экземпляров объектов интерфейса поставщика услуг (SPI) в потоках. Например, используйте
Cipher,Signature,Digest,Mac,KeyFactoryиKeyGeneratorобъекты только в соответствующих контекстах потока.
Повторные попытки для интеграции операций HSM
Майкрософт может заменить HSM в кластере Azure Cloud HSM по эксплуатационным или обслуживающим причинам, например, если устройство выйдет из строя. Чтобы подготовить приложение к таким сценариям, мы советуем добавить логику повторных попыток на стороне клиента во все операции, отправленные в кластер. Эта настройка предполагает, что последующие повторные попытки при неудачных операциях, будь то из-за замены или временных сбоев обслуживания, будут успешными.
Обработка сеанса клиента HSM в облаке
Клиент Azure Cloud HSM входит и выходит из всех сеансов HSM, когда любое приложение выполняет вход или выход. В результате, если используется второе приложение azurecloudhsm_client, он использует те же сеансы и наследует те же учетные данные входа, если он работает с того же узла. Средство azurecloudhsm_client отслеживает, какие приложения пытаются войти. Он позволяет правильно вошедшего в систему приложения выполнять команды, требующие проверки подлинности.
Например, если вы вошли в azurecloudhsm_util систему и попытаетесь запустить приложение или ключевой инструмент в другом окне терминала с провайдером Azure Cloud HSM, возникает ошибка, так как активный сеанс уже открыт. Вы должны закрыть сеанс azurecloudhsm_util, чтобы ваше приложение создало сеанс с azurecloudhsm_client, работающий на вашем узле для проверки подлинности.