- •2008 Зміст
- •Загальні положення
- •Терміни та визначення
- •Протокол взаємодії
- •Формати даних
- •Формат запиту на інтерактивну перевірку статусу сертифікату
- •Формат відповіді на інтерактивну перевірку статусу сертифіката
- •Транспортні протоколи
- •Транспортний протокол, що базується на мережевих сокетах
- •Транспортний протокол, що базується на протоколі http
- •Додаток 1. Формати даних у нотації asn.1
Формат відповіді на інтерактивну перевірку статусу сертифіката
OCSPResponse ::= SEQUENCE { responseStatus OCSPResponseStatus, responseBytes [0] EXPLICIT ResponseBytes OPTIONAL }
Поле responseStatus містить інформацію про статус обробки запиту.
Поле responseBytes може містити інформацію про статус сертифікату.
OCSPResponseStatus ::= ENUMERATED { successful (0), malformedRequest (1), internalError (2), tryLater (3), sigRequired (5), unauthorized (6) }
Константа |
Числове значення |
Опис |
successful |
0 |
Оперція завершилась успішно |
malformedRequest |
1 |
Пошкоджений або недозволений запит |
internalError |
2 |
Внутрішня помилка |
tryLater |
3 |
Сервер перенавантажений |
sigRequired |
5 |
Потібна наявність ЕЦП запиту |
unauthorized |
6 |
Запит від неавтиризованого коритсувача |
Тип ResponseBytes містить ідентифікатор типу даних та безпосередньо дані відповіді.
ResponseBytes ::= SEQUENCE { responseType OBJECT IDENTIFIER, response OCTET STRING }
Поле responseType містить об’єктний ідентифікатор типу даних, що містяться в полі response.
Поле response містить DER - кодування типу UAOCSPResponse з віповіддю.
Об’єктниій ідентифікатор відповіді UAOCSPResponse:
uaOCSPResponse OBJECT IDENTIFIER ::= {iso(1) member-body(2) Ukraine(804) root(2) security(1) cryptography(1) pki(1) add-algs(4) ocsp(1) 1}
Тип UAOCSPResponse має такий формат:
UAOCSPResponse ::= SEQUENCE { tbsResp UAOCSPTBS, signAlgo AlgorithmIdentifier, signature BIT STRING }
Поле tbsResp містить підписані із відповіддю;
Поле signAlgo містить алгоритм ЕЦП;
Поле signature містить значення ЕЦП.
Формат алгоритму ЕЦП та байтів ЕЦП відповідає таким у форматі запитту (див. п. 4.1).
Тип UAOCSPTBS містить дані про стан сертифікату:
UAOCSPTBS ::= SEQUENCE { status UACertStatus, cert Certificate OPTIONAL, revInfo [0] EXPLICIT UAOCSPRevInfo OPTIONAL, extensions [1] EXPLICIT Extensions OPTIONAL }
Поле status містить інформацію про стан сертифікату (дійсний, недійсний, сертифікат не знайдено);
Поле cert може містити сертифікат, стан якого перевіряється;
Поле revInfo може містити інформацію про причини та час відкликання сертифікату;
Поле extensions може містити додаткову інформацію про відповідь.
UACertStatus ::= ENUMERATED { valid (0), notFound (1), invalid (2) }
Константа |
Числове значення |
Опис |
valid |
0 |
Сертифікат чинний |
notFound |
1 |
Сертифікат не знайдено |
invalid |
2 |
Сертифікат не чинний |
Тип UAOCSPRevInfo містить інформацію про час та причини відкликання сертифікату.
UAOCSPRevInfo ::= SEQUENCE { revTime GeneralizedTime, reason CRLReasons }
Поле revTime містить час відкликання сертифікату.
Поле reason містить причину відкликання сертифікату. Це поле відповідає такому розширенню у списку відкликаних сертифікатів.
Транспортні протоколи
Транспортний протокол, що базується на мережевих сокетах
Передача запитів на перевірку стасусу сертифіката та отримання відповідей відбувається зі встановленням TCP-з’єднання. Всі повідомлення мають такий формат:
Назва блоку |
Розмір (байт) |
Примітки |
Розмір основного блоку (запиту чи відповіді) |
4 |
У форматі Little-Endinan |
Основний блок |
змінний |
DER - кодування блоку (запиту чи відповіді) |