Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

При создании собственного приложения, использующего возможности устройств Рутокен, перед разработчиком встает вопрос о выборе оптимального средства реализации криптографических функций. На сегодняшний день наиболее распространёнными высокоуровневыми интерфейсами, предоставляющими мощные возможности по использованию функционала устройств Рутокен прикладными приложениями, являются стандарты RSALabs PKCS #11 и Microsoft CryptoAPI.

...

(warning) Важно помнить, что выбор API должен осуществляться разработчиком в каждом конкретном случае отдельно в зависимости от предъявляемых требований.

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

...

Panel
borderColor#669966
bgColor#CCFFCC
title(+) Достоинства PKCS #11
  • кроссплатформенность. PKCS #11 легко реализуется на любых платформах: Windows, Mac OS, Linux, UNIX, Java и т.п.
  • простой интерфейс для языка C;
  • высокая степень абстракции;
  • высокая распространенность среди не-Windows платформ;
  • легкая портируемость программного обеспечения на любые платформы;
  • поддержка управления несколькими устройствами Рутокен одновременно;
  • поддержка одновременного хранения на устройстве Рутокен ключей, сертификатов и объектов данных;
  • наличие специальной функции ожидания подключения/отключения токена (C_WaitForSlotEvent).
Panel
borderColor#FF6666
bgColor#FFCCCC
title(-) Недостатки PKCS #11
  • недостаточная поддержка стандарта операционными системами семейства  Windows и, как следствие, прикладным программным обеспечением под Windows;
  • отсутствие вспомогательных функций для работы с сертификатами, в результате чего разбор и изучение сертификата формата X.509 может оказаться достаточно сложной задачей. Однако при работе в MS Windows возможно использование функций Win32 API даже при использовании стандарта PKCS #11 (см. пример ССЫЛКА);
  • отсутствие функции выбора и управления криптопровайдерами. Так как PKCS #11 представляет собой API, а не архитектуру,  в случае, если приложению необходимо использовать несколько криптопровайдеров, то оно само должно определять, как с ними работать.

...

Panel
borderColor#669966
bgColor#CCFFCC
title(+) Достоинства CryptoAPI
  • глубокая интеграция в Windows и прикладное программное обеспечение под Windows;
  • простой интерфейс;
  • более высокий уровень абстракции по сравнению с PKCS #11;
  • легкая портируемость программного обеспечения в пределах ОС Windows;
  • автоматический доступ к любому установленному криптопровайдеру.
Panel
borderColor#FF6666
bgColor#FFCCCC
title(-) Недостатки CryptoAPI
  • невозможность использования в ОС, отличных от Windows;
  • отсутствие возможности управления несколькими устройствами Рутокен одновременно. Так как в CryptoAPI нет понятия физического устройства, то для одновременного использования нескольких устройств Рутокен на одном и том же компьютере потребуется использование особой техники, описанной в разделе ССЫЛКА;
  • отсутствие специальной функции ожидания подключения/отключения токена (реализация возможна через Win32 API);
  • невозможность хранения объектов данных вместе с RSA ключами и сертификатами на устройстве Рутокен;
  • установка криптопровайдера требует наличия прав администратора в ОС.