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

в 12:13, , рубрики: flash, HTTPS, pinpad, SSL, stunnel, TLS, Блог компании Компания «Актив», гост, информационная безопасность, плагин, рутокен, рутокен плагин, эцп, метки: , , , , , , , , , ,

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

В данной статье мы из «кирпичиков» соберем и испытаем на демонстрационном интернет-банке комплексное решение — по сути специальный переносной защищенный браузер, хранящийся на flash-памяти — в котором будут реализованы закрытие канала (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 из архива кладем в папку FirefoxPortableDataplugins

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("stunnelstunnel.exe")

Do While oExec.Status = 1
     WScript.Sleep 100
Loop

Set oExec = WshShell.Exec( "FirefoxPortableFirefoxPortable.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-интерфейсом и полностью построенное на использовании российских криптоалгоритмов.

Автор: VicTun

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js