Формат файлов PGP
Формат файла — это набор правил, описывающих построение файла, что в нём разрешено, а что — нет, и, если это разрешено, что оно означает. Формат всех файлов, которые PGP способен записывать и читать, определён в документе OpenPGP Message Format [3]. 1 Акроним OpenPGP относится к названию стандарта, которому соответствует PGP и который также могут поддерживать другие программы. Этот документ является сетевым RFC: Request For Comments. Серия RFC — это сборник открытых электронных документов, предоставляющих технические сведения по различным интернет-технологиям (их можно найти на веб-сайте http://www.ietf.org). Документы RFC не несут формального официального статуса, а только предлагают людям высказывать по их поводу свои комментарии, однако на практике они рассматриваются как абсолютно авторитетные источники в своих областях.
Данный формат используется для нескольких типов файлов: для зашифрованных сообщений PGP (файлы с расширение .pgp), для "съёмных" цифровых подписей (.sig-файлы), для экспортированных ключей (.asc-файлы 2), а также для связок открытых (.pkr) и закрытых (.skr) ключей. Последние два типа файлов, связки открытых и закрытых ключей, создаются при инсталляции PGP. По умолчанию их имена — pubring.pkr и secring.skr. Связка закрытых ключей содержит все закрытые ключи пользователя, а связка открытых — открытые ключи и данные о доверии. Эти файлы являются внутренними файлами PGP, и поэтому не совсем понятно, почему они должны соответствовать стандарту. Причина в том, что пользователь должен иметь возможность обновлять программу, не теряя свои старые ключи, а также в том, что OpenPGP был написан вслед за программой: он являлся не новым стандартом, а лишь формализацией сложившегося статус-кво с добавлением некоторых новых возможностей.
Формат файлов интересует нас по двум причинам: прежде всего, спецификация формата может содержать архитектурную ошибку, влекущую утечку информации или облегчающую манипуляцию с файлами. Во-вторых, сравнив то, что должно генерироваться и приниматься согласно формату, с тем, что в действительности генерирует и принимает PGP, можно установить, работает ли PGP [, как должно].
1 Текущую версию спецификаций стандарта OpenPGP можно найти здесь, — прим. пер.
2 Расширение .asc может использоваться и для других ASCII-кодированных файлов.