МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE Практическая работа №5 Тема 6 «Концепция комплексной защиты информационных банковских систем и сетей» Цель и задачи Изучение программного средства создания электронной цифровой подписи (ЭЦП) на примере программы Pretty Good Privacy (PGP) и создание ключей в системе PGP. Оглавление 1. Основные сведения о программе PGP 1.1. Алгоритм работы программы PGP 1.2. Формат файлов PGP 1.3. Основные программные приложения PGP 1.4. Преимущества использования программы PGP 2. Технология выполнения работы 2.1. Создание ключей в системе PGP 2.2. Передача открытого ключа корреспондентам 2.3. Передача подписанных и защищенных сообщений 2.4. Шифрование данных на жестком диске 3. Задание на самостоятельную работу Контрольные вопросы Задания 1. Создать пару ключей, используемых для несимметричного шифрования в системе PGP. 2. Подготовить открытые ключи системы PGP для передачи своим корреспондентам. 3. Создать сообщение, подписать и зашифровать его с помощью PGP и выполнить отправку сообщения. 4. С помощью PGP создайте файл и отправьте его на защищенное хранение. 5. Подготовить отчет о проделанной работе. 1. Основные сведения о программе PGP 1.1. Алгоритм работы программы PGP Прикладная криптосистема PGP (Pretty Good Privacy - Довольно хорошая секретность) была разработана и опубликована в Интернет в 1991 году программистом и математиком Филиппом Циммерманом, по сути, оказавшись первым продуктом подобного уровня, представленным для свободного доступа всему миру. МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE PGP - это система, сочетающая преимущества симметричных и ассиметричных криптосистем. Программа использует взаимосвязные пары ключей: закрытый, хранящийся только у владельца для цели расшифрования данных и их цифрового подписания, и открытый, который не нуждается в защите, может быть широко распространен и используется для зашифрования и сличения цифровых подписей (все эти уникальные возможности достигаются засчет особого математического аппарата). Для начала PGP сжимает пользовательские данные, тем самым уменьшая избыточность и повышая стойкость к криптоанализу. При этом маленькие, либо уже сжатые файлы не сжимаются. После этого создается сеансовый ключ - одноразовый симметричный ключ, который применяется только для одной операции. Он генерируется псевдослучайным образом в зависимости от движений мыши, системных таймеров и задержек нажатий клавиш. Используется генератор псевдослучайных чисел, создающий непредсказуемые сеансовые ключи. В результате создается файл, который перемешивается до и после каждого использования, и дополняется новыми данными, зависящими от времени суток и иных показателей. Файл содержит как случайные данные выхода генератора, так и случайные данные ключа, используемого для задания исходного внутреннего состояния генератора. С помощью сеансового ключа шифруется уже сжатое сообщение. После каждого использования файла данные перемешиваются, дабы исключить возможность восстановления по нему предыдущих или будущих сеансовых ключей. Сеансовый ключ так же шифруется открытым ключом получателя, затем прикрепляется к шифротексту и передается получателю. Расшифрование происходит, соответственно, в обратном порядке. Получатель, используя свой закрытый ключ, получает сеансовый ключ и восстанавливает открытый текст. Так, шифрованием ассиметричным образом сеансового ключа, решается проблема его передачи, и пользователь получает преимущества работы более скоростных симметричных алгоритмов. PGP располагает набором поддерживаемых симметричных алгоритмов (с тайным ключом): CAST, Triple - DES, IDEA, Twofish, а также AES. Открытые же ключи PGP несут в себе информацию о том, какие блочные симметричные шифры поддерживаются программой получателя, чтобы программа отправителя знала, какие шифры может применять для шифрования сообщений. Для быстрой проверки файлов на несанкционированные изменения, а так же как средство защиты от ошибок PGP использует так называемые «дайджесты» или «отпечатки» сообщений. Это отображение файла в более короткий образ, сродни контрольной сумме, используемой в сетевых протоколах транспортного уровня. Дайджест вычисляется при помощи криптографической хэш-функции. При малейшем изменении исходной информации изменится и отпечаток сообщения. При этом по отпечатку невозможно восстановить исходное сообщение. В вычислительном плане практически невозможно создать подставное сообщение, имеющее тот же отпечаток. Для этого потребовалось бы перебрать 2^160 вариантов. 1.2. Формат файлов PGP Формат файлов - это набор правил, которые позволяют определить, как построить файл, разрешено ли то или иное действие, и если разрешено, то что МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE оно означает. Все форматы используемых и описываются документом OpenPGP Message Format. создаваемых PGP файлов Данный документ описывает следующие форматы файлов: .pgp –зашифрованные сообщения PGP; .sig—автономные подписи; .asc—экспортируемые ключи; .pkr—открытые ключи; .skr—закрытые ключи. Последние два типа файлов создаются при установке PGP и по умолчанию называются pubring.pkr и secring.pkr (собственно связка открытых и закрытых ключей). 1.3. Основные программные приложения PGP За время своего существования PGP претерпел значительные изменения и преобразился, как согласно духу времени и новых угроз, так и вследствие того, что теперь значительную часть пользователей программы составляют не только обычные люди, но и крупные организации и бизнесы. Сегодня PGP – это несколько линеек приложений, различающихся назначением и перечнем решаемых задач, функциональностью, принципами работы и средой исполнения, но объединённых полной совместимостью благодаря стандарту OpenPGP , а также своей исключительной надёжностью в обеспечении защиты информации. МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE Таблица 1. Программные приложения PGP Бесплатная версия PGP для частного некоммерческого (прежде всего, домашнего) использования. Включает только компоненты PGPkeys и PGPmail, т.е. средства управления ключами и PGP Freeware шифрования / подписания / уничтожения данных; не имеет плагинов для интеграции в почтовые клиенты и ICQ и не содержит PGPdisk. Платная версия для частных пользователей и небольших офисов (до 5-7 человек), может PGP Personal применяться в коммерческих целях. Включает все базовые компоненты плюс плагины для Desktop персональных мэйл-клиентов и PGPdisk, однако не имеет поддержки корпоративных почтовых систем вроде MS Exchange Server. Имеет всё то же, что и PGP Personal, но предназначена в первую очередь для небольших PGP Workgroup организаций (10-50 человек), поскольку поддерживает корпоративные мэйл-системы MS Exchange Desktop Server, Novell GroupWise и Lotus Notes, а также включает компонент PGP Corporate Disk для централизованного управления криптоконтейнерами. Предназначен для домашних пользователей и небольших организаций. Включает все PGP Desktop Home коммерческие компоненты (за исключением Whole Disk), поддержку смарт-карт, PGP Virtual Disks, 9.x PGP Satellite Proxy (без поддержки почтовых протоколов MAPI, NAPI) Комплект поставки для корпоративных пользователей и организаций из 50-5 тыс. пользователей. PGP Corporate Включает дистрибутивы PGP Workgroup Desktop, PGP Corporate Disk, PGPadmin, PGP Keyserver. Desktop Развёртывается и управляется при помощи PGPadmin. Аналог бывшего PGP Corporate Desktop, предназначен для индивидуальных пользователей и PGP Desktop организаций, нуждающихся в полной защите своих ПК и переписки от несанкционированного Professional 9.x доступа. Компонент PGP Satellite Proxy поддерживает все почтовые протоколы, включая проприетарные MAPI и NAPI Комплекс защиты ноутбуков и ПК, поддерживающий полное шифрование всех жёстких дисков, съёмных носителей и операционной системы. Изначально предполагалось, что будет выпускаться PGP WholeDisk в виде отдельного продукта, однако к выходу финальной версии влился в состав PGP Desktop Professional 9. Версия PGP для карманных компьютеров под управлением MS Windows CE и Palm OS. Включает PGP Mobile компоненты PGPkeys, PGPmail и PGPdisk. Пакет для межсерверной передачи больших объёмов криптографированных данных. Благодаря PGP Command гибкому набору команд легко встраивается в любой существующий скрипт. Совместима с Line наиболее распространёнными серверными операционными системами. МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE PGP Universal Самоуправляемый серверный комплекс информационной безопасности для средних и крупных организаций (от 25 пользователей до 50 тыс., а поддержка кластеризации снимает любые верхние границы). Концепция кардинально отличается от платформенных решений. Система функционирует автономно, самостоятельно формируя политику безопасности на основе заданных базовых критериев. Криптографические операции могут производиться на центральном сервере либо на машинах пользователей, в зависимости от архитектуры сети и заявленных требований. Защищает всю переписку организации и внешних пользователей, независимо от протоколов передачи сообщений. МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE 1.4. Преимущества использования программы PGP Долгая история PGP привлекла к криптосистеме внимание огромного числа пользователей, исследователей, специалистов. Тому способствовал и ряд дополнительных обстоятельств. Во-первых, программа всегда была условнобесплатна. Во-вторых, разработчики – выдающиеся программные инженеры и эксперты в области информационной безопасности – всегда публиковали исходные тексты программы для их свободного изучения, что является необходимым условием для поддержания высокой надёжности и выдающейся репутации системы. Кроме того, программа имеет еще ряд преимуществ перед большинством программ и стандартов криптографической защиты информации: Основана на шифровании открытым ключом, что исключает необходимость передавать адресату секретный пароль (как при обычном шифровании). Лежащий в её основе стандарт OpenPGP был принят организацией IETF в качестве интероперативного стандарта Интернета, и сегодня используется во множестве различных программ, обеспечивая их полную совместимость. Поддерживает асимметричные ключи длиной до 4096 бит, перекрывающие стойкость 128-битовых симметричных шифров. Пользователь самостоятельно генерирует свои пары открытых / закрытых ключей и выбирает используемые алгоритмы шифрования. Пользователь может иметь множество ключей для различных задач и целей и самостоятельно заменять их в любое время по желанию или по необходимости. Использует только опубликованные, проверенные временем и проанализированные лучшими криптографами мира алгоритмы. Криптографическое ядро PGP SDK версии 3.0.3, реализованное в PGP 8.1 и выше и в ряде других продуктов, сертифицировано Национальным институтом стандартов и технологий США (NIST) на соответствие нормам безопасности FIPS PUB 140-2. Де-факто является стандартом шифрования электронной почты с огромной пользовательской базой. Обеспечивает сквозное шифрование и безопасную связь с пользователями любой операционной системы, email-клиента и почтовой службы. Криптографические преобразования информации производятся только на компьютерах пользователей с помощью ключей, хранящихся только на компьютерах пользователей. Поддерживает электронные цифровые подписи (ЭЦП), позволяющие заверить авторство и целостность передаваемой информации. Не имеет встроенных "закладок", "люков", "потайных ходов", механизмов депонирования и восстановления ключей, что не допускает возможности получения несанкционированного доступа к зашифрованной информации. Система имеет некоторые дополнительные функции для уничтожения файлов и очистки свободного пространства дисков от остатков удалённой информации, а также PGPdisk для хранения больших объёмов данных на зашифрованных логических дисках. 2. Технология выполнения работы 2.1. Создание ключей в системе PGP Установленная на компьютере программа PGP, автоматически стартует при запуске операционной системы. 1. Щелкните на значке PGPtray на панели индикации правой кнопкой мыши и выберите в контекстном меню пункт PGPkeys. Откроется окно служебного средства PGPkeys. 2. Щелкните на кнопке Generate new keypair (Сгенерировать новую пару ключей). Произойдет запуск Мастера генерации ключей (Key Generation Wizard). Щелкните на кнопке Далее. 3. Введите свое полное имя в поле Full name (Полное имя) и свой адрес электронной почты в поле Email address (Адрес электронной почты). (Открытые ключи, не содержащие МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE полной и точной информации, программой не воспринимаются). Щелкните на кнопке Далее. 4. Установите переключатель Diffie-Hellman/DSS. Это более современный алгоритм генерации пары ключей. Щелкните на кнопке Далее. 5. Установите переключатель 2048 bits (2048 бит), определяющий длину ключа. Щелкните на кнопке Далее. (По надежности ключ такой длины соответствует примерно 128битному ключу для симметричного шифрования). 6. В данном случае установите переключатель Key pair never expires (Пара ключей действует бессрочно). На практике рекомендуется задавать ограниченный срок действия ключей. Щелкните на кнопке Далее. 7. Дважды введите произвольную парольную фразу (Passphrase) в соответствующие поля. Так как в данном случае реальная секретность не существенна, можно сбросить флажок Hide Typing (Скрыть ввод), чтобы вводимый текст отображался на экране. Рекомендуется, чтобы парольная фраза легко запоминалась, но при этом содержала пробелы, буквы разного регистра, цифры, специальные символы. Качество (трудность подбора) ключевой фразы отображается с помощью индикатора Passphrase Quality (Качество ключевой фразы). После того как парольная фраза введена дважды, щелкните на кнопке Далее. 8. Отследите процесс генерации пары ключей, что может занять несколько минут. После появления сообщения Complete (Готово) щелкните на кнопке Далее. Затем может потребоваться еще несколько щелчков на кнопках Далее и, в конце, Готово, чтобы завершить создание ключей (публикацию ключа на сервере выполнять не следует). 9. Посмотрите, как отображается только что созданный ключ в списке Keys (Ключи). Убедитесь что этот ключ автоматически подписывается его создателем, который, как предполагается, абсолютно доверяет самому себе. 10. Щелкните на ключе правой кнопкой мыши и выберите в контекстном меню пункт Key Properties (Свойства ключа). Ознакомьтесь со свойствами ключа, в том числе с «отпечатком» (fingerprint), предназначенным для подтверждения правильности ключа, например, по телефону. Убедитесь, что установлен флажок Implicit Trust (Полное доверие), указывающий, что вы доверяете владельцу данного ключа, т.е. самому себе. 2.2. Передача открытого ключа корреспондентам 1. Щелкните на значке PGPtray на панели индикации правой кнопкой мыши и выберите в контекстном меню пункт PGPkeys. Откроется окно служебного средства PGPkeys. 2. Выберите в списке ключ, который планируется передать корреспонденту, и дайте команду Edit Сору (Правка / Копировать). 3. Запустите используемую по умолчанию программу электронной почты. Далее мы будем предполагать, что это программа Outlook Express (Пуск / Программы / Outlook Express). 4. Щелкните на кнопке Создать сообщение. В окне создания нового сообщения введите условный адрес корреспондента, тему сообщения (например, Мой открытый ключ) и произвольный текст сообщения, объясняющий его назначение. 5. Поместите курсор в конец сообщения и щелкните на кнопке Вставить на панели инструментов. Убедитесь, что в текст сообщения был вставлен символьный блок, описывающий открытый ключ. Сохраните сообщение (отправлять его не обязательно). 6. Проверьте, можно ли перенести ключ в сообщение электронной почты методом перетаскивания. 7. Теперь предположим, что созданное сообщение на самом деле было получено по электронной почте. Порядок действий в этом случае очень похож на тот, который использовался для отправки ключа. 8. Выделите текст ключа, включая специальные строки, описывающие его начало и конец. 9. Скопируйте ключ в буфер обмена с помощью комбинации клавиш CTRL+C. 10. Переключитесь на программу PGPkeys. 11. Нажмите комбинацию клавиш CTRL+V. В открывшемся диалоговом окне щелкните на кнопке Select All (Выбрать все), а затем на кнопке Import (Импортировать). 12. В самом окне PGPkeys Вы после этого никаких изменений не обнаружите, так как соответствующий ключ уже хранится на данном компьютере. 13. На самом деле, пересылать ключи по электронной почте не вполне корректно, так как в таком случае корреспондент имеет естественное право на сомнение: действительно ли ключ поступил от вас. Ключ можно сохранить в файле и передать корреспонденту лично, при встрече. 14. Чтобы экспортировать ключ в файл, выберите его и дайте команду Keys / Export (Ключи / Экспортировать). МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE 15. Выберите каталог и укажите имя файла. Щелкните на кнопке Сохранить, чтобы записать ключ в текстовый файл. 16. Самостоятельно выполните импорт ключа, сохраненного в файле, как минимум двумя разными способами. 2.3. Передача подписанных и защищенных сообщений 1. Запустите программу Outlook Express (Пуск / Программы / Outlook Express). 2. Щелкните на кнопке Создать сообщение. В окне создания нового сообщения введите адрес электронной почты, использованный при создании пары ключей, в качестве адреса отправителя, а также произвольные тему и текст сообщения. Обратите внимание, что на панели инструментов в окне создания сообщения имеются кнопки Encrypt (PGP) (Зашифровать) и Sign (PGP) (Подписать), действующие в качестве переключателя. Щелкните на кнопке Sign (PGP) (Подписать), чтобы она была включена. Убедитесь, что шифрование отключено. 3. Щелкните на кнопке Отправить. Подключения к Интернету не требуется, так как мы будем анализировать получившееся сообщение в папке Исходящие. В открывшемся диалоговом окне введите парольную фразу, заданную при создании ключей, и щелкните на кнопке ОК. 4. Откройте папку Исходящие и выберите только что созданное сообщение. Просмотрите его текст. 5. Обратите внимание на добавленные служебные строки и электронную подпись в виде последовательности символов, не имеющей видимой закономерности. 6. Выделите весь текст сообщения и нажмите комбинацию клавиш CTRL+C. Щелкните правой кнопкой мыши на значке PGPtray на панели индикации и выберите в контекстном меню команду Clipboard / Decrypt & Verify (Буфер обмена / Расшифровать и проверить). В открывшемся диалоговом окне обратите внимание на сообщение *** PGP Signature Status: good, указывающее на целостность сообщения. 7. Откройте это сообщение, внесите произвольные (большие или небольшие) изменения в текст сообщения или в саму подпись, после чего выполните повторную проверку, как описано в п. 6. Убедитесь, что программа PGP обнаружила нарушение целостности сообщения. 8. Создайте новое сообщение, как описано в п. 2. На этот раз включите обе кнопки: Encrypt (PGP) (Зашифровать) и Sign (PGP) (Подписать). Выполните отправку сообщения, как описано в п. 4. 9. Посмотрите как выглядит отправленное сообщение в папке Исходящие. Убедитесь, что посторонний не сможет прочесть его. 10. Скопируйте текст зашифрованного сообщения в буфер обмена и выполните его расшифровку как показано в п. 6. По запросу введите парольную фразу. Убедитесь, что как отображается текст исходного сообщения, так и выдается информация о его целостности. 11. Щелкните на кнопке Copy to Clipboard (Копировать в буфер обмена), чтобы поместить расшифрованный текст в буфер обмена. 12. Вставьте расшифрованный текст в любом текстовом редакторе и сохраните его как файл. 2.4. Шифрование данных на жестком диске 1. С помощью текстового процессора WordPad создайте произвольный документ и сохраните его под именем pgp-Proba.doc. Можно также скопировать под этим именем какой-либо из уже существующих файлов документов. 2. Откройте этот документ в программе WordPad и дайте команду Правка / Выделить все. Нажмите комбинацию клавиш CTRL+C. 3. Щелкните правой кнопкой мыши на значке PGPtray на панели индикации и выберите в контекстном меню команду Clipboard / Encrypt & Sign (Буфер обмена / Зашифровать и подписать). 4. В открывшемся диалоговом окне перетащите созданный вами ключ в список Recipients (Получатели) и щелкните на кнопке ОК. 5. Введите парольную фразу, используемую для электронной подписи, и щелкните на кнопке ОК. МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE 6. Вернитесь в программу WordPad, нажмите клавишу DELETE и далее комбинацию CTRL+V. Сохраните документ под именем pgp-Proba-clp.doc. Закройте программу WordPad. 7. Любым способом запустите программу Проводник и откройте папку, в которой лежит файл pgp-Proba.doc. 8. Щелкните правой кнопкой мыши на значке файла и выберите в контекстном меню команду PGP / Encrypt & Sign (PGP / Зашифровать и подписать). Далее действуйте в соответствии с п.п. 4-5. 9. Убедитесь, что в папке появился файл pgp-Proba.doc.pgp. 10. Теперь расшифруем созданные файлы. Запустите программу WordPad и откройте файл pgp-Proba-clp.doc. 11. Щелкните правой кнопкой мыши на значке PGPtray на панели индикации и выберите в контекстном меню команду Current Window / Decrypt & Verify (Текущее окно / Расшифровать и проверить). 12. Введите парольную фразу и щелкните на кнопке ОК. 13. В открывшемся диалоговом окне Text Viewer (Просмотр текста) щелкните на кнопке Copy to Clipboard (Скопировать в буфер обмена). 14. Вставьте текст в окно программы WordPad и сохраните полученный файл. 15. Откройте программу Проводник и разыщите файл pgp-Proba.doc.pgp. Дважды щелкните на его значке. 16. Введите парольную фразу и щелкните на кнопке ОК. 17. Так как оригинал файла не был уничтожен, программа предложит указать, под каким именем следует сохранить файл. Введите это имя по своему усмотрению. 3. Задание на самостоятельную работу 1. Изучить основные сведения о программе PGP . Ответить на контрольные вопросы. 2. Создать пару ключей, используемых для несимметричного шифрования в системе PGP. 3. Подготовить открытые ключи системы PGP для передачи своим корреспондентам, а также ознакомиться с порядком получения ключей для расшифровки поступающих сообщений. 4. Научиться отправлять по электронной почте сообщения, снабженные электронной цифровой подписью, а также зашифрованные сообщения. Для этого создать сообщение, подписать и зашифровать его с помощью PGP и выполнить отправку сообщения с помощью программы Outlook Express. 5. Познакомиться с возможностями системы PGP для защищенного хранения файлов на жестком диске. С помощью PGP создать файл и отправить его на защищенное хранение. Изучить различные механизмы для шифрования и расшифровки файлов. 6. Подготовить отчет «Основные возможности программы PGP» Контрольные вопросы 1. 2. 3. 4. 5. 6. 7. 8. 9. Для чего используется и каковы особенности ЭЦП – электронной цифровой подписи? Как предпочтительнее передавать открытые ключи PGP своим корреспондентам? Что влияет на криптостойкость ЭЦП? Какой ключ используется при шифровании сообщения? Какой ключ используется при создании цифровой подписи? Какие системы создания ЭЦП и шифрования используются в России? Как отправлять файлы на защищенное хранение при помощи программы PGP? С помощью каких программ можно обеспечить защищенное хранение файлов? Существует ли вероятность потери (удаления) защищенных файлов?