PGP: Кодирование и шифрование информации с открытым ключом
Шрифт:
Для того, чтобы увидеть все удостоверяющие подписи, связанные с каждым ключом, используйте опцию -kvv:
pgp -kvv [userid] [keyring]
Если вы хотите задать отдельное имя файла каталога ключей, но хотите увидеть все ключи из него, попробуйте использовать такой альтернативный способ:
pgp keyfile
Если не заданы опции командной строки, PGP выведет список всех ключей в keyfile.pgp, и также будет пытаться добавлять их в ваш каталог ключей, если их там еще нет.
Как защищать открытые ключи от подделки.
В криптографической системе с открытым ключом
Предположим, что вы хотите послать частное сообщение Алисе. Вы списываете открытый удостоверенный ключ Алисы с BBS ("электронная доска объявлений"). Вы шифруете ваше письмо к Алисе с помощью этого открытого ключа и посылаете его к ней через электронную почту BBS.
К сожалению, без вашего и Алисы ведома, другой пользователь с именем Чарли "отфильтровал" эту BBS и сгенерировал свой собственный открытый ключ с присоединенным идентификатором пользователя Алисы. Он скрытно подставляет свой поддельный ключ вместо настоящего открытого ключа Алисы. Вы, ничего не подозревая, используете этот поддельный ключ, принадлежащий Чарли, вместо ключа Алисы. Все проходит нормально, так как этот поддельный ключ имеет идентификатор пользователя Алисы. Теперь Чарли может декодировать сообщение, предназначенное Алисе, потому что он имеет соответствующий секретный ключ. Он может даже снова зашифровать декодированное сообщение с настоящим открытым ключом Алисы и послать это ей, так что никто и не заподозрит никакого подвоха. Кроме того, он может даже делать вполне достоверные подписи Алисы с этим секретным ключом, потому что все будут использовать поддельный открытый ключ для проверки подписи Алисы.
Единственный способ предотвращать это бедствие заключается в том, чтобы предотвратить возможность подделки кем-либо открытого ключа. Если вы получили открытый ключ Алисы прямо от нее, то нет проблем. Но это может быть затруднительно, если Алиса находится за тысячи миль или вообще сейчас недостижима.
Возможно, вы смогли бы получить открытый ключ Алисы от вашего общего друга Давида, который знает, что у него есть достоверная копия открытого ключа Алисы, и которому вы оба доверяете. Давид может подписать открытый ключ Алисы, удостоверяя его целостность. Давид может создать эту подпись с помощью своего собственного секретного ключа.
Таким образом будет создано подписанное удостоверение открытого ключа, и будет показано, что ключ Алисы не был подделан. Но для этого требуется, чтобы вы имели заведомо верную копию открытого ключа Давида для проверки его подписи. При этом возможно, чтобы Давид обеспечил также и Алису подписанной копией вашего открытого ключа. Таким образом, Давид служит как бы "поручителем" между вами и Алисой.
Это подписанное удостоверение открытого ключа для Алисы может быть передано Давидом или Алисой на BBS, и вы можете списать его позже. Тогда вы сможете проверять подпись с помощью открытого ключа Давида и, таким образом, быть уверенным, что это действительно открытый ключ Алисы. Никакой мошенник не сможет одурачить вас так, чтобы вы приняли его собственный поддельный ключ за ключ Алисы, потому что никто другой не может подделывать подписи, сделанные Давидом.
Пользующийся доверием человек может даже специализироваться в области "рекомендации" пользователей друг другу посредством удостоверения их открытых ключей своей подписью. Этот доверенный человек мог бы расцениваться как "сервер" ("ключник") или как "Удостоверяющий Авторство". Любым удостоверениям открытого ключа, обладающим подписью такого сервера можно вполне доверять, как действительно принадлежащим тому, кто в них указан. Все пользователи, кто хочет участвовать в этом, будут нуждаться в заведомо верной копии только открытого ключа сервера, чтобы его подписи могли бы быть проверены.
Доверенный централизованный сервер ключей или Удостоверяющий Авторство наиболее подходит для большой безликой центрально управляемой корпорации или правительственных учреждений.
Для более децентрализованных массовых "партизанских" использований, разрешение всем пользователям действовать как доверенные поручители для их друзей, вероятно, сработает лучше, чем центральный сервер ключей. PGP настроена, чтобы подчеркивать этот органически децентрализованный подход.
Он лучше отражает естественный способ взаимодействия людей на персональном социальном уровне, и позволяет людям лучше выбирать, кому они могут доверять управление ключами.
Все это дело защиты открытых ключей от подделки — наиболее трудная проблема в программных средствах, использующих принцип открытого ключа. Это ахиллесова пята криптографии с открытым ключом, и некоторая сложность программ связана с решением именно этой проблемы.
Вы должны использовать открытый ключ только после того, как вы уверены, что он вполне достоверен, не был подделан и действительно принадлежит тому человеку, который на это претендует. Вы можете быть в этом уверены, если вы получили открытый ключ непосредственно от его владельца, либо если этот ключ имеет подпись кого-либо из тех, кому вы доверяете и от которого вы уже получили достоверный открытый ключ. Кроме того, идентификатор пользователя должен содержать полное имя и фамилию владельца, а не только имя.
Неважно, как вас соблазнят — а вас будут соблазнять — никогда , НИКОГДА не признавайте целесообразность и не доверяйте открытому ключу, который вы переписали с BBS, если он не подписан кем-либо, кому вы доверяете. Такой никем не удостоверенный ключ вполне мог быть поделан кем-то, возможно даже администратором BBS.
Если вас попросят подписать чей-либо сертификат открытого ключа, убедитесь, что этот ключ действительно принадлежит человеку, чье имя указано в идентификаторе пользователя удостоверения этого ключа. Это необходимо потому, что ваша подпись на этом удостоверении — ваше личное утверждение принадлежности этого ключа. Другие люди, доверяющие вам, будут принимать этот ключ как достоверный, потому что он подписан вами. Плохой совет — полагаться на слухи; не подписывайте открытый ключ, пока не получите независимую информацию из первых рук о принадлежности этого ключа. Предпочтительно подписывать только после получения ключа прямо от автора.
Если вы удостоверяете открытый ключ, вы должны быть уверены в принадлежности этого ключа в гораздо большей степени, чем при простом шифровании сообщения этим ключом. Чтобы быть убежденным в достоверности ключа настолько, чтобы использовать его, ключ должен иметь удостоверяющие подписи от надежных поручителей. Однако, для того, чтобы самому удостоверить этот ключ, вы должны знать о действительном владельце этого ключа из первых рук. К примеру, вы могли бы позвонить ему по телефону и прочитать ему файл ключа для окончательного подтверждения того факта, что этот ключ — его, при этом будучи уверенным, что разговариваете с тем, кем надо.