Прошло уже несколько дней, как работает единый реестр запрещенных ресурсов zapret-info.gov.ru. Все интернет-провайдеры России обязаны получать оттуда данные о заблокированных доменных именах и IP-адресах. К сожалению, сделать это не так-то просто, как хотелось бы. Вместо открытого списка с именами и адресами нас ожидает лишь форма проверки нахождения ресурса в реестре, причем, как полагается, с каптчей.
Естественно, что перебирать все ресурсы было бы глупо, поэтому, специально для провайдеров, есть раздел ручной и автоматической выгрузки реестра. Однако, не все так просто как хотелось бы. Чтобы получить реестр необходимо иметь файл запроса, цифровую подписьи стальные нервы.
Так как мы потратили несколько дней на получение реестра, хотелось бы облегчить задачу всем тем провайдерам, кто еще, в силу каких-либо причин, не выгружает список запрещенных ресурсов(а мы знаем, такие есть :).
Итак, первое с чего следует начать, это с цифровой подписи. Центров выдачи сертификатов развелось достаточное количество, и такое ощущение, что вариантов самих же сертификатов не меньше. Первое что мы попробовали, это использовать сертификат, который используется нами на электронной бирже «Сбербанк-АСТ», естественно, что она не подошла. Оказывается, для выгрузки списка необходима квалифицированная электронная подпись, причем от аккредитованного Минкомсвязью удостоверяющего центра. Позвонив ближайшему к намреселлеру торговому представителю одного из центров, мы узнали, что такие электронные подписи они еще не выдают. Позвонив непосредственно в центр нам сообщили, что такие подписи они продают, но не напрямую, а только через торговых представителей. Поговорив еще немного и с теми, и с теми, нам все-таки удалось узнать, как нам такую подпись получить и сколько она будет стоить.
Сразу хотелось бы объяснить, почему не обратились в другие центры. Дело в том, что для получения подписи необходимо личное присутствие, т.е. есть реальная необходимость ехать за документами и USB-токеном. Поездки по областям, конечно, только затягивают этот процесс.
Ну и несколько слов о том, чем же отличается такая подпись, от различных, именуемых «классик», «голд» и «платинум». Оказывается в ней есть поля-параметры 1.2.643.3.131.1.1 для ИНН и 1.2.643.100.1 для ОГРН. Удивительно, но все остальные сертификаты содержат ИНН и ОГРН в одном поле, что впрочем нисколько не мешает им однозначно идентифицировать владельца.
Пока улаживаются все вопросы с электронной подписью можно сосредоточится на файле запроса. Формат запроса и принцип работы с ним описан в так называемой памятке оператору связи. 9 ноября в нее наконец-то добавили адрес для связи с техподдержкой(кому она теперь нужна), до этого вообще было не понятно с кем связываться, и приходилось все делать методом научного тыка.
Итак, запрос представляет собой XML-файл, содержащий время запроса, название организации, ИНН, ОГРН и контактный адрес электронной почты. В век, когда utf-8 является стандартом де-факто, нам предлагают использовать windows-1251 :(
По всей видимости, реально разбираются только ИНН и ОГРН (сверяются с сертификатом, и базой операторов связи), все остальное может быть каким угодно, хотя указывать неверные ИНН и ОГРН мы не пробовали. Возможно, что остальные поля будут использоваться в дальнейшем, либо просто записываются в базу в качестве справочной информации. Шаблон файла запроса периодически обновляют, поэтому есть смысл иногда заглядывать в памятку, не изменилось ли чего.
Для того, чтобы проверить корректность подписи, можно воспользоваться сервисом проверки электронной подписи. Нас интересует раздел «Подтверждение подлинности ЭП электронного документа. ЭП — отсоединенная, в формате PKCS#7». На данном этапе мы потратили больше всего времени. Поначалу было не понятно, что же нужно загрузить в поля, затем оказалось, что подпись, которую мы использовали не будет проходить в реестре. Если кратко, то вам надо с помощью каких-либо средств подписать ваш файл запроса, тем самым получив новый файл, содержащий открепленную подпись. Затем, в качестве документа для проверки вам необходимо загрузить файл запроса (xml), а в качестве подписи для проверки — файл открепленной подписи (sig). Если все в порядке, то вы увидите информацию, что документ подписан и подпись действительна.
Кстати, каптча этого сервиса не всегда цифровая, бывают и буквы, а вот валидацию проходят только цифры, так что каждый третий запрос не удается :(
Если у вас есть файл запроса, его подпись и вы оператор связи, то вы готовы получить святая святых — реестр запрещенных ресурсов. Пока вручную. Прикрепляем к форме файл запроса, файл подписи, угадываем каптчу и отправляем запрос. Оказывается, что проверка проходит не моментально, вместо этого нам выдают идентификатор запроса в виде md5-хэша, который подставив в форму ниже мы можем периодически проверять. Если все было сделано правильно, то через несколько «Ваш запрос еще не обработан», вы увидите ссылку для загрузки реестра, в виде zip-архива, содержащего файл dump.xml — список в формате XML и dump.xml.sig — файл электронной подписи.
Формат XML файлаподробно описан в памятке оператору связи.
Если вы смогли выгрузить файл вручную, то проблем с выгрузкой в автоматическом режиме возникнуть не должно. На хабре уже упоминались скрипты для автоматизации этой процедуры.
Естественно, что перебирать все ресурсы было бы глупо, поэтому, специально для провайдеров, есть раздел ручной и автоматической выгрузки реестра. Однако, не все так просто как хотелось бы. Чтобы получить реестр необходимо иметь файл запроса, цифровую подпись
Так как мы потратили несколько дней на получение реестра, хотелось бы облегчить задачу всем тем провайдерам, кто еще, в силу каких-либо причин, не выгружает список запрещенных ресурсов
Цифровая подпись
Итак, первое с чего следует начать, это с цифровой подписи. Центров выдачи сертификатов развелось достаточное количество, и такое ощущение, что вариантов самих же сертификатов не меньше. Первое что мы попробовали, это использовать сертификат, который используется нами на электронной бирже «Сбербанк-АСТ», естественно, что она не подошла. Оказывается, для выгрузки списка необходима квалифицированная электронная подпись, причем от аккредитованного Минкомсвязью удостоверяющего центра. Позвонив ближайшему к нам
Сразу хотелось бы объяснить, почему не обратились в другие центры. Дело в том, что для получения подписи необходимо личное присутствие, т.е. есть реальная необходимость ехать за документами и USB-токеном. Поездки по областям, конечно, только затягивают этот процесс.
Ну и несколько слов о том, чем же отличается такая подпись, от различных, именуемых «классик», «голд» и «платинум». Оказывается в ней есть поля-параметры 1.2.643.3.131.1.1 для ИНН и 1.2.643.100.1 для ОГРН. Удивительно, но все остальные сертификаты содержат ИНН и ОГРН в одном поле, что впрочем нисколько не мешает им однозначно идентифицировать владельца.
Файл запроса
Пока улаживаются все вопросы с электронной подписью можно сосредоточится на файле запроса. Формат запроса и принцип работы с ним описан в так называемой памятке оператору связи. 9 ноября в нее наконец-то добавили адрес для связи с техподдержкой
Итак, запрос представляет собой XML-файл, содержащий время запроса, название организации, ИНН, ОГРН и контактный адрес электронной почты. В век, когда utf-8 является стандартом де-факто, нам предлагают использовать windows-1251 :(
<xml version="1.0" encoding="windows-1251"?>
<request>
<requestTime>2012-01-01T01:01:01.000+04:00</requestTime>
<operatorName>Наименование оператора</operatorName>
<inn>1234567890</inn>
<ogrn>1234567890123</orgn>
<email>email@email.ru</email>
</request>
По всей видимости, реально разбираются только ИНН и ОГРН (сверяются с сертификатом, и базой операторов связи), все остальное может быть каким угодно, хотя указывать неверные ИНН и ОГРН мы не пробовали. Возможно, что остальные поля будут использоваться в дальнейшем, либо просто записываются в базу в качестве справочной информации. Шаблон файла запроса периодически обновляют, поэтому есть смысл иногда заглядывать в памятку, не изменилось ли чего.
Проверка подписи
Для того, чтобы проверить корректность подписи, можно воспользоваться сервисом проверки электронной подписи. Нас интересует раздел «Подтверждение подлинности ЭП электронного документа. ЭП — отсоединенная, в формате PKCS#7». На данном этапе мы потратили больше всего времени. Поначалу было не понятно, что же нужно загрузить в поля, затем оказалось, что подпись, которую мы использовали не будет проходить в реестре. Если кратко, то вам надо с помощью каких-либо средств подписать ваш файл запроса, тем самым получив новый файл, содержащий открепленную подпись. Затем, в качестве документа для проверки вам необходимо загрузить файл запроса (xml), а в качестве подписи для проверки — файл открепленной подписи (sig). Если все в порядке, то вы увидите информацию, что документ подписан и подпись действительна.
Кстати, каптча этого сервиса не всегда цифровая, бывают и буквы, а вот валидацию проходят только цифры, так что каждый третий запрос не удается :(
Результат
Если у вас есть файл запроса, его подпись и вы оператор связи, то вы готовы получить святая святых — реестр запрещенных ресурсов. Пока вручную. Прикрепляем к форме файл запроса, файл подписи, угадываем каптчу и отправляем запрос. Оказывается, что проверка проходит не моментально, вместо этого нам выдают идентификатор запроса в виде md5-хэша, который подставив в форму ниже мы можем периодически проверять. Если все было сделано правильно, то через несколько «Ваш запрос еще не обработан», вы увидите ссылку для загрузки реестра, в виде zip-архива, содержащего файл dump.xml — список в формате XML и dump.xml.sig — файл электронной подписи.
Формат XML файла
Заключение
Если вы смогли выгрузить файл вручную, то проблем с выгрузкой в автоматическом режиме возникнуть не должно. На хабре уже упоминались скрипты для автоматизации этой процедуры.