Как интегрировать шифрование HSM с C #? - PullRequest

Ответы [ 3 ]

4 голосов
/ 07 апреля 2011

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

Доступ к криптографическим возможностям HSM может быть через несколько API.Включая PKCS # 11 , Chil (OpenSSL).Поставщики MSCAPI и CNG также используют HSM.

Большинство поставщиков HSM предоставят вам библиотеку PKCS # 11 или поставщика CAPI / CNG.Если у вас есть это, это вопрос программирования на основе опубликованного API.

Как правило, использование HSM приводит к следующемуиспользовать CAPI / CNG HSM через C #.Вам придется вызывать напрямую в неуправляемый код библиотеки CAPI / CNG или PKCS # 11 с помощью вызовов PInvoke.

3 голосов
/ 18 июля 2016

Мы использовали Pkcs11Interop , и он работал очень хорошо. Это лицензионная библиотека с открытым исходным кодом Apache 2.0. Насколько я вижу, это довольно актуально и все еще поддерживается.

2 голосов
/ 07 апреля 2011

Если устройство совместимо с PKCS # 11, вы можете использовать NCryptoki . С их сайта:

NCryptoki - это библиотека для .NET фреймворк, реализующий PKCS # 11 спецификации и поставляет API для C #, VB.NET, Visual Basic 6, Delphi и другие языки взаимодействия COM для интеграция токена, соответствующего PKCS # 11 в любом приложении.

[...]

Основные характеристики:

  • Соответствует спецификациям PKCS # 11 2.20
  • Соответствует любой смарт-карте / токену / HSM PKCS # 11
  • 32 или 64-битная платформа
  • .NET Framework 2.0, 3.0, 3.5 и 4.0
...