Защита систем интернет-банкинга: TLS, электронная подпись, ГОСТы, токены

от автора

image
Многие современные системы ДБО предоставляют для обслуживания клиентов Web-интерфейс. Преимущества «тонкого клиента» перед «толстым клиентом» очевидны. В то же время существуют федеральные законы, приказы регуляторов и требования к системам ДБО от Банка России, многие из которых касаются именно защиты информации в системах ДБО. Как-то их нужно исполнять и обычно применяются криптосредства, реализующие российские криптоалгоритмы (ГОСТы). Эти криптосредства закрывают часть «дыр», но при их внедрении может существенно возрасти сложность пользования системой ДБО для клиента.

В данной статье мы из «кирпичиков» соберем и испытаем на демонстрационном интернет-банке комплексное решение — по сути специальный защищенный браузер — в котором будут реализованы закрытие канала (TLS), строгая двухфакторная аутентификация на WEB-ресурсе и элетронная подпись платежных поручений посредством USB-токена Рутокен ЭЦП или trustscreen-устройства Рутокен PINPad. Фишка решения в том, что оно абсолютно необременительно для конечного пользователя — подключил токен, запустил браузер и сразу же можно начинать тратить деньги.

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

Дальше пойдет мануал с пояснениями.

Итак, «кирпичики» решения (для Windows):

1. Загружаем браузер Mozilla FireFox Portable Edition, распаковываем его на flash-память Рутокен ЭЦП Flash. В качестве стартовой страницы указываем ему demo.rutoken.ru

2. Загружаем sTunnel, собранный с поддержкой ГОСТов. А архиве все необходимые файлы, в том числе openssl с поддержкой российской криптографии. Распаковываем на flash-память Рутокен ЭЦП Flash в папку sTunnel. Обратите внимание, что папка sTunnel с файлами должна лежать в корне flash-памяти устройства.

Конфиг:

; проверять сертификат сервера verify=2 ; прокси работает в режиме клиента client=yes ; версия протокола SSL sslVersion=TLSv1 ; показывать значок в в трее taskbar=yes ; уровень логирования DEBUG=7  [https-demobank] ; при загрузке openssl подгружать engine gost engine=gost ; корневой сертификат, до которого строится цепочка при проверке сертификата сервера CAFile=ca.crt ; прокси принимает незащищенные соединения на 1443 порту localhost accept = 127.0.0.1:1443 ; прокси устанавливает защищенные соединения с demo.rutoken.ru:443 connect = demo.rutoken.ru:443 ; используемый в протоколе TLS  шифрсьют ciphers = GOST2001-GOST89-GOST89 TIMEOUTclose = 1 

sTunnel при запуске будет на 127.0.0.1:1443 принимать незащищенное соединение, устанавливать защищенное соединение с demo.rutoken.ru:443 и передавать по нему принятые на вход данные.

Если вы работаете в интернете через прокси-сервер (например, корпоративный), то требуется дополнительное конфигурирование sTunnel.

При установке защищенного соединения производится строгая аутентификация сервера и шифрование передаваемых данных.

3. Прописываем в браузер Mozilla FireFox Portable Edition прокси 127.0.0.1:1443, для всех протоколов. Таким образом все данные пойдет через sTunnel. Прокси прописывается так: Настройки->Дополнительные->Сеть->Настроить->Ручная настройка прокси. Установить галочку «Использовать этот прокси-сервер для всех протоколов»

4. Добавляем в браузер Рутокен Плагин. Для этого файлы npCryptoPlugin.dll и rtPKCS11ECP.dll из архива кладем в папку FirefoxPortable\Data\plugins

5. Пишем скрипт автозапуска на vbscript. Скрипт сначала запускает sTunnel, а затем Mozilla FireFox Portable Edition.

Dim WshShell, oExec Set WshShell = CreateObject("WScript.Shell")  Set wshSystemEnv = wshShell.Environment( "PROCESS" ) currentDirectory = left(WScript.ScriptFullName,(Len(WScript.ScriptFullName))-(len(WScript.ScriptName))) wshSystemEnv( "OPENSSL_ENGINES" ) = currentDirectory + "\stunnel"  Set oExec = WshShell.Exec("stunnel\stunnel.exe")  Do While oExec.Status = 1      WScript.Sleep 100 Loop  Set oExec = WshShell.Exec( "FirefoxPortable\FirefoxPortable.exe") 

Сохраняем его в файл DemoBank.vbs и кладем в корень flash-памяти устройства Рутокен ЭЦП Flash.

Все.

Теперь запускаем DemoBank.vbs и попадаем на демо-площадку Рутокен по защищенному соединению. Если произошла ошибка при запуске скрипта, то еще раз обратите внимание на иерархию папок.

Далее производим регистрацию, двухфакторную аутентификацию клиента и подпись платежа с помощью Рутокен Плагина и USB-токена, как это описано в статьях habrahabr.ru/company/aktiv-company/blog/155835/ и habrahabr.ru/company/aktiv-company/blog/165887/.

Для работы на другом рабочем месте просто подключаем Рутокен ЭЦП Flash и запускаем DemoBank.vbs.

Что мы получили? Переносное и простое для конечного пользователя решение, отвечающее современным представлениям о безопасности cистем с Web-интерфейсом и полностью построенное на использовании российских криптоалгоритмов.

ссылка на оригинал статьи http://habrahabr.ru/post/135599/


Комментарии

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

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