Лабораторная работа № 4 “Передача зашифрованных сообщений по электронной почте” Цель работы: Знакомство с основными принципами передачи и приема зашифрованных почтовых сообщений. Приобретение практических навыков работы с программой PGP. Литература: 1. М. Пайк .INTERNET в подлиннике: Пер с англ.- СПб.:BHV – Санкт-Петербург. 1996 г. 2. пользователя. 3. Pretty Good Privacy TM . PGP для персональной приватности. Руководство Компютерра, №48(225)1.12.1997. Контрольные вопросы: 1. Для чего предназначены программы шифрования сообщений? 2. Какие существуют способы для шифрования сообщений? 3. В чем отличие схемы шифрования с “с секретным ключем” от схемы “открытымключем”? 4. Получение закрытого ключа. Для чего используется закрытый ключ? 5. Получение открытого ключа. Для чего используется открытый ключ? 6. Какие существуют методы распространения открытого ключа? 7. Для чего используется цифровая подпись? 8. Как отправить кому-либо зашифрованное почтовое сообщение? 9. Как прочесть полученное зашифрованное сообщение? 10. Шифрование присоединенных к сообщению файлов. с Выполнение работы: Ознакомиться с программой PGP по литературе /1/, /2/ или настоящему методическому пособию Запустить программу PGP Создать пару ключей для своего почтового адреса student№@bluestar Ключи должны иметь двухдневный срок действия. Созданные ключи не нужно отсылать на сервер ключей. Запустить программу чтения электронной почты Outlook Exchange. Послать зашифрованное и подписанное сообщение на свой почтовый адрес. Прочитать полученное сообщение. Послать другому пользователю копию своего открытого ключа. Получить от другого пользователя копию его открытого ключа. Послать другому пользователю зашифрованное сообщение, содержащее зашифрованный прикрепленный файл и цифровую подпись. Прочитать полученное от другого пользователя зашифрованное сообщение. Расшифровать прикрепленный к сообщению файл. Проверить подпись отправителя. Составить отчет по работе Варианты заданий № компьютера 1 2 4 3 5 6 7 8 посылающего сообщение № компьютера 4 3 1 2 8 7 6 5 получающего сообщение Содержание отчета: Отчет должен содержать: 1. Цель работы. 2. Выбранный алгоритм генерации ключа и длину ключа. 3. Адрес электронной почты вашего компьютера и адрес электронной почты другого пользователя. 4. Имя файла на локальном , который был передан как вложение другому пользователю – имя исходного и зашифрованного файла. 5. Имя файла, полученного от другого пользователя как вложение – имя зашифрованного и расшифрованного файла. 6. Результат проверки цифровой подписи отправителя сообщения. 7. Выводы по работе. Теоретическая часть: Зачем шифровать? Вопрос защиты информации и переписки от несанкционированного доступа стар, как мир. Люди почему-то упорно не хотят, чтобы их письма и файлы читали. Это личное. Это приватное. И это не касается никого, кроме вас. Возможно, вы планируете политическую кампанию, обсуждаете свои налоговые проблемы , или у вас тайный роман. А может быть вы переписываетесь с политическим диссидентом из страны с репрессивным режимом. Чего бы это ни касалось, вы не желаете, чтобы ваши частные письма, отправляемые электронной почтой, или конфиденциальные документы читались кем-то еще. Нет ничего дурного в том, чтобы стремиться к приватности. Теперь мы общаемся в основном с помощью электроники. Это приводит к тому, что наши самые интимные разговоры могут стать достоянием посторонних, а мы об этом даже не узнаем: разговоры по сотовому телефону могут прослушиваться каждым, у кого есть радиоприемник; отправка по Интернету электронной почты ничуть не безопаснее, чем разговоры по сотовому телефону. Последняя, теряя новизну, ,быстро вытесняет почту бумажную, ее использование становится нормой. Но электронная почта может рутинно и автоматически сканироваться на предмет наличия интересующих кого-либо ключевых слов в больших объемах и без возможности об этом узнать. Возможно, вы полагаете, что ваша электронная почта не содержит ничего предосудительного, и шифровать ее нет необходимости. Если вы действительно законопослушный гражданин, которому нечего скрывать, почему вы не пишите все свои письма на открытках? Почему не соглашаетесь регулярно проходить проверку на употребление наркотиков? Почему требуете предъявления ордера, если полиция собирается обыскивать ваш дом? Пытаетесь что-нибудь скрыть? Если вы прячете свои письма в конверты, значит ли это, что вы диверсант или торговец наркотиками, или, может быть, просто одержимы манией преследования? Так нужно ли законопослушным гражданам шифровать свою электронную почту? Что, если бы вы все были уверены, что законопослушные граждане должны писать все свои письма на открытках? Если какой-нибудь нонконформист попытался бы достигнуть приватности, используя для своей почты конверты, это возбудило бы подозрение. Наверное, власти захотели бы открыть его письма и посмотреть, что же он там прячет. К счастью, мы не живем в таком мире, поскольку большая часть почты отправляется в конвертах. Поэтому использованием конверта никто не привлекает к себе внимания. Массовость применения обеспечивает некоторую безопасность. Точно так же, чтобы никто не мог привлеч к себе внимания использованием шифрования, было бы неплохо, если бы каждый повседневно шифровал всю свою электронную почту, сколь бы невинным ни было ее содержание. Если приватность ставится вне закона, то лишь те, кто стоит вне закона, обладают приватностью. Разведывательные службы имеют доступ к хорошим криптографическим технологиям, его также имеют гангстеры и торговцы наркотиками. Но обычным гражданам и самодеятельным политическим организациям по большей части не была доступна криптография с открытыми ключами военной степени стойкости. До сих пор не была. PGP отдает власть над приватностью народа в руки самого народа. И в этом есть общественная необходимость. Вот почему я написал эту программу. Филлип Зиммерман – главный технолог компании Pretty Good Privvacy, Inc. Очень краткие основы криптографии. Для начала, немного элементарной терминологии. Предположим, вы желаете отправить сообщение коллеге (назовем ее Алиса), и вы хотите, чтобы никто, кроме Алисы, не смог его прочитать. Как показано на рис.1, вы можете зашифровать (или закодировать), то есть преобразовать сообщение безнадежно сложным образом, зная, что никто, кроме вас и Алисы, не сможет его прочитать. Вы применяете для шифрования криптографический ключ, а Алиса должна использовать тот же ключ для расшифровки (или раскодирования). По крайней мере, так это выглядит при применении обычной криптографии с “секретным ключем”. Один и тот же ключ используется как для зашифровки, так и для расшифровки сообщения. Это означает, что этот ключ должен быть сначала передан по надежному каналу, с тем чтобы обе стороны знали его до того, как передавать зашифрованное сообщение по ненадежному каналу. Но если у вас есть надежный канал, которым вы можете воспользоваться для обмена ключами, спрашивается, зачем вам вообще нужна криптография? Как работает криптография с олткрытым ключем? Как показано на рис.2, при использовании криптографии с открытым ключом каждый обладает парой дополняющих друг друга ключей: открытым и закрытым. Каждый из ключей, входящих в пару, подходит для расшифровки сообщения, зашифрованного с применением другого ключа из той же пары. Зная открытый ключ, закрытый вычислить невозможно. Открытый ключ может быть опубликован и широко распространен по сетям коммуникаций. Такой протокол обеспечивает приватность без необходимости обладания надежным каналом, которого требует обычная криптография с секретным ключом. Кто угодно может использовать открытый ключ получателя для того, чтобы зашифровать отправляемое сообщение. Получатель затем использует соответствующий закрытый ключ для его расшифровки. Никто, кроме получателя, не может расшифровать сообщение, так как никто больше не имеет доступа к закрытому ключу. Даже тот, кто зашифровал сообщение с помощью открытого ключа, не сможет его расшифровать. Как шифруются файлы и сообщения. Поскольку алгоритм шифрования с открытым ключом значительно медленнее алгоритма обычного шифрования, использующего один ключ, шифрование лучше всего выполнять, используя процесс, показанный на рис.3. Для шифрования сообщения используется качественный и быстрый алгоритм обычного шифрования с секретным ключом. В оригинальной, незашифрованной форме это сообщение называется “открытым текстом”. В ходе процесса, невидимого пользователю, для обычного шифрования открытого текста используется временный случайный ключ, сгенерированный специально для этого “сеанса”. Затем данный случайный ключ шифруется с помощью открытого ключа получателя. Этот зашифрованный с использованием открытого ключа “сеансовый ключ” отправляется получателю вместе с зашифрованным текстом (“шифровкой”). Как осуществляется расшифровка. Как показано на рис.4, процесс расшифровки обратен по отношению к шифрованию. Закрытый ключ получателя используется для восстановления временного сеансового ключа, который, в свою очередь, используется при запуске быстрого обычного алгоритма с секретным ключом для расшифровки основного тела сообщения. Как осуществляется электронная подпись. Цифровая подпись используется для обеспечения аутентификации сообщения. Закрытый ключ отправителя используется для зашифровки дайджеста сообщения, таким образом “подписывая” сообщение. Дайджест сообщения – это 160- или 128-битная криптографически стойкая односторонняя хэш-функция. В чем-то она похожа на “контрольную сумму”, которая компактно представляет сообщение и используется для проверки сообщения на наличие изменений. Дайджест сообщения формируется таким образом, что злоумышленник не может сгенерировать поддельное сообщение с аналогичным дайджестом. Дайджест сообщения передается в зашифрованном закрытым ключем отправителя виде, составляя цифровую подпись сообщения. Получатель (или кто-либо другой) может проверит правильность цифровой подписи, используя открытый ключ отправителя для расшифровки дайджеста сообщения. Это доказывает, что тот, кто указан в качестве отправителя сообщения, является его создателем и что сообщение не было впоследствии изменено другим человеком, так как только отправитель владеет своим закрытым ключом, использованным для формирования цифровой подписи. Подделка цифровой подписи невозможна, и отправитель, не может впоследствии отрицать его подлинность. Чем шифровать? Существует довольно много способов защиты вашей информации вообще и электронной почты в частности от чужих глаз. Вот наиболее часто используемые: Защита паролем документов MS Office Защита паролем архивов Pkzip/Winzip. Самораспаковывающиеся шифрованные файлы. Шифрование программой PGP Защита паролем документов MS Office. Не используйте этот, по крайней мере для документов MS Office. Взлом настолько прост, что изготовитель коммерческого пакета для восстановления паролей, забытых незадачливыми пользователями, включил в программу пустые циклы, чтобы замедлить ее работу для создания впечатления сложности поставленной задачи. Изготовитель же некоммерческого пакета пустых циклов в программу не включал, (http://www.tamos.com/privacy/files/pwdremover.zip) так что взлом занимает меньше секунды. Взламываются документы MS Word 6.0 и 7.0, MS Excel 5.0 и 7.0, причем созданные как английской версией продукта, так и несколькими национальными, включая русскую. Защита паролем архивов Pkzip/Winzip. Программы Pkzip и Winzip позволяют создавать защищенные паролем архивы. Этот способ защиты довольно слаб. Специалисты по криптографии утверждают, что в методе шифрирования, используемой программой pkzip, обнаружены «дыры», позволяющие взломать архив не только подобрав пароль, но и другими способами, однако для успешного взлома требуется некоторая априорная информация о содержимом архива. Если же такой информации о файле нет, то для любой атаки на Pentium 100 для пароля из 6 знаков расклад таков: Набор символов Только цифры Только строчные буквы Только символы Строчные и заглавные буквы Строчные, заглавные и цифры Строчные, заглавные, цифры, символы Максимальное время 5.0 секунд 25.7 минуты 1.8 часа 27.5 часа 3.3 дня 42.5 дня Вывод: чем длиннее и сложнее пароль, тем сложнее задача его подбора. Самораспаковывающиеся шифрованные файлы. Когда вы шифруете файлы с использованием обычной криптографической программы, вы должны использовать эту же программу для расшифровки. Однако есть программы, позволяющие создать самораспаковывающиеся архивы, которые можно перенести на любой другой компьютер и расшифровать без использования программы дешифратора. Такой файлархив можно послать другу или записать на дискету: для расшифровки нужно знать лишь пароль. Для создания такого архива можно рекомендовать, например, программу Kwick-Crypt, использующую очень надежный 256-битный шифр Blowfish (http://www.kwikrite.clara.net/). Шифрование с помощью программы PGP. Очень сильное средство криптографической защиты. Сила PGP и в том, что никто не знает, как взломать зашифрованные PGP сообщения иначе, как используя “лобовую атаку”, т.е. перебор комбинаций символов, могущих образовывать ключ, и в превосходно продуманном и черезвычайно мощном механизме обработки ключей, в быстроте, удобстве и широте распространения. Популярность и бесплатное распространение сделали PGP фактически стандартом для электронной переписке во всем мире. Программа оперирует тремя типами объектов: Файлами. Доступ к функциям шифрования/расшифровки и наложения/проверки подписи открывается из менеджера файлов ОС, в Windows это Проводник; Текстовым содержимым буфера обмена; Почтовыми сообщениями. Для реализации данной возможности почтовая программа должна быть снабжена особой вставкой (plug-in). Если для используемого пакета такая вставка еще не разработана, криптографические операции над сообщением можно проводить через буфер обмена, хотя это и менее удобно. Разработаны вставки для MS Exchange/Outlook и Eudora, Mail’97 и Pegasus Mail для Windows. The BAT. С помощью команд PGP ее пользователь может выполнять все базовые криптографические функции, а именно: Генерацию пары из открытого/закрытого ключа; Шифрование файла с помощью открытого ключа любого пользователя PGP; Расшифровку файла с помощью своего закрытого ключа; Наложение цифровой подписи с помощью закрытого ключа на файл (аутентификация файла) или на открытый ключ другого пользователя (сертификация ключа); Проверку (верификацию) своей подписи или подписи другого пользователя с помощью его открытого ключа. Преимуществами программы PGP, отличающими ее от многих других криптографических приложений являются: Использование проверенных алгоритмов, выдержавших попытки взлома в течение достаточного времени; Длина ключей, достаточная, чтобы исключить снижение безопасности в результате увеличения вычислительных ресурсов потенциальных оппонентов в течение длительного периода времени (512-битные и длинные ключи PGP считаются относительно безопасными и сегодня); Локальная генерация и локальный менеджмент ключей, исключающие их попадание в чужие руки; Гибкая схема удостоверения действительности ключей, допускающая как распределенное управление доверием («Сеть доверия»), так и централизованную архитектуру сертификации; Открытость и доступность для проверки и критики не только алгоритмических решений и форматов файлов, но и исходного текста самой программы. Серверы открытых ключей. Для любой криптосистемы основной проблемой является обмен открытыми ключами. PGP предусматривает гибкую систему сертификации открытых ключей, исключающую массовую их компрометацию. В программу интегрирована связь с онлайновыми серверами открытых ключей. Такие серверы поддерживаются рядом организаций, включая PGP Inc. и МТИ. Поскольку передача ключей обеспечивается посредством не только особого протокола hkp, но и http, к серверу открытых ключей можно обратиться и посредством обычного браузера WWW. Существующие серверы открытых ключей связаны в сеть, поэтому ключи или сертификат, подгруженный на один из них, вскоре становится известен и всем остальным. Работа с программой PGP. Генерация пары ключей. Щелкните на кнопке «пуск» и выберите пункт PGPKeys из подменю PGP меню «Программы» (Programs), или щелкните на значке «замочек» в области системных индикаторов (System tray) и выберите пункт PGPKeys. Еще один способ запустить PGPKeys – щелкнуть на значке «ключики» в панели инструментов пакета электронной почты. После этого откроется окно PGPKeys. Выберите из меню Keys пункт New Key. В появившемся окне введите ваше имя и адрес электронной почты, В следующем окне выберите тип ключа – Diffie-Helman/DDS или RSA. RSA – старая технология, использовавшаяся в старых версиях PGP, оставленная для возможности переписки с пользователями старых версий. В следующем окне необходимо выбрать длину ключей. Чем длиннее ключ, тем меньше шансов, что кто-либо сумеет его взломать, но зато и процесс шифрования и расшифровки будет более длительным. Для повседневной работы длина ключа в 1024 бит будет достаточной. В следующем окне будет предложено ввести дату окончания срока действия ключей, или указать, что срок действия ключей неограничен (Key pair never expires). Обычно ключи создаются для постоянного использования, но в некоторых случаях могут понадобиться ключи для непродолжительного использования. После истечения указанного срока ключи уже не смогут использоваться для шифрования ваших сообщений или наложения цифровой подписи. В следующем окне необходимо ввести пароль, который будет использоваться для исключительного доступа к вашему закрытому ключу. При вводе пароля в окошке Passphrase Quality показывается степень трудоемкости взлома пароля путем подбора. Она тем выше, чем длиннее пароль и чем больше различных символов содержит. При нажатии на кнопку Далее (Next) программа приступает к генерации ключей. После завершения процесса создания ключей программа предлагает зарегистрировать созданный открытый ключ на сервере ключей (Send my key to the root server now). Зарегистрировав свой ключ на сервере ключей, он становится доступным для любого, кто захочет отправить вам зашифрованное сообщение. После нажатия на кнопку Готово (Finish) вы вновь попадете в окно со списком ключей, в котором появляется ваш новый ключ. Распространение ключей. Для распространения вашего открытого ключа есть несколько способов: регистрация вашего ключа на сервере ключей включение копии открытого ключа в почтовое сообщение Как включить свой открытый ключ в почтовое сообщение? В окне программы PGPKeys пометьте значок, символизирующий ваш ключ и выберите пункт Copy в меню Edit. В окне редактора почтового сообщения выберите пункт Вставка (Paste) в меню Правка (Edit). В текст почтового сообщения добавится копия вашего открытого ключа: -----BEGIN PGP PUBLIC KEY BLOCK----0+f5pt1r+O/AW7EjhNP0OzYEdvV0Dew4PqDwvHgZ6/hy6uWI Oqy8/g61mhyxHJ8dgd1inJnXAHBOn4gjuTkszxEq9QCg/8EX FA44Yn8D/0g6YMOywoFW7lUorgoE1RrnXSyErEYW3LrFq2HT hC38LYp2+1M9fs0etXNwMu57blrLvC+qwnfchgZ9EtchaT8I L9019q717B9LAKDdOgNNOGVNnvgJLHpYgY4rv+kEZwCgrDPe -----END PGP PUBLIC KEY BLOCK----Когда вы посылаете кому-то свой открытый ключ, обязательно подпишите сообщение своей цифровой подписью. Тогда получатель может проверить подпись и убедиться, что ключ действительно принадлежит вам. При получении по почте чьего-либо открытого ключа, скопируйте фрагмент текста, содержащий ключ, в буфер обмена, затем перейдите в окно PGP keys и выберите из меню Edit пункт Paste. Новый ключ будет показан в виде значка в окне PGP keys. Отправка зашифрованных сообщений. Запустите программу работы с электронной почтой, которая снабжена вставкой (plugin) для работы с PGP, например Microsoft Outlook Express. Нажмите на кнопку Создать сообщение на панели инструментов, или выберите соответствующий пункт в меню Файл. После составления почтового сообщения нажмите на кнопку Encrypt PGP на панели инструментов почтовой программы. После нажатия эта кнопка останется утопленной. Если вы хотите также наложить на сообщение свою цифровую подпись, нажмите на кнопку Sign Up на панели инструментов почтовой программы. После этого отправьте ваше сообщение как обычно. Если вы накладывали на сообщение цифровую подпись, перед отправкой появится окно, где необходимо ввести пароль для доступа к вашему закрытому ключу для формирования подписи. Если у вас есть копии открытых ключей всех получателей этого сообщения, то будут использованы эти ключи. Если же для какого-либо получателя открытый ключ не найден, появится диалоговое окно, в котором можно будет выбрать необходимый ключ. Если необходимо отправить какой-либо зашифрованный файл в виде приложения к сообщению, это можно сделать из окна программы Проводник (Explorer). Для этого пометьте нужный файл или файлы в окне Проводника, выберите необходимую операцию в подменю PGP меню Файл или контекстном меню, вызываемом правой клавишей мыши. В появившемся диалоговом окне будет предложено выбрать открытые ключи получателей. После этого будут созданы файлы с расширением .pgp, содержащие зашифрованные исходные файлы. Полученные зашифрованные файлы нужно прикрепить к сообщению обычным способом – пункт Вложение файла меню Вставка или кнопка Вложить файл на панели инструментов. Расшифровка полученных сообщений. Самый простой способ читать полученные зашифрованные сообщения – установить режим автоматической расшифровки сообщений. Для этого щелкните на значке «замочек» в области системных индикаторов (System tray) и выберите пункт Options. В появившемся окне настроек выберите закладку Email и включите флажок Automatically decrypt/verify when opening messages. Для подтверждения настроек нажмите на кнопку OK. В этом режиме все сообщения будут автоматически расшифровываться и показываться, как обычные сообщения. Однако этот режим имеет те неудобства, что делаются попытки расшифровки всех, даже незашифрованных сообщений, что заметно замедляет работу почтовой программы. Если режим автоматической расшифровки выключен, зашифрованного сообщения вы увидите блок зашифрованных данных: -----BEGIN PGP J7CBJb5N81D+k7s92n6FRMfaHOEFjfhEFWsTTEv+EeKu 5gSNmPZWM6nXdcALaVo+0F0iomqqyfuFDExFJdI=+zhq -----END PGP MESSAGE----- то при открытии MESSAGE----- Для его расшифровки нажмите на кнопку Decrypt PGP message на панели инструментов почтовой программы. Шифрованные данные будут заменены на расшифрованный текст сообщения. Если сообщение было подписано отправителем, будет проверена его подпись и выделена информация об отправителе и целостности сообщения. Если к сообщению прилагаются зашифрованные файлы, то вам необходимо сохранить присоединенные файлы на диске с помощью команды контекстного меню Сохранить вложения. Затем в окне Проводника пометьте эти файлы и выберите пункт Decrypt&Verify в подменю PGP меню Файл или контекстного меню, содержащие расшифрованные данные. Шифрование и расшифровка через буфер обмена. Если для вашего почтового клиента не разработана вставка (plug-in) PGP, все вышеописанные операции по шифрованию и расшифровке сообщений вы можете производить через буфер обмена. Для этого необходимо выделить незашифрованное сообщение или шифрованные данные в окне почтовой программы, поместить их в буфер обмена командой Копировать (Copy) в меню Правка (Edit). После этого щелкните на значке «замочек» в области системных индикаторов (System tray) и выберите меню Clipboard, и в нем выберите необходимую операцию: Encrypt – шифрование сообщения Sign – наложение цифровой подписи Encrypt & Sign – зашифровать и подписать Decrypt & Verify – расшифровать зашифрованное сообщение и проверить подпись отправителя, если сообщение подписано отправителем.