Откройте актуальную версию документа прямо сейчас
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.
Приложение В
(обязательное)
Протокол
передачи сообщений тахографом для сбора и обработки данных на периферийных устройствах
В.1 Формат сообщений протокола
Все сообщения протокола представляют собой заголовок фиксированной длины и тело в формате BER TLV-структуры, тэгом которых является код типа сообщения.
В.1.1 Кодировка тэгов тела сообщений
В таблице В.1 указана кодировка тэгов тела сообщений.
Таблица В.1 - Кодировка тэгов тела сообщения
b8 |
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
Описание |
0 |
0 |
1 |
1 |
- |
- |
- |
- |
Сообщение |
0 |
0 |
0 |
1 |
- |
- |
- |
- |
Протокольные данные, передаваемые в сообщениях с содержательными данными (MESSAGE) |
0 |
0 |
1 |
0 |
- |
- |
- |
- |
Открытые содержательные данные, передаваемые в сообщениях с содержательными данными (MESSAGE) |
1 |
0 |
1 |
0 |
- |
- |
- |
- |
Зашифрованные содержательные данные, передаваемые в сообщениях с содержательными данными (MESSAGE) |
0 |
0 |
0 |
0 |
- |
- |
- |
- |
Данные, передаваемые в сообщениях при установлении соединения и аутентификации |
- |
- |
- |
- |
x |
x |
x |
x |
Номер тэга |
В.1.2 Данные формата заголовка
В таблице В.2 приведены данные формата заголовка.
Таблица В.2 - Формат заголовка
Позиция |
Длина |
Значение/описание |
00('00') |
4 |
Фиксированная константа, равная значению '41544С53' - Magic |
04('04') |
1 |
'07' - версия транспортного протокола |
05('05') |
4 |
Код/идентификатор системы сбора и обработки данных |
09('09') |
16 |
Заводской номер блока тахографической информации (Part Number) |
25('19') |
2 |
Длина тела сообщения, с порядком байт BE |
27('1В') |
8 |
ServerCTX (контекст сбора и обработки данных [далее - СОД]), байтовый массив |
35('23') |
2 |
CRC16 тела сообщения |
Примечания 1 Для значения "Код/идентификатор системы сбора и обработки данных": - в заголовке сообщения указывают 4-байтовый код/идентификатор системы сбора и обработки данных, которому предназначено сообщение; - код/идентификатор системы сбора и обработки данных указывается в теле содержательного сообщения; - в заголовке сообщений для СОД (0x30 - 0x38) 4 байта кода/идентификатора имеют нулевое значение; - в заголовке и теле содержательного сообщения (0x39) с данными для СОД 4 байта кода/идентификатора имеют нулевое значение; - в заголовке и теле содержательных сообщений (0x39) для системы сбора и обработки данных 4 байта кода/идентификатора имеют ненулевое значение. 2 Для значения "ServerCTX": - поле ServerCTX позволяет восстановить на СОД контекст обработки поступающих данных от блока тахографической информации в случае разрыва TCP/IP соединения и открытия нового; - при формировании сообщения (кроме запроса CONNECTREQUEST, см. правило для CONNECTREQUEST ниже) поле ServerCTX инициализируется значением ServerCTX, полученным из последнего ответа от сервера; - если после получения успешного ответа на запрос произошел разрыв TCP/IP соединения (или если нет ответов на запросы, что приводит к разрыву TCP/IP соединения), то тахограф заново подключается по TCP/IP к серверу и посылает следующее сообщение со значением поля ServerCTX, взятого из последнего полученного успешного ответа от сервера. 3 Для сообщения CONNECTREQUEST правила формирования этого поля следующие: а) поле ServerCTX для запроса CONNECTREQUEST заполняется байтами со значением '00' в следующих случаях: - значение поля ServerCTX из последнего полученного успешного ответа от сервера неизвестно; - интервал в обмене с СОД более 10 мин; - по тем или иным причинам необходимо заново проинициализировать контекст обработки данных на СОД; б) в остальных случаях поле ServerCTX для запроса CONNECTREQUEST заполняется значением поля ServerCTX, взятого из последнего полученного успешного ответа от сервера. 4 CRC16 - алгоритм идентичен CRC-A, за исключением стартового значения CRC (CRC_IV). CRC_IV = 0хА56С (байтовая последовательность: 6С А5). |
В.1.3 Формат тела сообщений
Формат тела сообщения определяется типом сообщения:
В.1.3.1 CONNECTREQUEST
Тэг 0x30. Это сообщение выдается тахографом сразу после установления соединения.
Последовательность TLV-структур сообщения CONNECTREQUEST приведена в таблице В.3.
Таблица В.3 - Последовательность TLV-структур сообщения CONNECTREQUEST
Тэг |
Наименование |
Длина, байт |
Количество |
Примечание |
0x02 |
ServerAddress |
- |
0/1 |
Адрес (DNS-имя) сервера |
0x03 |
PartNumber |
16 |
1 |
Заводской номер блока тахографической информации |
0x04 |
Keyld |
16 |
1 |
Идентификатор открытого ключа блока тахографической информации (IDPkKC) |
0x05 |
IdRequest |
16 |
1 |
Текущее время (4 байта) || Случайное число (12 байт) |
0x06 |
RFU |
4 |
1 |
'00 00 00 00' |
В.1.3.2 SERVERHELLO
Тэг 0x31. Это сообщение выдается сервером сразу после получения запроса на установление соединения или в ходе установленной сессии с целью проведения повторной динамической аутентификации. Последовательность TLV-структур сообщения SERVERHELLO приведена в таблице В.4.
Таблица В.4 - Последовательность TLV-структур сообщения SERVERHELLO
Тэг |
Наименование |
Длина, байт |
Количество |
Примечание |
0x01 |
Сертификат |
До 2500 |
1 |
Сертификат сервера для аутентификации (CS) |
0x05 |
Random |
16 |
1 |
Случайное число сервера (RNDS) |
В.1.3.3 DENYSESSION
Тэг 0x33. Это сообщение выдается сервером в случае разрыва соединения.
Последовательность TLV-структур сообщения DENYSESSION приведена в таблице В.5.
Таблица В.5 - Последовательность TLV-структур сообщения DENYSESSION
Тэг |
Наименование |
Длина, байт |
Количество |
Примечание |
0x09 |
ErrorCode |
2 |
1 |
Код причины разрыва соединения. |
0х0А |
Description |
0-N |
1 |
Описание причины разрыва соединения (короткое сообщение) |
В.1.3.4 CACERTREQUEST
Тэг 0x34. Это сообщение выдается тахографом, если у него нет открытого ключа удостоверяющего центра (далее - УЦ) для проверки сертификата сервера.
Содержащиеся в сообщении CACERTREQUEST тэги с идентификаторами ключей УЦ, известных блоку тахографической информации приведены в таблице В.6.
Таблица В.6 - Тэги с идентификаторами ключей УЦ, содержащиеся в сообщении CACERTREQUEST
Тэг |
Наименование |
Длина, байт |
Количество |
Примечание |
0x04 |
KeyId |
16 |
1-2 |
Идентификатор ключа УЦ (идентификаторы известных блоку тахографической информации ключей УЦ) |
В.1.3.5 CACERTCHAIN
Тэг 0x35. Это сообщение выдается сервером в ответ на сообщение тахографа CACERTREQUES.
Тэги с сертификатами УЦ, составляющими цепочку сертификатов, которые необходимо передать в блок тахографической информации в том порядке, в каком они присланы сервером, содержащиеся в сообщении CACERTCHAIN приведены в таблице В.7.
Таблица В.7 - Тэги с сертификатами УЦ, содержащиеся в сообщении CACERTCHAIN
Тэг |
Наименование |
Длина, байт |
Количество |
Примечание |
0x01 |
Сертификат УЦ аутентификации |
До 3000 |
1 и более |
Передаются в том порядке, в котором должны быть переданы в блок тахографической информации на проверку |
В.1.3.6 INITSESSION
Тэг 0x36. Это сообщение выдается тахографом для динамической аутентификации.
Сообщение INITSESSION состоит из последовательности TLV-структур, приведенных в таблице В.8.
Таблица В.8 - Последовательности TLV-структур сообщения INITSESSION
Тэг |
Наименование |
Длина, байт |
Количество |
Примечание |
0x01 |
Сертификат |
До 3000 |
1 |
Сертификат открытого ключа блока тахографической информации для аутентификации (СКС) |
0x05 |
Random |
16 |
1 |
Случайное число блока тахографической информации (RNDKC) |
0x07 |
S |
64 |
1 |
Криптограмма блока тахографической информации |
В.1.3.7 CONFIRMSESSION
Тэг 0x37. Это сообщение выдается сервером в ответ на сообщение тахографа INITSESSION для динамической аутентификации.
Структура сообщения CONFIRMSESSION, формируемая сервером в ответ на сообщение тахографа INITSESSION для динамической аутентификации, приведена в таблице В.9.
Таблица В.9 - Структура сообщения CONFIRMSESSION
Тэг |
Наименование |
Длина, байт |
Количество |
Примечание |
0x08 |
Н |
10 |
1 |
Н = CurTime||U Текущее время сервера CurTime (4 байта) и Проверочная криптограмма сервера U (6 байт) |
В.1.3.8 MESSAGE
Тэг 0x39. Это сообщение выдается сервером и тахографом.
Содержимым данного пакета являются открытые или зашифрованные содержательные данные (Payload).
Открытые содержательные данные передаются в тэгах 0x20.
Зашифрованные содержательные данные передаются в тэгах 0хА0.
Последовательности TLV-структур сообщения MESSAGE приведены в таблице В.10.
Таблица В.10 - Последовательности TLV-структур сообщения MESSAGE
Тэг |
Наименование |
Длина, байт |
Количество |
Примечание |
0x20 |
Payload |
До 4000 |
0 - если есть 0хА0 1 - если нет |
Открытые содержательные данные. Если в пакете нет содержательных данных, должно присутствовать это поле нулевой длины |
0хА0 |
Payload_enc |
До 4000 |
0 - если есть 0x20 1 - если нет |
Зашифрованные содержательные данные. Если в пакете нет содержательных данных, должно присутствовать это поле нулевой длины |
0x10 |
SerialNo 1) |
4 |
1 |
Порядковый номер сообщения (в порядке его генерации) |
0x11 |
Confirmed |
4 |
1 |
Номер последнего сообщения, полученного отправителем данного |
0x12 |
RetransmitReq |
1 |
0-1 |
Запрос повторной передачи предыдущего пакета с кодом причины запроса |
0x13 |
IDProcessingSys |
4 |
0-1 |
Код/идентификатор системы сбора и обработки данных |
0x14 |
VPProcessingSys |
1 |
0-1 |
Версия протокола обмена с системой сбора и обработки данных |
0x15 |
UTISerial |
16(32) |
0-1 |
Серийный (серийный и учетный) номер блока тахографической информации |
0x1С |
Diagnostic |
1 |
0-1 |
Диагностические данные для сервера |
0x1D |
Priority |
1 |
0-1 |
Уровень приоритета сообщения |
0x1F |
Source |
1 |
0-1 |
Источник данных |
0x1Е |
MAC |
6 |
1 |
|
1) Тахограф ведет непрерывный учет сформированных сообщений. Каждому сформированному сообщению присваивается последовательный порядковый номер. При обрыве и восстановлении или установлении нового соединения нумерация продолжается. |
В.1.3.9 Поле "Источник данных" (Source)
Сообщение Source может содержать необязательное поле источника содержательных данных сообщения. Если в сообщении отсутствует поле источника, считается, что сообщение содержит данные или подтверждение сервера на данные, подготовленные блоком тахографической информации.
Кодировка источника данных приведена в таблице В.11.
Таблица В.11 - Кодировка источника данных (Source)
b8-b4 |
b3 |
b2 |
b1 |
Источник данных |
0 |
- |
- |
x |
0 - данные блока/для блока тахографической информации 1 - данные тахографа/для тахографа |
0 |
0 |
1 |
- |
Запрос сервера на передачу данных тахографу |
0 |
1 |
0 |
- |
Запрос сервера на передачу данных блоку тахографической информации |
0 |
- |
- |
- |
RFU |
В.2 Формирование сообщения MESSAGE
Сообщение MESSAGE формируется в следующем порядке:
- формируется пакет данных сообщения;
- формируется тело сообщения, к полученному пакету данных дописывается тэг ('39') и длина;
- формируется сообщение, телу сообщения добавляется заголовок и в таком виде сообщение передается на сервер/тахограф.
В.3 Формирование пакета данных сообщения MESSAGE
В.3.1 Формат содержательных данных (MESSAGE)
Данные, подготовленные блоком тахографической информации, тахографом или сервером, передаются в открытом виде в тэгах 0x20 или в зашифрованном виде в тэгах 0хА0. Структура 0х20/0хА0 представлена в таблице В.12.
Таблица В.12 - Структура 0х20/0хА0
Тэг |
Наименование |
Длина, байт |
Примечание |
0x20/0хА0 |
Payload |
До 4000 |
Содержательные данные (открытые или зашифрованные) |
В.3.2 Формирование пакета данных сообщения MESSAGE тахографом
Если данные для выгрузки присутствуют, тахограф формирует пакет с содержательными данными (открытыми - тэг 0x20 или зашифрованными - тэг 0хА0), приведенными в таблице В.13.
Таблица В.13 - Пакет с содержательными данными сообщения MESSAGE, сформированного тахографом
Тэг |
Наименование |
Длина, байт |
Примечание |
0x20/0хА0 |
Payload |
До 1024 |
Содержательные данные, подготовленные блоком тахографической информации |
0x10 |
SerialNo |
4 |
Порядковый номер сообщения (в порядке его генерации) |
0x11 |
Confirmed |
4 |
Номер последнего сообщения, полученного отправителем данного, или '00 00 00 00' для первого сообщения |
0x13 |
IDProcessingSys |
4 |
Код/идентификатор системы сбора и обработки данных |
0x14 |
VPProcessingSys |
1 |
Версия протокола обмена с системой сбора и обработки данных |
0x15 |
UTISerial |
16(32) |
Серийный (серийный и учетный) номер блока тахографической информации |
0x1С |
Diagnostic |
1 |
Диагностические данные для сервера |
0x1F |
Source |
1 |
Источник данных: 0 - блок тахографической информации, 1 - тахограф. По умолчанию 0 |
0x1Е |
MAC |
6 |
Имитовставка |
В.3.3 Формирование пакета данных сообщения MESSAGE сервером
Сервер передает сообщение с подтверждением (открытыми - тэг 0x20 или зашифрованными - тэг 0хА0 данными). Пакет с содержательными данными сообщения MESSAGE, сформированного сервером, представлен в таблице В.14.
Таблица В.14 - Пакет с содержательными данными сообщения MESSAGE, сформированного сервером
Тэг |
Наименование |
Длина, байт |
Примечание |
0x20/0хА0 |
Payload |
До 1024 |
Подтверждение |
0x10 |
SerialNo |
4 |
Порядковый номер сообщения (в порядке его генерации) |
0x11 |
Confirmed |
4 |
Номер последнего сообщения, полученного от тахографа |
0x13 |
IDProcessingSys |
4 |
Код/идентификатор системы сбора и обработки данных |
0x14 |
VPProcessingSys |
1 |
Версия протокола обмена с системой сбора и обработки данных |
0x15 |
UTISerial |
16(32) |
Серийный (серийный и учетный) номер блока тахографической информации |
0x1F |
Source |
1 |
Источник данных |
0x1Е |
MAC |
6 |
Имитовставка |
В.4 Взаимодействия тахографов с системой обработки данных (СОД) периферийных устройств
В.4.1 Установка TCP соединения
Если у тахографа есть необходимость в передаче информации или тестирования канала связи:
- тахограф начинает процедуру TCP подключения. При неудачной попытке соединения выполняется процедура обработки ошибок;
- тестирование канала связи допускается при включении устройства и не чаще, чем один раз в час.
В.4.2 Общие положения TCP соединения
В.4.2.1 Общий тайм-аут на TCP соединение (TCP_INACTIVITY_TO), по которому не передаются пользовательские данные в любом направлении, - 595 с.
В.4.2.2 Если нет передачи данных в течение этого периода, СОД закрывает TCP соединение. По истечении этого периода тахограф должен разорвать соединение в соответствии с В.4.3.
В.4.2.3 Любая передача пользовательских данных обнуляет таймер TCP_INACTIVITY_TO.
В.4.2.4 Минимальный таймаут на ожидание любого ответа от сервера на этапе установки защищенного соединения (SEC_CONN_INIT_READ_TO) - 5 с.
В.4.2.5 После установки защищенного соединения тахограф посылает данные в СОД по каналу. Время ожидания ответа от процессинга (SEC_CONN_DATA_RSP_READ_TO) - не менее 33 с.
В.4.3 Управление закрытием соединений
В.4.3.1 Если установленным соединением тахограф не пользуется в течение TCP_INACTIVITY_TO, то тахограф должен сам инициировать закрытие TCP соединения со своей стороны и не должен открывать новое соединение, если нет необходимости в этот момент передачи данных/запросов в СОД (или тестирования канала связи).
Примечание - После разрыва соединения тахограф должен выполнить процедуру завершения обмена с сервером.
В.4.3.2 Если соединение было принудительно закрыто со стороны сервера и у тахографа нет необходимости в этот момент в передаче данных/запросов в СОД, то тахограф не должен инициировать превентивное восстановление TCP соединения.
В.4.3.3 Если у тахографа есть необходимость в передаче информации, то ситуация с ошибкой передачи данных по TCP соединению в пределах TCP_INACTIVITY_TO трактуется как ошибка взаимодействия, и дальше тахограф должен следовать процедуре обработки ошибок.
В.4.4 Процедура обработки ошибок
В.4.4.1 Сразу после возникновения ошибки по TCP тахограф делает паузу в 3 с и пытается повторно до трех раз установить TCP соединение, каждый раз с паузой в 3 с межу попытками. В случае невозможности подключения после трех попыток тахограф переходит к Б.5.4.2.
В.4.4.2 В случае четвертой и последующих попыток тахограф разрывает соединение, делает паузу (RECONNECT_WAIT_TO) в 30+random (1...60) с и, если у тахографа есть необходимость в передаче информации в СОД, то снова выполняет попытку подключения, как описано в В.4.4.1. Если подключение по TCP/IP успешно, то тахограф продолжает обмен в соответствии с общими положениями.
В.4.4.3 Если произошла любая программная ошибка в ПО тахографа, или выявлена ошибка в полученных данных от периферийного устройства или от блока тахографической информации, или выявлена протокольная ошибка на интерфейсе блок тахографической информации - тахограф, то при наличии необходимости в передаче информации в СОД тахограф всегда выполняет паузу в 15 с.
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.