При создании собственного приложения, использующего возможности устройств Рутокен, перед разработчиком встает вопрос о выборе оптимального средства реализации криптографических функций. На сегодняшний день наиболее распространёнными высокоуровневыми интерфейсами, предоставляющими мощные возможности по использованию функционала устройств Рутокен прикладными приложениями, являются стандарты RSALabs PKCS #11 и Microsoft CryptoAPI.
Важно помнить, что выбор API должен осуществляться разработчиком в каждом конкретном случае отдельно в зависимости от предъявляемых требований. |
Стандарт 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/.
|
|
|
Microsoft CryptoAPI (MS CAPI) представляет собой интерфейс прикладного программирования, разработанный корпорацией Microsoft для обеспечения криптографическими функциями разработчиков Windows-приложений и входящий в состав операционных систем Windows. Криптографические алгоритмы реализуются криптопровайдером – независимым модулем, содержащим библиотеку криптографических функций со стандартизованным интерфейсом, а CryptoAPI лишь предоставляет унифицированный интерфейс работы с криптопровайдером. Подобная архитектура позволяет переходить от одного провайдера к другому с минимальными изменениями исходного кода, так как интерфейс (сами функции) не меняется. Подробная информация o CryptoAPI доступна по ссылкам http://technet.microsoft.com/en-us/library/cc962093.aspx и https://msdn.microsoft.com/en-us/library/windows/desktop/aa380255(v=vs.85).aspx.
Начиная с Windows Vista, Microsoft предлагает новый интерфейс Cryptography API: Next Generation (CNG), предназначенный для замены устаревшего интерфейса CryptoAPI. Служба CNG предоставляет набор интерфейсов API для выполнения основных криптографических операций и благодаря своей модульной архитектуре позволяет создавать, обновлять и использовать собственные алгоритмы шифрования в таких приложениях и технологиях, как служба сертификации Active Directory, технологии SSL и IPsec. CNG поддерживает все алгоритмы, предоставляемые CryptoAPI, а также новые алгоритмы, включая алгоритмы шифрования, цифровых подписей, обмена ключами и хеширования, в том числе и алгоритмы на основе эллиптических кривых (ECC). Интерфейс CNG является гораздо более гибким, тем самым обеспечивая разработчикам больший контроль над способом выполнения криптографических операций и совместной работой алгоритмов при выполнении различных операций. Подробная информация o CNG доступна по ссылкe https://msdn.microsoft.com/en-us/library/windows/desktop/aa376210(v=vs.85).aspx
|
|
|