---
title: "\"Р 1323565.1.044-2022. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование российских криптографических алгоритмов в протоколе штампов времени (TSP)\""
number: "Р 1323565.1.044-2022"
issuer: "Федеральное агентство по техническому регулированию и метрологии"
status: действует
canonical: "https://bukva.ai/docs/r-1323565-1-044-2022"
---

## "Р 1323565.1.044-2022. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование российских криптографических алгоритмов в протоколе штампов времени (TSP)"

# "Р 1323565.1.044-2022. Рекомендации по стандартизации. Информационная технология. Криптографическая защита информации. Использование российских криптографических алгоритмов в протоколе штампов времени (TSP)"

(утв. и введены в действие Приказом Росстандарта от 29.11.2022 N 1379-ст)

> [!IMPORTANT]
> Документ [введен](#p100009) в действие с 01.01.2023.


<div align="right">

<a id="p100001"></a>Утверждены и введены в действие<br>
Приказом Федерального агентства

</div>

по техническому регулированию

<div align="center">

**и метрологии**<br>
**от 29 ноября 2022 г. N 1379-ст**

<a id="p100002"></a>**РЕКОМЕНДАЦИИ ПО СТАНДАРТИЗАЦИИ**

<a id="p100003"></a>**ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ**

<a id="p100004"></a>**КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ИНФОРМАЦИИ**

<a id="p100005"></a>**ИСПОЛЬЗОВАНИЕ РОССИЙСКИХ КРИПТОГРАФИЧЕСКИХ АЛГОРИТМОВ**<br>
**В ПРОТОКОЛЕ ШТАМПОВ ВРЕМЕНИ (TSP)**

<a id="p100006"></a>**Information technology. Cryptographic data security. The use**<br>
**of the Russian cryptographic algorithms**

</div>

in the Time-Stamp Protocol (TSP)

<a id="p100007"></a>Р 1323565.1.044-2022

<div align="right">

<a id="p100008"></a>ОКС 35.030

</div>


<a id="p100009"></a>Дата введения
1 января 2023 года

<a id="p100010"></a>Предисловие

<a id="p100011"></a>1 РАЗРАБОТАНЫ Обществом с ограниченной ответственностью "КРИПТО-ПРО" (ООО "КРИПТО-ПРО")
<a id="p100012"></a>2 ВНЕСЕНЫ Техническим комитетом по стандартизации ТК 026 "Криптографическая защита информации"
<a id="p100013"></a>3 УТВЕРЖДЕНЫ И ВВЕДЕНЫ В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 29 ноября 2022 г. N 1379-ст

<div align="center">

<a id="p100014"></a>**4 ВВЕДЕНЫ ВПЕРВЫЕ**

</div>


<a id="p100015"></a>Правила применения настоящих рекомендаций установлены в статье 26 Федерального закона от 29 июня 2015 г. N 162-ФЗ "О стандартизации в Российской Федерации". Информация об изменениях к настоящим рекомендациям публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящих рекомендаций соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.rst.gov.ru)

<a id="p100016"></a>Введение

<a id="p100017"></a>В случае если необходимо подтвердить существование каких-либо данных до определенного момента времени, используется служба штампов времени. Служба штампов времени удостоверяет существование элемента данных при помощи предоставления соответствующих доказательств, называемых штампом времени.
<a id="p100018"></a>Настоящие рекомендации описывают формат штампа времени и устанавливают правила использования в нем российских криптографических алгоритмов подписи и хэширования. Получение штампа в процессе взаимодействия со службой штампов времени проводится с использованием протокола TSP.
<a id="p100019"></a>Настоящие рекомендации не устанавливают полный набор требований безопасности к службе штампов времени. При этом необходимо считать, что службы штампов времени доводят до своих потенциальных клиентов (запрашивающих сторон) информацию о том, что применяемые ими регламенты обеспечивают точное создание штампов, а клиенты будут прибегать к услугам служб, только если посчитают, что регламенты службы штампов времени полностью отвечают требованиям клиентов.
<a id="p100020"></a>**Примечание - Основная часть настоящих рекомендаций дополнена [приложениями А](#p100425) - [Г](#p100552).**

<a id="p100021"></a>1 Область применения

<a id="p100022"></a>Служба штампов времени ставит штампы времени на данные для гарантии того, что эти данные существовали до определенного момента времени. Это требуется, например, чтобы проверить, что электронная подпись (подпись) сообщения была создана до того момента, когда соответствующий сертификат был аннулирован, что позволяет использовать аннулированный сертификат ключа проверки подписи для проверки подписей, созданных до момента аннулирования.
<a id="p100023"></a>Служба штампов времени также может обозначать время подачи документа, когда крайний срок является критичным, или использоваться для обозначения времени транзакции для записей в журнале. Возможны и другие способы применения службы штампов времени, удовлетворяющие аналогичные потребности.
<a id="p100024"></a>Штамп времени может являться или входить в состав метки доверенного времени, определенной в [[1]](#p101175).

<a id="p100025"></a>2 Нормативные ссылки

<a id="p100026"></a>В настоящих рекомендациях использованы нормативные ссылки на следующие документы:
<a id="p100027"></a>ГОСТ Р ИСО/МЭК 8824 Информационная технология. Взаимосвязь открытых систем. Спецификация абстрактно-синтаксической нотации версии один (АСН.1)
<a id="p100028"></a>**[ГОСТ Р 34.10-2012](https://bukva.ai/docs/gost-r-34-10-2012) Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи**
<a id="p100029"></a>[ГОСТ Р 34.11-2012](https://bukva.ai/docs/gost-r-34-11-2012) Информационная технология. Криптографическая защита информации. Функция хэширования
<a id="p100030"></a>[Р 1323565.1.020](https://bukva.ai/docs/r-1323565-1-020-2020) Информационная технология. Криптографическая защита информации. Использование криптографических алгоритмов в протоколе безопасности транспортного уровня (TLS 1.2)
<a id="p100031"></a>[Р 1323565.1.023-2018](https://bukva.ai/docs/r-1323565-1-023-2018) Информационная технология. Криптографическая защита информации. Использование алгоритмов ГОСТ Р 34.10-2012, ГОСТ Р 34.11-2012 в сертификате, списке аннулированных сертификатов (CRL) и запросе на сертификат PKCS #10 инфраструктуры открытых ключей X.509
<a id="p100032"></a>[Р 1323565.1.025-2019](https://bukva.ai/docs/r-1323565-1-025-2019) Информационная технология. Криптографическая защита информации. Форматы сообщений, защищенных криптографическими методами
<a id="p100033"></a>[Р 1323565.1.030](https://bukva.ai/docs/r-1323565-1-030-2020) Информационная технология. Криптографическая защита информации. Использование криптографических алгоритмов в протоколе безопасности транспортного уровня (TLS 1.3)
<a id="p100034"></a>*Примечание* - При пользовании настоящими рекомендациями целесообразно проверить действие ссылочных документов в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодному информационному указателю "Национальные стандарты", который опубликован по состоянию на 1 января текущего года, и по выпускам ежемесячного информационного указателя "Национальные стандарты" за текущий год. Если заменен ссылочный документ, на который дана недатированная ссылка, то рекомендуется использовать действующую версию этого документа с учетом всех внесенных в данную версию изменений. Если заменен ссылочный документ, на который дана датированная ссылка, то рекомендуется использовать версию этого документа с указанным выше годом утверждения (принятия). Если после утверждения настоящих рекомендаций в ссылочный документ, на который дана датированная ссылка, внесено изменение, затрагивающее положение, на которое дана ссылка, то это положение рекомендуется применять без учета данного изменения. Если ссылочный документ отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.

<a id="p100035"></a>3 Термины, определения и сокращения


#### <a id="p100036"></a>3.1 Термины и определения

<a id="p100037"></a>В настоящих рекомендациях применены следующие термины с соответствующими определениями.
<a id="p100038"></a>3.1.1 доверенная третья сторона: Организация или служба, предоставляющая одну или более услуг безопасности и которой доверяют все участники в процессе некоторого взаимодействия, требующего защиты.
<a id="p100039"></a>3.1.2 служба штампов времени (Time Stamping Authority, TSA): Доверенная третья сторона, подтверждающая факт формирования некоторого элемента данных до определенного момента времени.
<a id="p100040"></a>3.1.3 штамп времени: Элемент данных, служащий для доказательства того, что другой элемент данных существовал до определенного момента времени.
<a id="p100041"></a>3.1.4 запрашивающая сторона: Организация, служба или субъект (пользователь), которым требуется подтверждение факта формирования некоторого элемента данных до определенного момента времени.
<a id="p100042"></a>3.1.5

| <a id="p100043"></a><a id="p100044"></a><a id="p100045"></a>электронная цифровая подпись (signature): Строка бит, полученная в результате процесса формирования подписи.<br>Примечание - В настоящих рекомендациях в целях сохранения терминологической преемственности по отношению к действующим отечественным нормативным документам и опубликованным научно-техническим изданиям установлено, что термины "электронная подпись", "цифровая подпись" и "электронная цифровая подпись" являются синонимами.<br>[ГОСТ Р 34.10-2012, [статья 3.1.15](https://bukva.ai/docs/gost-r-34-10-2012#p100081)] |
| --- |

<a id="p100046"></a>3.1.6

| <a id="p100047"></a><a id="p100048"></a>ключ подписи (signature key): Элемент секретных данных, специфичный для субъекта и используемый только данным субъектом в процессе формирования цифровой подписи.<br>[ГОСТ Р 34.10-2012, [статья 3.1.2](https://bukva.ai/docs/gost-r-34-10-2012#p100038)] |
| --- |

<a id="p100049"></a>3.1.7

| <a id="p100050"></a><a id="p100051"></a>ключ проверки подписи (verification key): Элемент данных, математически связанный с ключом подписи и используемый проверяющей стороной в процессе проверки цифровой подписи.<br>[ГОСТ Р 34.10-2012, [статья 3.1.3](https://bukva.ai/docs/gost-r-34-10-2012#p100041)] |
| --- |

<a id="p100052"></a>3.1.8

| <a id="p100053"></a><a id="p100054"></a><a id="p100055"></a><a id="p100056"></a><a id="p100057"></a><a id="p100058"></a>хэш-функция (collision-resistant hash-function): Функция, отображающая строки бит в строки бит фиксированной длины и удовлетворяющая следующим свойствам:<br>1) по данному значению функции сложно вычислить исходные данные, отображаемые в это значение;<br>2) для заданных исходных данных сложно вычислить другие исходные данные, отображаемые в то же значение функции;<br>3) сложно вычислить какую-либо пару исходных данных, отображаемых в одно и то же значение.<br>Примечание - В настоящих рекомендациях в целях сохранения терминологической преемственности с действующими отечественными нормативными документами и опубликованными научно-техническими изданиями установлено, что термины "хэш-функция", "криптографическая хэш-функция", "функция хэширования" и "криптографическая функция хэширования" являются синонимами.<br>[ГОСТ Р 34.11-2012, [статья 3.1.6](https://bukva.ai/docs/gost-r-34-11-2012#p100053)] |
| --- |

<a id="p100059"></a>3.1.9
<a id="p100060"></a>хэш-код (hash-code): Строка бит, являющаяся выходным результатом хэш-функции.
<a id="p100061"></a>*Примечание* - В настоящих рекомендациях в целях сохранения терминологической преемственности с действующими отечественными нормативными документами и опубликованными научно-техническими изданиями установлено, что термины "хэш-код", и "хэш-значение" являются синонимами.

<a id="p100062"></a>[ГОСТ Р 34.11-2012, [статья 3.1.5](https://bukva.ai/docs/gost-r-34-11-2012#p100050)]
<a id="p100063"></a>3.1.10 Всемирное координированное время; UTC: Временная шкала, основанная на секундах, определенная и рекомендованная Международным консультативным комитетом по радио и поддерживаемая Международным бюро мер и весов.
<a id="p100064"></a>**Примечание - По-другому называется "время зулу" и обозначается буквой Z.**


#### <a id="p100065"></a>3.2 Сокращения

<a id="p100066"></a>В настоящих рекомендациях применены следующие сокращения:

<div align="center">

<a id="p100067"></a>САС - список аннулированных сертификатов;

</div>

<a id="p100068"></a>MIME - многоцелевые расширения интернет-почты (Multipurpose Internet Mail Extensions);
<a id="p100069"></a>OID - строка или последовательность десятичных цифр, однозначно идентифицирующая объект (Object Identifier);
<a id="p100070"></a>TSA - служба штампов времени (Time Stamping Authority);
<a id="p100071"></a>TSP - протокол штампов времени (Time Stamp Protocol);
<a id="p100072"></a>TTP - доверенная третья сторона (Trusted third party);
<a id="p100073"></a>URI - унифицированный (единообразный) идентификатор ресурса (Uniform Resource Identifier);
<a id="p100074"></a>UTC - всемирное координированное время (Coordinated Universal Time).

<a id="p100075"></a>4 Обзор протокола TSP

<a id="p100076"></a>Протокол штампов времени (TSP) предназначен для установления факта существования данных до определенного момента времени. Для этого в рамках данного протокола осуществляется взаимодействие службы штампов времени (TSA) и запрашивающей стороны (C). Взаимодействие перечисленных участников заключается в формировании запроса к TSA и проверке ее ответа (см. [рисунок 1](#p100078)).

<a id="p100077"></a> ![рис. 1](https://i.bukva.ai/Jnopd6SD/img_0.png) 

<a id="p100078"></a>Рисунок 1 - Схема обмена сообщениями по протоколу TSP

<a id="p100079"></a>В первом сообщении обмена в рамках протокола TSP запрашивающая сторона посылает к службе штампов времени запрос на штамп времени TimeStampReq (см. [7.1](#p100154)). Во втором сообщении служба штампов времени отправляет запрашивающей стороне ответ TimeStampResp (см. [7.2](#p100188)), который содержит штамп времени или информацию об ошибке.
<a id="p100080"></a>Данные сообщения могут быть инкапсулированы в состав другого сообщения. Например, запрос к TSA может пересылаться в подписанном электронной подписью (подписанном) виде, для чего он помещается в сообщение формата CMS с типом содержимого signed-data, как это описано в Р 1323565.1.025-2019, [раздел 7](https://bukva.ai/docs/r-1323565-1-025-2019#p100105).
<a id="p100081"></a>Порядок формирования запроса описан в [5.1](#p100088). Порядок формирования ответа службой штампов времени описан в [5.2](#p100090). Порядок обработки данного ответа запрашивающей стороной описан в [5.3](#p100105).
<a id="p100082"></a>Штамп времени содержит подпись службы штампов времени. Соответствующий ключ проверки подписи содержится в сертификате данной службы. Требования к указанному сертификату и особенности его аннулирования описаны в [разделе 6](#p100116).
<a id="p100083"></a>Форматы запроса и ответа описаны в [разделе 7](#p100151).
<a id="p100084"></a>Требования к содержимому запроса и ответа при использовании российских криптографических алгоритмов подписи и хэширования описаны в [разделе 8](#p100323).
<a id="p100085"></a>Способы передачи запроса к TSA и получения ответа описаны в [разделе 9](#p100342).

<a id="p100086"></a>5 Порядок формирования и проверки штампов времени

<a id="p100087"></a>В данном разделе описан порядок формирования запрашивающей стороной запроса на штамп времени (см. [5.1](#p100088)), формирования штампа времени службой штампов времени (см. [5.2](#p100090)) и порядок обработки полученного штампа времени запрашивающей стороной (см. [5.3](#p100105)).

#### <a id="p100088"></a>5.1 Порядок формирования запроса к службе штампов времени

<a id="p100089"></a>Данные, для которых требуется получить штамп времени, хэшируются. Запрашивающая сторона помещает в запрос хэш-значение и идентификатор используемого алгоритма хэширования. Для последующей проверки актуальности ответа службы штампов времени в запрос может быть помещено число nonce (см. [7.1](#p100154)). Сформированный таким образом запрос отправляется в службу штампов времени.

#### <a id="p100090"></a>5.2 Порядок формирования штампа времени

<a id="p100091"></a>Служба штампов времени должна формировать штамп времени только при условии успешного завершения следующих проверок:
- <a id="p100092"></a>полученный запрос на штамп времени корректен и соответствует политике безопасности (регламенту) службы;
- <a id="p100093"></a>хэш-значение, для которого будет создан штамп времени, вычислено с использованием одной из возможных в соответствии с регламентом службы штампов времени хэш-функций;
- <a id="p100094"></a>длина хэш-значения, для которого будет создан штамп времени, соответствует длине, ожидаемой для данного алгоритма хэширования;
- <a id="p100095"></a>указанный в запросе идентификатор использованного алгоритма хэширования является одним из возможных в соответствии с регламентом службы штампов времени.
<a id="p100096"></a>Примечание - Службе штампов времени не требуется выполнять какие-либо дополнительные проверки хэш-значения, для которого будет создан штамп времени (кроме проверки длины данного хэш-значения, как это указано в предыдущем [пункте](#p100088)).

<a id="p100097"></a>В случае если указанные проверки прошли успешно, служба штампов времени должна сформировать штамп времени в соответствии со следующими требованиями:
- <a id="p100098"></a>использовать доверенный источник времени;
- <a id="p100099"></a>включать достоверное значение времени в каждый штамп;
- <a id="p100100"></a>включать уникальное целое число в каждый новый штамп;
- <a id="p100101"></a>включать в каждый штамп времени идентификатор политики безопасности (регламента), согласно которой он был создан;
<a id="p100102"></a>**- не включать в штампы времени какую-либо информацию, идентифицирующую запрашивающую сторону;**
- <a id="p100103"></a>подписывать каждый штамп времени ключом подписи, предназначенным специально для этой цели;
- <a id="p100104"></a>включать дополнительную информацию в штамп времени, если этого требует запрашивающая сторона, используя только те расширения, которые поддерживаются службой штампов времени. Если это невозможно, служба штампов времени должна ответить сообщением об ошибке.

#### <a id="p100105"></a>5.3 Порядок проверки штампа времени

<a id="p100106"></a>При получении ответа TimeStampResp (см. [7.2](#p100188)), запрашивающая сторона должна проверить содержание поля со статусом обращения. Если данное поле не сигнализирует об ошибке, запрашивающая сторона должна проверить различные поля в полученном ответе в соответствии с [7.2.2](#p100242). В частности, запрашивающая сторона должна убедиться в следующем:
- <a id="p100107"></a>штамп времени соответствует данным, для которых он был запрошен, а именно, содержит соответствующее хэш-значение и корректный идентификатор алгоритма хэширования;
- <a id="p100108"></a>штамп времени содержит корректный идентификатор сертификата службы штампов времени (см. [6.1](#p100117));
- <a id="p100109"></a>электронная подпись штампа времени действительна;
- <a id="p100110"></a>ответ службы штампов времени актуален. Запрашивающая сторона может проверить актуальность ответа, соотнеся его время с собственным доверенным источником времени, если источник существует, либо сравнив включенное в ответ случайное число со значением в запросе;
- <a id="p100111"></a>сертификат службы штампов времени соответствует требованиям, указанным в [6.1](#p100117);
- <a id="p100112"></a>сертификат службы штампов времени не прекратил действие и не был аннулирован (см. [6.2](#p100127));
- <a id="p100113"></a>штамп времени содержит подходящий (применимый для целей запрашивающей стороны) идентификатор политики безопасности (регламента), согласно которой был выдан штамп времени.
<a id="p100114"></a>*Примечание* - Настоящие рекомендации не устанавливают строгую последовательность проверок полученного от службы штампов времени ответа. Данные проверки могут быть выполнены в произвольном порядке.

<a id="p100115"></a>Если любая из вышеперечисленных проверок завершилась неудачей, штамп времени следует отклонить.

<a id="p100116"></a>6 Сертификат службы штампов времени


#### <a id="p100117"></a>6.1 Требования к сертификату службы штампов времени

<a id="p100118"></a>Служба штампов времени должна подписывать каждый штамп ключом подписи, предназначенным специально для этой цели. Служба штампов времени может иметь различные ключи подписи, например для соответствия разным регламентам, алгоритмам, различным размерам ключей подписи или для увеличения скорости обработки запросов.
<a id="p100119"></a>Каждый сертификат TSA, соответствующий используемому ключу подписи, должен иметь одно расширение ExtendedKeyUsage, определенное в [[2]](#p101177), подпункт 4.2.1.12, содержащее последовательность ExtKeyUsageSyntax с единственным элементом KeyPurposeID со значением id-kp-timeStamping. При этом настоящие рекомендации устанавливают, что данное расширение должно быть критичным.
<a id="p100120"></a>Также расширение KeyUsage сертификата службы штампов времени должно содержать только флаги digitalSignature и/или nonRepudiation, описанные в [[2]](#p101177), подпункт 4.2.1.3.
<a id="p100121"></a>Примечание - Критичность расширения сертификата определяется наличием флага critical (см. [[2]](#p101177), подраздел 4.1), указывающего на важность содержащейся в расширении информации. Если запрашивающая сторона не распознает расширение, помеченное как критичное, ей следует отклонить сертификат, содержащий данное расширение.

<a id="p100122"></a>Следующий идентификатор определяет KeyPurposeID со значением id-kp-timeStamping.
<a id="p100123"></a>id-kp-timeStamping OBJECT IDENTIFIER ::= {iso(1)
<a id="p100124"></a>                identified-organization(3) dod(6)
<a id="p100125"></a>                internet(1) security(5) mechanisms(5) pkix(7)
<a id="p100126"></a>                kp (3) timestamping (8)}

#### <a id="p100127"></a>6.2 Аннулирование сертификата службы штампов времени

<a id="p100128"></a>Настоящие рекомендации устанавливают необходимость аннулировать сертификат службы штампов времени в следующих случаях:
- <a id="p100129"></a>если ключ подписи службы штампов времени был скомпрометирован;
- <a id="p100130"></a>если ключ подписи службы штампов времени не был скомпрометирован, но служба штампов времени больше не используется.
<a id="p100131"></a>Если ключ подписи службы штампов времени был скомпрометирован, соответствующий ему сертификат необходимо аннулировать.
<a id="p100132"></a>В САС для аннулированного сертификата службы штампов времени может присутствовать расширение reasonCode, описанное в [[2]](#p101177), пункт 5.3.1. При этом в нем должна быть указана следующая причина аннулирования сертификата CRLReason:
<a id="p100133"></a>CRLReason ::= ENUMERATED {
<a id="p100134"></a>   keyCompromise           (1),
<a id="p100135"></a>   -- сертификат аннулирован в связи с компрометацией ключа }
<a id="p100136"></a>Все штампы времени, созданные после указанного в САС момента аннулирования сертификата в связи с компрометацией ключа, следует считать недействительными.
<a id="p100137"></a>**Штампы времени, созданные до указанного момента аннулирования сертификата, могут быть признаны действительными при наличии возможности подтвердить подлинность данных. Например, если в журналах аудита службы штампов времени присутствуют сведения, достаточные для различения подлинных и фальсифицированных штампов. Другим способом избежать последствий компрометации ключа и подтвердить подлинность исходных данных является использование штампа времени, созданного для тех же данных другой службой, ключ подписи которой не был скомпрометирован.**
<a id="p100138"></a>Если ключ подписи службы штампов времени не был скомпрометирован, но служба штампов времени больше не используется, ее сертификат необходимо аннулировать. В этом случае в САС для аннулированного сертификата службы штампов времени может присутствовать расширение reasonCode, описанное в [[2]](#p101177), пункт 5.3.1. При этом возможны следующие причины аннулирования сертификата CRLReason:
<a id="p100139"></a>CRLReason ::= ENUMERATED {
<a id="p100140"></a>   unspecified             (0),
<a id="p100141"></a>   **-- сертификат аннулирован без указания причины**
<a id="p100142"></a>   affiliationChanged      (3),
<a id="p100143"></a>   -- сертификат аннулирован в связи с изменением принадлежности
<a id="p100144"></a>   superseded              (4),
<a id="p100145"></a>   -- сертификат аннулирован в связи с заменой
<a id="p100146"></a>   cessationOfOperation    (5)
<a id="p100147"></a>   -- сертификат аннулирован в связи с прекращением работы
   -- службы
<a id="p100148"></a>   }
<a id="p100149"></a>В случае присутствия в САС расширения reasonCode с одной из указанных причин аннулирования, следует считать все штампы времени, созданные до момента аннулирования данного сертификата, действительными, а все штампы времени, созданные после - недействительными.
<a id="p100150"></a>В случае отсутствия расширения reasonCode необходимо считать ключ подписи службы штампов времени скомпрометированным и проверять штампы времени так, как это описано ранее в данном разделе.

<a id="p100151"></a>7 Форматы запроса и ответа

<a id="p100152"></a>В данном разделе приведено описание формата запроса к службе штампов времени (см. [7.1](#p100154)) и ее ответа (см. [7.2](#p100188)) при использовании российских криптографических алгоритмов подписи и хэширования.
<a id="p100153"></a>Описание используемых структур представлено в абстрактно-синтаксической нотации версии 1 (АСН.1), определенной в ГОСТ Р ИСО/МЭК 8824.

#### <a id="p100154"></a>7.1 Формат запроса

<a id="p100155"></a>Запрос к службе штампов времени представляет собой структуру типа TimeStampReq и выглядит следующим образом.
<a id="p100156"></a>TimeStampReq ::= SEQUENCE {
<a id="p100157"></a>version                      INTEGER { v1(1) },
<a id="p100158"></a>messageImprint               MessageImprint,
<a id="p100159"></a>-- OID алгоритма хэширования и хэш-значение от данных, для
-- которых требуется штамп времени
<a id="p100160"></a>reqPolicy             TSAPolicyId              OPTIONAL,
<a id="p100161"></a>nonce                 INTEGER                  OPTIONAL,
<a id="p100162"></a>certReq               BOOLEAN                  DEFAULT FALSE,
<a id="p100163"></a>extensions            [0] IMPLICIT Extensions  OPTIONAL }
<a id="p100164"></a>Поля структуры TimeStampReq должны быть заполнены в соответствии со следующим описанием:


| <a id="p100165"></a>version | <a id="p100166"></a>- Поле version описывает версию запроса штампа времени. В соответствии с настоящими рекомендациями поле version должно иметь значение 1. |
| --- | --- |
| <a id="p100167"></a>messageImprint | <a id="p100168"></a><a id="p100169"></a><a id="p100170"></a><a id="p100171"></a><a id="p100172"></a><a id="p100173"></a><a id="p100174"></a>- Поле messageImprint представляет собой структуру типа MessageImprint. Структура MessageImprint выглядит следующим образом.<br>MessageImprint ::= SEQUENCE {<br>hashAlgorithm              AlgorithmIdentifier,<br>hashedMessage              OCTET STRING }<br>Поле hashAlgorithm структуры MessageImprint представляет собой структуру типа AlgorithmIdentifier, определенную в Р 1323565.1.023-2018, [пункт 5.1.1](https://bukva.ai/docs/r-1323565-1-023-2018#p100174) и содержащую идентификатор используемого алгоритма хэширования. Порядок включения в данную структуру идентификаторов российских криптографических алгоритмов хэширования описан в [8.2](#p100332).<br>Служба штампов времени должна проверить, что хэш-значение, для которого будет создан штамп времени, вычислено с использованием одной из возможных в соответствии с регламентом службы штампов времени хэш-функций. Если при проверке произошла ошибка, TSA должна отказать в выдаче штампа времени, вернув сообщение со значением badAlg в поле failInfo структуры PKIStatusInfo (см. [7.2.1.3](#p100222)).<br>Поле hashedMessage структуры MessageImprint должно содержать хэш-значение от данных, для которых требуется штамп времени. Хэш-значение представляется в виде строки октетов (OCTET STRING). Его длина должна совпадать с длиной хэш-значения, установленной для используемого алгоритма хэширования. Если длина полученного хэш-значения не соответствует длине, определенной в алгоритме хэширования, идентификатор которого указан в поле AlgorithmIdentifier, служба штампов времени должна отказать в выдаче штампа времени, вернув сообщение со значением badDataFormat в поле failInfo структуры PKIStatusInfo (см. [7.2.1.3](#p100222)). |
| <a id="p100175"></a>reqPolicy | <a id="p100176"></a><a id="p100177"></a>- Поле reqPolicy, если оно присутствует, имеет тип TSAPolicyId и обозначает регламент службы штампов времени, согласно которому следует выдать TimeStampToken. TSAPolicyId определяется следующим образом.<br>TSAPolicyId ::= OBJECT IDENTIFIER |
| <a id="p100178"></a>nonce | <a id="p100179"></a><a id="p100180"></a>- Поле nonce, если оно присутствует, имеет тип INTEGER и позволяет клиенту проверить актуальность ответа, когда локальное время недоступно. Значение nonce - это случайное число, выбранное из множества мощностью не менее 264 в соответствии с равновероятным распределением независимо от любых других параметров протокола. В случае его использования то же значение nonce должно быть включено в ответ, иначе ответ должен быть отклонен.<br>Примечание - В случае отсутствия у запрашивающей стороны локального источника времени, а также отсутствия поля nonce в запросе TimeStampReq протокол TSP не обеспечивает защиту от атак повтора, в результате которых штамп времени, выданный ранее для одного запроса, может быть признан корректным для другого запроса. |
| <a id="p100181"></a>certReq | <a id="p100182"></a><a id="p100183"></a>- Поле certReq имеет тип BOOLEAN. Если поле certReq присутствует и имеет значение "true", сертификат ключа проверки подписи службы штампов времени должен быть помещен в поле certificates в структуре SignedData ответа TimeStampResp (см. [7.2.2](#p100242)). Данное поле может содержать и другие сертификаты.<br>Если поле certReq отсутствует или присутствует и имеет значение "false", тогда поле certificates в ответе службы штампов времени должно отсутствовать. |
| <a id="p100184"></a>extensions | <a id="p100185"></a><a id="p100186"></a>- Поле extensions (расширения) имеет тип Extensions и позволяет добавить дополнительную информацию в запрос. Поле extensions описано в [[3]](#p101180).<br>Если расширение используется запрашивающей стороной и не распознается службой штампов времени, то, вне зависимости от того, критично оно или нет, служба не должна выдавать штамп, а должна вернуть сообщение со значением unacceptedExtension в поле failInfo структуры PKIStatusInfo (см. [7.2.1.3](#p100222)). |


<a id="p100187"></a>Запрос штампа времени не должен содержать информации, идентифицирующей запрашивающую сторону (см. [5.2](#p100090)), поскольку эта информация не проверяется службой штампов времени. В случае если требуется идентификация или аутентификация запрашивающей стороны, необходимо использовать иные способы идентификации или аутентификации (например, инкапсулирование запроса в структуру ContentInfo, как это описано в [Р 1323565.1.025](https://bukva.ai/docs/r-1323565-1-025-2019), или аутентификацию в рамках взаимодействия по протоколу TLS (см. [Р 1323565.1.020](https://bukva.ai/docs/r-1323565-1-020-2020), [Р 1323565.1.030](https://bukva.ai/docs/r-1323565-1-030-2020)).

#### <a id="p100188"></a>7.2 Формат ответа

<a id="p100189"></a>Ответ службы штампов времени представляет собой структуру TimeStampResp и выглядит следующим образом.
<a id="p100190"></a>TimeStampResp ::= SEQUENCE {
<a id="p100191"></a>   status                  PKIStatusInfo,
<a id="p100192"></a>   timeStampToken          TimeStampToken     OPTIONAL }
<a id="p100193"></a>Поле status представляет собой структуру типа PKIStatusInfo, описанную в [7.2.1](#p100195).
<a id="p100194"></a>Поле timeStampToken представляет собой структуру типа TimeStampToken, описанную в [7.2.2](#p100242).

##### <a id="p100195"></a>7.2.1 Структура PKIStatusInfo

<a id="p100196"></a>Структура PKIStatusInfo определена в [[4]](#p101183), пункт 5.2.3 и содержит информацию о статусе запроса к службе штампов времени. Структура PKIStatusInfo выглядит следующим образом.
<a id="p100197"></a>PKIStatusInfo ::= SEQUENCE {
<a id="p100198"></a>   status        PKIStatus,
<a id="p100199"></a>   statusString  PKIFreeText     OPTIONAL,
<a id="p100200"></a>   failInfo      PKIFailureInfo  OPTIONAL }
<a id="p100201"></a>Поле status имеет тип PKIStatus, описанный в [7.2.1.1](#p100204).
<a id="p100202"></a>Поле statusString имеет тип PKIFreeText, описанный в [7.2.1.2](#p100220).
<a id="p100203"></a>Поле failInfo имеет тип PKIFailureInfo, описанный в [7.2.1.3](#p100222).

###### <a id="p100204"></a>7.2.1.1 Тип PKIStatus

<a id="p100205"></a>Тип PKIStatus структуры PKIStatusInfo, определенный в [[4]](#p101183), пункт 5.2.3, представляет собой числовое значение, определяющее статус службы штампов времени. Если значение равно 0 или 1, штамп времени TimeStampToken должен присутствовать. Если присутствует иное значение (кроме 0 или 1), штамп времени TimeStampToken не должен присутствовать.
<a id="p100206"></a>Служба штампов времени должна поддерживать только следующие возможные статусы:
<a id="p100207"></a>PKIStatus ::= INTEGER {
<a id="p100208"></a>   granted                (0),
<a id="p100209"></a>   -- когда PKIStatus содержит значение 0, TimeStampToken
   -- присутствует, как и запрашивалось.
<a id="p100210"></a>   grantedWithMods        (1),
<a id="p100211"></a>   -- когда PKIStatus содержит значение 1, TimeStampToken
   -- присутствует с изменениями.
<a id="p100212"></a>   rejection              (2),
<a id="p100213"></a>   -- штамп времени не получен, причина указана в информационном
   -- сообщении
<a id="p100214"></a>   waiting                (3),
<a id="p100215"></a>   -- запрос штампа времени еще не обработан, дополнительная
   -- информация ожидается позже.
<a id="p100216"></a>   revocationWarning      (4),
<a id="p100217"></a>   -- это сообщение предупреждает о том, что аннулирование
   -- неизбежно
<a id="p100218"></a>   revocationNotification (5)
<a id="p100219"></a>   -- уведомление о том, что аннулирование имело место }

###### <a id="p100220"></a>7.2.1.2 Тип PKIFreeText

<a id="p100221"></a>Поле statusString структуры PKIStatusInfo имеет тип PKIFreeText, определенный в [[4]](#p101183), пункт 5.1.1. Данное поле является необязательным и содержит причину отклонения запроса штампа времени в виде текста, например "messageImprint field is not correctly formatted" (поле messageImprint отформатировано некорректно).

###### <a id="p100222"></a>7.2.1.3 Тип PKIFailureInfo

<a id="p100223"></a>Поле failInfo структуры PKIStatusInfo имеет тип PKIFailureInfo, определенный в [[4]](#p101183), пункт 5.2.3. Данное поле является необязательным и представляет собой числовое значение, определяющее тип произошедшей ошибки. Если TimeStampToken отсутствует, PKIFailureInfo показывает причину отклонения запроса штампа времени.
<a id="p100224"></a>Служба штампов времени должна поддерживать только следующие возможные значения:
<a id="p100225"></a>PKIFailureInfo ::= BIT STRING {
<a id="p100226"></a>   badAlg               (0),
<a id="p100227"></a>   -- нераспознанный или неподдерживаемый идентификатор
   -- алгоритма
<a id="p100228"></a>   badRequest           (2),
<a id="p100229"></a>   -- запрос не разрешен или не поддерживается
<a id="p100230"></a>   badDataFormat        (5),
<a id="p100231"></a>   -- отправленные данные имеют неверный формат
<a id="p100232"></a>   timeNotAvailable    (14),
<a id="p100233"></a>   -- источник времени в службе штампов времени недоступен
<a id="p100234"></a>   unacceptedPolicy    (15),
<a id="p100235"></a>   -- служба штампов времени не поддерживает запрашиваемую
   -- политику безопасности
<a id="p100236"></a>   unacceptedExtension (16),
<a id="p100237"></a>   -- служба штампов времени не поддерживает запрашиваемое
   -- расширение
<a id="p100238"></a>   addInfoNotAvailable (17)
<a id="p100239"></a>   -- запрашиваемая дополнительная информация не распознается
   -- или недоступна
<a id="p100240"></a>   systemFailure       (25)
<a id="p100241"></a>   -- запрос не может быть обработан вследствие ошибки системы }

##### <a id="p100242"></a>7.2.2 Структура TimeStampToken

<a id="p100243"></a>Структура TimeStampToken содержит штамп времени и представляет собой структуру типа ContentInfo, определенную в Р 1323565.1.025-2019, [раздел 5](https://bukva.ai/docs/r-1323565-1-025-2019#p100079), где поле contentType должно содержать идентификатор типа содержимого "Подписанные данные" signed-data, а поле content должно содержать соответствующую структуру SignedData, процесс построения и поля которой описаны в Р 1323565.1.025-2019, [раздел 7](https://bukva.ai/docs/r-1323565-1-025-2019#p100105).
<a id="p100244"></a>Штамп времени TimeStampToken выглядит следующим образом.
<a id="p100245"></a>TimeStampToken ::= ContentInfo
<a id="p100246"></a>   --поле contentType содержит идентификатор id-signedData
<a id="p100247"></a>   --поле content является структурой SignedData
 --(см. Р 1323565.1.025-2019, [раздел 5](https://bukva.ai/docs/r-1323565-1-025-2019#p100079))
<a id="p100248"></a>Настоящие рекомендации определяют дополнительные требования к содержимому следующих полей структуры SignedData:
<a id="p100249"></a>поля encapContentInfo (см. [7.2.2.1](#p100252));
<a id="p100250"></a>поля signedAttrs (см. [7.2.2.2](#p100319)). Данное поле входит в структуру SignerInfo, описанную в Р 1323565.1.025-2019, [подраздел 7.3](https://bukva.ai/docs/r-1323565-1-025-2019#p100171), и включает в себя подписанный атрибут, содержащий идентификатор сертификата TSA;
<a id="p100251"></a>поля signatureAlgorithm (см. [8.1](#p100325)). Настоящие рекомендации устанавливают требования к содержимому данного поля только при использовании российских криптографических алгоритмов подписи. Поле signatureAlgorithm входит в структуру SignerInfo, описанную в Р 1323565.1.025-2019, [подраздел 7.3](https://bukva.ai/docs/r-1323565-1-025-2019#p100171), и включает в себя идентификатор используемого алгоритма подписи.

###### <a id="p100252"></a>7.2.2.1 Поле encapContentInfo структуры SignedData

<a id="p100253"></a>Поле encapContentInfo структуры SignedData представляет собой структуру типа EncapsulatedContentInfo, описанную в Р 1323565.1.025-2019, [подраздел 7.2](https://bukva.ai/docs/r-1323565-1-025-2019#p100156). Для использования российских криптографических алгоритмов подписи и хэширования в него необходимо включать следующие значения:
- <a id="p100254"></a>В поле eContentType - следующий объектный идентификатор штампа времени:
<a id="p100255"></a>id-ct-TSTInfo OBJECT IDENTIFIER ::= { iso(1) member-body(2)
<a id="p100256"></a>us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) ct(1) 4};
- <a id="p100257"></a>в поле eContent - штамп времени в виде строки октетов (OCTET STRING). Значение поля eContent должно быть результатом DER-кодирования структуры TSTInfo.
<a id="p100258"></a>Структура TSTInfo содержит штамп времени и должна быть представлена следующим образом.
<a id="p100259"></a>TSTInfo ::= SEQUENCE {
<a id="p100260"></a>   version                      INTEGER { v1(1) },
<a id="p100261"></a>   policy                       TSAPolicyId,
<a id="p100262"></a>   messageImprint               MessageImprint,
<a id="p100263"></a>   -- должно содержать то же значение, что и поле messageImprint
 -- в структуре TimeStampReq (см. [7.1](#p100154))
<a id="p100264"></a>   serialNumber                 INTEGER,
<a id="p100265"></a>   -- сторона, запрашивающая штамп времени, должна принимать
   -- целые числа длиной до 160 бит.
<a id="p100266"></a>   genTime                      GeneralizedTime,
<a id="p100267"></a>   accuracy                     Accuracy                 OPTIONAL,
<a id="p100268"></a>   ordering                     BOOLEAN             DEFAULT FALSE,
<a id="p100269"></a>   nonce                        INTEGER                  OPTIONAL,
<a id="p100270"></a>   -- должно присутствовать, если аналогичное поле имеется в
   -- TimeStampReq. В этом случае поле должно иметь то же
   -- значение.
<a id="p100271"></a>   tsa                          [0] GeneralName          OPTIONAL,
<a id="p100272"></a>   extensions                   [1] IMPLICIT Extensions   OPTIONAL
<a id="p100273"></a>   }
<a id="p100274"></a>Поля структуры TSTInfo должны быть заполнены в соответствии со следующими требованиями:


| <a id="p100275"></a>version | <a id="p100276"></a><a id="p100277"></a>- Поле version имеет тип INTEGER и описывает версию штампа времени. В соответствии с настоящими рекомендациями поле version должно иметь значение 1.<br>Запрашивающая сторона должна уметь распознавать штампы версии 1 со всеми присутствующими необязательными полями, но не обязана распознавать семантику любого присутствующего расширения (extensions). |
| --- | --- |
| <a id="p100278"></a>policy | <a id="p100279"></a><a id="p100280"></a><a id="p100281"></a><a id="p100282"></a><a id="p100283"></a>- Поле policy имеет тип TSAPolicyId и должно обозначать политику безопасности (регламент службы штампов времени, в рамках которой был дан ответ). Если в TimeStampReq (см. [7.1](#p100154)) присутствует поле reqPolicy, оно должно иметь то же значение, иначе должна быть возвращена ошибка unacceptedPolicy (см. [7.2.1.3](#p100222)).<br>Политика может включать следующие типы информации:<br>условия, на которых может использоваться штамп времени;<br>доступность журнала штампов времени для последующей проверки подлинности штампа;<br>другая информация. |
| <a id="p100284"></a>messageImprint | <a id="p100285"></a>- Поле messageImprint имеет тип MessageImprint и должно иметь то же значение, что и поле messageImprint в TimeStampReq (см. [7.1](#p100154)). |
| <a id="p100286"></a>serialNumber | <a id="p100287"></a>- Поле serialNumber имеет тип INTEGER и является целым числом, присвоенным службой штампов времени каждому штампу времени TimeStampToken. Оно должно быть уникальным для каждого штампа TimeStampToken, выданного указанной службой штампов (например, имя (см. [поле](#p100313) tsa) и серийный номер штампа определяют уникальный TimeStampToken). Данное свойство должно быть сохранено даже после возможного прерывания работы службы (например, после сбоя). |
| <a id="p100288"></a>genTime | <a id="p100289"></a><a id="p100290"></a><a id="p100291"></a><a id="p100292"></a><a id="p100293"></a><a id="p100294"></a><a id="p100295"></a><a id="p100296"></a><a id="p100297"></a><a id="p100298"></a>- Поле genTime имеет тип GeneralizedTime и обозначает время создания штампа времени соответствующей службой, должно быть выражено в UTC. Для получения времени создания штампа TSA должна использовать доверенный источник времени. При получении времени от источника должна быть исключена возможность подмены данного времени.<br>Значения GeneralizedTime должны включать секунды. Даже если нет необходимости, следует использовать GeneralizedTime с точностью до секунд (см. [[2]](#p101177), подпункт 4.1.2.5.2). В отличие от ограничений, описанных в ([[2]](#p101177), подпункт 4.1.2.5.2), поле GeneralizedTime может содержать и доли секунд. Используется следующий синтаксис: ГГГГММДДччммсс [.м]Z, где [.м] обозначает доли секунды, отделенные десятичной точкой, и может содержать любое количество цифр или отсутствовать.<br>Например: 19990609001326.34352Z.<br>Предусмотрены следующие ограничения к DER-кодированию.<br>1) Результат кодирования должен оканчиваться на Z (что означает "время зулу"). Десятичный знак, если он присутствует, должен быть представлен в виде точки. В части долей секунд, если они есть, все нули в конце должны быть опущены. Если доли секунды равны нулю, они должны быть полностью опущены вместе с десятичной точкой.<br>2) Полночь по GMT представляется в следующей форме: ГГГГММДД000000Z, где ГГГГММДД обозначает день, следующий после полуночи.<br>Примеры правильного представления:<br>"19920521000000Z"<br>"19920622123421Z"<br>"19920722132100.3Z" |
| <a id="p100299"></a>accuracy | <a id="p100300"></a><a id="p100301"></a><a id="p100302"></a><a id="p100303"></a><a id="p100304"></a><a id="p100305"></a><a id="p100306"></a><a id="p100307"></a>- Поле accuracy представляет собой структуру типа Accuracy и обозначает отклонение времени от времени UTC, значение которого содержится в поле genTime. Структура Accuracy выглядит следующим образом.<br>Accuracy ::= SEQUENCE {<br>seconds        INTEGER              OPTIONAL,<br>millis     [0] INTEGER  (1..999)    OPTIONAL,<br>micros     [1] INTEGER  (1..999)    OPTIONAL }<br>Если поля seconds, millis или micros отсутствуют, то запрашивающая сторона должна считать их равными 0.<br>Добавив значение точности (поле accuracy) к GeneralizedTime, можно получить верхний предел времени, когда можно получить штамп времени, созданный службой штампов времени. Точно так же, путем вычитания точности из GeneralizedTime, можно получить нижний предел времени, когда можно получить штамп времени, созданный службой штампов времени. Точность необходимо представить в секундах, миллисекундах (1-999) и микросекундах (1-999) в виде целого числа.<br>Если необязательное поле accuracy отсутствует, то его значение можно получить другими способами, например с помощью TSAPolicyId. |
| <a id="p100308"></a>ordering | <a id="p100309"></a><a id="p100310"></a>- Поле ordering (упорядочивание) имеет тип BOOLEAN и используется для обозначения работы службы штампов времени в режиме, когда время создания двух штампов времени не может совпадать.<br>Если поле ordering присутствует и имеет значение "true", каждый штамп времени от одной и той же службы штампов времени всегда может быть упорядочен по полю genTime вне зависимости от точности (поля accuracy). Если поле ordering отсутствует или присутствует и имеет значение "false", то упорядочивание штампов времени, выданных одной или разными службами штампов времени, возможно, только если разница между genTime первого штампа и genTime второго штампа больше суммы значений точности genTime для каждого штампа. |
| <a id="p100311"></a>nonce | <a id="p100312"></a>- Поле nonce имеет тип INTEGER и аналогично одноименному полю, описанному в [7.1](#p100154). Несмотря на то, что поле nonce является необязательным, служба штампов должна распознавать его и включать в ответ, если в запросе TimeStampReq поле nonce присутствовало. При этом значение поля в ответе должно однозначно соответствовать значению nonce в запросе. |
| <a id="p100313"></a>tsa | <a id="p100314"></a><a id="p100315"></a>- Поле tsa имеет тип GeneralName и может содержать название службы штампов времени. Если поле присутствует, оно должно соответствовать одному из имен субъекта, включенных в сертификат, используемый для проверки подписи штампа времени.<br>Поле tsa не является идентификатором службы штампов времени. Для этого должен быть использован идентификатор ее сертификата (атрибут ESSCertIDv2, см. [7.2.2.2](#p100319)). |
| <a id="p100316"></a>extensions | <a id="p100317"></a><a id="p100318"></a>- Поле extensions (расширения) имеет тип Extensions и позволяет добавить дополнительную информацию в запрос. Поле extensions описано в [[3]](#p101180).<br>Настоящие рекомендации не определяют какие-либо расширения и допускают использование расширений, определенных в иных нормативных документах. |



###### <a id="p100319"></a>7.2.2.2 Правила включения идентификатора сертификата TSA в ответ

<a id="p100320"></a>Штамп времени не должен содержать иных подписей, кроме подписи службы штампов времени.
<a id="p100321"></a>Идентификатор сертификата службы штампов времени ESSCertIDv2, определенный в [[5]](#p101186), раздел 4, должен быть включен в атрибут SigningCertificateV2 так, как это описано в [[5]](#p101186), раздел 3.
<a id="p100322"></a>Атрибут SigningCertificateV2 является подписанным атрибутом и должен быть включен в поле signedAttrs структуры SignerInfo так, как это описано в Р 1323565.1.025-2019, [подразделы 7.1](https://bukva.ai/docs/r-1323565-1-025-2019#p100120) и [7.3](https://bukva.ai/docs/r-1323565-1-025-2019#p100171).

<a id="p100323"></a>8 Использование российских криптографических алгоритмов

<a id="p100324"></a>В данном разделе установлены требования к содержимому запроса к службе штампов времени и ее ответа, описываемых в [разделе 7](#p100151), при использовании российских криптографических алгоритмов подписи и хэширования.

#### <a id="p100325"></a>8.1 Использование российских алгоритмов подписи

<a id="p100326"></a>При использовании российских криптографических алгоритмов подписи идентификатор используемого алгоритма подписи должен быть включен в штамп времени (см. [7.2.2](#p100242)) в структуру SignedData, описанную в Р 1323565.1.025-2019, [подраздел 7.7](https://bukva.ai/docs/r-1323565-1-025-2019#p100233).
<a id="p100327"></a>Для алгоритма подписи, определенного в [разделе 6](https://bukva.ai/docs/gost-r-34-10-2012#p100197) ГОСТ Р 34.10-2012, с длиной ключа подписи 256 бит должен использоваться следующий идентификатор, определенный в Р 1323565.1.023-2018, [пункт 5.2.1.1](https://bukva.ai/docs/r-1323565-1-023-2018#p100219):
<a id="p100328"></a>id-tc26-gost3410-12-256, "1.2.643.7.1.1.1.1".
<a id="p100329"></a>Для алгоритма подписи, определенного в [разделе 6](https://bukva.ai/docs/gost-r-34-10-2012#p100197) ГОСТ Р 34.10-2012, с длиной ключа подписи 512 бит должен использоваться следующий идентификатор, определенный в Р 1323565.1.023-2018, [пункт 5.2.1.1](https://bukva.ai/docs/r-1323565-1-023-2018#p100219):
<a id="p100330"></a>id-tc26-gost3410-12-512, "1.2.643.7.1.1.1.2".
<a id="p100331"></a>*Примечание* - В настоящих рекомендациях для всех идентификаторов российских криптографических алгоритмов перенос строки внутри значения идентификатора, кавычки и точка в его конце не учитываются.


#### <a id="p100332"></a>8.2 Использование российских алгоритмов хэширования

<a id="p100333"></a>При использовании российских криптографических алгоритмов хэширования идентификатор используемого алгоритма хэширования должен быть включен в запрос TimeStampReq и ответ TimeStampResp в структуру messageImprint, как это описано в [7.1](#p100154) и [7.2.2.1](#p100252).
<a id="p100334"></a>Для алгоритма хэширования, определенного в [разделе 8](https://bukva.ai/docs/gost-r-34-11-2012#p100217) ГОСТ Р 34.11-2012, с длиной хэш-значения 256 бит должен использоваться следующий идентификатор, определенный в Р 1323565.1.025-2019, [пункт 9.2.1](https://bukva.ai/docs/r-1323565-1-025-2019#p100736):
<a id="p100335"></a>id-tc26-gost3411-2012-256, "1.2.643.7.1.1.2.2".
<a id="p100336"></a>Для алгоритма хэширования, определенного в [разделе 8](https://bukva.ai/docs/gost-r-34-11-2012#p100217) ГОСТ Р 34.11-2012, с длиной хэш-значения 512 бит должен использоваться следующий идентификатор, определенный в Р 1323565.1.025-2019, [пункт 9.2.2](https://bukva.ai/docs/r-1323565-1-025-2019#p100746):
<a id="p100337"></a>id-tc26-gost3411-2012-512, "1.2.643.7.1.1.2.3".

#### <a id="p100338"></a>8.3 Особенности использования российских криптографических алгоритмов

<a id="p100339"></a>Свойства безопасности протокола TSP основываются на свойствах используемых алгоритмов хэширования и подписи. Поэтому при использовании российских криптографических алгоритмов рекомендуется обеспечивать соответствие стойкости используемого алгоритма хэширования и алгоритма подписи. Таким образом, рекомендуется следующее:
- <a id="p100340"></a>для алгоритма хэширования, определенного в [разделе 8](https://bukva.ai/docs/gost-r-34-11-2012#p100217) ГОСТ Р 34.11-2012, с длиной хэш-значения 256 бит использовать алгоритм подписи, определенный в [разделе 6](https://bukva.ai/docs/gost-r-34-10-2012#p100197) ГОСТ Р 34.10-2012, с длиной ключа подписи 256 бит;
- <a id="p100341"></a>для алгоритма хэширования, определенного в [разделе 8](https://bukva.ai/docs/gost-r-34-11-2012#p100217) ГОСТ Р 34.11-2012, с длиной хэш-значения 512 бит использовать алгоритм подписи, определенный в [разделе 6](https://bukva.ai/docs/gost-r-34-10-2012#p100197) ГОСТ Р 34.10-2012, с длиной ключа подписи 512 бит.

<a id="p100342"></a>9 Способы передачи

<a id="p100343"></a>В данном разделе описаны некоторые способы передачи запросов к службе штампов времени и ее ответов. Настоящие рекомендации допускают и другие способы передачи указанной информации.

#### <a id="p100344"></a>9.1 Протокол TSP по HTTP

<a id="p100345"></a>В данном разделе описан способ передачи запросов к службе штампов времени и ее ответов по протоколу HTTP. Для этого используются следующие объекты MIME.
1) <a id="p100346"></a>Для передачи запроса: Content-Type: application/timestamp-query.
2) <a id="p100347"></a>Для передачи ответа: Content-Type: application/timestamp-reply.
<a id="p100348"></a>Каждый из описанных объектов MIME должен содержать данные, закодированные в DER.
<a id="p100349"></a>При получении действительного запроса сервер должен вернуть действительный ответ с типом содержимого application/timestamp-reply или ошибку HTTP.

#### <a id="p100350"></a>9.2 Протокол TSP на основе TCP

<a id="p100351"></a>В данном разделе описан способ передачи запросов к службе штампов времени и ее ответов по протоколу TSP на основе TCP. Служба штампов времени ожидает сообщения от запрашивающей стороны и отправляет ответы на них, используя IP-порт 318. В общем виде взаимодействие выглядит следующим образом.
<a id="p100352"></a>Запрашивающая сторона подключается к указанному порту и отправляет запрос к службе штампов времени. Служба штампов времени может отправить ответ со штампом времени и/или номер обращения, с которым запрашивающая сторона должна обратиться в следующем сообщении.
<a id="p100353"></a>Запрашивающая сторона по истечении некоторого промежутка времени, называемого "время повторного запроса", должна отправить службе штампов времени номер обращения.
<a id="p100354"></a>Служба штампов времени в зависимости от готовности ответа может вернуть сообщение, содержащее штамп времени, следующий номер обращения для повторного запроса или сообщение об ошибке.
<a id="p100355"></a>Каждое из сообщений, отправляемых в рамках взаимодействия между запрашивающей стороной и службой штампов времени по протоколу TSP на основе TCP, имеет формат, представленный на [рисунке 2](#p100357).

<a id="p100356"></a> ![рис. 2](https://i.bukva.ai/Jnopd6SD/img_1.png) 

<a id="p100357"></a>Рисунок 2 - Сообщение в рамках взаимодействия по протоколу
TSP на основе TCP

<a id="p100358"></a>Поле "Длина" имеет длину 4 октета (32 бита) и должно содержать сведения о длине оставшейся части сообщения в октетах. Длина оставшейся части сообщения является суммой количества октетов поля "Значение" и единственного октета поля "Тип". Все значения с длиной 4 октета (поле "Длина") в данном протоколе должны быть представлены от старшего байта к младшему (big-endian).
<a id="p100359"></a>Поле "Тип" имеет длину 1 октет (8 бит) и содержит значение в шестнадцатеричном виде, указывающее на тип передаваемого сообщения. Данное поле должно быть заполнено в соответствии с [таблицей 1](#p100363).
<a id="p100360"></a>Поле "Значение" содержит сообщение службы штампов времени. Содержимое данного поля зависит от значения поля "Тип" и должно быть заполнено в соответствии с [таблицей 1](#p100363).
<a id="p100361"></a>Примечание - Для удобства различения типов сообщений в таблице ниже введено [поле](#p100364) "Имя сообщения", позволяющее в дальнейшем ссылаться на конкретный тип передаваемого сообщения при описании порядка возможных сообщений. Данное [поле](#p100364) не нужно включать в передаваемые сообщения при взаимодействии со службой штампов времени по протоколу TSP на основе TCP.

<a id="p100362"></a>Таблица 1

<a id="p100363"></a>Сообщения в рамках взаимодействия
по протоколу TSP на основе TCP


| <a id="p100364"></a>Имя сообщения | <a id="p100365"></a>Тип | <a id="p100366"></a>Значение | <a id="p100367"></a>Описание |
| --- | --- | --- | --- |
| <a id="p100368"></a>tsaMsg | <a id="p100369"></a>'00'H | <a id="p100370"></a>Запрос к службе штампов времени, закодированный в DER | <a id="p100371"></a>Запрос к службе штампов времени |
| <a id="p100372"></a>pollRep | <a id="p100373"></a>'01'H | <a id="p100374"></a><a id="p100375"></a>Номер обращения (32 бита),<br>время повторного запроса (32 бита) | <a id="p100376"></a>Ответ службы штампов времени, если штамп времени не готов |
| <a id="p100377"></a>pollReq | <a id="p100378"></a>'02'H | <a id="p100379"></a>Номер обращения (32 бита) | <a id="p100380"></a>Обращение запрашивающей стороны к службе штампов времени после истечения времени повторного запроса |
| <a id="p100381"></a>negPollRep | <a id="p100382"></a>'03'H | <a id="p100383"></a>'00'H | <a id="p100384"></a>Обмен данными завершен |
| <a id="p100385"></a>partialMsgRep | <a id="p100386"></a>'04'H | <a id="p100387"></a><a id="p100388"></a><a id="p100389"></a>Следующий номер обращения (32 бита),<br>время повторного запроса (32 бита),<br>сообщение службы штампов времени, закодированное в DER | <a id="p100390"></a>Ответ службы штампов времени, если штамп времени не готов, содержащий дополнительные сведения |
| <a id="p100391"></a>finalMsgRep | <a id="p100392"></a>'05'H | <a id="p100393"></a>Сообщение службы штампов времени, содержащее штамп времени и закодированное в DER | <a id="p100394"></a>Ответ службы штампов времени, содержащий штамп времени |
| <a id="p100395"></a>errorMsgRep | <a id="p100396"></a>'06'H | <a id="p100397"></a>Сообщение об ошибке | <a id="p100398"></a>Ответ службы штампов времени, если обнаружены ошибки (например, получена ссылка на несуществующее или завершенное обращение) |


<a id="p100399"></a>Порядок возможных сообщений:
1) <a id="p100400"></a>Запрашивающая сторона посылает tsaMsg и получает в ответ pollRep, negPollRep, partialMsgRep или finalMsgRep.
2) <a id="p100401"></a>Запрашивающая сторона отправляет сообщение pollReq и получает в ответ negPollRep, partialMsgRep, finalMsgRep или errorMsgRep.
<a id="p100402"></a>Параметр "время повторного запроса" представляется беззнаковым 32-битным целым числом. Это время обозначает минимальный интервал, после которого клиенту следует проверить состояние еще раз. Оно выражается в секундах.

#### <a id="p100403"></a>9.3 Протокол TSP через электронную почту

<a id="p100404"></a>В данном разделе описан способ передачи запросов к службе штампов времени и ее ответов посредством электронной почты. Для этого используются следующие объекты MIME.
<a id="p100405"></a>Content-Type: application/timestamp-query
<a id="p100406"></a>Content-Transfer-Encoding: base64
<a id="p100407"></a>Content-Type: application/timestamp-reply
<a id="p100408"></a>Content-Transfer-Encoding: base64
<a id="p100409"></a>Каждый из описанных объектов MIME должен содержать данные, закодированные в DER и в base64 [[6]](#p101189).
<a id="p100410"></a>Для MIME-типов application/timestamp-query и application/timestamp-reply реализация передачи может включать в себя дополнительные параметры name (имя) и filename (название файла) с целью сохранения информации об имени, когда запросы и ответы о штампах времени сохранены в виде файлов.
<a id="p100411"></a>Если указанные дополнительные параметры включены, необходимо использовать соответствующие расширения файлов:


| <a id="p100412"></a>MIME-тип | <a id="p100413"></a>Расширение файла |
| --- | --- |
| <a id="p100414"></a>application/timestamp-query | <a id="p100415"></a>.TSQ |
| <a id="p100416"></a>application/timestamp-reply | <a id="p100417"></a>.TSR |


<a id="p100418"></a>Настоящие рекомендации допускают использование произвольного названия файла длиной не более восьми символов без учета трехбуквенного расширения.

#### <a id="p100419"></a>9.4 Протокол TSP на основе файлового протокола

<a id="p100420"></a>В данном разделе описан способ передачи запросов к службе штампов времени и ее ответов посредством файлового протокола (например, FTP).
<a id="p100421"></a>Файл с запросом к службе штампов времени или с ее ответом должен содержать только результат DER-кодирования запроса или ответа соответственно и не должен содержать посторонних заголовков или концевых меток.
<a id="p100422"></a>Файл с запросом к службе штампов времени должен иметь расширение .tsq (time stamp query).
<a id="p100423"></a>Файл с ответом службы штампов времени должен иметь расширение .tsr (time stamp reply).





<a id="p100424"></a>Приложение А
(рекомендуемое)

<div align="center">

<a id="p100425"></a>ШТАМП ВРЕМЕНИ ДЛЯ ЭЛЕКТРОННОЙ ПОДПИСИ В КРИПТОГРАФИЧЕСКИХ<br>
СООБЩЕНИЯХ ФОРМАТА CMS

</div>


<a id="p100426"></a>В данном приложении описан способ включения штампа времени для электронной подписи в содержимое типа "подписанные данные" (SignedData) криптографического сообщения формата CMS (см. [Р 1323565.1.025](https://bukva.ai/docs/r-1323565-1-025-2019)).
<a id="p100427"></a>Штамп времени для электронной подписи используется как доказательство того, что подпись была создана до определенного момента времени. Если сертификат ключа проверки подписи был аннулирован или прекратил свое действие, штамп времени позволяет проверить дату создания подписи по отношению к дате аннулирования или прекращения действия.
<a id="p100428"></a>Штамп времени для электронной подписи следует поместить в криптографическое сообщение формата CMS в виде неподписанного атрибута Attribute и включить в поле unsignedAttrs соответствующей структуры SignerInfo так, как это описано в Р 1323565.1.025-2019, [подразделы 7.1](https://bukva.ai/docs/r-1323565-1-025-2019#p100120) и [7.3](https://bukva.ai/docs/r-1323565-1-025-2019#p100171). Структура Attribute описана в Р 1323565.1.025-2019, [подраздел 14.9](https://bukva.ai/docs/r-1323565-1-025-2019#p101101), и должна быть заполнена следующим образом.
- <a id="p100429"></a>attrType - включает в себя объектный идентификатор типа атрибута, содержащего штамп времени для электронной подписи. Идентификатор выглядит следующим образом.
<a id="p100430"></a>id-aa-timeStampToken OBJECT IDENTIFIER ::= { iso(1) member-body(2)us(840) rsadsi(113549)

<div align="right">

<a id="p100431"></a>pkcs(1) pkcs-9(9) smime(16) aa(2) 14 }

</div>

- <a id="p100432"></a>attrValues - включает в себя структуру SignatureTimeStampToken, содержащую штамп времени TimeStampToken, описанный в [7.2.2](#p100242). Структура SignatureTimeStampToken выглядит следующим образом.

<div align="center">

<a id="p100433"></a>SignatureTimeStampToken ::= TimeStampToken

</div>

<a id="p100434"></a>Поле hashedMessage структуры MessageImprint в штампе времени TimeStampToken должно содержать хэш-значение от поля signature в соответствующей структуре SignerInfo криптографического сообщения формата CMS типа "подписанные данные" (см. Р 1323565.1.025-2019, [раздел 7](https://bukva.ai/docs/r-1323565-1-025-2019#p100105)).





<div align="center">

<a id="p100435"></a>Приложение Б<br>
(справочное)

<a id="p100436"></a>ОСОБЕННОСТИ ПРОВЕРКИ ЭЛЕКТРОННОЙ ПОДПИСИ СО ШТАМПОМ ВРЕМЕНИ

</div>


<a id="p100437"></a>В данном приложении приведена последовательность действий, необходимых для того, чтобы проверить, что электронная подпись была создана до того момента, когда соответствующий сертификат был аннулирован или закончился срок его действия, что позволяет использовать данный сертификат для проверки подписей, созданных ранее. Приведенные в данном приложении действия не являются достаточными для проверки электронной подписи, описание полного набора действий выходит за рамки настоящих рекомендаций.
<a id="p100438"></a>Получение штампа времени для электронной подписи и ее последующая проверка могут быть осуществлены следующим способом.
1) <a id="p100439"></a>Запрашивающая сторона посылает к службе штампов времени запрос (см. [7.1](#p100154)) на получение штампа времени для электронной подписи. В случае успеха обработки запроса служба штампов времени отправляет запрашивающей стороне ответ (см. [7.2](#p100188)), содержащий штамп времени для указанной подписи.
2) <a id="p100440"></a>Запрашивающая сторона проверяет корректность штампа времени, как это описано в [разделах 5](#p100086) - [8](#p100323).
<a id="p100441"></a>Последующую проверку электронной подписи со штампом времени осуществляют следующим образом.
1) <a id="p100442"></a>Проверяющая сторона проверяет математическую корректность электронной подписи.
2) <a id="p100443"></a>Проверяющая сторона проверяет применимость штампа времени к подписи, для которой он был создан. В частности, проверяющая сторона должна убедиться в соответствии проверяемой подписи и подписи, для которой выдан штамп (подробнее см. [5.3](#p100105)).
3) <a id="p100444"></a>Проверяющая сторона получает дату и время, указанные в полученном для подписи штампе времени, а также сроки действия сертификата, соответствующего проверяемой электронной подписи. Дата и время должны находиться в пределах срока действия данного сертификата.
4) <a id="p100445"></a>Проверяющая сторона получает сведения об аннулировании сертификата ключа проверки электронной подписи на момент выдачи штампа времени для данной подписи. Дата и время аннулирования сертификата должны быть позже даты и времени, указанных в полученном для подписи штампе времени.
<a id="p100446"></a>Если все данные условия соблюдены, электронная подпись объявляется действительной.





<a id="p100447"></a>Приложение В
(справочное)

<a id="p100448"></a>МОДУЛЬ АСН.1

<a id="p100449"></a>Данное приложение носит справочный характер. В нем содержится описание структур, необходимых для взаимодействия по протоколу TSP. Описание структур представлено в абстрактно-синтаксической нотации версии 1 (АСН.1), определенной в ГОСТ Р ИСО/МЭК 8824.
<a id="p100450"></a>PKIXTSP {iso(1) identified-organization(3) dod(6) internet(1)
<a id="p100451"></a>security(5) mechanisms(5) pkix(7) id-mod(0) id-mod-tsp(13)}

<div align="right">

<a id="p100452"></a>DEFINITIONS IMPLICIT TAGS ::=<br>
<a id="p100453"></a>BEGIN

</div>

<div align="center">

<a id="p100454"></a>**-- EXPORTS ALL --**<br>
<a id="p100455"></a>**IMPORTS**

</div>

<a id="p100456"></a>   Extensions, AlgorithmIdentifier
<a id="p100457"></a>   FROM PKIX1Explicit88 {iso(1) identified-organization(3)
<a id="p100458"></a>   dod(6) internet(1) security(5) mechanisms(5) pkix(7)
<a id="p100459"></a>   id-mod(0) id-pkix1-explicit-88(1)}
<a id="p100460"></a>   GeneralName FROM PKIX1Implicit88 {iso(1)
<a id="p100461"></a>   identified-organization(3) dod(6) internet(1) security(5)
<a id="p100462"></a>   mechanisms(5) pkix(7) id-mod(0) id-pkix1-implicit-88(2)}
<a id="p100463"></a>   ContentInfo FROM CryptographicMessageSyntax {iso(1)
<a id="p100464"></a>   member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9)
<a id="p100465"></a>   smime(16) modules(0) cms(1)}
<a id="p100466"></a>   PKIFreeText FROM PKIXCMP {iso(1) identified-organization(3)
<a id="p100467"></a>   dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
<a id="p100468"></a>   id-mod-cmp(9)} ;
<a id="p100469"></a>                  --  Локально определенные объектные идентификаторы  --
<a id="p100470"></a>-- Объектный идентификатор штампа времени в поле eContentType
<a id="p100471"></a>id-ct-TSTInfo  OBJECT IDENTIFIER ::= { iso(1) member-body(2)
<a id="p100472"></a>us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) ct(1) 4}
<a id="p100473"></a>-- Запрос к службе штампов времени TimeStampReq
<a id="p100474"></a>TimeStampReq ::= SEQUENCE  {
<a id="p100475"></a>version                  INTEGER  { v1(1) },
<a id="p100476"></a>messageImprint           MessageImprint,
<a id="p100477"></a>-- OID алгоритма хэширования и хэш-значение от данных, для которых
-- требуется штамп времени
<a id="p100478"></a>reqPolicy                TSAPolicyId                OPTIONAL,
<a id="p100479"></a>nonce                    INTEGER                    OPTIONAL,
<a id="p100480"></a>certReq                  BOOLEAN                    DEFAULT FALSE,
<a id="p100481"></a>extensions               [0] IMPLICIT Extensions    OPTIONAL }
<a id="p100482"></a>MessageImprint ::= SEQUENCE  {
<a id="p100483"></a>   hashAlgorithm               AlgorithmIdentifier,
<a id="p100484"></a>   hashedMessage               OCTET STRING }
<a id="p100485"></a>TSAPolicyId ::= OBJECT IDENTIFIER
<a id="p100486"></a>-- Ответ службы штампов времени TimeStampResp
<a id="p100487"></a>TimeStampResp ::= SEQUENCE  {
<a id="p100488"></a>   status                  PKIStatusInfo,
<a id="p100489"></a>   timeStampToken          TimeStampToken     OPTIONAL }
<a id="p100490"></a>-- Информация о состоянии заполняется, исходя из определения, приведенного
-- в разделе 5.2.3 [[4]](#p101183), следующим образом:
<a id="p100491"></a>PKIStatusInfo ::= SEQUENCE {
<a id="p100492"></a>   status        PKIStatus,
<a id="p100493"></a>   statusString  PKIFreeText     OPTIONAL,
<a id="p100494"></a>   failInfo      PKIFailureInfo  OPTIONAL }
<a id="p100495"></a>PKIStatus ::= INTEGER {
<a id="p100496"></a>   granted                (0),
<a id="p100497"></a>   -- когда PKIStatus содержит значение 0, TimeStampToken присутствует, как
   -- и запрашивалось.
<a id="p100498"></a>   grantedWithMods        (1),
<a id="p100499"></a>   -- когда PKIStatus содержит значение 1, TimeStampToken
   -- присутствует с изменениями.
<a id="p100500"></a>   rejection              (2),
<a id="p100501"></a>   -- штамп времени не получен, причина указана в информационном сообщении
<a id="p100502"></a>   waiting                (3),
<a id="p100503"></a>   -- запрос штампа времени еще не обработан, дополнительная  информация
   -- ожидается позже.
<a id="p100504"></a>   revocationWarning      (4),
<a id="p100505"></a>   -- сообщение предупреждает о том, что аннулирование неизбежно
<a id="p100506"></a>   revocationNotification (5)
<a id="p100507"></a>   -- уведомление о том, что аннулирование имело место. }
<a id="p100508"></a>-- Если TimeStampToken отсутствует, PKIFailureInfo показывает причину
-- отклонения запроса штампа времени. PKIFailureInfo может иметь одно из
-- следующих значений.
<a id="p100509"></a>PKIFailureInfo ::= BIT STRING {
<a id="p100510"></a>   badAlg               (0),
<a id="p100511"></a>   -- нераспознанный или неподдерживаемый идентификатор алгоритма
<a id="p100512"></a>   badRequest           (2),
<a id="p100513"></a>   -- транзакция не разрешена или не поддерживается
<a id="p100514"></a>   badDataFormat        (5),
<a id="p100515"></a>   -- отправленные данные имеют неверный формат
<a id="p100516"></a>   timeNotAvailable    (14),
<a id="p100517"></a>   -- источник времени в службе штампов времени недоступен
<a id="p100518"></a>   unacceptedPolicy    (15),
<a id="p100519"></a>   -- служба штампов времени не поддерживает запрашиваемую политику
   -- безопасности.
<a id="p100520"></a>   unacceptedExtension (16),
<a id="p100521"></a>   -- служба штампов времени не поддерживает запрашиваемое расширение.
<a id="p100522"></a>   addInfoNotAvailable (17)
<a id="p100523"></a>   -- запрашиваемая дополнительная информация не распознается
   -- или недоступна
<a id="p100524"></a>   systemFailure       (25)
<a id="p100525"></a>   -- запрос не может быть обработан вследствие ошибки системы }
<a id="p100526"></a>-- Штамп времени TimeStampToken
<a id="p100527"></a>TimeStampToken ::= ContentInfo
<a id="p100528"></a>   -- contentType имеет значение id-signedData, как определено в
 -- [разделе 7.1](https://bukva.ai/docs/r-1323565-1-025-2019#p100120) Р 1323565.1.025-2019
<a id="p100529"></a> -- content имеет значение signedData, как определено в [разделе 7.1](https://bukva.ai/docs/r-1323565-1-025-2019#p100120)
   -- Р 1323565.1.0252019
<a id="p100530"></a>   -- eContentType в структуре EncapsulatedContentInfo имеет значение
   -- id-ct-TSTInfo
<a id="p100531"></a>   -- eContent в структуре EncapsulatedContentInfo представляет собой
   -- структуру TSTInfo
<a id="p100532"></a>TSTInfo ::= SEQUENCE  {
<a id="p100533"></a>   version                      INTEGER  { v1(1) },
<a id="p100534"></a>   policy                       TSAPolicyId,
<a id="p100535"></a>   messageImprint               MessageImprint,
<a id="p100536"></a>   -- должно содержать то же значение, что и поле TimeStampReq
<a id="p100537"></a>   serialNumber                 INTEGER,
<a id="p100538"></a>   -- Сторона, запрашивающая штамп времени, должна принимать целые
   -- числа длиной до 160 бит.
<a id="p100539"></a>   genTime                      GeneralizedTime,
<a id="p100540"></a>   accuracy                     Accuracy                 OPTIONAL,
<a id="p100541"></a>   ordering                     BOOLEAN             DEFAULT FALSE,
<a id="p100542"></a>   nonce                        INTEGER                  OPTIONAL,
<a id="p100543"></a>   -- должно присутствовать, если аналогичное поле имеется в
   -- TimeStampReq. В этом случае поле должно иметь то же значение.
<a id="p100544"></a>   tsa                          [0] GeneralName          OPTIONAL,
<a id="p100545"></a>   extensions                   [1] IMPLICIT Extensions  OPTIONAL }
<a id="p100546"></a>Accuracy ::= SEQUENCE {
<a id="p100547"></a>      seconds        INTEGER           OPTIONAL,
<a id="p100548"></a>      millis     [0] INTEGER  (1..999) OPTIONAL,
<a id="p100549"></a>      micros     [1] INTEGER  (1..999) OPTIONAL }
<a id="p100550"></a>END





<a id="p100551"></a>Приложение Г
(справочное)

<a id="p100552"></a>ПРИМЕРЫ

<a id="p100553"></a>В данном приложении содержатся примеры запросов к службе штампов времени и ее ответов при использовании российских криптографических алгоритмов.
<a id="p100554"></a>При создании примеров был использован следующий сертификат службы штампов времени. Сертификат представлен в кодировке Base64 [[6]](#p101189).
<a id="p100555"></a>MIIDXjCCAUagAwIBAgIBATANBgkqhkiG9w0BAQUFADBCMQswCQYDVQQGEwJSVTEVMBMGA1UEBwwMRGVmYXVsdCBDa
XR5MRwwGgYDVQQKDBNEZWZhdWx0IENvbXBhbnkgTHRkMB4XDTIwMTIyMzE5NDM0NloXDTI1MDYyMTE5NDM0NlowRT
ELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx
0ZDBmMB8GCCqFAwcBAQEBMBMGByqFAwICIwEGCCqFAwcBAQICA0MABEBX73jAk8X+4zjYswEJllw3bfkZQ2zOaWVe4
xhhw569KVhCNjRrz9FFmd/6hEniZcWwKR0va5rA5b4QZjbvtpH1oxowGDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCD
ANBgkqhkiG9w0BAQUFAAOCAgEAxrd16Qw9dzv+JImvEbUPHGx/H8EUiKg12JxxnrnjuRlz6Lw+KeGYJxgEx+XwP7u
O8CwG4LcO+0vZio34UWYJ7luLzq53bneq4PCQ5Q/QWghfKNsreLrd6Ph7WaRPNKXMa9WvN7lPFuEuN8fNZDL6XXvQ
OjtFf5xCopeyI4embrJvelDo5T++ekqz5Tof2Is6/4JQa5KZCu1duVmSPc4PpDNIQXYIPskktZEaCPkaVTpwhIvY/
qlu5bvTA9LWN3k/ub/gTPcY6GcEE274Qr4SIuFqoCNBZJcHUHZiEDdQDX3FiE3GLypl4otUstxshzGuMsaAEZ3vXVt
YavY3aLW9RMqybS9hPF8gB6m+hU2uwYdqoF9Ma+fCdwc3jRq8qN0aeovPcT/i52BZ9muT/uwUpDTzinP91i56yOA85
7waIO4WbS7bgLLmBS1iXcpsoJSX5PEDBTGXYz24u+ERQtnSlfhw1L5OXJsNtBGgaamM4huzJWFmwn0rb7aKND/IcMH
+u8w7hjdFJiFb1A8+0S9gH3u3ueCFzw+Xax/DcrKkeilERYdhxUqr6jfI/Tm6dU14qXnsax55nL4knf0FCRNQh9uzZ
PkMDmSmGIs+88/ZL7wRV8hmFr81JZDuW1YSTlU2H0lxcuob5HYM5o68MPyQIWeymxBpzzT493XK+eVwFeE=
<a id="p100556"></a>Г.1 Взаимодействие с TSA с запросом сертификата TSA, указанием nonce и использованием алгоритма, определенного в [разделе 8](https://bukva.ai/docs/gost-r-34-11-2012#p100217) ГОСТ Р 34.11-2012, с длиной хэш-значения 256 бит
<a id="p100557"></a>Г.1.1 Запрос
<a id="p100558"></a>Запрос к службе штампов времени в абстрактно-синтаксической нотации версии 1 (АСН.1), определенной в ГОСТ Р ИСО/МЭК 8824.
<a id="p100559"></a>SEQUENCE {
<a id="p100560"></a>  INTEGER 1
<a id="p100561"></a>  SEQUENCE {
<a id="p100562"></a>    SEQUENCE {

<div align="right">

<a id="p100563"></a>      OBJECT IDENTIFIER '1 2 643 7 1 1 2 2'<br>
<a id="p100564"></a>      NULL

</div>

<a id="p100565"></a>      }

<div align="center">

<a id="p100566"></a>    **OCTET STRING**

</div>

<a id="p100567"></a>      8B 15 38 26 08 82 CE 63 0A E7 A6 64 B3 24 0E A2
<a id="p100568"></a>      EC 38 6F D1 67 8F 24 22 42 A1 16 C4 55 DA 55 A7
<a id="p100569"></a>    }
<a id="p100570"></a>  INTEGER 00 D1 61 AD 67 5B 17 F8 6D
<a id="p100571"></a>  BOOLEAN TRUE
<a id="p100572"></a>  }
<a id="p100573"></a>Запрос к службе штампов времени в кодировке Base64 [[6]](#p101189).
<a id="p100574"></a>MEMCAQEwMDAMBggqhQMHAQECAgUABCCLFTgmCILOYwrnpmSzJA6i7Dhv0WePJCJCoRbEVdpVpwIJANFhrWdbF/htAQH/
<a id="p100575"></a>Г.1.2 Ответ
<a id="p100576"></a>Штамп времени в абстрактно-синтаксической нотации версии 1 (АСН.1), определенной в ГОСТ Р ИСО/МЭК 8824.
<a id="p100577"></a>SEQUENCE {
<a id="p100578"></a>  SEQUENCE {
<a id="p100579"></a>    INTEGER 0
<a id="p100580"></a>    }
<a id="p100581"></a>  SEQUENCE {
<a id="p100582"></a>    OBJECT IDENTIFIER signedData (1 2 840 113549 1 7 2)

0. <a id="p100583"></a>{
   <a id="p100584"></a>SEQUENCE {
   <a id="p100585"></a>INTEGER 3
   <a id="p100586"></a>SET {
   <a id="p100587"></a>SEQUENCE {
   <a id="p100588"></a>OBJECT IDENTIFIER '1 2 643 7 1 1 2 2'
   <a id="p100589"></a>NULL
   <a id="p100590"></a>}
   <a id="p100591"></a>}
   <a id="p100592"></a>SEQUENCE {
   <a id="p100593"></a>OBJECT IDENTIFIER tSTInfo (1 2 840 113549 1 9 16 1 4)
0. <a id="p100594"></a>{
   <a id="p100595"></a>OCTET STRING, encapsulates {
   <a id="p100596"></a>SEQUENCE {
   <a id="p100597"></a>INTEGER 1
   <a id="p100598"></a>OBJECT IDENTIFIER '1 2 3 4 1'
   <a id="p100599"></a>SEQUENCE {
   <a id="p100600"></a>SEQUENCE {
   <a id="p100601"></a>OBJECT IDENTIFIER '1 2 643 7 1 1 2 2'
   <a id="p100602"></a>NULL
   <a id="p100603"></a>}
   <a id="p100604"></a>OCTET STRING
   <a id="p100605"></a>8B 15 38 26 08 82 CE 63 0A E7 A6 64 B3 24 0E A2
   <a id="p100606"></a>EC 38 6F D1 67 8F 24 22 42 A1 16 C4 55 DA 55 A7
   <a id="p100607"></a>}
   <a id="p100608"></a>INTEGER 5
   <a id="p100609"></a>GeneralizedTime 28/12/2020 10:40:21 GMT
   <a id="p100610"></a>SEQUENCE {
   <a id="p100611"></a>INTEGER 1
0. <a id="p100612"></a>01 F4
1. <a id="p100613"></a>64
   <a id="p100614"></a>}
   <a id="p100615"></a>BOOLEAN TRUE
   <a id="p100616"></a>INTEGER 00 D1 61 AD 67 5B 17 F8 6D
0. <a id="p100617"></a>{
4. <a id="p100618"></a>{
   <a id="p100619"></a>SEQUENCE {
   <a id="p100620"></a>SET {
   <a id="p100621"></a>SEQUENCE {
   <a id="p100622"></a>OBJECT IDENTIFIER countryName (2 5 4 6)
   <a id="p100623"></a>PrintableString 'AU'
   <a id="p100624"></a>}
   <a id="p100625"></a>}
   <a id="p100626"></a>SET {
   <a id="p100627"></a>SEQUENCE {
   <a id="p100628"></a>OBJECT IDENTIFIER
   <a id="p100629"></a>stateOrProvinceName (2 5 4 8)
   <a id="p100630"></a>UTF8String 'Some-State'
   <a id="p100631"></a>}
   <a id="p100632"></a>}
   <a id="p100633"></a>SET {
   <a id="p100634"></a>SEQUENCE {
   <a id="p100635"></a>OBJECT IDENTIFIER
   <a id="p100636"></a>organizationName (2 5 4 10)
   <a id="p100637"></a>UTF8String 'Internet Widgits Pty Ltd'
   <a id="p100638"></a>}
   <a id="p100639"></a>}
   <a id="p100640"></a>}
   <a id="p100641"></a>}
   <a id="p100642"></a>}
   <a id="p100643"></a>}
   <a id="p100644"></a>}
   <a id="p100645"></a>}
   <a id="p100646"></a>}
0. <a id="p100647"></a>{
   <a id="p100648"></a>SEQUENCE {
   <a id="p100649"></a>SEQUENCE {
0. <a id="p100650"></a>{
   <a id="p100651"></a>INTEGER 2
   <a id="p100652"></a>}
   <a id="p100653"></a>INTEGER 1
   <a id="p100654"></a>SEQUENCE {
   <a id="p100655"></a>OBJECT IDENTIFIER
   <a id="p100656"></a>sha1WithRSAEncryption (1 2 840 113549 1 1 5)
   <a id="p100657"></a>NULL
   <a id="p100658"></a>}
   <a id="p100659"></a>SEQUENCE {
   <a id="p100660"></a>SET {
   <a id="p100661"></a>SEQUENCE {
   <a id="p100662"></a>OBJECT IDENTIFIER countryName (2 5 4 6)
   <a id="p100663"></a>PrintableString 'RU'
   <a id="p100664"></a>}
   <a id="p100665"></a>}
   <a id="p100666"></a>SET {
   <a id="p100667"></a>SEQUENCE {
   <a id="p100668"></a>OBJECT IDENTIFIER localityName (2 5 4 7)
   <a id="p100669"></a>UTF8String 'Default City'
   <a id="p100670"></a>}
   <a id="p100671"></a>}
   <a id="p100672"></a>SET {
   <a id="p100673"></a>SEQUENCE {
   <a id="p100674"></a>OBJECT IDENTIFIER organizationName (2 5 4 10)
   <a id="p100675"></a>UTF8String 'Default Company Ltd'
   <a id="p100676"></a>}
   <a id="p100677"></a>}
   <a id="p100678"></a>}
   <a id="p100679"></a>SEQUENCE {
   <a id="p100680"></a>UTCTime 23/12/2020 19:43:46 GMT
   <a id="p100681"></a>UTCTime 21/06/2025 19:43:46 GMT
   <a id="p100682"></a>}
   <a id="p100683"></a>SEQUENCE {
   <a id="p100684"></a>SET {
   <a id="p100685"></a>SEQUENCE {
   <a id="p100686"></a>OBJECT IDENTIFIER countryName (2 5 4 6)
   <a id="p100687"></a>PrintableString 'AU'
   <a id="p100688"></a>}
   <a id="p100689"></a>}
   <a id="p100690"></a>SET {
   <a id="p100691"></a>SEQUENCE {
   <a id="p100692"></a>OBJECT IDENTIFIER stateOrProvinceName (2 5 4 8)
   <a id="p100693"></a>UTF8String 'Some-State'
   <a id="p100694"></a>}
   <a id="p100695"></a>}
   <a id="p100696"></a>SET {
   <a id="p100697"></a>SEQUENCE {
   <a id="p100698"></a>OBJECT IDENTIFIER organizationName (2 5 4 10)
   <a id="p100699"></a>UTF8String 'Internet Widgits Pty Ltd'
   <a id="p100700"></a>}
   <a id="p100701"></a>}
   <a id="p100702"></a>}
   <a id="p100703"></a>SEQUENCE {
   <a id="p100704"></a>SEQUENCE {
   <a id="p100705"></a>OBJECT IDENTIFIER '1 2 643 7 1 1 1 1'
   <a id="p100706"></a>SEQUENCE {
   <a id="p100707"></a>OBJECT IDENTIFIER
   <a id="p100708"></a>cryptoProSignA (1 2 643 2 2 35 1)
   <a id="p100709"></a>OBJECT IDENTIFIER '1 2 643 7 1 1 2 2'
   <a id="p100710"></a>}
   <a id="p100711"></a>}
   <a id="p100712"></a>BIT STRING, encapsulates {
   <a id="p100713"></a>OCTET STRING
   <a id="p100714"></a>57 EF 78 C0 93 C5 FE E3 38 D8 B3 01 09 96 5C 37
   <a id="p100715"></a>6D F9 19 43 6C CE 69 65 5E E3 18 61 C3 9E BD 29
   <a id="p100716"></a>58 42 36 34 6B CF D1 45 99 DF FA 84 49 E2 65 C5
   <a id="p100717"></a>B0 29 1D 2F 6B 9A C0 E5 BE 10 66 36 EF B6 91 F5
   <a id="p100718"></a>}
   <a id="p100719"></a>}
3. <a id="p100720"></a>{
   <a id="p100721"></a>SEQUENCE {
   <a id="p100722"></a>SEQUENCE {
   <a id="p100723"></a>OBJECT IDENTIFIER extKeyUsage (2 5 29 37)
   <a id="p100724"></a>BOOLEAN TRUE
   <a id="p100725"></a>OCTET STRING, encapsulates {
   <a id="p100726"></a>SEQUENCE {
   <a id="p100727"></a>OBJECT IDENTIFIER
   <a id="p100728"></a>timeStamping (1 3 6 1 5 5 7 3 8)
   <a id="p100729"></a>}
   <a id="p100730"></a>}
   <a id="p100731"></a>}
   <a id="p100732"></a>}
   <a id="p100733"></a>}
   <a id="p100734"></a>}
   <a id="p100735"></a>SEQUENCE {
   <a id="p100736"></a>OBJECT IDENTIFIER
   <a id="p100737"></a>sha1WithRSAEncryption (1 2 840 113549 1 1 5)
   <a id="p100738"></a>NULL
   <a id="p100739"></a>}
   <a id="p100740"></a>BIT STRING
   <a id="p100741"></a>C6 B7 75 E9 0C 3D 77 3B FE 24 89 AF 11 B5 0F 1C
   <a id="p100742"></a>6C 7F 1F C1 14 88 A8 35 D8 9C 71 9E B9 E3 B9 19
   <a id="p100743"></a>73 E8 BC 3E 29 E1 98 27 18 04 C7 E5 F0 3F BB 8E
   <a id="p100744"></a>F0 2C 06 E0 B7 0E FB 4B D9 8A 8D F8 51 66 09 EE
   <a id="p100745"></a>5B 8B CE AE 77 6E 77 AA E0 F0 90 E5 0F D0 5A 08
   <a id="p100746"></a>5F 28 DB 2B 78 BA DD E8 F8 7B 59 A4 4F 34 A5 CC
   <a id="p100747"></a>6B D5 AF 37 B9 4F 16 E1 2E 37 C7 CD 64 32 FA 5D
   <a id="p100748"></a>7B D0 3A 3B 45 7F 9C 42 A2 97 B2 23 87 A6 6E B2
   <a id="p100749"></a>6F 7A 50 E8 E5 3F BE 7A 4A В3 E5 3A 1F D8 8B 3A
   <a id="p100750"></a>FF 82 50 6B 92 99 0A ED 5D B9 59 92 3D CE 0F A4
   <a id="p100751"></a>33 48 41 76 08 3E C9 24 B5 91 1A 08 F9 1A 55 3A
   <a id="p100752"></a>70 84 8B D8 FE A9 6E E5 BB D3 03 D2 D6 37 79 3F
   <a id="p100753"></a>B9 BF E0 4C F7 18 E8 67 04 13 6E F8 42 BE 12 22
   <a id="p100754"></a>E1 6A A0 23 41 64 97 07 50 76 62 10 37 50 0D 7D
   <a id="p100755"></a>C5 88 4D C6 2F 2A 65 E2 8B 54 B2 DC 6C 87 31 AE
   <a id="p100756"></a>32 C6 80 11 9D EF 5D 5B 58 6A F6 37 68 B5 BD 44
   <a id="p100757"></a>CA B2 6D 2F 61 3C 5F 20 07 A9 BE 85 4D AE C1 87
   <a id="p100758"></a>6A A0 5F 4C 6B E7 C2 77 07 37 8D 1A BC A8 DD 1A
   <a id="p100759"></a>7A 8B CF 71 3F E2 E7 60 59 F6 6B 93 FE EC 14 A4
   <a id="p100760"></a>34 F3 8A 73 FD D6 2E 7A C8 E0 3C E7 ВС 1A 20 EE
   <a id="p100761"></a>16 6D 2E DB 80 B2 E6 05 2D 62 5D CA 6C A0 94 97
   <a id="p100762"></a>E4 F1 03 05 31 97 63 3D B8 BB E1 11 42 D9 D2 95
   <a id="p100763"></a>F8 70 D4 BE 4E 5C 9B 0D B4 11 A0 69 A9 8C E2 1B
   <a id="p100764"></a>B3 25 61 66 C2 7D 2B 6F B6 8A 34 3F C8 70 C1 FE
   <a id="p100765"></a>BB CC 3B 86 37 45 26 21 5B D4 0F 3E D1 2F 60 1F
   <a id="p100766"></a>7B B7 B9 E0 85 CF 0F 97 6B 1F C3 72 B2 A4 7A 29
   <a id="p100767"></a>44 45 87 61 C5 4A AB EA 37 C8 FD 39 BA 75 4D 78
   <a id="p100768"></a>A9 79 EC 6B 1E 79 9C BE 24 9D FD 05 09 13 50 87
   <a id="p100769"></a>DB B3 64 F9 0C 0E 64 A6 18 8B 3E F3 CF D9 2F BC
   <a id="p100770"></a>11 57 C8 66 16 BF 35 25 90 EE 5B 56 12 4E 55 36
   <a id="p100771"></a>1F 49 71 72 EA 1B E4 76 0C E6 8E BC 30 FC 90 21
   <a id="p100772"></a>67 B2 9B 10 69 CF 34 F8 F7 75 CA F9 E5 70 15 E1
   <a id="p100773"></a>}
   <a id="p100774"></a>SEQUENCE {
   <a id="p100775"></a>SEQUENCE {
   <a id="p100776"></a>INTEGER 00 C6 92 54 8C 1F 90 52 23
   <a id="p100777"></a>SEQUENCE {
   <a id="p100778"></a>OBJECT IDENTIFIER
   <a id="p100779"></a>sha1WithRSAEncryption (1 2 840 113549 1 1 5)
   <a id="p100780"></a>NULL
   <a id="p100781"></a>}
   <a id="p100782"></a>SEQUENCE {
   <a id="p100783"></a>SET {
   <a id="p100784"></a>SEQUENCE {
   <a id="p100785"></a>OBJECT IDENTIFIER countryName (2 5 4 6)
   <a id="p100786"></a>PrintableString 'RU'
   <a id="p100787"></a>}
   <a id="p100788"></a>}
   <a id="p100789"></a>SET {
   <a id="p100790"></a>SEQUENCE {
   <a id="p100791"></a>OBJECT IDENTIFIER localityName (2 5 4 7)
   <a id="p100792"></a>UTF8String 'Default City'
   <a id="p100793"></a>}
   <a id="p100794"></a>}
   <a id="p100795"></a>SET {
   <a id="p100796"></a>SEQUENCE {
   <a id="p100797"></a>OBJECT IDENTIFIER organizationName (2 5 4 10)
   <a id="p100798"></a>UTF8String 'Default Company Ltd'
   <a id="p100799"></a>}
   <a id="p100800"></a>}
   <a id="p100801"></a>}
   <a id="p100802"></a>SEQUENCE {
   <a id="p100803"></a>UTCTime 23/12/2020 19:42:07 GMT
   <a id="p100804"></a>UTCTime 23/12/2024 19:42:07 GMT
   <a id="p100805"></a>}
   <a id="p100806"></a>SEQUENCE {
   <a id="p100807"></a>SET {
   <a id="p100808"></a>SEQUENCE {
   <a id="p100809"></a>OBJECT IDENTIFIER countryName (2 5 4 6)
   <a id="p100810"></a>PrintableString 'RU'
   <a id="p100811"></a>}
   <a id="p100812"></a>}
   <a id="p100813"></a>SET {
   <a id="p100814"></a>SEQUENCE {
   <a id="p100815"></a>OBJECT IDENTIFIER localityName (2 5 4 7)
   <a id="p100816"></a>UTF8String 'Default City'
   <a id="p100817"></a>}
   <a id="p100818"></a>}
   <a id="p100819"></a>SET {
   <a id="p100820"></a>SEQUENCE {
   <a id="p100821"></a>OBJECT IDENTIFIER organizationName (2 5 4 10)
   <a id="p100822"></a>UTF8String 'Default Company Ltd'
   <a id="p100823"></a>}
   <a id="p100824"></a>}
   <a id="p100825"></a>}
   <a id="p100826"></a>SEQUENCE {
   <a id="p100827"></a>SEQUENCE {
   <a id="p100828"></a>OBJECT IDENTIFIER
   <a id="p100829"></a>rsaEncryption (1 2 840 113549 1 1 1)
   <a id="p100830"></a>NULL
   <a id="p100831"></a>}
   <a id="p100832"></a>BIT STRING, encapsulates {
   <a id="p100833"></a>SEQUENCE {
   <a id="p100834"></a>INTEGER
   <a id="p100835"></a>00 DB C8 31 44 45 EE 8D 7D E6 6F 40 BC 73 48 DE
   <a id="p100836"></a>76 F7 19 EB 4A 1B AF 99 68 CE B6 6E 64 9D 61 A2
   <a id="p100837"></a>51 6C 6E 70 D9 9F 13 06 B2 B9 09 A7 E5 08 BE 1A
   <a id="p100838"></a>65 D0 B7 CA C7 CC 9D 3F F5 C1 EC C8 F1 E8 E2 18
   <a id="p100839"></a>EE 02 8E A6 0B BD B4 87 82 00 87 25 0D 4D 96 40
   <a id="p100840"></a>19 4A 81 DF 19 E8 2B 9F F9 22 D6 52 CB 52 F5 37
   <a id="p100841"></a>5D 3C 3E E7 E1 30 90 1A AD B9 77 D6 B8 10 C9 8C
   <a id="p100842"></a>85 5E E6 AF 6F 26 89 47 02 2B 9F 9C 3B F4 EE E2
   <a id="p100843"></a>86 7A 0E 74 FD F9 90 58 30 74 DA ED 27 4E 0A 56
   <a id="p100844"></a>BA E9 03 27 FC E9 74 E1 AB 30 BA DB C3 DA 12 A7
   <a id="p100845"></a>48 5D 44 49 95 A1 9D 68 62 12 60 38 1E 76 3F D6
   <a id="p100846"></a>CB 56 B7 93 A3 8D 06 29 0B 45 СВ 8A 8F 56 2C 12
   <a id="p100847"></a>F5 78 F7 96 25 8F A4 09 FE 9B 5E F3 E5 A0 0F DF
   <a id="p100848"></a>7C 30 4A 1D A6 3B 01 00 06 11 5A EA 2C F9 13 A7
   <a id="p100849"></a>A3 9E DD 71 EF 1F B1 2C 37 9F 3E 2B AF BB 5C 96
   <a id="p100850"></a>B0 27 2C 94 28 22 8C 57 09 FD 00 09 DE 61 C8 3D
   <a id="p100851"></a>E2 6F 7F A0 03 AC BD FC A5 A1 1A 56 78 D0 62 86
   <a id="p100852"></a>A9 73 F6 C1 35 8A 18 DA F3 E8 40 38 99 D7 83 20
   <a id="p100853"></a>E1 0E 59 6F 04 AB C3 D9 F2 8E 5E 97 1B 5C 48 3D
   <a id="p100854"></a>6D 7C BA 43 D8 4E 4E 62 F4 3D BC 1E 2A AE 91 08
   <a id="p100855"></a>F3 8D D6 AB B8 2E 0E 12 0C A5 87 80 A4 48 11 99
   <a id="p100856"></a>E1 3D D1 21 D5 BE 02 52 A3 5F F9 68 34 88 86 F8
   <a id="p100857"></a>AA E6 F2 0C FD FD AE A4 97 02 56 75 35 B0 8E 38
   <a id="p100858"></a>37 F8 21 52 C3 72 31 34 76 81 EC B1 19 84 24 A4
   <a id="p100859"></a>06 11 4F B6 1F AD 0A 79 9E 3E 14 9A 55 2A A5 85
   <a id="p100860"></a>3D 3D DF 19 95 9E C6 8A B2 F4 6F 9F E6 55 E5 2F
   <a id="p100861"></a>55 3D 1D 41 7A 25 91 C5 BF 76 10 E7 8E 3D 81 3B
   <a id="p100862"></a>63 2D AC 2F F2 3D 88 EA 65 93 CB DF CD 1C 39 C3
   <a id="p100863"></a>A5 AB 9C 12 07 D3 C9 31 D1 B9 8B 93 BC 83 9B 27
   <a id="p100864"></a>66 D4 68 41 6A 8A 5E 71 0A B6 50 6A 0F 52 AD 47
   <a id="p100865"></a>BA DB 3E D0 51 CA 3D F5 80 24 EE 96 3A 96 CC C6
   <a id="p100866"></a>9A 83 81 01 DA 4D 13 66 46 DB D3 98 AB 1A 2D 39
   <a id="p100867"></a>D9
   <a id="p100868"></a>INTEGER 65537
   <a id="p100869"></a>}
   <a id="p100870"></a>}
   <a id="p100871"></a>}
   <a id="p100872"></a>}
   <a id="p100873"></a>SEQUENCE {
   <a id="p100874"></a>OBJECT IDENTIFIER
   <a id="p100875"></a>sha1WithRSAEncryption (1 2 840 113549 1 1 5)
   <a id="p100876"></a>NULL
   <a id="p100877"></a>}
   <a id="p100878"></a>BIT STRING
   <a id="p100879"></a>0A 42 BF 32 65 93 A1 94 CB 79 67 A8 B8 E0 77 FD
   <a id="p100880"></a>F4 B3 72 FA 90 D9 92 В0 6A EA 87 73 8A D9 64 FD
   <a id="p100881"></a>EB A3 D3 85 F4 AC 7B AA F7 9B BE 72 08 B3 8B 49
   <a id="p100882"></a>6C 43 12 DF 9C 72 BB 80 FE C3 96 56 E7 04 54 6A
   <a id="p100883"></a>13 0D EE 16 E1 88 C2 ED 58 0A 1A 81 FA DA BA 19
   <a id="p100884"></a>A2 7F FF 6E 66 7E 70 35 A0 D8 47 98 60 C5 4B 03
   <a id="p100885"></a>03 8E D1 7C F1 CD AE CE A8 80 61 DC AF C6 3E 74
   <a id="p100886"></a>C4 12 19 7D D2 47 9B 93 88 CC 7F 07 7A BF C8 A4
   <a id="p100887"></a>D8 2B DD 4D C8 5B 3D 11 55 BD 70 4D C5 19 4F 46
   <a id="p100888"></a>89 37 76 31 CB 34 F1 DB 55 C9 DF 94 30 3A 7F EF
   <a id="p100889"></a>96 FC 53 8E 3F 5B EA 36 57 9D 91 94 4C 85 94 70
   <a id="p100890"></a>15 0D 52 DF 96 05 ED B6 0C A1 3A 57 F6 DD BF 87
   <a id="p100891"></a>FE 25 E7 49 BD 55 74 CC C6 A7 7B DB D1 9E DA 47
   <a id="p100892"></a>0E F7 B6 8D 8D 68 70 2B 1C A4 45 8C 14 B5 3C 15
   <a id="p100893"></a>80 E4 A7 9D 22 06 67 5B 8E 75 F8 1B 6A 76 F8 3A
   <a id="p100894"></a>64 4B CA 13 FE 28 4F 02 62 4E E6 AB 89 B5 50 39
   <a id="p100895"></a>E1 99 C5 69 36 DA 41 F9 B7 EC 83 16 3D 4A A7 90
   <a id="p100896"></a>A3 08 39 7E 23 0B 55 CB 63 96 11 46 02 97 94 C7
   <a id="p100897"></a>2A D6 A6 2C 3C 20 B4 48 3B FE 8D EC 0E E0 A4 D8
   <a id="p100898"></a>FF 5F B2 94 52 BE 53 B7 C6 B8 89 E0 98 8C 53 C1
   <a id="p100899"></a>DE B0 2E 8B 5C 89 1E 66 67 F3 BD 68 56 86 FB 15
   <a id="p100900"></a>4A FC 43 17 33 4D E3 DF 91 19 2D 7D 7E 70 8B 5D
   <a id="p100901"></a>D3 81 A4 E9 5D 6A 1E DD 8B 8C 21 7B 7A 5C 8B F9
   <a id="p100902"></a>2F A1 DE 8C 8D 31 3D 40 00 40 80 98 32 CC B1 AC
   <a id="p100903"></a>05 42 D5 20 E5 02 F7 81 67 86 ED 11 51 64 4B 10
   <a id="p100904"></a>E2 DB C5 7B 71 B9 6A B3 C2 F5 5B E8 E8 0A FB EB
   <a id="p100905"></a>32 63 DF A2 2A 20 B6 EA 18 53 AA D6 65 14 9C 42
   <a id="p100906"></a>38 97 22 A5 09 26 B8 6E 47 9E 82 91 D0 C3 F5 2E
   <a id="p100907"></a>AD 95 85 48 2C 56 EA DC 3C BA DA D4 9A 69 0A 95
   <a id="p100908"></a>93 46 1F 91 66 56 25 21 CE 53 A5 1A AD C1 00 75
   <a id="p100909"></a>C8 26 64 52 2C A8 CA 04 05 AE 65 62 93 C3 28 D5
   <a id="p100910"></a>00 8F F0 A1 85 14 B0 A5 79 BC D3 4B 01 C4 E4 41
   <a id="p100911"></a>}
   <a id="p100912"></a>}
   <a id="p100913"></a>SET {
   <a id="p100914"></a>SEQUENCE {
   <a id="p100915"></a>INTEGER 1
   <a id="p100916"></a>SEQUENCE {
   <a id="p100917"></a>SEQUENCE {
   <a id="p100918"></a>SET {
   <a id="p100919"></a>SEQUENCE {
   <a id="p100920"></a>OBJECT IDENTIFIER countryName (2 5 4 6)
   <a id="p100921"></a>PrintableString 'RU'
   <a id="p100922"></a>}
   <a id="p100923"></a>}
   <a id="p100924"></a>SET {
   <a id="p100925"></a>SEQUENCE {
   <a id="p100926"></a>OBJECT IDENTIFIER localityName (2 5 4 7)
   <a id="p100927"></a>UTF8String 'Default City'
   <a id="p100928"></a>}
   <a id="p100929"></a>}
   <a id="p100930"></a>SET {
   <a id="p100931"></a>SEQUENCE {
   <a id="p100932"></a>OBJECT IDENTIFIER organizationName (2 5 4 10)
   <a id="p100933"></a>UTF8String 'Default Company Ltd'
   <a id="p100934"></a>}
   <a id="p100935"></a>}
   <a id="p100936"></a>}
   <a id="p100937"></a>INTEGER 1
   <a id="p100938"></a>}
   <a id="p100939"></a>SEQUENCE {
   <a id="p100940"></a>OBJECT IDENTIFIER '1 2 643 7 1 1 2 2'
   <a id="p100941"></a>NULL
   <a id="p100942"></a>}
0. <a id="p100943"></a>{
   <a id="p100944"></a>SEQUENCE {
   <a id="p100945"></a>OBJECT IDENTIFIER contentType (1 2 840 113549 1 9 3)
   <a id="p100946"></a>SET {
   <a id="p100947"></a>OBJECT IDENTIFIER
   <a id="p100948"></a>tSTInfo (1 2 840 113549 1 9 16 1 4)
   <a id="p100949"></a>}
   <a id="p100950"></a>}
   <a id="p100951"></a>SEQUENCE {
   <a id="p100952"></a>OBJECT IDENTIFIER signingTime (1 2 840 113549 1 9 5)
   <a id="p100953"></a>SET {
   <a id="p100954"></a>UTCTime 28/12/2020 10:40:21 GMT
   <a id="p100955"></a>}
   <a id="p100956"></a>}
   <a id="p100957"></a>SEQUENCE {
   <a id="p100958"></a>OBJECT IDENTIFIER
   <a id="p100959"></a>signingCertificate (1 2 840 113549 1 9 16 2 12)
   <a id="p100960"></a>SET {
   <a id="p100961"></a>SEQUENCE {
   <a id="p100962"></a>SEQUENCE {
   <a id="p100963"></a>SEQUENCE {
   <a id="p100964"></a>OCTET STRING
   <a id="p100965"></a>FA B4 1E 53 D8 1A FF 02 36 5A 7D B6 75 D4 10 E0
   <a id="p100966"></a>F4 74 C7 40
   <a id="p100967"></a>}
   <a id="p100968"></a>}
   <a id="p100969"></a>}
   <a id="p100970"></a>}
   <a id="p100971"></a>}
   <a id="p100972"></a>SEQUENCE {
   <a id="p100973"></a>OBJECT IDENTIFIER
   <a id="p100974"></a>messageDigest (1 2 840 113549 1 9 4)
   <a id="p100975"></a>SET {
   <a id="p100976"></a>OCTET STRING
   <a id="p100977"></a>D1 63 88 44 CF A6 74 B4 CA 16 98 F7 82 79 B3 DC
   <a id="p100978"></a>C0 CD AB 31 F0 39 97 BD D2 82 C5 45 E0 D6 32 D8
   <a id="p100979"></a>}
   <a id="p100980"></a>}
   <a id="p100981"></a>}
   <a id="p100982"></a>SEQUENCE {
   <a id="p100983"></a>OBJECT IDENTIFIER '1 2 643 7 1 1 1 1'
   <a id="p100984"></a>NULL
   <a id="p100985"></a>}
   <a id="p100986"></a>OCTET STRING
   <a id="p100987"></a>C7 08 50 E4 87 03 E4 6C B0 5D C8 D8 94 C5 82 04
   <a id="p100988"></a>37 F3 EE 6B 55 06 4F 94 B7 0A 95 9F 68 5A 0F 6A
   <a id="p100989"></a>63 D2 2C 6C 43 18 BA 1F 7A FF 7C 73 01 CB A0 5F
   <a id="p100990"></a>D8 E2 EF B5 DA 79 07 66 0E 6C 62 85 96 49 71 03
   <a id="p100991"></a>}
   <a id="p100992"></a>}
   <a id="p100993"></a>}
   <a id="p100994"></a>}
   <a id="p100995"></a>}
   <a id="p100996"></a>}
   <a id="p100997"></a>Штамп времени в кодировке Base64 [[6]](#p101189).
   <a id="p100998"></a>MIIKszADAgEAMIIKqgYJKoZIhvcNAQcCoIIKmzCCCpcCAQMxDjAMBggqhQMHAQECAgUAMIHKBgsqhkiG9w0BCRABB
   KCBugSBtzCBtAIBAQYEKgMEATAwMAwGCCqFAwcBAQICBQAEIIsVOCYIgs5jCuemZLMkDqLsOG/RZ48kIkKhFsRV2
   lWnAgEFGA8yMDIwMTIyODEwNDAyMVowCgIBAYACAfSBAWQBAf8CCQDRYa1nWxf4baBJpEcwRTELMAkGA1UEBhMCQ
   VUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZKCCCGYwggNeMI
   IBRqADAgECAgEBMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlJVMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHD
   AaBgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQwHhcNMjAxMjIzMTk0MzQ2WhcNMjUwNjIxMTk0MzQ2WjBFMQswCQY
   DVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMGYw
   HwYIKoUDBwEBAQEwEwYHKoUDAgIjAQYIKoUDBwEBAgIDQwAEQFfveMCTxf7jONizAQmWXDdt+RlDbM5pZV7jGGHDn
   r0pWEI2NGvP0UWZ3/qESeJlxbApHS9rmsDlvhBmNu+2kfWjGjAYMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMA0GCS
   qGSIb3DQEBBQUAA4ICAQDGt3XpDD13O/4kia8RtQ8cbH8fwRSIqDXYnHGeueO5GXPovD4p4ZgnGATH5fA/u47wLAb
   gtw77S9mKjfhRZgnuW4vOrndud6rg8JDlD9BaCF8o2yt4ut3o+HtZpE80pcxr1a83uU8W4S43x81kMvpde9A6O0V/
   nEKil7Ijh6Zusm96UOjlP756SrPlOh/Yizr/glBrkpkK7V25WZI9zg+kM0hBdgg+ySS1kRoI+RpVOnCEi9j+qW7lu
   9MD0tY3eT+5v+BM9xjoZwQTbvhCvhIi4WqgI0FklwdQdmIQN1ANfcWITcYvKmXii1Sy3GyHMa4yxoARne9dW1hq9j
   dotb1EyrJtL2E8XyAHqb6FTa7Bh2qgX0xr58J3BzeNGryo3Rp6i89xP+LnYFn2a5P+7BSkNPOKc/3WLnrI4DznvBo
   g7hZtLtuAsuYFLWJdymyglJfk8QMFMZdjPbi74RFC2dKV+HDUvk5cmw20EaBpqYziG7MlYWbCfStvtoo0P8hwwf67
   zDuGN0UmIVvUDz7RL2Afe7e54IXPD5drH8NysqR6KURFh2HFSqvqN8j9Obp1TXipeexrHnmcviSd/QUJE1CH27Nk+
   QwOZKYYiz7zz9kvvBFXyGYWvzUlkO5bVhJOVTYfSXFy6hvkdgzmjrww/JAhZ7KbEGnPNPj3dcr55XAV4TCCBQAwgg
   LoAgkAxpJUjB+QUiMwDQYJKoZIhvcNAQEFBQAwQjELMAkGA1UEBhMCUlUxFTATBgNVBAcMDERlZmF1bHQgQ2l0eTE
   cMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDAeFw0yMDEyMjMxOTQyMDdaFw0yNDEyMjMxOTQyMDdaMEIxCzAJ
   BgNVBAYTAlJVMRUwEwYDVQQHDAxEZWZhdWx0IENpdHkxHDAaBgNVBAoME0RlZmF1bHQgQ29tcGFueSBMdGQwggIiM
   A0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDbyDFERe6NfeZvQLxzSN529xnrShuvmWjOtm5knWGiUWxucNmfEw
   ayuQmn5Qi+GmXQt8rHzJ0/9cHsyPHo4hjuAo6mC720h4IAhyUNTZZAGUqB3xnoK5/5ItZSy1L1Nl08PufhMJAarbl
   31rgQyYyFXuavbyaJRwIrn5w79O7ihnoOdP35kFgwdNrtJ04KVrrpAyf86XThqzC628PaEqdIXURJlaGdaGISYDge
   dj/Wy1a3k6ONBikLRcuKj1YsEvV495Ylj6QJ/pte8+WgD998MEodpjsBAAYRWuos+ROno57dce8fsSw3nz4rr7tcl
   rAnLJQoIoxXCf0ACd5hyD3ib3+gA6y9/KWhGlZ40GKGqXP2wTWKGNrz6EA4mdeDIOEOWW8Eq8PZ8o5elxtcSD1tfL
   pD2E5OYvQ9vB4qrpEI843Wq7guDhIMpYeApEgRmeE90SHVvgJSo1/5aDSIhviq5vIM/f2upJcCVnU1sI44N/ghUsN
   yMTR2geyxGYQkpAYRT7YfrQp5nj4UmlUqpYU9Pd8ZlZ7GirL0b5/mVeUvVT0dQXolkcW/dhDnjj2BO2MtrC/yPYjq
   ZZPL380cOcOlq5wSB9PJMdG5i5O8g5snZtRoQWqKXnEKtlBqDlKtR7rbPtBRyj3lgCTuljqWzMaag4EB2k0TZkbb0
   5irGi052QIDAQABMA0GCSqGSIb3DQEBBQUAA4ICAQAKQr8yZZOhlMt5Z6i44Hf99LNy+pDZkrBq6odzitlk/euj04
   X0rHuq95u+cgizi0lsQxLfnHK7gP7DllbnBFRqEw3uFuGIwu1YChqB+tq6GaJ//25mfnA1oNhHmGDFSwMDjtF88c2
   uzqiAYdyvxj50xBIZfdJHm5OIzH8Her/IpNgr3U3IWz0RVb1wTcUZT0aJN3YxyzTx21XJ35QwOn/vlvxTjj9b6jZX
   nZGUTIWUcBUNUt+WBe22DKE6V/bdv4f+JedJvVV0zMane9vRntpHDve2jY1ocCscpEWMFLU8FYDkp50iBmdbjnX4G
   2p2+DpkS8oT/ihPAmJO5quJtVA54ZnFaTbaQfm37IMWPUqnkKMIOX4jC1XLY5YRRgKXlMcq1qYsPCC0SDv+jewO4K
   TY/1+ylFK+U7fGuIngmIxTwd6wLotciR5mZ/O9aFaG+xVK/EMXM03j35EZLX1+cItd04Gk6V1qHt2LjCF7elyL+S+
   h3oyNMT1AAECAmDLMsawFQtUg5QL3gWeG7RFRZEsQ4tvFe3G5arPC9Vvo6Ar76zJj36IqILbqGFOq1mUUnEI4lyKl
   CSa4bkeegpHQw/UurZWFSCxW6tw8utrUmmkKlZNGH5FmViUhzlOlGq3BAHXIJmRSLKjKBAWuZWKTwyjVAI/woYUUs
   KV5vNNLAcTkQTGCAUkwggFFAgEBMEcwQjELMAkGA1UEBhMCUlUxFTATBgNVBAcMDERlZmF1bHQgQ2l0eTEcMBoGA1
   UECgwTRGVmYXVsdCBDb21wYW55IEx0ZAIBATAMBggqhQMHAQECAgUAoIGYMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0
   BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjAxMjI4MTA0MDIxWjArBgsqhkiG9w0BCRACDDEcMBowGDAWBBT6tB5T2Br/
   AjZafbZ11BDg9HTHQDAvBgkqhkiG9w0BCQQxIgQg0WOIRM+mdLTKFpj3gnmz3MDNqzHwOZe90oLFReDWMtgwDAYIK
   oUDBwEBAQEFAARAxwhQ5IcD5GywXcjYlMWCBDfz7mtVBk+UtwqVn2haD2pj0ixsQxi6H3r/fHMBy6Bf2OLvtdp5B2
   YObGKFlklxAw==

<a id="p100999"></a>Г.2 Взаимодействие с TSA без запроса сертификата TSA, без указания nonce и с использованием алгоритма, определенного в [разделе 8](https://bukva.ai/docs/gost-r-34-11-2012#p100217) ГОСТ Р 34.11-2012, с длиной хэш-значения 512 бит
<a id="p101000"></a>Г.2.1 Запрос
<a id="p101001"></a>Запрос к службе штампов времени в абстрактно-синтаксической нотации версии 1 (АСН.1), определенной в ГОСТ Р ИСО/МЭК 8824.
<a id="p101002"></a>SEQUENCE {
<a id="p101003"></a>  INTEGER 1
<a id="p101004"></a>  SEQUENCE {
<a id="p101005"></a>    SEQUENCE {
<a id="p101006"></a>      OBJECT IDENTIFIER '1 2 643 7 1 1 2 3'
<a id="p101007"></a>      NULL
<a id="p101008"></a>      }
<a id="p101009"></a>    OCTET STRING
<a id="p101010"></a>      FB 9C 70 31 84 23 43 8A 7C 7F 75 75 B5 B5 09 81
<a id="p101011"></a>      7C 05 72 D5 77 23 78 0D 69 72 97 35 1D 43 0D 9B
<a id="p101012"></a>      F0 7E 4A 20 E6 F6 4C CF 06 9B 9B 78 A8 DA 40 17
<a id="p101013"></a>      96 24 05 83 C9 1D EE CA 3C F1 4B 20 2B F0 EE A6
<a id="p101014"></a>    }
<a id="p101015"></a>  }
<a id="p101016"></a>Запрос к службе штампов времени в кодировке Base64 [[6]](#p101189).
<a id="p101017"></a>MFUCAQEwUDAMBggqhQMHAQECAwUABED7nHAxhCNDinx/dXW1tQmBfAVy1XcjeA1pcpc1HUMNm/B+SiDm9kzPBpubeKjaQBeWJAWDyR3uyjzxSyAr8O6m
<a id="p101018"></a>Г.2.2 Ответ
<a id="p101019"></a>Штамп времени в абстрактно-синтаксической нотации версии 1 (АСН.1), определенной в ГОСТ Р ИСО/МЭК 8824.
<a id="p101020"></a>SEQUENCE {
<a id="p101021"></a>  SEQUENCE {
<a id="p101022"></a>    INTEGER 0
<a id="p101023"></a>    }
<a id="p101024"></a>  SEQUENCE {
<a id="p101025"></a>    OBJECT IDENTIFIER signedData (1 2 840 113549 1 7 2)

0. <a id="p101026"></a>{
   <a id="p101027"></a>SEQUENCE {
   <a id="p101028"></a>INTEGER 3
   <a id="p101029"></a>SET {
   <a id="p101030"></a>SEQUENCE {
   <a id="p101031"></a>OBJECT IDENTIFIER '1 2 643 7 1 1 2 2'
   <a id="p101032"></a>NULL
   <a id="p101033"></a>}
   <a id="p101034"></a>}
   <a id="p101035"></a>SEQUENCE {
   <a id="p101036"></a>OBJECT IDENTIFIER tSTInfo (1 2 840 113549 1 9 16 1 4)
0. <a id="p101037"></a>{
   <a id="p101038"></a>OCTET STRING, encapsulates {
   <a id="p101039"></a>SEQUENCE {
   <a id="p101040"></a>INTEGER 1
   <a id="p101041"></a>OBJECT IDENTIFIER '1 2 3 4 1'
   <a id="p101042"></a>SEQUENCE {
   <a id="p101043"></a>SEQUENCE {
   <a id="p101044"></a>OBJECT IDENTIFIER '1 2 643 7 1 1 2 3'
   <a id="p101045"></a>NULL
   <a id="p101046"></a>}
   <a id="p101047"></a>OCTET STRING
   <a id="p101048"></a>FB 9C 70 31 84 23 43 8A 7C 7F 75 75 B5 B5 09 81
   <a id="p101049"></a>7C 05 72 D5 77 23 78 0D 69 72 97 35 1D 43 0D 9B
   <a id="p101050"></a>F0 7E 4A 20 E6 F6 4C CF 06 9B 9B 78 A8 DA 40 17
   <a id="p101051"></a>96 24 05 83 C9 1D EE CA 3C F1 4B 20 2B F0 EE A6
   <a id="p101052"></a>}
   <a id="p101053"></a>INTEGER 4
   <a id="p101054"></a>GeneralizedTime 28/12/2020 10:40:06 GMT
   <a id="p101055"></a>SEQUENCE {
   <a id="p101056"></a>INTEGER 1
0. <a id="p101057"></a>01 F4
1. <a id="p101058"></a>64
   <a id="p101059"></a>}
   <a id="p101060"></a>BOOLEAN TRUE
0. <a id="p101061"></a>{
4. <a id="p101062"></a>{
   <a id="p101063"></a>SEQUENCE {
   <a id="p101064"></a>SET {
   <a id="p101065"></a>SEQUENCE {
   <a id="p101066"></a>OBJECT IDENTIFIER countryName (2 5 4 6)
   <a id="p101067"></a>PrintableString 'AU'
   <a id="p101068"></a>}
   <a id="p101069"></a>}
   <a id="p101070"></a>SET {
   <a id="p101071"></a>SEQUENCE {
   <a id="p101072"></a>OBJECT IDENTIFIER
   <a id="p101073"></a>stateOrProvinceName (2 5 4 8)
   <a id="p101074"></a>UTF8String 'Some-State'
   <a id="p101075"></a>}
   <a id="p101076"></a>}
   <a id="p101077"></a>SET {
   <a id="p101078"></a>SEQUENCE {
   <a id="p101079"></a>OBJECT IDENTIFIER organizationName (2 5 4 10)
   <a id="p101080"></a>UTF8String 'Internet Widgits Pty Ltd'
   <a id="p101081"></a>}
   <a id="p101082"></a>}
   <a id="p101083"></a>}
   <a id="p101084"></a>}
   <a id="p101085"></a>}
   <a id="p101086"></a>}
   <a id="p101087"></a>}
   <a id="p101088"></a>}
   <a id="p101089"></a>}
   <a id="p101090"></a>SET {
   <a id="p101091"></a>SEQUENCE {
   <a id="p101092"></a>INTEGER 1
   <a id="p101093"></a>SEQUENCE {
   <a id="p101094"></a>SEQUENCE {
   <a id="p101095"></a>SET {
   <a id="p101096"></a>SEQUENCE {
   <a id="p101097"></a>OBJECT IDENTIFIER countryName (2 5 4 6)
   <a id="p101098"></a>PrintableString 'RU'
   <a id="p101099"></a>}
   <a id="p101100"></a>}
   <a id="p101101"></a>SET {
   <a id="p101102"></a>SEQUENCE {
   <a id="p101103"></a>OBJECT IDENTIFIER localityName (2 5 4 7)
   <a id="p101104"></a>UTF8String 'Default City'
   <a id="p101105"></a>}
   <a id="p101106"></a>}
   <a id="p101107"></a>SET {
   <a id="p101108"></a>SEQUENCE {
   <a id="p101109"></a>OBJECT IDENTIFIER organizationName (2 5 4 10)
   <a id="p101110"></a>UTF8String 'Default Company Ltd'
   <a id="p101111"></a>}
   <a id="p101112"></a>}
   <a id="p101113"></a>}
   <a id="p101114"></a>INTEGER 1
   <a id="p101115"></a>}
   <a id="p101116"></a>SEQUENCE {
   <a id="p101117"></a>OBJECT IDENTIFIER '1 2 643 7 1 1 2 2'
   <a id="p101118"></a>NULL
   <a id="p101119"></a>}
0. <a id="p101120"></a>{
   <a id="p101121"></a>SEQUENCE {
   <a id="p101122"></a>OBJECT IDENTIFIER contentType (1 2 840 113549 1 9 3)
   <a id="p101123"></a>SET {
   <a id="p101124"></a>OBJECT IDENTIFIER tSTInfo (1 2 840 113549 1 9 16 1 4)
   <a id="p101125"></a>}
   <a id="p101126"></a>}
   <a id="p101127"></a>SEQUENCE {
   <a id="p101128"></a>OBJECT IDENTIFIER signingTime (1 2 840 113549 1 9 5)
   <a id="p101129"></a>SET {
   <a id="p101130"></a>UTCTime 28/12/2020 10:40:06 GMT
   <a id="p101131"></a>}
   <a id="p101132"></a>}
   <a id="p101133"></a>SEQUENCE {
   <a id="p101134"></a>OBJECT IDENTIFIER
   <a id="p101135"></a>signingCertificate (1 2 840 113549 1 9 16 2 12)
   <a id="p101136"></a>SET {
   <a id="p101137"></a>SEQUENCE {
   <a id="p101138"></a>SEQUENCE {
   <a id="p101139"></a>SEQUENCE {
   <a id="p101140"></a>OCTET STRING
   <a id="p101141"></a>FA B4 1E 53 D8 1A FF 02 36 5A 7D B6 75 D4 10 E0
   <a id="p101142"></a>F4 74 C7 40
   <a id="p101143"></a>}
   <a id="p101144"></a>}
   <a id="p101145"></a>}
   <a id="p101146"></a>}
   <a id="p101147"></a>}
   <a id="p101148"></a>SEQUENCE {
   <a id="p101149"></a>OBJECT IDENTIFIER messageDigest (1 2 840 113549 1 9 4)
   <a id="p101150"></a>SET {
   <a id="p101151"></a>OCTET STRING
   <a id="p101152"></a>61 B0 FE 01 F6 E4 4F EC 21 A8 D3 A6 D3 55 0A 5B
   <a id="p101153"></a>A1 99 FE CD F7 CD 16 F1 8C 56 A9 F7 7A FF 34 87
   <a id="p101154"></a>}
   <a id="p101155"></a>}
   <a id="p101156"></a>}
   <a id="p101157"></a>SEQUENCE {
   <a id="p101158"></a>OBJECT IDENTIFIER '1 2 643 7 1 1 1 1'
   <a id="p101159"></a>NULL
   <a id="p101160"></a>}
   <a id="p101161"></a>OCTET STRING
   <a id="p101162"></a>45 2C 78 42 9C 5A 73 12 25 3B BD 96 FA F0 13 DC
   <a id="p101163"></a>13 DC C8 25 67 AD 71 F6 CB BB F7 CA F9 6D C7 55
   <a id="p101164"></a>43 5C 7D 8A 5A 86 D8 D0 E9 47 72 2A 2E D0 47 2E
   <a id="p101165"></a>89 0A 34 7A E3 A3 58 E4 EE EB 31 2B 78 B6 8D C1
   <a id="p101166"></a>}
   <a id="p101167"></a>}
   <a id="p101168"></a>}
   <a id="p101169"></a>}
   <a id="p101170"></a>}
   <a id="p101171"></a>}
   <a id="p101172"></a>Штамп времени в кодировке Base64 [[6]](#p101189).
   <a id="p101173"></a>MIICXjADAgEAMIICVQYJKoZIhvcNAQcCoIICRjCCAkICAQMxDjAMBggqhQMHAQECAgUAMIHfBgsqhkiG9w0BCR
   ABBKCBzwSBzDCByQIBAQYEKgMEATBQMAwGCCqFAwcBAQIDBQAEQPuccDGEI0OKfH91dbW1CYF8BXLVdyN4DWly
   lzUdQw2b8H5KIOb2TM8Gm5t4qNpAF5YkBYPJHe7KPPFLICvw7qYCAQQYDzIwMjAxMjI4MTA0MDA2WjAKAgEBgA
   IB9IEBZAEB/6BJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVy
   bmV0IFdpZGdpdHMgUHR5IEx0ZDGCAUkwggFFAgEBMEcwQjELMAkGA1UEBhMCUlUxFTATBgNVBAcMDERlZmF1bH
   QgQ2l0eTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZAIBATAMBggqhQMHAQECAgUAoIGYMBoGCSqGSIb
   3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjAxMjI4MTA0MDA2WjArBgsqhkiG9w0BCRAC-
   DDEcMBowGDAWBBT6tB5T2Br/AjZafbZ11BDg9HTHQDAvBgkqhkiG9w0BCQQxIgQgYbD+AfbkT+whqNOm01UKW6GZ/
   s33zRbxjFap93r/NIcwDAYIKoUDBwEBAQEFAARARSx4QpxacxIlO72W+vAT3BPcyCVnrXH2y7v3yvltx1VDXH2KWo
   bY0OlHciou0EcuiQo0euOjWOTu6zEreLaNwQ==
   <a id="p101174"></a>БИБЛИОГРАФИЯ
   <a id="p101175"></a>[1]
   <a id="p101176"></a>Федеральный закон от 6 апреля 2011 г. N 63-ФЗ "Об электронной подписи"
   <a id="p101177"></a>[2]
   <a id="p101178"></a>IETF RFC 5280

<a id="p101179"></a>Cooper D., Santesson S., Farrell S., Boeyen R., Housley R., Polk W. Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile, IETF RFC 5280, 2008
<a id="p101180"></a>[3]
<a id="p101181"></a>ИСО/МЭК 9594-8:2020
<a id="p101182"></a>Информационная технология. Взаимосвязь открытых систем. Справочник. Часть 8. Структуры сертификатов открытого ключа и атрибута (Information technology - Open systems interconnection - Part 8: The Directory: Public-key and attribute certificate frameworks)
<a id="p101183"></a>[4]
<a id="p101184"></a>IETF RFC 4210
<a id="p101185"></a>Adams C. and Farrell S. Internet X.509 Public Key Infrastructure, Certificate Management Protocols, IETF RFC 4210, 1999
<a id="p101186"></a>[5]
<a id="p101187"></a>IETF RFC 5035
<a id="p101188"></a>Schaad J. Enhanced Security Services (ESS) Update: Adding CertID Algorithm Agility, IETF RFC 5035, 2007
<a id="p101189"></a>[6]
<a id="p101190"></a>IETF RFC 4648
<a id="p101191"></a>Josefsson S. The Base16, Base32, and Base64 Data Encodings, IETF RFC 4648, 2008






<table>
<colgroup><col width="50%"><col width="50%"></colgroup>
<tr><td><a id="p101192"></a>УДК 681.3.06:006.354</td><td><a id="p101193"></a>ОКС 35.030</td></tr>
<tr><td colspan="2"><a id="p101194"></a>Ключевые слова: криптография, штамп времени, служба штампов времени, электронная подпись, протокол штампов времени</td></tr>
</table>




<a id="p101195"></a>

---
