Задачи КриптоПро TSP

Использование ПАК "КриптоПро TSP" позволяет участникам информационных систем получать штампы времени, связанные с электронными документами. Штамп времени представляет из себя электронный документ, подписанный электронной цифровой подписью (электронной подписью), где подписанными данными являются значение хэш-функции электронного документа и время предоставления штампа времени. Таким образом, штамп времени однозначно связан с электронным документом, на который он выдается и обеспечивает его целостность.

Для реализации сервиса TSP необходимо на базе "КриптоПро TSP Server" организовать Сервер службы TSP и встроить "КриптоПро TSP Client" в программное обеспечение клиентских рабочих мест. Встраивание "КриптоПро TSP Client" осуществляется с использованием инструментария разработчика – "КриптоПро PKI SDK".

Для чего нужны штампы времени

  • Фиксация времени создания электронного документа. Применение штампа времени позволяет зафиксировать время создания электронного документа. Для этого после создания документа необходимо сформировать запрос на получение штампа времени. Полученный штамп времени обеспечит доказательство факта существования электронного документа на момент времени, указанный в штампе.
  • Фиксация времени формирования электронной цифровой подписи (электронной подписи) электронного документа. Штамп времени может использоваться в качестве доказательства, определяющего момент подписания электронного документа (1-ФЗ "Об ЭЦП", Статья 4; 63-ФЗ "Об ЭП", Статья 11). Для этого после создания электронной цифровой подписи (электронной подписи) документа необходимо сформировать запрос на получение штампа времени. Полученный штамп времени обеспечит доказательство, определяющее момент времени подписания электронного документа.
  • Фиксация времени выполнения какой-либо операции, связанной с обработкой электронного документа. Штамп времени на электронный документ может быть получен при выполнении какой-либо операции, связанной с его обработкой, при необходимости зафиксировать время выполнения этой операции. Например, штамп времени может быть получен при поступлении от пользователя электронного документа на сервер электронного документооборота, либо при предоставлении документа какому-либо пользователю.
  • Долговременное хранение электронных документов, в том числе и после истечения срока действия сертификатов проверки подписи пользователя. Использование штампов времени позволяет обеспечить доказательство времени формирования электронной цифровой подписи (электронной подписи) электронного документа. Если дополнительно на момент времени формирования ЭЦП (ЭП) рядом со значением ЭЦП (ЭП) и штампом времени сохранить и доказательство действительности сертификата (например, получить и сохранить OCSP-ответ), то проверку указанной ЭЦП (ЭП) можно обеспечить на момент времени её формирования (полная аналогия с бумажным документооборотом). И такую подпись можно будет успешно проверять в течение срока действия ключа проверки подписи Службы штампов времени. А что делать, когда сертификат Службы штампов времени истечет? Ответ прост: до истечения этого сертификата получить ещё один штамп времени на указанный документ (уже с использованием нового закрытого ключа и сертификата Службы штампов времени): этот новый штамп зафиксирует время, на которое старый сертификат службы штампов времени был действителен, и обеспечит целостность этого электронного документа при дальнейшем хранении в течение срока действия сертификата нового штампа времени.

Краткое описание протокола TSP

Протокол TSP (Time-Stamp Protocol) является протоколом типа "запрос-ответ". Весь обмен заключается в двух сообщениях. Клиент инициирует взаимодействие, посылая серверу запрос на штамп времени, на что сервер возвращает ответ, содержащий выпущенный штамп или не содержащий его в случае ошибки.

Запрос на штамп времени

Запрос на штамп времени включает следующие поля:

  • Значение хэш-функции от документа, на который запрашивается штамп (обязательно указывается, какой именно алгоритм хэширования используется);
  • Объектный идентификатор (OID) политики запрашиваемого штампа (необязательно);
  • Nonce - случайное число, идентифицирующее данную транзакцию протокола TSP (необязательно);
  • Дополнения (Extensions) (необязательно).

Идентификатор политики определяет, по какой политике должен быть выдан штамп времени. Политики штампов времени задаются сервером штампов времени и устанавливают набор правил, по которым выдаются штампы времени, а также области их применения.

Например, в системе может быть определено несколько политик с разными идентификаторами и следующим описанием:

  • Политика для тестовых штампов. Штампы по этой политике выдаются всем пользователям, но могут использоваться только для тестовых целей, а система документооборота не будет принимать такие штампы.
  • Основная политика штампов. Штампы по этой политике выдаются всем зарегистрированным пользователям системы, стоимость одного штампа составляет 5 копеек, точность времени в штампе составляет 10 секунд, а система документооборота будет принимать такие штампы для документов, не являющихся важными.
  • Точная политика штампов. Штампы по этой политике выдаются пользователям, допущенным к работе с важными документами, стоимость одного штампа составляет 25 копеек, точность времени в штампе составляет 1 секунду, а система документооборота будет принимать такие штампы для любых документов.

Поле Nonce позволяет клиенту проверить своевременность полученного ответа, в котором сервер штампов времени должен разместить то же самое значение nonce, которое было в запросе.

Ответ сервера штампов времени

Ответ сервера штампов времени содержит следующие поля:

  • Статус операции и информация об ошибке;
  • Штамп времени (если статус успешный).

Штамп времени представляет собой CMS-сообщение (PKCS#7) типа SignedData (см. RFC 3369 "Cryptographic Message Syntax (CMS)"). Содержимым этого сообщения является структура со следующими полями:

  • Значение хэш-функции от документа, на который выдан штамп (обязательно указывается, какой именно алгоритм хэширования используется);
  • Объектный идентификатор (OID) политики штампа;
  • Время выдачи штампа;
  • Точность времени;
  • Признак строгой упорядоченности штампов (Ordering);
  • Nonce - случайное число, идентифицирующее данную транзакцию протокола TSP (совпадает с соответствующим полем запроса);
  • Дополнения (Extensions) (необязательно).

Сервер штампов указывает признак ordering, если он работает в режиме строгой упорядоченности штампов. Т.е. сравнение времён двух выданных этим серверов штампов даже без учёта точности времени определяет порядок их выдачи.

Как хранить штампы времени совместно с документами

В RFC 3161 "Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)" описан вариант хранения штампа времени на документ с ЭЦП (ЭП) формата CMS SignedData в неподписанном атрибуте этого CMS-сообщения.

Для организации долговременного архивного хранения документов с ЭЦП (ЭП) могут использоваться штампы времени, а также дополнительные данные, необходимые для подтверждения подлинности ЭЦП (ЭП) – так называемые доказательства подлинности ЭЦП (ЭП). К таковым относятся:

  • Штампы времени;
  • Сертификат ключа подписи, использованного для создания оригинальной ЭЦП (ЭП);
  • Сертификат УЦ, издавшего сертификат ключа подписи (если цепочка сертификатов содержит другие УЦ, то их сертификаты также необходимо проверить);
  • Сертификат Службы штампов времени;
  • Цепочка сертификатов для проверки сертификата Службы штампов времени;
  • Информацию о статусе сертификатов (Списки отозванных сертификатов или OCSP-ответы).

Для обеспечения актуальности ЭЦП (ЭП) при долговременном хранении необходимо периодически получать новые штампы времени.

Возможный вариант форматов данных и идентификаторы атрибутов для долговременного хранения документов с ЭЦП (ЭП) на основе CMS-сообщений описаны в европейском стандарте CAdES (ETSI TS 101 733). Версия этого стандарта опубликована в виде RFC 5126 "CMS Advanced Electronic Signatures (CAdES)".