Отказ от ответственности: Я работаю для электронной безопасности Thales, но не говорю о компании.
Да, вы можете перенаправить ключ jcecsp в pkcs11. Если у вас есть ключи jcecsp в вашем kmdata/local,/opt/nfast/bin/generatekey предложит jcecsp в качестве исходной опции. Если у вас нет ключей от этого типа, он будет спокойно опускать эту опцию из исходного списка. Однако, этот процесс перенацеления может не делать то, что вы думаете. Все перенацеливание - это изменение типа приложения и, возможно, связанных метаданных: он не изменяет основные возможности ключа, поскольку они были испечены в защищенном ключевом блоке во время генерации и не могут быть изменены.
В мире безопасности используются ACL ключей nShield, чтобы ограничить возможности ключа (подписывать, проверять, шифровать, расшифровывать, обертывать, обертывать и т. Д.). PKCS # 11 вытаскивает свои параметры (CKA_SIGN и т. Д.) Непосредственно из ключевых ACL, а при создании ключей через API ACL, сохраненные в блочном блоке, производятся непосредственно из параметров в шаблоне ключа. Если вы установите CKA_SENSITIVE в FALSE, и ваш мир безопасности позволяет это, вы можете сгенерировать и сохранить экспортируемый ключ. JCE не настолько утончен: он вообще не имеет понятия о ключевых возможностях, поэтому провайдер должен угадывать намерения пользователя с помощью ключа и по умолчанию имеет довольно щедрый набор. Однако, поскольку вы указываете, что вся идея HSM заключается в том, чтобы защитить ключевые биты и не позволить им иметь их, Export не является одним из значений по умолчанию. И что не запекается в ключевом файле при его создании, вы не получаете перенацеливанием ключа.
Одна вещь, которую вы могли бы сделать, если вы хотите использовать ОКО, чтобы сгенерировать ключ с помощью другого поставщика, а затем сохранить его в nCipher.sworld KeyStore с помощью поставщика nCipherKM: это будет импортировать ключ в мир безопасности (если ваш мир позволяет это) и сохранить его как файл key_jcecsp_ *. Однако это не имеет ничего общего с ключевой безопасностью, поэтому с точки зрения HSM это не рекомендуется. Еще одна вещь, которую вы можете сделать, - это перейти к API-интерфейсу nCore, сгенерировать ключ с необходимыми записями ACL, а затем полиморфировать его с объектом JCE Key и сохранить его в ключевом хранилище, поддерживаемом HSM. Вы можете стрелять себе в ногу столько раз, сколько хотите, с ACL на создаваемый вами ключ. Полиморфизация очень плохо документирована: спросите Thales Support, и они могут вас направлять.
Наконец, возможность восстановления означает, что в дополнение к блоку рабочего ключа, который может быть защищен набором операторских карточек, в ключевом файле есть Recovery Blob. Это происходит в случае потери набора операторских карт: Recovery Blob можно открыть с помощью набора карт администратора Security World с помощью утилиты rocs (Заменить набор операторских карт), которая будет писать новый ключевой файл в новом OCS. Нет, это не означает, что ключ экспортируется. Это просто означает, что вы защищены от потери OCS.Конечно, потеря ACS - это не стартер, так как это ваш корень доверия.