Компьютерные науки - Учебники на русском языке - Скачать бесплатно
Имеются два совершенно разных критерия, которые PGP
использует, чтобы судить о полезности открытого ключа:
1) Действительно ли ключ принадлежит упомянутому в
идентификаторе человеку? Иными словами, был ли ключ
удостоверен с помощью достоверной подписи?
2) Принадлежит ли он кому-либо из тех, кому мы можем доверять
для удостоверения других ключей?
PGP может вычислять ответ на первый вопрос. Для ответа на
второй вопрос вам, пользователю, необходимо явно пообщаться с
PGP. Когда вы вводите ответ на вопрос 2, PGP может вычислить
ответ на вопрос 1 для других ключей, подписанных тем поручителем,
которого вы указываете как достоверного.
Ключи, удостоверенные поручителем, которому вы доверяете, PGP
считает истинными. Ключи, принадлежащие доверенным поручителям,
должны быть удостоверены либо вами, либо другими доверенными
поручителями.
PGP также позволяет вам иметь несколько степеней доверия для
людей, чтобы действовать как поручитель. Ваше доверие к владельцу
ключа не просто отражает вашу оценку их персональной честности -
это также должно отражать то, насколько компетентны по вашему
мнению в понимании управления ключами и в принятии верного
решения при подписании ключа. Вы можете обозначить человека как
неизвестного для PGP, или как которому нет доверия, или как
обладающего частичным доверием, или, наконец, обладающего полным
вашим доверием при удостоверении других открытых ключей. Эта
информация сохраняется в вашем каталоге вместе с их ключами, но
когда вы даете команду PGP извлечь ключ из вашего каталога, PGP
не копирует информацию о степени доверия наряду с ключом, так как
ваши частные соображения относительно степени доверия
расцениваются как конфиденциальные.
Когда PGP рассчитывает достоверность открытого ключа, она
исследует степень доверия для всех присоединенных удостоверяющих
подписей. Она вычисляет взвешенную величину достоверности -- два
удостоверения с частичной степенью доверия значат то же, что и
одно с полной степенью. Скептицизм PGP's можно регулировать -
например, вы можете настроить PGP, чтобы она требовала два
удостоверения с полной степенью доверия или три с частичной
степенью для оценки ключа как допустимого к использованию.
Ваш собственный ключ "абсолютно" достоверен для PGP, он не
нуждается ни в какой подписи никакого поручителя для установления
истинности. PGP определяет, какие из ключей являются вашими при
поиске соответствующих секретных ключей в каталоге секретных
ключей. PGP также считает, что вы абсолютно доверяете себе при
удостоверении других ключей.
Поскольку время идет, вы будете накапливать ключи от других
людей, которых вы можете захотеть обозначить как доверенные
поручители. Кто-то еще будет выбирать своих доверенных
поручителей. И каждый будет постепенно накапливать и
распространять коллекцию удостоверенных подписей других людей,
надеясь, что кто-нибудь из получивших ее будет доверять хотя бы
одной или двум подписям. Это может вызвать появление
децентрализованной отказоустойчивой сети доверия для всех
открытых ключей.
Этот уникальный массовый подход резко контрастирует с
правительственной стандартной схемой управления открытыми
ключами, такой, как Internet Privacy Enhanced Mail (PEM), которая
базируется на централизованном управлении и обязательном
централизованном доверии. Стандартные схемы основываются на
иерархии Удостоверения Авторства, когда диктуется, кому вы должны
доверять. Децентрализованный вероятностный метод PGP для
определения законности общего ключа - центральная часть
архитектуры управления ключами. PGP позволяет вам быть
единственным, кто выбирает, кому вам доверять, помещая вас в
верхней части вашей собственной индивидуальной пирамиды
достоверности. PGP - для тех людей, которые предпочитают сами
упаковывать их собственный парашют.
Как защитить секретные ключи от раскрытия
------------------------------------------
Тщательно защищайте ваш собственный секретный ключ и фразу
пароля. По-настоящему тщательно. Если случилось так, что ваш
секретный ключ скомпрометирован, срочно известите об этом все
заинтересованные стороны, до того, как ваш ключ будет использован
кем-либо для генерации подписи с вашим именем. Например, ваш ключ
может быть использован для подписи поддельных удостоверений
открытых ключей, что может создать определенные проблемы для
широкого круга людей, особенно если вашей подписи широко
доверяют. И, разумеется, компроментация вашего секретного ключа
может дать возможность просмотра всех сообщений, адресованных
вам.
Для начала всегда сохраняйте физический контроль над вашим
секретным ключом. Если вы храните его на вашем личном домашнем
или переносном компьютере, то это вполне нормально. Если вы
должны использовать компьютер на работе, над которым вы не всегда
имеете физический контроль, то тогда храните ваши ключи на
защищенной от записи дискете и не оставляйте ее, уходя с работы.
Отнюдь не будет способствовать сохранности секретного ключа его
хранение на удаленном компьютере, который работает в режиме
разделения времени, например, в Unix. Кто-нибудь может
подключиться и прослушивать вашу модемную линию, узнать таким
образом фразу пароля и получить затем ваш секретный ключ с
удаленной системы. Вы должны использовать ваш секретный ключ
только на той машине, над которой у вас есть физический контроль.
Не храните вашу фразу пароля на том же компьютере, на котором
хранится ваш секретный ключ. Хранение секретного ключа и фразы
пароля для него на одном и том же компьютере столь же опасно, как
хранение вашего кода в одном бумажнике с кредитной карточкой. Вы
же не хотите, чтобы кто-нибудь получил доступ к этому компьютеру
и получил одновременно и ключ и пароль. Наиболее безопасным будет
вообще нигде не записывать фразу пароля, а просто запомнить ее и
не хранить ее нигде, кроме вашей головы. Если же вы чувствуете,
что ее необходимо записать, сделайте это, но как следует защитив
ее, даже лучше, чем файл с секретным ключом.
Храните резервные копии вашего каталога секретных ключей -
помните, что если у вас есть единственная копия секретного ключа,
то его потеря сделает бесполезными все копии вашего открытого
ключа, которые вы уже распространили по всему миру.
Децентрализованный подход, который PGP использует для
управления открытыми ключами, имеет свои преимущества, но, к
сожалению, в то же время это означает, что мы не можем полагаться
на один центральный список скомпрометированных ключей. Этот факт
делает несколько более трудным распространение информации о
компроментации секретных ключей. Вы должны просто распространять
словесную информацию и надеяться, что все ее услышат.
Если все-таки случится самое плохое - ваш секретный ключ и
фраза пароля все же будут скомпрометированы (надеемся, однако,
что вам удастся этого избежать) - вы должны будете выпустить
удостоверение "компроментации ключа". Этот тип удостоверения
используется для предупреждения других людей о прекращении
использования вашего открытого ключа. Для создания такого
удостоверения используется команда PGP "-kd". Затем вы должны
любым возможным способом постать это удостоверение отмены ключа
каждому на планете, или, по крайней мере, всем вашим друзьям, и
их друзьям и так далее. Их программа PGP будет устанавливать это
удостоверение отмены в их каталогах открытых ключей и будет
автоматически предотвращать использование скомпрометированных
ключей в дальнейшем. после этого вы можете сгенерировать новую
пару секретный/открытый ключ и опубликовать новый открытый ключ.
Вы можете послать один пакет, содержащий и удостоверение отмены и
новый открытый ключ.
Отмена открытого ключа
----------------------
Предположим, что ваш секретный ключ и фраза пароля каким-то
образом были скомпрометированы. Вы должны сообщить об этом миру,
чтобы никто более не использовал ваш открытый ключ. Для этого вы
должны выпустить удостоверение отмены ключа для отмены вашего
открытого ключа.
Чтобы сгенерировать удостоверение отмены ключа, используйте
команду -kd:
pgp -kd your_userid
Вы должны широко распространить это удостоверение отмены
ключа, и как можно скорее. Все, кто получат его, могут добавить
его к своему каталогу открытых ключей, и программа PGP будет их
автоматически предохранять от использования вашего старого
отмененного открытого ключа. После этого вы можете сгенерировать
новую пару секретный/открытый ключи и опубликовать новый открытый
ключ.
Вы можете использовать отмену открытого ключа не только при
его компрометации, но и по каким-то иным соображениям. Механизм
отмены остается прежним.
Что, если вы потеряете ваш секретный ключ?
------------------------------------------
Обычно, если вы хотите отменить ваш собственный секретный
ключ, вы можете использовать команду "-kd" для выпуска
удостоверения отмены, подписанного вашим собственный секретным
ключом (см. "Отмена открытого ключа").
Но что вам делать, если вы потеряли ваш секретный ключ, либо
он был разрушен? Вы не можете сами отменить его, так как нужно
использовать сам секретный ключ для отмены, а у вас его больше
нет. Будущая версия PGP предложит более надежный способ отмены
ключа в такой ситуации, позволяя доверенным поручителям
сертифицировать отмену открытого ключа. А пока в этом случае
следует всем пользователям передавать информацию о
недействительности вашего открытого ключа, дабы они
скорректировали свои каталоги.
Другие пользователи могут отменить ваш открытый ключ с помощью
команды "-kd". Если заданный идентификатор пользователя не
соответствует секретному ключу в каталоге секретных ключей, то
эта команда будет искать такой идентификатор в каталоге открытых
ключей и помечать соответствующий открытый ключ как
недействительный. Недействительный ключ не может быть использован
для шифрации сообщений и не может быть извлечен из каталога с
помощью команды "-kx". Он по-прежнему может использоваться для
проверки подписей, но с выдачей предупреждения. Если пользователь
попытается добавить такой же ключ в каталог ключей, этого не
произойдет, потому что недействительный ключ уже присутствует в
каталоге. Эти скомбинированные возможности помогут предотвратить
дальнейшее распространение недействительного ключа.
Если указанный открытый ключ уже помечен как недействительный,
команда -kd выдаст запрос о необходимости восстановления ключа.
Дополнительные разделы
======================
Большая часть "Дополнительных разделов" находится в
"Руководстве пользователя PGP, часть II: Специальные разделы". Но
несколько разделов упомянуто в данной части документации.
Посылка зашифрованного текста через каналы электронной почты:
формат Radix-64
----------------------------------------------------------------
Многие системы электронной почты поддерживают только сообщения
в виде ASCII-текста, а не в виде двоичных 8-битных данных, из
которых состоят зашифрованные тексты. Чтобы обойти эту проблему,
PGP позволяет получить формат ASCII Radix-64, подобный формату
Internet Privacy-Enhanced Mail (PEM). Этот специальный формат
представляет двоичные данные, используя только печатаемые символы
ASCII, это полезно для передачи двоичных зашифрованных данных
через 7-битовые каналы или для посылки двоичных зашифрованных
данных как обычный текст электронной почты. Этот формат действует
как "транспортная оболочка", защищая данные от повреждения при
передаче их через межсистемные межсетевые шлюзы в Internet. Он
также включает в себя CRC-код для определения ошибок при
передаче.
Формат Radix-64 преобразует обычный текст при помощи
расширения групп из 3-х двоичных 8-битовых байтов в 4 печатаемых
символа ASCII, так что файл увеличивается приблизительно на 33%.
Но это увеличение не так уж плохо, если вы учтете, что файл,
вероятно, был сжат на большую величину перед кодированием его с
помощью PGP.
Для получения зашифрованного файла в формате Radix-64 просто
добавьте опцию "a" при шифровании или подписании сообщения,
например, так:
pgp -esa message.txt her_userid
В результате будет получен шифрованный файл с именем
"message.asc", который содержит данные в PEM-подобном формате
Radix-64. Этот файл может быть легко загружен в текстовый
редактор через 7-битовые каналы для передачи как нормальная
электронная почта в Internet или другой сети.
Дешифровка сообщения в такой транспортной оболочке ничем не
отличается от обычного. Напрмер:
pgp message
PGP будет автоматически искать ASCII-файл "message.asc"
прежде, чем двоичный файл "message.pgp". Она распознает, что файл
находится в формате Radix-64 и преобразует его обратно в двоичный
перед обычной обработкой, создавая, как побочный продукт,
шифрованный файл ".pgp" в двоичной форме. Окончательный выходной
файл будет иметь вид обычного текста, как это было в
первоначальном файле "message.txt".
Большинство средств электронной почты Internet запрещают
пересылку сообщений, размер которых больше 50000 байт. Более
длинные сообщения должны быть разделены на более маленькие,
которые пересылаются отдельно. Если ваше зашифрованное сообщение
весьма велико, и вы дали команду преобразования в Radix-формат,
то PGP автоматически разделит его на отдельные части, каждая из
которых является достаточно малой для посылки через систему
электронной почты. Эти части будут помещаться в файлы с
расширениями имен ".asc", ".as2", ".as3", и т.д. Получатель
должен соединить эти отдельные файлы снова вместе в один большой
файл перед тем, как приступать к дешифровке. При дешифровке PGP
будет игнорировать любой посторонний текст в заголовках
сообщений, который не включен в блоки Radix-64.
Если вы хотите послать открытый ключ кому-либо в формате
Radix-64, вам только надо добавить опцию "-a" при извлечении
ключа из вашего каталога ключей.
Если вы забыли использовать опцию "-a" при создании
зашифрованного файла или извлечении ключа, вы просто можете
преобразовать двоичный файл в формат radix-64, используя одну
опцию "-a", без задания любого шифрования. PGP преобразует его в
файл ".asc".
Если вы хотите послать по каналам электронной почты обычный
текстовый файл, который подписан, но не зашифрован, PGP просто
конвертирует его в формат radix-64, делая его нечитабельным для
обычного наблюдателя. Если исходный файл является просто текстом
(не двоичным файлом), то существует способ, с помощью которого
можно оставить сам текст в его исходном виде, преобразовав в
ASCII-оболочку только электронную подпись. Это делает возможным
для получателя прочитать текст сообщения просто глазами, без
применения PGP. Естественно, PGP остается необходимой для
проверки подписи. Для получения дополнительной информации об этой
возможности смотрите описание параметра CLEARSIG в разделе
"Установка параметров конфигурации: CONFIG.TXT" в части
"Специальные Разделы".
Системная переменная для задания имени пути
-------------------------------------------
PGP использует несколько специальных файлов для своих целей,
таких, как ваши стандартные каталоги ключей "pubring.pgp" и
"secring.pgp", файл начального числа для генерации случайных
чисел "randseed.bin", файл конфигурации PGP "config.txt" и файл
перевода сообщений на другие языки "language.txt". Эти
специальные файлы могут храниться в любом каталоге, только
требуется занести в системную переменную "PGPPATH" требуемый
каталог. Например, для MSDOS, это будет выглядеть так:
SET PGPPATH=C:\PGP
В результате PGP будет знать, что полное имя файла вашего
каталога открытых ключей будет иметь вид "C:\PGP\pubring.pgp".
Естественно, если этот каталог существует. Используйте ваш
любимый текстовый редактор чтобы изменить ваш файл AUTOEXEC.BAT в
MSDOS для автоматической установки этой переменной при начальной
загрузке системы. Если PGPPATH остается неопределенным,
считается, что эти специальные файлы находятся в текущем
каталоге.
Установка параметров конфигурации: файл CONFIG.TXT
--------------------------------------------------
PGP имеет ряд параметров, устанавливаемых пользователем,
которые могут быть определены в специальном текстовом файле
конфигурации с именем "config.txt", в каталоге, на который
указывает системная переменная PGPPATH. Наличие файла
конфигурации дает возможность пользователю определять в нем
различные флажки и параметры для PGP, исключая необходимость
каждый раз определять эти параметры в командной строке.
С помощью этих параметров конфигурации, например, вы можете
определить, где PGP сохраняет временные рабочие файлы, или вы
можете выбирать иностранный язык, который PGP будет использовать
для отображения диагностических сообщений и подсказок
пользователю, либо можете регулировать уровень скептицизма PGP
при определении истинности ключей, который основывается на числе
удостоверяющих подписей.
Для получения более подробной информации об этих параметрах
конфигурации, см. см. соответствующий раздел руководства
пользователя PGP, часть II.
Уязвимость
----------
Никакая система защиты данных не является несокрушимой. PGP
может быть обойдена целым рядом способов. Это может быть
компроментация вашего секретного ключа и фразы пароля, подделка
общего ключа, файлы, которые вы удалили, но они остались
физически на диске, вирусы и троянские кони, бреши в вашей
физической защите, электромагнитная эмиссия, дефект в
многопользовательских системах, анализ траффика, и, возможно,
даже прямой криптоанализ.
Для более детального обсуждения этих проблем см. раздел
"Уязвимость" в руководстве пользователя PGP, часть II.
Доверие к змеиному маслу
========================
При исследовании пакета криптографического программного
обеспечения всегда остается вопрос: почему вы должны доверять
этой программе? Даже если вы самостоятельно исследовали исходный
текст, но ведь не каждый имеет опыт в криптографии, чтобы судить
о степени защиты. Даже если вы опытный шифровальщик, вы можете
пропустить небольшие слабости в алгоритмах.
Когда я учился в колледже в начале семидесятых, я верил, что
изобрел прекрасную схему шифрования. Простой псевдослучайный
поток чисел добавлялся к потоку текста, чтобы создть
зашифрованный текст. В результате, по-видимому, частотный анализ
зашифрованного текста станет невозможным, и такой текст будет
недоступен для расшифровки даже наиболее мощным правительственным
службам. Я был настолько уверен в этом достижении. Излишне
самоуверен.
Спустя несколько лет я обнаружил эту самую схему в нескольких
статьях и учебниках по криптографии. Другой специалист размышлял
о той же самой схеме. К сожалению, она была представлена как одна
из простейших в качестве примера об использовании элементарной
криптографической технологии для ее вскрытия. Столь много для
моей прекрасной схемы.
Из этого скромного опыта я понял, как легко ошибиться в оценке
качества защиты при изобретении алгоритма шифрования. Большинство
людей не понимают, как дьявольски трудно изобрести алгоритм
шифрования, который мог бы долго противостоять и отражать атаки
сильного противника. Множество инженеров-программистов
разработали одинаково наивные схемы шифрования (часто
одинаковые), и некоторые из них были включены в коммерческие
криптографические программные пакеты и продавались за хорошие
деньги тысячам доверчивых пользователей.
Это похоже на продажу самофиксирующихся ремней безопасности,
которые смотрятся хорошо и удобны, но фиксируются в открытом
состоянии даже при самой медленной проверке. Зависимость от таких
ремней может быть хуже, чем даже не использовать ремни совсем.
Никто не предполагает, что они они действительно плохи вплоть до
настоящей аварии. Зависимость от слабого криптографического
программного обеспечения может привести к необходимости
размещения секретной информации с долей риска. Ведь вы не смогли
бы иначе выполнить это, если бы у вас не было никакого
криптографического программного обеспечения вообще. Возможно, вы
даже никогда и не обнаружите, что ваши данные были
скомпрометированы.
Иногда коммерческие пакеты используют Федеральный Стандарт
Шифрования Данных (DES), хороший стандартный алгоритм
рекомендуемый правительством для коммерческого применения (но не
для секретной информации, что в значительной степени странно -
хм... ). Существует несколько "режимов операции", которые DES
может использовать, некоторые из них лучше, другие хуже.
Правительство специально не рекомендует использовать самый слабый
и простейший режим для сообщений, режим Electronic Codebook
(ECB). Оно рекомендуют более сильные и более сложные режимы
Cipher Feedback (CFB) или Cipher Block Chaining (CBC).
К сожалению, большинство рассмотренных мною коммерческих
пакетов для шифрования применяют режим ECB. Когда я разговаривал
с авторами ряда подобных систем, они говорили мне, что никогда не
слышали о режимах CBC и CFB, и ничего не знали о слабостях режима
ECB. Тот факт, что они даже не изучили криптографию в объеме,
достаточном для знания элементарных принципов, не убеждает. Те же
самые программные пакеты часто включают в себя второй более
быстрый алгоритм шифрования который может использоваться вместо
медленного DES. Автор такого пакета нередко полагает, что его
собственный более быстрый алгоритм является столь же надежным,
как и DES, но после подробных расспросов я обычно выясняю, что
это просто-напросто разновидность моей знаменитой схемы времен
колледжа. А иногда он может даже не рассказать, как работает его
схема, но будет уверять меня, что это прекрасная схема и я должен
ему верить. Несомненно, он полагает, что его алгоритм
великолепен, но как я могу верить этому, не видя самого
алгоритма?
Со всей честностью я должен подчеркнуть, что в большинстве
случаев такие программы выпускаются компаниями, которые не
специализируются в криптографической технологии.
Существует компания, которая называется AccessData ( 87 East
600 South, Orem, Utah 84058, телефон 1-800-658-5199), которая
продает за 185 долларов пакет, который взламывает встроенные
схемы шифрования, используемые WordPerfect, Lotus 1-2-3, MS
Excel, Symphony, Quattro Pro, Paradox и MS Word 2.0. Она не
просто разгадывает пароли, она осуществляет настоящий
криптоанализ. Некоторые люди покупают ее, если они забыли пароли
своих файлов. Административные власти также покупают ее, таким
образом они могут читать захваченные файлы. Я разговаривал с
автором, Eric Thompson, он сказал что его программа вскрывает
защиту за долю секунды, но он добавил в программу несколько
циклов задержки, чтобы замедлить этот процесс, дабы это не
казалось слишком простым для заказчика. Он также сообщил нам, что
функция шифрования с паролем архиватора PKZIP может быть легко
взломана, и его официальные заказчики уже обладают таким
средством, которое им поставил другой продавец.
Иными словами, криптография подобна фармакологии. Ее
достоверность имеет решающее значение. Плохой пеннициллин
выглядит также, как и хороший пеннициллин. Вы можете сообщить о
том, что ваш электронный бланк ненадежен, но как вы сообщите о
том, что ваш криптографический пакет слаб? Текст, который был
зашифрован с помощью слабого алгоритма шифрования выглядит столь
же хорошо, как и текст, зашифрованный мощным алгоритмом. Такой
текст похож на "змеиное масло" или лечение шарлатана. Однако, в
отличие от продавцов патентованных лекарств, изготовители этого
программного обеспечения обычно даже не подозревают, что их
продукция - настоящее змеиное масло. Они могут быть хорошими
специалистами по разработке программ, но они обычно даже не
читали никакой академической литературы по криптографии. И они
считают, что могут написать хорошее криптографическое программное
обеспечение. А почему бы и нет? Несмотря ни на что, интуиция
подсказывает, что это сделать достаточно легко. И создается
впечатление, что их программное обеспечение работает хорошо.
Если кто-то считает, что он изобрел невзламываемую систему
шифрования, тот либо невероятно редкий гений, либо наивен и
неопытен.
Я помню диалог с Brian Snow, высокопоставленным специалистом
по криптографии из NSA. Он сказал, что никогда не будет доверять
алгоритму шифрования, разработанному человеком, который это не
"заслужит", потратив предварительно достаточно времени на
раскрытие кодов. В этом весьма много смысла. Я не встречал в мире
коммерческой криптографии практически ни одного человека,
которого можно было бы охарактеризовать таким образом. "Да", -
сказал он с уверенной улыбкой, - "и это делает нашу работу в NSA
значительно проще". Неприятная мысль. Я тоже не занимался этим.
У правительства, по слухам, тоже есть "змеиное масло". После
Второй Мировой войны Соединенные Штаты продали шифровальные
машины Enigma правительствам третьих стран. Но при этом они не
сообщили им, что союзники за время войны расшифровали код машины
Enigma, факт, который держался в секрете много лет. Даже сегодня
многие системы Unix во всем мире используют шифр Enigma для
шифрования файлов, частично оттого, что правительство создало все
препятствия для использования лучших алгоритмов. Оно даже
пыталось предотвратить первоначальную публикацию алгоритма RSA в
1977 году. И теперь направляет все коммерческие усилия на
разработку эффективных секретных телефонов.
Основная работа правительственного NSA - это собирать
информацию, преимущественно путем скрытого подключения к частным
коммуникационным линиям (см. книгу James Bamford "The Puzzle
Palace"). NSA обладает значительным мастерством и ресурсами для
раскрытия кодов. Если люди не обладают мощной криптографической
системой для защиты своей информации, это делает задачу NSA
значительно проще. Кроме того, у NSA есть обязанность одобрять и
рекомендовать алгоритмы шифрования. Необходимо отметить это
интересное противоречие, подобное назначению лисы для охраны
курятника. NSA протолкнуло стандартный алгоритм шифрования,
разработанный им же, и оно не собирается никому сообщать, как он
работает, так как он является секретным. Однако, оно требует,
чтобы все этому алгоритму доверяли и использовали его. Но любой
специалист в области криптографии может вам подтвердить, что
удачно разработанный алгоритм шифрования не должен быть
засекречен, дабы оставаться надежным. В защите должны нуждаться
только ключи. Как мы можем знать, насколько надежен алгоритм
шифрования NSA? Для NSA совсем не сложно разработать алгоритм,
который сможет взломать только оно, если этот алгоритм больше
никто не увидит. Не является ли это преднамеренной продажей
"змеиного масла"?
Я не могу быть полностью уверен в уроне надежности PGP,
поскольку однажды я уже разрабатывал прекрасный алгоритм - в
колледже. Если я снова буду так же уверен, это будет плохим
сигналом. Но я в достаточной степени уверен, что PGP не содержит
грубых ошибок. Криптографические алгоритмы разрабатывались людьми
с высоким уровнем криптографического образования. Исходные тексты
доступны для облегчения изучения PGP и с целью помочь рассеять
опасения некоторых пользователей. Разработке предшествовали
достаточно глубокие исследования и годы работы. К тому же я не
работаю на NSA. Я надеюсь, что не требуется слишком большого
"скачка в доверие" для того, чтобы доверять надежности PGP.
Краткий справочник команд PGP
=============================
Здесь приведена краткая сводка команд PGP.
Зашифровать текстовый файл с открытым ключом получателя:
pgp -e textfile her_userid
Для подписания текстового файла вашим секретным ключом:
pgp -s textfile [-u your_userid]
Для подписи текстового файла вашим секретным ключом и, затем,
зашифровки его с открытым ключом получателя:
pgp -es textfile her_userid [-u your_userid]
Для шифрования текстового файла стандартным криптографическим
методом:
pgp -c textfile
Для расшифровки зашифрованного файла или для проверки
целостности подписи подписанного файла:
pgp ciphertextfile [-o plaintextfile]
Для шифрования сообщения, предназначенного для нескольких
адресатов:
pgp -e textfile userid1 userid2 userid3
--- Команды для работы с ключами:
Сгенерировать вашу собственную уникальную пару
секретный/открытый ключи:
pgp -kg
Для того, чтобы добавить содержимое файла открытого или
секретного ключа в ваш каталог открытых или секретных ключей:
pgp -ka keyfile [keyring]
Для извлечения (копирования) ключа из каталога ключей:
pgp -kx userid keyfile [keyring]
или: pgp -kxa userid keyfile [keyring]
Для просмотра оглавления каталога открытых ключей:
pgp -kv[v] [userid] [keyring]
Для просмотра "отпечатка пальца" открытого ключа, чтобы помочь
вам удостовериться в его истинности по телефону в разговоре
с владельцем ключа:
pgp -kvc [userid] [keyring]
Для просмотра оглавления и проверки удостоверяющих подписей в
вашем каталоге открытых ключей:
pgp -kc [userid] [keyring]
Для редактирования идентификатора пользователя или фразы
пароля для вашего секретного ключа:
pgp -ke userid [keyring]
Для редактирования параметров доверия для открытого ключа:
pgp -ke userid [keyring]
Удалить ключ или только идентификатор пользователя из вашего
каталога открытых ключей:
pgp -kr userid [keyring]
Для подписи и удостоверения чьего-либо открытого ключа в вашем
каталоге открытых ключей:
pgp -ks her_userid [-u your_userid] [keyring]
Для удаления выбранных подписей из идентификатора пользователя
каталога ключей:
pgp -krs userid [keyring]
Для постоянной отмены вашего собственного ключа с помощью
выпуска удостоверения отмены:
pgp -kd your_userid
Для отмены или восстановления открытого ключа в вашем каталоге
открытых ключей:
pgp -kd userid
--- Сложные команды:
Для дешифровки сообщения, оставляя подпись на нем нетронутой:
pgp -d ciphertextfile
Для создания удостоверяющей подписи отдельно от документа:
pgp -sb textfile [-u your_userid]
Для отделения удостоверяющей подписи от подписанного сообщения:
pgp -b ciphertextfile
--- Опции команд, которые могут использоваться в комбинации с
другими опциями (иногда даже образуя интересные слова!):
Для получения зашифрованного файла в формате ASCII radix-64
добавьте опцию -a при шифровании или подписании сообщения или
извлечения ключа:
pgp -sea textfile her_userid
или: pgp -kxa userid keyfile [keyring]
Для полного удаления оригинального текстового файла после
создания зашифрованного файла просто добавьте опцию -w (wipe)
при шифровании или подписании сообщения:
pgp -sew her_userid message.txt
Для указания того, что что текстовый файл содержит текст
ASCII, а не двоичный, и должен быть преобразован в локальный
текстовый файл получателя, добавьте опцию -t (text) к другим:
pgp -seat message.txt her_userid
Для просмотра выводимого расшифрованного текста на вашем экране
(подобно команде "more" в Unix), без записи его в файл,
используют опцию -m (more) при расшифровке:
pgp -m ciphertextfile
Для задания возможности просмотра распакованного текста ТОЛЬКО
на экране без возможности записи на диск, добавьте опцию -m:
pgp -steam her_userid message.txt
Для восстановления оригинального имени файла в процессе
дешифровки, добавьте опцию -p:
pgp -p ciphertextfile
Для использования режима фильтра (как в Unix), читая из
стандартного потока ввода и записывая в стандартный поток
вывода, добавим опцию -f:
pgp -feast her_userid outputfile
Юридические вопросы
===================
Для получения детальной информации относительно
лицензирования, дистрибуции, авторских прав, патентов, торговых
марок, ограничения ответственности и контроля над экспортом PGP,
см. раздел "Юридические вопросы" в "Руководстве пользователя PGP,
том II: Специальные разделы".
PGP использует алгоритм с открытым ключом, заявленный патентом
США #4,405,829. Исключительные права на этот патент принадлежат
калифорнийской фирме Public Key Partners, и вы можете нарушить ее
права, если будете использовать PGP в США. Это подробно
объясняется в части II Руководства.
PGP - это "партизански" свободно распространяемое программное
обеспечение (freeware), и я не возражаю против его широкого
распространения. Только не просите меня выслать вам копию. Вместо
этого, вы сможете получить ее самостоятельно с большинства BBS и
FTP-станций Internet.
Благодарности
=============
Я хотел бы поблагодарить следующих людей за их содействие
созданию Pretty Good Privacy. Хотя я и был автором PGP версии
1.0, основные части последующих версий были выполнены усилиями
многих людей из разных стран под моим общим руководством.
Branko Lankester, Hal Finney и Peter Gutmann пожертвовали
огромным количеством времени для расширения возможностей PGP 2.0
и переноса ее в Unix. Hal и Branko приложили просто героические
усилия для реализации моих новых протоколов управления ключами.
Branko пожертвовал времени больше, нежели кто-либо другой.
Hugh Kennedy перенес PGP в систему VAX/VMS, Lutz Frank - на
Atari ST, а Cor Bosman и Colin Plumb - на Commodore Amiga.
Перевод PGP на другие языки был выполнен: Jean-loup Gailly во
Франции, Armando Ramos в Испании, Felipe Rodriquez Svensson и
Branko Lankester в Нидерландах, Miguel Angel Gallardo в Испании,
Hugh Kennedy и Lutz Франк в Германии, David Vincenzetti в Италии,
Harry Bush и Maris Gabalins в Латвии, Zygimantas Cepaitis в
Литве, Peter Suchkow и Andrew Chernov в России и Александр
Смишалев перевел ее на эсперанто. Peter Gutmann предложил
перевести PGP на английский язык Новой Зеландии, но, в конце
концов, мы решили, что можно будет получить PGP с английским
языком США.
Jean-loup Gailly, Mark Adler и Richard B. Wales опубликовали
код сжатия ZIP и предоставили разрешение на включение его в PGP.
Ron Rivest разработал и опубликовал для свободного использования
(public domain) подпрограммы MD5. Шифр IDEA(tm) был разработан
Xuejia Lai и James L. Massey из ETH в Zurich, и используется в
PGP с разрешения Ascom-Tech AG.
Charlie Merritt научил нас как использовать хорошую арифметику
высокой точности для криптографии с открытым ключом, а Jimmy
Upton пожертвовал нам алгоритм более быстрого умножения по
модулю. Thad Smith реализовал еще более быстый алгоритм. Zhahai
Stewart принес много полезных идей относительно форматов файлов
PGP и других вещей, включая идею наличия более, чем одного
идентификатора пользователя для ключа. Я услышал идею
относительно поручителей от Whit Diffie. Kelly Goen провел всю
основную работу для первоначальной электронной публикации PGP
1.0.
Различные усилия по созданию кода приложили также Colin Plumb,
Derek Atkins и Castor Fu. Помогли нам также Hugh Miller, Eric
Hughes, Tim May, Stephan Neuhaus, и многие другие. В процессе
реализации находятся два проекта переноса PGP на Macintosh.
С момента выхода версии 2.0 многие программисты присылали
поправки и исправления ошибок, вносили исправления на других
системах компьютеров. Их слишком много, чтобы выразить
благодарность каждому индивидуально.
Процесс развития PGP преобразовался в примечательный
социальный феномен, чья уникальная политическая привлекательность
вдохновляет на совместные усилия все большее число
программистов-добровольцев. Помните детскую историю с названием
"Суп из камней"? Все труднее пронзать взглядом толстый слой супа,
чтобы разглядеть камни на дне горшка, которые я бросил, чтобы все
это начать.
Справка об авторе
=================
Philip Zimmermann - инженер-консультант по разработке
программного обеспечения с 18-летним стажем, специализируется в
сложных системах реального времени, криптографии, идентификации и
передаче данных. Его опыт включает разработку и внедрение
идентификационных систем для финансовых информационных сетей,
защиты данных в сетях, протоколов управления ключами, сложных
многозадачных систем реального времени, операционных систем и
локальных компьютерных сетей.
Zimmerman также предлагает разработку на заказ версий
криптографических и идентификационных продуктов и реализаций
публичного ключа, таких, как NIST DSS, а также поддержку
разработанных продуктов. Адрес его консультационной фирмы:
Boulder Software Engineering
3021 Eleventh Street
Boulder, Colorado 80304 USA
Телефон 303-541-0140 (голос или факс) (10:00am - 7:00pm Mountain Time)
Internet: [email protected]
==================================================================
Перевод на русский язык (c)1993 Peter Suchkow
DIOGEN, PGP support site, St.Petersburg, Russia
FIDO : 2:5030/51
Palantiri: 228:5001/7
Internet : [email protected]
|