Обзор Рутокен Web

Рутокен Web — это двухфакторная система аутентификации на Web-ресурсах, использующая USB-токен вместо классической пары «логин-пароль». Данное решение позволяет существенно повысить безопасность аутентификации за счет использования аппаратного устройства (токена) и электронной цифровой подписи.

Использование паролей является самым простым и самым распространенным способом для защиты данных или доступа к каким-либо ресурсам. Однако использование классической пары «логин-пароль» содержит большое количество рисков. Пароль может быть перехвачен при помощи программных или аппаратных клавиатурных шпионов (кейлоггеров), программ, контролирующих формы ввода браузеров, атак «человек посередине» (англ. Man in the middle, MitM-атака) или просто подсмотрен находящимся рядом человеком. Так как после регистрации пароли хранятся на сервере, зачастую в открытом виде, то существует опасность компрометации пароля при взломе сервера.

Одним из способов снизить риск при аутентификации является использование двухфакторной аутентификации, например, при помощи аппаратных устройств — токенов. Токен (англ. Token) представляет собой компактное устройство в виде USB-брелока, которое служит для авторизации пользователя, защиты электронной переписки, безопасного удаленного доступа к информационным ресурсам, а также надежного хранения любых персональных данных. В токене могут храниться пароли, цифровые сертификаты, ключи шифрования и электронно-цифровые подписи.

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

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

Физически Рутокен Web представляет собой USB-устройство, в котором располагается защищенный микроконтроллер с энергонезависимой памятью. Ресурсы микроконтроллера предназначены для выполнения криптографических преобразований данных, а в памяти хранятся данные пользователя (пароли, сертификаты, ключи шифрования и т. д. ).

Собственно само решение Рутокен Web состоит из трех частей:

  • USB-токен — электронный ключ, в котором формируется ключевая пара и электронная цифровая подпись (ЭЦП). Токен работает как HID-устройство (Human Interface Device) и не требует установки драйверов;
  • Клиентская часть выполнена в виде плагина к браузерам и осуществляет служебные и транспортные функции для связи USB-токена с Web-сервером;
  • Серверная часть — программные модули для внедрения в проекты, для которых реализуется поддержка аутентификации при помощи Рутокен Web. Позволяет поддерживать основные функции для работы с Рутокен Web: генерацию случайных чисел, проверку ЭЦП, восстановления доступа.

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

В комплект поставки входит небольшая ярко-зеленая коробочка, в которой находится токен и скретч-карта. На скретч-карте под защитным слоем содержатся три кода — PIN, PUK и код восстановления, которые могут понадобиться пользователю для работы с Рутокен Web.

Принцип работы

Процедура доступа к Web-ресурсам основана на генерации в Рутокен Web электронной цифровой подписи. Федеральный закон Российской Федерации от 6 апреля 2011 г. N 63-ФЗ «Об электронной подписи» дает следующее определение ЭЦП: «Информация в электронной форме, которая присоединена к другой информации в электронной форме (подписываемой информации) или иным образом связана с такой информацией и которая используется для определения лица, подписывающего информацию…».

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

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

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

  1. Алгоритм формирования ЭЦП. В Рутокен Web реализован алгоритм формирования ЭЦП по ГОСТ Р 34.10-2001. Он строится на основе операций над точками на эллиптической кривой. Эллиптическая кривая — это достаточно сложный математический объект, и для ее построения нужно подобрать шесть чисел, обладающих определенными свойствами. Необходимые свойства в стандарте указаны четко, однако сами шесть чисел нигде не фигурируют в явном виде. В Рутокен Web используются параметры эллиптической кривой, рекомендованные ФСБ.
  2. Использование ключевой пары. При работе с ЭЦП используется ключевая пара — открытый и закрытый ключ. Закрытый ключ используется для формирования ЭЦП, и знать его может только человек, который формирует ЭЦП. В Рутокен Web закрытый ключ находится в собственной защищенной памяти устройства и не доступен для чтения извне. Скопировать закрытый ключ с Рутокен Web не может даже владелец устройства. Открытый ключ используется для проверки подлинности ЭЦП.
  3. Генерация случайных чисел. Использование случайных чисел является ключевым требованием при формировании ЭЦП, т. к. если у злоумышленника окажется два сообщения, для формирования которых использовались одинаковые случайные числа, то он легко сможет получить значение закрытого ключа и подписывать сообщения от чужого лица. Для формирования как ключевой пары, так и ЭЦП в Рутокен Web заложена реализация криптографически стойкого генератора псевдослучайных чисел, которой формируется на основе измерения энтропии физического процесса.
  4. Хэширование. Хэширование — это преобразование входного массива данных произвольной длины в выходную битовую строку фиксированной длины. Хэш-функция позволяет определить сходство или различие данных в двух массивах и используется для контроля целостности информации и формирования ЭЦП. В Рутокен Web применяется хэш-функция по стандарту ГОСТ Р 34.11-94, которая имеет размер хэша 256 бит и обладает свойствами необратимости и стойкости к коллизиям первого и второго рода.
  5. Протокол аутентификации. В Рутокен Web реализован «адаптированный двухпроходной односторонний протокол аутентификации с открытым ключом в соответствии с ISO/IEC 9798-3» (ISO public-Key Two-Pass Unilateral Authentication Protocol). Он построен на асимметричной криптографии и использует всего две транзакции (пересылки данных) для осуществления односторонней аутентификации. Подробности реализации данного алгоритма можно прочитать на сайте проекта.

Функциональные возможности

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

Регистрация

При регистрации клиент (браузер) генерирует в Рутокен Web ключевую пару — открытый и закрытый ключи (e, d), предназначенные для защищенной аутентификации пользователя с выбранным логином (Login). Ключевая пара будет привязана к логину и сохранена на Рутокен Web. А открытый ключ и логин будут переданы на сервер (web-ресурс, для которого осуществляется регистрация).

Аутентификация

После регистрации можно совершать процедуру аутентификации. Для этого достаточно указать на web-ресурсе логин и набрать PIN-код. После этого клиент передает на сервер логин и получает от него случайное число (RNDserver). Далее клиент генерирует свое случайное число (RNDclient) и отсылает серверу подписанное сообщение (RNDserver || RNDclient || Server-name) и ЭЦП. Получив сообщение, сервер проверяет ЭЦП при помощи открытого ключа и, в случае успешности проверки, осуществляет аутентификацию пользователя.

Восстановление доступа

В случае утери устройства Рутокен Web пользователь может получить доступ к персональным частям web-ресурсов, на которых он зарегистрирован, при помощи механизма ключей восстановления. Во время процедуры регистрации пользователя на web-ресурсе, вместе с открытым ключом пользователя (e) на сервер также передается так называемый открытый ключ восстановления (eRecovery). Производитель Рутокен Web генерирует ключевую пару — открытый и закрытый ключи восстановления. Открытый ключ восстановления eRecovery помещается на Рутокен Web, а закрытый ключ — dRecovery печатается под защитным слоем на скретч-карте, поставляемой вместе с устройством. При утере Рутокен Web пользователю необходимо стереть защитный слой со скретч-карты напротив ключа восстановления и ввести его в специальном окне на web-ресурсе.

Работа с Рутокен Web

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

Внедрение Рутокен Web в работу Web-ресурса

Если сайт разработан на основе таких распространенных систем CMS, как Joomla и WordPress, то для использования Рутокен Web достаточно скачать с сайта устройства соответствующий плагин и установить его на своем сайте.

Для сайтов, не использующих CMS Joomla и WordPress, можно скачать набор примеров для языка PHP и технологии ASP, которые демонстрируют возможности регистрации нового пользователя и последующей защищенной аутентификации при помощи Рутокен Web. Данные примеры представляют собой готовую и корректно функционирующую серверную часть Рутокен Web в минимальном виде и могут использоваться как для непосредственного внедрения на сайт после настройки, так и служить основой для создания индивидуального решения по работе с Рутокен Web.

Использование Рутокен Web для аутентификации на Web-ресурсах

Рутокен Web относится к HID-устройствам, поэтому для его использования не требуется установка дополнительных драйверов. После того, как USB-токен будет вставлен в компьютер, операционная система сама его обнаружит и подготовит к работе. Однако перед использованием нужно установить кроссбраузерный плагин, который предоставляет браузерам программный интерфейс доступа к функциям Рутокен Web. Для установки плагина не требуются права администратора, поэтому устройство легко может быть использовано даже на гостевом компьютере.

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

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

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

Для изменения указанных кодов пользователь может воспользоваться утилитой администрирования Рутокен Web, которая доступна для скачивания на сайте продукта. Утилита позволяет выбрать конкретное устройство Рутокен Web, посмотреть его параметры (Имя, ID, количество свободной памяти), изменить имя устройства, изменить PIN-код, PUK-код и код восстановления.

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

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

Выводы

В заключение хочется отметить несколько общих моментов.

Устройство позиционируется для бизнеса, для которого критична безопасность при работе с Web-ресурсами. Это может быть сфера коммуникаций (предоставление доступа к электронной почте), банки (интернет-банкинг), госучреждения (система электронного документооборота) и т. д. Использование данного решения для частных клиентов очень ограниченно, так как всегда нужно иметь поддержку работы устройства на стороне Web-ресурса.

Следует помнить, что несмотря на достаточно высокую надежность, особенно по сравнению с применением обычной пары «логин-пароль», использование токенов не является абсолютной гарантией надежности. Существует теоретическая возможность перехвата PIN-кода и затем его использование при удаленном управлении компьютером пользователя.

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

Плюсы

  1. Увеличение безопасности. Использование аппаратного устройства для хранения закрытого ключа и электронной цифровой подписи позволяет защититься от большого количества угроз при аутентификации.
  2. Простота использования. Работа с Рутокен Web не требует установки дополнительных драйверов и настройки устройства, а также знаний в области информационной безопасности.
  3. Пропадает необходимость помнить набор паролей. Достаточно вставить устройство в компьютер и набрать один PIN-код для доступа к любому количеству ресурсов.
  4. Простота внедрения. Для использования Рутокен Web на сайтах, построенных на CMS NetCat, Joomla, Wordpress, достаточно установить плагин. Для всех прочих сайтов можно использовать готовые шаблоны и примеры по внедрению.
  5. Поддержка отечественных ГОСТ-ов. Это позволяет внедрять Рутокен Web в работу государственных учреждений и силовых ведомств на территории РФ.
  6. Наличие принципиальной возможности восстановления PIN-кода, если он был забыт, и восстановления доступа к сайту, если потеряно устройство.

Минусы

  1. Отсутствие поддержки мобильных устройств. Данная возможность может быть востребована из-за увеличивающегося количества пользователей, применяющих мобильные устройства для доступа к социальным сетям, блогам и выполнению финансовых операций. Отсутствие поддержки связано с отсутствием плагина для версий браузеров, используемых на мобильных платформах.
  2. Ограниченное количество систем управления контентом (пока только три — NetCat, Joomla и Wordpress). Ограниченный круг поддерживаемых CMS уменьшает сферу использования Рутокен Web. Однако производитель заявляет, что со временем количество поддерживаемых систем будет расширяться.
  3. Не минусом, а, скорее, неудобством, является отсутствие защитной крышки на USB-разъеме. Постоянное ношение устройства в кармане может приводить к тому, что разъем будет засоряться.

Продукт получает награду Approved by Anti-Malware.ru и итоговую оценку 8 из 10 баллов.