Связь HSM Genereall

Я новичок в HSM и не нахожу информации о подробном общении. Как работает связь между HSM и хост-приложением? Я знаю, что есть драйверы, но хочу понять, что такое дешифрование и шифрование по ключу. Как приложение может зашифровать сообщения и узнать конкретный ключ?

Спасибо за поддержку.

Ура, Хорст

2 ответа

... и я не нахожу Информации о подробном общении.

Неудивительно: по крайней мере 3 года назад, когда я работал с HSM, документы HSM были конфиденциальными или строго конфиденциальными, и не каждый клиент имел доступ ко всем документам.

Как работает связь между HSM и хост-приложением?

Я не могу здесь говорить об информации, которую я получил из конфиденциальных документов.

Однако даже при чтении руководства пользователя процессоров 27x становится ясно, что совместно используемая оперативная память используется для связи между HSM и центральным процессором.

Я знаю, что есть водитель ...

HSM - это «просто» второй ЦП на той же микросхеме, что и главный ЦП. Он имеет собственное ОЗУ и (если HSM активен) собственные области во флэш-памяти, к которым не может получить доступ основной ЦП.

«Драйвер» - это не только драйвер, но и полный код, который работает на этом втором процессоре.

Вы можете заменить этот «Драйвер» программным обеспечением, которое выполняет другие вычисления - например, 2D-графику - вместо шифрования и безопасности. В этом случае HSM будет выполнять вычисления 2D-графики вместо шифрования данных!

Вы можете спросить, почему расчет шифрования не выполняется на основном процессоре. Ответ прост:

Главный ЦП не имеет доступа к флэш-памяти или ОЗУ HSM.

Если основной ЦП взломан, хакер может считывать ОЗУ и флэш-память основного ЦП, но не может получить доступ к секретным данным (например, ключам), хранящимся в ОЗУ или флэш-памяти HSM.

Как приложение может зашифровать сообщения?
Как он знает конкретный ключ?

Конечно, это зависит от программного обеспечения («Драйвер»), которое работает на HSM.

Как правило, ключи и данные, которые должны быть зашифрованы, записываются в общую оперативную память главным процессором.

Приложение, работающее на HSM («Драйвер»), будет считывать данные оттуда.

Обычно такое приложение обеспечивает функцию хранения секретных ключей во флеш-памяти HSM (к которой не может получить доступ главный ЦП) и использования этих ключей для шифрования.

Результат (например, зашифрованное сообщение) будет помещен обратно в общую оперативную память, где центральный процессор сможет считывать данные.

Будет протокол низкого уровня, который будет чем-то вроде */IP (TCP или UDP), когда HSM находится в форм-факторе устройства, или драйвером PCIe, если это карта PCIe, или драйвером USB, когда он представляет собой форм-фактор USB.

Поверх этого будет располагаться собственный протокол связи HSM. Это протокол связи, а не криптосистема.

Помимо протокола связи, будет криптосистема. Криптосистемы на основе стандартов похожи на PKCS#11 или CAPI/CSP/CNG или JCE. HSM, вероятно, также будет иметь свою собственную собственную криптосистему, и в большинстве случаев стандартная криптосистема является просто мостом к частной системе.

Таким образом, то, как HSM подготавливает ключ для использования, и как ваше приложение использует ключ, полностью зависит от HSM и вашего приложения.

Как правило, ваше приложение:

  1. Войдите в систему (это может происходить более одного раза, если ваш сеанс HSM поддерживает двойное управление (или "4 глаза")).
  2. Найдите, откройте или подготовьте ключ для использования (разные HSM используют разные идиомы). Этот "ключ" может быть зашифрованным ("завернутым") большим двоичным объектом или может быть дескриптором ключа.
  3. Передайте HSM ключ, данные и флаги вместе с запросом. Подписать / проверить / зашифровать / расшифровать / обернуть / развернуть / хэш /...

HSM будет

  1. Примите ключ, данные, флаги и запрос операции, выполните операцию, используя или на входах, а затем отбросьте ключ и входные данные.
  2. Вернуть результат операции.

Вы можете использовать программный симулятор HSM (SoftHSM, CryptoServer Simulator от Utimaco GmbH), чтобы изучить, как их использовать в вашей локальной среде.

Другие вопросы по тегам