Автоматизация работы с ЭЦП в браузере

Discussion in 'Песочница' started by nofantasy, 31 Jan 2013.

  1. nofantasy

    nofantasy New Member

    Joined:
    31 Jan 2013
    Messages:
    3
    Likes Received:
    1
    Reputations:
    0
    Приветствую.

    Есть некий веб-сервис, в котором определённые действия пользователя должны быть подтверждены его ЭЦП (используя плагин к браузеру chrome/firefox/opera).
    Задача стоит в автоматизации части этих действий - в частности нажимания на кнопку "сделать определённое дейтствие" на странице сервиса и последующей кнопки "да" в появившемся окне "подписать данное действие эцп?".

    Впервые сталкиваюсь с такой задачей, поэтому даже не знаю с какой стороны подходить к решению проблемы.

    XSS - не вариант.
    Если писать приложение - то проблема дойти вообще до того момента, когда понадобится автоматизация.
    Автоматизация браузера через Selenium - тоже проблематично.
    Разве что через консоль фаербага в фаерфоксе?

    Что скажете?
     
    PinkGuy likes this.
  2. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Лучше эмулировать не действия нажатия в браузере, а запросы к серверу, однако. Если это бинарный плагин, достать исходный код будет достаточно сложно, т.к. запросы могут отправляться в зашифрованном виде.


    Попробуйте посмотреть, какие запросы передаются через WireShark и Chares(Настройте перехват SSL), почитайте о механизмах ЭЦП.


    Если подпись запрашивается только один раз, то не проблема написать небольшой JS скрипт. Адрес сайта в студию.
     
  3. nofantasy

    nofantasy New Member

    Joined:
    31 Jan 2013
    Messages:
    3
    Likes Received:
    1
    Reputations:
    0
    http://www.cryptopro.ru/products/cades/plugin
    Эмулировать запросы к серверу - да, проще, но какими средствами?

    О механизмах ЭЦП много читал, но как оно работает в данном конкретном случае - вопрос.
    Да, посмотрю при возможности. Пока что вооружался только fiddler'ом.

    Нет, не один раз, а каждый раз при нужном мне действии.

    И что с ним потом делать? Попросить администраторов сайта выложить его у себя? :)
     
    #3 nofantasy, 1 Feb 2013
    Last edited: 1 Feb 2013
  4. BAGZ

    BAGZ Member

    Joined:
    27 Apr 2012
    Messages:
    64
    Likes Received:
    5
    Reputations:
    0
    Есть много таких веб - сервисов, запрашивающие ЭЦП. Госсзакупками занимаешься??? Мой совет положи перед собой удостоверение личности и переходи к онлайн регистрации ЭЦП.
     
  5. vinosh

    vinosh Member

    Joined:
    29 Oct 2011
    Messages:
    72
    Likes Received:
    15
    Reputations:
    5
    Есть вероятность что тебе поможет планирую для лисы iMacros
     
  6. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,694
    Likes Received:
    3,149
    Reputations:
    236
    реклама с троллингом наполовину.

    первое - сам сайт не имеет сертификата SSL/TSL,
    и при подключении к https://www.cryptopro.ru
    Code:
    Secure Connection Failed
    
    An error occurred during a connection to www.cryptopro.ru. Unrecognized Object Identifier. (Error code: sec_error_unrecognized_oid)
    
    The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
    
    второе - Создание и проверка подписи происходят на стороне пользователя.
    кретинизм.
    подпись пользователя подписывается сайтом, с аутентификацией и авторизацией crypto base authorities.
     
  7. nofantasy

    nofantasy New Member

    Joined:
    31 Jan 2013
    Messages:
    3
    Likes Received:
    1
    Reputations:
    0
    Что за параноидальный бред?
    "подпись пользователя подписывается сайтом"? :D
    Пользователь зашифровывает данные при помощи яваскриптовой функции, после чего эти данные вместе с остальными отсылаются в виде пост-запроса на сервер.
    Вся эта схема видна, достаточно открыть исходный код интересующей страницы.

    К слову, удалось поковыряться внутри. Даже написал и протестировал небольшой скрипт.
    Упёрся примерно вот в такой код:

    selectCert(function(){
    var signMessage = "блаблабла, вы уверены и всё такое?";
    if (!confirm(signMessage)) exit; // эта строка убирается нафиг
    var sign = Sign(signMessage, false);
    // отправка запроса на сервер
    );

    Объясню: selectCert вызывает окошко (фактически — div c нарисованным текстом и кнопками "ok"/"cancel"), в котором надо выбрать нужный сертификат, после чего, если нажато "ок", вызывается коллбек с отправкой данных на сервер.
    а вот как обойти эту хрень, чтобы отправка данных на сервер не требовала каждый раз нажатия руками на "ok"?

    Я так понимаю, эта функция — из плагина к браузеру, потому как среди подключённых к странице js–скриптов я её не нашёл.