PDA

Просмотр полной версии : Автоматизация работы с ЭЦП в браузере


nofantasy
31.01.2013, 19:47
Приветствую.

Есть некий веб-сервис, в котором определённые действия пользователя должны быть подтверждены его ЭЦП (используя плагин к браузеру chrome/firefox/opera).

Задача стоит в автоматизации части этих действий - в частности нажимания на кнопку "сделать определённое дейтствие" на странице сервиса и последующей кнопки "да" в появившемся окне "подписать данное действие эцп?".

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

XSS - не вариант.

Если писать приложение - то проблема дойти вообще до того момента, когда понадобится автоматизация.

Автоматизация браузера через Selenium - тоже проблематично.

Разве что через консоль фаербага в фаерфоксе?

Что скажете?

XAMEHA
01.02.2013, 03:06
Лучше эмулировать не действия нажатия в браузере, а запросы к серверу, однако. Если это бинарный плагин, достать исходный код будет достаточно сложно, т.к. запросы могут отправляться в зашифрованном виде.

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

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

nofantasy
01.02.2013, 12:12
XAMEHA said:
Лучше эмулировать не действия нажатия в браузере, а запросы к серверу, однако. Если это бинарный плагин, достать исходный код будет достаточно сложно, т.к. запросы могут отправляться в зашифрованном виде.


http://www.cryptopro.ru/products/cades/plugin

Эмулировать запросы к серверу - да, проще, но какими средствами?


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


О механизмах ЭЦП много читал, но как оно работает в данном конкретном случае - вопрос.

Да, посмотрю при возможности. Пока что вооружался только fiddler'ом.


XAMEHA said:
Если подпись запрашивается только один раз


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


XAMEHA said:
не проблема написать небольшой JS скрипт.


И что с ним потом делать? Попросить администраторов сайта выложить его у себя?

BAGZ
18.03.2013, 14:24
Есть много таких веб - сервисов, запрашивающие ЭЦП. Госсзакупками занимаешься??? Мой совет положи перед собой удостоверение личности и переходи к онлайн регистрации ЭЦП.

vinosh
12.04.2013, 18:56
Есть вероятность что тебе поможет планирую для лисы iMacros

altblitz
12.04.2013, 20:18
реклама с троллингом наполовину.

первое - сам сайт не имеет сертификата 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.

nofantasy
14.04.2013, 01:02
altblitz said:
реклама с троллингом наполовину.


Что за параноидальный бред?


altblitz said:
второе -
Создание и проверка подписи происходят на стороне пользователя.
кретинизм.
подпись пользователя подписывается сайтом, с аутентификацией и авторизацией crypto base authorities.


"подпись пользователя подписывается сайтом"?

Пользователь зашифровывает данные при помощи яваскриптовой функции, после чего эти данные вместе с остальными отсылаются в виде пост-запроса на сервер.

Вся эта схема видна, достаточно открыть исходный код интересующей страницы.

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

Упёрся примерно вот в такой код:

selectCert(function(){

var signMessage = "блаблабла, вы уверены и всё такое?";

if (!confirm(signMessage)) exit; // эта строка убирается нафиг

var sign = Sign(signMessage, false);

// отправка запроса на сервер

);

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

а вот как обойти эту хрень, чтобы отправка данных на сервер не требовала каждый раз нажатия руками на "ok"?

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