Защита систем интернет-банкинга: 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 из архива кладем в папку 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-интерфейсом и полностью построенное на использовании российских криптоалгоритмов.
    «Актив» 91,89
    Компания
    Поделиться публикацией
    Похожие публикации
    Комментарии 33
    • 0
      Фишка решения в том, что оно абсолютно необременительно для конечного пользователя — подключил украл токен, запустил браузер и сразу же можно начинать тратить деньги.
      • +1
        PIN-код еще надо подобрать. Обычно дается 3 попытки, потом токен блокируется и вы не авторизуетесь в личном кабинете. В общем, тупой троллинг.
        • 0
          Ну это уже неинтересно :-).
          UPD: вспомнился «Сплинтер сэл» — как код в тепловизоре подбирали по остаточной теплоте клавиш.
          • 0
            Ну набирайте PIN-код в варежках
          • 0
            Да что его подбирать. 12345678 и при установке просят особо не менять.
            Я в этом плане просто офигеваю от ситуации, когда на тебя чуть ли не как на идиота смотрят, когда ты хочешь сменить стандартный пароль или даже тот, что дали при установке.
            • 0
              Меняйте, не подчиняйтесь чужому влиянию :) Вендор дал вам все необходимые инструменты
              • 0
                Я, естественно, все всегда меняю. Но ситуация такова, что на токетах ставят стандартный легкий пароль непосредственно в момент установки системы клиент-банк и т.п. А потом никто не хочет заморачиваться со сменой пароля.
                • 0
                  После того как увидел, что установщик с МОЕЙ машины зашел на почту mail.ru, скачал оттуда архив с регистрационными данными и поставил все на мою машину, все последующие установки в будущем производил самостоятельно.

                  И перейти особо некуда, так как сначала выбираешь банк, а уже потом ставишь софт для управлением р/с. В Беларуси 22 банка сидят на дерьме от СТ.
          • 0
            федеральные законы, приказы регуляторов и требования к системам ДБО от Банка России, многие из которых касаются именно защиты информации в системах ДБО

            А не подскажите какие? Просто стало интересно где конкретно должны быть Российские ГОСТы (в смысле алгоритмов) — в обеспечении безопасности хранения персональных данных или безопасности канала.
            • 0
              ©

              Закон «О персональных данных» требует от операторов или третьих лиц, имеющих доступ к персональным данным, обеспечения конфиденциальности информации. Распространение персональных данных без согласия субъекта персональных данных или наличия иного законного основания недопустимо. Изначально в законе присутствовало требование об обязательном использовании шифровальных (криптографических) средств для защиты персональных данных. Хотя это требование позднее было отменено (Федеральный закон от 27 декабря 2009 г. N 363-ФЗ «О внесении изменений в статьи 19 и 25 Федерального закона «О персональных данных»), но в ряде случаев невозможно обеспечить надежную защиту персональных данных без использования средств шифрования. В частности, когда речь идет о передаче персональных данных по информационным каналам передачи данных, то шифрование становится одним из главных способов защиты.

              Согласно Постановлению 781: «В отношении разработанных шифровальных (криптографических) средств защиты информации, предназначенных для обеспечения безопасности персональных данных при их обработке в информационных системах, проводятся тематические исследования и контрольные тематические исследования в целях проверки выполнения требований по безопасности информации».

              Проведение таких тематических исследований относится к компетенции ФСБ. Таким образом, использование несертифицированных ФСБ средств криптографической защиты персональных данных противоречит законодательству РФ. А ФСБ пока еще не выдает сертификаты на НЕ ГОСТы

              • +1
                Спасибо. Насколько я понял если по каналу не передавать персональные данные, но и мутить с нестандартными сертификатами не придется. Достаточно обычного TLS соединения.
                • 0
                  Не уверен, что это ваше утверждение справедливо для банковской сферы.
                  • 0
                    63-ФЗ еще, там много про электронную подпись
                • +1
                  А вообще тема эта, на мой взгляд, мутная. Отсылаю Вас на форум www.ispdn.ru/forum/forum1/, на котором тусуются Эксперты по защите персональных данных, которые смогут убедить любого в необходимости использования именно сертифицированных средств и, в частности, сертифицированной российской криптографии.
                • 0
                  А для Рутокен ЭЦП драйвер не нужен? Он работает так же как и Рутокен Web (HID устройство)?
                  • +1
                    CCID-устройство. CCID-драйвер входит по умолчанию в современные ОС. Например, в семействе Windows начиная с XP SP3.
                    • 0
                      Т.е. он работает так же как и Рутокен Web?
                      • 0
                        По сути да
                        • 0
                          Просто мы написали свой плагин для Rutoken Web, и было бы здорово если он заработает с Rutoken ЭПЦ Flash :)
                          • +1
                            По идее должен, так как совместимость реализуется на уровне библиотеки rtPKCS11ECP
                            • 0
                              Побежал покупать токены для экспериментов. Спасибо!
                  • 0
                    Если браузер исполняется CPU компьютера — защиты нет.
                    Если ввод «ПИН-кода» производится на штатной клавиатуре компьютера — защиты нет.
                    Ни один «производитель» будет страховать убытки которые могут возникнуть в случаи инцидента ИБ с использование его «сертифицированных средств».
                    • +1
                      Не важно как был введен ПИН-код, главное что ЭП будет верным… а как это произошло никого волновать не будет. Следите за своим компом и обеспечивайте доверенную среду для работы.
                      • 0
                        Ввод PIN-кода и подпись могут производиться на экране Рутокен PINPad.
                      • 0
                        ->>>2. Загружаем sTunnel, собранный с поддержкой ГОСТов. В архиве все необходимые файлы, в том числе openssl с поддержкой российской криптографии.

                        Что можете сказать по поводу новых ГОСТов и того, успели ли их внедрить в OpenSSL?

                        habrahabr.ru/post/180739/#comment_6341308
                        • 0
                          Насколько я знаю, еще нет
                        • 0
                          2. Загружаем sTunnel, собранный с поддержкой ГОСТов. В архиве все необходимые файлы, в том числе openssl с поддержкой российской криптографии.


                          Подскажите, а сертификат ФСБ у этого «openssl с поддержкой российкой криптографии» есть? Если да — был бы признателен за ссылку на него.
                          • 0
                            У «этого» — нет сертификата. Но ничто не мешает купить сертифицированный openssl, бинарно совместимый с «этим» и с sTunnel. Решение при этом не изменится, просто в папке sTunnel будут лежать 3 сертифицированных бинарника.
                          • 0
                            Мне непонятно одно — зачем Вы добавили скрипт на vbs?
                            • 0
                              Чтобы пользователь один раз щелкнул мышкой и зашел в интернет-банк.
                              • 0
                                1) в некоторых организациях Windows Scripts (wscript.exe) запрещен к выполнения — поскольку много вирусов используют его
                                2) в корп среде выполнение НЕподписанных приложений ОЧЕНЬ веселое занятие, а как все знают — подписать vbs скрипт невозможно в отличие от exe, dll, msh
                                P.S. хотя Я забыл — на Visual Basic Scripts самое лучшее решение (иначе же сертификацию не пройдет) :)
                                • 0
                                  Ну можно и exe написать. Там совсем немного кода. У меня как-то руки не дошли.
                                  • 0
                                    Скрипты тоже можно подписывать signtoolом.

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое