Это старая редакция страницы Черновики / Статьи / Сервисметоквремени / tm-verify за 02/05/2008 16:32.
tm-verify: автоматизация проверки нотариального журнала
Описание
РУС
Утилита tm-verify предназначена для автоматической проверки записей аудиторского журнала TimeMarker.org в операционной системе Linux. Для работы программы требуется GnuPG и интерпретатор Python.
ENG
tm-verify is a utility program automating verification of TimeMarker.org audit log chains under Linux operating system. Requires installed GnuPG and Python interpreter.
Функциональность
- Сверяет подписи с файлов меток.
- Проверяет связность цепочки меток по хэшам.
- Выводит диагностику и результат проверки.
Как использовать
- Взять из нотариального журнала цепочку меток (совместимо только с форматом меток от №51 и выше), распаковать в произвольный каталог.
- Выполнить: ./tm-verify.py [путь к каталогу]. Если не указать путь, проверяется текущий каталог. Подробности через ./tm-verify.py --help.
Текущие ограничения
- Все метки, лежащие в конкретном каталоге, должны идти последовательно. Скажем, если в каталоге лежат метки 51, 52, 53, 55, 56, 57, то метка 55 выдаст ошибку связности хэшей из-за отсутствия метки 54. Проверка продолжится несмотря на ошибку, но имейте в виду.
- Поскольку состояние подписей проверяется только по коду возврата GnuPG (а не через интерфейс статусов), убедитесь, чтобы GnuPG в обычном режиме не возвращал никаких ошибок (типа ненайденных связок ключей и т.п.), иначе все подписи будут опознаваться как повреждённые.
- По той же причине, что и в предыдущем пункте, существует возможность атаки на процесс сверки цепочек: если взломщик подменит архив с цепочкой меток и тем или иным образом подбросит свой открытый ключ на связку пользователя, программа завершится с корректным результатом (сами подписи ведь верны; другое дело, что проставлены посторонним ключом).
- Проверка ведётся только по хэшам SHA-512.
- Не проверяются дополнительные поля: последовательность номеров меток и дат их выдачи и их принадлежность к одному сервису (всё это также оставляет потенциал для атаки).
Планы развития
Ближайшие
- Проверка соответствия дополнительных полей меток: Signed-by, Number, Timestamp (последовательность номеров и дат и принадлежность всех меток одному сервису).
- Проверка состояния подписей через интерфейс статусов GnuPG.
- Проверка связности цепочек по обоим хэш-алгоритмам (RIPEMD160 в дополнение к SHA512).
- Распараллеливание процессов сверки подписей и связности цепочек.
Отдалённые (после выхода API)
- Автоматическое скачивание цепочек.
- Возможность демонизации программы и/или её исполнение по крону.
Код