
- •2008 Зміст
- •Загальні положення
- •Терміни та визначення
- •Протокол взаємодії та процедури
- •Формування позначки часу
- •Перевірка позначки часу
- •Формати даних
- •Формат запиту на формування позначки часу
- •Формат відповіді на запит на формування позначки часу
- •Транспортні протоколи
- •Транспортний протокол, що базується на мережевих сокетах
- •Транспортний протокол, що базується на портоколі http
- •Додаток 1. Формати даних у нотації asn.1
Формат відповіді на запит на формування позначки часу
Формат відповіді на запит на формування позначки часу має такий вигляд:
TimeStampResp ::= SEQUENCE { status PKIStatusInfo, timeStampToken TimeStampToken OPTIONAL }
Поле status містить результат обробки запиту на формування позначки часу.
Поле timeStampToken містить зформовану позначку часу, або є відсутнім (у разі відмови у формуванні позначки часу).
PKIStatusInfo ::= SEQUENCE { status PKIStatus, failInfo PKIFailureInfo OPTIONAL }
Тип PKIStatusInfo мість два поля, що визначають результат формування (чи відмови у формуванні) позначки часу.
Поле status містить код операції формування позначки часу.
Необов’язкове поле failInfo може містити код помилки.
PKIStatus ::= INTEGER { granted (0), grantedWithMods (1), rejection (2), waiting (3), revocationWarning (4), revocationNotification (5) }
Можливі значення для типу PKIStatus навдені нижче у таблиці:
Константа |
Числове значення |
Опис |
granted |
0 |
Позначку часу зформовано |
grantedWithMods |
1 |
Позначку часу зформовано з модифікаціями |
rejection |
2 |
У формуванні позначки часу було відмовлено |
waiting |
3 |
Сервер служби фіксування часу ЦСК перенавантажено |
revocationWarning |
4 |
(Не використовується) |
revocationNotification |
5 |
(Не використовується) |
PKIFailureInfo ::= BIT STRING { badAlg (0), badRequest (2), badDataFormat (5), timeNotAvailable (14), unacceptedPolicy (15), unacceptedExtension (16), addInfoNotAvailable (17), systemFailure (25) }
Можливі значення для типу PKIFailureInfo навдені нижче у таблиці:
Константа |
Номер біту |
Опис |
badAlg |
0 |
Невідомий алгоритм гешування, або такий, що не підтримується |
badRequest |
2 |
Запит такий, що не підтримується або недозволений |
badDataFormat |
5 |
Запит пошкоджений |
timeNotAvailable |
14 |
Неможливо визначити точний час |
unacceptedPolicy |
15 |
Політика формування позначок часа така, що не підтримується |
unacceptedExtension |
16 |
Розширення таке, що не підтримується |
addInfoNotAvailable |
17 |
Відсутня необхідна додаткова інформація |
systemFailure |
25 |
Системная помилка |
Позначка часу зберігається у форматі CMS ContentInfo (відповідно до RFC 3852):
TimeStampToken ::= ContentInfo
Поля типу ContentInfo для зберігання позначки часу мають такі значення:
Поле contentType містить об’єктний ідентифікатор:
id-signedData OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs7(7) 2 }
що визначає зміст поля content, як поля, що містить дані зЕЦП (тип CMS SignedData).
Поля типу EncapsulatedContentInfo, що міститься в типі SignedData мають такі значення:
Поле eContentType містить об’єктний ідентифікатор даних, що містяться в полі content. Для позначки часу це поле повинно мати таке значення:
id-ct-TSTInfo OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) ct(1) 4}
Поле content містить строку байт, в якій міститься наступна структура (у DER-кодуванні):
TSTInfo ::= SEQUENCE { version INTEGER { v1(1) }, policy TSAPolicyId, messageImprint MessageImprint, serialNumber INTEGER, genTime GeneralizedTime, nonce INTEGER OPTIONAL, extensions [1] IMPLICIT Extensions OPTIONAL }
Поле version містить номер версії формату позначки часу (завжди дорівнює 1);
Поле policy містить об’єктний іеднтифікатор політики формуання позначок часу;
Поле messageImprint містить геш-значення даних, на які була отримана позначка часу (див. вище);
Поле serialNumber містить серійний номер позначки часу;
Поле genTime містить час формування позначки часу у форматі GMT.
Поле nonce може містити унікальний ідентифікатор запиту, на який була зформована позначка часу;
Поле extensions може містити розширення із додатковою інформацією про позначку часу, службу фіксації часу ЦСК тощо.