Рекомендації щодо вибору високорівневого інтерфейсу - Портал документації Рутокен - Сервер

СтандартPKCS #11 є одним із сімейства стандартів криптографії з відкритим ключем (PKCS, Public-Key Cryptography Standard), розроблених RSA Laboratories для забезпечення сумісності різних реалізацій криптографії з відкритим ключем.

Стандарт PKCS #11, також відомий під назвою Cryptoki (Cryptographic Token Interface Standart), поширюється на «криптографічні токени» – пристрої, здатні містити криптографічну інформацію та виконувати криптографічні перетворення, та визначає для них інтерфейс прикладного програмування (API). Таким чином, стандарт описує загальний набір команд для виконання функцій криптографічних незалежно від конкретної апаратної реалізації токена і програмного середовища.

В основі PKCS #11 лежить об'єктно-орієнтований підхід, який дозволяє стандарту весь час розширюватися, включаючи знову з'являються як апаратні, так і програмні рішення. Крім того, PKCS #11 надає розробникам можливість додавати свої визначення для тих алгоритмів, які ще не увійшли до стандарту.

Детально з текстом стандарту можна ознайомитись на сторінці https://www.cryptsoft.com/pkcs11doc/.

  • кросплатформність. PKCS #11 легко реалізується будь-яких платформах: Windows, Mac OS, Linux, UNIX, Java тощо.
  • простий інтерфейс мови C;
  • високий ступінь абстракції;
  • висока поширеність серед не Windows платформ;
  • легка портованість програмного забезпечення на будь-які платформи;
  • підтримка керування кількома пристроями Рутокен одночасно;
  • підтримка одночасного зберігання на пристрої Рутокен ключів, сертифікатів та об'єктів даних;
  • наявність спеціальної функції очікуванняпідключення/відключення токена (C_WaitForSlotEvent).
  • недостатня підтримка стандарту операційними системами сімейства Windows та, як наслідок, прикладним програмним забезпеченням під Windows;
  • відсутність допоміжних функцій для роботи з сертифікатами, внаслідок чого розбір та вивчення сертифіката формату X.509 може виявитись досить складним завданням. Однак під час роботи в MS Windows можливе використання функцій Win32 API навіть за умови використання стандарту PKCS #11;
  • відсутність функції вибору та управління криптопровайдерами. Так як PKCS #11 являє собою API, а не архітектуру, у випадку, якщо додатку необхідно використовувати кілька криптопровайдерів, воно саме повинно визначати, як з ними працювати.

Microsoft CryptoAPI та Cryptography API: Next Generation