Генерация ключей AWS CloudHSM AES-256 bit с использованием API PKCS # 11

Я использую API PKCS # 11 для создания ключей AES-256 бит в AWS CloudHSM.

Я считаю, что могу успешно сгенерировать ключ с помощью (C_GenerateKey), однако, когда я пытаюсь распечатать значение ключа, я получаю ошибку «CKR_ATTRIBUTE_TYPE_INVALID» при первом вызове C_GetAttributeValue.

Я устанавливаю опцию CKA_EXTRACTABLE для ключа при его генерации. Вот фрагмент кода -

 set_attr(keyTemplate[n_attr], CKA_EXTRACTABLE, &_true, sizeof(_true));

 set_ATTR(keyTemplate[n_attr], CKA_VALUE_LEN, &key_length, sizeof(key_length));

 rv = pfunc11->C_GenerateKey(session, &mechanism, keyTemplate, n_attr, &hSecretKey);
 if (rv != CKR_OK)
 {
    printf("ERROR: rv=0x%08X: C_GenerateKey failed\n", (unsigned int)rv);
    return false;
 }
 else
 {
    rv = pfunc11->C_GetAttributeValue(session, hSecretKey, dataTemplate, 1);
    if(rv != CKR_OK)
    {
     printf("ERROR: rv=0x%08X: C_GetAttributeValue failed\n", (unsigned int)rv);
     return false;
    }

Если я установил для параметра «CKA_SENSITIVE» значение false, я получаю сообщение об ошибке (CKR_TEMPLATE_INCONSISTENT) во время генерации ключа о том, что шаблон недействителен.

Как я могу распечатать значение ключа AES в моем приложении?


person ejohnson    schedule 13.05.2018    source источник
comment
Нечувствительные ключи можно запретить с помощью конфигурации политики (например, No Clear PINs для SafeNet). Я не знаю AWS CloudHsm, поэтому тут ничем не могу помочь ... Удачи!   -  person vlp    schedule 15.05.2018
comment
Судя по всему, CloudHSM в настоящий момент не соблюдает атрибут CKA_SENSITIVE. Они над этим работают.   -  person ejohnson    schedule 15.05.2018


Ответы (1)


Обработка атрибута CKA_SENSITIVE была исправлена ​​ в версии 1.1.1 клиентских библиотек CloudHSM v2.

Вам действительно стоит задуматься, почему вы хотите получить текстовое значение вашего ключа AES. Причина использования HSM в первую очередь заключается в том, чтобы предотвратить раскрытие необработанных данных ключа. Если вы просто тестируете, подумайте о создании ключа в программном обеспечении, а затем о его импорте в HSM. Вы также можете использовать перенос ключей, чтобы развернуть ключ AES.

person kosierosie    schedule 04.07.2018