PKCS11 или криптографический API?

Предоставляют ли компании HSM обычно API PKCS # 11 для работы с HSM или они просто предоставляют собственный криптографический API?

В каждом случае, как интегрироваться в приложение Linux (используя OpenSSL, возможно, как можно было бы вызвать движок openssl для сторонней библиотеки?) И в приложение Windows?

Что обычно предпочтительнее? PKCS # 11 API или общий API?

Каковы преимущества и недостатки этих двух?

Поставщик HSM сообщил нам, что может предоставить как API PKCS # 11, так и криптографический API, написанный на языке C. Я пытаюсь понять термины и, следовательно, этот вопрос!

Простой обзор, мне бы хотелось продолжить исследования :)

Большое спасибо!


person user907810    schedule 05.04.2017    source источник
comment
Это также зависит от типа HSM, большинство HSM общего назначения поддерживают PKCS # 11, но специальные HSM, такие как платежи, скорее всего, не поддерживают.   -  person zaph    schedule 30.06.2017


Ответы (2)


Обычно предоставляется библиотека PKCS # 11, если только для того, чтобы конкурировать с другими продуктами, которые также предоставляют такую ​​библиотеку. PKCS # 11 - это общий интерфейс, который можно использовать из программного обеспечения. Существует множество программных пакетов, которые позволяют использовать стандартный токен PKCS # 11, например, механизм OpenSSL PKCS # 11 и провайдер безопасности PKCS # 11 на языке Java.

Хотя PKCS # 11 может быть расширен, это не означает, что все функции HSM обязательно могут поддерживаться. PKCS # 11 - это интерфейс относительно низкого уровня. Иногда имеет смысл использовать проприетарный API, который лучше подходит для конкретного случая использования. Чем больше частей криптографического протокола может быть выполнено на защищенном устройстве, тем лучше.

Что касается того, какой из них лучше, это полностью зависит от вашего варианта использования и модели угроз, а также от предоставляемого криптографического API.

person Maarten Bodewes    schedule 06.04.2017

PKCS # 11 (определение из вики)

Стандарт PKCS # 11 определяет платформенно-независимый API для криптографических токенов, таких как аппаратные модули безопасности (HSM) и смарт-карты, и называет сам API «Cryptoki» (от «интерфейс криптографического токена» и произносится как «криптографический ключ»). - но «PKCS # 11» часто используется для обозначения API, а также стандарта, который его определяет).

Так что, как правило, это стандартный API, который используют все производители HSM.

Реализация этого API полностью зависит от поставщика HSM. Если они его реализовали, вы должны иметь возможность связываться с их оборудованием с помощью стандартного API PKCS # 11 с любой платформы (при условии, что они его поддерживают) или любых сторонних библиотек, которые могут выступать в качестве промежуточного программного обеспечения между вашим программным обеспечением и их оборудованием. Если они этого не реализовали, они обычно пишут собственный проприетарный API, который может быть специфичным для платформы и взаимодействовать только с их устройствами. Это заставляет вас использовать их API для связи с их оборудованием (в данном случае HSM).

Итак, с вашей точки зрения, если вы использовали стандартный PKCS # 11 API и в будущем, если вы будете сотрудничать с другим поставщиком HSM, вы также можете использовать тот же код для связи с новым HSM (поскольку PKCS # 11 является стандартом). Но если вы использовали их собственный API и для связи с новым поставщиком HSM, вы не можете повторно использовать свой код, потому что их API может работать только с их устройствами.

person always_a_rookie    schedule 05.04.2017