Page tree
Skip to end of metadata
Go to start of metadata

Общие сведения

Важной особенностью решения на базе Рутокен Web является то, что все криптографические операции выполняются внутри USB-токена. Это гарантирует корректность всех критически важных вычислений, а также целостность и сохранность ключевой информации.

Решение Рутокен Web может применяться для защищенной аутентификации на веб-ресурсе, хеширования данных по стандарту ГОСТ Р 34.11-94, формирования ЭП в соответствии со стандартом ГОСТ Р 34.10-2001, контроля целостности и генерации ключевой информации, включающей ключевые пары, ключи симметричного шифрования и общие сессионные ключи.

Генерация ключей

В процессе криптографических преобразований, таких как генерация ключей шифрования и формирование электронной цифровой подписи, важнейшую роль играет генератор случайных чисел. От того, насколько непредсказуемым будет результат работы ГСЧ, зависит стойкость шифра ко взлому.

Например, в ходе формирования ЭЦП происходит генерация случайного числа, от которого будет зависеть конечное значение подписи. При многократной подписи одного и того же сообщения на одном и том же закрытом ключе значения ЭЦП должны отличаться. Если злоумышленник определит значение случайного числа или получит от одного отправителя два разных сообщения, подписанных с использованием одного и того же числа, он сможет вычислить закрытый ключ. Это даст ему возможность подписывать сообщения от имени законного владельца.

В устройстве Рутокен Web заложена реализация криптографически стойкого генератора псевдослучайных чисел, получающего энтропию от физического процесса. Встроенный функционал позволяет генерировать ключевые пары для алгоритмов RSA и ГОСТ Р 34.10-2001.

Хеширование

Хеширование применяется для контроля целостности информации, а также в процессе формирования электронной цифровой подписи. По сути — это получение «отпечатка» определенной длины от любых данных произвольного размера, подставляемых в хеш-функцию в качестве аргумента.

Преобразование, осуществляемое хеш-функцией H(x), должно удовлетворять следующим требованиям:

  • легкость получения результата. По заданному входному сообщению x вычислительно легко найти H(x).
  • необратимость. Пусть известно значение m=H(x). Тогда вычислительно трудно найти x:H(x)=m.
  • стойкость к коллизиям первого рода. Для заданного сообщения x вычислительно трудно найти сообщение y:H(x)=H(y).
  • стойкость к коллизиям второго рода. Вычислительно трудно подобрать сообщения x и y:H(x)=H(y).

В Рутокен Web применяется хеширование по стандарту ГОСТ Р 34.11-94. Данный стандарт за более чем двадцать лет своего существования закрепил за собой статус одного из самых безопасных и быстрых методов хеширования, преобразующих данные в строку длинной 256 бит.

Формирование электронно-цифровой подписи

Электронно-цифровая подпись сообщения – это строчка ограниченной длины, которая зависит от подписываемой информации, случайного числа и закрытого ключа лица, формирующего подпись. Закрытый ключ должен содержаться в секрете.

В Рутокен Web формирование электронной подписи происходит внутри устройства каждый раз при попытке аутентификации на веб-ресурсе.

Проверка подлинности подписанного сообщения выполняется при помощи общеизвестного открытого ключа. Значение случайного числа, использованного при формировании подписи, не важно при ее проверке.

ЭЦП обладает следующими свойствами:

  • контроль целостности подписанной информации;
  • защита от подделки подписанного сообщения;
  • невозможность отказа от авторства. По ЭЦП возможно установление личности автора.

Для формирования ЭЦП в устройстве Рутокен Web реализован отечественный алгоритм ГОСТ Р 34.10-2001. Данный алгоритм обеспечивает высокий уровень безопасности.

Хранение закрытых ключей

Для формирования ЭЦП необходим закрытый ключ. При ненадлежащем обращении с закрытым ключом он может попасть в руки злоумышленника. Отсюда возникает необходимость хранения собственного закрытого ключа в надежном месте, недоступном третьим лицам.

Устройство Рутокен Web хранит закрытые ключи владельца в собственной защищенной памяти, недоступной для чтения извне. Таким образом, скопировать закрытый ключ с Рутокен Web не может даже сам владелец устройства.

Хранение открытых ключей

Открытый ключ может храниться где угодно, в том числе и на устройстве Рутокен Web. Важная задача в управлении открытыми ключами — достоверно связать открытый ключ с его владельцем. В современных системах эта задача решается путем разворачивания инфраструктуры открытых ключей PKI (Public Key Infrastructure).

Рутокен Web позволяет экспортировать открытые ключи пользователя, которые при необходимости могут быть преобразованы в сертификаты формата Х.509. Однако в большинстве задач, решаемых при помощи Рутокен Web, можно обойтись без сертификатов. Открытые ключи могут храниться в базе данных сервера в обычном бинарном виде. Сервер самостоятельно контролирует целостность хранимых данных, доверяя содержимому БД. Такой способ уменьшает объем хранимой информации и упрощает архитектуру сервера без снижения уровня безопасности решения.

Возможности аутентификации владельца Рутокен Web

Для аутентификации владельца Рутокен Web и вызова привилегированных функций используется шестизначный PIN-код, генерируемый случайным образом на производстве.

Информацию о PIN-коде (скретч-карту) следует хранить в надежном месте, недоступном третьим лицам, в том числе сотрудникам Компании «Актив». В противном случае знающий PIN-код злоумышленник, завладев устройством, сможет получать доступ к личным данным и подписывать документы от имени законного владельца.

При необходимости PIN-код может быть изменен владельцем при помощи утилиты администрирования Рутокен Web.

После 10 попыток ввода неверного PIN-кода устройство Рутокен Web блокируется. Для разблокировки устройства используется десятизначный PUK-код. Он также генерируется и выставляется производителем и может в дальнейшем быть изменен пользователем.

После 10 попыток ввода неверного PUK-кода устройство Рутокен Web блокируется окончательно и воспользоваться им по прямому назначению более не удастся.

Протокол аутентификации

Для входа в защищенную часть веб-ресурса пользователь должен знать некоторый «секрет». При этом важно выполнить два условия: надежно хранить «секрет» и уметь доказывать знание «секрета». Например, при аутентификации по паре логин\пароль, «секретом» является пароль, а доказательством знания «секрета» — его предъявление в открытом виде. Данная схема не является безопасной, т.к. в процесс передачи открытого пароля могут вмешаться третьи лица. После этого вся схема становится скомпрометированной.

В рамках проекта Рутокен Web была решена задача создания удобного и безопасного механизма аутентификации на удаленном веб-ресурсе при работе в открытых сетях. Основными критериями при выборе протокола были:

  • простота и наглядность протокола;
  • безопасность протокола, исключающая кражу ключевой информации при атаке на канал передачи данных;
  • минимальное количество участников;
  • быстродействие за счет снижения вычислительной нагрузки на клиентскую и серверную части.

В результате был выбран адаптированный двухпроходной односторонний протокол аутентификации с открытым ключом в соответствии с ISO/IEC 9798-3 (ISO public-Key Two-Pass Unilateral Authentication Protocol). Он построен на асимметричной криптографии и использует всего две транзакции для осуществления односторонней аутентификации. Схема работы протокола подробно описана в общедоступных источниках.

Все криптографические операции реализованы при помощи отечественных алгоритмов: хеширование по ГОСТ Р 34.11-94, формирование и проверка ЭЦП по ГОСТ Р 34.10-2001.

Механизм восстановления доступа

Механизм восстановления доступа к веб-ресурсам предусмотрен на случай утери устройства пользователем. Он основан на использовании специальной ключевой пары.

Открытый ключ восстановления записывается в устройство и хранится в контейнере с именем repair_key. Впоследствии этот ключ передается на сервер в процессе регистрации пользователя и хранится в базе данных веб-ресурса.

Закрытый ключ восстановления представляет собой последовательность из 64 букв и цифр латинского алфавита. Он хранится на поставляемой с устройством скретч-карте под защитным слоем.

Если разработчик веб-ресурса пожелает предоставить пользователям возможность резервной аутентификации без токена, ему будет необходимо самостоятельно реализовать механизм, работающий по следующей схеме:

Шаг

Действие пользователя

Реакция системы

1

Пользователь заходит на страницу восстановления доступа на веб-ресурсе.

Пользователю предлагается ввести ключ восстановления в специальном окне. Также в клиентскую часть должно быть передано сообщение для подписи, не обязательное для отображения.

2

Пользователь берет скретч-карту, стирает защитный слой в поле «ключ восстановления».

Пользователь видит закрытый ключ восстановления.

3

Пользователь вводит символы ключа в специальное окно и нажимает кнопку подтверждения.

На клиентской части происходит подпись полученного сообщения, которое отправляется на сервер для проверки подписи.

Результат

Если результат проверки подписи положительный, то пользователь получает доступ к своему аккаунту.

В случае неудачной проверки пользователь выдается сообщение об ошибке авторизации.

По сути, механизм восстановления доступа повторяет механизм аутентификации при помощи токена. Отличие в том, что подпись сообщения от сервера происходит не внутри устройства, а в коде веб-страницы. Кроме того, пользователь вводит закрытый ключ с клавиатуры, и он отображается на мониторе, что само по себе может оказаться небезопасным. Поэтому специалисты Компании «Актив» рекомендуют относиться с осторожностью к применению этого механизма и использовать его только в крайних случаях.

Пример реализации механизма восстановления представлен на демонстрационном портале Рутокен http://php.rutokenweb.ru/recovery.php.

Согласование сеансового ключа

Если два пользователя хотят обеспечить безопасность своего общения, они запускают протокол согласования ключей, чтобы установить секретный ключ сеанса. Впоследствии этот ключ используется для шифрования передаваемой информации. Для каждого нового сеанса связи вычисляется новый ключ.

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

В Рутокен Web заложен механизм надежного согласования ключа.

Задание параметров эллиптической кривой

В стандарте ГОСТ Р 34.10-2001 применяются операции на точках эллиптической кривой. Эллиптическая кривая является сложным математическим объектом. Для того чтобы задать эллиптическую кривую, необходимо особым образом подобрать шесть чисел, обладающих определенными свойствами. Данные свойства в стандарте указаны четко, однако сами шесть чисел нигде не фигурируют в явном виде. От удачного выбора этих чисел зависит безопасность формирования ЭЦП. Поэтому разработчики отдельной программной или аппаратной реализации алгоритма ГОСТ Р 34.10-2001 вынуждены самостоятельно на свой страх и риск задавать эллиптическую кривую, что потенциально может привести к ошибке.

В устройстве Рутокен Web используются параметры эллиптической кривой, рекомендованные Федеральной Службой Безопасности.

  • No labels