Не удалось получить доступ к ключу в HSM для подписи sh256, но можно для подписи sha1

Как я могу включить доступ к ключу в HSM при подписании как sha256?

Когда я подписываюсь как sha1, инструмент подписи правильно извлекает ключ сертификата из HSM, но если я перехожу на «/fd sha256», ключ не может быть найден в контейнере. Я уверен, что signtool может получить доступ к контейнеру, но какая-то политика должна блокировать это в случае с sha256.

Моя ошибка:

Ошибка SignTool: указанный контейнер закрытого ключа не найден.

Команда Sha256:

signtool.exe sign /f mycert.crt
/csp "Luna Cryptographic Services for Microsoft Windows" 
/kc mycontainer /tr http://timestamp.digicert.com /td sha256 
/fd sha256 signed-file.exe

Команда Sha256, которая работает:

signtool.exe sign /f mycert.crt
/csp "Luna Cryptographic Services for Microsoft Windows" 
/kc mycontainer /tr http://timestamp.digicert.com /td sha256 
/fd sha1 signed-file.exe

Параметры /debug и /v не содержат дополнительной информации.

Если я использую makecert для создания нового самозаверяющего сертификата, команда создает контейнер, который CSP может использовать для sha1 или sha256. Инструмент Luna CSP\keymap.exe позволяет мне управлять контейнерами и ключами. Я могу создать новые для подписи или обмена, а затем связать с ними ключи.

Создайте сертификат и загрузите kes в HSM

# Create Cert and store keys on HSM in a container called "noi1-501706key"
makecert -sk noi1-501706key -sp "Luna Cryptographic Services for Microsoft Windows" -r 
-n "CN=noi1- 501706" -ss TestStore noi1-501706.cer

# make self signed
Cert2Spc noi1-501706.cer noi1-501706.spc

Используйте Program Files\Safenet\Luna Client\CSP\keymap

  • создать новый контейнер
  • связать pub/private с новым контейнером

    с использованием нового контейнера sha1 работает, а sha256 не работает. Все попытки просмотреть два контейнера показывают их как идентичные.


person Eva Brigid    schedule 24.01.2018    source источник
comment
SHA256 не поддерживается CSP, только CNG. Поэтому флаг /csp вызывает подозрения.   -  person rip...    schedule 26.01.2018
comment
Действительно. Можете ли вы указать на документ об этом?   -  person Eva Brigid    schedule 29.01.2018
comment
Не уверен, что согласен. когда я выгружаю провайдеров и алгоритмы, я получаю Luna Cryptographic Services для Microsoft Windows. Поддерживаемые хеш-алгоритмы: md2, md5, sha1, sha256, sha384, sha512. Поддерживаемые алгоритмы шифрования: RSA Data Security RC2 (блочный шифр), RSA Data Security RC4 (потоковый шифр). ,Стандарт шифрования данных (блочный шифр),Triple DES (блочный шифр)   -  person Eva Brigid    schedule 29.01.2018
comment
Google CSP против CNG. CSP старше (Windows XP, Windows 2008 Server до SP2). СПГ — это современность. CSP поддерживается только до SHA1-160. Вы должны использовать поставщика с поддержкой CNG. Другая возможность заключается в том, что ключ изначально был создан только для SHA1, и в этом случае поставщик прав, он не может найти ключ, разрешающий SHA256.   -  person rip...    schedule 31.01.2018
comment
Да, на самом деле происходит то, что у Safenet есть адаптер KSP/CNG, каким-то образом подключенный к контейнеру CSP. Итак, когда я использую CSP и sha256, он использует этот путь. Я создал самоподписанный сертификат и попробовал его, и все хорошо. Похоже, проблема заключалась в создании csr с помощью утилиты Safenet linux cmu.   -  person Eva Brigid    schedule 02.02.2018
comment
Я попытался проанализировать различия между двумя наборами ключей и их политиками. Однако инструменты Safenet не предоставляют мне достаточно информации, чтобы понять различия. Я думаю, мне может понадобиться восстановить мой ключ через новый csr   -  person Eva Brigid    schedule 02.02.2018
comment
Увы, но я не эксперт по модулям Luna HSM (... на самом деле я работаю на одного из их конкурентов). Поэтому, кроме общих знаний о том, как Windows ожидает, что KSP будет работать, я не могу предоставить дополнительные рекомендации, извините.   -  person rip...    schedule 03.02.2018


Ответы (2)


Согласно главе 7 «Интеграция Microsoft HCK (Windows Server 2012) с Luna HSM» я заметил следующее, что заставляет меня думать, что создание CSR с помощью инструмента HSM в Linux вместо makecert заблокировано для KSP/CNG.

Таким образом, мы никогда не заставим клиента Luna найти ключ для сертификата. Нам нужно либо получить новый сертификат, либо перейти на новый HSM и получить новый сертификат. Это связано с тем, что в AWS CloudHSM Classic используется оборудование, настроенное на блокировку экспорта ключей независимо от политики. Никаких изменений в депонировании ключей здесь нет.

Чтобы интегрировать аппаратный модуль безопасности Luna SA с Microsoft HCK, для создания сертификата необходимо использовать Luna CSP «Luna Cryptographic Services for Microsoft Windows». Сертификат должен быть подписан, а сертификат подписавшего должен присутствовать в «Доверенном корневом центре сертификации». Вы можете использовать как сертификат, подписанный ЦС, так и самозаверяющий сертификат.

person Eva Brigid    schedule 13.02.2018

Проверьте метки объектов KeyContainer, открытых и закрытых ключей (cmu.exe list или keymap.exe Просмотр объектов). Метки открытых и закрытых ключей должны быть в следующем формате:

  1. Имя контейнера: ИмяКонтейнера
  2. Закрытый ключ: S-ContainerName
  3. Открытый ключ: S-ContainerName

Используйте cmu.exe setattribute, чтобы изменить метку.

person lily of the valley    schedule 18.04.2019