Филипп Циммерманн - Введение в криптографию
Полезно держать свой открытый ключ вместе с набором удостоверяющих подписей от ряда поручителей в надежде, что большинство людей доверится сертифицирующей подписи хотя бы одного из них. Вы можете разместить свой ключ с набором подписей в различных депозитариях. Если подписываете чужой открытый ключ, верните его копию с вашей подписью обратно владельцу; таким образом, вы сможете выступать в качестве его представителя.
Примите все меры, чтобы никто не мог подменить файл вашей собственной связки открытых ключей. Проверка подписей на сертификате нового ключа полностью зависит от целостности достоверных открытых ключей, уже находящихся на вашей связке. Держите связку под физическим контролем; желательно хранить её, равно как и закрытый ключ, на собственном персональном компьютере, нежели на многопользовательской системе со свободным доступом или служебном ПК; это необходимо для защиты связки от подделки, а не от компрометации. Храните актуальную достоверную резервную копию связки открытых и закрытых ключей на защищённом от записи внешнем носителе, например, на компакт-диске.
Так как ваш собственный открытый ключ является последним источником прямой или опосредованной проверки подлинности всех остальных ключей на связке, этот ключ защитить от подделки важнее всего. Будет лучше, если вы сделаете его резервную копию и поместите её на надёжный носитель.
PGP в своей логике исходит из допущения, что вы держите связки ключей, сам PGP и систему в целом в полной физической безопасности. Если злоумышленник получит доступ к компьютеру, тогда, теоретически, он сможет изменить программу, делая неэффективными все её механизмы обнаружения недостоверных ключей.
Несколько усложнённым способом защиты всей связки открытых ключей от подделки будет подписание её файла закрытым ключом. Вы можете сделать это, создав съёмную подпись (detached signature) файла и регулярно её сверяя.
Как PGP определяет подлинность ключей
Прежде чем приступить к этому параграфу, ознакомьтесь с предыдущим, "Как защитить открытый ключ от подмены".
PGP следит, какие из открытых ключей на связке сертифицированы подписями ваших доверенных поручителей. Вам нужно лишь указать программе, кого вы считаете доверенными поручителями, подписав их открытые ключи собственным безоговорочно достоверным закрытым. Здесь PGP возьмёт работу на себя и будет автоматически удостоверять все остальные ключи, подписанные установленными вами поручителями; разумеется, вы можете продолжать самостоятельно сертифицировать дополнительные ключи.
PGP применяет два параллельных критерия оценки достоверности открытых ключей, не спутайте их:
1. Принадлежит ли ключ предполагаемому владельцу? Иными словами, заверен ли он доверенной подписью?
2. Принадлежит ли ключ человеку, уполномоченному вами на удостоверение иных ключей (поручителю)?
PGP автоматически вычисляет ответ на вопрос 1. Ответ на вопрос 2 вы предоставляете программе сами. Когда вы даёте ответ на вопрос 2, PGP может рассчитать ответ на вопрос 1 для всех ключей, подписанных установленным вами поручителем.
Ключи, заверенные доверенным поручителем, расцениваются подлинными. Ключ самого доверенного поручителя должен быть удостоверен или лично вами, или другим доверенным поручителем.
PGP даёт возможность указать одну из градаций доверия каждому поручителю. Уровень доверия владельцу ключа, выступающего в качестве поручителя, должен отражать не только вашу оценку порядочности этого человека, но и ваше мнение о его компетентности в понимании процедур управления ключами и их сертификации. Можно выставить уровень отсутствия доверия, частичного доверия или полного доверия пользователю в удостоверении других открытых ключей. Этот показатель будет хранится на вашей связке вместе с его ключом, но при экспортировании ключа со связки PGP её не копирует, поскольку ваше личное мнение считается конфиденциальным.
Рассчитывая достоверность открытого ключа, PGP проверяет уровни доверия всех сертифицирующих его подписей. Затем он выводит общую оценку достоверности: например, две частично доверяемые подписи расцениваются равнозначными одной полностью доверяемой. Скептицизм программы поддаётся регулировке: вы можете настроить PGP, чтобы для удостоверения ключа он требовал две полностью доверяемые или три частично доверяемые подписи и т. д[14].
Ваш собственный открытый ключ достоверен аксиоматически. Программа определяет, что открытый ключ принадлежит вам, находя на связке соответствующий ему закрытый. PGP также полагает, что вы целиком доверяете самому себе в сертификации других ключей.
С течением времени вы будете собирать на связке ключи корреспондентов, кого-то из которых решите наделить правом поручительства. Другие пользователи будут назначать собственных поручителей. Все постепенно будут накапливать и распространять со своими сертификатами наборы удостоверяющих подписей в надежде, что любой потенциальный корреспондент доверится хотя одной-двум из них. Всё это в конечном итоге сформирует децентрализованную отказоустойчивую Сеть доверия всех открытых ключей общественной информационной системы.
Этот уникальный децентрализованный подход резко констрастирует со стандартными схемами администрирования открытых ключей, разработанных в единоначальных государственных и частных консервативных организациях вроде Internet Privacy Enhanced Mail (PEM), полагающихся на централизованный контроль и навязываемую вертикальную систему доверия. Стандартные модели основаны на иерархии Центров сертификации, решающих за вас, кому вы можете доверять. Распределённый вероятностный метод определения подлинности открытых ключей — это краеугольный камень архитектуры управления ключами нашей программы. PGP ставит вас на вершину вашей собственной пирамиды сертификации, давая право самостоятельно решать, кто заслуживает доверия, а кто — нет. PGP создан для людей, предпочитающих лично паковать свои парашюты.
Имейте в виду, что акцентирование внимания на этом распределённом массовом подходе не означает, что PGP не может быть реализован и в более иерархичных структурированных схемах администрирования. Например, крупным корпоративным пользователям будет полезно иметь некую центральную фигуру (лицо или департамент), сертифицирующую ключи всех служащих. PGP справляется с таким централизованным сценарием, как с частным упрощённым случаем его собственной более универсальной модели доверия.
Как уберечь закрытый ключ от компрометации
Тщательнейшим образом оберегайте свой закрытый ключ и парольную фразу! Если закрытый ключ окажется скомпрометирован, вам нужно как можно быстрее дать знать об этом всем заинтересованным лицам, пока злоумышленник не начал подделывать вашу электронную подпись. Например, взломщик сможет использовать ключ для подписания сертификатов поддельных открытых ключей, что может создать большие проблемы для множества пользователей, особенно если ваша подпись имеет у них высокий авторитет. И, самое главное, скомпрометированный закрытый ключ ставит под угрозу раскрытия все ваши конфиденциальные послания и файлы.
Прежде всего держите свой закрытый ключ под полным физическим контролем. Можете хранить его на домашнем компьютере или в ноутбуке, который носите с собой. Если вы работаете за офисным компьютером, над которым не имеете постоянного контроля, то держите связки открытых и закрытых ключей на защищённом от записи внешнем носителе, например, флоппи-диске или смарт-карте, и никогда не забывайте его в конторе, уходя домой. Ни в коем случае не держите закрытый ключ на многопользовательской машине, например, на UNIX-системе с коммутируемым подключением. Взломщик может прослушать модемное соединение, перехватить парольную фразу, а затем добраться до закрытого ключа. Используйте свой закрытый ключ только на машине, находящейся под вашим полным физическим контролем.
Не храните парольную фразу на том же компьютере, что и закрытый ключ! Держать парольную фразу и сам ключ на одном ПК так же опасно, как держать свой PIN в одном бумажнике с банковской картой. Представьте, что будет, если кто-то получит доступ к диску, содержащему и закрытый ключ, и парольную фразу. Конечно, самое надёжное место для хранения парольной фразы — ваша собственная память. Если же вам кажется, что пароль всё-таки стоит записать, спрячьте запись и держите в безопасности, возможно даже в большей, чем сам ключ.
Сделайте несколько резервных копий закрытого ключа на разных носителях. Помните, что пока у вас только один экземпляр закрытого ключа, его потеря сделает бесполезными все копии открытого, которые вы распространили по миру, а вся зашифрованная информация окажется безвозвратно потеряна.