Введение в криптографию
Шрифт:
Единственный способ избежать подобной проблемы — не допускать махинаций с открытыми ключами. Это несложно, если вы получили открытый ключ Алисы непосредственно от неё при личной встрече, но может оказаться весьма проблематичным, если она в тысячах миль от вас или просто в данный момент недоступна.
Вероятно, вы сможете получить ключ Алисы от вашего с ней общего друга Дэвида, который имеет подлинную копию её открытого ключа. Дэвид может подписать открытый ключ Алисы собственным закрытым, тем самым поручаясь за его достоверность.
Так, Дэвид заверит сертификат ключа, чем укажет, что ключ Алисы не был подделан. В то же время, проверка подписи поручителя на сертификате требует наличия у вас подлинной копии открытого ключа Дэвида. Вероятно, Дэвид также сможет предоставить
Этот подписанный сертификат открытого ключа Алисы может быть загружен ей самой или Дэвидом на сервер-депозитарий с тем, чтобы вы могли его получить в любое удобное время. Скачав сертификат, вы сверяете подпись открытым ключом Дэвида и можете быть уверены, что это на самом деле подлинный открытый ключ Алисы. Ни один мошенник не сможет вас одурачить, выдавая свой поддельный ключ за ключ Алисы, поскольку никто не может подделать сертифицирующую этот ключ подпись Дэвида.
Широко известный и уважаемый человек может даже специализироваться на услугах посредничества и представительства между разными пользователями, подписывая сертификаты их открытых ключей. Этого доверенного индивида можно назвать Центром сертификации. Цифровой сертификат любого открытого ключа, содержащий подпись этого Центра сертификации, может быть априорно расценен как подлинный и действительно принадлежащий пользователю, чья идентификация указана в сведениях сертификата. Любому пользователю, желающему участвовать в такой Сети доверия, для проврки подписей будет достаточно достоверной копии открытого ключа ЦС. В некоторых случаях, ЦС может также выступать в качестве сервера-депозитария, позволяя пользователям сети запрашивать из него открытые ключи; но для сервера-депозитария заверять ключи нет никакой необходимости.
Доверенный централизованный ЦС особенно уместен в крупных корпоративных и государственных учреждениях с единой системой управления. Некоторые организации используют иерархии ЦС.
В более децентрализованной среде возможность всем пользователям выступать в качестве представителей и доверенных поручителей своих друзей и коллег будет более предпочтительна, нежели централизованный источник сертификации ключей.
Одна из привлекательных особенностей PGP состоит в том, что он реализуется равно эффективно и в централизованной среде с Центром сертификации, и в более децентрализованной, в которой пользователи самостоятельно обмениваются своими персональными ключами.
Комплекс мер по защите открытых ключей от подделки — это наиболее сложная проблема практических реализаций криптосистем с открытым ключом. Это "ахиллесова пята" всей асимметричной криптографии, и большая часть всех механизмов PGP завязана именно на решение этой главной задачи.
Не используйте чужой открытый ключ, пока полностью не убедитесь, что это не подделка, а подлинный ключ человека, чья идентификация указана в сведениях сертификата. Вы можете быть уверены в подлинности ключа, если получили его напрямую от владельца при личной встрече, либо если его сертификат подписан человеком, которому вы доверяете, при условии, что располагаете достоверной копией ключа поручителя. Кроме того, в сведениях сертификата должно быть отражено как имя, так и фамилия пользователя, а не одно его имя.
Как бы вы ни были опытны, не забывайте о мерах предосторожности и не полагайтесь на подлинность скачанного с сервера-депозитария или с веб-сайта открытого ключа, если он не заверен кем-то, кому вы доверяете. Такой несертифицированный открытый ключ мог быть подделан или заменён кем угодно, возможно даже системным администратором сервера или веб-сайта.
Если вас просят подписать чей-то ключ, прежде убедитесь, что он действительно принадлежит человеку, указанному в идентификации сертификата, поскольку подпись на сертификате открытого ключа — это ваше поручительство за его подлинность и принадлежность указанному человеку. Все, кто вам доверяет, примут этот открытый ключ за достоверный, потому что он несёт вашу сертифицирующую подпись. Не полагайтесь на домыслы и чужое
мнение: подписывайте открытый ключ только тогда, когда лично и непосредственно убедились в его принадлежности заявленному владельцу. Предпочтительнее подписывать только те ключи, которые были напрямую получены от их истинных владельцев.Для подписания сертификата ключа вы должны быть гораздо более уверены в его подлинности, нежели для его личного использования с целью шифрования сообщений. Для установления подлинности ключа только для личного применения будет достаточно подписи доверенного поручителя. Но чтобы подписать ключ самому, вам необходима собственная независимая непосредственная убеждённость в том, кто в действительности является владельцем этого ключа. Возможно, вам стоит позвонить владельцу (убедитесь, что говорите с тем, с кем надо) и попросить его прочитать отпечаток ключа, дабы удостовериться, что ключ, находящийся у вас, является точной копией оригинального.
Имейте в виду: ваша подпись на сертификате ключа не поручительствует за доверие владельцу; она поручительствует только за достоверность (подлинность) этого открытого ключа. Вы не рискуете репутацией, подписывая ключ социопата, если полностью убеждены, что ключ действительно принадлежит ему. Другие люди поверят в подлинность ключа, поскольку он подписан вами (допуская, что они вам доверяют), но не поверят его владельцу как человеку. Доверие целостности ключа и доверие его обладателю — не одно и то же.
Полезно держать свой открытый ключ вместе с набором удостоверяющих подписей от ряда поручителей в надежде, что большинство людей доверится сертифицирующей подписи хотя бы одного из них. Вы можете разместить свой ключ с набором подписей в различных депозитариях. Если подписываете чужой открытый ключ, верните его копию с вашей подписью обратно владельцу; таким образом, вы сможете выступать в качестве его представителя.
Примите все меры, чтобы никто не мог подменить файл вашей собственной связки открытых ключей. Проверка подписей на сертификате нового ключа полностью зависит от целостности достоверных открытых ключей, уже находящихся на вашей связке. Держите связку под физическим контролем; желательно хранить её, равно как и закрытый ключ, на собственном персональном компьютере, нежели на многопользовательской системе со свободным доступом или служебном ПК; это необходимо для защиты связки от подделки, а не от компрометации. Храните актуальную достоверную резервную копию связки открытых и закрытых ключей на защищённом от записи внешнем носителе, например, на компакт-диске.
Так как ваш собственный открытый ключ является последним источником прямой или опосредованной проверки подлинности всех остальных ключей на связке, этот ключ защитить от подделки важнее всего. Будет лучше, если вы сделаете его резервную копию и поместите её на надёжный носитель.
PGP в своей логике исходит из допущения, что вы держите связки ключей, сам PGP и систему в целом в полной физической безопасности. Если злоумышленник получит доступ к компьютеру, тогда, теоретически, он сможет изменить программу, делая неэффективными все её механизмы обнаружения недостоверных ключей.
Несколько усложнённым способом защиты всей связки открытых ключей от подделки будет подписание её файла закрытым ключом. Вы можете сделать это, создав съёмную подпись (detached signature) файла и регулярно её сверяя.
Как PGP определяет подлинность ключей
Прежде чем приступить к этому параграфу, ознакомьтесь с предыдущим, "Как защитить открытый ключ от подмены".
PGP следит, какие из открытых ключей на связке сертифицированы подписями ваших доверенных поручителей. Вам нужно лишь указать программе, кого вы считаете доверенными поручителями, подписав их открытые ключи собственным безоговорочно достоверным закрытым. Здесь PGP возьмёт работу на себя и будет автоматически удостоверять все остальные ключи, подписанные установленными вами поручителями; разумеется, вы можете продолжать самостоятельно сертифицировать дополнительные ключи.