Белорусский национальный технический университет Республиканский институт инновационных технологий БЕЗОПАСНОСТЬ ИНФОРМАЦИИ И ОБЕСПЕЧЕНИЕ НАДЕЖНОСТИ КОМПЬЮТЕРНЫХ СИСТЕМ Учебно-методическое пособие В.А. Ганжа В.В. Сидорик О.И. Чичко Министерство образования Республики Беларусь БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Республиканский институт инновационных технологий В.А. Ганжа В.В. Сидорик О.И. Чичко БЕЗОПАСНОСТЬ ИНФОРМАЦИИ И ОБЕСПЕЧЕНИЕ НАДЁЖНОСТИ КОМПЬЮТЕРНЫХ СИСТЕМ Учебно-методическое пособие для слушателей системы повышения квалификации и переподготовки Рекомендовано учебно-методическим объединением высших учебных, заведений Республики Беларусь по образованию в области приборостроения Минск БНТУ 2010 удКЗ££т04ё:004 (075) v ББ К- ё 5.2 4 Оя 7— Г 19 Р е ц е н з е н т ы : С.Ф. Липницкий, главный научный сотрудник ОИПИ НАН Беларуси, д-р техн. наук; В. М. Лутковский, старший преподаватель кафедры системного анализа БГУ Ганжа, В.А. Г 19 Безопасность информации и обеспечение надёжности компьютер­ ных систем: учебно-методическое пособие для слушателей системы по­ вышения квалификации и переподготовки / В.А. Ганжа, В.В. Сидо- рик, О.И. Чичко. - Минск: БНТУ, 2010. - 67 с. ISBN 978-985-525-399-1. В учебно-методическом пособии рассматриваются проблемы ин­ формационной безопасности при переподготовке по специальности «Программное обеспечение информационных систем». Проблемы ин­ формационной безопасности решаются на примерах защиты накоп­ ленных информационных ресурсов, обусловленных критической зави­ симостью нашей деятельности от информационных технологий. Разби­ раются некоторые аспекты использования пакета PGP для практиче­ ской работы с обучаемыми. Данное издание предназначено для слушателей системы повыше­ ния квалификации и переподготовки, преподавателей. УДК 378.046:004 (075) ББК 65.240я7 ISBN 978-985-525-399-1 © Ганжа В.А., Сидорик В.В., Чичко О.И., 2010 © БНТУ, 2010 3Содержание Введение............................................................................................................. 5 1. Теоретическая часть .............................. .......................................................... 8 1.1. Законодательный уровень.......................................................................... 8 1.2. Нормативные документы и стандарты......................................................8 1.2.1. Оценочный стандарт Министерства обороны США «Критерии оценки доверенных компьютерных систем».................................................8 1.2.2. Информационная безопасность распределённых систем. Рекомендации Международного союза телекоммуникаций (ITU) Х.800.....9 1.2.3. Стандарт ISO/IEC 15408 «Критерии оценки безопасности информационных технологий».................................................................... 10 1.3. Административный уровень......................................................................12 1.3.1. Политика безопасности.......................................................................12 1.3.2. Программа безопасности....................................................................15 1.3.3. Синхронизация программы безопасности с жизненным циклом систем...............................................................................................15 1.4. Процедурный уровень. Основные классы мер процедурного уровня....17 1.4.1. Управление персоналом......................................................................17 1.4.2. Физическая защита.............................................................................19 1.4.3. Поддержание работоспособности......................................................20 1.4.4. Реагирование на нарушения режима безопасности.........................21 1.4.5. Планирование восстановительных работ........................................ 22 1.5. Программно-технический уровень........................................................... 23 1.5.1. Основные понятия программно-технического уровня информационной безопасности.................................................................. 23 1.5.2. Особенности современных информационных систем, существенные с точки зрения безопасности...............................................24 1.5.3. Архитектурная безопасность............................................................. 24 1.6. Основные понятия криптографии........................................................... 26 1.6.1. Основные понятия............................................................................. 26 1.6.2. Криптоанализ..................................................................................... 27 1.6.3. Алгоритмы традиционного симметричного шифрования................ 28 1.6.4. Шифрование с открытым ключом. Основные требования к алгоритмам асимметричного шифрования................................................. 29 1.6.5. Основные способы использования алгоритмов с открытым ключом......................................................................................................... 32 1.6.6. Аутентификация сообщений.............................................................34 1.6.7. Цифровые подписи и протоколы аутентификации..........................36 2. Практическая часть......................................................................................41 2.1. Основные понятия и применение стеганографии...................................41 2.1.1. Внедрение данных в файл-носитель программой wbStego4.............41 2.1.2. Извлечение данных из файла носителя программой wbStego4......47 2.2. Вычисление хэш-сЬушшии по алгооитму MD5.........................................50 А «/ ■* X •/ 2.2.1. Использование хэш-функции для контроля целостности данных ...50 2.2.2. Создание файла с хэш-функцией, на основе данных произвольной длины.................................................................................... 50 2.2.3. Проверка целостности данных программой MD5summer............... 52 2.2.4. Сбой проверки целостности данных.................................................53 2.3. Практическая работа с пакетом PGP ....................................................... 54 2.3.1. Шифрование данных симметричным ключом. Алгоритм IDEA...... 55 42.3.2. Создание пары ключей для осуществления метода асимметричного шифрования.....................................................................56 2.3.3. Создание зашифрованного сообщения с помощью открытого ключа...........................................................................................................59 2.3.4. Декодирование принятого зашифрованного сообщения с помощью private-ключа...............................................................................60 2.3.5. Кодирование и декодирование сообщения с помощью произвольного ключа...................................................................................61 2.3.6. Аутентификация сообщения. Создание простой цифровой подписи в пакете PGP..................................................................................62 2.3.7. Создание цифровой подписи и сообщения единым файлом........... 63 2.3.8. Создание цифровой подписи отдельным файлом............................ 63 2.3.9. Верификация цифровой подписи.................................................... 64 2.3.10. Сбой верификации цифровой подписи......................................... 64 Список использованных источников............................................................ 66 Введение 5 При подготовке инженеров-программистов учебным планом предусмотрено изучение курса «Безопасность информации и обеспечение надёжности компью­ терных систем». Для успешного изучения этого курса следует обратить внима­ ние на несколько существенных аспектов знаний обучаемых: социологический, гуманитарный, юридический и правовой. Для понимания и овладения этим предметом недостаточно только технических знаний, поскольку в проблемах безопасности информации и в различных её нарушениях в малой степени по­ винна аппаратура, но в значительно большей степени люди, персонал, их взаи­ моотношения, их отношение к аппаратуре, оборудованию, к материальным и информационным ценностям. Если в обработке информации участвует только аппаратура, как правило, никаких коллизий с ней не происходит, только в случае сбоя в аппаратуре кое- какие биты могут потеряться или перепутаться. Для этого случая существуют различные методы контроля, например, дополнительные разряды для контроля чётности. Другой причиной для беспокойства могут являться шумы, попавшие в информационный поток. Однако с шумами также можно бороться, следуя каноническим предписаниям классика теории информации К. Шеннона: ■ увеличить мощность передатчика; * уменьшить скорость передачи информации; изменить метод модуляции; * применить помехоустойчивое кодирование информации. Перечисленные проблемы лежат в плоскости синтаксической и семантиче­ ской адекватности информации. В этой работе будет рассматриваться несколько другой круг проблем: пре­ образование и обработка информации в информационных системах. В классическом определении «информационная система» рассматривается как комплекс двух компонентов: аппаратуры, осуществляющей обработку ин­ формации, и персонала. Вот почему в курсе «Безопасность информации и обес­ печение надёжности компьютерных систем» наряду с техническими аспектами рассматриваются нормативно-правовые аспекты, законодательные, междуна­ родные стандарты, поскольку аппаратуру всегда обслуживает персонал, по­ стольку всегда будут присутствовать риски «сбоя» персонала и «человеческий» фактор. И проблемы из синтаксической адекватности информации переходят в плоскость прагматической адекватности, то есть в случае «сбоя» мы оцениваем ущерб не в байтах и битах, а пытаемся оценить его в денежном, материальном эквиваленте. Под информационной безопасностью обычно понимают защищённость ин­ формации от случайных или преднамеренных воздействий естественного или искусственного характера, которые могут нанести ущерб субъектам информа­ ционных отношений: владельцам информации, пользователям информации и оборудованию. Защита информации - это комплекс мероприятий, направлен­ ных на обеспечение информационной безопасности. Поэтому трактовка про­ блем, связанных с информационной безопасностью, для разных категорий субъектов может существенно различаться. Для иллюстрации достаточно сопос­ тавить режимные государственные организации и учебные институты. В пер­ вом случае «пусть лучше все сломается, чем враг узнает хоть один секретный бит», во втором - «да нет у нас никаких секретов, лишь бы учебный процесс не останавливался». Важность курса «Безопасность информации и обеспечение надёжности компьютерных систем» объясняется двумя основными причинами: ценностью 6накопленных информационных ресурсов и критической зависимостью от ин­ формационных технологий. Разрушение важной информации, кража конфи­ денциальных данных, перерыв в работе вследствие отказа - всё это выливается в крупные материальные потери, наносит ущерб репутации организации. Про­ блемы с системами управления или медицинскими системами угрожают здоро­ вью и жизни людей. Современные информационные системы сложны и, зна­ чит, опасны уже сами по себе, даже без учёта активности злоумышленников. Постоянно обнаруживаются новые уязвимые места в программном обеспече­ нии. Приходится принимать во внимание чрезвычайно широкий спектр ап­ паратного и программного обеспечения, многочисленные связи между компо­ нентами. Информационная безопасность не сводится исключительно к защите от не­ санкционированного доступа к информации, это принципиально более широ­ кое понятие. Субъект информационных отношений может пострадать, нести убытки, получить моральный ущерб не только от несанкционированного досту­ па, но и от поломки системы, вызвавшей перерыв в работе. Более того, для многих организаций защита от несанкционированного доступа к информации стоит по важности отнюдь не на первом месте, например, в вузах, в электрон­ ных средствах массовой информации. Правильный подход к проблемам информационной безопасности начинает­ ся с выявления субъектов информационных отношений и интересов этих субъ­ ектов, связанных с использованием информационных систем (ИС). Угрозы ин­ формационной безопасности - это оборотная сторона использования информа­ ционных технологий. Цель мероприятий в области информационной безопасности - защитить интересы субъектов информационных отношений. Принято выделять основные составляющие информационной безопасности (ИБ) - это обеспечение доступности, целостности и конфиденциальности информационных ресурсов: * доступность - возможность за приемлемое время получить требуемую информационную услуіу; целостность - актуальность и непротиворечивость информации, её за­ щищённость от разрушения и несанкционированного изменения; ■ конфиденциальность - защита от несанкционированного доступа к ин­ формации. Превалирующая роль доступности проявляется в системах управления про­ изводством, транспортом. Весьма неприятные последствия - и материальные, и моральные - может иметь длительная недоступность информационных услуг, которыми пользуется большое количество людей: продажа железнодорожных и авиабилетов, банковские услуги; web-сайты организаций, резервирование мест в гостиницах. Целостность оказывается важнейшим аспектом ИБ в тех случаях, когда информация служит «руководством к действию». Рецептура лекарств, предпи­ санные медицинские процедуры, набор и характеристики комплектующих из­ делий, ход технологического процесса - всё это примеры информации, наруше­ ние целостности которой может оказаться в буквальном смысле смертельным. Средства контроля целостности применяются при анализе потока финансовых сообщений с целью выявления кражи, переупорядочения или дублирования от­ дельных сообщений. Неприятно и искажение официальной информации, если это текст закона или страница Web-сервера государственной структуры. Конфиденциальность - самый понятный аспект информационной безопас­ ности. К сожалению, практическая реализация мер по обеспечению конфиден­ циальности современных информационных систем наталкивается на серьёзные 7трудности. Во-первых, сведения о технических каналах утечки информации являются закрытыми, так что большинство пользователей лишено возможности составить представление о потенциальных рисках. Во-вторых, на пути пользо­ вательской криптографии как основного средства обеспечения конфиденци­ альности стоят многочисленные законодательные препоны и технические проблемы. Для всех субъектов информационных отношений, реально использующих ИС, на первом месте стоит доступность. Практически не уступает ей по важно­ сти целостность - какой смысл в информационной услуге, если она содержит искажённые сведения? Наконец, конфиденциальные моменты есть также у многих организаций (даже в упоминавшихся выше учебных институтах стара­ ются не разглашать сведения о зарплате сотрудников) и отдельных пользовате­ лей (например, пароли). Полную защиту информации осуществить невозможно, всегда останутся неучтённые бреши, непредвиденные факторы и обстоятельства. Возможно лишь стремиться к такому идеалу. К тому же полная защита информационной системы масштаба предприятия требует огромных капиталовложений, поэтому идут на компромиссы в зависимости от решаемых задач. Если стоимость ин­ формационных ценностей невелика, то создание дорогой системы защиты - об­ ременительная роскошь. Если же речь идёт о защите важных информационных объектов, то и вложение средств здесь оправдано. Система защиты информа­ ции эффективна, если задействованы и участвуют все компоненты информа­ ционной безопасности: « законодательный (стандарты, нормативно-правовые документы); * административный; « процедурный; • программно-технический. Проблема ИБ - не только техническая; без законодательной базы, без посто­ янного внимания руководства организации и выделения необходимых ресур­ сов, без мер управления персоналом и физической защиты решить её невоз­ можно. Комплексность также усложняет проблематику ИБ, требуется взаимо­ действие специалистов йз разных областей. 81. Теоретическая часть 1.1. Законодательный уровень Основным для обеспечения информационной безопасности является зако­ нодательный уровень. Большинство людей не совершают противоправных дей­ ствий не потому, что это технически невозможно, а потому, что это осуждается или наказывается обществом, потому, что так поступать не принято. На этом уровне выделяют две группы мер: ■ создание и поддержание в обществе негативного отношения к нарушени­ ям и нарушителям информационной безопасности; разрушение романти­ ческого ореола существующего вокруг слова «хакер» и осознание, что ха­ кер - это преступник, с которым Вы также можете столкнуться; повышение общей культуры и образованности общества в области инфор­ мационной безопасности, помогающее в разработке и распространении средств обеспечения информационной безопасности. На законодательном уровне должен работать механизм, согласующий про­ цесс разработки законов с реалиями и прогрессом информационных техноло­ гий. Законы не могут опережать жизнь, но разрыв между ними и практикой не должен быть значительным, иначе этот законодательный «вакуум» будет запол­ нен криминалом. В Республике Беларусь существуют законодательные акты регламентирую­ щие вопросы информации, информатизации и защиты информации. Это пре­ жде всего: * ЗАКОН РЕСПУБЛИКИ БЕЛАРУСЬ «Об информации, информатизации и защите информации» от 10 ноября 2008 г. № 455-3; * ПОСТАНОВЛЕНИЕ СОВЕТА МИНИСТРОВ РЕСПУБЛИКИ БЕЛАРУСЬ «О не­ которых вопросах защиты информации» от 26 мая 2009 г. № 675; * УКАЗ ПРЕЗИДЕНТА РЕСПУБЛИКИ БЕЛАРУСЬ «О мерах по совершенствова­ нию использования национального сегмента сети Интернет» от 1 февра­ ля 2010 г. № 60. Эти законодательные акты можно найти по ссылке: http://www.pravo.by/. 1.2. Нормативные документы и стандарты Особое место в этом вопросе принадлежит стандартам и нормативным тех­ ническим документам. Эти документы рассматривают проблемы информаци­ онной безопасности с очень близких позиций под несколько разным ракурсом. Это оценочные стандарты, классифицирующие информационные системы и средства защиты по требованиям безопасности, и технические спецификации, предписывающие различные пути реализации средств защиты. 1.2.1. Оденочный стандарт Министерства обороны США «Критерии оценки доверенных компьютерных систем» Исторически первым оценочным стандартом, получившим широкое рас­ пространение во многих странах, стал стандарт Министерства обороны США «Критерии оценки доверенных компьютерных систем», называемый по цвету обложки «Оранжевой книгой», впервые опубликованный в августе 1983 года. Этот документ описывает не безопасные, а доверенные системы, то есть систе­ мы, которым можно оказать определенную степень доверия. «Оранжевая книга» определяет понятие безопасной системы, которая «управляет с помощью соответствующих средств доступом к информации, так что только должным образом авторизованные лица или процессы, действующие от их имени, получают право читать, записывать, создавать и удалять инфор­ 9мацию». Поскольку безопасных систем не существует, оценивается лишь сте­ пень доверия, которую можно оказать той или иной системе. Доверенная система. В «Оранжевой книге» доверенная система определя­ ется как «система, использующая достаточные аппаратные и программные средства, чтобы обеспечить одновременную обработку информации разной степени секретности группой пользователей без нарушения прав доступа». Степень доверия оценивается по активному аспекту защиты - политике безопасности и пассивному аспекту защиты - уровню гарантированности. Политика безопасности - правила и нормы поведения, определяющие, как ор­ ганизация обрабатывает и защищает информацию. Чем выше степень доверия системе, тем строже и многообразнее политика безопасности. Политика безо­ пасности - это активный аспект защиты, включающий в себя анализ возмож­ ных угроз и выбор мер противодействия. Уровень гарантированности - мера доверия, которая может быть оказана архитектуре и реализации информационной системы. Доверие безопасности основано на анализе результатов тестирования и проверки общего замысла и реализации системы. Уровень гарантированности показывает, насколько кор­ ректны механизмы, отвечающие за реализацию политики безопасности. Это - пассивный аспект защиты. Механизмы безопасности. Согласно «Оранжевой книге», политика безо­ пасности должна обязательно включать в себя следующие элементы: произвольное управление доступом; безопасность повторного использования объектов; * метки безопасности; * принудительное управление доступом. Классы безопасности. «Критерии» Министерства обороны США допускают ранжирование информационных систем по степени доверия безопасности. Оп­ ределяется четыре уровня доверия - D, С, В и А. Уровень D предназначен для систем, признанных неудовлетворительными. По мере перехода от уровня С к А к системам предъявляются все более жёсткие требования. Уровни С и В под­ разделяются на классы (Cl, С2, B l, В2, ВЗ) с постепенным возрастанием степе­ ни доверия. Всего имеется шесть классов безопасности - C l, С2, B l, В2, ВЗ, А1. Чтобы в результате процедуры сертификации систему можно было отнести к некоторо­ му классу, её политика безопасности и уровень гарантированности должны удовлетворять заданным требованиям. Для своего времени публикация «Оранжевой книги» стала эпохальным со­ бытием в области безопасности информации. Появился общепризнанный поня­ тийный базис, без которого обсуждение проблем информационной безопасно­ сти было бы затруднительным. Конечно, на момент публикации (1983 год) ком­ пьютерные сети были ещё в зачаточном состоянии и, поэтому, в «Оранжевой книге» вопросы безопасности распределённых систем не рассматриваются. 1.2.2. Информационная безопасность распределённых систем. Рекомендации Международного союза телекоммуникаций (XTU) Х.800 Документ Х.800 является технической спецификацией, предписывающей раз­ личные способы реализации информационной безопасности и защиты компью­ терных сетей. Документ описывает следующие сетевые функции безопасности, сервисы безопасности: аутентификация - проверка подлинности партнёров по общению; управление доступом - обеспечение защиты от несанкционированного ис­ пользования ресурсов, доступных по сети; 10 ■ конфиденциальность данных - обеспечение защиты от несанкциониро­ ванного получения информации; я целостность данных - защита данных от несанкционированного измене­ ния; » неотказуемость - подтверждение подлинности данных и невозможность отказа от совершённых действий. Документ Х.800 широко использует стандарт семиуровневой модели откры­ тых систем OSI, на которых реализуются перечисленные выше сервисы безо­ пасности. Поддержку всех сервисов можно реализовать на уровне приложений. 1.2.3. Стандарт ISO/IEC 15408 «Критерии оценки безопасности информационных технологий» «Критерии оценки безопасности информационных технологий» (изданы в 1999 году) является оценочным стандартом. Этот международный стандарт - итог многолетней работы специалистов нескольких стран, он охватывает доку­ менты национального и межнационального масштаба. По историческим причи­ нам данный стандарт часто называют «Общими критериями». «Общие критерии» (ОК) на самом деле являются метастандартом, опреде­ ляющим инструменты оценки безопасности ИС и порядок их использования. В отличие от «Оранжевой книги», ОК не содержат предопределенных «классов безопасности». Такие классы можно строить, исходя из требований безопасно­ сти, существующих для конкретной организации и/или конкретной информа­ ционной системы. Как и «Оранжевая книга», «Общие критерии» содержат два основных вида требований безопасности: функциональные, соответствующие активному аспекту защиты, предъ­ являемые к функциям безопасности и реализующим их механизмам; 5 требования доверия, соответствующие пассивному аспекту защиты, предъявляемые к технологии, процессу разработки и эксплуатации. Требования безопасности предъявляются, а их выполнение проверяется для определенного объекта оценки - аппаратно-программного продукта или ин­ формационной системы. Безопасность в «Общих критериях» рассматривается в привязке к жизненному циклу объекта оценки. Выделяются следующие этапы: определение назначения, условий применения, целей и требований безо­ пасности; а проектирование и разработка; • испытания, оценка и сертификация; * внедрение и эксплуатация. В ОК объект оценки рассматривается в контексте среды безопасности, которая характеризуется определенными условиями и угрозами (рис.1). Собственник определяет множество информационных ценностей, кото­ рые должны быть защищены от различного рода атак. Атаки осуществляются противниками или оппонентами, использующими различные уязвимости в за­ щищаемых ценностях. Основными нарушениями безопасности являются рас­ крытие информационных ценностей (потеря конфиденциальности), их неавтори­ зованная модификация (потеря целостности) или неавторизованная потеря дос­ тупа к этим ценностям (потеря доступности). Собственники информационных ценностей анализируют уязвимости за­ щищаемых ресурсов и возможные атаки, которые могут иметь место в кон­ кретном окружении. В результате такого анализа определяются риски для дан­ ного набора информационных ценностей. Этот анализ определяет выбор контрмер, который задается политикой безопасности и обеспечивается с помо­ щью механизмов и сервисов безопасности. Следует учитывать, что отдельные 11 уязвимости могут сохраниться и после применения механизмов и сервисов безопасности. Политика безопасности определяет согласованную совокупность механизмов и сервисов безопасности, адекватную защищаемым ценностям и окружению, в котором они используются. В «Общих критериях» используются следующие определения. Уязвимость - слабое место в системе, с использованием которого может быть осуществлена атака. Собственники информации Должны защищать информационные ценности Определяют и используют политику безопасности Хотят минимизировать риск нарушения безопасности Контрмеры, состоящие из механизмов и безопасности на основе политики безопасности Уничтожают или уменьшают уязвимости Уязвимости Предотвращают или снижают риск нарушения безопасности Должны знать об уязвимостях Используют уязвимости для доступа к информационным ценностям Ведут к увеличению рисков Риски Увеличивают риски Повреждают информационные ценности Информационные ценности Повреждают информационные ценности Возможны злоупотребления и/или повреждения Рис. 1. Связи концепций безопасности по стандарту ISO/IEC 15408 Риск - вероятность того, что конкретная атака будет осуществлена с ис­ пользованием конкретной уязвимости. В конечном счете, каждая организация должна принять решение о допустимом для нее уровне риска. Это решение должно найти отражение в политике безопасности, принятой в организации. Политика безопасности - правила, директивы и практические навыки, ко­ торые определяют то, как информационные ценности обрабатываются, защи­ щаются и распространяются в организации и между информационными сис­ темами; набор критериев для предоставления сервисов безопасности. Атака - любое действие, нарушающее безопасность информационной сис­ темы. Более формально можно сказать, что атака - это действие или последова­ тельность связанных между собой действий, использующих уязвимости данной информационной системы и приводящих к нарушению политики безопасности. 12 Механизм безопасности - программное и/или аппаратное средство, которое определяет и /или предотвращает атаку. Сервис безопасности - сервис, который обеспечивает задаваемую полити­ кой безопасность систем и/или передаваемых данных, либо определяет осуще­ ствление атаки. Сервис использует один или более механизмов безопасности. 1.3. Административный уровень К административному уровню информационной безопасности относятся действия общего характера, предпринимаемые руководством организации. Главная цель мер административного уровня - сформировать программу работ в области информационной безопасности и обеспечить её выполнение, выделяя необходимые ресурсы и контролируя состояние дел. Основой программы явля­ ется политика безопасности, отражающая подход организации к защите своих информационных активов. Руководство каждой организации должно осознать необходимость поддержания режима безопасности и выделения на эти цели значительных ресурсов. Политика безопасности строится на основе анализа рисков, которые при­ знаются реальными для информационной системы организации. Когда риски проанализированы, и стратегия защиты определена, составляется программа обеспечения информационной безопасности. Под эту программу выделяются ресурсы, назначаются ответственные, определяется порядок контроля выпол­ нения программы. 1.3.1. Политика безопасности Политика безопасности - это совокупность документированных решений, принимаемых руководством организации и направленных на защиту инфор­ мации. С практической точки зрения политика безопасности рассматривается на трёх уровнях. К верхнему уровню относятся решения, затрагивающие ор­ ганизацию в целом. Они носят общий характер и исходят от руководства орга­ низации. Примерный список подобных решений может включать в себя сле­ дующие элементы: • решение сформировать комплексную программу обеспечения информаци­ онной безопасности, назначение ответственных за её осуществление; формулировка целей организации в области информационной безопасно­ сти, определение общих направлений в достижении этих целей; ' обеспечение базы для соблюдения законов и правил; * формулировка административных решений по вопросам реализации про­ граммы безопасности. Для политики верхнего уровня цели организации в области информацион­ ной безопасности формулируются в терминах целостности, доступности и кон­ фиденциальности. Если организация отвечает за поддержание критически важных баз данных, на первом плане может стоять уменьшение числа потерь, повреждений или искажений данных. Для организации, занимающейся прода­ жей компьютерной техники, вероятно, важна актуальность информации о пре­ доставляемых услугах и ценах и ее доступность максимальному числу потенци­ альных покупателей. Руководство режимного предприятия в первую очередь заботится о защите от несанкционированного доступа, то есть о конфиденци­ альности. На верхний уровень выносится управление защитными ресурсами и коор­ динация использования этих ресурсов, выделение специального персонала для защиты критически важных систем и взаимодействие с другими организация­ ми, обеспечивающими или контролирующими режим безопасности. Политика 13 верхнего уровня должна чётко очерчивать сферу своего влияния. Возможно, это будут все компьютерные системы организации (или даже больше, если по­ литика регламентирует некоторые аспекты использования сотрудниками своих домашних компьютеров). Возможна, однако, и такая ситуация, когда в сферу влияния включаются лишь наиболее важные системы. В политике определяются обязанности должностных лиц по выработке про­ граммы безопасности и претворению её в жизнь. Политика верхнего уровня имеет дело с тремя аспектами законопослушности и исполнительской дисцип­ лины. Во-первых, организация должна соблюдать существующие законы. Во- вторых, следует контролировать действия лиц, ответственных за выработку программы безопасности. Наконец, необходимо обеспечить определённую сте­ пень исполнительности персонала, а для этого нужно выработать систему по­ ощрений и наказаний. На верхний уровень следует выносить минимум вопросов. Это целесообраз­ но в случае экономии средств или когда иначе поступить просто невозможно. Британский стандарт BS 7799:1995 рекомендует включать в документ, ха­ рактеризующий политику безопасности организации, следующие разделы: 1 вводный, подтверждающий озабоченность высшего руководства пробле­ мами информационной безопасности; * организационный, содержащий описание подразделений, комиссий, групп, отвечающих за работы в области информационной безопасности; классификационный, описывающий имеющиеся в организации матери­ альные и информационные ресурсы и необходимый уровень их защиты; * штатный, характеризующий меры безопасности, применяемые к персона­ лу (описание должностей с точки зрения информационной безопасности, организация обучения и переподготовки персонала, порядок реагирования на нарушения режима безопасности); Е раздел, освещающий вопросы физической защиты; 3 управляющий раздел, описывающий подход к управлению компьютерами и компьютерными сетями; раздел, описывающий правила разграничения доступа к производствен­ ной информации; Е раздел, характеризующий порядок разработки и сопровождения систем; ■ раздел, описывающий меры, направленные на обеспечение непрерывной работы организации; « юридический раздел, подтверждающий соответствие политики безопасно­ сти действующему законодательству. К среднему уровню можно отнести вопросы, касающиеся отдельных ас­ пектов информационной безопасности, но важные для различных эксплуати­ руемых организацией систем. Примеры таких вопросов - отношение к передо­ вым (но, возможно, недостаточно проверенным) технологиям, доступ в Internet (как совместить свободу доступа к информации с защитой от внешних угроз?), использование домашних компьютеров, применение пользователями неофици­ ального программного обеспечения и т.д. Политика среднего уровня должна для каждого аспекта освещать следующие темы. Описание аспекта. Например, если рассмотреть применение пользовате­ лями неофициального программного обеспечения, последнее можно определить как ПО, которое не было одобрено и/или закуплено на уровне организации. Область применения. Следует определить, где, когда, как, по отношению к кому и чему применяется данная политика безопасности. Например, касается ли политика, связанная с использованием неофициального программного обес­ печения, организаций-субподрядчиков? Затрагивает ли она сотрудников, поль­ 14 зующихся портативными и домашними компьютерами и вынужденных пере­ носить информацию на компьютеры своих рабочих мест? Позиция организации по данному аспекту. Продолжая пример с неофи­ циальным программным обеспечением, можно представить себе позиции пол­ ного запрета, выработки процедуры приемки подобного ПО. Позиция может быть сформулирована и в гораздо более общем виде, как набор целей, которые преследует организация в данном аспекте. Вообще стиль документов, опреде­ ляющих политику безопасности, в разных организациях может сильно отли­ чаться. Роли н обизанности. В «политический» документ необходимо включить информацию о должностных лицах, ответственных за реализацию политики безопасности. Например, если для использования неофициального программно­ го обеспечения сотрудникам требуется разрешение руководства, должно быть известно, у кого и как его можно получить. Если неофициальное программное обеспечение использовать нельзя, следует знать, кто следит за выполнением данного правила. Законопослушность. Политика должна содержать общее описание запре­ щенных действий и наказаний за них. Точки контакта. Должно быть известно, куда следует обращаться за разъ­ яснениями, помощью и дополнительной информацией. Обычно «точкой контак­ та» служит определенное должностное лицо, а не конкретный человек, зани­ мающий в данный момент данный пост. Политика безопасности нижнего уровня относится к конкретным инфор­ мационным сервисам. Она включает в себя два аспекта - цели и правила их достижения, поэтому её порой трудно отделить от вопросов реализации. В от­ личие от двух верхних уровней, рассматриваемая политика должна быть опре­ делена более подробно. Есть много вещей, специфичных для отдельных видов услуг, которые нельзя единым образом регламентировать в рамках всей органи­ зации. В то же время эти вещи настолько важны для обеспечения режима безопасности, что относящиеся к ним решения должны приниматься на управ­ ленческом, а не техническом уровне. Приведем несколько примеров вопросов, на которые следует дать ответ в политике безопасности нижнего уровня: * Кто имеет право доступа к объектам, поддерживаемым сервисом? ® При каких условиях можно читать и модифицировать данные? Как организован удалённый доступ к сервису? При формулировке целей политики нижнего уровня можно исходить из со­ ображений целостности, доступности и конфиденциальности, но нельзя на этом останавливаться. Её цели должны быть более конкретными. Например, если речь идёт о системе расчёта заработной платы, можно поставить цель, чтобы только сотрудникам отдела кадров и бухгалтерии позволялось вводить и модифициро­ вать информацию. В более общем случае цели должны связывать между собой объекты сервиса и действия с ними. Из целей выводятся правила безопасности, описывающие, кто, что и при каких условиях может делать. Чем подробнее правила, чем более формально они изложены, тем проще поддержать их выполнение программно­ техническими средствами. С другой стороны, слишком жесткие правила могут мешать работе пользователей, вероятно, их придется часто пересматривать. Руководству предстоит найти разумный компромисс, когда за приемлемую це­ ну будет обеспечен приемлемый уровень безопасности, а сотрудники не ока­ жутся чрезмерно связаны. Обычно наиболее формально задаются права досту­ па к объектам ввиду особой важности данного вопроса. 15 1.3.2. Программа безопасности После того, как сформулирована политика безопасности, можно приступать к составлению программы её реализации и собственно к реализации. Чтобы понять и реализовать какую-либо программу, её нужно структуриро­ вать по уровням, обычно в соответствии со структурой организации. В про­ стейшем и самом распространенном случае достаточно двух уровней - верхне­ го, или центрального, который охватывает всю организацию, и нижнего, или служебного, который относится к отдельным услугам или группам однородных сервисов. Программу верхнего уровня возглавляет лицо, отвечающее за информаци­ онную безопасность организации. Главные цели программы следующие: 3 управление рисками (оценка рисков, выбор эффективных средств защи­ ты); координация деятельности в области информационной безопасности, по­ полнение и распределение ресурсов; * стратегическое планирование; * контроль деятельности в области информационной безопасности. В рамках программы верхнего уровня принимаются стратегические реше­ ния по обеспечению безопасности, оцениваются технологические новинки. Ин­ формационные технологии развиваются очень быстро, поэтому необходимо иметь чёткую политику контроля и внедрения новых средств. Контроль деятельности в области безопасности имеет двустороннюю на­ правленность. Во-первых, необходимо гарантировать, что действия организа­ ции не противоречат законам. При этом следует поддерживать контакты с внешними контролирующими организациями. Во-вторых, нужно постоянно от­ слеживать состояние безопасности внутри организации, реагировать на случаи нарушений и дорабатывать меры защиты с учётом изменения обстановки. Следует подчеркнуть, что программа верхнего уровня должна занимать строго определённое место в деятельности организации, она должна официаль­ но приниматься и поддерживаться руководством, а также иметь определённый штат и бюджет. Цель программы нижнего уровня - обеспечить надёжную и экономичную защиту конкретного сервиса или группы однородных сервисов. На этом уровне решается, какие следует использовать механизмы защиты; закупаются и уста­ навливаются технические средства; выполняется повседневное администриро­ вание; отслеживается состояние слабых мест. Обычно за программу нижнего уровня отвечают администраторы сервисов. 1.3.3. Синхронизация программы безопасности с жизненным циклом систем Если синхронизировать программу безопасности нижнего уровня с жиз­ ненным циклом защищаемого сервиса, можно добиться большего эффекта с меньшими затратами. Программисты знают, что добавить новую возможность к уже готовой системе на порядок сложнее, чем изначально спроектировать и реализовать ее. То же справедливо и для информационной безопасности. В жизненном цикле информационного сервиса можно выделить следующие этапы. Инициация. На данном этапе выявляется необходимость в приобретении нового сервиса, документируется его предполагаемое назначение. Закупка. На данном этапе составляются спецификации, прорабатываются варианты приобретения, выполняется собственно закупка. Установка. Сервис устанавливается, конфигурируется, тестируется и вво­ дится в эксплуатацию. 16 Эксплуатация. На данном этапе сервис не только работает и администри­ руется, но и подвергается модификациям. Выведение из эксплуатации. Происходит переход на новый сервис. Рассмотрим действия, выполняемые на каждом из этапов, более подробно. На этапе инициации оформляется понимание того, что необходимо приоб­ рести новый или значительно модернизировать существующий сервис; опреде­ ляется, какими характеристиками и какой функциональностью он должен об­ ладать; оцениваются финансовые и иные ограничения. С точки зрения безопасности важнейшим действием здесь является оценка критичности как самого сервиса, так и информации, которая с его помощью будет обрабатываться. Требуется сформулировать ответы на следующие вопросы: Какого рода информация предназначается для обслуживания новым сер­ висом? » Каковы возможные последствия нарушения конфиденциальности, целост­ ности и доступности этой информации? * Каковы угрозы, по отношению к которым сервис и информация будут наиболее уязвимы? * Есть ли какие-либо особенности нового сервиса (например, территориаль­ ная распределенность компонентов), требующие принятия специальных процедурных мер? я Каковы характеристики персонала, имеющие отношение к безопасности (квалификация, благонадежность)? s Каковы законодательные положения и внутренние правила, которым дол­ жен соответствовать новый сервис? Результаты оценки критичности являются отправной точкой в составлении спецификаций. Кроме того, они определяют ту меру внимания, которую служба безопасности организации должна уделять новому сервису на последующих этапах его жизненного цикла. Этап закупки - один из самых сложных. Нужно окончательно сформулиро­ вать требования к защитным средствам нового сервиса, к компании, которая может претендовать на роль поставщика, и к квалификации, которой должен обладать персонал, использующий или обслуживающий закупаемый продукт. Все эти сведения оформляются в виде спецификации, куда входят не только аппаратура и программы, но и документация, обслуживание, обучение персо­ нала. Разумеется, особое внимание должно уделяться вопросам совместимости нового сервиса с существующей конфигурацией. Нередко средства безопасно­ сти являются необязательными компонентами коммерческих продуктов, и нужно проследить, чтобы соответствующие пункты не выпали из специфи­ кации. Когда продукт закуплен, его необходимо установить. Установка является очень ответственным делом. Во-первых, новый продукт следует сконфигуриро­ вать. Как правило, коммерческие продукты поставляются с отключенными средствами безопасности; их необходимо включить и должным образом на­ строить. Для большой организации, где много пользователей и данных, началь­ ная настройка может стать весьма трудоёмким и ответственным делом. Во-вторых, новый сервис нуждается в процедурных регуляторах. Следует позаботиться о чистоте и охране помещения, о документах, регламентирующих использование сервиса, о подготовке планов на случай экстренных ситуаций, об организации обучения пользователей. После принятия перечисленных мер необходимо провести тестирование. Его полнота и комплексность могут слу­ жить гарантией безопасности эксплуатации в штатном режиме. Период эксплуатации - самый длительный и сложный. С психологической точки зрения наибольшую опасность в это время представляют незначительные 17 изменения в конфигурации сервиса, в поведении пользователей и администра­ торов. Если безопасность не поддерживать, она ослабевает. Пользователи не столь ревностно выполняют должностные инструкции, администраторы ме­ нее тщательно анализируют регистрационную информацию. То один, то дру­ гой пользователь получает дополнительные привилегии. Кажется, что в сущ­ ности ничего не изменилось, на самом же деле от былой безопасности не ос­ талось и следа. Для борьбы с эффектом медленных изменений приходится прибегать к пе­ риодическим проверкам безопасности сервиса. Разумеется, после значительных модификаций подобные проверки являются обязательными. При выведении из эксплуатации затрагиваются аппаратно-программные компоненты сервиса и обрабатываемые им данные. Аппаратура продается, утилизируется или выбрасывается. Только в специфических случаях необходи­ мо заботиться о физическом разрушении аппаратных компонентов, хранящих конфиденциальную информацию. Программы, вероятно, просто стираются, ес­ ли иное не предусмотрено лицензионным соглашением. При выведении данных из эксплуатации их обычно переносят на другую систему, архивируют, выбрасывают или уничтожают. Если архивирование производится с намерением впоследствии прочитать данные в другом месте, следует позаботиться об аппаратно-программной совместимости средств чте­ ния и записи. Информационные технологии развиваются очень быстро, и через несколько лет устройств, способных прочитать старый носитель, может просто не оказаться. Если данные архивируются в зашифрованном виде, необходи­ мо сохранить ключ и средства расшифровки. При архивировании и хране­ нии архивной информации нельзя забывать о поддержании конфиденциаль­ ности данных. 1.4. Процедурный уровень. Основные классы мер процедурного уровня На процедурном уровне рассматриваются меры безопасности, которые ори­ ентированы на людей, а не на технические средства. Именно люди формируют режим информационной безопасности, и они же оказываются главной угрозой, поэтому «человеческий фактор» заслуживает особого внимания. На процедурном уровне можно выделить следующие классы мер: * управление персоналом; * физическая защита; Е поддержание работоспособности; * реагирование на нарушения режима безопасности; * планирование восстановительных работ. 1.4.1. Управление персоналом Управление персоналом начинается с приёма нового сотрудника на работу и даже раньше - с составления должностной инструкции. Уже на данном этапе желательно подключить к работе специалиста по информационной безопасно­ сти для определения компьютерных привилегий, ассоциируемых с должностью. Существует два общих принципа, которые следует иметь в виду: 1 разделение обязанностей; * минимизация привилегий. Принцип разделения обязанностей предписывает так распределять роли и ответственность, чтобы один человек не мог нарушить критически важный для организации процесс. Например, нежелательна ситуация, когда крупные пла­ тежи от имени организации выполняет один человек. Надежнее поручить од­ 18 ному сотруднику оформление заявок на подобные платежи, а другому - заве­ рять эти заявки. Другой пример - процедурные ограничения действий супер­ пользователя. Можно искусственно «расщепить» пароль суперпользователя, со­ общив первую его часть одному сотруднику, а вторую - другому. Тогда крити­ чески важные действия по администрированию ИС они смогут выполнить только вдвоём, что снижает вероятность ошибок и злоупотреблений. Принцип минимизации привилегий предписывает выделять пользователям только те права доступа, которые необходимы им для выполнения служебных обязанностей. Назначение этого принципа очевидно - уменьшить ущерб от слу­ чайных или умышленных некорректных действий. Предварительное составление описания должности позволяет оценить её критичность и спланировать процедуру проверки и отбора кандидатов. Чем от­ ветственнее должность, тем тщательнее нужно проверять кандидатов: навести о них справки, быть может, побеседовать с бывшими сослуживцами. Подобная процедура может быть длительной и дорогой, поэтому нет смысла дополнитель­ но усложнять её. В то же время, неразумно и совсем отказываться от предвари­ тельной проверки. Когда кандидат определён, он, вероятно, должен пройти обучение; по край­ ней мере, его следует подробно ознакомить со служебными обязанностями, а также с нормами и процедурами информационной безопасности. Желательно, чтобы меры безопасности были им усвоены до вступления в должность и до созда­ ния его учётной записи в системе с входным именем, паролем и привилегиями. С момента заведения учётной записи начинается его администрирование, а также протоколирование и анализ действий пользователя. Постепенно изменя­ ется окружение, в котором работает пользователь, его служебные обязанности. Всё это требует соответствующего изменения привилегий. Техническую слож­ ность представляют временные перемещения пользователя, выполнение им обязанностей взамен сотрудника, ушедшего в отпуск, и иные обстоятельства, когда полномочия нужно сначала предоставить, а через некоторое время взять обратно. В такие периоды профиль активности пользователя резко меняется, что создает трудности при выявлении подозрительных ситуаций. Определенную аккуратность следует соблюдать и при выдаче новых постоянных полномочий, не забывая ликвидировать старые права доступа. Ликвидация учётной записи пользователя, особенно в случае конфликта между сотрудником и организацией, должна производиться максимально опе­ ративно. Возможно и физическое ограничение доступа к рабочему месту. Разу­ меется, если сотрудник увольняется, у него нужно принять все его компьютер­ ное «хозяйство» и, в частности, криптографические ключи, если использовались средства шифрования. К управлению сотрудниками примыкает администрирование лиц, рабо­ тающих по контракту. В соответствии с принципом минимизации привилегий, им нужно выделить ровно столько прав, сколько необходимо, и изъять эти пра­ ва сразу по окончании контракта. Проблема, однако, состоит в том, что на на­ чальном этапе внедрения «внешние» сотрудники будут администрировать «ме­ стных», а не наоборот. Здесь на первый план выходит квалификация персонала организации, его способность быстро обучаться, а также оперативное проведе­ ние учебных курсов. Важны и принципы выбора деловых партнёров. Иногда внешние организации принимают на обслуживание и администри­ рование ответственные компоненты компьютерной системы, например, сетевое оборудование. Нередко администрирование выполняется в удалённом режиме. Вообще говоря, это создаёт в системе дополнительные уязвимые места, которые необходимо компенсировать усиленным контролем средств удалённого доступа или обучением собственных сотрудников. 19 Проблема обучения - одна из основных с точки зрения информационной безопасности. Если сотрудник не знаком с политикой безопасности своей орга­ низации, он не может стремиться к достижению сформулированных в ней це­ лей. Не зная мер безопасности, он не сможет их соблюдать. Напротив, если со­ трудник знает, что его действия протоколируются, он, возможно, воздержится от нарушений. 1.4.2. Физическая защита Безопасность информационной системы зависит от окружения, в котором она функционирует. Необходимо принять меры для защиты зданий и приле­ гающей территории, поддерживающей инфраструктуры, вычислительной тех­ ники, носителей данных. Основной принцип физической защиты, соблюдение которого следует постоянно контролировать, формулируется как «непрерыв­ ность защиты в пространстве и времени». Мы кратко рассмотрим следующие направления физической защиты: * физическое управление доступом; противопожарные меры; * защита поддерживающей инфраструктуры; ■ защита от перехвата данных; * защита мобильных систем. Меры физического управления доступом позволяют контролировать и при необходимости ограничивать вход и выход сотрудников и посетителей. Контро­ лироваться может всё здание организации, а также отдельные помещения. Нужно сделать так, чтобы посетители, по возможности, не имели непосредст­ венного доступа к компьютерам или, в крайнем случае, позаботиться о том, чтобы от окон и дверей не просматривались экраны мониторов и принтеры. Необходимо, чтобы посетителей по внешнему виду можно было отличить от со­ трудников. Если отличие состоит в том, что посетителям выдаются идентифи­ кационные карточки, а сотрудники ходят «без опознавательных знаков», зло­ умышленнику достаточно снять карточку, чтобы его считали «своим». Очевид­ но, соответствующие карточки нужно выдавать всем. Средства физического управления доступом известны давно. Это охрана, двери с замками, перегородки, телекамеры, датчики движения и многое дру­ гое. Для выбора оптимального средства целесообразно провести анализ рисков. Необходимо установка противопожарной сигнализации и автоматических средств пожаротушения. Обратим также внимание на то, что защитные меры могут создавать новые слабые места. Если на работу взят новый охранник, это, вероятно, улучшает физическое управление доступом. Если же он по ночам на­ рушает рабочий режим, то ввиду повышенной пожароопасности подобная мера защиты может только навредить. Отдельную проблему составляют аварии водопровода. Они происходят не­ часто, но могут нанести огромный ущерб. При размещении компьютеров необ­ ходимо принять во внимание расположение водопроводных и канализацион­ ных труб и постараться держаться от них подальше. Сотрудники должны знать, WT7TTO /"»<т т-г*>тт л Л т t п »чт т^т^лт тт тт » | і*»лтлттлтгu u ^ a .L U ,a i i x y n w n c L j j y Перехват данных может осуществляться самыми разными способами. Зло­ умышленник может подсматривать за экраном монитора, читать пакеты, пере­ даваемые по сети, производить анализ побочных электромагнитных излучений и наводок. Необходимо повсеместно использовать криптографию, стараться максимально расширить контролируемую территорию, разместившись поодаль, пытаться держать под контролем линии связи (например, заключать их в на­ дувную оболочку с обнаружением прокалывания), но самое разумное, вероят­ 20 но, - постараться осознать, что для коммерческих систем обеспечение конфи­ денциальности является все-таки не главной задачей. Мобильные и портативные компьютеры - заманчивый объект кражи. Их часто оставляют без присмотра, в автомобиле или на работе, и похитить такой компьютер совсем несложно. Необходимо шифровать данные на жёстких дисках таких компьютеров. Вообще говоря, при выборе средств физической защиты следует произво­ дить анализ рисков. Так, принимая решение о закупке источника бесперебой­ ного питания, необходимо учесть качество электропитания в здании, занимае­ мом организацией, характер и длительность сбоев электропитания, стоимость доступных источников и возможные потери от аварий. В то же время, во мно­ гих случаях решения очевидны. Меры противопожарной безопасности обяза­ тельны для всех организаций. Стоимость реализации многих мер (например, установка обычного замка на дверь серверной комнаты) либо мала, либо хоть и заметна, но все же явно меньше, чем возможный ущерб. В частности, имеет смысл регулярно копировать большие базы данных. 1.4.3. Поддержание работоспособности Существует ряд рутинных мероприятий, натравленных на поддержание работоспособности информационных систем. Именно здесь таится наибольшая опасность. Нечаянные ошибки системных администраторов и пользователей грозят повреждением аппаратуры, разрушением программ и данных; в лучшем случае они создают бреши в защите, которые делают возможной реализацию угроз. Недооценка факторов безопасности в повседневной работе - ахиллесова пята многих организаций. Дорогие средства безопасности теряют смысл, если они плохо документированы, конфликтуют с другим программным обеспечени­ ем, а пароль системного администратора не менялся с момента установки. Можно выделить следующие направления повседневной деятельности: в поддержка пользователей; * поддержка программного обеспечения; « конфигурационное управление; ■ резервное копирование; я управление носителями; документирование; * регламентные работы. Поддержка пользователей подразумевает, прежде всего, консультирование и оказание помощи при решении разного рода проблем. Иногда в организациях создают для этой цели специальный «справочный стол», но чаще от пользовате­ лей отбивается системный администратор. Очень важно в потоке вопросов уметь выявлять проблемы, связанные с информационной безопасностью. Так, многие трудности пользователей, работающих на персональных компьютерах, могут быть следствием заражения вирусами. Целесообразно фиксировать во­ просы пользователей, чтобы выявлять их типичные ошибки и выпускать памят­ ки с рекомендациями для распространенных ситуаций. Поддержка программного обеспечения - одно из важнейших средств обес­ печения целостности информации. Прежде всего, необходимо следить за тем, какое программное обеспечение установлено на компьютерах. Если пользовате­ ли будут устанавливать программы по своему усмотрению, это может привести к заражению вирусами, а также появлению утилит, действующих в обход за­ щитных средств. Вполне вероятно также, что «самодеятельность» пользователей постепенно приведёт к хаосу на их компьютерах, а исправлять ситуацию при­ дётся системному администратору . 21 Второй аспект поддержки программного обеспечения - контроль за отсут­ ствием неавторизованного изменения программ и прав доступа к ним. Сюда же можно отнести поддержку эталонных копий программных систем. Обычно контроль достигается комбинированием средств физического и логического управления доступом, а также использованием утилит проверки и обеспечения целостности. Резервное копирование необходимо для восстановления программ и дан­ ных после аварий. И здесь целесообразно автоматизировать работу, как мини­ мум, сформировав компьютерное расписание создания полных и инкремен­ тальных копий, а как максимум - воспользовавшись соответствующими про­ граммными продуктами. Нужно также наладить размещение копий в безопас­ ном месте, защищенном от несанкционированного доступа, пожаров, протечек, то есть от всего, что может привести к краже или повреждению носителей. Це­ лесообразно иметь несколько экземпляров резервных копий и часть из них хра­ нить вне территории организации, защищаясь, таким образом, от крупных аварий и аналогичных инцидентов. Документирование - неотъемлемая часть информационной безопасности. В виде документов оформляется почти всё - от политики безопасности до журна­ ла учёта носителей. К хранению одних документов применимы требования обеспечения конфиденциальности, к другим, таким как план восстановления после аварий - требования целостности и доступности. Регламентные работы - очень серьёзная угроза безопасности. Сотрудник, осуществляющий регламентные работы, получает исключительный доступ к системе, и на практике очень трудно контролировать, какие именно действия он совершает. Здесь на первый план выходит степень доверия к тем, кто вы­ полняет работу. 1.4.4. Реагирование на нарушения режима безопасности Программа безопасности, принятая организацией, должна предусматри­ вать набор оперативных мероприятий, направленных на обнаружение и ней­ трализацию нарушений режима информационной безопасности. Важно, чтобы в подобных случаях последовательность действий была спланирована заранее, поскольку меры нужно принимать срочные и скоординированные. Реакция на нарушения режима безопасности преследует три главные цели: в локализация инцидента и уменьшение наносимого вреда; * выявление нарушителя; предупреждение повторных нарушений. В организации должен быть человек, доступный 24 часа в сутки, который отвечает за реакцию на нарушения. Все должны знать координаты этого че­ ловека и обращаться к нему при первых признаках опасности. В общем, как при пожаре, нужно знать, куда звонить, и что делать до приезда пожарной команды. Нередко требование локализации инцидента и уменьшения наносимого вреда вступает в конфликт с желанием выявить нарушителя. В политике безо- Т Т а Г 'Т Л ’ О /^ЛП ТЛ ' / 'М '^ Г 'О Т -Т Т .Т О О Т Т Т Д Т .Х Т Т Г Ч Т ;Г / Л *Л Т Т Л П О Л П Г Т П Л А \ г г т т т т Л т ТЛПТ п п л л т й п » л т т т т г-1 т т а л Т “Г _ * 1 1 1 1 V-" X JJX /Д,*-'-* 1 A »A U D l l U C t V J. CUCXXV/ X l O l o a L / C U I V ^ t i скольку, как показывает практика, выявить злоумышленника очень сложно, на наш взгляд, в первую очередь следует заботиться о минимизации ущерба. Чтобы найти нарушителя, нужно заранее выяснить контактные координа­ ты поставщика сетевых услуг и договориться с ним о самой возможности и по­ рядке выполнения соответствующих действий. Чтобы предотвратить повтор­ ные нарушения, необходимо анализировать каждый инцидент, выявлять при­ чины, накапливать статистику. Каковы источники вредоносного ПО? Какие 22 пользователи имеют обыкновение выбирать слабые пароли? На подобные вопро­ сы и должны дать ответ результаты анализа. 1.4.5. Планирование восстановительных работ Ни одна организация не застрахована от серьёзных аварий, вызванных ес­ тественными причинами, действиями злоумышленника, халатностью или не­ компетентностью. В то же время, у каждой организации есть функции, кото­ рые руководство считает критически важными, они должны выполняться не­ смотря ни на что. Планирование восстановительных работ позволяет подгото­ виться к авариям, уменьшить ущерб от них и сохранить способность к функ­ ционированию хотя бы в минимальном объёме. Отметим, что меры информационной безопасности можно разделить на три группы, в зависимости от того, направлены ли они на предупреждение, обна­ ружение или ликвидацию последствий атак. Большинство мер носит предупре­ дительный характер. Оперативный анализ регистрационной информации и не­ которые аспекты реагирования на нарушения (так называемый активный ау­ дит) служат для обнаружения и отражения атак. Планирование восстанови­ тельных работ, очевидно, можно отнести к последней из трех перечисленных групп. Процесс планирования восстановительных работ можно разделить на сле­ дующие этапы: ■ выявление критически важных функций организации, установление при­ оритетов; * идентификация ресурсов, необходимых для выполнения критически важ­ ных функций; * определение перечня возможных аварий; « разработка стратегии восстановительных работ; Е подготовка к реализации выбранной стратегии; * проверка стратегии. Планируя восстановительные работы, следует отдавать себе отчёт в том, что полностью сохранить функционирование организации не всегда возможно. Необходимо выявить критически важные функции, без которых организация теряет своё лицо, и даже среди критичных функций расставить приоритеты, чтобы как можно быстрее и с минимальными затратами возобновить работу после аварии. Идентифицируя ресурсы, необходимые для выполнения критически важ­ ных функций, следует помнить, что многие из них имеют некомпьютерный ха­ рактер. На данном этапе желательно подключать к работе специалистов разно­ го профиля, способных в совокупности охватить все аспекты проблемы. Кри­ тичные ресурсы обычно относятся к одной из следующих категорий: * персонал; » информационная инфраструктура; 1 физическая инфраструктура. Составляя списки ответственных специалистов, следует учитывать, что не­ которые из них моіут непосредственно пострадать от аварии (например, от пожара), кто-то может находиться в состоянии стресса, часть сотрудников, возможно, будет лишена возможности попасть на работу (например, в случае массовых беспорядков). Желательно иметь некоторый резерв специалистов или заранее определить каналы, по которым можно на время привлечь дополни­ тельный персонал. При определении перечня возможных аварий нужно попытаться разрабо­ тать их сценарии. Как будут развиваться события? Каковы могут оказаться масштабы бедствия? Что произойдёт с критичными ресурсами? Например, 23 смогут ли сотрудники попасть на работу? Будут ли выведены из строя компью­ теры? Возможны ли случаи саботажа? Будет ли работать связь? Пострадает ли здание организации? Можно ли будет найти и прочитать необходимые бумаги? Стратегия восстановительных работ должна базироваться на наличных ре­ сурсах и быть не слишком накладной для организации. При разработке страте­ гии целесообразно провести анализ рисков, которым подвергаются критичные функции, и попытаться выбрать наиболее экономичное решение. Стратегия должна предусматривать не только работу по временной схеме, но и возвраще­ ние к нормальному функционированию. Подготовка к реализации выбранной стратегии состоит в выработке плана действий в экстренных ситуациях и по их окончании, а также в обеспечении некоторой избыточности критичных ресурсов. Последнее возможно и без боль­ шого расхода средств, если заключить с одной или несколькими организациями соглашения о взаимной поддержке в случае аварий - те, кто не пострадал, пре­ доставляют часть своих ресурсов во временное пользование менее удачливым партнерам. Избыточность обеспечивается также мерами резервного копирования, хра­ нением копий в нескольких местах, представлением информации в разных ви­ дах (на бумаге и в файлах). Имеет смысл заключить соглашение с поставщика­ ми информационных услуг о первоочередном обслуживании в критических си­ туациях или заключать соглашения с несколькими поставщиками. 1.5. Программно-технический уровень 1.5.1. Основные понятия программно-технического уровня информационной безопасности Программно-технические меры, то есть меры, направленные на контроль оборудования, программ и данных, образуют последний и один из самых важ­ ных рубежей информационной безопасности. Как показывает статистика, ущерб наносят, в основном, действия легальных пользователей, по отношению к которым процедурные регуляторы малоэффективны. Главные «враги» - не­ компетентность и неаккуратность при выполнении служебных обязанностей, и только программно-технические меры способны им противостоять. С одной стороны, быстрое развитие информационных технологий предос­ тавляет обороняющимся новые возможности, но с другой стороны затрудняет обеспечение надёжной защиты, если опираться исключительно на меры про­ граммно-технического уровня. Причин тому несколько: повышение быстродействия микросхем, развитие архитектур с высокой степенью параллелизма позволяет взламывать, ранее казавшиеся непри­ ступными барьеры; ' развитие сетей и сетевых технологий, увеличение числа связей между ин­ формационными системами, рост пропускной способности каналов рас­ ширяют круг злоумышленников, имеющих техническую возможность ор­ ганизовывать атаки; * появление новых информационных сервисов ведёт и к образованию новых уязвимых мест; * конкуренция среди производителей программного обеспечения заставляет сокращать сроки разработки, что приводит к снижению качества тестиро­ вания и выпуску продуктов с дефектами защиты; = навязываемая потребителям парадигма постоянного наращивания мощно­ сти аппаратного и программного обеспечения не позволяет долго оставать­ ся в рамках надёжных, апробированных конфигураций. 24 Для программно-технического уровня основным является понятие сервиса безопасности, в который входят: идентификация и аутентификация; ■ управление доступом; * протоколирование и аудит; * шифрование; ■ контроль целостности; « экранирование; * анализ защищенности; * обеспечение отказоустойчивости; * обеспечение безопасного восстановления; * туннелирование; » управление. 1.5.2. Особенности современных информационных систем, существенные с точки зрения безопасности Информационная система современной организации является весьма слож­ ным образованием, которое пользуется многочисленными внешними сервисами и, в свою очередь, предоставляет собственные сервисы вовне. Следует учитывать еще, по крайней мере, два момента. Во-первых, для ка­ ждого сервиса основные грани ИБ (доступность, целостность, конфиденциаль­ ность) трактуются посвоему. Целостность с точки зрения системы управления базами данных и с точки зрения почтового сервера - вещи принципиально раз­ ные. Бессмысленно говорить о безопасности локальной или иной сети вообще, если сеть включает в себя разнородные компоненты. Следует анализировать защищенность сервисов, функционирующих в сети. Для разных сервисов и за­ щиту строят по-разному. Во-вторых, основная угроза информационной безопасности организаций по-прежнему исходит не от внешних злоумышленников, а от собственных со­ трудников. В силу изложенных причин далее будут рассматриваться распределён­ ные, разнородные, многосервисные, эволюционирующие системы. Соответ­ ственно, нас будут интересовать решения, ориентированные на подобные конфигурации. 1.5.3. Архитектурная безопасность Сервисы безопасности, какими бы мощными они ни были, сами по себе не могут гарантировать надежность программно-технического уровня защиты. Только проверенная архитектура способна сделать эффективным объединение сервисов, обеспечить управляемость информационной системы, ее способность развиваться и противостоять новым угрозам при сохранении таких свойств, как высокая производительность, простота и удобство использования. С практической точки зрения наиболее важными являются следующие принципы архитектурной безопасности: * непрерывность защиты в пространстве и времени, невозможность мино­ вать защитные средства; следование признанным стандартам, использование апробированных ре­ шений; * иерархическая организация ИС с небольшим числом сущностей на каждом уровне; * усиление самого слабого звена; 3 невозможность перехода в небезопасное состояние; 5 минимизация привилегий; 25 • разделение обязанностей; * эшелонированность обороны; 2 разнообразие защитных средств; а простота и управляемость информационной системы. Кратко смысл перечисленных принципов заключается в следующем. Если непрерывность нарушена, тогда у злоумышленника или недовольно­ го пользователя появится возможность миновать защитные средства, он, разу­ меется, так и сделает. Следование признанным стандартам и использование апробированных решений повышает надежность ИС и уменьшает вероятность попадания в ту­ пиковую ситуацию, когда обеспечение безопасности потребует непомерно больших затрат и принципиальных модификаций. Иерархическая организация ИС с небольшим числом сущностей на каж­ дом уровне необходима по технологическим соображениям. При нарушении данного принципа система станет неуправляемой и, следовательно, обеспечить ее безопасность будет невозможно. Надёжность любой обороны определяется самым слабым звеном. Злоумыш­ ленник не будет бороться против силы, он предпочтёт легкую победу над слабо­ стью. Часто самым слабым звеном оказывается не компьютер или программа, а человек, и тогда проблема обеспечения информационной безопасности приобре­ тает нетехнический характер. Принцип невозможности перехода в небезопасное состояние означает, что при любых обстоятельствах, в том числе нештатных, защитное средство ли­ бо полностью выполняет свои функции, либо полностью блокирует доступ. Применительно к программно-техническому уровню принцип минимиза­ ции привилегий предписывает выделять пользователям и администраторам только те права доступа, которые необходимы им для выполнения служебных обязанностей. Этот принцип позволяет уменьшить ущерб от случайных или умышленных некорректных действий пользователей и администраторов. Принцип разделения обязанностей предполагает такое распределение ро­ лей и ответственности, чтобы один человек не мог нарушить критически важ­ ный для организации процесс или создать брешь в защите по заказу злоумыш­ ленников. В частности, соблюдение данного принципа особенно важно, чтобы предотвратить злонамеренные или неквалифицированные действия системного администратора. Принцип эшелоиироваиности обороны предписывает не полагаться на один защитный рубеж, каким бы надёжным он ни казался. За средствами фи­ зической защиты должны следовать программно-технические средства, за идентификацией и аутентификацией - управление доступом и, как последний рубеж, - протоколирование и аудит. Эшелонированная оборона способна, по крайней мере, задержать злоумышленника, а благодаря наличию такого рубе­ жа, как протоколирование и аудит, его действия не останутся незамеченными. Принцип разнообразия защитных средств предполагает создание различ­ ных по своему характеру оборонительных рубежей, чтобы от потенциального злоумышленника требовалось овладение разнообразными и, по возможности, несовместимыми между собой навыками. Очень важен принцип простоты и управляемости информационной сис­ темы в целом и защитных средств в особенности. Только для простого защитно­ го средства можно формально или неформально доказать его корректность. Только в простой и управляемой системе можно проверить согласованность конфигурации различных компонентов и осуществлять централизованное ад­ министрирование. 26 1.6. Основные понятия криптографии 1.6.1. Основные понятия Здесь мы обсудим принципы, на которых основаны современные методы традиционного шифрования. Рассмотрим общую схему симметричной, или тра­ диционной, криптографии (рис. 2). Общий ключ Рис. 2. Общая схема симметричного шифрования В процессе шифрования используется определённый алгоритм шифрова­ ния, по которому обрабатываются входные незашифрованные данные. Мате­ матический алгоритм обычно является открытым и описание его доступно в открытой печати, например, в математических журналах. Однако, в процессе шифрования используется ключ - вот он-то является закрытым и им владеют только отправитель и получатель. Результатом работы алгоритма является за­ шифрованное сообщение. Ключ является значением, не зависящим от шифруе­ мого сообщения. Изменение ключа должно приводить к изменению зашифро­ ванного сообщения. Зашифрованное сообщение передается получателю. Получатель преобразует зашифрованное сообщение в исходное незашифрованное сообщение с помо­ щью алгоритма дешифрования и того же самого ключа, который использовался при шифровании, или ключа, легко получаемого из ключа шифрования. Незашифрованное сообщение будем обозначать Р или М (от слов plaintext и message). Зашифрованное сообщение будем обозначать С (от слова ciphertext). Безопасность, обеспечиваемая традиционной криптографией, зависит от нескольких факторов. Во-первых, криптографический алгоритм должен быть достаточно сильным, чтобы передаваемое зашифрованное сообщение невоз­ можно было расшифровать без ключа, используя только различные статистиче­ ские закономерности зашифрованного сообщения или какие-либо другие спо­ собы его анализа. Во-вторых, безопасность передаваемого сообщения должна зависеть от сек­ ретности ключа, но не от секретности алгоритма. Алгоритм должен быть про­ анализирован специалистами, чтобы исключить наличие слабых мест, при ко­ торых плохо скрыта взаимосвязь между незашифрованным и зашифрованным сообщениями. К тому же при выполнении этого условия производители могут создавать дешевые аппаратные чипы и свободно распространяемые програм­ мы, реализующие данный алгоритм шифрования. В-третьих, алгоритм должен быть таким, чтобы нельзя было узнать ключ, даже зная достаточно много пар (зашифрованное сообщение, незашифрованное сообщение), полученных при шифровании с использованием данного ключа. Описание стойкости алгоритма шифрования при статистическом анализе потока зашифрованных сообщений использует понятия диффузии и конфузии, введенные Клодом Шенноном. 27 Суть диффузии заключается в рассеянии статистических особенностей не­ зашифрованного текста в широком диапазоне статистических характеристик зашифрованного текста. Это достигается тем, что значение каждого элемента незашифрованного текста влияет на значения многих элементов зашифрован­ ного текста или, что то же самое, любой элемент зашифрованного текста зави­ сит от многих элементов незашифрованного текста. Конфузия усложняет статистическую взаимосвязь между зашифрованным текстом и ключом с целью противостояния попыткам определить ключ. Это достигается использованием сложных подстановочных алгоритмов - простые линейные подстановочные функции увеличивают беспорядок лишь в незначи­ тельной степени. Если X - это исходное сообщение и К - криптографический ключ, то за­ шифрованный передаваемый текст Y можно записать в виде Г = (1) где Е - функция, осуществляющая алгоритм шифрования. Получатель, используя тот же ключ, расшифровывает сообщение X = Щ У), (2) где D - функция, осуществляющая алгоритм дешифрования. Противник, не имея доступа к К и X, пытается узнать X, К. Алгоритмы симметричного шифрования различаются способом, которым обрабатывается исходный текст. Возможно шифрование блоками или шифро­ вание потоком. Поточными называются шифры, в которых поток цифровых данных шифруется последовательно бит за битом. Блочными называются шифры, в которых логической единицей шифрования является некоторый блок открытого текста, после преобразований которого получается блок шифрован­ ного текста такой же длины. Блочные шифры изучены гораздо лучше. Считается, что они обладают бо­ лее широкой областью применения, чем поточные. Блок текста рассматривает­ ся как неотрицательное целое число. Длина блока всегда выбирается равной степени двойки. Обычно используют блоки размером 64 бита. В большинстве блочных алгоритмов симметричного шифрования используются следующие ти­ пы операций: табличная подстановка, при которой группа битов отображается в другую группу битов. Это, так называемые, S-box; перемещение, с помощью которого биты сообщения переупорядочиваются; операция сложения по модулю 2, обозначаемая XOR или Ф; 1 операция сложения по модулю 232 или по модулю 216; * циклический сдвиг на некоторое число битов. Эти операции циклически повторяются в алгоритме, образуя так называе­ мые раунды. Входом каждого раунда является выход предыдущего раунда и ключ, которьгй получен по определенному алгоритму из ключа шифрования К. Ключ раунда называется подключом. 1.6.2. Криптоанализ Процесс воссоздания значений X, К из 7(1, 2), называется криптоанализом. Используемая стратегия зависит от схемы шифрования. Одной из возможных атак на алгоритм шифрования является лобовая атака, то есть простой перебор всех возможных ключей. Если множество ключей достаточно большое, то по­ добрать ключ маловероятно. При длине ключа п бит количество возможных 28 ключей равно 2п. Таким образом, чем длиннее ключ, тем более стойким счита­ ется алгоритм для лобовой атаки. Существуют различные типы атак, основанные на том, что противнику из­ вестно определенное количество пар «незашифрованное сообщение - зашифро­ ванное сообщение». При анализе зашифрованного текста противник часто при­ меняет статистические методы анализа текста. При этом он может иметь общее представление о типе текста, например, английский или русский текст, испол­ няемый файл, исходный текст на языке программирования. Во многих случаях криптоаналитик имеет достаточно много информации об исходном тексте. Криптоаналитик может иметь возможность перехвата одного или нескольких незашифрованных сообщений вместе с их зашифрованным видом. Или крип­ тоаналитик может знать основной формат или основные характеристики сооб­ щения. Говорят, что криптографическая схема абсолютно стойкая, если за­ шифрованное сообщение не содержит информации достаточной для однознач­ ного восстановления соответствующего открытого текста, какой бы большой по объёму шифрованный текст не имелся у противника. К сожалению, среди алго­ ритмов шифрования нет абсолютно стойких. И поэтому говорят, что крипто­ графическая схема вычислительно безопасна, если: а стоимость взлома шифра превышает стоимость расшифрованной инфор­ мации; время, которое требуется для того чтобы взломать шифр, превышает вре­ мя, в течение которого информация актуальна. 1.6.3. Алгоритмы традиционного симметричного шифрования Рассмотрим несколько наиболее известных и популярных алгоритмов сим­ метричного шифрования. Требования, предъявляемые к алгоритмам симмет­ ричного шифрования, обычно сводятся к следующим: » иметь размер блока 64 или 128 бит; * иметь масштабируемый ключ до 256 бит; ■ использовать простые операции, эффективные на микропроцессорах, то есть, сложение, сложение по модулю 2, табличные подстановки, умножение по модулю; * алгоритм должен работать на 8-битном процессоре с минимальными тре­ бованиями к памяти; ■ алгоритм должен использовать заранее вычисленные подключи; всегда должна быть возможность шифрования данных без каких-либо предвари­ тельных вычислений; * алгоритм должен состоять из переменного числа итераций; » алгоритм не должен иметь слабых ключей, если это невозможно, то коли­ чество слабых ключей должно быть минимальным; ■ алгоритм должен использовать простую для понимания структуру, это уменьшает закрытость алгоритма. При построении большинства алгоритмов симметричного шифрования ис­ пользуются блочные алгоритмы, основанные на использовании сети Файстеля. Они удовлетворяют всем требованиям к алгоритмам симметричного шифрова­ ния, а с другой стороны, достаточно просты и компактны. Одним из самых распространённых и наиболее известных алгоритмов сим­ метричного шифрования является DES (Data Encryption Standard - стандарт шифрования данных). Алгоритм был разработан в 1977 году, в 1980 году был принят NIST (National Institute of Standards and Technolody США) в качестве стандарта. DES является классической сетью Файстеля с двумя ветвями. Данные шиф­ руются 64-битными блоками, используя 56-битный ключ. Алгоритм преобразует 29 за несколько раундов 64-битный вход в 64-битный выход. Длина ключа равна 56 битам. При такой длине ключа существует 256 возможных комбинаций. На сегодня такая длина ключа недостаточна, поскольку допускает успешное применение ло­ бовых атак. Альтернативой DES можно считать тройной DES, IDEA, а также ал­ горитм Rijndael, принятый в качестве нового стандарта на алгоритмы симмет­ ричного шифрования. Ещё одним интересным алгоритмов симметричного шифрования является IDEA (International Data Encryption Algorithm). Это блочный симметричный алго­ ритм шифрования, разработанный в швейцарском федеральном институте тех­ нологий в 1990 году. IDEA является одним из нескольких симметричных криптографических ал­ горитмов, которыми первоначально предполагалось заменить DES. IDEA явля­ ется блочным алгоритмом, который использует 128-битовый ключ для шифро­ вания данных блоками по 64 бита. Целью разработки IDEA было создание отно­ сительно стойкого криптографического алгоритма с достаточно простой реали­ зацией. Алгоритм Blowfish является сетью Фай стеля, у которой количество итераций равно 16. Длина блока равна 64 битам, ключ может иметь любую длину в пре­ делах 448 бит. Перед началом шифрования выполняется сложная фаза инициа­ лизации, но само шифрование данных выполняется достаточно быстро. Алгоритм предназначен в основном для приложений, в которых ключ меня­ ется нечасто, во время фазы инициализации происходит аутентификация сто­ рон и согласование общих параметров и секретов. Классическим примером по­ добных приложений является сетевое взаимодействие. При реализации на 32- битных микропроцессорах с большим кэшем данных Blowfish значительно бы­ стрее DES. Алгоритм ГОСТ 28147 является российским стандартом для алгоритмов симметричного шифрования. ГОСТ 28147 разработан в 1989 году, является блочным алгоритмом шифрования, длина блока равна 64 битам, длина ключа равна 256 битам, количество раундов равно 32. Алгоритм представляет собой классическую сеть Фай стеля. В рамках американского института стандартов (NIST) была сделана попыт­ ка разработать продвинутый стандарт шифрования (Advanced Encryption Standard - AES). Основная цель состояла в создании федерального стандарта, который бы описывал алгоритм шифрования, используемый для защиты ин­ формации как в государственном, так и в частном секторе. В 1998 году NIST объявил несколько кандидатов на алгоритм AES. Эти ал­ горитмы были разработаны промышленными и академическими кругами две­ надцати стран. В 1999 году были представлены выбранные NIST пять финали­ стов. Ими стали MARS, RC6, Rijndael, Serpent и Twofish. 1.6.4. Шифрование с открытым ключом. Основные требования к алгоритмам асимметричного шифрования Создание алгоритмов асимметричного шифрования является величайшим достижением в истории криптографии. Алгоритмы шифрования с открытым ключом разрабатывались для того, чтобы решить две наиболее трудные задачи, возникшие при использовании симметричного шифрования. Первой задачей является распределение ключа. При симметричном шиф­ ровании требуется, чтобы обе стороны уже имели общий ключ, который каким- то образом должен быть им заранее передан. Диффи, один из основоположни­ ков шифрования с открытым ключом, заметил, что это требование отрицает 30 всю суть криптографии, а именно - возможность поддерживать всеобщую сек­ ретность при коммуникациях. Второй задачей является необходимость создания таких механизмов, при использовании которых невозможно было бы подменить кого-либо из участни­ ков, то есть нужна цифровая подпись. При использовании коммуникаций для решения широкого круга задач, например в коммерческих и частных целях, электронные сообщения и документы должны иметь эквивалент подписи, со­ держащейся в бумажных документах. Необходимо создать метод, при исполь­ зовании которого все участники будут убеждены, что электронное сообщение было послано конкретным участником. Это более сильное требование, чем ау­ тентификация . Диффи и Хеллман предложили способ решения обеих задач, который ради­ кально отличается от всех предыдущих подходов к шифрованию. Рассмотрим общие черты алгоритмов шифрования с открытым ключом и требования к этим алгоритмам. Определим требования, которым должен соответствовать алго­ ритм, использующий один ключ для шифрования, другой ключ - для дешифро­ вания. В некоторых алгоритмах асимметричного шифрования, например RSA, имеется интересная особенность: каждый из двух ключей может использовать­ ся как для шифрования, так и для дешифрования. При описании симметричного шифрования и шифрования с открытым ключом будем использовать следующую терминологию. Ключ, используемый в симметричном шифровании, будем называть секретным ключом. Два ключа, используемые при шифровании с открытым ключом, будем называть открытым ключом и закрытым ключом. Закрытый ключ держится в секрете, но называть его будем закрытым ключом, а не секретным, чтобы избежать путаницы с клю­ чом, используемым в симметричном шифровании. Закрытый ключ пользовате­ ля А будем обозначать KRa, открытый ключ - KUa. Предполагается, что все участники имеют доступ к открытым ключам друг друга, а закрытые ключи создаются локально каждым участником и распреде­ ляться не должны. В любое время участник может изменить свой закрытый ключ и опублико­ вать составляющий пару открытый ключ, заменив им старый открытый ключ. Диффи и Хеллман описывают требования, которым должен удовлетворять алгоритм шифрования с открытым ключом: 1) для стороны В процесс генерирования пары ключей (открытый ключ KUb, закрытый ключ КЩ не должен вызывать вычислительных трудностей; 2) для отправителя А вычислительно легко, имея открытый ключ получателя В (КЩ и незашифрованное сообщение М, создать для В соответствующее за­ шифрованное сообщение: С = Екиъ(Щ\ (3) 3) для получателя В не должно вызывать вычислительных трудностей де- шифриование сообщения, если использовать свой закрытый ключ К11ъ: М = DKRb(Q = Оккъ{Екиъ(Щ)', (4) 4) для противника должно быть вычислительно невозможно восстановить личный ключ KRb из имеющегося открытого ключа КПь'- KRb - F{KUb), (5) 31 функция F не вычисляется; 5) для противника должно быть вычислительно невозможно восстановить оригинальное сообщение М, зная открытый ключ KUb и зашифрованное сооб­ щение С: М = FKUb(Cj, (6) функция Ркиъ не вычисляется. Можно добавить ещё одно требование, выполняющееся не для всех алго­ ритмов с открытым ключом; 6) шифрующие и дешифрующие функции могут применяться в любом по­ рядке: М = ЕкиъфюпАЩ. (7) Перечисленные требования достаточно сложны для выполнения, что под­ тверждается тем, что за несколько десятилетий, прошедших со времени откры­ тия метода криптографии с открытым ключом, только один такой алгоритм по­ лучил широкое признание. Эти требования сводятся к необходимости нахожде­ ния односторонней функции с секретом. Односторонней функцией называется такая функция, у которой каждый аргумент имеет единственное обратное зна­ чение, при этом вычислить саму функцию легко, а вычислить обратную функ­ цию трудно: Y = f[X\ - легко, Х = /-ЦУ) - трудно, или другими словами - равенство (3) вычисляется легко, а обратное равенство M^E^jcuiQ (8) вычисляется трудно. Термин «вычислительно легко» означает, что проблема может быть решена за полиномиальное (линейное) время от длины вводимого значения. Так, если длина вводимого значения п бит, то время, требуемое для вычисления функции пропорционально па, где а - фиксированная константа. Термин «вычислительно трудно» означает более сложное понятие. В общем случае можно сказать, что функция является практически невычислимой, если усилия по её вычислению возрастают быстрее, чем па (полиномиального времени от величины входа). Например, если длина входа п битов, а время вычисления функции пропорцио­ нально 2п, то такая функция считается практически невычислимой. Вернёмся к определению односторонней функции с секретом, которую, по­ добно односторонней функции, легко вычислить в одном направлении и трудно вычислить в обратном направлении до тех пор, пока недоступна некоторая до­ полнительная информация. При наличии этой дополнительной информации инверсию можно вычислить за полиномиальное время. Таким образом, одно­ сторонняя функция с секретом принадлежит семейству односторонних функ­ ций fk таких, что Y = fk{X) - легко, если к и X известны; X = fk'^Y) - легко, если к и Y известны; Х = fk~2{Y) - трудно, если Y известно, но к неизвестно. Видно, что разработка конкретного алгоритма с открытым ключом зависит от открытия соответствующей односторонней функции с секретом. 32 1.6.5. Основные способы использования алгоритмов с открытым ключом Основными способами использования алгоритмов с открытым ключом яв­ ляются шифрование/дешифрование, создание и проверка подписи и обмен ключа (рис. 3). о т к р ы т ы й КЛЮЧ KUb Рис. 3. Криптосистема с открытым ключом: защита Шифрование с открытым ключом состоит из следующих шагов. 1. Пользователь В создает пару ключей KUb и KRb, используемых для шиф­ рования и дешифрования передаваемых сообщений. 2. Пользователь В делает доступным некоторым надёжным способом свой ключ шифрования, то есть открытый ключ KUb. Составляющий пару закрытый ключ KRb держится в секрете. 3. Если А хочет послать сообщение В, он шифрует сообщение, используя от­ крытый ключ В - KUb ■ 4. Когда В получает сообщение, он дешифрует его, используя свой закры­ тый ключ KRb. Никто другой не сможет дешифровать сообщение, так как этот закрытый ключ знает только В. Если пользователь (конечная система) надежно хранит свой закрытый ключ, то никто не сможет подсмотреть передаваемые сообщения (рис. 4). ОТКРЫТЫЙ КЛЮЧ KUa Исходное Исходное сообщение Исходное сообщение М и подпись сообщение М Рис. 4. Криптосистема с открытым ключом: аутентификация 33 Создание и проверка подписи состоит из следующих шагов. 1. Пользователь А создает пару ключей KRa и KUa, используемых для созда­ ния и проверки подписи передаваемых сообщений. 2. Пользователь А делает доступным некоторым надёжным способом свой ключ проверки, то есть открытый ключ KUa. Составляющий пару закрытый ключ KRa держится в секрете. 3. Если А хочет послать подписанное сообщение В, он создает подпись Екка{Щ для этого сообщения, используя свой закрытый ключ KRa. 4. Когда В получает подписанное сообщение, он проверяет подпись Dicua{M), используя открытый ключ А - KUa. Никто другой не может подписать сообще­ ние, так как этот закрытый ключ знает только А. До тех пор, пока пользователь или прикладная система надёжно хранит свой закрытый ключ, их подписи достоверны. Кроме того, невозможно изменить сообщение, не имея доступа к закрытому ключу А, обеспечивая тем самым аутентификацию и целостность данных. В этой схеме все сообщение подписывается, причем для подтверждения це­ лостности сообщения требуется много памяти. Каждое сообщение должно хра­ ниться в незашифрованном виде для использования в практических целях. Кроме того, копия сообщения также должна храниться в зашифрованном виде, чтобы можно было проверить в случае необходимости подпись. Более эффек­ тивным способом является шифрование небольшого блока битов, который яв­ ляется функцией от сообщения. Такой блок, называемый аутентификатором, должен обладать свойством невозможности изменения сообщения без измене­ ния аутентификатора. Если аутентификатор зашифрован закрытым ключом отправителя, он является цифровой подписью, с помощью которой можно проверить исходное сообщение. Далее эта технология будет рассматриваться в деталях. Важно подчеркнуть, что описанный процесс создания подписи не обеспе­ чивает конфиденциальность. Это означает, что сообщение, посланное таким способом, невозможно изменить, но можно подсмотреть. Это очевидно в том случае, если подпись основана на аутентификаторе, так как само сообщение передается в явном виде. Но даже если осуществляется шифрование всего со­ общения, конфиденциальность не обеспечивается, так как любой может рас­ шифровать сообщение, используя открытый ключ отправителя. Обмен ключей: две стороны взаимодействуют для обмена ключом сессии, который в дальнейшем можно использовать в алгоритме симметричного шиф­ рования. Некоторые алгоритмы можно задействовать тремя способами, в то время как другие могут использоваться одним или двумя способами. Перечислим наиболее популярные алгоритмы с открытым ключом и воз­ можные способы их применения (табл.). Таблица Алгоритм Шифрование / дешифрование Цифроваяподпись Обмен ключей TPQ Д4 4^ І. Да,непригоден для больших блоков Да. Да DSS Нет Да Нет Диффи- Хеллман Нет Нет Да Алгоритм RSA. Диффи и Хеллман определили новый подход к шифрова­ нию, что вызвало к жизни разработку алгоритмов шифрования, удовлетворяю­ щих требованиям систем с открытым ключом. Одним из первых результатов был алгоритм, разработанный в 1977 году Роном Ривестом, Ади Шамиром и Леном 34 Адлеманом и опубликованный в 1978 году. С тех пор алгоритм Rivest-Shamir- Adleman (RSA) широко применяется практически во всех приложениях, исполь­ зующих криптографию с открытым ключом. Алгоритм основан на использовании того факта, что задача факторизации является трудной, т.е. легко перемножить два числа, в то время как не сущест­ вует полиномиального алгоритма нахождения простых сомножителей большого числа. Алгоритм RSA представляет собой блочный алгоритм шифрования, где за­ шифрованные и незашифрованные данные являются целыми между О и (п - 1) для некоторого п. 1.6.6. Аутентификация сообщений Рассмотрим основные понятия, относящиеся к обеспечению целостности и аутентификации сообщений с помощью МАС-кода и хэш-функций. Аутентифи­ кация сообщений представляет собой процедуру проверки того, что полученное сообщение пришло от указанного источника и не было изменено в пути следо­ вания. Цифровая подпись является средством аутентификации и включает ме­ ры противодействия возможности оспорить источником или адресатом факт отправки и получения сообщения. Функции, которые могут служить для создания аутентификатора, делятся на три типа: ■ шифрованное сообщение, когда в качестве аутентификатора используется сам шифрованный текст всего сообщения; ■ код аутентичности сообщения (Message Authentication Code - MAC), когда в качестве аутентификатора выступает значение фиксированной длины, создаваемое некоторой открытой функцией сообщения и секретным клю­ чом; * функция хэширования, когда в качестве аутентификатора используется значение фиксированной длины, создаваемое некоторой открытой функ­ цией от сообщения произвольной длины. Хэш-функция. Хэш-функцией называется односторонняя функция, пред­ назначенная для получения сообщения или некоторого блока данных постоян­ ной длины при обработке входного сообщения переменной длины. Хэш-код создается функцией Н: h - Н(Щ, где М является сообщением произвольной длины и h является фиксированным значением функции (хэш-кодом). Рассмотрим требования, которым должна соответствовать хэш-функция для того, чтобы она могла использоваться в качестве аутентификатора сообще­ ния. Начнём с простого примера хэш-функции и проанализируем несколько подходов к построению хэш-функции. Хэш-функция Н, которая используется для аутентификации сообщений, должна обладать следующими свойствами: 1. Аргументом хэш-функции Н может быть блок данных любой длины. 2. Значение, принимаемое хэш-функцией Н, всегда фиксированной длины. 3. Значение функции Н(М\ относительно легко (за полиномиальное время) вычисляется для любого аргумента М. 4. Для любого полученного значения хэш-кода h вычислительно невозможно найти Xтакое, чтобы Н(Х) ~ h. Такое свойство называется односторонностью. 5. Для любого данного X вычислительно невозможно наити Y ф- X, что ц х ) = а д . 35 6. Должно быть практически невозможно найти произвольную пару значе­ ний (Y * X) такую, что Н(Х) = H(Y). Первые три свойства требуют, чтобы хэш-функция создавала хэш-код для любого сообщения. Четвертое свойство определяет требование односторонности хэш-функции: легко создать хэш-код по данному сообщению, но невозможно восстановить со­ общение по данному хэш-коду. Это свойство важно, если аутентификация с использованием хэш-функции включает секретное значение. Само секретное значение может не посылаться, тем не менее, если хэш-функция не является односторонней, противник может легко раскрыть секретное значение следую­ щим образом. При перехвате передачи атакующий получает сообщение М и хэш-код С = H (Sab | | М ). Если атакующий может инвертировать хэш-функцию, то, следовательно, он может получить Sab | | М = НЛ{С). Так как атакующий те­ перь знает и Ми Sab \ \ М , получить Sab совсем просто. Пятое свойство гарантирует, что невозможно найти другое сообщение, чьё значение хэш-функции совпадало бы со значением хэш-функции данного сооб­ щения. Это предотвращает подделку аутентификатора при использовании за­ шифрованного хэш-кода. Хэш-функция MD5. Одним из распространённых алгоритмов получения хэш-функции от сообщения произвольной длины является алгоритм MD5, раз­ работанный Роном Ривестом. Алгоритм, обрабатывая сообщение произвольной длины, создаёт фиксиро­ ванную хэш-функцию длиной 128 бит. Алгоритм MD5 разработан на основе более раннего алгоритма MD4 того же автора - Рона Ривеста. Первоначально данный алгоритм MD4 был опубликован в октябре 1990 года. Хэш-функция SHA-1. На основе алгоритма MD4 в настоящее время на­ циональным институтом стандартов и технологии (NIST) разработан ещё один алгоритм получения хэш-функции - безопасный хэш-алгоритм (Secure Hash Algorithm - SHA-1). Алгоритм SHA-1 может обработать сообщение максимальной длины 264 бит и создаёт хэш-функцию сообщения длиной 160 бит. Алгоритм ГОСТ 3411 является российским стандартом для хэш-функций. Его структура довольно сильно отличается от структуры алгоритмов SHA-1,2 или MD5, в основе которых лежит алгоритм MD4. Длина хэш-кода, создаваемо­ го российским алгоритмом ГОСТ 3411, равна 256 битам. Коды аутентификации сообщений (MAC) и требования к иим. Напом­ ним, что обеспечение целостности сообщения - это невозможность изменения сообщения так, чтобы получатель этого не обнаружил. Под аутентификацией понимается подтверждение того, что информация получена от законного ис­ точника, и получателем является тот, кто нужно. Один из способов обеспечения целостности - это вычисление MAC (Message Authentication Code). В данном случае под MAC понимается некоторый аутентификатор, являющийся опреде­ лённым способом вычисленным блоком данных, с помощью которого можно П,гчгмэ^ 1лт;г'тт. тт^ л/лг‘/т>иг\0пгт. Г‘Г\г\Я\ттт*аттттст R тл’^ тггчппгчгчгчтд' рп^отт^ гттл- thjАтг\тхттттг»о ттттх/4-**-*л-j - y v * A W X l i v y V i. AJ v w v i i l 1- » I X V I W i V I V l l V l i l l V i U 1 X W V 1J вание всего сообщения может выполнять функцию аутентификации этого со­ общения. Но в таком случае сообщение должно содержать достаточную избы­ точность, которая позволяла бы проверить, что сообщение не было изменено. Избыточность может быть в виде определённым образом отформатированного сообщения, текста на конкретном языке. Если сообщение допускает произволь­ ную последовательность битов (например, зашифрован ключ сессии), то сим­ метричное шифрование всего сообщения не может обеспечивать его целост­ ность, так как при дешифровании в любом случае получится последователь­ ность битов, правильность которой проверить нельзя. Поэтому гораздо чаще 36 используется криптографически созданный небольшой блок данных фиксиро­ ванного размера - аутентификатор, так называемая криптографическая кон­ трольная сумма, с помощью которого проверяется целостность сообщения. Этот блок данных и есть MAC. Он может создаваться с помощью секретного ключа, который используют отправитель и получатель. MAC вычисляется в тот момент, когда известно, что сообщение корректно. После этого MAC присоединяется к сообщению и передаётся вместе с ним получателю. Получатель вычисляет MAC, используя тот же самый секретный ключ, и сравнивает вычисленное значение с полученным. Если эти значения совпадают, то с большой долей вероятности можно считать, что при пересылке изменения сообщения не произошло: MAC = Ск{Щ. Хочется заметить, что МАС-код не обеспечивает цифровую подпись, так как и отправитель, и получатель используют один и тот же общий ключ. 1.6.7. Цифровые подписи и протоколы аутентификации Требования к цифровой подписи. Аутентификация защищает двух уча­ стников, которые обмениваются сообщениями, от воздействия некоторой третьей стороны, но не обеспечивает защиту участников друг от друга, тогда как и между ними тоже могут возникать определённые формы споров. Например, предположим, что адресат А посылает адресату В аутентифи­ цированное сообщение, и аутентификация осуществляется на основе общего ключа. Рассмотрим возможные недоразумения, которые могут при этом воз­ никнуть: * адресат В может подделать сообщение и утверждать, что оно пришло от адресата А. Адресату В достаточно просто создать сообщение и присоеди­ нить аутентификационный код, используя совместный ключ, который имеется у адресата А и адресата В; ■ адресат А может отрицать, что он посылал сообщение адресату В. Так как адресат В может подделать сообщение, у него нет способа доказать, что адресат А действительно посылал его. В ситуации, когда обе стороны не доверяют друг другу, необходимо нечто большее, чем аутентификация. Возможным решением подобной проблемы явля­ ется использование цифровой подписи. Цифровая подпись должна обладать сле­ дующими свойствами: * должна быть возможность проверить автора, дату и время создания подписи; ■ должна быть возможность установить достоверность содержимого сообще­ ния (аутентифицировать) на время создания подписи; а подпись должна быть проверяема третьей стороной в случае возникновения спора. Таким образом, функция цифровой подписи включает, в частности, функ­ цию аутентификации. На основании этих свойств можно сформулировать сле­ дующие требования к цифровой подписи. 1. Подпись должна быть двоичным кодом, который зависит от подписы­ ваемого сообщения. 2. Подпись должна использовать некоторую уникальную информацию отпра­ вителя для предотвращения подделки (фальсификации) или отказа (отрицания авторства). 3. Создавать цифровую подпись должно быть относительно легко. 4. Цифровую подпись должно быть относительно просто распознать и про­ верить. 37 5.Должно быть вычислительно невозможно подделать цифровую подпись как созданием нового сообщения для существующей цифровой подписи, так и созданием ложной цифровой подписи для некоторого сообщения. 6. Цифровые подписи должны быть компактны для удобного хранения в запоминающем устройстве. Хэш-функции, описанные в разделе 6.1, и зашифрованные закрытым клю­ чом отправителя, удовлетворяет перечисленным требованиям. Существует несколько подходов к использованию функции цифровой под­ писи. Все они могут быть разделены на две категории: прямые и арбитражные. Прямая и арбитражная цифровые подписи. При использовании прямой цифровой подписи взаимодействуют только сами участники, то есть отправи­ тель и получатель. Предполагается, что получатель знает открытый ключ отпра­ вителя. Цифровая подпись может быть создана шифрованием всего сообщения или его хэш-кода закрытым ключом отправителя. Конфиденциальность может быть обеспечена дальнейшим шифрованием всего сообщения вместе с подписью открытым ключом получателя (асиммет­ ричное шифрование) или совместным секретным ключом (симметричное шиф­ рование). Заметим, что обычно функция подписи выполняется первой, и только после этого выполняется функция конфиденциальности. В случае возникнове­ ния спора некая третья сторона должна просмотреть сообщение и его подпись. Если функция подписи выполняется над зашифрованным сообщением, то для разрешения споров придется хранить сообщение как в незашифрованном виде (для практического использования), так и в зашифрованном (для проверки подписи). Если цифровая подпись выполняется над незашифрованным сооб­ щением, получатель может хранить только сообщение в незашифрованном виде и соответствующую подпись к нему. Все прямые схемы, рассматриваемые далее, имеют общее слабое место. Действенность схемы зависит от безопасности закрытого ключа отправителя. Если отправитель впоследствии не захочет признать факт отправки сообщения, он может утверждать, что закрытый ключ был потерян или украден, и в резуль­ тате кто-то подделал его подпись. Можно применить административное управ­ ление, обеспечивающее безопасность закрытых ключей, для того чтобы хоть в какой-то степени ослабить эти угрозы. Один из возможных способов состоит в требовании в каждую подпись сообщения включать отметку времени (дату и время) и сообщать о скомпрометированных ключах в специальный центр. Другая угроза состоит в том, что закрытый ключ может быть действительно украден у отправителя X в момент времени Т. Нарушитель может затем послать сообщение, подписанное подписью X и помеченное временной меткой, которая меньше или равна Т. Проблемы, связанные с прямой цифровой подписью, могут быть частично решены с помощью арбитра. Существуют различные схемы с применением ар­ битражной подписи. В общем виде арбитражная подпись выполняется сле­ дующим образом. Каждое подписанное сообщение от отправителя X к получа­ телю Y первым делом поступает к арбитру А, который проверяет подпись для данного сообщения. После этого сообщение датируется и посылается к Y с ука­ занием того, что оно было проверено арбитром. Присутствие А решает пробле­ му схем прямой цифровой подписи, при которых X может отказаться от сооб­ щения. В таких схемах арбитр играет исключительно важную роль, и все участни­ ки должны ему доверять. Рассмотрим несколько примеров схем арбитражной цифровой подписи. 38 I. Симметричное шифрование, при котором арбитр может видеть сообщение Обозначим: X - отправитель, Y - получатель, А - арбитр, М - открытое сообщение, Е - алгоритм шифрования, Кха - совместный ключ X и А, KaY - совместный ключ Y и А, K x y - совместный ключ X и Y, Н - функция хэширования, | | - операция конкатенации, Т - метка времени. В этих обозначениях последовательность действий участников цифровой подписи можно описать следующими формулами: Х ^ А : М || Екха(Юх || Н(Щ). (9) Предполагается, что отправитель X и арбитр А используют общий секрет­ ный ключ Кха и что А и Y используют общий секретный ключ Кау. X создаёт со­ общение М и вычисляет его хэш-значение Н(Щ . Затем X передаёт сообщение с добавленной к нему подписью арбитру А. Подпись складывается из идентифи­ катора X и хэш-значения, всё это зашифровано с использованием ключа Кха- Арбитр А дешифрует подпись и проверяет хэш-значение: А Y: ЕКау{Юх \ \М\ \ Екха(Юх | | Н(Щ) \ \ 7). (10) Затем А передает сообщение к У, шифруя его Ка у. Сообщение включает IDX, первоначальное сообщение от X , подпись и отметку времени. Получатель У может дешифровать его для получения сообщения и подписи. Отметка времени инфор­ мирует Y о том, что данное сообщение не устарело и не является повтором. Y мо­ жет сохранить М и подпись к нему. В случае спора У, который утверждает, что по­ лучил сообщение Мот X, посылает следующее сообщение к арбитру А: ЕКау(Юх I I М I I Екха(Юх \ \ Н{Щ) I I 7). (11) Арбитр использует Кау для получения Юх, М и подписи, а затем, используя Кха , может дешифровать подпись и проверить хэш-код. По этой схеме У не может прямо проверить подпись X ; подпись используется исключительно для разрешения споров. У считает сообщение от X аутентифицированным, потому что оно прошло через А. В данном сценарии обе стороны должны иметь высо­ кую степень доверия к А: » X должен доверять А в том, что тот не разгласит Кха и не будет создавать фальшивые подписи вида ErcxJIDx \ I Н(М\); Y должен верить, что А будет посылать Екау{ЮХ | | М \ \ EkxJJDX \ \ H(Mj) | [ Т) только в том случае, если хэш-значение является корректным и подпись была создана X ; к обе стороны должны быть уверены, что А будет честно разрешать спорные вопросы. 39 II. Симметричное шифрование, при котором арбитр не видит сообщение Если арбитр не является такой доверенной стороной, то X должен добиться того, чтобы никто не мог подделать его подпись, a У должен добиться того, что­ бы X не мог отвергнуть свою подпись. Предыдущий сценарий также предполагает, что А имеет возможность чи­ тать сообщения от X к Y и что возможно любое подсматривание. Рассмотрим сценарий, который, как и прежде, использует арбитраж, но при этом ещё га­ рантируется конфиденциальность. В таком случае также предполагается, что X и Y используют общий секретный ключ Kxy- X —> А: Юх | | Екху(Щ \ \ Екха(Юх | | Н{ЕюсАМ]))- (12) X передает А свой идентификатор, сообщение, зашифрованное Kxy, и п од ­ пись. П од п и сь состоит из идентификатора и хэш-значения зашифрованного сообщения, которые зашифрованы с использованием ключа Кха■ А дешифрует подпись и проверяет хэш-значение. В данном случае А работает только с за­ шифрованной версией сообщения, что предотвращает его чтение. Следующий шаг в этой схеме - А после проверки передаёт адресату У А -> Y: ЕКау(Юх \ \ Екху{Щ \ \ Екха(Юх \ \ ЩЕкху(Щ)) | | Т). (13) Арбитр А передает Y всё, что он получил от X плюс отметку времени, шиф­ руя всё с использованием ключа Кау. Хотя арбитр и не может прочитать сообщение, он в состоянии предотвра­ тить подделку любого из участников - X или Y. Остаётся проблема, как и в пер­ вом сценарии, что арбитр может сговориться с отправителем, отрицающим под­ писанное сообщение, или с получателем для подделки подписи отправителя. III. Шифрование открытым ключом, при котором арбитр не видит сообщение Все упомянутые сложности могут быть решены с помощью открытого клю­ ча по следующей схеме Х -+А : Юх | | Еккх(Юх \ \ (Екиу(ЕкМЩ))- (14) В этом случае X осуществляет двойное шифрование сообщения М, сначала своим закрытым ключом KRx, а затем открытым ключом У - KUy. Получается подписанная секретная версия сообщения. Теперь это подписанное сообщение вместе с идентификатором X шифруется KRx и вместе с Юх посылается А. Внутреннее, дважды зашифрованное сообщение недоступно арбитру (и всем, исключая Y). Однако А может дешифровать внешнюю шифрацию, чтобы убе­ диться, что сообщение пришло от X (так как только X имеет KRx). Проверка да­ ёт гарантию, что пара «закрытый/открытый ключ» законна, и тем самым ве­ рифицирует сообщение: А -> У: Еша{Юх | | (ЕкцАЕюьс (Щ) \ \ 1). (15) Затем А передаёт сообщение У, шифруя его KRa- Сообщение включает Юх, дважды зашифрованное сообщение и отметку времени. Эта схема имеет ряд преимуществ по сравнению с предыдущими двумя схемами. Во-первых, в совместном распоряжении сторон до начала обмена данными нет никакой информации, что предотвращает возможность сговора с 40 целью обмана. Во-вторых, некорректные данные не могут быть посланы, даже если KRx скомпрометирован, при условии, что не скомпрометирован KRa. В за­ ключение, содержимое сообщения от X к У неизвестно ни А, ни кому бы то ни было ещё. Стандарты цифровой подписи. Национальный институт стандартов и технологии США (NIST) разработал федеральный стандарт цифровой подписи DSS. Для создания цифровой подписи используется алгоритм DSA (Digital Signature Algorithm). В качестве хэш-алгоритма стандарт предусматривает ис­ пользование алгоритма SHA-1 (Secure Hash Algorithm). DSS первоначально был предложен в 1991 году и пересмотрен в 1993. DSS использует алгоритм, который разрабатывался для использования только в качестве цифровой подписи. В отличие от RSA, его нельзя использо­ вать для шифрования или обмена ключами. Тем не менее, это технология от­ крытого ключа. В российском стандарте ГОСТ 3410, принятом в 1994 году, используется алгоритм, аналогичный алгоритму, реализованному в стандарте DSS. Оба алго­ ритма относятся к семейству алгоритмов ElGamal. В стандарте ГОСТ 3410 используется хэш-функция ГОСТ 3411, которая соз­ даёт хэш-код длиной 256 бит. Это во многом обуславливает требования к выби­ раемым простым числам р и q. Еще раз обратим внимание на отличия DSS и ГОСТ 3410: “ используются разные хэш-функции: в ГОСТ 3410 применяется российский стандарт на хэш-функции ГОСТ 3411, в DSS используется SHA-1, которые имеют разную длину хэш-кода. Отсюда и разные требования на длину простого числа q: в ГОСТ 3410 длина q должна быть от 254 бит до 256 бит, а в DSS длина q должна быть от 159 бит до 160 бит; по-разному вычисляется компонента s подписи. Подписи, созданные с использованием стандартов ГОСТ 3410 или DSS, на­ зываются рандомизированными, так как для одного и того же сообщения с использованием одного и того же закрытого ключа каждый раз будут созда­ ваться разные подписи (г, s), поскольку каждый раз будет использоваться новое значение к. Подписи, созданные с применением алгоритма RSA, называются детерминированными, так как для одного и того же сообщения с использова­ нием одного и того же закрытого ключа каждый раз будет создаваться одна и та же подпись. 2. Практическая часть 41 Одним из основных компонентов организации безопасности информаци­ онной системы является криптозащита и шифрование данных, использующее методы криптографии. Авторы, читая этот курс несколько лет, отказались от изложения серьезной математической базы и математических основ крипто­ графии и ограничились кратким обзором методов симметричного шифрования и методов шифрования с открытым ключом. Но сделали акцент на практиче­ ском использовании и освоении этих методов на примере конкретных про­ граммных продуктов. Далее предлагается выполнить ряд несложных практиче­ ских заданий, иллюстрирующих изложенный в первой части теоретический ма­ териал. Практические задания выполняются с использованием несложных бесплат­ ных программных пакетов, которые любой читатель без труда загрузит по при­ веденным в надлежащем месте ссылкам. 2.1. Основные понятия и применение стеганографии В большинстве случаев в практике обмена и передачи данных и сообщений нужно не столько зашифровать данные, сколько просто скрыть сам факт обме­ на и передачи сообщений. Этой темой полна литература ещё докомпьютерной эпохи. Практика написания текста молоком между строк, с целью дальнейшего проявления и визуализации сообщения, тоже восходит к тем временам. Методы использующие маскировку и сокрытие самого факта наличия сообщения и его передачи изучает стеганография. Что изменилось в стеганографии с появлением компьютеров, и как всё это работает с использованием компьютерных программ и данных? Принципы сте­ ганографии в компьютерную эру подверглись минимальным изменениям и ос­ тались такими же простыми. Файл с данными, факт передачи которого вы хо­ тите скрыть, может быть любым: это может быть текст, изображение, бинар­ ный файл, мультимедийный объект. С другой стороны, эти данные специаль­ ным образом внедряются в так называемый файл-носитель (carrier file). Естест­ венно, файл-носитель внешне должен быть совершенно безобидным и не вызы­ вать никаких подозрений у хакеров, нацеленных вас атаковать, - это реклам­ ная картинка, текст песенки-шлягера, нейтральные фотографии цветов и до­ машних животных. Второе требование к файлу-носителю - он должен быть «рыхлым», то есть содержать достаточное количество избыточных данных. Такие файлы обычно очень хорошо упаковываются архиваторами. Форматы таких файлов извест­ ны - это * . bmp, * . t x t , *. html, * .pdf. Именно такие файлы используются в качестве файлов-носителей. Программа, осуществляющая все эти функции, подходит для нашей задачи. Такие программы обычно небольшие и имеются в свободном доступе в Интернете. Стоит вам набрать в любой поисковой системе «program steganography» и вы получите список из сотен названий. Выполним некоторые практические задания. Используем программу wbStego4, которая написана программистом Werner Bailer и загружена с его web-странички http://wbstego.wbailer.com/. В дистрибутивном пакете ав­ тор любезно предоставил регистрационное имя и регистрационный ключ. 2.1.1. Внедрение данных в файл-носитель программой wbStego4 Работа с программой состоит из ряда этапов. Первый этап. На первом этапе запускаем программу и видим интерак­ тивное окно (рис. 5). Программа информирует о своих возможностях и предла ■ 42 гает сделать выбор режима работы. По умолчанию предлагается пошаговый режим. Программа сообщает основные сведения: кодирование/декодирование, режимы работы, типы файлов-носителей. Help ............... . ...,................ SI " The wbStego4 Wizard will guide you step by step through coding/decoding. With wbStegc4 you are able to hide any files in a carrier file (‘.BMP. *TXH * HTM. *.PDF) without changing these carrier files optically. If you are familiar with the way the program works you can use the Flowchart-Mode to make all settings in an ovetview flowchart. Settings Flowchart-Mode Щ ШМт ■ • j <*4% i - , /9Ж Ш\&> v ' ІгШ Щу Exit Continue » Рис. 5. Первый шаг работы с программой wbStego4 Для продвинутых пользователей имеется другой, альтернативный режим. Выбор режима работы и переход к другому стилю интерфейса осуществляется нажатием на Flowchart-Mode (режим блок-схемы). При щелчке по кнопке Help программа предлагает некоторые сведения из стеганографии и справку по интерфейсу управления программой. Упражнение для самостоятельной работы 1. Нажмите кнопку Help и просмотрите сведения, которые хочет сообщить вам программа. Упражнение для самостоятельной работы 2. Нажмите кнопку Flowchart-Mode и перейдите в этот режим. Проделайте приведенное ниже уп­ ражнение в режиме «Блок-схема». Упражнение для самостоятельной работы 3. Нажмите кнопку Setting и просмотрите, доступ к каким настройкам разрешает программа wbStego4. Если вы передумали, хотите «откатить назад» и выйти из программы, для этого нажимаем Exit. Переход к следующему этапу - кнопка Continue. Второй этап. На втором этапе делаем выбор: отправлять данные (вне­ дрять - encode) или получать (извлекать - decode) (рис. 6). Для извлечения данных из файла-носителя выставляем флажок у команды Decode. Если требуется внедрить туда данные, то выставляем флажок у коман­ ды Encode. Выбираем Encode и нажимаем кнопку Continue. Третий этап. Программа просит указать, где расположены ваши конфи­ денциальные данные. На этом этапе вы долзкны выбрать и указать полный путь в файловой сис­ теме для файла с вашими конфиденциальными данными, которые вы хотите скрыть. На рис. 7 указан файл secret. txt. Четвёртый этап. Программа просит указать файл-носитель (рис. 8). Во- первых, из списка File Туре, приведенного в диалоговом окне, необходимо указать тип файла-носителя (у нас выделен тип * .bmp), если у пользователя воз­ никли затруднения, можно попытаться активировать поиск файла-носителя с помощью самой программы, нажимая Find carrier file. 43 . Чркя. йЯМщ'ШЛе idelp A . . . .< ; -Г JSS S- -і ‘-4 і Settings » *i •ж»ж. J l , , 1 Select. ■*. i* i'.v'-" if you wont to hide data in a comer file. . .• i .■ ' if you want to write data hidden with wbStego4 into a file again. ЩтШж Ш0Ш, Щ-зШ ш ш \ іЬ-' . flowchart-Mode V : І ■ ■ да|ж& «Back Continue » Рис. 6. Выбор режима работы программы wbStego4 Рис. 7. Указание пути к файлу с конфиденциальными данными : i a n pЯ р ! ШМШШHelp - j |G:'Anti Win\persona\persona.bmp . . j. • • :'£&■'<). ’ I File Type; Mm Find carrier file... i --------- - ------ Settings Elowchart- Mode І Rain text file (*.TXT. *ASC) - standard method Э Rain text file-compatible method. HTML or XML file Э Adobe Acrobat filef PDF) « gack Continue » Рис. 8. Указание пути к файлу-носителю 44 Во-вторых, необходимо учесть, что размеры файла-носителя и данных, ко­ торые вы хотели бы туда внедрить, коррелируют. Файл-носитель, конечно, «рыхлый», но не «резиновый» и естественное ограничение - это его собственный размер. Данные, превосходящие по размеру файл-носитель, внедрить туда ни­ как нельзя. Речь может идти только о какой-то части, о какой-то доле размера файла-носителя, обычно, не превышающей 50 %. Точных рецептов и точных аналитических формул для расчёта этого параметра нет. Общее правило такое: для сокрытия большого массива конфиденциальных данных нужен соответст­ вующего большего размера файл-носитель. В-третьих, обсуждаемый параметр зависит от типа данных: Наиболее «рых­ лые» - это чёрно-белые картинки формата * .bmp, минимум избыточных данных в формате * . p d f . В-четвёртых, проверку обсуждаемого параметра осуществля­ ет сама программа и вы можете увидеть сообщение, показанное на рис. 9. *1 Not enough space in carrier ffie. ! 4 -, >* f “* _ S' *v- - Рис. 9. Предупреждающее сообщение программы wbStego4 Сообщение означает, что программа wbStego4 сама произвела проверку и определила, что ваши данные предназначенные для сокрытия, не поместятся в файл-носитель. Для исправления необходимо вернуться в поле Select the carrier file, нажать кнопку " и выбрать файл-носитель подходящего раз­ мера. Можно также вернуться к шагу 3, нажимая кнопку Back (см. рис. 8.) и подобрать конфиденциальные данные меньшего размера. Пятый этап. Следует заметить, что метод стеганографии не предполагает никакого кодирования данных и то, что мы видим на рис. 10 - это дополни­ тельная функция пакета wbStego4, реализованная разработчиком- программистом. settings . , * >' •Settings «B a c k I Continue» Рис. 12. Указание пути к модифицированному файлу-носителю с внедрёнными в него данными 46 Мы переименовали и указали полный путь в файловой системе для файла- носителя, куда программа внедрит ваши конфиденциальные данные. Переиме­ нованный файл-носитель - это personaHide .bmp (рис. 15, б). На этом этапе программа предоставляет ещё одну возможность - распреде­ лять внедрённые данные в выходной файл равномерно (D is tr ib u te data even ly in output f i l e ) . Если вы уверены в структуре распределения данных этого файла - отметьте флажок, но лучше положиться на программу, она разбе­ рётся, как распределить внедрённые данные в файле-носителе. Для продолже­ ния нажимает кнопку Continue. Седьмой этап. На этом итоговом этапе программа завершила подготови­ тельную работу: собрала все сведения и приготовила все данные. Итоговые дан­ ные выводятся пользователю в специальном диалоговом окне (рис. 13). Окно содержит пользовательские установки (current settin g ): * файл-носитель (c a r r ie r f i l e ) persona.bmp; * шифруемые данные (encode data) s e c re t .tx t ; * выходной файл (manipulated f i l e ) personaHide.bmp; а метод кодирования (encryption method) B low fish . Elowchart- Mode Continue » Current settings: ■ : Carrier file: personenbmp Encoded date: ' : . V $ secret.txt f • , M anipulated file: personaHide.bmp | Encryption method: Blowfish Select "Continue" to begin with the selected process Л.Сі-Г>vH - - ~ v ■ ~ ■■ ■ : 'V';- « Sack Рис. 13. Завершение этапа работы программы wbStego4 и краткий отчёт о завершённом кодировании При необходимости внесения изменений используется кнопка Back для «от­ ката» на предыдущий этап. Для продолжения работы нажимаем кнопку Continue. После нажатия Continue программа обработает все данные и в случае ус­ пешного завершения процесса подтвердит это сообщением, представленным на рис. 14. На этом этапе работа с программой завершена. Программа информи­ рует, что процесс шифрования данных и их внедрение в файл-носитель успеш­ но завершён. В Encoding process finished. Рис. 14. Завершающее сообщение программы wbStego4 Восьмой этап. На этом этапе проводится мониторинг файла-носителя и его визуальный контроль. Парадигма метода стеганографии заключается в скрытии факта внедрения данных в файл-носитель. На рис. 15 приведены два изображения файла- носителя: а) до внедрения данных; б) после внедрения. Отличия вы не найдёте, более того, размеры у этих файлов одинаковы. т а) persona.bmp б) personaHide.bmp Рис. 15. Фрагмент окна программы просмотрщика ACDSee с файлом-носителем: а) пустой файл-носитель (persona.bmp); б) файл-носитель с внедрёнными данными (personaHide.bmp) 2.1.2. Извлечение данных нз файла носителя программой wbStego4 Для решения обратной задачи - извлечения данных из файла-носителя - последовательно выполняем несколько этапов работы. Первый этап. Запускаем программу (см. рис. 5) и нажимаем кнопку Continue. Второй этап. Для извлечения данных из файла-носителя выставляем фла­ жок у команды Decode (рис. 16) и нажимаем кнопку Continue. if you went to hide data in a’V • :'У - ■ . want to write data hii Mode Encode or Decode? Рис. 16. Выбор режима работы программы wbStego4 для извлечения данных в поле вводаТретий этап. На этом этапе, воспользовавшись кнопкой данных указываем полный путь к файлу-носителю (рис. 17) и из списка F ile Туре выбираем тип файла-носителя. Нажимаем кнопку Continue. 48 |G:VAnti.Win\persona\personaHide.bmp ..... Т. File Type:/ - .< * - . •• - Rain text file (*.TXT. *.ASC) - standard method Plain text file- compatible method, HTML or XML file Adobe Acrobat file f.PDF) «B a c k Continue» wbStecjfo4.2 Select Manipulated File Step 0 % Select the carrier file from which you want to extract data. Рис. 17. Указание пути к файлу-носителю Четвёртый этап. На этом этапе программа просит ввести пароль (рис. 18). Выполняем ввод пароля и нажимаем кнопку Continue. Please enter the password used for encrypting the encoded data. If there was no encryption used before encoding, leave the inputfield empty. Settings 0oWch art-Mode wt>5 t e q o 4 .2 liter Passw ord Рис. 18. Указание пароля для начала процесса декодирования Пятый этап. На этом этапе программа предлагает присвоить имя файлу конфиденциальных данных, которые она извлечёт из файла-носителя (рис. 19). Рекомендуется дать файлу данных другое имя, отличающееся от первоначаль­ ного. Нажимаем кнопку Continue. IZJecTGS этап. Программа завершила подготовительный этап, собрала всс сведения и приготовила все данные. Эти итоговые данные она выводит пользо­ вателю в специальном диалоговом окне (рис. 20). Окно содержит пользователь­ ские установки (current setting): * выходной файл (manipulated file) personaHide.bmp; * извлечённый файл (result) secret2.txt; « метод кодирования (encryption method) automatic decoding. 49 Ш *1 ■ : Ф . гІР ■ ■ Ж”- Щ ' ’^ О f ' . I t о : Щ Р Ж : л # ■ф ' I jG:\Anti.Win\persona\secret2.txt Kansas. .Л-гжи ; '> ^::£S I ІЙ® Help .' ■ Settings ; * asp ■ ■- .5ф. S ' «55 - -Mode __ ; • f : -■МШ* ;-#v Ж•^3*5-' - Ш?Ы- ■ /^Syfe: ■ щр /Ж; :№ -пм ■ «fiack • Г ^ | . _ ШЪР .■life n ; Vpfe -'VrS ;■ ,Щ| 'Г *> • -;V»^ ■■MS Continue » _________ Рис. 19. Указание пути к файлу с конфиденциальными данными Щ-f !j I I ■ if Ж - .— Settings Rowchart-Mode Si , . s Щ .- ■ 0b. _ Select "Continue" to begin with the selected process. : Ш — JSrt. - Рис. 20. Завершение этапа работы программы wbStego4 и краткий отчёт о завершённом декодировании Программа автоматически определяет метод шифрования (automatic decoding) и пользователь избавлен от необходимости заполнять это вручную. Обычно пользователь-получатель не знает метода шифрования, который упот­ ребил пользователь-отправитель. Ему достаточно знать пароль. Нажав Continue, завершаем работу программы и получаем завершающее сообщение (рис. 21): Decoding process finished (процесс декодирования за­ вершён). V . х!тЯР* г: Decoding process finished. OK Рис. 21. Завершающее сообщение программы wbStego4 об успешном извлечении данных и декодировании 50 Упражнение для самостоятельной работы 4. Сравните содержимое фай­ лов s e c r e t . tx t и secret2 . tx t. В каком случае может возникнуть несовпадение? 2.2. Вычисление хэш-функции по алгоритму MD5 2.2.1. Использование хэш-фунхцни для контроля целостности данных О важности и значимости функции хэширования достаточно подробно изло­ жено в разделе 1.6.6 этого пособия. Здесь в практической части мы рассмотрим, как можно реализовать идею использования хэш-функции для контроля целост­ ности ваших данных. Для реализации этой идеи рассмотрим решение нескольких примеров с по­ мощью несложной программы MD5summer, вычисляющей хэш-функцию по ал­ горитму MD5. Эта программа (h t t p ://www.md5summer.org/) распространяется бесплатно и не требует инсталляции, поместив её в отдельный каталог, можно приступать к работе. Допустим, Persona нашёл мультимедийные данные на одном из ftp - серверов о своих друзьях Coach и Actor. Он загрузил эти данные на свой ком­ пьютер и теперь озабочен вопросом, не произошёл ли какой-либо сбой при пе­ редаче по компьютерным сетям таких больших файлов. Этика предоставления f t p -сервиса клиентам требует, чтобы разместивший свои данные (файлы) на f t p -сервере снабжал их контрольными значениями хэш-функций. Это даёт возможность пользователям при загрузке файлов проверить их целостность. Продемонстрируем эту историю на простейших примерах на локальном компь­ ютере. 2.2.2. Создание файла с хэш-функцией, на основе данных произвольной длины После запуска MD5summer программа требует определить каталог с данными и тип действия (рис. 22): создание суммы MD5 или её проверка. MbSsumrm Пожалуйста выберите корневую папку: Я5 Рабочий стол а Н ур Библиотеки Рис. 22. Определение рабочего каталога программы MD5summer 51 Для начала мы хотим создать хэш-функцию. Нажав кнопку «Создать сум­ му», переходим к диалоговому окну (рис. 23), в котором приведен список папок с песнями и кинофильмами, которые загрузил Persona. Данная программа мо­ жет вычислить значение хэш-функции для произвольного количества файлов в отмеченном каталоге. Выберем сначала один, к примеру, persona. avi . Ш Создайте список файлсз.для суммирования — ■ ^Ч ж в й э я н і Папки: Количество пунктов: 0 ife acior.avi : ^ actorDuetmp3 coach.avi . coachSolo.mp3 1 Ш persona.avi 1 personaDuel.mp3 I Рис. 23. Окно выбора данных программы MD5summer Выбрав файл persona.avi и нажав кнопку «Добавить» видим появление ссылки на этот файл в правом списке (рис. 24). Л Создайте список файловдля сумм ~ j —ИЮйвязя Папки: Number of Items: 1 j ?5 actor.avi ; -x-i actorDuet.mp3 coach avi coachSolo.mp3 E :\Ал . W i n\m о vi e s\p e rs о n a. avi Выбрать все I Добавить еще OK Отмена Рис. 24. Указание файлов с данными для вычисления хэш-суммы Выделив этот файл в правом списке и подтвердив этот выбор кнопкой ок, открываем окно, представленное на рис. 25. В окне представлена информация об имени файла (слева) и значение хэш-функции в виде 1б-ричного 32- разрядн о го числа (справа). Один разряд такого числа состоит из четырёх бит, значит, полное значение хэш-функции составляет 32 х 4 = 128 бит, в полном соответствии с алгоритмом MD5. В левом нижнем углу указано время, которое программа затратила на вычисление хэш-функции. В данном случае на файл persona.avi (94 Мб) затрачена 1 секунда. Упражнение для самостоятельной работы 5. Создайте для каждого мультимедийного файла в каталоге Anti.Win с помощью программы MDSsummer файл с хэш-суммой, с расширением *.md5. 52 I F i l e __________ і|(уІpersona - s v i КлючО Остановлено О ДА / Выполнено 0 Обработка 9 Ошибка (0 колл.) 1 Sec ІНВЗ Hash 2 ■cbb7S0e45dS€S4cS73€€f el?£€4daSb Batch (1 of 1): ~ ~ Файл: Сведения о Файлах Путь: E:\Anti.Win\movies\ Имя: persona.avi Размер: 94 557.10 Kb Рис. 25. Рабочее окно программы MD5summer Упражнение для самостоятельной работы б. Доступными вам средст­ вами найдите 128-битовое значение хэш-функции в файле persona.md5. Про­ верьте, соответствует ли это значение приведенному на копии экрана (см. рис. 25) выше. Если 128 бит перевести в байты, то получится 16 байт, по­ чему тогда все размеры файлов (рис. 26) с расширением *.md5 значительно превышают этот размер? ■ ■ ■ — ’ ■■•■ -mm дщ Администратор: C:\WindowsS5ystem32\cmd.exe т- ■ ■ - Содержимое папки E:\Anti.W in\m ovies 02.02.; 02.02.; ,03.02.; 29.06.; 04.07.; 02.03. 116 .08 .; І0 8 .1 2 .; 20.03.; 20.03.; 20.03.; 20.03.; 20.03.; 20.03.; 21:44 21:44 03:49 00:00 00:00 13:10 19:52 05 :34 22:50 22:54 22:54 22:54 22:55 22:55 12 файл о б 2 папок 7 724 3 508 6 319 96 826 45 286 12 631 177 4 956 261 personaD uet.mp3 353 coachSolо . mp3 926 ac to rD u et.mp3 468 person a .av i 792 coach .av i 166 a c to r .a v i 149 persona.md5 147 actor.md5 151 actorDuet.md5 147 coach.ntdS 151 coachSolo.mdS 153 personaDuet. Td5 797 864 байт 725 248 байт свободно Рис. 26. Копия экрана со списком файлов рабочего каталога программы MD5summer 2=2=3= Проверка «елостноетж данных программой MDSsummer Программа MD5summer позволяет проверить, не нарушена ли целостность данных в файлах, для которых предварительно была рассчитана хэш-сумма по алгоритму MD5. Убедимся в этом. Теперь, запустив программу и отыскав ката­ лог с данными, нажимаем кнопку «Проверка суммы» (рис. 27). В окне появляет­ ся список всех файлов с контрольными суммами *.md5. Необходимо указать, какую сумму мы хотим проверить. Для данного при­ мера это persona.md5. Нажимаем кнопку «Открыть» и программа производит проверку. Получаем такой же экран, как на рис. 25. Слева от имени файла появится зелёный флажок (кружочек), что говорит об успешном завершении проверки. 53 ■sum файл Недавние места Лапка: j j j movies Рабочий стол Имя ;pgpe -с v e m .tx t Cannot open secret keyring ’’s e c r in g .sk r” Cannot open pub lic keyring "pubrin g .pk r" Кои need a passphrase to encrypt the f i l e Enter pass phrase: Enter sane passphrase again Enter pass phrase: Creating output f i l e vern.pgp 1: J i . ... . ............ „ ....... .;........... ... _ i A Рис. 29. Сообщения, выводимые на терминал программой PGP в процессе шифрования файла Хочется отметить, что все команды программы, разбираемые здесь имеют полезный ключ -о, позволяющий присвоить выходному файлу любое пользова­ тельское имя, например: рдре -с file_nam e -о output file_n am e. В противном случае по умолчанию пакет к имеющемуся имени файла до­ бавляет своё расширение *. рдр как мы видим на копии экрана. Деиодирование зашифрованного файла В окне терминала выполняем команду (рис. 30): pgpv fiie_nam e -о ou tpu t_file_nam e. Для того чтобы сохранить существующий файл vem.txt, имя выходного файла изменено на v e rn l. tx t . Естественно, что программа осуществит деко­ дирование только в том случае, если введен соответствующий правильный па­ роль. 56 S' C-\WMX>WS\sy^tem3 3 \cimiг£ 3 щ р : ;• ІДІ*І G :\ ftn ti.W in\PG P5 >pgpw v e rn .p g p -o v e r n l . t x t Cannot open s e c r e t k e y r in g " s e c r in g .s k r * ’ Cannot open p u b l ic k e y r in g " p u b r in g .p k r " Message i s e n c r y p te d , i n t e r pass p h ra s e : Opening f i l e " u e r n l . t x t " ty p e b in a r y . .±j Рис. 30. Сообщения, выводимые на терминал программой PGP при декодировании зашифрованного файла Упражнение д ш самостоятельной работы 8. Сравните размеры и со­ держимое файлов v e rn . tx t и v e r n l . tx t и сделайте соответствующие выводы. 2.3.2. Создание нары жшчей для осуществления метода асимметричного шифрования Для создания пары ключей в окно терминала вводится команда pgpk -д . После этого программа в интерактивном режиме вступает в диалог с поль­ зователем и требует от него правильных ответов и дополнительных действий (рис. 31). Д Д Д Д ^ £ ш . Л. ; ■jDj xj G :\ fln t i.WinSPGP5 >pgpk - g Choose the type o f your p u b lic k «y : i> D SS/D iffie-H e ilm an - New a lgo r ith m f o r 5 . І < d e fa u lt ) 2> RSft Choose 1 o r 2 ; _ ,4 Рис. 31. Запрос программы алгоритма кодирования Требуется выбрать алгоритм асимметричного шифрования. Программа предлагает нам два варианта: алгоритм DSS/Диффи-Хеллмана и - RSA. Алгоритм Диффи-Хеллмана используется только для кодированной передачи ключа сессии симметричного шифрования и не пригоден для кодирования обычных сообще­ ний, поэтому выбираем RSA, для чего набираем цифру 2 (рис. 32). - I Q ! xj ~“ “ ~3G:\ftnti.W inSPGP5 >pgpk - g Choose сhe type o f your p u b lic key : i> D S S / D iffie—He liman — New a lgo r ith m f o r 5 . 0 ( d e fa u l t ) 2> BSfl Choose 1 o r 2 : 2 P ick jo u r p u b lic / p r iv a te k e y p a ir key s i z e : 1 > 7 6 8 b i t s — Commercial g ra d e , p rob ab ly not c u r r e n t ly b reakab le 2 > 1 0 2 4 b i t s — H igh com m ercial g ra d e , secu re f o r many years 3 > 2(348 b i t s — ’ ’M i l i t a r y ” g ra d e , secu re f o r the fo r s e e a b le fu tu re Choose i , 2 or 3 , o r e n te r d e s ir e d number o f b i t s <7 6 ® - 2 0 4 8 >: Рис. 32, Запрос размера ключа 57 Теперь программа спрашивает, какой длины ключ шифрования мы хотели бы выбрать? От длины ключа зависит криптостойкость зашифрованных дан­ ных, но с другой стороны шифрование с длинными ключами происходит мед­ леннее. Для мощного компьютера выбираем третий вариант (рис, 33). с v С :\W INDOWS\system32\Rii»dLejce - pgpk -g G :\Anti.WinSPGP5>pgpk -g Cannot open con figuration f i l e pgp-cfg Choose the type o f your public key: 1) DSS/Diffie-Heilman - New algorithm fo r Б.0 768 b i t s — Commercial grade, probably not cu rren tly breakable 2> І024 b it s — High commercial grade, secure fo r many years 3) 2Ш48 b i t s - ’'M ilita ry ” grads, secure fo r the fo rseeah le fu tu re Choose 1, 2 or 3, or enter desired number o f b its 4768 - 2848): 3 3 ifou need a user ID fo r your public key. The desired form fo r th is user ID is your FULL nane, fo llow ed by your E-m ail address enclosed in : 365 l/ou need a pass phrase to p ro tec t your p r iv a te key. i/our pass phrase can be any sentence or phrase and may have many i>?ords, spaces, punctuation, or any other p r in ta b le characters. Enter pass phrase: _ ”~ 3 <1 i Рис, 35. Запрос на ввод закрытого пароля для private-ключа ^dSjxj tfou need a pass phrase to p ro tec t your p r iv a te key. ifour pass phrase can be any sentence o r phrase and may have many words, spaces, punctuation, or any other p r in ta b le ch aracters . Enter pass phrase: Enter aga in , f o r con firm a tion : Enter pass phrase: C o lle c t in g randomness f o r k e y . . . Warning! Random device is something other than /deu/random! fh is ИЙУ be a s e cu r ity h o le . He need to generate І534 random b i t s . This is done by measuring the time in te r v a ls between your k eystrokes . P lease en ter some random te on your keyboard u n t i l you hear the beep: 1534. Рис. 36. Запрос активных действий пользователя для создания случайной последовательности После информации об успешном создании ключей, программа вас с этим поздравляет, выходит из интерактивного режима, и вы вновь оказываетесь в режиме командной строки (рис. 37). С-\ WIMDOWS\system32\ondL«xe:' Ш ; -------------------------------g We need to generate 1534 random b it s . This is done by measuring the'™' time in te rv a ls between your keystrokes. P lease en ter some random te on your keyboard u n t i l you hear the beep: * -Enough, thank you. i Keypair c rea ted s u cc es s fu lly . G:4Anti.WinSPGP5>_ «І Рис. 37. Выведенное на терминал сообщение программы PGP об успешном создании пары ключей Упражнение для самостоятельной работы 9. Проверьте доступными вам средствами, появились ли в текущем каталоге файлы пары ключей pubring.pkr и secring.skr? Упражнение для самостоятельной работы 10. Как вы думаете, зачем программа создала в текущем каталоге ещё пару файлов - pubring.baк и 59 secring.bak - причём нулевой длины? Когда бы эти файлы были не нулевой длины? Сделайте выводы. 2.3.3. Создание зашифрованного сообщения с помощью открытого ключа Теперь всё готово для кодирования сообщений методом асимметричного шифрования по алгоритму RSA. Закодируем файл vern.txt. Для этого в ко­ мандной строке набираем (рис. 38): рдре ID file jiame -о output_file_name. 'Й М Й Ш І G:Sftnti.Win\PGP5>pgpe - r coach@pocbta.net u e rn .tx t -o uern l.pyp Cannot open con figu ra t ion f i l e pgp -c fg 2Й48 b i t s . Key ID 4DB62227* Created 2010-03-18 "coachOpochta.net" Cheating output f i l e uern l.pgp Рис. 38. Сообщение программы PGP об успеш ном кодировании данных Все опции в командной строке вам уже знакомы за исключением ID - это тот самый открытый идентификатор вашего корреспондента, например, адрес его электронной почты. Свой публичный ключ pubring.pkr он уже выложил на почтовый сервер или прислал вам непосредственно и вы его заблаговременно положили в текущий каталог. Зашифрованный файл vem l.pgp создан, можете его посылать своему кор­ респонденту по открытым сетям, пусть хакеры поломают голову над его крип­ тоанализом. Только ваш корреспондент, имея private-ключ secr in g .sk r, может декодировать и прочитать сообщение. Здесь следует отметить ещё одну полезную опцию программы. На очеред­ ной копии экрана показана опция -а. Это позволяет провести шифрование, используя только первую половину кодовой таблицы A S C II, то есть используя не весь байт (восемь бит), а только младшие разряды байта - 7-битовую кодиров­ ку. Шифрованное сообщение будет состоять только из печатываемых символов. За такое «удобство» приходится расплачиваться более длинным (на 20-30 %) зашифрованным сообщением. Во-вторых, вы обезопасите себя, если ваше за­ шифрованное сообщение v e rn la . pgp «забредёт» в старые дремучие компью­ терные сети, поддерживающие только 7 младших бит и усекающие старший 8-й бит, то целостность сообщения нарушена не будет (рис. 39). C:\WINDOW S\sys»«ra324crad.e»e ш и т ш м т ш ш ш т ш т S :\ ftn ti.WinSPGP5>pgpe - г coach0pochta.net u e rn .tx t -а -о vern la .p gp Cannot open con figu ra tion f i l e p gp .c fg 2(048 b i t s , K e y IB 4DB62227, Created 2Ш1Ш-ШЗ-18 "coachPpochta.net” C reating output f i l e uernla.pgp <1 1 Рис. 39. Сообщение программы PGP об успешном кодировании данных первой половиной стандартной кодовой таблицы 60 Упражнение ддя самостоятельной работы 11. Сравните размеры полу­ ченных зашифрованных файлов: v e rn l.p gp и vern la .pgp . Доступными вам средствами просмотрите файлы v e rn l.p gp и vern la .pgp . Обратите внимание, что в файле v e r n l . pgp присутствуют все 256 символов, из всего диапазона ко­ довой таблицы (00 - FFhex), в то время как в файле vern la .pgp только первые 128 символов (00 - 7 9hex), Сделайте выводы. 2.3.4. Декодирование принятого зашифрованного сообщения с помощью private-ключа Ваш корреспондент получил зашифрованное сообщение. Для того, чтобы его прочитать, корреспондент должен декодировать (расшифровать) сообще­ ние, используя свой private-ключ. Для этого в командной строке терминала он должен набрать pgpv file name -о output_file_name. Теперь программа, прежде чем приступить к процессу декодирования, в интерактивном режиме попросит вас ввести пароль. Будьте аккуратны, имейте в виду, при вводе пароля эта программа никак не реагирует на ваши нажатия клавиш: не подает звуковых сигналов, курсор не перемещается, никаких сим­ волов-звёздочек не появляется. Завершение ввода пароля подтверждается кла­ вишей [E n te r ]. Если вы сделали всё правильно, программа сообщит, что пароль правиль­ ный (Pass phrase is good) и декодирует зашифрованный файл (рис. 40). С. \W{NDOWS\systen*324crad rate ш ш Аfi:\flnti.WinSPGP5>pgpv vern l.pgp -о vern4 .tx t Cannot open con figu ration f i l e p gp .c fg Message is encrypted. Meed a pass phrase to decrypt p rivate key: ;; 2І40 b i t s . Key ID 4DB62227, Created 2010-03-18 I "coach0pochta.net” {Enter pass ph rase : Pass phrase is good. ppening f i l e "v e rn 4 .tx t " type b inary . ■4% Рис. 40. Запрос пароля и сообщение программы PGP об успешном декодировании данных В этой операции программа будет использовать private-ключ и спросит па­ роль (видно на копии экрана). В случае совпадения паролей будет проведено декодирование файла v e r n l . txt в файл vern4 . txt. Декодирование 7-битного файла vernla. txt в файл vern4a.txt происхо­ дит аналогично, с теми же опциями командной строки, не надо указывать, что в сЬайле поисутствуют символы только пеовой половины кодовой таблипы. птэо-X А. ъ/ JL ’ ' * ' JL грамма сама в этом разберётся. Это показано на следующей копии экрана (рис. 41). Упражнение ддя самостоятельной работы 12. Сравните размеры и со­ держимое файлов vern.txt, vern4.txt и vern4a.txt. Одинаковое ли у них со­ держимое? Нарушена ли целостность файла vern.txt при кодирова­ нии/декодировании алгоритмом RSA? Сделайте соответствующие выводы. 61 ел C:\WINDOWSNsystem324cifrf.e)te G: Sftntі . WinSPGPS>pgpv vern ia .p gp -o vern 4a .tx t Cannot open con figu ra tion f i l e p gp .c fg Message is encrypted. Meed a pass phrase to decrypt p r iv a te hey: 2048 b i t s . Key ID 4DB62227, Created 2Ш1Ш-03-18 "coachPpochta .net" Enter pass phrase: Pass phrase is good. Opening f i l e "v e rn 4 a .tx t" type b in ary . A Рис. 41. Запрос пароля и сообщение программы PGP об успешном декодировании данных, использующих только первую половину кодовой таблицы 2.3.5. Кодирование и декодирование сообщения с помощью произвольного жлюта Вполне нормальна и типична ситуация, когда пакетом PGP и алгоритмом RSA захочет воспользоваться другой пользователь этого компьютера и создать свою пару ключей. Но программа по умолчанию создаст пару pubri.ng.pkr и s e c r in g . skr и затрёт существующие ваши ключи. Для решения этой проблемы и однозначной идентификации, обычно, каждый пользователь переименовыва­ ет свою пару ключей в соответствии со своими вкусами. В командной строке пакету PGP необходимо указать, ключ какого пользователя вы хотите употре­ бить. Новые ключи необходимо зафиксировать в файле pgp.cfg. Если этого не сделать, программа будет сообщать об отсутствии этого файла, что проиллюст­ рировано на рис. 42. Это не является ошибкой и не сказывается на работоспо­ собности пакета, просто вы должны теперь каждый раз указывать эти пара­ метры в командной строке. i .c <: . s z , r r r . ^ G: S f t n t i . U in S P G P S > p g p e - r p e r s o n a b a c t o r - p o c h t a . b y — p u b r i n g ^ p e r s o n a . p k r w e r n . t x t - o w e r n S .p g p C an n o t open c o n f i g u r a t i o n f i l e p g p . c f g C an n o t o p en s e c r e t k e y r in g " s e c r i n g . s k r " 204S b i t s , K ey ID 5SB2284B , C r e a t e d 2ШІ0-Ш З - І8 " p e r s o n a 0a c t o r . p o c h t a . b y " C r e a t in g o u t p u t f i l e v e r n 5 .p g p S ftn t i .W in S P G P 5 > "3 S: Рис. 42. Кодирование данных программой PGP произвольным публичным ключом пользователя Это делается следующим образом. В командной строке терминала набираем: рдре - г ID — pubring=persona.pkr f i l e name -о ou tpu t_ file _n am e . Идентификатор (ID) должен быть того пользователя, чей ключ вы исполь­ зуете, того, кому вы намереваетесь отправить сообщение, иначе получите от программы сообщение об ошибке. В данном примере пользователю Persona со­ ответствует идентификатор его электронной почты person a0 actor.pochta .by и пара ключей persona . pkr, persona . skr. На приведенной копии экрана (см. рис. 42) видна работа программы и её со­ общения. 62 Если ключи person a .p k r, p erson a .sk r находятся не в текущем каталоге, то в соответствующей опции командной строки — pubring= . . указываем пол­ ный путь к файлу: — p u b rin g= fu ll_p a th \p e rson a .p k r . Аналогичная ситуация, если пользователь Persona получил закодированное сообщение и хочет его расшифровать, употребив свой не стандартно имено­ ванный private-ключ, тогда в командной строке он набирает pgpv — secrin g=p erson a . skr f i.ie_name -о output file_nam e. Работа программы проиллюстрирована на рис. 43. G:Sftnti.Win\PGP5>pgpw — secring=persona.skr vern5.pgp -о vern5.txt Cannot open con figuration f i l e pgp-cfg Cannot open public keyring ''pubring.pkr" Message is encrypted. Heed a pass phrase to decrypt private key: 2048 b i t s . Key IB 56B2284B, Created 2Ш1Ш-ШЗ-18 "personaSactor.pochta.by” Enter pass phrase: Pass phrase is good. (Opening f i l e "u e m 5 .tx t" type b inary . Рис. 43. Запрос пароля и декодирование данных программой PGP произвольным private-ключом пользователя 2.3.6. Аутентификация сообщения. Создание простои цифровой подписи в пакете PGP Весьма важной является задача опознания, аутентификация пришедшего электронного сообщения, то есть, действительно ли пришедшее сообщение при­ надлежит тому лицу, подпись которого стоит под электронным сообщением? Здесь проблема конфиденциальности уходит на второй план, а на первый план выступает проблема целостности, то есть, не «лазил» ли кто в документ и не из­ менил ли его содержимое, и не приписал ли «лишний нолик» в цифре вашего платежа? Описываемый пакет PGP предлагает несколько вариантов. Разберём их. Persona решил разослать своим корреспондентам важное сообщение, но шиф­ рует сообщение private-ключом?! Наверно ошибся, переволновался и напутал! Нет, правильно. Алгоритм RSA работает в обе стороны, и кодировать сообщение можно private-ключом. Но тогда каждый имеющий публичный ключ Persona может легко расшифровать сообщение. И где же тут секретность, конфиденци­ альность? А она тут не нужна, гораздо важнее то, что декодировав сообщение Persona ключом p erson a .pk r вы убедились, что ключ подошёл, тем самым ре­ шаются две важнейшие вещи: • это сообщение действительно от Persona (иначе этим ключом какое-либо иное сообщение декодировать бы не удалось), тем самым осуществлена, ау­ тентификация сообщения Persona; * целостность сообщения в пути следования не нарушена, для этого зло­ умышленник должен бы был, во-первых, расшифровать сообщение (это он может сделать, имея persona.pkr - публичный ключ Persona), во-вторых, изменить данные и, в-третьих, снова их зашифровать (подписать) - но это невозможно, поскольку private-ключ вместе с паролем находится только у Persona. ШЩ 1 І 2.3.7. Создание цифровой подписи и сообщения единым фаёмм В командной строке терминала набираем pgps -u ID — secring=persona.skr file_name -о output_file_name. Эта команда кодирует файл vern.txt private-ключом и создаёт файл vern.pgp, содержащий цифровую подпись (рис. 44), C:\WIHDOWS\sysleffit324csBd.fflte ' g :\ f t n t i .Win\PGP5>pgps -u p « rso n a@ ac to r .p o ch ta .b y — se c r in g = p e rs o n a .s k r v e rn .t x t Cannot open c o n fig u ra t io n f i l e p g p .c fg Cannot open p u b lic k ey rin g ''p u b r in g .p k r " Й p r iv a te key i s r e q u ir e d to make a s ig n a tu re , fitieed a pass phrase to decryp t p r iv a te key: 2048 b i t s , Key ID 56B2284D, C reated 2О10-ШЭ-18 "p e rso n a P a c to r .p o c h ta .b y " Enter pass p h ra se : Pass phrase i s good . C re a t in g output f i l e v e rn .p gp Рис. 44. Запрос на ввод пароля и создание цифровой подписи программой PGP произвольным private-ключом пользователя На копии экрана (см. рис. 44) мы видим, что для этой операции программа PGP требует пароль. 2.3.8. Создание цифровой подписи отдельным файлом Можно создать цифровую подпись отдельным файлом, а само сообщение оставить открытым и незашифрованным. В командной строке терминала набираем предыдущую команду, указав до­ полнительную опцию -Ь (рис. 45): pgps -u ID -b — secring -persona.skr file name. C:\WINDOWS\systenj32Vand este S l l • G :\finti.W in\PGP5>pgps -u p e rso n aB ac to r .p o ch ta .b y :fc iannot open c o n fig u ra t io n f i l e p g p .c fg JCannot open p u b lic k ey r in g ' ’p u b r in g .p k r " p p r iv a te key i s re q u ire d to make a s ig n a tu re . P e e d a pass phrase to decryp t p r iv a te key : 2048 b i t s . Meу IB 56B2284D, C reated 2018-83-18 "p e rso n a P a c to r . p o c h ta .b y " Enter pass p h ra s e : Pass . ise i s good, t re a t in g output f i l e w e rn .s ig -b — ■sec r in g= p e rso n a .sk r vern G:Sflnti.W in\PGP5> _ Рис. 45. Запрос на ввод пароля и создание цифровой подписи отдельным файлом На копии экрана (см. рис. 45) мы видим, что программа создала файл циф­ ровой подписи vern.sig. Изначальный файл vern.txt с данными не модифи­ цировался. Упражнение для самостоятельной работы 13. Посмотрите, какой раз­ мер у файла vern. sig . Много это или мало? 64 2.3.9. Верификация цифровой подписи Вы получили файл v e rn .tx t вместе с цифровой подписью v e rn .s ig и хо­ тите проверить (верифицировать), соответствует ли эта цифровая подпись по­ лученным данным. Для этого нам нужен только лишь открытый, публичный ключ того лица, которое создало и подписало эти данные. Публичный ключ Persona у нас имеется. В командной строке набираем: pgpv v e rn .s ig --pubring=persona.pk r. После запуска этой команды программа PGP переходит в интерактивный режим и просит вас ввести файл с данными, соответствующий цифровой под­ писи vern.sig. Мы набираем vern.txt, если файл с данными находится в другом каталоге, необходимо указать полный путь к файлу (рис. 46). рл С \WiNDOW5J\syslens32taHd ,-е*е - p g r ■ » я п s ig fx & n n rj > . . . ki 1 G:\finti.Win\PGP5>pgpv vern .s ig — pubring-persona.pkr Cannot open con figuration f i l e pgp.cfg Cannot o p e n secret keyring "secr in g .sk r" This signature app lies to another message F ile to check signature against Evern]: vewi .tx t Ы _ Ll Рис. 46. Этап верификации цифровой подписи: запрос на ввод имени верифицируемого файла Когда путь к файлу введен, программа продолжит работу: сообщит, во- первых, идентификатор пользователя, поставившего цифровую подпись и, во- вторых, результат верификации. Сообщение на копии экрана (рис. 47) «Good signature» означает, что верификация прошла успешно. о Г Г. 4W iNDOW S\s*sJetB32\cmd ехе G : \ A n t i . W i n \ P G P 5 > p g p v u e r n . s i s — p u b r i n g ~ p e r s o n a . p k r C a n n o t o p e n c o n f i g u r a t i o n f i l e p g p . c f g C a n n o t o p e n s e c r e t k e y r i n g " s e c r i n g . s k r " r h i s s i g n a t u r e a p p l i e s t o a n o t h e r m e s s a g e F i l e t o c h e c k s i g n a t u r e a g a i n s t [ v e n t ] : v e r n . t x t G o o d s i g n a t u r e m a d e 2 Ш І Ш -8 3 -1 8 2 2 : 1 9 G M T b y k e y : 2ffl4§ b i t » . K e y I B 5 6 B 2 2 8 4 D , C r e a t e d 2 Ш І 0 - І З - І 8 " p e r s o n a B a c t o r . p o c h t a . b y ” G :\ f t n t i . W i n \ P G P 5 > _ Рис. 47. Этап верификации цифровой подписи: завершение и сообщение об успешной верификации Упражнение ддя самостоятельной работы 14. Измените хотя бы один бит в файле v e rn .tx t . Постарайтесь не менять размер файла. Попытайтесь сделать верификацию так, как описано выше. 2.3.10. Сбой верификации цифровой подписи / I А тп: r/VT\T 71 Ж А ІЛТ ТЖ tr*T Т ТТГ-Г Л ЛТТТТТ Г Т Г ГТ>Т» Г14» ГГ Т А ТТЛ V Л Л х "ГТГ т Л Л » ТТ Т Л /чг т 1 T-VT ~г г» --S.%*xrAivi9 o i w j y ivi.oxixuii,.ririjriiv іх^Дхіігх^сіІгхі.с>хс Д с ш п ы с y r u w i ^ i d]J тельно и правильно выполнили последнее самостоятельное упражнение). Как пройдёт верификация? Осуществляем верификацию, как описано в предыдущем подразделе 2.3.9. Выполняем ту же команду: pgpv v e rn .s ig — pubring=persona.p k r. 65 Снова указываем путь к файлу с данными, но теперь, обратите внимание (рис. 48), программа вывела идентификатор лица, поставившего цифровую подпись и, во-вторых, вывела тревожное сообщение: «BAD s ig n a tu re » - это оз­ начает, что целостность файла с данными нарушена, данные кто-то менял и модифицировал, уже после того как была создана цифровая подпись. Мы научились создавать и верифицировать простую цифровую подпись. Это механизм хорошо работает, если стороны доверяют друг друіу. Однако, в жизни, в производственной деятельности, в бизнесе, к сожалению, возникают ситуации, когда мы с подозрением относимся к партнёру. ;fe:4flnti-Win\PGP5>pgpi> uern .sig — pubring-persona.pkr Cannot open configuration f i l e pgp.cfg Cannot open secre t keyring "secrxng.skr" rhis signature applies to another1 message T i l e to check signature against luernJ: wern.txt SAD signature вайя 2010-03-18 22:19 GMT by key: 2048 b its , Key I » 56В22Э4», Created 2ШІ0-ІЗ-18 "personaPactor.pochta.by" 3: Nftnt i . Win\PGP5>_ ............. ... ..... .... ... ................ Рис. 48. Этап верификации цифровой подписи: завершение и сообщение о сбое верификации Типичный пример, вся финансовая работа банка видна из правильно со­ ставленного годового бухгалтерского баланса, тем не менее, в финансовых кру­ гах не очень доверяют такому балансу. И администрация банка вынуждена, часто за значительные средства, привлекать независимую нейтральную органи- зацию-арбитра, называемую аудиторской фирмой, которая составляет такой баланс. Баланс, составленный независимой аудиторской фирмой, имеет значи­ тельно более высокий рейтинг и может служить «доверительной» визитной кар­ точкой финансового благополучия предприятия. Так и с арбитражной цифровой подписью: если в своей переписке коррес­ понденты не доверяют друг другу, то они ищут третью, нейтральную довери­ тельную сторону - арбитра. Механизм создания и использования арбитражной подписи подробно разобран в подразделе 1.6.7, поэтому практическое задание по созданию арбитражной подписи выносится в самостоятельное упражнение. Упражнение ддя самостоятельной работы 15. Привлеките на помощь друга. Создайте ещё пару ключей. Выберите арбитра. Создайте арбитражную цифровую подпись, как описано в подразделе 1.6.7. Список использованных источников 1. Баричев, С.Г. Криптография без секретов / С.Г. Баричев. - М.: Горячая Линия - Телеком, 2004. - 43 с. 2. Вишневский, А. Сетевые технологии Windows 2000 / А. Вишневский. - СПб.: Питер, 2000. - 591 с. 3. Домарёв, В.В. Защита информации и безопасность компьютерных сис­ тем / В.В. Домарёв. - Киев: Диалектика, 2004. - 670 с. 4. Касперски, К. Искусство дизассемблирования: наиболее полное руково­ дство / К. Касперски, Е. Рокко. - СПб.: БХВ-Петербург, 2008. - 884 с. 5. Левин, М. Как стать хакером: интеллектуальное руководство по хакингу и фрикингу / М. Левин. - М.: Новый издательский дом, 2005. - 319 с. 6. Мак-Клар, С. Хакинг в Web. Атаки и защита / С. Мак-Клар, С. Шах, Ш. Шах. - М.: Вильямс, 2003. - 374 с. 7. Норткат, С. Обнаружение нарушений безопасности в сетях / С. Норт- кат, Д. Новак. - М.: Вильямс, 2003. - 447 с. 8. Основы организационного обеспечения информационной безопасности объектов информатизации: учебное пособие по специальности в области ин­ формационной безопасности / С.Н. Семкин [и др.]. - М.: Гелиос АРВ, 2005. - 185 с. 9. Скляров, Д.В. Искусство защиты и взлома информации / Д.В. Скля­ ров. - СПб.: БХВ-Петербург, 2004. - 276 с. 10. Столингс, В. Криптография и защита сетей: принципы и практика / В. Столингс. - М.: Вильямс, 2001. - 669 с. 11. Хогланд, Г. Взлом программного обеспечения: анализ и использование кода / Г. Хогланд, Г. Мак-Гроу. - М.; СПб.; Киев: Вильямс, 2005. - 396 с. 12. Шнайер, Б. Секреты и ложь: безопасность данных в цифровом мире / Б. Шнайер. - СПб.: Питер, 2003. - 367 с. 13. Ярочкин, В.И. Информационная безопасность: учебник для вузов по гуманитарным и социально-экономическим специальностям / В.И. Ярочкин. - М.: Трикста; М.: Академический проект, 2005. - 543 с. Учебное издание ГАНЖА Виктор Александрович СИДОРИК Валерий Владимирович ЧИЧКО Ольга Ильинична БЕЗОПАСНОСТЬ ИНФОРМАЦИИ И ОБЕСПЕЧЕНИЕ НАДЁЖНОСТИ КОМПЬЮТЕРНЫХ СИСТЕМ Учебно-методическое пособие для слушателей Системы повышения квалификации и переподготовки __________________ Редактор Т.А. Подолякова__________________ Подписано в печать 12.07.2010. Формат 60*84Vs. Бумага офсетная. Отпечатано на ризографе. Гарнитура Bookman Old Style. Уел, печ. л. 7,79. Уч.-изд. л. 3,05. Тираж 100. Заказ 489. Издатель и полиграфическое исполнение: Белорусский национальный технический университет. ЛИ №02330/0494349 от 16.03.2009. Проспект Независимости, 65. 220013, Минск.