Хмарний токен PKCS#11 – міф чи реальність?

PKCS#11 (Cryptoki) є стандартом, розробленим RSA Laboratories, для взаємодії програм із криптографічними токенами, смарт-картами та іншими аналогічними пристроями за допомогою уніфікованого програмного інтерфейсу, що реалізується через бібліотеки.

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

Якщо говорити про токени з підтримкою російської криптографії, то можна говорити про програмні токени, програмно-апаратні токени і апаратні токени.

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

Вище ми згадували програмні, програмно-апаратні та апаратні токени. Але можна розглядати ще один вид криптографічного токена – хмарний.

Сьогодні вже нікого не здивуєш хмарною флешкою. Усе переваги і недоліки хмарної флешки практично один в один притаманні і хмарному токену.

Головне тут безпека даних, що зберігаються в хмарному токені, перш за все, закритих ключів. Чи може це забезпечити хмарний токен? Ми говоримо – ТАК!

І оскільки працює хмарний токен? Першим кроком є ​​реєстрація клієнта у хмарі токенів. Для цього має бути передбачена утиліта, яка дозволяє отримати доступ до хмари, та зареєструвати в ній свій логін/nickname:
Хмарний токен PKCS#11 – міф чи реальність?

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

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

Як пароль, на основі якого буде вироблятися спільний ключ, пропонується використовувати механізм одноразових паролів. Оскільки ми говоримо про російську криптографію, то, природно, генерувати одноразові паролі з використанням механізмів CKM_GOSTR3411_12_256_HMAC, CKM_GOSTR3411_12_512_HMAC або CKM_GOSTR3411_HMAC.

Використання цього механізму гарантує, що доступ до об'єктів персонального токена у хмарі через SO та USER PIN-коди доступний лише користувачу, який їх встановив за допомогою утиліти pk11conf.

Усі, після виконання цих дій, хмарний токен готовий до використання. Для доступу до хмарного струменя достатньо встановити на PC бібліотеку LS11CLOUD. При використанні хмарного токена у додатках на платформах Android та iOS передбачається відповідне SDK. Саме ця бібліотека буде вказуватись при підключенні хмарного токена у браузері Redfox або прописуватись у файлі pkcs11.txt для. Бібліотека LS11CLOUD взаємодіє з токеном у хмарі також захищеним каналом на базі SESPAKE, що створюється при виклику функції PKCS#11 C_Initialize!

Хмарний токен PKCS#11 – міф чи реальність?

Ось і все, тепер можна замовляти сертифікат, встановлювати його у свій хмарний токен і йти на сайт держпослуг.

Джерело: habr.com

Додати коментар або відгук