Документация

Формат «Меток времени»

Отступление

Формат меток времени, а так же вся остальная теоретическая часть разработана участниками «OpenPGP В России».

 

OpenPGP Message Format

Для криптографических операций используются стандарты и форматы PGP.
Или, по-другому, выданные сервисом «метки времени» могут быть проверены при помощи стандартных PGP программ.

Используя «OpenPGP Message Format» можно легко распространять документы с ЭЦП, ключи и п.р.

Например, заверенный с помощью ЭЦП документ будет выглядеть следующим образом:

Листинг 1. Пример документа с ЭЦП в стиле «OpenPGP Message Format»

-----BEGIN PGP SIGNED MESSAGE-----
информация


-----BEGIN PGP SIGNATURE-----
подпись
-----END PGP SIGNATURE-----

«OpenPGP Message Format» распространен и стал стандартом де-факто для шифрования сообщений электронной почты.

Сам стандарт rfc4880

 

Связывание «меток времени»

Такая система как «Сервис меток времени» может существовать только при доверии к ней со стороны пользователей.

Что бы повысить доверие к сервису применяется «связывание меток времени» – каждая последующая метка содержит доказательство, что была выпущена именно после предыдущей (в «метку времени» включается хеш предыдущей метки).
Таким образом «метки времени» образуют цепочку.

Цепочка меток времени – последовательность «меток времени», где каждая последующая «метка времени» имеет доказательство, что была выдана именно после предыдущей.

«Цепочка меток времени» доступна всем желающим – каждый может проверить её целостность.

Если администратор попытается выдать «метку времени» задним числом, то такая метка не будет входить в цепочку. Попытку махинации можно будет обнаружить.

 

Два формата «меток времени»

Что бы обеспечить каждому желающему возможность проверить «цепочку меток времени», сервис должен хранить выданные метки и по требованию предоставлять любые из них.

Однако «метки времени» содержат произвольные пользовательские данные. Эти данные могут составлять тайну пользователя, а так же могут быть достаточно объемными. По этому хранимые сервисом «метки времени» не должны содержать пользовательские данные в открытом виде – будет достаточно сохранить только их хеш.

Формат «метки времени» публикуемой на сервере (хранится в БД):

 Листинг 2. Формат «метки времени» публикуемой на сервере

-----BEGIN PGP SIGNED MESSAGE-----

Timestamp-version:  (версия принятого формата метки времени)
Description:        (краткое описание этого сообщение)
Signed-by:          (URL сервиса)
Timestamp:          (время по гринвичу в формате RFC 822)
Number:             (порядковый номер метки)
Ref-Hash-SHA512:    (SHA512 хеш от предыдущей метки)
Ref-Hash-RIPEMD160: (RIPEMD160 хеш от предыдущей метки)
Hash-SHA512:        (SHA512 хеш пользовательских данных)
Hash-RIPEMD160:     (RIPEMD160 хеш пользовательских данных)
-----BEGIN PGP SIGNATURE-----
подпись в формате OpenPGP
-----END PGP SIGNATURE-----

Для удобства, пользователь, проставляющий штамп времени на своей информации, получает документ аналогичный "метки времени" содержащий помимо всех обязательных атрибутов ещё и штампируемую информацию в открытом виде.

Формат «метки времени» пользователя:

Листинг 3. Формат «метки времени» выдаваемой пользователю

-----BEGIN PGP SIGNED MESSAGE-----

Timestamp-version:  (версия принятого формата метки времени)
Description:        (краткое описание этого сообщение)
Signed-by:          (URL сервиса)
Timestamp:          (время по гринвичу в формате RFC 822)
Number:             (порядковый номер метки)
Ref-Hash-SHA512:    (SHA512 хеш от предыдущей метки)
Ref-Hash-RIPEMD160: (RIPEMD160 хеш от предыдущей метки)
Hash-SHA512:        (SHA512 хеш пользовательских данных)
Hash-RIPEMD160:     (RIPEMD160 хеш пользовательских данных)
############## Timestamped data follows ###############
пользовательские данные (сообщение или ascii-кодированный файл)
-----BEGIN PGP SIGNATURE-----
подпись в формате OpenPGP
-----END PGP SIGNATURE-----

Связывание «меток времени» между собой, а также с пользовательскими данным осуществляется с помощью двух алгоритмов хеширования.

 

Сборка метки времени.

 

Примечание:

При подсчете хеша метки времени, хеш вычисляется не от всего pgp файла, а только от метаданных (как показано на рисунке выше).



Back