![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Pretty Good Privacy (PGP) используется для защиты сообщений и файлов с помощью их шифрования и цифровой подписи. Удобно использовать PGP вместе с одним из популярных пакетов электронной почты, обеспечивающим поддержку встраиваемых модулей. PGP позволяет шифровать, подписывать, расшифровывать и проверять сообщения во время отправки и чтения электронной почты. В PGP применяются стойкие криптографические алгоритмы CAST, тройной DES и IDEA. Для выработки сеансового ключа используются алгоритмы RSA и Диффи-Хеллмана, для подписи — RSA и DSS.
PGP обеспечивает интегрированную поддержку распространения и поиска открытых ключей на серверах ключей.
Перед использованием PGP необходимо сгенерировать открытый и секретный ключи. Открытый ключ может быть передан абоненту как сообщение электронной почты, как файл, или можно поместить его на сервер открытых ключей. Получив копию чьего-либо открытого ключа, пользователь может добавить его на свою связку открытых ключей. Затем пользователь должен убедиться, что ключ не был подделан. Сделать это можно, сравнивая уникальный отпечаток своей копии ключа с отпечатком оригинальной копии. Отпечаток — это строка из цифр и букв, уникальным образом идентифицирующая владельца ключа. После того, как пользователь убедился в действительности ключа, он подписывает его, чтобы дать PGP знать, что он считает безопасным его использование. Кроме того, пользователь может указать степень доверия, которую он испытывает к владельцу ключа, в смысле его способности ручаться за подлинность ключей третьих лиц. Таким образом, формируется сеть поручительства абонентов сети за достоверность распространяемых ключей, так называемая «сеть доверия».
3.5. PGP: концепция безопасности и уязвимые места
Предположим, вы желаете отправить сообщение коллеге (назовем ее Алла), и вы хотите, чтобы никто, кроме Аллы, не смог его прочитать. Как показано на рис.1, вы можете зашифровать (или закодировать), то есть преобразовать сообщение безнадежно сложным образом, зная, что никто, кроме вас и Аллы, не сможет его прочитать. Вы применяете для шифрования криптографический ключ, а Алла должна использовать тот же ключ для его расшифровки (или раскодирования).
Один и тот же ключ используется как для зашифровки, так и для расшифровки сообщения. Это означает, что этот ключ должен быть сначала передан по надежному каналу, с тем, чтобы обе стороны знали его до того, как передавать зашифрованное сообщение по ненадежному каналу. Но если у вас есть надежный канал, которым вы можете воспользоваться для обмена ключами, спрашивается, зачем вам вообще нужна криптография?
Рис. 1. Симметричная система шифрования
КАК РАБОТАЕТ КРИПТОГРАФИЯ С ОТКРЫТЫМ КЛЮЧОМ
Как показано на рис. 2, при использовании криптографии с открытым ключом каждый обладает парой дополняющих друг друга ключей: открытым и закрытым. Каждый из ключей, входящих в пару, подходит для расшифровки сообщения, зашифрованного с применением другого ключа из той же пары. Зная открытый ключ, закрытый вычислить невозможно. Открытый ключ может быть опубликован и широко распространен по сетям коммуникаций.
Рис. 2. Система шифрования с открытым ключом
Такой протокол обеспечивает приватность без необходимости обладания надежным каналом, которого требует обычная криптография с секретным ключом.
Кто угодно может использовать открытый ключ получателя для того, чтобы зашифровать отправляемое тому сообщение. Получатель затем использует соответствующий закрытый ключ для его расшифровки. Никто, кроме получателя, не может расшифровать сообщение, так как никто больше не имеет доступа к его закрытому ключу. Даже тот, кто зашифровал сообщение с помощью открытого ключа, не сможет его расшифровать.
КАК ШИФРУЮТСЯ ВАШИ ФАЙЛЫ И СООБЩЕНИЯ
Поскольку алгоритм шифрования с открытым ключом значительно медленнее алгоритма обычного шифрования, использующего один ключ, шифрование лучше всего выполнять, используя процесс, показанный на рис. 3.
Рис. 3. Совместное использование симметричных систем и криптографических систем с открытым ключом
Для шифрования сообщения используется качественный и быстрый алгоритм обычного шифрования с секретным ключом. В оригинальной, незашифрованной форме это сообщение называется "открытым текстом". В ходе процесса, невидимого пользователю, для обычного шифрования открытого текста используется временный случайный ключ, сгенерированный специально для этого "сеанса". Затем данный случайный ключ шифруется с помощью открытого ключа получателя. Этот зашифрованный с использованием открытого ключа "сеансовый ключ" отправляется получателю вместе с зашифрованным текстом ("шифровкой").
КАК ОСУЩЕСТВЛЯЕТСЯ РАСШИФРОВАНИЕ ДАННЫХ
Как показано на рис. 4, расшифрование данных - процесс обратный по отношению к шифрованию. Закрытый ключ получателя используется для восстановления временного сеансового ключа, который, в свою очередь, используется при запуске быстрого обычного алгоритма с секретным ключом для расшифровки основного тела сообщения.
Рис. 4. Процесс дешифрования данных
КАК ОСУЩЕСТВЛЯЕТСЯ ЭЛЕКТРОННАЯ ПОДПИСЬ
PGP накладывает цифровую подпись для обеспечения аутентификации сообщения. Закрытый ключ отправителя используется для зашифровки дайджеста сообщения, таким образом "подписывая" сообщение. Дайджест сообщения - это 160- или 128-битная криптографически стойкая односторонняя хэш-функция. В чем-то она похожа на "контрольную сумму" или код проверки ошибок CRC, который компактно представляет сообщение и используется для проверки сообщения на наличие изменений. В отличие от CRC, дайджест сообщения формируется таким образом, что злоумышленник не может сгенерировать поддельное сообщение с аналогичным дайджестом. Дайджест сообщения передается в зашифрованном закрытым ключом отправителя виде, составляя цифровую подпись сообщения.
На рис. 5 показано, как генерируется цифровая подпись.
Рис. 5. Механизм генерации ЭЦП
Получатель (или кто-либо другой) может проверить правильность цифровой подписи (см. рис. 6), используя открытый ключ отправителя для расшифровки дайджеста сообщения. Это доказывает, что тот, кто указан в качестве отправителя сообщения, является его создателем и что сообщение не было впоследствии изменено другим человеком, так как только отправитель владеет своим закрытым ключом, использованным для формирования цифровой подписи. Подделка цифровой подписи невозможна, и отправитель не может впоследствии отрицать ее подлинность.
Рис. 6. Проверка подлинности ЭЦП
КАК ЗАЩИЩАТЬ ОТКРЫТЫЕ КЛЮЧИ ОТ ПОДМЕНЫ
В криптосистемах с открытыми ключами вам не нужно защищать открытые ключи от несанкционированного доступа. Наоборот, чем шире они распространяются, тем лучше. Однако важно защитить открытые ключи от подделки, чтобы быть уверенным в том, что ключ действительно принадлежит тому, чье имя он несет. Сначала взглянем на потенциальную опасность такой подмены, а затем опишем, как ее избежать при использовании PGP.
Предположим, вы хотите отправить приватное сообщение Алле. Вы подгружаете открытый ключ Аллы с какой-нибудь электронной доски объявлений (BBS). Вы шифруете свое письмо Алле ее открытым ключом и отправляете его через систему электронной почты той же BBS.
К несчастью, незаметно для вас или Аллы другой пользователь, по имени Виктор, проникает на BBS и генерирует открытый ключ, несущий идентификатор пользователя Аллы. Он тайно подменяет своим фальшивым ключом настоящий открытый ключ Аллы. Вы неосторожно используете этот фальшивый ключ, принадлежащий Виктору, вместо открытого ключа Аллы. Все выглядит нормально, потому что фальшивый ключ несет идентификатор пользователя Аллы. Теперь Виктор может расшифровать сообщение, предназначенное Алле, поскольку обладает секретным ключом из фальшивой пары. Он даже может затем снова зашифровать расшифрованное им сообщение настоящим ключом Аллы и отправить ей, так что никто ничего не заметит. Более того, он даже сможет потом накладывать от имени Аллы подпись, которая будет казаться подлинной, так как все будут использовать для ее верификации фальшивый ключ.
Единственный способ предотвратить такую неприятность - это исключить возможность подделки открытых ключей. Если вы получили открытый ключ Аллы непосредственно от нее, проблем не возникает. Но это может быть затруднительным, если Алла находится на расстоянии тысячи километров, или по другим причинам с ней невозможно встретиться лично.
Возможно, открытый ключ Аллы может передать вам ваш общий друг Борис, которому вы оба доверяете и который знает, что обладает подлинным ключом Аллы. Борис может подписать открытый ключ Аллы, ручаясь, таким образом, за его целостность. Для подписи он должен использовать свой собственный закрытый ключ.
Эта процедура создает подписанный сертификат открытого ключа, который подтверждает, что ключ Аллы не был подделан. Конечно, для того чтобы вы могли проверить правильность подписи Бориса, необходимо, чтобы у вас была заведомо правильная копия его открытого ключа. Возможно, Борис может также передать Алле подписанную копию вашего ключа. Борис, таким образом, будет служить посредником между вами и Аллой.
Этот подписанный сертификат открытого ключа Аллы или Бориса могут подгрузить на BBS, откуда вы можете его позднее скопировать. Так как вы в состоянии проверить подпись Бориса с помощью его открытого ключа, вы можете быть уверены, что это - действительно ключ Аллы. Никакой злодей не сможет обмануть вас, заставив поверить, что изготовленный им фальшивый ключ принадлежит Алле, поскольку никто не может подделать подпись Бориса.
Пользующееся широким доверием лицо может даже специализироваться на посредничестве между пользователями, заверяя своей подписью сертификаты их открытых ключей. Это пользующееся доверием лицо может считаться "доверенным сертификатором". Любому публичному ключу, заверенному подписью уполномоченного сертификатора, можно доверять в том смысле, что он принадлежит тому, чье имя он несет. Все пользователи, желающие участвовать в реализации такой сети распределенного доверия, должны обладать заведомо верной копией ключа уполномоченного сертификатора с тем, чтобы подпись последнего могла быть проверена. В некоторых случаях доверенный сертификатор может также поддерживать сервер ключей, обеспечивая пользователям сети возможность искать открытые ключи с помощью запросов к серверу ключей, однако необязательно, чтобы тот, кто поддерживает сервер ключей, был также и тем, кто их сертифицирует.
Единый уполномоченный сертификатор особенно подходит для больших централизованно управляемых организаций, правительственных или корпоративных. Некоторые организационные среды используют иерархии доверенных сертификаторов.
Для децентрализованных сред более походящим, чем создание централизованного доверенного сертификатора, вероятно, будет предоставление всем пользователям возможности действовать в качестве посредников.
Одним из наиболее привлекательных свойств PGP остается то, что она в равной мере успешно может работать как в централизованной среде с уполномоченным сертификатором, так и в децентрализованной среде, в которой индивидуумы свободно обмениваются своими ключами.
Задача защиты открытых ключей от подделки как таковая составляет единственную серьезную проблему практического приложения криптографии с открытыми ключами. Она является "ахиллесовой пятой" этой технологии, и сложность программного обеспечения в основном связана с решением именно этой задачи.
Вам следует использовать чей-либо открытый ключ только после того, как вы убедитесь в том, что это настоящий ключ, а не подделка, что он принадлежит именно тому лицу, чье имя несет. Вы можете быть уверены в этом, только если получили сертификат открытого ключа непосредственно от его хозяина или если он подписан кем-либо, кому вы доверяете, и заведомо правильная копия ключа которого у вас уже есть. Идентификатор пользователя ключа должен нести полное имя владельца, а не только его первое имя.
Как бы велико ни было искушение, вы никогда не должны полагаться на случайность и доверять подлинности ключа, взятого с BBS, если он не подписан кем-нибудь, кому вы доверяете. Несертифицированный открытый ключ может оказаться подделкой, выполненной кем угодно, включая администратора этой BBS.
Если вас просят подписать сертификат чьего бы то ни было открытого ключа, убедитесь, что ключ действительно принадлежит лицу, чье имя он несет. Ведь ваша подпись на чужом ключе - это ручательство с вашей стороны за то, что ключ принадлежит его владельцу. Те, кто вам доверяет, примут к использованию этот ключ, потому что он несет вашу подпись. Полагаться на слухи чрезвычайно неосмотрительно - не подписывайте открытых ключей, если вы не уверены в том, что они действительно принадлежат их хозяевам. По возможности, вы должны подписывать их, только если вы получили их непосредственно от хозяев.
Подписи на сертификате, сделанной надежным посредником, обычно достаточно для того, чтобы использовать сертифицированный ключ для шифрования. Однако чтобы подписать чей-либо ключ, вы должны обладать независимым знанием из первых рук о том, кому принадлежит этот ключ. Можно позвонить владельцу ключа и продиктовать ему отпечаток ключа - удостоверившись при этом, что вы разговариваете именно с ним.
Имейте в виду, что ваша подпись на сертификате открытого ключа представляет собой ручательство за целостность ключа и принадлежности его действительному владельцу, а отнюдь не за самого владельца. Вы ничем не рискуете, подписывая открытый ключ владельца, если уверены в том, что этот ключ действительно ему принадлежит. Другие примут этот ключ, проверив вашу подпись на нем (если они, конечно, вам доверяют), но из этого не будет следовать доверия к его обладателю. Быть уверенным в ключе - совсем не то же самое, что верить его владельцу.
Совсем неплохо иметь под рукой свой собственный открытый ключ, сертифицированный подписями различных посредников, имея в виду, что большинство корреспондентов доверяет хотя бы одному из тех, кто ручается за целостность вашего ключа. Вы можете опубликовать свой открытый ключ вместе с набором удостоверяющих подписей на различных BBS. Если вы подписали чей-либо ключ, верните сертификат владельцу с тем, чтобы он смог присоединить вашу подпись к набору подписей других лиц, также ручающихся за его целостность.
PGP сама следит за тем, какие из открытых ключей на вашей связке надлежащим образом сертифицированы подписями посредников, которым вы доверяете. Все, что вам остается, - это указать, кому вы доверяете как посредникам, и сертифицировать их ключи своей собственной подписью. PGP затем будет автоматически переносить эту степень доверия на все ключи, сертифицированные подписями указанных вами посредников. И, конечно, вы можете непосредственно сертифицировать ключи сами.
Обеспечьте невозможность подделки вашей связки открытых ключей. Проверка сертификата вновь подписываемого ключа в конечном итоге зависит от целостности тех зацепленных на эту связку открытых ключей, которым вы уже доверяете. Сохраняйте физический контроль над своей связкой открытых ключей, храня ее по возможности на своем персональном компьютере, а не на удаленной системе с разделяемым доступом, так же, как вы поступаете и со своим закрытым ключом. Это следует делать для предохранения связки ключей от подделки, а не от раскрытия. Сохраняйте надежные копии связки открытых ключей и свой закрытый ключ на защищенном от записи носителе.
Так как ваш собственный открытый ключ используется в качестве последней инстанции для прямой или косвенной сертификации всех остальных открытых ключей, хранящихся на вашей связке, он является самым важным ключом для защиты от подделки. Нелишним будет сохранить его копию на отдельном защищенном от записи флоппи-диске.
Вообще, использование PGP предполагает, что вы сохраняете физический контроль над своим компьютером, связками ключей, а также исполняемой копией самой PGP. Если злоумышленник может модифицировать данные на ваших дисках, тогда, теоретически, он может модифицировать саму программу с тем, чтобы она более не могла распознавать подделку ключей.
Один из несколько более сложных способов защитить всю связку открытых ключей целиком - это подписать всю связку своим закрытым ключом. Выполнить это можно, создав отделенную цифровую подпись этой связки.
КАК PGP СЛЕДИТ ЗА ТЕМ, КАКИЕ КЛЮЧИ ДЕЙСТВИТЕЛЬНЫ
До чтения этого раздела нужно прочитать предыдущий раздел, где рассказывается о том, как защищать открытые ключи от подделки.
PGP следит за тем, какие из ключей, находящихся на вашей открытой связке, надлежащим образом сертифицированы посредниками, которым вы доверяете. Все, что вам остается, - это указать, кому вы доверяете как посредникам, и сертифицировать их ключи своей собственной подписью. PGP затем будет автоматически переносить эту степень доверия на все ключи, сертифицированные подписями указанных вами посредников. И, конечно, вы можете непосредственно сертифицировать ключи сами.
Для определения степени полезности открытого ключа PGP использует два различных критерия - не перепутайте их:
Принадлежит ли ключ действительно тому, чье имя он несет? Иными словами, сертифицирован ли он кем-нибудь, чьей подписи вы доверяете?
Принадлежит ли он тому, кому вы доверяете сертифицировать другие ключи?
Ответ на первый вопрос PGP может вычислить. На второй вопрос вы должны дать PGP явный ответ. После того как вы ответите на второй вопрос, PGP может вычислить ответ на первый вопрос для ключей, сертифицированных посредником, которому вы доверяете.
Ключи, сертифицированные посредниками, которым вы доверяете, PGP считает действительными. Ключи, принадлежащие этим посредникам, сами должны быть сертифицированы вами или другими посредниками, которым вы доверяете.
PGP также учитывает, что вы можете испытывать разную степень доверия к людям в смысле их способности быть посредниками. Степень вашего доверия к способности владельца ключа выступать в качестве посредника отражает вашу оценку не только его персональной порядочности, но и его компетентности в понимании механизма управления ключами и склонности руководствоваться здравым рассудком при принятии решения о сертификации ключа третьего лица. Вы можете обозначить лицо как пользующееся полным доверием, ограниченным доверием или не пользующееся доверием. Эта информация об испытываемой вами степени доверия хранится на связке вместе с соответствующими ключами, но при экспорте ключа из связки она не переносится, так как ваше личное мнение о степени, в которой можно доверять владельцу ключа, считается конфиденциальным.
Когда PGP оценивает действительность открытого ключа, она проверяет уровень доверия, приданный вами всем подписям, которыми он сертифицирован. Она вычисляет взвешенное значение действительности, то есть две подписи лиц, пользующихся ограниченным доверием, рассматриваются так же, как подпись одного лица, пользующегося полным доверием. Скептицизм PGP может регулироваться - например, вы можете настроить ее таким образом, чтобы она требовала наличия двух подписей лиц, пользующихся полным доверием, или трех лиц, пользующихся ограниченным доверием для того, чтобы считать ключ действительным.
Ваш собственный ключ является для PGP "аксиоматически" действительным и не требует для подтверждения никаких сертификатов. PGP распознает ваши собственные открытые ключи по наличию соответствующих закрытых ключей на связке закрытых ключей. PGP предполагает, что вы доверяете себе в достаточной степени, чтобы сертифицировать ключи других лиц.
По прошествии некоторого времени вы соберете ключи людей, которым вы доверяете как посредникам. Остальные также выберут тех, кому они доверяют в этом качестве. И каждый, в свою очередь, постепенно соберет такую коллекцию сертифицирующих его открытый ключ подписей, что сможет ожидать от любого получателя доверия, по крайней мере, к одной или двум из этих подписей. Это приведет к возникновению широкой и устойчивой к сбоям сети доверия, по которой будут распространяться открытые ключи.
Этот уникальный самодеятельный подход контрастирует со стандартными схемами управления открытыми ключами, разработанными правительством и другими монолитными организациями, например, с Internet Privacy Enhanced Mail (PEM), основанной на централизованном контроле и принудительно централизованном доверии. Стандартная схема предполагает иерархию уполномоченных сертификаторов, которая диктует вам, кому вы должны верить. Децентрализованный вероятностный метод определения действительности ключей, реализованный PGP, позволяет вам самим решать, кому вы доверяете, ставя вас самих на вершину своей собственной пирамиды сертификации. PGP - для тех людей, которые предпочитают сами укладывать свои парашюты.
Хотя здесь подчеркивается децентрализованный, рассчитанный на самодеятельность подход, это не значит, что PGP не может использоваться в иерархических и централизованных схемах управления открытыми ключами. Например, пользователи - большие корпорации, вероятно, предпочтут иметь специальную должность или лицо, которое подписывает ключи всех сотрудников. PGP поддерживает и этот централизованный сценарий в качестве вырожденного случая своей обобщенной модели распределенного доверия.
КАК ЗАЩИЩАТЬ ЗАКРЫТЫЕ КЛЮЧИ ОТ РАСКРЫТИЯ
Свой закрытый ключ и пароль следует сохранять очень тщательно. Если же закрытый ключ окажется скомпрометированным, следует быстро оповестить об этом все заинтересованные стороны, пока кто-нибудь не использовал его для фальшивой подписи от вашего имени. Например, украденный ключ может быть использован для создания фальшивых сертификатов открытых ключей, что создаст проблемы для массы людей, особенно если ваша подпись пользуется широким доверием. И, разумеется, компрометация вашего ключа может привести к тому, что все зашифрованные сообщения, адресованные вам, смогут быть расшифрованы.
Защиту закрытого ключа следует начать с того, что вы должны всегда сохранять над ним физический контроль. Держать его на домашнем персональном компьютере или на переносном компьютере, который вы носите с собой, приемлемо. Если вы вынуждены использовать служебный компьютер, над которым вы не всегда сохраняете физический контроль, держите связки закрытых и открытых ключей на защищенном от записи флоппи-диске и забирайте его с собой, когда выходите из офиса. Хранить закрытый ключ на удаленной системе с разделенным доступом (например, на Unix-системе с удаленным доступом) не годится. Кто-нибудь может перехватить сеанс связи, захватить ваш пароль и затем получить доступ к самому закрытому ключу, хранящемуся на этой системе. Закрытый ключ может храниться только на машине, находящейся под вашим физическим контролем.
Не храните пароль на том же компьютере, где хранится ваш закрытый ключ. Сохранение закрытого ключа и пароля на одном компьютере похоже на хранение банкоматной карточки и бумажки с записанным на ней PIN в одном и том же бумажнике. Вы не должны позволить постороннему добраться до диска, содержащего и пароль, и файл с закрытым ключом. Более безопасным будет просто запомнить пароль и не держать его нигде, кроме собственной головы. Если вы все-таки чувствуете необходимость записать пароль, предохраняйте эту запись очень тщательно, возможно, более тщательно, чем сам закрытый ключ.
Вы также должны сделать резервную копию своего закрытого ключа - если у вас есть лишь одна его копия, и вы ее потеряете, это сделает бесполезными все копии вашего открытого ключа, распространенные по всему миру.
Децентрализованный подход к управлению ключами, поддерживаемый PGP, имеет свои преимущества, но его использование означает также, что мы не можем полагаться на единый централизованный список скомпрометированных ключей. Это делает более сложной задачу ограничения ущерба от компрометации закрытого ключа. Вам просто нужно сообщить миру о факте компрометации и надеяться, что об этом услышит каждый.
Если случится худшее, и будут скомпрометированы как ваш закрытый ключ, так и пароль (надеемся, что вы об этом каким-то образом узнаете), вам необходимо будет сгенерировать сертификат о компрометации ключа. Этот тип сертификата используется для предупреждения других о том, что ваш открытый ключ не должен больше использоваться. В PGP для создания такого сертификата используется команда Revoke (Отозвать) из меню PGPkeys. Затем вы должны каким-то образом отправить этот сертификат всем на свете, или, по крайней мере, своим друзьям, друзьям своих друзей и т. д. Их копия программы PGP присоединит этот сертификат к связке открытых ключей, что воспрепятствует случайному использованию скомпрометированного ключа в будущем. Затем вы можете сгенерировать новую пару из открытого и закрытого ключей и опубликовать новый открытый ключ. Новый открытый ключ и сертификат компрометации старого ключа могут быть разосланы в одном сообщении.
ЧТО, ЕСЛИ ВЫ ПОТЕРЯЕТЕ СВОЙ ЗАКРЫТЫЙ КЛЮЧ
Обычно для создания сертификата отзыва закрытого ключа, подписанного этим самым ключом, можно использовать команду Revoke (Отозвать) из меню PGPkeys.
А что, если вы потеряли свой закрытый ключ или ваш закрытый ключ оказался разрушенным? Вы не можете отозвать его сами, так как для этого вам потребовался бы тот самый закрытый ключ, которого у вас уже нет. Вам придется попросить каждое лицо, которое подписывало сертификат с вашим открытым ключом, отозвать свою подпись. Тогда каждый, кто попытается использовать ваш ключ, основываясь на доверии к одному из этих посредников, будет знать, что использовать ваш открытый ключ больше нельзя.
При оценке пакета криптографического программного обеспечения всегда остается вопрос: "Почему вы должны доверять этому продукту?" Он остается даже в случае, когда вы сами изучили исходный текст программ, - ведь не каждый обладает криптографическим опытом, чтобы оценить уровень безопасности. И даже если вы опытный криптограф, от вас могут ускользнуть неочевидные слабые места в алгоритмах.
Большинство людей просто не представляют, как немыслимо сложно придумать алгоритм шифрования, который выдержит продолжительную и целеустремленную атаку со стороны хорошо оснащенного противника. Многие разработчики обычного программного обеспечения используют наивные схемы шифрования, а некоторые из этих схем оказываются внедренными в коммерческие программные пакеты шифрования и продаются за немалые деньги ничего не подозревающим пользователям.
Это похоже на продажу автомобильных ремней безопасности, которые выглядят прочными, но не выдерживают даже несильного рывка. Полагаться на них будет более опасным, чем обходиться вовсе без ремней безопасности. Никто не подозревает, что они слабы, пока не случится настоящая авария. Если вы полагаетесь на слабое криптографическое обеспечение, вы можете, сами не подозревая о том, подставить под удар секретную информацию.
В некотором отношении криптография похожа на фармацевтику: целостность является решающим фактором. Испорченный пенициллин выглядит так же, как свежий пенициллин. Если неправильно работает ваш пакет электронных таблиц, вы это увидите; но как вы можете распознать слабость своего криптографического пакета? Шифровка, выполненная с помощью слабого алгоритма шифрования, выглядит так же, как шифровка, выполненная с помощью стойкого алгоритма. В этой области как нигде - масса шарлатанских снадобий. Куча лекарств, ни от чего не помогающих. В отличие от торговцев "патентованными средствами" прошлого, их изготовители обычно даже не подозревают, что продают знахарское зелье. Они могут быть неплохими программистами, но часто не удосуживаются прочитать ни единого учебника по криптографии. Но они полагают, что могут писать хорошие криптографические программы. Почему бы нет? Ведь, на первый взгляд, это так просто. И программы вроде бы неплохо работают.
Каждый, кто думает, что изобрел непробиваемую схему шифрования, - или невероятно редкий гений, или просто наивен и неопытен.
Ведущие криптографы мира исследовали использованные в PGP алгоритмы и протоколы. PGP хорошо изучена и находится в использовании многие годы. Криптографическое совершенство пакета PGP вполне надежно уже потому, что исходные тексты программ доступны для экспертизы.
СКОМПРОМЕТИРОВАННЫЕ ПАРОЛЬ И ЗАКРЫТЫЙ КЛЮЧ
Наверное, самую простую атаку можно осуществить, если вы оставите где-нибудь записанный пароль, защищающий ваш закрытый ключ. Если кто-нибудь получит его, а затем получит доступ к файлу с вашим закрытым ключом, он сможет читать адресованные вам зашифрованные сообщения и ставить от вашего имени цифровую подпись.
Вот некоторые рекомендации по защите пароля:
Не используйте очевидные фразы, которые легко угадать, например, имена своих детей или супруги.
Используйте в пароле пробелы и комбинации цифр и букв. Если ваш пароль будет состоять из одного слова, его очень просто отгадать, заставив компьютер перебрать все слова в словаре. Именно поэтому фраза в качестве пароля гораздо лучше, чем слово. Более изощренный злоумышленник может заставить свой компьютер в поисках пароля перебрать словарь известных цитат.
Используйте творческий подход. Придумайте фразу, которую легко запомнить, но трудно угадать: такая фраза может быть составлена из бессмысленных выражений или очень редких литературных цитат.
ПОДДЕЛКА ОТКРЫТЫХ КЛЮЧЕЙ
Самое уязвимое место - это возможность подделки открытых ключей. Вероятно, это самое серьезное слабое место любой криптосистемы с открытыми ключами, в частности, потому, что большинство новичков не в состоянии немедленно обнаружить такую подделку.
Когда вы используете чей-то открытый ключ, удостоверьтесь, что он не был подделан. Целостности нового чужого открытого ключа следует доверять, только если он получен непосредственно от его владельца или подписан кем-то, кому вы доверяете. Обеспечьте невозможность подделки открытых ключей на вашей связке. Сохраняйте физический контроль как над связкой открытых ключей, так и над своим закрытым ключом, по возможности сохраняйте их на своем персональном компьютере, а не на удаленной системе с разделением доступа. Сохраняйте резервную копию обеих связок.
НАРУШЕНИЕ РЕЖИМА ФИЗИЧЕСКОЙ БЕЗОПАСНОСТИ
Нарушение режима физического доступа может позволить постороннему захватить ваши файлы с исходным текстом или отпечатанные сообщения. Серьезно настроенный противник может выполнить это посредством ограбления, роясь в мусоре, спровоцировав необоснованный обыск и изъятие, с помощью шантажа или инфильтрации в ряды ваших сотрудников. Применение некоторых из этих методов особенно подходит против самодеятельных политических организаций, использующих в основном труд неоплачиваемых добровольцев.
Не стоит впадать в ложное чувство безопасности только потому, что у вас есть криптографическое средство. Приемы криптографии защищают данные, только пока те зашифрованы, и не могут воспрепятствовать нарушению режима физической безопасности, при котором скомпрометированными могут оказаться исходные тексты, письменная или звуковая информация. Этот вид атаки также дешевле, чем криптоаналитическая атака на PGP.
РАДИОАТАКА
Хорошо оснащенным противником может быть предпринята атака еще одного вида, предполагающая удаленный перехват электромагнитного излучения, испускаемого вашим компьютером. Эта дорогая и часто трудоемкая атака, вероятно, также является более дешевой, чем криптоанализ. Соответствующим образом оборудованный фургон может припарковаться рядом с вашим офисом и издалека перехватывать нажатия клавиш и сообщения, отображаемые на мониторе. Это скомпрометирует все ваши пароли, сообщения и т. п. Такая атака может быть предотвращена соответствующим экранированием всего компьютерного оборудования и сетевых кабелей с тем, чтобы они не испускали излучения. Технология такого экранирования известна под названием Tempest и используется рядом правительственных служб и фирм, выполняющих оборонные заказы. Существуют поставщики оборудования, которые продают Tempest.
ЗАЩИТА ОТ ФАЛЬШИВЫХ ДАТ ПОДПИСЕЙ
Слабым местом PGP является возможность того, что нечестный пользователь создаст электронную подпись на сообщении или сертификате ключа, снабженную фальшивой датой. Если вы пользуетесь PGP от случая к случаю, вы можете пропустить этот раздел и не погружаться в дебри сложных протоколов криптографии с открытыми ключами.
Ничто не помешает нечестному пользователю изменить системную дату и время на своем компьютере и создать сертификат своего открытого ключа или подпись, содержащие другую дату. Он может создать видимость того, что подписал что-то раньше или позже того времени, когда он это действительно сделал, или что его пара ключей была создана раньше или позже. Из этого могут проистекать различные юридические или финансовые выгоды, например, за счет создания некоего оправдания, позволяющего ему затем отрицать свою подпись.
Проблема фальшивой даты на электронной подписи не более серьезна, чем проблема фальшивой даты, стоящей рядом с подписью ручкой. Никого не волнует, что кто угодно может поставить любую дату рядом со своей подписью на договоре. Иногда "некорректная" дата рядом с подписью не предполагает никакого мошенничества: возможно, она означает время, с которого подписывающий признает этот документ, или время, с которого он хочет, чтобы его подпись вступила в силу.
В ситуациях, когда вопрос доверия к тому, что подпись выполнена именно в определенное время, является критичным, люди могут просто обратиться к нотариусу, чтобы он засвидетельствовал момент подписи и заверил это своей печатью. Аналогично, при использовании цифровой подписи для заверки даты подписи документа можно обратиться к пользующейся доверием третьей стороне, чтобы она сертифицировала эту подпись своей. Никакого экзотического или чрезмерно формализованного протокола для этого не требуется. Подписи свидетелей издавна используются как юридическое доказательство того, что документ был подписан в определенное время.
Пользующийся доверием уполномоченный сертификатор или нотариус может создавать достойные доверия подписи с заведомо корректной датой. Такой подход не требует централизованной сертификации. Возможно, эту роль может выполнять любой пользующийся доверием посредник или незаинтересованная сторона точно так же, как действуют сегодня обычные нотариусы. Когда нотариус заверяет своей подписью подпись другого лица, он создает заверенный сертификат другого заверенного сертификата, который может служить подтверждением подписи точно так же, как подпись обычного нотариуса служит подтверждением подписи, выполненной от руки. Нотариус может вести собственный реестр, добавляя в него отделенные сертификаты с цифровыми подписями (не копируя в него сами подписанные документы). Этот реестр можно сделать общедоступным. Дата на подписи нотариуса должна пользоваться доверием, и она может являться более веским доказательством и юридически быть более значимой, чем дата на сертифицируемой подписи.
Последующие версии PGP, вероятно, будут предусматривать возможность простого управления нотаризованными сертификатами подписей с достойными доверия датами.
УТЕЧКА ДАННЫХ В МНОГОПОЛЬЗОВАТЕЛЬСКИХ СИСТЕМАХ
PGP была разработана для использования на персональном компьютере, находящемся под физическим контролем лишь одного пользователя. Если вы запускаете PGP дома на своем собственном персональном компьютере, ваши зашифрованные файлы находятся в безопасности, пока никто не ворвался в ваш дом, не украл компьютер и не заставил вас открыть ему свой пароль (или не отгадал пароль, если он слишком прост).
PGP не предназначена для защиты исходных открытых данных в скомпрометированной системе. Она также не может предотвратить использование злоумышленником изощренных способов доступа к закрытому ключу во время его использования. Вы должны просто знать о существовании этих опасностей при использовании PGP в многопользовательской среде и соответствующим образом изменить свои ожидания и свое поведение. Возможно, ваши обстоятельства таковы, что вы должны рассмотреть возможность использования PGP только на изолированной однопользовательской машине, находящейся под вашим непосредственным физическим контролем.
АНАЛИЗ АКТИВНОСТИ
Даже если атакующий не сможет прочитать содержимое вашей зашифрованной корреспонденции, он сможет извлечь некоторую полезную информацию, наблюдая, откуда приходят и куда уходят сообщения, отмечая их размер и время их отправления. Это похоже на то, как если бы злоумышленник смог взглянуть на счет за междугородные телефонные переговоры, чтобы узнать, кому вы звонили, когда и сколько времени разговаривали, даже если содержание телефонных разговоров остается ему неизвестно. Это называется анализом активности. Решение этой проблемы требует введения специальных коммуникационных протоколов, разработанных для повышения сопротивления анализу активности в вашей коммуникационной среде. Возможно, при этом потребуется применение ряда криптографических приемов.
КРИПТОАНАЛИЗ
Возможно, кто-то, обладающий суперкомпьютерными ресурсами (например, правительственная разведывательная служба) предпримет дорогостоящую и чудовищную криптоаналитическую атаку. Возможно, ему удастся сломать ваш ключ RSA, используя новые засекреченные знания в области разложения чисел на множители. Но многие ученые интенсивно и безуспешно атакуют этот алгоритм с 1978 года.
Возможно, правительство обладает каким-либо секретным методом взлома обычного шифра IDEA, использованного в PGP. Это - самый страшный кошмар для криптографа. Но абсолютных гарантий безопасности в практическом приложении криптографии не бывает.
И все же осторожный оптимизм кажется оправданным. Разработчики алгоритма IDEA- одни из самых сильных криптографов Европы. IDEA подвергался интенсивной проверке на безопасность и подвергался экспертизе со стороны лучших криптографов мира. В том, что касается устойчивости к дифференциальному криптоанализу, он, вероятно, лучше DES.
Кроме того, даже если этот алгоритм обладает какими-то до сих пор не замеченными слабыми местами, опасность сильно уменьшается из-за того, что PGP сжимает открытый текст до шифрования. Стоимость необходимых для взлома вычислений, скорее всего, будет больше ценности любого сообщения.
Если обстоятельства, в которых вы находитесь, оправдывают предположения о том, что вы можете подвергнуться столь чудовищной атаке, возможно, вам следует обратиться к консультанту по вопросам безопасности данных для выработки особого подхода, соответствующего вашим чрезвычайным требованиям.
В общем, без надежной криптографической защиты ваших данных от противника не требуется практически никаких усилий для перехвата ваших сообщений, и он может делать это на повседневной основе, особенно если они передаются по модему или электронной почтой. Если вы используете PGP и соблюдаете разумные меры предосторожности, злоумышленнику потребуется затратить намного больше усилий и средств для нарушения вашей приватности.
Если вы защищаете себя от простейших атак и чувствуете, что на вашу приватность не собирается посягать целеустремленный и обладающий огромными ресурсами противник, вы, вероятно, будете защищены PGP. PGP дает вам Почти Полную Приватность.
АЛГОРИТМЫ, ИСПОЛЬЗУЕМЫЕ В PGP
Таблица 3.1
Дата публикования: 2014-11-02; Прочитано: 889 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!