close

Вход

Забыли?

вход по аккаунту

Рутокен WEB. Использование, конфигурирование

код для вставкиСкачать
2014
Рутокен WEB
Использование, конфигурирование, основные
принципы
Алексей Лазарев
Компания «Актив»
17.4.2014
Оглавление
О компании ................................................................................................................................................................. 3
Краткое описание продукта ....................................................................................................................................... 3
Цель документа .......................................................................................................................................................... 3
Сопутствующие документы........................................................................................................................................ 3
История документа ..................................................................................................................................................... 4
Глоссарий .................................................................................................................................................................... 5
Введение и базовые принципы ................................................................................................................................. 7
Комплектация и сопутствующее программное обеспечение ............................................................................ 7
Системные требования .......................................................................................................................................... 8
Сферы применения ................................................................................................................................................ 8
Почему аутентификация с помощью Рутокен WEB является наиболее безопасной ....................................... 9
Преимущества перед существующими на рынке решениями ........................................................................... 9
Общая схема работы решения на базе Рутокен WEB ........................................................................................ 10
Основные сценарии использования Рутокен WEB ................................................................................................ 11
Предполагаемый сценарий авторизации конечного пользователя ................................................................ 11
Сценарии регистрации пользователя ................................................................................................................. 12
Предполагаемый сценарий регистрации по инициативе администратора ресурса...................................... 12
Предполагаемый сценарий регистрации по инициативе конечного пользователя ...................................... 13
Криптографические возможности и стойкость ...................................................................................................... 14
Общие сведения ................................................................................................................................................... 14
Генерация ключей ................................................................................................................................................ 14
Хеширование......................................................................................................................................................... 15
Формирование электронно-цифровой подписи ............................................................................................... 15
Хранение закрытых ключей ................................................................................................................................. 16
Хранение открытых ключей ................................................................................................................................. 16
Возможности аутентификации владельца Рутокен WEB .................................................................................. 16
Протокол аутентификации ................................................................................................................................... 17
Механизм восстановления доступа .................................................................................................................... 18
Согласование сеансового ключа ......................................................................................................................... 19
Задание параметров эллиптической кривой ..................................................................................................... 19
Установка и конфигурирование .............................................................................................................................. 20
Плагин Рутокен WEB ............................................................................................................................................. 20
Включение поддержки Javascript в браузере .................................................................................................... 20
Руководство Рутокен WEB
© 2014 Компания «Актив»
1
Установка плагина под Windows ......................................................................................................................... 21
Установка плагина под Mac OS ............................................................................................................................ 23
Установка плагина под GNU/Linux ...................................................................................................................... 25
Администрирование Рутокен WEB.......................................................................................................................... 26
Получение утилиты администрирования ........................................................................................................... 26
Смена PIN-кода ..................................................................................................................................................... 26
Разблокировка устройства ................................................................................................................................... 28
Смена PUK-кода .................................................................................................................................................... 29
Смена ключа восстановления .............................................................................................................................. 30
Смена имени устройства ...................................................................................................................................... 32
Управление контейнерами .................................................................................................................................. 33
Работа с плагином Рутокен WEB ............................................................................................................................. 34
Доступные платформы и языки ........................................................................................................................... 34
Подготовка к работе с плагином Рутокен WEB в JavaScript .............................................................................. 34
Диагностические функции ................................................................................................................................... 35
Функции для работы с контейнерами ................................................................................................................ 36
Модификация внешнего вида окна ввода PIN-кода (параметр css) ................................................................ 38
Асинхронный вызов функций в JavaScript (параметры callback и callbackkError) ........................................... 38
Криптографические функции............................................................................................................................... 39
Устаревшие функции ............................................................................................................................................ 41
Коды ошибок и ситуации, при которых они возникают .................................................................................... 42
Создание ресурса с поддержкой Рутокен WEB...................................................................................................... 43
Запуск примера. .................................................................................................................................................... 43
Создание базы данных MySQL. ........................................................................................................................... 44
Структура сайта ..................................................................................................................................................... 45
Разбор примера реализации сценария регистрации пользователя ................................................................ 46
Работа с CMS.............................................................................................................................................................. 49
Разворачивание веб-ресурса на WordPress ....................................................................................................... 49
Подключение плагина Рутокен WEB для WordPress ......................................................................................... 52
Создание нового пользователя и привязка его к Рутокен WEB в WordPress .................................................. 53
Однофакторная аутентификация при помощи Рутокен WEB ............................................................................... 56
Актуализация и поддержка документации ............................................................................................................ 57
Руководство Рутокен WEB
© 2014 Компания «Актив»
2
О компании
Вас приветствуют специалисты Компании «Актив».
На протяжении 20 лет наша компания помогает клиентам избежать финансовых и репутационных
потерь. Используя наши продукты, сотни предприятий сохраняют и увеличивают прибыль за счет
снижения рисков воровства интеллектуальной собственности и коммерческой информации. Наша
компания представлена на рынке такими брендами, как Рутокен® и Guardant®. Мы занимаем
значительную часть рынка устройств аппаратной аутентификации и защиты от нелегального
копирования. Мы рады представить Вам наш продукт – Рутокен WEB.
Краткое описание продукта
Рутокен WEB – это устройство аппаратной аутентификации, предназначенное для безопасного
обмена информацией при работе в сети Интернет. Изделие призвано уберечь клиентов от
несанкционированного доступа к персональным данным на веб-ресурсах путем замены
небезопасной аутентификации по связке «логин-пароль» на двухфакторную аппаратную
аутентификацию. Первым фактором аутентификации является наличие у пользователя USB-токена
Рутокен WEB, вторым — знание уникального PIN-кода к нему. Решение основано на технологии
электронной подписи.
Цель документа
Целью данного документа является предоставление детальной информации по продукту Рутокен
WEB для пользователей и разработчиков.
В документе описана сфера применения, технические особенности устройства, способы работы с
ним. Также рассмотрены базовые принципы информационной безопасности применительно к
средствам аутентификации пользователя.
Сопутствующие документы


Руководство пользователя по эксплуатации Рутокен WEB.
Рутокен WEB – Ознакомительная записка для владельцев ресурсов и партнеров.
Руководство Рутокен WEB
© 2014 Компания «Актив»
3
История документа
Дата изменения
2014-04-18
Версия
1.0
Руководство Рутокен WEB
Автор
Алексей Лазарев
Комментарий
Первый релиз
© 2014 Компания «Актив»
4
Глоссарий
Термин
Аутентификация
Двухфакторная
аутентификация
Аутентификация по
паре «логин-пароль»
USB (Universal Serial
Bus)
USB-токен (токен)
Рутокен WEB
(устройство)
Ключевая пара
ЭЦП (электронноцифровая подпись
электронная подпись)
PKI (Public Key
Infrastructure)
Симметричные шифры
Асимметричные
шифры
Генерация ключевых
пар
Хеш-функция (хеш)
Комментарий
Процедура проверки и подтверждения подлинности пользователя путём
сравнения введённых им идентификационных данных с данными из базы
пользователей.
Аутентификация, в процессе которой предъявляются признаки подлинности
двух разных типов. Например, пропуск и пароль. В нашем случае – устройство
Рутокен WEB и PIN-код.
Наиболее распространенный метод аутентификации на веб-ресурсах на
сегодняшний день. Чтобы начать сессию, пользователю необходимо ввести
имя своего аккаунта и пароль доступа. Метод обладает рядом существенных
недостатков в плане безопасности.
Последовательный интерфейс передачи данных для среднескоростных и
низкоскоростных периферийных устройств вычислительной технике.
Компактное устройство в виде USB-брелока, которое служит для
аутентификации пользователя, защиты электронной переписки, безопасного
удаленного доступа к информационным ресурсам, а также надежного
хранения персональных данных.
USB-токен, предназначенный для аутентификации на веб-ресурсах. Разработан
Компанией «Актив».
Пара взаимосвязанных ключей, используемая в асимметричных алгоритмах
шифрования и проверки ЭЦП. Состоит из закрытого ключа, известного только
своему владельцу, и открытого, который может быть опубликован. По
секретному ключу можно легко вычислить открытый ключ, но не наоборот.
Данные, зашифрованные при помощи открытого ключа, можно расшифровать
при помощи закрытого. Таким образом, расшифровать сообщение может
только адресат и больше никто, включая отправителя.
Реквизит
электронного
документа,
полученный
в
результате
криптографического преобразования информации с использованием
закрытого ключа. Используется для защиты документа от подделок и внесения
несанкционированных изменений.
Набор средств, используемых для поддержки криптографических задач на
основе закрытого и открытого ключей.
Способы шифрования информации, в которых для шифрования и расшифровки
используется один и тот же криптографический ключ. Ключ должен
сохраняться в секрете обеими сторонами. Алгоритм шифрования выбирается
сторонами до начала обмена сообщениями.
Способы шифрования информации при помощи ключевой пары. Открытый
ключ передается используется для шифрования информации. Для
расшифровки используется закрытый ключ, который должен сохраняться в
секрете получателем зашифрованного сообщения.
Процесс криптографического преобразования случайной информации,
результатом которого является ключевая пара, которая используется для
шифрования данных и ЭЦП.
Преобразование по детерминированному алгоритму входного массива
данных произвольной длины в выходную битовую строку фиксированной
длины. Криптографическая хеш-функция должна удовлетворять следующим
требованиям: необратимость, стойкость к коллизиям первого и второго рода
(см. Криптографические возможности и стойкость. Хеширование).
Руководство Рутокен WEB
© 2014 Компания «Актив»
5
ГСЧ (Генератор
случайных чисел)
ГПСЧ (Генератор
псевдослучайных
чисел)
ГОСТ Р 34.10-2001
USB HID (USB human
interface device)
Смарт-карта
PKCS#11 (Cryptoki)
Х.509
PIN-код (Personal
Identification Number)
PUK-код (Personal
Unlock Кеу)
Скретч-карта
Ключ восстановления
Контейнер учетной
записи (контейнер)
Front-office
Back-office
Система для генерирования последовательности чисел (или битов), которая не
имеет никакого шаблона и зависимостей и гарантирует, что следующее число
в этой последовательности не может быть предсказано.
Система для генерирования последовательности чисел (или битов), элементы
которой почти независимы друг от друга и обычно подчиняются равномерному
распределению.
Российский стандарт, описывающий алгоритмы формирования и
проверки электронной цифровой подписи.
Стандарт USB-устройств, описывающий прямое взаимодействие устройства с
компьютером. При этом устройство не нуждается в специальном драйвере.
Устройство (как правило, пластиковая карта) с интегрированным электронным
чипом. Обычно чип смарт-карты содержит микропроцессор, ОЗУ, ПЗУ, и
операционную систему для контроля доступа к объектам памяти. Основное
назначение смарт-карт – одно и двухфакторная аутентификация владельца.
Один из стандартов семейства Public-Key Cryptography Standards,
определяющий платформонезависимый программный интерфейс доступа к
криптографическим устройствам.
Стандарт,
определяющий
форматы
данных
и
процедуры
распределения открытых ключей с помощью сертификатов с цифровыми
подписями, которые предоставляются сертификационными органами.
Числовой пароль, известный пользователю и системе (устройству
аутентификации). Используется для аутентификации пользователя в системе.
Обычно, серия неудачных попыток ввода PIN-кода приводит к блокировке
устройства, предотвращая, тем самым, возможность его дальнейшего
использования.
Числовой пароль, используемый для разблокировки устройства, которое было
заблокировано после серии неудачных попыток ввода PIN-кода.
Пластиковая карта, поставляемая в комплекте с устройством Рутокен WEB.
Скретч-карта содержит под защитным слоем информацию о PIN-коде, PUKкоде и ключе восстановления устройства.
Последовательность чисел для восстановления доступа к веб-ресурсу в случае
утери пользователем устройства Рутокен WEB. Содержится под защитным
слоем на скретч-карте.
Ячейка данных в защищенной памяти токена, в которой хранится информация
об учетной записи на веб-ресурсе. Содержит имя пользователя, адрес ресурса,
открытый и закрытый ключ. Контейнер учетной записи создается во время
регистрации пользователя на веб-ресурсе. Количество контейнеров обычно
равно количеству используемых аккаунтов на различных сайтах.
Интерфейс доступа к обмену данными с веб-ресурсом, предоставляемый
конечному пользователю. Как правило, через front-office бывают доступны
следующие возможности:
- регистрация нового пользователя;
- удаление принадлежащего пользователю аккаунта;
- смена собственной идентификационной информации пользователя;
- управление собственными личными данными пользователя;
Интерфейс доступа к обмену данными с веб-ресурсом, предоставляемый его
администратору.
Обеспечивает
возможность
мониторинга
и
администрирования содержимого ресурса, среди которых управление
состоянием пользовательских аккаунтов, их создание, блокировка,
разблокировка и удаление.
Руководство Рутокен WEB
© 2014 Компания «Актив»
6
Введение и базовые принципы
-
-
Рутокен WEB – это устройство аппаратной аутентификации пользователя, обладающее
возможностью генерации ключевых пар и электронной подписи документов по стандарту ГОСТ
Р 34.10-2001.
Рутокен WEB предназначен для замены классической аутентификации на веб-ресурсах по паре
«логин-пароль» на двухфакторную аутентификацию с аппаратной ЭЦП.
Рутокен WEB выполнен в виде брелока, содержащего электронный чип. Он подключается к USBпорту компьютера и использует стандарт USB HID для обмена информацией. Это позволяет
устройству работать без сторонних драйверов.
Комплектация и сопутствующее программное обеспечение
-
Рутокен WEB поставляется в комплекте со скретч-картой, содержащей PIN-код, PUK-код и ключ
восстановления.
-
Для работы с Рутокен WEB необходимо установить Плагин Рутокен WEB. Актуальная версия
плагина доступна по ссылке: http://www.rutoken.ru/support/download/rutoken-web/
Для администрирования Рутокен WEB используется утилита администрирования. Актуальная
версия утилиты доступна по ссылке: http://www.rutoken.ru/support/download/rutoken-web/
-
Руководство Рутокен WEB
© 2014 Компания «Актив»
7
Системные требования
Аппаратура
 Компьютер либо планшет с поддержкой USB-host и HID-устройств
Операционные системы
 MS Windows 8/7/Vista/2003/XP
 Mac OS X 10.8/10.7/10.6
 32-разрядные Ubuntu/Debian/Fedora/RedHat/CentOS
Браузеры
 Internet Explorer
 Mozilla Firefox
 Google Chrome
 Opera
 Safari
Сферы применения
Рутокен WEB может применяться по всем направлениям, где требуется надежная аутентификация
удаленного клиента без использования специальных средств, сертифицированных
государственными органами.
В качестве примера можно привести следующие области:






Защищенный доступ к приложения SAAS и облачным хранилищам данных. Многие
производители традиционных офисных приложений все чаще прибегают к практике
хранения документов в облаках.
Аутентификация клиента на любых веб-ресурсах, форумах, блогах. Случаи кражи доступа
к последним участились из-за обострения социально-политической обстановки.
Доступ в клиент-банк. Крупные банки позволяют своим клиентам распечатывать логинпароль через банкомат. Логин и пароль предоставляются в открытом виде, доступном для
изучения.
Доступ к платформам биржевой торговли. Зачастую для доступа в аккаунт используются
флеш-накопители, на которых в доступной форме хранится ключевая пара. В этом случае
даже временная утрата носителя может обернуться прямыми финансовыми потерями.
Распространение доступа к онлайн-каталогам продукции и возможности ее заказа среди
дилеров. Примером могут послужить каталоги запчастей крупных автопроизводителей. На
сегодняшний день существенная доля автозапчастей распространяется через дилеров,
использующих краденные аккаунты, и, не оплачивающих абонентский доступ к каталогам.
Удаленный доступ врачей к истории болезни пациента, хранящейся в БД медицинского
учреждения. Несанкционированное изменение информации о пациенте может привести к
некорректной терапии.
Руководство Рутокен WEB
© 2014 Компания «Актив»
8
Почему аутентификация с помощью Рутокен WEB является наиболее безопасной
Не секрет, что подавляющее большинство атак на пользовательские аккаунты выполняются путем
кражи или подбора пароля пользователя. Ситуация усугубляется, если пользователь использует
простые пароли, либо один и тот же пароль для нескольких аккаунтов. Это приводит потере
контроля над данными, которые могут быть украдены, искажены либо уничтожены. Аккаунты могут
предоставлять доступ к электронным кошелькам клиентов и информации о пластиковых картах, и,
кража доступа к ним грозит прямыми финансовыми потерями.
При использовании аппаратных аутентификаторов риск кражи паролей сводится к нулю т.к., по
сути, их нет. Отпадает необходимость запоминать или где-то хранить множество сложных паролей.
Достаточно предъявить персональное устройство и ввести уникальный PIN-код.
Преимущества перед существующими на рынке решениями
Существующие сегодня на рынке аутентификаторы обладают рядом ограничений, затрудняют их
использование в бизнесе. При проектировании Рутокен WEB, многих недостатков удалось
избежать.



Инфраструктура Рутокен WEB не нуждается в разворачивании удостоверяющего центра, как
это делается о многих системах аутентификации, использующих токены в качестве
ключевых носителей.
Для поддержки криптографических возможностей токенам необходимо дополнительное
программное обеспечение: драйверы и криптопровайдер, что доставляет дополнительные
трудности конечному пользователю. Рутокен WEB выполнен по технологии HID и не требует
ни драйверов, ни криптопровайдера. Все что нужно сделать – это установить плагин для
браузера.
Для поддержки большинства существующих токенов на серверной части должно
устанавливаться дорогостоящее программное обеспечение. Все, что нужно для поддержки
Рутокен WEB на сервере – это внедрение в код веб-ресурса дополнительных модулей,
поставляемых в составе готовых примеров. Внедрение займет один-два дня работы
среднестатистического веб-мастера.
Несмотря на легкость решения, Рутокен WEB имеет серьезную начинку в виде встроенной
возможности генерации ключевых пар и формирования электронной подписи по алгоритму ГОСТ Р
34.10-2001. Этот стандарт является общепризнанным в мире, и, как минимум, не уступает по
надежности и взломостойкости аналогичным зарубежным алгоритмам.
Если вы добавили поддержку Рутокен WEB на своем ресурсе, не обязательно организовывать
централизованную закупку и логистику устройств для всех пользователей. Конечный пользователь
может приобрести Рутокен WEB самостоятельно, чтобы затем зарегистрировать его на вашем сайте.
Руководство Рутокен WEB
© 2014 Компания «Актив»
9
Общая схема работы решения на базе Рутокен WEB
Механизм аутентификации на основе решения Рутокен WEB может быть легко встроен в
большинство существующих веб-ресурсов.
Для организации стандартного механизма аутентификации по связке логин-пароль необходимо
наличие следующих компонентов (отмечены на схеме ниже белыми кружками):


компьютер (1) с установленным браузером (2) на стороне клиента;
на серверной стороне: компьютер с развернутым на нем веб-сервисом (3) с
интегрированной базой данных пользователей (4);
В данном случае, для проведения успешной аутентификации достаточно, чтобы пользователь
зашел на страницу авторизации и ввел свои логин и пароль. На сервере введенные данные
проверяются на соответствие записям в БД. При совпадении данных, клиент получает доступ к
своему аккаунту.
6
5
7
2
Код
сервер
ной
части
Рутокен WEB
Плагин RT WEB
Браузер
4
БД клиентов
Компьютер клиента
1
3
Сервер
При аутентификации с помощью Рутокен WEB в системе появляются дополнительные элементы
(отмечены красными кружками):



устройство Рутокен WEB (5) в качестве носителя ключевой информации;
Плагин Рутокен WEB для обеспечения обмена данными между устройством и браузером;
Дополнительный программный модуль серверной части (7) для обработки запросов от
устройства, который встраивается в основной код сервиса;
В такой схеме клиент отправляет серверу запрос на аутентификацию. В ответ сервер посылает
сообщение, которое должно быть подписано на устройстве клиента. Для подтверждения своих
намерений клиент вводит PIN-код. После проверки PIN-кода и подписи, сообщение отправляется
на сервер. При этом закрытый ключ не покидает пределы устройства. Сервер проверяет подпись на
известном ему открытом ключе клиента и, в случае успеха, предоставляет доступ к аккаунту.
При необходимости на ресурсе может одновременно поддерживаться авторизация как
стандартным способом (логин + пароль), так и с помощью Рутокен WEB.
Руководство Рутокен WEB
© 2014 Компания «Актив»
10
Основные сценарии использования Рутокен WEB
Предполагаемый сценарий авторизации конечного пользователя
Шаг Действие пользователя
1
Если устройство используется впервые, то пользователю
необходимо установить плагин Рутокен WEB в свой
браузер. Это можно сделать, зайдя в центр загрузки на
сайте Рутокен
http://www.rutoken.ru/support/download/rutoken-web/.
2
На компьютере с установленным плагином Рутокен WEB
пользователь в своем браузере открывает страницу
авторизации требуемого веб-ресурса. Предполагается,
что к этому моменту информация о пользователе и его
токене уже содержится в базе данных веб-ресурса.
3
Пользователь вставляет токен в USB-порт компьютера.
Реакция системы
Плагин установлен на компьютере
пользователя.
Открыта
страница
либо
авторизации пользователя.
окно
Компьютер определяет тип устройства,
как стандартную смарт-карту.
4
В меню авторизации, пользователь выбирает способ Пользователю предлагается выбрать
авторизации по токену.
контейнер
для
дальнейшей
авторизации.
5
Пользователь выбирает нужный контейнер и нажимает Пользователю предлагается ввести PINкнопку входа.
код в специальном окне.
6
Пользователь вводит PIN-код и нажимает кнопку Система
проверяет
PIN-код
и
подтверждения.
обменивается
подписанным
сообщением с сервером.
Результат
Если результат проверки подписи положительный, то пользователь получает доступ к своим личным
данным, хранящимся на веб-ресурсе.
В случае неудачи выдается сообщение об ошибке. Как правило это сообщение о неверном PIN-коде либо
о том, что пользователь с таким устройством не был зарегистрирован на ресурсе.
Руководство Рутокен WEB
© 2014 Компания «Актив»
11
Сценарии регистрации пользователя
Концепция использования Рутокен WEB предполагает различные сценарии регистрации
пользователя на веб ресурсах. Все зависит от политики предоставления доступа, определяемой
хозяином ресурса (администратором). В данном документе выделены два основных сценария
регистрации:


через back-office по инициативе администратора ресурса на его площадке c последующей
передачей токена пользователю.
через front-office по инициативе конечного пользователя, у которого уже есть токен.
Предполагаемый сценарий регистрации по инициативе администратора ресурса
Шаг Действие пользователя
Реакция системы
1
Администратор ресурса заходит на страницу регистрации Появляется форма ввода данных о
пользователя через back-office и нажимает кнопку пользователе.
регистрации нового пользователя.
2
Администратор вводит учетные данные пользователя в Система предлагает подключить токен
предлагаемой форме и нажимает кнопку регистрации.
и ввести PIN-код.
3
Администратор берет новый токен и подключает его к Компьютер определяет тип устройства,
компьютеру. При этом предполагается, что на как стандартную смарт-карту.
На
компьютере администратора уже установлен плагин токене загорается и гаснет светодиод.
Рутокен WEB.
4
Администратор берет скретч-карту, поставляемую с Система
проверяет
PIN-код
и
токеном, стирает защитный слой в поле PIN-код, вводит обменивается
информацией
с
PIN-код в предлагаемом окне и нажимает кнопку сервером.
подтверждения.
Результат
В случае успеха на токене появляется новый контейнер с закрытым ключом. В базу данных веб-ресурса
попадает информация о пользователе, открытый ключ для проверки подписи и открытый ключ для
восстановления доступа к веб ресурсу на случай утери устройства пользователем.
В случае неудачи выдается сообщение об ошибке. Как правило это сообщение о неверно введенном PINкоде.
После процедуры регистрации токен передается конечному пользователю.
Скретч-карта с открытым PIN-кодом должна быть передана конечному пользователю, при
этом важно проконтролировать, чтобы пользователь сменил PIN-код при помощи утилиты
администрирования, т.к. по факту он скомпрометирован. Сохранение скретч-карты у
администратора не рекомендуется, т.к. это может привести к несанкционированному
доступу третьих лиц к личным данным пользователя путем кражи ключа восстановления.
Руководство Рутокен WEB
© 2014 Компания «Актив»
12
Предполагаемый сценарий регистрации по инициативе конечного пользователя
Шаг Действие пользователя
1
Если устройство используется впервые, то пользователю
необходимо установить плагин Рутокен WEB в свой
браузер. Это можно сделать, зайдя в центр загрузки на
сайте Рутокен
http://www.rutoken.ru/support/download/rutoken-web/.
2
На компьютере с установленным плагином Рутокен WEB
пользователь
в
браузере
открывает
страницу
регистрации на веб-ресурсе.
3
Пользователь вводит свои регистрационные данные в
форме и нажимает кнопку «Зарегистрироваться»
4
Пользователь берет токен и подключает его к
компьютеру.
Реакция системы
Плагин установлен на компьютере
пользователя.
Открыта форма ввода регистрационных
данных нового пользователя.
Система предлагает подключить токен
и ввести PIN-код.
Компьютер определяет тип устройства,
как стандартную смарт-карту.
На
токене загорается и гаснет светодиод.
5
При первой регистрации пользователь берет скретч- Пользователь видит PIN-код.
карту, поставляемую с токеном, стирает защитный слой в
поле PIN-код.
6
Пользователь вводит PIN-код в предлагаемом окне и Система
проверяет
PIN-код
и
нажимает кнопку подтверждения.
обменивается
информацией
с
сервером.
Результат
В случае успеха на токене появляется новый контейнер с закрытым ключом. В базу данных веб сервиса
попадает информация о пользователе, открытый ключ для проверки подписи и открытый ключ для
восстановления доступа к веб ресурсу на случай утери устройства пользователем.
В случае неудачи выдается сообщение об ошибке. Как правило это сообщение о неверно введенном PINкоде.
Скретч-карта с открытым PIN-кодом должна храниться в надежном месте, т.к. в противном
случае это может привести к несанкционированному доступу третьих лиц к личным данным
пользователя посредством кражи ключа восстановления.
Руководство Рутокен WEB
© 2014 Компания «Актив»
13
Криптографические возможности и стойкость
Общие сведения
Важной особенностью решения на базе Рутокен WEB является то, что все криптографические
операции выполняются внутри USB-токена. Это гарантирует корректность всех критически важных
вычислений, а также целостность и сохранность ключевой информации.
Решение Рутокен WEB может применяться для защищенной аутентификации на веб-ресурсе,
хеширования данных по стандарту ГОСТ Р 34.11-94, формирования ЭП в соответствии со стандартом
ГОСТ Р 34.10-2001, контроля целостности и генерации ключевой информации, включающей
ключевые пары, ключи симметричного шифрования и общие сессионные ключи.
Генерация ключей
В процессе криптографических преобразований, таких как генерация ключей шифрования и
формирование электронной цифровой подписи, важнейшую роль играет генератор случайных
чисел. От того, насколько непредсказуемым будет результат работы ГСЧ зависит стойкость шифра
ко взлому.
Например, в ходе формирования ЭЦП происходит генерация случайного числа, от которого будет
зависеть конечное значение подписи. При многократной подписи одного и того же сообщения на
одном и том же закрытом ключе значения ЭЦП должны отличаться. Если злоумышленник
определит значение случайного числа, или получит от одного отправителя два разных сообщения,
подписанных с использованием одного и того же числа, он сможет вычислить закрытый ключ. Это
даст ему возможность подписывать сообщения от имени законного владельца.
В устройстве Рутокен WEB заложена реализация криптографически стойкого генератора
псевдослучайных чисел, получающего энтропию от физического процесса. Встроенный функционал
позволяет генерировать ключевые пары для алгоритмов RSA и ГОСТ Р 34.10-2001.
Руководство Рутокен WEB
© 2014 Компания «Актив»
14
Хеширование
Хеширование применяется для контроля целостности информации, а также в процессе
формирования электронной цифровой подписи. По сути — это получение «отпечатка»
определенной длины от любых данных произвольного размера, подставляемых в хеш-функцию в
качестве аргумента.
Преобразование, осуществляемое хеш-функцией 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
© 2014 Компания «Актив»
15
Хранение закрытых ключей
Для формирования ЭЦП необходим закрытый ключ. При ненадлежащем обращении с закрытым
ключом, он может попасть в руки злоумышленника. Отсюда возникает необходимость хранения
собственного закрытого ключа в надежном месте, недоступном третьим лицам.
Устройство Рутокен 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
© 2014 Компания «Актив»
16
Протокол аутентификации
Для входа в защищенную часть веб-ресурса пользователь должен знать некоторый «секрет». При
этом важно выполнить два условия: надежно хранить «секрет» и уметь доказывать знание
«секрета». Например, при аутентификации по паре логин\пароль, «секретом» является пароль, а
доказательством знания «секрета» — его предъявление в открытом виде. Данная схема не является
безопасной, т.к. в процесс передачи открытого пароля могут вмешаться третьи лица. После этого
вся схема становится скомпрометированной.
В рамках проекта Рутокен WEB была решена задача создания удобного и безопасного механизма
аутентификации на удаленном веб-ресурсе при работе в открытых сетях. Основными критериями
при выборе протокола были:




простота и наглядность протокола;
безопасность протокола, исключающая кражу ключевой информации при атаке на канал
передачи данных;
минимальное количество участников;
быстродействие, за счет снижения вычислительной нагрузки на клиентскую и серверную
части;
В результате был выбран адаптированный двухпроходной односторонний протокол
аутентификации с открытым ключом в соответствии с ISO/IEC 9798-3 (ISO public-Key Two-Pass
Unilateral Authentication Protocol). Он построен на асимметричной криптографии и использует всего
две транзакции для осуществления односторонней аутентификации. Схема работы протокола
подробно описана в общедоступных источниках.
Все криптографические операции реализованы при помощи отечественных алгоритмов:
хеширование по ГОСТ Р 34.11-94, формирование и проверка ЭЦП по ГОСТ Р 34.10-2001.
Руководство Рутокен WEB
© 2014 Компания «Актив»
17
Механизм восстановления доступа
Механизм восстановления доступа к веб-ресурсам предусмотрен на случай утери устройства
пользователем. Он основан на использовании специальной ключевой пары.
Открытый ключ восстановления записывается в устройство и хранится в контейнере с именем
repair_key. Впоследствии этот ключ передается на сервер в процессе регистрации пользователя и
хранится в базе данных веб-ресурса.
Закрытый ключ восстановления представляет собой последовательность из 64 букв и цифр
латинского алфавита. Он хранится на поставляемой с устройством скретч-карте под защитным
слоем.
Если разработчик веб-ресурса пожелает предоставить пользователям возможность резервной
аутентификации без токена, ему будет необходимо самостоятельно реализовать механизм,
работающий по следующей схеме:
Шаг Действие пользователя
1
Пользователь заходит на страницу восстановления
доступа на веб-ресурсе.
Реакция системы
Пользователю предлагается ввести
ключ восстановления в специальном
окне. Также в клиентскую часть должно
быть передано сообщение для
подписи,
не
обязательное
для
отображения.
2
Пользователь берет скретч-карту, стирает защитный слой Пользователь видит закрытый ключ
в поле «ключ восстановления».
восстановления.
3
Пользователь вводит символы ключа в специальное окно На клиентской части происходит
и нажимает кнопку подтверждения.
подпись полученного сообщения,
которое отправляется на сервер для
проверки подписи.
Результат
Если результат проверки подписи положительный, то пользователь получает доступ к своему аккаунту.
В случае неудачной проверки пользователь выдается сообщение об ошибке авторизации.
По сути, механизм восстановления доступа повторяет механизм аутентификации при помощи
токена. Отличие в том, подпись сообщения от сервера происходит не внутри устройства, а в коде
веб-страницы. Кроме того, пользователь вводит закрытый ключ с клавиатуры, и он отображается
на мониторе, что само по себе может оказаться небезопасным. Поэтому специалисты Компании
«Актив» рекомендуют относиться с осторожностью к применению этого механизма и использовать
его только в крайних случаях.
Пример реализации механизма восстановления представлен на демонстрационном портале
Рутокен http://php.rutokenweb.ru/recovery.php.
Руководство Рутокен WEB
© 2014 Компания «Актив»
18
Согласование сеансового ключа
Если два пользователя хотят обеспечить безопасность своего общения, они запускают протокол
согласования ключей, чтобы установить секретный ключ сеанса. Впоследствии этот ключ
используется для шифрования передаваемой информации. Для каждого нового сеанса связи
вычисляется новый ключ.
Суть механизма в следующем: если каждый из участников сеанса умножит свой закрытый ключ на
открытый ключ собеседника, то оба участника получат одинаковое значение. Для внесения
элемента случайности участникам нужно умножить полученное значение на случайное число,
которым можно обменяться предварительно по открытому каналу связи. Если результат
произведения трех чисел (собственный закрытый ключ, открытый ключ собеседника, случайное
число) подставить в функцию хеширования, то оба пользователя получат одинаковый сеансовый
ключ, из которого нельзя получить исходные данные.
В Рутокен WEB заложен механизм надежного согласования ключа.
Задание параметров эллиптической кривой
В стандарте ГОСТ Р 34.10-2001 применяются операции на точках эллиптической кривой.
Эллиптическая кривая является сложным математическим объектом. Для того чтобы задать
эллиптическую кривую, необходимо особым образом подобрать шесть чисел, обладающих
определенными свойствами. Данные свойства в стандарте указаны четко, однако сами шесть чисел
нигде не фигурируют в явном виде. От удачного выбора этих чисел зависит безопасность
формирования ЭЦП. Поэтому разработчики отдельной программной или аппаратной реализации
алгоритма ГОСТ Р 34.10-2001 вынуждены самостоятельно на свой страх и риск задавать
эллиптическую кривую, что потенциально может привести к ошибке.
В устройстве Рутокен WEB используются параметры эллиптической кривой, рекомендованные
Федеральной Службой Безопасности.
Руководство Рутокен WEB
© 2014 Компания «Актив»
19
Установка и конфигурирование
Плагин Рутокен WEB
Плагин Рутокен WEB представляет собой надстройку, интегрируемую в наиболее
распространенные браузеры и позволяет браузерам опознавать устройство и работать с ним.
Список поддерживаемых плагином операционных систем и браузеров представлен ниже:
Windows
Mac OS
GNU/Linux
Internet
Explorer 6 и
выше
+
-
Google
Chrome 2 и
выше
+
+
+
Mozilla Firefox
3.0 и выше
Opera
Apple Safari 4
и выше
+
+
+
+
-
+
-
На момент написания данного документа была протестирована работа с последними версиями
браузеров:





Apple Safari 5.1.7
Opera 20.0
Mozilla Firefox 28.0
Google Chrome 34.0.1847.116
Microsoft Internet Explorer 11
Включение поддержки Javascript в браузере
Для корректной работы плагин Рутокен WEB требует от браузера включенной поддержки Javascript.
Как правило, в современных версиях браузеров использование Javascript разрешено по умолчанию.
Для того, чтобы принудительно разрешить использование Javascript, необходимо запустить нужный
браузер и выполнить действия, описанные в таблице ниже:
Internet
Explorer
Google
Chrome
Mozilla Firefox
Opera
Safari
Зайти в меню Сервис/Свойства браузера/Безопасность/Другой/Сценарии/
Выполнять сценарии приложений Java.
Выбрать пункт Включить.
Зайти в меню Настройка и управление Google Chrome/Настройки/Показать
дополнительные настройки/Личные данные/Настройки контента/JavaScript
Выбрать пункт Разрешить сайтам использовать JavaScript(рекомендуется)
В современных версиях браузера, начиная с 23 дополнительная настройка не
требуется.
Зайти в меню Opera/Настройки/Веб-сайты/JavaScript
Выбрать пункт Разрешить выполнение JavaScript(рекомендовано)
Зайти в меню Отобразить меню основных настроек Safari/Настройки/
Безопасность
Отметить пункт Включить JavaScript
Руководство Рутокен WEB
© 2014 Компания «Актив»
20
Установка плагина под Windows
Чтобы установить плагин Рутокен WEB под Windows зайдите через браузер в центр загрузки Рутокен
на сайте www.rutoken.ru и выберите пункт ПО для Рутокен WEB. Либо перейдите по ссылке
http://www.rutoken.ru/support/download/rutoken-web/.
На странице загрузки ПО выберите ссылку Пользователям Windows.
Далее нужно принять лицензионное соглашение на использование программных продуктов
Рутокен, нажав на кнопку Условия приняты. Начнется загрузка плагина Рутокен WEB.
По окончании загрузки следует запустить загруженный файл и выполнить следующие действия:
1) Нажать кнопку Далее в появившемся окне приветствия.
2) Нажать кнопку Установить в появившемся окне. Начнется установка плагина.
Руководство Рутокен WEB
© 2014 Компания «Актив»
21
3) По окончании установки нажать кнопку Готово.
Плагин Рутокен WEB успешно установлен.
Руководство Рутокен WEB
© 2014 Компания «Актив»
22
Установка плагина под Mac OS
Чтобы установить плагин Рутокен WEB под Mac OS зайдите через браузер в центр загрузки Рутокен
на сайте www.rutoken.ru и выберите пункт ПО для Рутокен WEB или перейдите по ссылке
http://www.rutoken.ru/support/download/rutoken-web/.
На странице загрузки ПО выберите ссылку Пользователям Mac.
Далее нужно принять лицензионное соглашение на использование программных продуктов
Рутокен, нажав на кнопку Условия приняты. Начнется загрузка плагина Рутокен WEB.
По окончании загрузки следует запустить загруженный файл и выполнить следующие действия:
1) Откройте раздел Загрузки в программе Finder и найдите файл RutokenWebPlugin.pkg.
2) В меню управления объектом выберите пункт Открыть в программе/Установщик.
3) В появившемся окне предупреждения нажмите кнопку Открыть.
4) Если появится окно с предупреждением о просроченном сертификате, нажмите в окне кнопку
Продолжить. Запустится мастер установки.
5) Нажмите кнопку Продолжить в окне мастера.
Руководство Рутокен WEB
© 2014 Компания «Актив»
23
6) На странице размещения выберите пункт Установить только для меня и нажмите кнопку
Продолжить.
7) В окне Тип установки нажмите кнопку Установить. Начнется установка Плагина.
8) По окончании установки в окне Обзор нажмите кнопку Закрыть.
Плагин Рутокен WEB успешно установлен.
Руководство Рутокен WEB
© 2014 Компания «Актив»
24
Установка плагина под GNU/Linux
Чтобы установить плагин Рутокен WEB под GNU/Linux зайдите через браузер в центр загрузки
Рутокен на сайте www.rutoken.ru и выберите пункт ПО для Рутокен WEB. Либо перейдите по ссылке
http://www.rutoken.ru/support/download/rutoken-web/.
На странице загрузки ПО выберите ссылку Пользователям GNU/Linux.
Далее нужно принять лицензионное соглашение на использование программных продуктов
Рутокен, нажав на кнопку Условия приняты. Начнется загрузка плагина Рутокен WEB.
По окончании загрузки следует запустить загруженный файл и выполнить следующие действия:
Шаг Действие пользователя
1
Дождаться завершения загрузки файла
RutokenWebPluginInstaller.tar.gz
2
Открыть терминал и ввести команду:
Реакция системы
В
папке
загрузок
появится
файл
RutokenWebPluginInstaller.tar.gz
установщика
плагина,
представляющий
собой
заархивированный sh-скрипт.
Папка с загруженным файлом станет текущей.
3
$ cd /home/[User]/Downloads
В окне терминала ввести команду:
Файл скрипта будет извлечен из архива.
4
$ tar -xvvf RutokenWebPluginInstaller.tar.gz
В окне терминала ввести команду:
Будет произведена установка плагина Рутокен
WEB.
$ sh RutokenWebPluginInstaller.sh
Руководство Рутокен WEB
© 2014 Компания «Актив»
25
Администрирование Рутокен WEB
Для управления устройством используется утилита администрирования Рутокен Web, которая
позволяет решать следующие задачи:






изменять PIN-код устройства,
изменять PUK-код устройства,
разблокировать PIN-код устройства после его блокировки,
изменять код восстановления,
изменять символьное имя токена,
просматривать и удалять объекты на устройстве.
Получение утилиты администрирования
Для получения утилиты администрирования под Windows зайдите в центр загрузки на сайте
www.rutoken.ru и выберите пункт ПО для Рутокен WEB. Либо перейдите по ссылке
http://www.rutoken.ru/support/download/rutoken-web/.
На странице загрузки ПО выберите раздел с нужной операционной системой.
Далее нужно принять лицензионное соглашение на использование программных продуктов
Рутокен, нажав на кнопку Условия приняты. Начнется загрузка утилиты администрирования rtwUtil.
Смена PIN-кода
PIN-код используется для доступа к содержимому устройства и запрашивается при аутентификации
(входе) на каждом из веб-ресурсов. PIN-код поставляется вместе с устройством на скретч-карте:
Для смены PIN-кода необходим текущий PIN-код или PUK-код устройства. Если оба кода были
утеряны, изменение PIN-кода устройства невозможно.
Руководство Рутокен WEB
© 2014 Компания «Актив»
26
Для смены PIN-кода устройства выполните следующие действия:
1) Вставьте устройство Рутокен WEB в USB-порт компьютера и запустите утилиту
администрирования Рутокен WEB rtwUtil.
2) В появившемся окне программы, в списке слева выберите устройство, PIN-код которого
требуется сменить.
3) В правой нижней части окна нажмите кнопку Изменить PIN-код…
4) В открывшемся окне введите текущий PIN-код устройства и нажмите кнопку ОК.
5) В открывшемся следом окне введите новый PIN-код и его подтверждение и нажмите кнопку
ОК.
6) В случае, если новый PIN-код и его подтверждение совпадут. Программа сообщит об
успешной смене PIN-кода.
Руководство Рутокен WEB
© 2014 Компания «Актив»
27
Разблокировка устройства
Число последовательных неудачных попыток ввода PIN-кода для Рутокен Web ограничено. Если
установленное количество (по умолчанию − 10) попыток ввода PIN-кода превышено, то устройство
блокируется.
Для разблокировки устройства Рутокен WEB выполните следующие действия:
1) Вставьте устройство Рутокен WEB в USB-порт компьютера и запустите утилиту
администрирования Рутокен WEB rtwUtil.
2) В появившемся окне программы, в списке слева выберите устройство, которое нужно
разблокировать.
3) В правой нижней части окна нажмите кнопку Разблокировать токен…
4) Сотрите защитный слой с поля PUK-код на скретч-карте и в открывшемся окне введите PUKкод устройства. Нажмите кнопку ОК.
5) В случае корректного ввода PUK-кода программа сообщит об успешной разблокировке
устройства.
Руководство Рутокен WEB
© 2014 Компания «Актив»
28
Смена PUK-кода
Для смены PUK-кода устройства выполните следующие действия:
1) Вставьте устройство Рутокен WEB в USB-порт компьютера и запустите утилиту
администрирования Рутокен WEB rtwUtil.
2) В появившемся окне программы, в списке слева выберите устройство, PUK-код которого
требуется сменить.
3) В правой нижней части окна нажмите кнопку Изменить PUK код…
4) В открывшемся окне введите текущий PUK-код устройства и нажмите кнопку ОК.
5) В открывшемся следом окне введите новый PUK-код и его подтверждение и нажмите кнопку
ОК.
6) В случае, если новый PUK-код и его подтверждение совпадут. Программа сообщит об
успешной смене PUK-кода.
Руководство Рутокен WEB
© 2014 Компания «Актив»
29
Смена ключа восстановления
Если ключ восстановления был изменен после регистрации на каких-либо ресурсах, то доступ к
ним через механизм восстановления будет возможен только по старому ключу.
Для смены ключа восстановления устройства выполните следующие действия:
1) Вставьте устройство Рутокен WEB в USB-порт компьютера и запустите утилиту
администрирования Рутокен WEB rtwUtil.
2) В появившемся окне программы, в списке слева выберите устройство, ключ которого требуется
сменить.
3) В правой нижней части окна нажмите кнопку Сменить код восстановления…
4) В открывшемся окне введите текущий PUK-код устройства и нажмите кнопку ОК.
Руководство Рутокен WEB
© 2014 Компания «Актив»
30
5) В открывшемся следом окне будет отображен новый код восстановления для устройства.
После закрытия окна с ключом восстановления просмотреть сгенерированную информацию
более не удастся. Для получения нового ключа восстановления придется повторять всю
процедуру изменения заново.
Распечатывая ключ восстановления, убедитесь, что Вы не используете удаленный принтер,
т.к. информация о ключе может быть изучена третьими лицами.
Руководство Рутокен WEB
© 2014 Компания «Актив»
31
Смена имени устройства
Для смены имени устройства, отображаемого в программах, выполните следующие действия:
1) Вставьте устройство Рутокен WEB в USB-порт компьютера и запустите утилиту
администрирования Рутокен WEB rtwUtil.
2) В появившемся окне программы, в списке слева выберите устройство, имя которого требуется
сменить.
3) В правой части окна нажмите кнопку Изменить имя токена…
4) В открывшемся окне введите текущий PIN-код устройства и нажмите кнопку ОК.
5) В открывшемся следом окне введите новое имя устройства и нажмите кнопку ОК.
6) Программа сообщит об успешной смене имени устройства.
Руководство Рутокен WEB
© 2014 Компания «Актив»
32
Управление контейнерами
Пользователь Рутокен WEB может просматривать список контейнеров учетных записей и удалять
неактуальные.
Для просмотра и удаления информации о контейнерах выполните следующие действия:
1) Вставьте устройство Рутокен WEB в USB-порт компьютера и запустите утилиту
администрирования Рутокен WEB rtwUtil.
2) В появившемся окне программы, в списке слева выберите устройство для просмотра
контейнеров.
3) В правой части окна нажмите кнопку Просмотр…
4) Появится окно со списком контейнеров.
5) Чтобы удалить контейнер, выделите его и нажмите кнопку Удалить.
6) В открывшемся окне введите текущий PIN-код устройства и нажмите кнопку ОК.
7) В случае ввода правильного PIN-кода контейнер будет удален из устройства.
Руководство Рутокен WEB
© 2014 Компания «Актив»
33
Работа с плагином Рутокен WEB
Доступные платформы и языки
В качестве основы для создания плагина Рутокен WEB была выбрана платформа с открытым кодом
FireBreath. Это означает, что плагин может работать в режиме NPAPI и как элемент управления
ActiveX (для Windows/IE).
Плагин Рутокен WEB выполнен по кроссплатформенной технологии и работает в браузерах,
поддерживающих NPAPI, среди которых Mozilla Firefox, Google Chrome, Apple Safari, Opera. В
этом режиме поддерживается работа в операционных системах Windows, GNU/Linux, Mac OS.
В качестве элемента управления ActiveX плагин работает в Microsoft Internet Explorer 6 и выше.
Обращение к функционалу плагина может производиться из JavaScript или из любого языка
программирования, поддерживающего работу с ActiveX-компонентами под Windows.
Подготовка к работе с плагином Рутокен WEB в JavaScript
Код, представленный ниже, отображает простейшую конструкцию из связки HTML+JavaScript,
позволяющую инициализировать объект плагина в режиме NPAPI для последующего его
использования в клиентской части веб-ресурса.
Плагин встраивается в код страницы с помощью тега <object> с обязательным указанием типа
application/x-rutoken. Важно, чтобы объект плагина не находился с скрытой разметке (visibility:
hidden; display: none;). В противном случае инициализация будет невозможна.
В процессе инициализации рекомендуется производить проверку объекта на валидность. В
примере показано присвоение объекта плагина JavaScript-объекту plugin в функции init_plugin с
последующей проверкой работоспособности. В последствии объект plugin может использоваться
для вызова методов API в коде JavaScript.
<html>
<head> <title>Пример инициализации плагина Рутокен WEB</title> </head>
<object id="pluginRutokenWEB" type="application/x-rutoken" width="0" height="0">
<param name="onload" value="pluginit" />
</object>
<body>
<h4>Пример инициализации плагина Рутокен WEB</h4>
<input type="button" onclick="init_plugin()" value="Инициализировать" />
</body>
<script type="text/javascript">
function init_plugin() {
// Загрузка плагина
plugin = document.getElementById("pluginRutokenWEB");
// Проверка плагина на валидность
if (plugin && plugin.valid) {
// Плагин присутствует в системе и валиден
window.alert("Плагин Рутокен WEB успешно подключен");
return;
}
window.alert("Установите плагин Рутокен WEB");
}
</script> </html>
Руководство Рутокен WEB
© 2014 Компания «Актив»
34
Диагностические функции
Диагностические функции предназначены для отслеживания в системе наличия и состояния таких
компонентов, как плагин и токен. Они не требуют ввода PIN-кода и всегда выполняются в
синхронном режиме. Описание функций приведено в нижеследующей таблице.
get_version()
Назначение
Возвращаемое значение
Получение количества контейнеров учетных записей, находящихся в памяти
устройства Рутокен WEB.
В случае успеха
строка с версией плагина Рутокен WEB
В случае неудачи отрицательное числовое значение кода ошибки
rtwIsTokenPresentAndOK()
Назначение
Возвращаемое значение
Проверка наличия и работоспособности устройства Рутокен WEB на
компьютере пользователя.
В случае успеха
TRUE
В случае неудачи отрицательное числовое значение кода ошибки
rtwGetDeviceID()
Назначение
Возвращаемое значение
Получение уникального идентификатора устройства Рутокен WEB.
В случае успеха
значение идентификатора устройства Рутокен WEB
В случае неудачи отрицательное числовое значение кода ошибки
Пример использования функций get_version, rtwIsTokenPresentAndOK, rtwGetDeviceID
<html>
<head> <title>Пример диагностики Рутокен WEB</title> </head>
<object id="pluginRutokenWEB" type="application/x-rutoken" width="0" height="0">
<param name="onload" value="pluginit" />
</object>
<body>
<h4> Пример диагностики Рутокен WEB </h4>
<input type="button" onclick="init_plugin_and_check_token()" value="Проверить токен" />
</body>
<script type="text/javascript">
function init_plugin_and_check_token() {
// Загрузка плагина
plugin = document.getElementById("pluginRutokenWEB");
// Проверка плагина на валидность
if (plugin && plugin.valid) {
// Показать версию плагина
window.alert("Установлен плагин Рутокен WEB версии " + plugin.get_version());
// Проверка наличия токена в системе
if (plugin.rtwIsTokenPresentAndOK()) {
// Показать ID токена
window.alert("Рутокен WEB c ID " + plugin.rtwGetDeviceID() + " подключен");
} else {
window.alert("Рутокен WEB не подключен");
}
return;
} else {
window.alert("Установите плагин Рутокен WEB");
}
}
</script> </html>
Руководство Рутокен WEB
© 2014 Компания «Актив»
35
Функции для работы с контейнерами
Приведенные ниже функции предназначены для получения информации о контейнерах, их
доступном содержимом и управления контейнерами.
rtwGetNumberOfContainers()
Назначение
Возвращаемое значение
Получение количества контейнеров учетных записей, находящихся в памяти
устройства Рутокен WEB.
В случае успеха
количество контейнеров, записанных на устройстве
В случае неудачи отрицательное числовое значение кода ошибки
rtwGetContainerName(contIndex)
Назначение
Параметры вызова
Возвращаемое значение
Получение имени контейнера учетной записи по заданному индексу.
Обычно используется для построения на веб-странице списка контейнеров
для выбора в момент аутентификации.
contIndex
порядковый индекс контейнера учетной записи в
устройстве
В случае успеха
строка с именем контейнера
В случае неудачи отрицательное числовое значение кода ошибки
rtwGetPublicKey(contName)
Назначение
Параметры вызова
Возвращаемое значение
Получение открытого ключа, связанного с учетной записью, по заданному
имени контейнера.
contName
строка с именем контейнера учетной записи
В случае успеха
строка со значением открытого ключа
В случае неудачи отрицательное числовое значение кода ошибки
rtwDestroyContainer(contName)
rtwDestroyContainer(contName, css)
rtwDestroyContainer(contName, css, callback, callbackError)
Назначение
Удаление контейнера с заданным именем. Для успешного выполнения
функции требуется ввод корректного PIN-кода.
Параметры вызова
contName
строка с именем контейнера учетной записи
css
скрипт, описывающий внешний вид диалога ввода PINкода
callback
функция, реализующая поведение клиента в случае
успешного удаления контейнера
callbackError
функция, реализующая поведение клиента в случае
неудачи
Возвращаемое значение
В случае успеха
TRUE
В случае неудачи отрицательное числовое значение кода ошибки
Руководство Рутокен WEB
© 2014 Компания «Актив»
36
Пример использования функций rtwGetNumberOfContainers, rtwGetContainerName, rtwGetPublicKey,
rtwDestroyContainer
<html>
<head>
<title>Пример работы с контейнерами учетных записей на Рутокен WEB</title>
</head>
<object id="pluginRutokenWEB" type="application/x-rutoken" width="0" height="0">
<param name="onload" value="pluginit" />
</object>
<body>
<h4>Пример работы с контейнерами учетных записей на Рутокен WEB</h4>
<input type="button" onclick="show_public_code_of_last_container_and_destroy_it()"
value="Выполнить" />
</body>
<script type="text/javascript">
function show_public_code_of_last_container_and_destroy_it() {
// Загрузка плагина
plugin = document.getElementById("pluginRutokenWEB");
// Проверка плагина на валидность
if (plugin && plugin.valid) {
// Проверка наличия токена в системе
if (plugin.rtwIsTokenPresentAndOK()) {
// Получение количества контейнеров
var contNum = plugin.rtwGetNumberOfContainers();
if (contNum > 0) {
// Получение имени последнего контейнера
var contName = plugin.rtwGetContainerName(contNum - 1);
if (contName) {
// Запрос на удаление контейнера
if (window.confirm(
"Обнаружен контейнер " +
contName + " с открытым ключом " +
plugin.rtwGetPublicKey(contName) + " Хотите удалить его?"))
{
plugin.rtwDestroyContainer(contName,
"QDialog {background-color: #278F45; }",
callback, errorCallback);
}
} else {
window.alert("Ошибка получения имени контейнера " + contName);
}
} else {
window.alert("Не удалось обнаружить контейнеры на Рутокен WEB");
}
} else {
window.alert("Рутокен WEB не подключен");
}
return;
} else {
window.alert("Установите плагин Рутокен WEB");
}
}
function callback(result) {
window.alert("Контейнер успешно удален");
}
function errorCallback(error) {
window.alert("Ошибка удаления контейнера");
}
</script> </html>
Руководство Рутокен WEB
© 2014 Компания «Актив»
37
Модификация внешнего вида окна ввода PIN-кода (параметр css)
Большинство функций, работающих с контейнерами и криптографическими преобразованиями
требуют от пользователя ввода PIN-кода. Для этого используется встроенное в плагин окно.
Чтобы максимально приблизить внешний вид окна ввода PIN-кода к дизайну страниц веб-ресурса,
предусмотрена кастомизация в виде специального скрипта. Этот скрипт передается в функции в
качестве дополнительного параметра css. Скрипт может иметь следующий вид:
* {background-color: transparent}
QPushButton { color: #fff; border-style: solid; border-color:
#124521; border-width: 1px; border-radius: 5px; min-width:
75px; min-height: 25px; font-weight:bold;}
QPushButton:hover { background-color: #21C14F; color:#fff;}
QLabel { color: #fff;}
QLineEdit {color: #278F45; background-color: #fff;}
QDialog {background-color: #278F45; }
<!-- Основной фон -->
<!-- Стиль кнопок-->
<!-- Стиль меток -->
<!-- Стиль полей ввода -->
<!-- Стиль диалога -->
Асинхронный вызов функций в JavaScript (параметры callback и callbackkError)
Функции плагина Рутокен WEB, для выполнения которых предусмотрен ввод PIN-кода, могут
выполняться в асинхронном режиме. Это сделано для того, чтобы во время отображения окна
ввода PIN-кода не прерывались основные сценарии веб-страницы.
Для того, чтобы функция выполнялась в асинхронном режиме необходимо в качестве
дополнительных параметров передать имена функций обработчиков событий успешного и
неудачного завершения, callback и callbackError соответственно.
Приведенный ниже пример демонстрирует использование параметров css, callback и callbackError
для случая с асинхронным вызовом API Рутокен WEB.
…
<script type="text/javascript">
function gen_key_pair(contName, css) {
var resultElement = document.getElementById('newpubkey');
resultElement.innerHTML = 'Ждем ввод пин-кода и результат...';
rutokenwebPlugin.rtwGenKeyPair(contName, css, callback, callbackError);
// Выполнить в случае успеха
function callback(result) { resultElement.innerHTML = result; }
// Выполнить в случае неудачи
function callbackError(error) {
resultElement.innerHTML = rutokenwebPlugin.getError(error);
}
}
…
</script>
…
Руководство Рутокен WEB
© 2014 Компания «Актив»
38
Криптографические функции
Приведенные в данном разделе функции предназначены для проведения криптографических
преобразований во время таких операций, как:




регистрация пользователя;
авторизация пользователя;
подпись документов от имени пользователя;
восстановление доступа в случае утери устройства Рутокен WEB.
rtwGenKeyPair(contName)
rtwGenKeyPair(contName, css)
rtwGenKeyPair(contName,css, callback, callbackError)
Назначение
Параметры вызова
Возвращаемое значение
Генерация ключевой пары по алгоритму ГОСТ Р 34.10-2001. Используется в
момент регистрации пользователя на веб-ресурсе.
contName
строка с именем контейнера учетной записи
css
скрипт, описывающий внешний вид диалога ввода PINкода
callback
функция, реализующая поведение клиента в случае
успешной генерации ключевой пары
callbackError
функция, реализующая поведение клиента в случае
неудачи
В случае успеха
открытый ключ пользователя
В случае неудачи отрицательное числовое значение кода ошибки
Пример использования функции rtwGenKeyPair
…
<script type="text/javascript">
function register_user(userLogin) {
// Создаем имя контейнера в токене
newContainerName = userLogin + '_rtweb';
// Создаем новый контейнер с и генерируем ключевую пару для учетной записи
publicKey = rutokenwebPlugin.rtwGenKeyPair(newContainerName))
if (publicKey) {
// Получаем открытый ключ восстановления из токена для передачи на сервер
repairKey = rutokenwebPlugin.rtwGetPublicKey('repair_key');
if (repairKey) {
// Операция прошла успешно
…
}
}
}
…
</script>
…
Руководство Рутокен WEB
© 2014 Компания «Актив»
39
rtwSign(contName, hash)
rtwSign(contName, hash, css)
rtwSign(contName, hash, css, callback, callbackError)
Назначение
Параметры вызова
Возвращаемое значение
Электронно-цифровая подпись 32-байтовой последовательности, например,
хеша сообщения msg2sign при помощи алгоритма ЭЦП ГОСТ З 34.10-2001.
contName
строка с именем контейнера учетной записи
hash
32-байтовая последовательность для подписи msg2Sign
css
скрипт, описывающий внешний вид диалога ввода PINкода
callback
функция, реализующая поведение клиента в случае
успешной подписи
callbackError
функция, реализующая поведение клиента в случае
неудачи
В случае успеха
строка со значением подписи
В случае неудачи отрицательное числовое значение кода ошибки
rtwHashSign(contName, message)
rtwHashSign(contName, message, css)
rtwHashSign(contName, message, css, callback, callbackError)
Назначение
Хеширование сообщения по алгоритму ГОСТ З 34.10-2001 с последующей
электронно-цифровой подписью полученного хеша
Параметры вызова
contName
строка с именем контейнера учетной записи
message
сообщение для хеширования и последующей подписи
css
скрипт, описывающий внешний вид диалога ввода PINкода
callback
функция, реализующая поведение клиента в случае
успешного хеширвания и последующей подписи
callbackError
функция, реализующая поведение клиента в случае
неудачи
Возвращаемое значение
В случае успеха
строка со значением подписи
В случае неудачи отрицательное числовое значение кода ошибки
rtwMakeSessionKey(contName, publicKey, ukm)
rtwMakeSessionKey(contName, publicKey, ukm, css)
rtwMakeSessionKey(contName, publicKey, ukm, css, callback, callbackError)
Назначение
Выработка общего сессионного ключа между двумя абонентами для
последующего шифрованного обмена информацией.
Параметры вызова
contName
строка с именем контейнера учетной записи
publicKey
открытый ключ собеседника
ukm
случайное число, которым обменялись абоненты
css
скрипт, описывающий внешний вид диалога ввода PINкода
callback
функция, реализующая поведение клиента в случае
успешной генерации сессионного ключа
callbackError
функция, реализующая поведение клиента в случае
неудачи
Возвращаемое значение
В случае успеха
строка со значением подписи
В случае неудачи отрицательное числовое значение кода ошибки
Руководство Рутокен WEB
© 2014 Компания «Актив»
40
rtwRepair(repairKey, hash)
Назначение
Параметры вызова
Возвращаемое значение
Электронно-цифровая подпись 32-байтовой последовательности, например,
хеша сообщения msg2Sign при помощи алгоритма ЭЦП ГОСТ З 34.10-2001 на
внешнем закрытом ключе восстановления, записанном на скретч-карте
пользователя. Используется в момент авторизации в случае утери устройства
Рутокен WEB.
repairKey
закрытый ключ восстановления
hash
32-байтовая последовательность для подписи msg2Sign
В случае успеха
строка со значением подписи
В случае неудачи отрицательное числовое значение кода ошибки
Устаревшие функции
Приведённые функции не рекомендуются к использованию в новых проектах. Их поддержка со
временем будет прекращена.
rtwUserLoginDlg()
Назначение
Возвращаемое значение
Вызов окна ввода PIN-кода с последующим входом на устройство Рутокен
WEB
В случае успеха
TRUE
В случае неудачи отрицательное числовое значение кода ошибки
rtwLogout()
Назначение
Возвращаемое значение
Завершение работы с устройством Рутокен WEB
В случае успеха
TRUE
В случае неудачи отрицательное числовое значение кода ошибки
rtwIsUserLoggedIn()
Назначение
Возвращаемое значение
Руководство Рутокен WEB
Проверка того, вошел ли пользователь на устройство Рутокен WEB
В случае успеха
TRUE
В случае неудачи отрицательное числовое значение кода ошибки
© 2014 Компания «Актив»
41
Коды ошибок и ситуации, при которых они возникают
Код ошибки
-1
-2
-3
-4
-5
-6
-7
-10
-11
-12
-20
-22
-30
-40
-50
-51
-52
-53
Описание
USB-токен не найден
Не произведен логин пользователя на устройство Рутокен WEB
Введен неверный PIN-код
Введенная информация не является корректным PIN-кодом
Устройство заблокировано
Неверная длина PIN-кода
Пользователь отказался вводить PIN-код
Неверный аргументы функции
Неверная длина аргументов функции
Другое окно ввода PIN-кода уже открыто
Не найден контейнер с указанным именем
Контейнер учетной записи поврежден
Электронная цифровая подпись не верна
Недостаточно памяти для завершения операции
Библиотека rtpkcs11ecp не загружена
Библиотека rtpkcs11ecp не была инициализирована
Библиотека rtpkcs11ecp не поддерживает расширенный интерфейс
Внутренняя ошибка библиотеки rtpkcs11ecp
Руководство Рутокен WEB
© 2014 Компания «Актив»
42
Создание ресурса с поддержкой Рутокен WEB
Цель данной главы – показать основные принципы разработки веб-ресурсов, поддерживающих
авторизацию с помощью Рутокен WEB.
Приведенный пример написан с использованием связки PHP+JavaScript и полностью готов для
запуска и изучения. Исходные коды примера можно получить, пройдя по ссылке
https://download.rutoken.ru/Rutoken_Web/serverside/source_RTW_PHP.zip.
В качестве платформы для изучения и тестирования примера в нашем случае будет использоваться
Denwer. Установочный пакет можно можно получить на сайте http://www.denwer.ru/. На сайте
также представлено полное руководство по установке и запуску Denwer, поэтому описание данного
процесса будет опущено.
Запуск примера.
Чтобы воспользоваться примером на компьютере с установленной ОС Windows и запущенным
сервисом Denwer, произведите следующие операции:
1) Зайдите на диск, созданный сервисом Denwer и в каталоге «home» создайте подпапку с именем
будущего сайта, например, «RutokenWEBTest.ru».
2) Скачайте архив с примером и разархивируйте его содержимое в папку «RutokenWEBTest.ru»
таким образом, чтобы корень архива совпадал с корнем папки.
3) Перезапустите сервис Denwer и запустите браузер. В адресной строке браузера наберите
www.rutokenwebtest.ru. Вы увидите стартовую страницу примера.
Если
браузер
отображает
нечитаемые
символы,
зайдите
в
папку
«home/RutokenWEBTest.ru/www» на диске, созданном сервисом Denwer, и откройте файл
«.htaccess» для редактирования. Добавьте в файл строку:
AddDefaultCharset utf-8
Перезагрузите страницу.
При запросе браузера на разрешение запуска плагина, разрешите запуск.
Если браузер отображает сообщение об ошибке, проверьте ваш файрволл (брандмауэр) на
предмет блокирования портов 80 и 443 и убедитесь, что другие службы хостинга (например
IIS) выключены.
Руководство Рутокен WEB
© 2014 Компания «Актив»
43
Создание базы данных MySQL.
Следующим действием необходимо создать в Denwer базу данных. Для этого выполните
следующее:
1) В браузере перейдите по адресу http://localhost. На стартовой странице Denwer в разделе
Утилиты выберите ссылку Заведение новых БД и пользователей MySQL. Откроется страница
создания БД.
2) Заполните следующие поля:
 Пароль администратора MySQL (по умолчанию это поле следует оставить пустым),
 Имя базы данных (например, RTWebUsers),
 Логин пользователя (м.б. Ваше имя),
 Пароль (на ваш выбор),
 Подтверждение пароля.
Нажмите кнопку Создать БД пользователя.
Система сообщит об успешном создании базы данных.
3) В файловом менеджере зайдите на диск, созданный сервисом Denwer и перейдите в папку
«home/RutokenWEBTest.ru/www/». Затем откройте для редактирования файл config.php.
4) Замените 1-ю строку кода скрипта
mysql_connect("host", "login", "password");
на
mysql_connect("localhost", "RTWebDBUser", [пароль к созданной БД]);
5) Замените 2-ю строку кода скрипта
mysql_select_db("db_name");
на
mysql_select_db("RTWebDB");
Руководство Рутокен WEB
© 2014 Компания «Актив»
44
6) Раскомментируйте код в нижней части скрипта и сохраните файл. Содержимое файла должно
выглядеть следующим образом:
<?
//Настройки подключения
mysql_connect("loaclhost", "RTWebDBUser", [пароль к созданной БД]);
mysql_select_db("RTWebDB");
mysql_query("SET NAMES utf8");
if (!isset($_GET['action'])) $_GET['action']="";
if($_GET['action']=="install"){
mysql_query("DROP TABLE `sample_users`");
mysql_query("CREATE TABLE `sample_users` (
`user_id` int(11) unsigned NOT NULL auto_increment,
`user_login` varchar(30) NOT NULL,
`user_xkey` varchar(64) NOT NULL,
`user_ykey` varchar(64) NOT NULL,
`r_xkey` varchar(64) NOT NULL,
`r_ykey` varchar(64) NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;");
}
?>
7) В адресной строке браузера наберите www.rutokenwebtest.ru/config.php?action=install и
нажмите ввод. Информация о таблицах пропишется в базу данных пользователей.
База данных создана и связана с веб-ресурсом.
Структура сайта
После разворачивания веб-ресурса и привязки к нему базы данных появляется возможность
вживую увидеть работу функционала Рутокен WEB. Такие сценарии, как регистрация на сервере,
аутентификация пользователя, подпись документов и работа с механизмом восстановления
реализованы в полной мере. Каждый сценарий описан в отдельном модуле с соответствующим
названием.
Сценарий
Регистрация пользователя
Аутентификация пользователя
Подпись текстовой информации
Восстановление доступа
Примеры вызова отдельных API-функций
Код стартовой страницы
Модуль
register.php
loginex.php
login.php
signform.php
recovery.php
api.php
index.php
Остальные файлы и папки содержат реализацию вспомогательного функционала, такого как
математические примитивы, криптографические алгоритмы для сценария восстановления и
оформление внешнего вида страниц.
Руководство Рутокен WEB
© 2014 Компания «Актив»
45
Разбор примера реализации сценария регистрации пользователя
Код, реализующий регистрацию нового пользователя представлен в файле register.php. Элементы
управления, запускающие сценарий описаны с следующем фрагменте:
register.php (строка 63)
…
<tr>
<th><label>Логин пользователя:</label></th>
<td><input style="width: 200px;" name="login" id="user_login" type="text" />
<button type="button" onclick="chklogin()">Зарегистрироваться</button></td>
</tr>
…
Из кода видно, что при нажатии кнопки Зарегистрироваться на стороне клиента выполняется
JavaScript-функция chkLogin(). Она берет имя нового пользователя из поля Логин пользователя
(ID=user_login), добавляет к нему имя узла и некоторое случайное число и передает его на сторону
сервера.
register.php (строка 126)
…
function chklogin() {
ulogin = document.getElementById('user_login');
nocache = Math.random();
http.open('get', 'loginex.php?tlogin=' + encodeURI(ulogin.value) + '&nocache=' + nocache);
http.onreadystatechange = errorReply;
http.send(null);
}
…
На серверной стороне выполняется проверка корректности введенных данных и наличия уже
зарегистрированного пользователя с таким же именем в базе данных.
loginex.php (строка 5)
…
function chk(){
$err = array();
# проверям логин
if(!preg_match("/^[a-zA-Z0-9]+$/",$_GET['tlogin']))
{
echo "Логин может состоять только из букв английского алфавита и цифр";
return;
}
if(strlen($_GET['tlogin']) < 3 or strlen($_GET['tlogin']) > 30)
{
echo "Логин должен быть не меньше 3-х символов и не больше 30";
return;
}
# проверяем, не сущестует ли пользователя с таким именем
$query = mysql_query("SELECT COUNT(user_id) FROM sample_users WHERE
user_login='".mysql_real_escape_string($_GET['tlogin'])."'");
if(mysql_result($query, 0) > 0)
{
Руководство Рутокен WEB
© 2014 Компания «Актив»
46
echo "Пользователь с таким логином уже существует в базе данных";
return;
}
echo "login valid";
return;
}
if(isset($_GET['tlogin'])){
chk();
} else {
echo "Нет данных";
}
…
Результат проверки возвращается в клиентскую функцию, ErrorReply, где анализируется по
событию изменения содержимого страницы. В случае положительного результата выполняется
функция link_token(). Она проверяет наличие установленного плагина, наличие подключенного
токена, и факт того, что PIN-код был введен (rtwUserLoginDlg).
register.php (строка 133)
…
function link_token() {
plugin = document.getElementById("cryptoPlugin");
xkey = document.getElementById('usr_xkey');
ykey = document.getElementById('usr_ykey');
rxkey = document.getElementById('r_xkey');
rykey = document.getElementById('r_ykey');
ulogin = document.getElementById('user_login');
if (ulogin.value == '') {
inf.innerHTML = "Введите логин";
return;
}
if (!plugin.valid) {
inf.innerHTML = "<a href='https://www.rutokenweb.ru/samples/'>Установите плагин</a>";
return;
}
if (!plugin.rtwIsTokenPresentAndOK()) {
inf.innerHTML = "Подключите USB-токен";
return;
}
if (!plugin.rtwIsUserLoggedIn()) {
plugin.rtwUserLoginDlg();
}
if (plugin.rtwIsUserLoggedIn()) {
key = plugin.rtwGenKeyPair(ulogin.value + '#%#<?php echo getenv("HTTP_HOST"); ?>');
rkey = plugin.rtwGetPublicKey('repair key');
plugin.rtwLogout();
if (key) {
xkey.value = key.substring(0, 64);
ykey.value = key.substring(64);
if (rkey) {
rxkey.value = rkey.substring(0, 64);
rykey.value = rkey.substring(64);
}
tform = document.getElementById('regform');
tform.submit();
} else { alert("Ошибка при создании ключевой пары."); }
} else { alert("Введен ошибочный PIN-код."); }
}
…
Руководство Рутокен WEB
© 2014 Компания «Актив»
47
Если все необходимые условия соблюдены на токене генерируется новая ключевая пара,
запоминается открытый ключ пользователя и открытый ключ восстановления, взятый из
контейнера repair_key. Данные передаются на сервер посредством POST-запроса.
На сервере происходит запись информации о ключах пользователя в БД.
register.php (строка 1)
…
<?
if(isset($_POST['login'])) {
include_once "config.php";
$login = $_POST['login'];
$user_xkey = $_POST['user_xkey'];
$user_ykey = $_POST['user_ykey'];
$r_xkey = $_POST['repair_xkey'];
$r_ykey = $_POST['repair_ykey'];
mysql_query("INSERT INTO sample_users SET user_login='".$login."',
user_xkey='".$user_xkey."', user_ykey='".$user_ykey."', r_xkey='".$r_xkey."',
r_ykey='".$r_ykey."'");
header("Location: login.php");
exit();
}
?>
…
После проведения успешной регистрации, пользователь может войти в свой аккаунт c
использованием Рутокен WEB на странице авторизации.
По описанному выше принципу взаимодействия кода JavaScript на стороне клиента и PHP на
стороне сервера, реализованы все сценарии работы с токеном. Детальное рассмотрение каждого
из них в отдельности не имеет смысла, т.к. изучение «живого» работающего примера дает гораздо
больше информации специалисту.
Руководство Рутокен WEB
© 2014 Компания «Актив»
48
Работа с CMS
Благодаря встроенным инструментам организации совместного доступа к информации Системы
Управления Содержимым (Content Management Systems, CMS) позволяют хозяевам ресурсов
управлять содержимым сайта, не требуя каких-либо навыков владения программным кодом. Это
значительно упрощает и удешевляет процесс создания и поддержки web—ресурсов.
Наиболее распространенные на сегодняшний день CMS – это WordPress и Joomla. В данной главе
будет описана работа с WordPress.
Разворачивание веб-ресурса на WordPress
В данном примере будет рассмотрен процесс разворачивания веб-сайта с использованием CMS
WordPress 3.8.x. В качестве тестовой платформы будет задействован Denwer.
Чтобы установить WordPress на Denwer выполните следующие действия:
1) Зайдите на диск, созданный сервисом Denwer и в каталоге «home» создайте подпапку с именем
будущего сайта, например, «rtwebwp.ru». Затем в созданной папке создайте подпапку «www».
2) Загрузите WordPress по ссылке http://ru.wordpress.org/wordpress-3.8.3-ru_RU.zip и распакуйте
архив в созданную папку. Корень архива должен совпадать с корнем папки «www».
3) Перезапустите сервис Denwer и запустите браузер. В адресной строке браузера наберите
www.rtwebwp.ru. Вы увидите стартовую страницу WordPress с предложением создать файл
настроек. Нажмите кнопку Создать файл настроек.
4) Откройте в браузере новую вкладку и наберите в адресной строке http://localhost. На стартовой
странице Denwer в разделе Утилиты выберите ссылку Заведение новых БД и пользователей
MySQL. Откроется страница создания БД.
Руководство Рутокен WEB
© 2014 Компания «Актив»
49
5) Заполните поля для новой БД, как показано на рисунке ниже, и нажмите кнопку Создать БД
пользователя. Система сообщит об успешном создании базы данных.
6) Вернитесь на вкладку с WordPress и на появившейся странице справки нажмите кнопку Вперед.
7) Заполните поля формы подключения к БД теми значениями, с которыми база была создана в
Denwer и нажмите кнопку Отправить.
Система сообщит об успешном подключении к базе данных.
Руководство Рутокен WEB
© 2014 Компания «Актив»
50
8) В появившемся окне сообщения нажмите кнопку Запустить установку. Откроется страница
создания нового сайта.
9) Введите имя нового сайта и информацию об администраторе (Имя пользователя) и нажмите
кнопку Установить WordPress. Будет создан новый веб-ресурс, для входа на который
понадобится логин и пароль администратора, указанные в предыдущем пункте.
Руководство Рутокен WEB
© 2014 Компания «Актив»
51
Подключение плагина Рутокен WEB для WordPress
Для поддержки Рутокен WEB на ресурсе, созданном при помощи WordPress необходим
специализированный
плагин.
Его
можно
получить,
перейдя
по
ссылке
https://download.rutoken.ru/Rutoken_Web/serverside/plugin_RTW_Wordpress_3.8.zip.
Для установки плагина выполните следующие действия:
1) На диске, созданном сервисом Denwer создайте папку «\home\rtwebwp.ru\www\wpcontent\plugins\rutoken».
2) Загрузите плагин Рутокен WEB для WordPress и распакуйте архив в созданную папку. Корень
архива должен совпадать с корнем папки rutoken.
3) Зайдите на сайт www.rtwebwp.ru под учетной записью администратора и выберите в левом
боковом меню пункт Плагины/Установленные.
4) В открывшейся странице управления плагинами отметьте галочку Рутокен WEB. Затем в
ниспадающем меню Действия выберите пункт Активировать и нажмите кнопку Применить.
Плагин Рутокен WEB активируется.
Руководство Рутокен WEB
© 2014 Компания «Актив»
52
Создание нового пользователя и привязка его к Рутокен WEB в WordPress
В данном разделе описывается процесс создания записи о новом пользователе в БД веб-ресурса и
привязка к ней USB-токена.
Для создания нового пользователя выполните следующие действия:
1) Зайдите на ресурс под учетной записью администратора и в меню слева выберите пункт
Пользователи. Появится форма ввода данных о новом пользователе.
2) Заполните данные о пользователе в форме и нажмите кнопку Добавить нового пользователя.
Запись о новом пользователе будет добавлена в БД.
Руководство Рутокен WEB
© 2014 Компания «Актив»
53
3) Отметьте галочку с новым пользователем и нажмите появившуюся ссылку Изменить. Появится
страница редактирования учетной записи пользователя.
4) Вставьте устройство Рутокен WEB в USB-порт компьютера и, затем, в нижней части меню
редактирования напротив пункта Связка с Рутокен WEB нажмите кнопку Привязать токен.
5) В появившемся окне ввода PIN-кода введите PIN-код устройства. Аутентификация по токену
будет активирована.
6) Чтобы проверить факт привязки учетной записи пользователя к устройству Рутокен WEB,
выйдите из аккаунта администратора. Для этого в правом верхнем углу страницы выберите
наведите курсор мыши на имя текущего пользователя и в ниспадающем меню выберите кнопку
Выйти. Появится страница входа в учетную запись.
7) Нажмите на ссылку Вход по токену.
Руководство Рутокен WEB
© 2014 Компания «Актив»
54
Появится меню выбора контейнера учетной записи.
8) Выберите контейнер с нужным именем пользователя и нажмите кнопку Войти.
9) В появившемся окне ввода PIN-кода введите PIN-код устройства. Откроется учетная запись
пользователя.
Руководство Рутокен WEB
© 2014 Компания «Актив»
55
Однофакторная аутентификация при помощи Рутокен WEB
В последнее время от клиентов поступает довольно много заявок с просьбой избавить конечного
пользователя от необходимости вводить PIN-код в процессе аутентификации. Такая возможность
есть, если использовать PIN-код по умолчанию. При этом все криптографические методы защиты
будут работать в штатном режиме. Закрытый ключ пользователя будет также надежно спрятан
внутри устройства, сохраняя все преимущества надежной авторизации.
Однако, использование общеизвестного PIN-кода будет означать, что кража устройства станет
равносильна краже данных с аккаунта, поскольку исчезает фактор знания секрета. Злоумышленник
сможет беспрепятственно воспользоваться украденным токеном и подписывать сообщения от лица
законного владельца.
Чтобы токен работал в режиме без ввода PIN-кода необходимо при помощи утилиты
администрирования установить PIN-код по умолчанию: 12345678 (см. Администрирование Рутокен
WEB. Смена PIN-кода).
В процессе регистрации и авторизации плагин будет определять, используется ли PIN-код по
умолчанию на данном устройстве. Если используется, то окно запроса PIN-кода не будет
выводиться. Определение факта использования PIN-кода по умолчанию, происходит по
косвенному признаку, никак не связанному с хранением PIN-кода.
Руководство Рутокен WEB
© 2014 Компания «Актив»
56
Актуализация и поддержка документации
Данный документ призван отразить текущее состояние решения Рутокен WEB на момент внесения
последних изменений. Информация о применяемых технических средствах будет гарантированно
корректироваться по мере их появления и развития в новых изданиях.
Если вы заметили несоответствие предоставленной информации реальному положению дел,
просьба обращаться в техническую поддержку Рутокен или напрямую к автору документа, Алексею
Лазареву [email protected]nt.ru.
Руководство Рутокен WEB
© 2014 Компания «Актив»
57
1/--страниц
Пожаловаться на содержимое документа