Протокол передачи файлов декларации на сервер

advertisement
ПРОГРАММНО-ИНФОРМАЦИОННЫЙ КОМПЛЕКС
«АВТОМАТИЗИРОВАННАЯ СИСТЕМА ДЕКЛАРИРОВАНИЯ
РОЗНИЧНОЙ ПРОДАЖИ АЛКОГОЛЬНОЙ ПРОДУКЦИИ НА
ТЕРРИТОРИИ ПЕРМСКОГО КРАЯ»
Региональный центр управления и контроля системы учета
оборота алкогольной и спиртосодержащей продукции в Пермском
крае
Описание протокола обмена данными по сети Интернет
2009
1
Протокол передачи файлов декларации на сервер
Министерства развития предпринимательства и торговли
Пермского края
Обмен информацией между сервером декларирования лицензирующего органа
Министерства развития предпринимательства и торговли Пермского края (далее «сервер») и
программным обеспечением лицензиата (далее «клиент») осуществляется через глобальную
сеть «Интернет» по протоколу TCP.
Сервер находится по адресу «mintorg.dyndns.org». Для приема информации используется
порт 32444.
Соединение с сервером инициируется клиентом. Для этого клиент подключается к серверу
по указанному адресу и порту.
Передаваемая декларация должна представлять собой группу файлов, отправляемых
последовательно. Количество файлов может быть от одного до шести (в соответствии
Приказом Министерства развития торговли и предпринимательства Пермского края от
20.01.2009.№ СЭД-03.02-03-6 "Об утверждении формата декларации о розничной продаже
алкогольной продукции, представленной в электронном виде"). ИНН и даты в имени всех
файлов в группе должны совпадать. Шестой файл является файлом справочников, при передаче
его имя должно состоять из тех же ИНН и даты, тип равен 6. Формат имен файлов выглядит как
ХХХХХХХХХХYYYYMMDDT, где ХХХХХХХХХХ – ИНН организации (10 символов),
YYYY – год (4 символа), MM – месяц (2 символа), DD – день (2 символа), T – тип файла
декларации (1 символ). Расшифровка типов файлов в таблице 3.
На каждое сообщение клиента сервер формирует ответ в виде одного байта, содержащего
код ошибки, в некоторых случаях, если код не равен 0 (нулю) – нет ошибки, сервер закрывает
соединение.
Защита передаваемой информации осуществляется средствами криптографической
защиты информации на базе программного обеспечения КриптоПро CSP (версии 2.0 и выше) в
соответствии с ГОСТ Р 34.10-2001 (полное название: «ГОСТ Р 34.10-2001. Информационная
технология. Криптографическая защита информации. Процессы формирования и проверки
электронной цифровой подписи»).
Схема криптографической защиты: клиент подписывает электронно-цифровой подписью
файл декларации, затем шифрует подписанный файл парой ключей – своим закрытым ключом
и открытым ключом получателя. Полученный зашифрованный файл сервер дешифрует своим
закрытым ключом и открытым ключом отправителя. Подписанный файл сохраняется, а также
обрабатывается, информация из файла заносится в базу данных сервера. При запросе от
клиента уведомления об обработке, в случае, если обработка декларации прошла без ошибок,
сервер находит файл декларации клиента с его ЭЦП, прикрепляет к нему свою подпись,
шифрует своим закрытым ключом и открытым ключом клиента, затем отправляет в виде
уведомления полученный файл. Если в файле декларации обнаружены ошибки, он не
принимается и удаляется с сервера. В этом случае сервер в виде уведомления отправляет отчет
обработки файла в виде подписанного и зашифрованного файла в текстовом формате или, если
файл невозможно обработать, код ошибки обработки файла.
Для обмена файлами декларации клиента с сервером с помощью средств
криптографической защиты информации на сервере необходимо наличие сертификата
открытого ключа клиента. Соответственно, у клиента необходимо наличие сертификата
открытого ключа сервера.
Протокол обмена информацией клиента и сервера представлен в таблице 1.
В таблицах 2, 4, 5, 6, 7, 8 содержатся коды ошибок, которые могут возникнуть во время
обмена информацией сервера с клиентом.
2
Сервер
Ожидает соединение на порт 32444
Таблица 1
Протокол обмена информацией с сервером
Клиент
Выполняет подключение на порт 32444
0 (1 байт=0=00000000b=00h)
Первый ответ сервера, подтверждающий
соединение
INNХХХХХХХХХХ
Текстовая строка, передающая ИНН клиента,
где ХХХХХХХХХХ – ИНН организации
Х
Код ошибки (расшифровка в табл.2)
Цикл передачи файлов декларации на сервер
file+ХХХХХХХХХХYYYYMMDDT+SIZE
Текстовая строка, сообщающая о намерении
передать файл декларации, где:
ХХХХХХХХХХYYYYMMDDT – имя файла
(ХХХХХХХХХХ – ИНН организации, YYYY –
год, MM – месяц, DD – день, T – тип файла
декларации (см.табл.3));
SIZE – размер файла в байтах (текст)
Х
Код ошибки (расшифровка в табл.4)
поток с файлом декларации или справочника
Х
Код ошибки (расшифровка в табл.5)
Цикл передачи файлов допускается повторять от 0 (нуля) до 6 (шести) раз
(по всем типам файлов декларации: приход, расход, возврат поставщику, возврат от
покупателей, списание продукции и справочники)
Цикл запросов на получение отчетов обработки файлов декларации
report+ХХХХХХХХХХYYYYMMDDT
Текстовая строка, сообщающая о запросе
обработки файла декларации, где:
ХХХХХХХХХХYYYYMMDDT – имя файла
(ХХХХХХХХХХ – ИНН организации, YYYY –
год, MM – месяц, DD – день, T – тип файла
декларации)
Х+SIZE (5 байт)
Х – Код ошибки (расшифровка в табл.6);
SIZE – 4 байта. Размер файла отчета
обработки в байтах (в случае успешной
обработки) или
4 нулевых байта (в случае ошибок
обработки)
DDMMYYhhmmssNN
Текстовая строка, сообщающая дату и время
обработки файла декларации, а также
количество корректировок, где:
DD – день, MM – месяц, YY – год,
hh – часы, mm – минуты, ss – секунды,
NN – количество корректирующих
деклараций
3
Х
Код ошибки (расшифровка в табл.7)
В случае если есть информация об обработке файла (действительно был отправлен)
поток с файлом отчета обработки:
если без ошибок – подписанный сервером
файл декларации;
если с ошибками – лог обработки со списком
ошибок.
Х
Код ошибки (расшифровка в табл.8)
Цикл запросов на получение отчетов обработки допускается
повторять от 0 (нуля) до 10 (десяти) раз
Х (1 байт=255=1111111111b=FFh)
Сообщение клиента о завершении соединения
Завершение соединения с клиентом
4
Таблица 2
Расшифровка ошибок при подключении к серверу
Код
Расшифровка
ошибки
00000000 Ошибок не обнаружено. Разрешен обмен информацией
00000001 Ошибка. Запрещен обмен информацией для клиента с указанным ИНН. Завершение
соединения.
00000010 Ошибка. Клиент с указанным ИНН не найден в справочнике. Запрещен обмен
информацией. Завершение соединения.
00000011 Ошибка. Не найден сертификат открытого ключа шифрования клиента с указанным
ИНН. Запрещен обмен информацией. Завершение соединения.
00000100 Ошибка извлечения открытого ключа из сертификата клиента. Запрещен обмен
информацией. Завершение соединения.
00000101 Ошибка криптографии на сервере. Сервер не готов выполнять криптографические
функции. Запрещен обмен информацией. Завершение соединения.
Таблица 3
Типы файлов декларации
Тип файла
(Т)
1
2
3
4
5
6
Расшифровка типа
Файл прихода (закупок) алкогольной продукции
Файл расхода (реализации) алкогольной продукции
Файл возврата алкогольной продукции поставщику
Файл возврата алкогольной продукции от покупателей
Файл брака (списания) алкогольной продукции
Файл справочников
Таблица 4
Расшифровка ошибок при приеме информации о файле
Код
Расшифровка
ошибки
00000000 Ошибок не обнаружено. Разрешен обмен информацией. Ожидается прием файла
00000001 Ошибка. Некорректное имя файла. ИНН не совпадает с ИНН клиента.
Файл принят не будет. Завершение соединения.
00000010 Ошибка. Некорректное имя файла. Неправильный ИНН.
Файл принят не будет. Завершение соединения.
00000011 Ошибка. Некорректное имя файла. Неверная дата.
Файл принят не будет. Завершение соединения.
00000100 Ошибка. Некорректное имя файла. Неверный тип файла.
Файл принят не будет. Завершение соединения.
00000101 Ошибка. Некорректный размер файла.
Файл принят не будет. Завершение соединения.
00000110 Ошибка. Имя файла не совпадает с именами предыдущих файлов.
Файл принят не будет. Завершение соединения.
00000111 Ошибка. Длина строки сообщения о передаче файла декларации менее 26 символов.
Файл принят не будет. Завершение соединения.
00001000 Ошибка. Количество файлов превышает максимально допустимое (более 6).
Файл принят не будет. Завершение соединения.
5
Таблица 5
Расшифровка ошибок при передаче файлов декларации
Код
Расшифровка
ошибки
00000000 Ошибок не обнаружено. Файл успешно принят
00000001 Ошибка. Размер потока не совпадает с переданным размером файла.
Завершение соединения.
00000010 Ошибка. Не удается выполнить расшифровку файла открытым ключом клиента.
Возможно у одной из сторон неправильный сертификат открытого ключа другой
стороны. Завершение соединения.
00000011 Ошибка. Электронно-цифровая подпись в расшифрованном сообщении не
соответствует сертификату открытого ключа клиента. Завершение соединения.
00000100 Внутренняя ошибка сервера. Завершение соединения.
00000101 Ошибка. Не удается извлечь электронно-цифровую подпись сообщения.
Завершение соединения.
Код
ошибки
00000000
00000001
00000010
00000011
00000100
00000101
00000110
00000111
00001000
00001001
00001010
00001011
00001100
00001101
00001110
00001111
00010000
Таблица 6
Расшифровка ошибок при передаче отчетов обработки файлов декларации
Расшифровка
Ошибок не обнаружено. Выполняется передача файла декларации с ЭЦП сервера.
Ошибки в файле декларации. Выполняется передача отчета об обработке файла.
Ошибка обработки файла декларации. Неверное количество полей.
Ошибка обработки файла декларации. Неправильные имена полей.
Ошибка обработки файла декларации. Неправильный тип полей.
Ошибка обработки файла декларации. Неправильный размер полей.
Ошибка обработки файла декларации. Нулевое количество записей.
Ошибка обработки файла декларации. Ошибка в структуре файла.
Ошибка обработки файла декларации. Нераспознаваемая структура файла.
Ошибка. Некорректное имя файла. ИНН не совпадает с ИНН клиента.
Ошибка. Некорректное имя файла. Неправильный ИНН.
Ошибка. Некорректное имя файла. Неверная дата.
Ошибка. Некорректное имя файла. Неверный тип файла.
Ошибка. Отчет обработки файла с указанным именем не найден.
Внутренняя ошибка сервера. Завершение соединения.
Ошибка. Длина строки запроса отчета не равна 25 символам.
Ошибка. Количество запросов превышает максимально допустимое (более 10).
6
Таблица 7
Расшифровка ошибок при приеме отчетов обработки файлов декларации клиентом
Расшифровка
Код
ошибки
00000000 Клиент готов принять файл отчета обработки декларации
00000001 Ошибка. Некорректная дата или время обработки.
Отчет принят не будет. Завершение соединения.
00000010 Ошибка. Некорректное количество корректировок.
Отчет принят не будет. Завершение соединения.
00000011 Ошибка. Некорректный размер файла.
Отчет принят не будет. Завершение соединения.
00000100 Ошибка. Клиент не готов принять отчет обработки. Внутренняя ошибка.
Отчет принят не будет. Завершение соединения.
Таблица 8
Расшифровка ошибок при приеме файла отчета обработки декларации
Расшифровка
Код
ошибки
00000000 Файл отчета обработки декларации успешно принят
00000001 Ошибка. Размер потока не совпадает с переданным размером файла.
Завершение соединения.
00000010 Ошибка. Не удается выполнить расшифровку файла открытым ключом сервера.
Возможно у одной из сторон неправильный сертификат открытого ключа другой
стороны. Завершение соединения.
00000011 Ошибка. Электронно-цифровая подпись в расшифрованном сообщении не
соответствует сертификату открытого ключа сервера. Завершение соединения.
00000100 Внутренняя ошибка клиента. Завершение соединения.
00000101 Ошибка. Не удается извлечь электронно-цифровую подпись сообщения.
Завершение соединения.
7
Download