Криптографический токен PKCS#11 как облачный сервис

от автора

В криптографии PKCS#11 (или Cryptoki — cryptographic token interface) является одним из стандартом Public-Key Cryptography Standards (PKCS), разработанным RSA Laboratories, для взаимодействия программ с криптографическими токенами, смарт-картами и другими аналогичными устройствами с помощью унифицированного программного интерфейса.

Поддержкой стандарта PKCS#11 для российской криптографии занимается технический комитет по стандартизации «Криптографическая защита информации» (ТК 26).

Так в настоящее время ТК 26 подготовил проект методических рекомендаций «Расширение PKCS#11 для использования российских стандартов ГОСТ Р 34.10-2012, ГОСТ Р 34.11-2012, ГОСТ Р 34.12-2015 и ГОСТ Р34.13-2015» для версии 2.40.
Если говорить о криптографических токенах, реализующих российский криптографию, то можно говорить о программных токенах, программно-аппаратных токенах и аппаратнах токенах.

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

Выше мы упоминали программные, программно-аппаратные и аппаратные токены. Но можно рассматривать еще один вид криптографического токена – облачный.

Сегодня уже никого не удивишь облачной флэшкой. Все преимущества и недостатки обычной или облачной флэшки практически один в один присущи и обычного или облачному токену.

Главное здесь безопасность хранимых в облачном токене данных, прежде всего, закрытых ключей. Может ли это облачный токен обеспечить? Мы говорим – ДА!

И так как работает облачный токен? Первым шагом является регистрация клиента в облаке токенов. Для этого должна быть предусмотрена утилита, которая позволяет получить доступ к облаку, и зарегистрировать в нем свой логин/nickname.

После регистрации в облаке пользователь должен проинициализировать свой токен, а именно установить метку токена и самое важное установить SO-PIN и пользовательский PIN-коды. Эти операции должны проводиться только по защищенному/шифрованному каналу. Для инициализации токена используется утилита pk11conf. Для шифрования канала предлагается использовать алгоритм шифрования Магма-CTR (ГОСТ Р 34.13-2015).

Для выработки согласованного ключа, на основе которого будет защищаться/шифроваться трафик между клиентом и сервером, предлагается использовать рекомендованный ТК 26 протокол SESPAKEпротокол выработки общего ключа с аутентификацией на основе пароля.

В качестве пароля, на основе которого будет вырабатываться общий ключ, предлагается использовать механизм одноразовых паролей. Поскольку мы говорим о российской криптографии, то, естественно, генерировать одноразовые пароли с использованием механизмов CKM_GOSTR3411_HMAC на базе ГОСТ Р 34.11-94, CKM_GOSTR3411_12_256_HMAC или CKM_GOSTR3411_12_512_HMAC на базе ГОСТ Р 34.11-2012.

Использование данного механизма гарантирует, что доступ к объектам персонального токена в облаке через SO и USER PIN-коды доступен только пользователю, который их установил с помощью утилиты pk11conf.

Все, после выполнения этих действий, облачный токен готов к использованию. Для доступа в облачному токену достаточно установить на PC библиотеку LS11CLOUD. При использовании облачного токена в приложениях на платформах Android и iOS предусматривается соответствующее SDK. Именно эта библиотека будет указываться при подключении облачного токена в браузере Redfox или прописываться в файле pkcs11.txt для google-chrome. Библиотека LS11CLOUD взаимодействует с токеном в облаке также по защищенному каналу на базе SESPAKE, создаваемому при вызове функции PKCS#11 C_Initialize!

image

Вот и все, теперь можно заказывать сертификат, устанавливать его в свой облачный токен и идти на сайт госуслуг.
ссылка на оригинал статьи https://habrahabr.ru/post/313738/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *