Давно отошли в прошлое времена, когда слова «криптография», «шифр», «секретный ключ» и т.п. у подавляющего большинства людей ассоциировались лишь с недавно просмотренным кинофильмом или модным шпионским романом. В настоящее время технологии защиты информации прочно вошли в повседневную жизнь. Кредитные карточки для получения на личных в банкоматах, банковские операции, переписка по сети Internet, защита файлов в компьютере от любопытных коллег и многое другое — все это немыслимо без применения современной криптологии. Растущая потребность в специалистах по защите информации так или иначе удовлетворяется — «природа не терпит пустоты». За рубежом изданы десятки учебников и монографий, посвященных криптографии и различным аспектам ее применения, издается множество специализированных журналов. К сожалению, в России дело обстоит совсем иначе. По пальцам можно пересчитать учебные пособия, изданные благодаря энтузиазму нескольких вузов. Еще легче сосчитать периодические специализированные издания. В связи с этим появление книги Чморы А.Л. «Современная прикладная криптография» является заметным событием. Книга начинается с описания базовых концепций. Описана большая часть разработанных к настоящему времени криптосистем с симметричными ключами. Подробно рассмотрены системы с открытыми ключами и методы аутентификации, методы разделения секретов и элементы финансовой криптографии, некоторые новые идеи. Справедливости ради следует отметить, что книга довольно трудна для первоначального ознакомления с предметом, но обилие материала, в том числе справочного характера, полностью искупает этот недостаток. К тому же она прекрасно дополняет пусть и малодоступные, но все же существующие источники на русском языке. Можно с уверенностью сказать, что эта книга будет способствовать подъему интереса к вопросам защиты информации и найдет своего читателя как среди специалистов, так и среди студентов и аспирантов.
Габидулин Э. М., доктор технических наук
профессор, действительный член
Международной Академии информатизации
Предисловие автора
Почему написана эта книга
Причина появления этой книги — явный недостаток литературы подобного рода на русском языке, с одной стороны, и острый интерес к рассматриваемой теме, с другой.
В настоящее время данная область знания представлена несколькими книгами, учебными пособиями и научно-популярными брошюрами2. В 1996 г. в издательстве «Мир» вышла книга А. Саломаса, описывающая достижения в области криптографии до 1990 г.з. В 1997 г. группа сотрудников лаборатории МГУ по математическим проблемам криптографии под руководством профессора Седельникова В.М. при содействии Московского государственного инженерно-физического института опубликовала книгу по криптографическим проблемам защиты банковской информации4. В 1997 г. Российская Академия наук и Академия криптографии Российской Федерации выпустили первый том сборника трудов, посвященных исследованиям математических моделей дискретных устройств обработки информации, представляющих интерес с точки зрения криптографии5. Издание является приложением к журналу «Дискретная математика». Предполагаемая периодичность выхода — один том в год.
Отметим, что тираж большинства книг и учебных пособий не превышает нескольких сотен экземпляров.
Министерством общего и профессионального образования официально утверждены специальности: 013200 (криптография) и 220600 (организация и технология защиты информации). Ведущим учебным центром по подготовке специалистов - криптографов является Институт криптографии, связи и информатики (ИКСИ) Академии ФСБ России. Для организации обучения по указанным специальностям необходима лицензия Мин за, которая после соответствующей аттестации выдается учебно-методическим объединение (УМО) по информационной безопасности. В настоящее время лицензию на подготовку специалистов по криптографии имеет только ИКСИ. Подготовку по специальности «организация и технология
Ростовцев А. Г., Momsees В. А. Защита информации в компьютерных системах. Элементы криптологии. — СПб.: Изд-во СПбГТУ, 1993.
Фомичев В. М. Симметричные криптосистемы. Краткий обзор основ криптологии для шифрсистем с секретным ключом. — М.: Изд-во МИФИ, 1995.
ВарФоломеев А. А., Пеленичин М. Б. Методы криптографии и их применение в банковских технологиях. — М.: Изд-во МИФИ, 1995.
ВарФоломеев А. А., Домнина О. С., Пел«Нинин М. Б. Управление к
лючами в системах криптографической защиты банковской информации. — М.: Изд-во МИФИ, 1996.
Введение в криптографию / Под общ. ред. Ященко В. В. — М.: МЦНМО, ЧерО, 1998.
Кузьминов В. И. Криптографические методы защиты информации. — Новосибирск: Высшая школа, 1998.
Нечаев В. И. Элементы криптографии. Основы теории защиты информации. — М.: Высшая школа, 1999.
Молдовлн А. А., Молдовлн Н. А., Советов Б. Я. Криптография. — СПб.: Лань, 2000.
Жельников В. Криптография от папируса до компьютера. — М.: ABF, 1996.
Дориченко С. А., Ященко В. В. 25 этюдов о шифрах. — М.: ТЕИС, 1994. з
Саломаа А. Криптография с открытым ключом. — М.: Мир, 1996.
«Анохин М. И., Варшавский Н. П., Сидельников В. М., Ященко В. В. Криптография в банковском деле: Методические материалы. — М.: Изд-во МИФИ, 1997.
Труды по дискретной математике / Российская Академия наук; Академия криптографии Российской Федерации. — М.: ТВП, 1997. — Т.1.
защиты информации» осуществляют в МИФИ (факультет информа1ронной безопасности) РГГУ (факультет защиты информации).
Основное содержание предлагаемой книги касается вопросов криптографической защиты информации в распределенных вычислительных системах. Автор постарался включить книгу материал, который по тем или иным причинам не вошел в упомянутые выше издания Отметим, что книга писалась не как математическая работа, а как практическое введение криптографию, ставшую неотъемлемой частью современных сетевых технологий. Для интересующихся теоретическими результатами приведены обширные ссылки на академически литературу. По соображениям объема пришлось многое оставить за рамками данной работы Так, в книге не рассматриваются:
1) теоретико-информационные вопросы криптографии и аутентификации — граница Шеннона, расстояние единственности, граница Симмонса, граница «квадратного корня Фундаментальный труд К. Э. Шеннона был переведен на русский язык и опубликовав в 1963
2) классическая криптография — одноалфавитные и многоалфавитные криптосистем (шифры Полибия, Цезаря, криптосистемы Хилла, Плейфера, Виженера, Бьюфорт аффинные криптосистемы, роторные машины), перестановки и подстановки, перемешивание и рассеивание, методы классического криптоанализа (частотный, метод Казиск для периодических криптосистем с неизвестным периодом). Несмотря на название, книга А. Саломаа содержит прекрасное введение в данную область;
3) теоретико-числовая, сложностная проблематика. Методы дискретного логарифмирования (алгоритмы Гельфонда, Полига — Хеллмана, для полей простого порядка, Хеллмана Рейнери, Копперсмита, логарифмирование на эллиптических кривых), алгоритмы модульного возведения в степень, факторизации больших целых чисел (экспоненциально и субэкспоненциально-трудоемкие алгоритмы Шермана — Лемана, Лолларда, Лолларда
Штрассена, Диксона, Бриллхарта — Моррисона, квадратичного решета, числового решета, обобщенного числового решета) и тесты на простоту подробно рассматривают в упомянутых выше изданиях. Понятие полиномиальной сложности, классы Р и N) вводятся в известной книге М. Гэри и Д. Джонсона;
4) криптографические протоколы на основе интерактивных систем доказательства. Элементы теории доказательства с нулевым знанием.
Вследствие ограниченного объема в книгу не вошел материал по современной стеганографии — цифровым «водяным знакам» и другим методам аутентификации мультимедийном информации. Возможно, эта тема заслуживает отдельного рассмотрения.
Уровень подготовки читателя
Необходимый уровень образования читателя этой книги должен соответствовать типичной математической подготовке студента, прослушавшего ряд курсов помимо математически го анализа. Однако для полного «погружения» в мир криптографии необходима специальная математическая подготовка — прежде всего владение основами теории чисел и теории конечных полей1и в объеме университетского курса.
Автор постарался раскрыть содержание основных идей современной криптографии, не прибегая к строгому языку математики, пытаясь представить математические рассуждения,
Шеннон К. Э. Теория связи в секретных системах. В кн.: Шеннон К. Э. Работы по теории информации и кибернетике. — М.: ИЛ, 1963. С. 243 — 332.
Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. — М.: Мир, 1982.
В некоторых источниках вместо термина «знание» используется термин «разглашение».
Чебышев П. Л. Полное собрание сочинений: Т.1: Теория чисел. — М.-Л.: Изд-во АН СССР, 1946.
Виноградов И. М. Основы теории чисел. 5-е изд. перераб. — М.— Л.: Гос. изд-во техн.-теор. лит-ры,.1949.
Боревич 3. И., Шафаревич И. Р. Теория чисел. — М.: Наука, 1985.
Ноден П., Китте К. Алгебраическая алгоритмика. — М.: Мир, 1999.
Лидл Р., Нидерраптер Г. Конечные поля: В 2-х т. — М.: Мир, 1988.
там где они необходимы, в интуитивно понятной форме. Насколько ему это удалось — судить читателю.
Обзор содержания
Глава 1 представляет собой изложение методологии информационной безопасности согласно «Оранжевой книге» и рекомендациям CCITT Х.800. Вводятся основные понятиями рассматривается общая концепция информационной безопасности.
Глава II посвящена описанию криптографических методов. Параграфы с первого по третий содержат изложение базовых принципов и моделей современной криптографии. Криптографические методы иллюстрируются на примере протокола SSL. Четвертый параграф посвящен симметричным криптосистемам и блочным шифрам. Вводится понятие принципа итерирования и конструкция Фейстеля. Рассматриваются режимы шифрования блочных шифров. Отдельные параграфы посвящены стандартам DES и ГОСТ 28147-89. Описываются ключевые идеи некоторых криптоаналитических атак, в том числе силовой атаки на основе распределенных вычислений. Пятый параграф представляет собой краткое введение в теорию поточных шифров. Стоимость силовой атаки с учетом технологических достижений и адекватная длина ключа симметричной криптосистемы, позволяющая противостоять подобной атаке, рассматриваются в шестом параграфе. Описание универсального метода расширения ключевого пространства при ограничении разрядности секретного ключа приводится в седьмом параграфе. Восьмой параграф посвящен обсуждению асимметричных криптосистем. Особое внимание уделяется вопросу практической криптостойкости RSA, а также специальной методике выбора делителей модуля, известной под названием «разбалансированной КЯА». Девятый параграф является введением в технологию хэш-функций. Дается описание широко распространенных на практике алгоритмов MD4, MD5, MD2, RIPEMD, стандартов SHS и ГОСТ Р 34.11-94. Десятый параграф посвящен цифровой подписи и содержит описание общей концепции цифровой подписи, стандартов DSS и ГОСТ Р 34.10-94.
Глава Ш посвящена изложению методологии управления ключами — одной из основных, задач практической криптографии. Изложение охватывает множество различных аспектов проблемы, начиная с генерации, распределения ключей для симметричных и асимметричных криптосистем, проверки, использования, обновления и хранения ключей.
Глава IV содержит изложение идеи разделения секрета. Описываются классические схемы Блэкли, Шамира и схемы на основе кодов Рида — Соломона. Рассматриваются некоторые и практические приложения.
В главе V рассматриваются протоколы анонимных (неотслеживаемых) платежей, а также электронные микроплатежные схемы на примере систем PayWord и MicroMint.
В главе VI излагается метод депонирования ключей. Приводится общее описание криптоалгоритма Skipjack, стандарта EES, проектов Clipper и Capstone.
Как обеспечить паритетный уровень, учитывая противоречивые требования национальной и коммерческой безопасности? В главе VII описывается возможный подход к решению этой проблемы.
Криптография не стоит на месте. Новые криптографические идеи — криптография с временным (ударение на последнем слоге) раскрытием и квантовая криптография описываются в главе VIII.
Глава IX посвящена аутентификации. В первом и втором параграфах излагаются методы аутентификации на основе применения паролей и биометрических измерений. В третьем— криптографические методы аутентификации в компьютерных сетях. Четвертый параграф посвящен анализу криптографических протоколов. BAN-логика — метод формального анализа протоколов — описывается в пятом параграфе. Описание широко применяемого на практике протокола аутентификации Kerberos приводится в шестом параграфе.
Доказательство принадлежности — важная практическая задача. В главе Х дается по- следовательно изложение методов доказательства принадлежности при отказе отправите- ля/получателя от ранее переданных/принятых сообщений.
В Приложении приводятся ссылки на различные криптографические источники в Internet.
Автор с благодарностью примет все предложения и замечания по книге; их следует направлять по адресу: сhтоrа@iitp.ru.
Благодарности
Хотелось бы выразить благодарность Панченко В. И., стимулировавшему интерес автора к криптографии и общение с которым отличалось особой глубиной и содержанием, а также признательность Институту проблем передачи информации РАН за создание творческой научной атмосферы и всестороннюю поддержку во время работы над этой книгой.
Автор выражает искреннюю признательность профессору Московского физико-технического института, д.т.н. Габдулину Э. М., Александру Баргу — научному сотруднику Fundamental Match. Research, Bell Laboratories, Lucent Technologies за внимательное отношение к рукописи, критические замечания и полезные рекомендации.
И наконец, автор благодарит свою супругу Ольгу за проявленное терпение и понимание.
Чмора А. Л.
6 января 1999 г. Москва
Oсновы сетевой безопасности
1.Введение
В 1983 г. Министерство обороны США выпустило книгу в оранжевой обложке с названием Критерии оценки надежных компьютерных систем» (Trusted Computer Systems Evaluation iteria, TCSEC) [1], известную также как «Оранжевая книга». Данное издание содержит систематизированный подход к изучению вопросов информационной безопасности. Затем аналогичные по назначению документы были изданы в ряде европейских стран [2]. В 1992 году Гостехкомиссия при Президенте РФ выпустила серию документов, посвященных проблеме щиты от несанкционированного доступа [3 — 7]. «Оранжевая книга» создавалась исходя из концепции централизованной конфигурации, основу которой составляют большие копью с локализованным управлением. Развитие компьютерных сетей привело к пересмотру ряда положений информационной безопасности и к появлению дополнительных документов, содержащих интерпретацию «Оранжевой книги» с учетом особенностей сетевых конфигураций [8I Основополагающим документом в области защиты информации в распределенных темах стали рекомендации Х.800 [9].
Оранжевая книга» вводит понятие безопасной системы, которая «управляет доступом к формации, так что только авторизованные лица или процессы, действующие от их имени, мучают право читать, писать и удалять информацию». Надежная система определяется система, использующая достаточные аппаратные и программные средства для обеспечения одновременной обработки информации разной степени секретности группой пользователелей без нарушения прав доступа». Надежность системы оценивается по двум основным этериям.
Политика безопасности. Набор законов, правил и норм, определяющих дисциплину обработки, защиты и распространения информации. Политика безопасности определяет выбор конкретных механизмов, обеспечивающих безопасность системы, и является активным компонентом защиты, включающим в себя анализ возможных угроз и выбор мер противодействия.
Гарантированность. Уровень доверия, которое может быть оказано конкретной реализации системы. Гарантированность отражает степень корректности механизмов безопасности. Гарантированность можно считать пассивным компонентом защиты, надзирающим за механизмами обеспечения безопасности.
Концепция надежной вычислительной базы является центральной при оценке степени
гарантированности надежной системы. Надежная вычислительная база представляет собой совокупность защитных механизмов (включая программное и аппаратное обеспечение), гарантирующих безопасность системы. Компоненты вне вычислительной базы могут быть ненадежными (например, каналы связи), однако это не должно влиять на безопасность систем в целом.
Механизм протоколирования также является важным средством обеспечения безопасности. Ведение протоколов должно дополняться аудитом, то есть анализом регистрационная информации.
Согласно «Оранжевой книге», политика безопасности должна включать в себя по крайне мере следующие элементы:
• произвольное управление доступом;
• безопасность повторного использования;
• метки безопасности;
• принудительное управление доступом.
Произвольное управление доступом. Заключается в ограничении доступа к объекта
на основе учета персональных характеристик субъекта или группы, в которую субъект входит. Произвольность состоит в том, что владелец объекта по своему усмотрению может разрешать, запрещать или ограничивать доступ других субъектов к данному
объекту.
Текущее состояние прав доступа при произвольном управлении описывается матрицей в строках которой перечислены субъекты, а в столбцах — объекты. На пересечения строк и столбцов находятся идентификаторы способов доступа, допустимые для субъекта по отношению к объекту, — например чтение, запись, исполнение, возможность передачи прав другим субъектам и т.п.
Помимо матрицы доступа используется более компактное представление, основания на структурировании совокупности субъектов. Применяются также списки управления доступом — представление матрицы по столбцам, когда для каждого объекта перечисляются субъекты вместе с их правами доступа.
Безопасность повторного использования. Данная мера позволяет защититься от случайного или преднамеренного извлечения секретной информации из «мусора». Безопасность повторного использования должна гарантироваться для областей оперативной памяти (в частности, для буферов с образами экрана, паролями, ключами и т.п.) для различных носителей информации.
Современные периферийные устройства усложняют обеспечение безопасности повторного использования. Например, принтер может буферизовать несколько страниц документа, которые останутся в памяти даже после окончания печати. Необходимо предпринять специальные меры, чтобы «очистить» память устройства.
Метки безопасности. Принудительное управление доступом реализуется при помощи меток безопасности, ассоциированных с субъектами и объектами. Метка субъекта описывает его благонадежность, метка объекта — степень закрытости содержащейся в нем информации.
Согласно «Оранжевой книге», метки состоят из двух частей — уровня секретности и списка категорий. Наиболее часто используемый набор уровней секретности состоит из следующих элементов:
• совершенно секретно;
• секретно;
• конфиденциально;
• несекретно.
Для систем различного назначения набор уровней секретности может быть различным.
Назначение категорий — описание предметной области, к которой относятся данные. Механизм категорий позволяет разделить информацию, что способствует повышению безопасности системы. Так, субъект не сможет получить доступ к «чужим» категориям, даже если он абсолютно благонадежен.
Принудительное управление доступом. Принудительное управление доступом
основано на сопоставлении меток безопасности субъекта и объекта.
Субъект может читать информацию объекта, если его уровень секретности не ниже, чем у объекта, а все категории, перечисленные в метке безопасности объекта, указаны в метке субъекта.
Субъект может записывать информацию в объект, если уровень безопасности объекта не ниже, чем у субъекта, а все категории, перечисленные в метке безопасности субъекта, указаны в метке объекта. Так, в частности, субъект, относящийся к уровню «конфиденциально», может писать в секретные файлы, но не может — в несекретные (при соблюдении ограничений на набор категорий). Уровень секретности информации не должен понижаться, хотя обратный процесс возможен.
Описанный способ управления называется принудительным, так как не зависит от волеизъявления субъектов. После того как метки безопасности субъектов и объектов за фиксированы, оказываются зафиксированными и права доступа.
4.Гарантированность
Гарантированность — это мера уверенности в том, что выбранный набор средств позволяет реализовать сформулированную политику безопасности.
В Оранжевой книге» определено два вида гарантированности — операционная и технологическая.
Операционная гарантированность. Данный вид гарантированности включает анализ:
• архитектуры и целостности системы;
• скрытых каналов утечки информации;
• методов администрирования;
• технологии восстановления после сбоев
Архитектура системы должна разрабатываться с учетом сформулированных мер безопасности или допускать принципиальную возможность их встраивания. Необходимо предусмотреть средства для контроля целостности программного и аппаратного обеспечения.
В «Оранжевой книге» предлагаются следующие архитектурные решения:
• привязка аппаратных и системных функций к уровням привилегированности и контроль информационных потоков между уровнями;
• введение механизма виртуальной памяти в целях защиты различных процессов от
взаимного влияния;
• ведение средств управления доступом;
• структурирование системы;
• следование принципу минимизации привилегий;
• введение сегментации как средства повышения надежности.
Анализ скрытых каналов утечки информации особенно важен в тех случаях, когда необходимо обеспечить конфиденциальность информации. Скрытым называется канал, предназначенный для передачи информации при традиционном использовании. Например, для передачи информации по скрытому каналу злоумышленник может измена имя или размер открытого (доступного для чтения) файла. Другой способ заключаю в изменении временных характеристик различных процессов.
Согласно «Оранжевой книге», надежное администрирование определяется набор обязанностей системного администратора, системного оператора и администратора безопасности. Их деятельность должна осуществляться в соответствии с принцип минимизации привилегий.
Надежное восстановление включает в себя подготовку к сбою (отказу) и собственно восстановление. Подготовка к сбою — это прежде всего регулярное выполнение резервного копирования, а также выработка планов действий в экстренных случаях. Восстановление, как правило, связано с перезагрузкой системы и выполнением различных технологических и административных процедур.
В период восстановления система не должна оставаться незащищенной; нельзя допускать состояний, когда защитные механизмы полностью или частично отключены.
Технологическая гарантированность. Этот вид гарантированности распространяется весь жизненный цикл системы — проектирование, реализацию, тестирование, передачу заказчику и сопровождение. Методы контроля направлены на недопущение утечки информации и внедрения нелегальных «закладок».
Основной метод заключается в тестировании реализованных механизмов безопасности и их интерфейса, Задача тестирования — доказательство адекватности защитных механизмов, невозможности их обхода или разрушения, демонстрация действенности средств управления доступом, защищенности регистрационной и аутентификационной информации.
Другой метод — верификация описания архитектуры. Цель верификации — доказательство того, что архитектура системы соответствует сформулированной политике безопасности. Для формальной верификации Национальный центр компьютерной безопасности США рекомендует системы GVE (Gypsy Verification Environment) компании Computational Logic, Inc. и FDM (Formal Development Metodology) корпорации UNISYS
Средства конфигурационного управления включают в себя идентификацию, протоколирование и анализ всех изменений, вносимых в процессе проектирования, реализации и сопровождения системы. Методология конфигурационного управления, изложенная в «Оранжевой книге», заключается в строгой дисциплине проведения и внесения изменений.
Осуществляется также комплекс мер по защите и, проверке поставляемой версии систр мы, начиная от проверок серийных номеров аппаратных компонентов и кончая верификацией контрольных сумм программ и данных.
В качестве угрозы можно рассматривать конкретное физическое лицо или событие, пред ставляющее опасность для ресурсов и приводящее к нарушению их конфиденциальности. целостности, доступности и законного использования. Атака представляет собой реализацию
той или иной угрозы или их комбинации. Контрмеры сводятся к набору превентивных действий по защите ресурсов от возможных угроз.
Угрозы подразделяются на преднамеренные (например, атака со стороны хакера) и случайные (например, посылка по неправильному адресу в результате сбоев во время передачи сообщения). Преднамеренные угрозы подразделяются на пассивные и активные. Пассивные угрозы вытекают из прослушивания (несанкционированного считывания информации) и не связаны с каким-либо изменением информации. Активные угрозы являются следствием попыток перехвата и изменения информации. Как правило, реализация пассивных угроз требует меньших затрат, чем реализация угроз активных.
Рассмотрим типичные угрозы, характерные для современных распределенных систем. Классифицируя угрозы, выделим фундаментальные угрозы, первичные инициирующие угрозы и базовые угрозы [64].
Согласно [64], к фундаментальным угрозам относятся следующие:
Утечка информации. Раскрытие информации неавторизованному пользователю или процессу.
Нарушение целостности. Компрометация согласованности (непротиворечивости) данных путем целенаправленного создания, подмены и разрушения данных.
Отказ в услуге. Преднамеренная блокировка легального доступа к информации или другим ресурсам (например, при помощи перегрузки сервера потоком запросов).
Незаконное использование. Использование ресурсов незаконным образом. Использование ресурсов неавторизованным объектом или субъектом. Например, использование удаленного компьютера с целью «взлома» других компьютеров сети.
Реализация фундаментальных угроз во многом зависит от реализации первичных угроз. Первичные угрозы инициируют фундаментальные угрозы. Первичные угрозы подразделяются на угрозы проникновения и угрозы внедрения.
К угрозам проникновения относятся следующие:
Маскарад. Пользователь (или иная сущность — процесс, подсистема и т.д.) маскируется и пытается выдать себя за другого пользователя. Данная угроза, как правило, связана с попытками проникновения внутрь периметра безопасности и часто реализуется хакерами.
Обход защиты. Использование слабых мест системы безопасности для обхода защитных
механизмов с целью получения законных прав и привилегий.
Нарушение полномочий. Использование ресурсов не по назначению. Данная угроза связана с действиями внутреннего нарушителя.
К угрозам внедрения относятся следующие:
Троянские программы. Программы, содержащие скрытый или явный программный код, при исполнении которого нарушается функционирование системы безопасности. При- мер троянской программы — текстовый редактор, который помимо обычных функций редактирования выполняет тайное копирование редактируемого документа в файл злоумышленника.
Потайные ходы. Некоторые дополнительные возможности, тайно встраиваемые в систему
или ее компоненты, нарушающие функционирование системы безопасности при введении специфических данных. Например, подсистема login может опускать запрос и проверку пароля при вводе определенного имени пользователя.
Подобные угрозы, как правило, реализуются при помощи специальных агентов внедрения, активизирующихся после некоторого периода латентности.
Рассматривая фундаментальные угрозы, следует учитывать также угрозы базовые. На пример, утечка информации связана с такими базовыми угрозами, как:
• подслушивание;
• анализ трафика;
• персональная неосторожность;
• «копание в мусоре».
Взаимосвязь различных угроз представлена на рис. 1.1. Отметим, что эта взаимосвязь может быть достаточно сложной. Так, маскарад является угрозой, инициирующей фундаментальные угрозы, в том числе утечку информации. Однако маскарад сам по себе так может зависеть от утечки информации. Например, раскрытие пароля может инициировав угрозу маскарада.
Анализ более трех тысяч компьютерных преступлений показал, что чаще всего возникали следующие угрозы (в порядке убывания) [64]:
• нарушение полномочий;
• маскарад;
• обход защиты;
• троянские программы или потайные ходы;
• «копание в мусоре».
Известно, что в сетевом вирусе Internet Worm была реализована комбинация обхода защиты и маскарада [378]. Для обхода защиты разработчики вируса воспользовались слабый местами в системе безопасности ОС Berkley UNUX, а маскарад был реализован путем угадывания паролей при помощи специальной процедуры.
Рассмотрим услуги безопасности, характерные для распределенных систем [9]. Вопросы реализации этих услуг рассматриваются в следующем параграфе.
Аутентификация. Различают аутентификацию партнеров по взаимодействию и аутентификацию источника данных (сообщений).
Аутентификация партнеров по взаимодействию используется при установлении соединения или выполняется периодически во время сеанса связи и служит для предотвращения таких угроз, как маскарад и несанкционированное воспроизведение данных (сообщений) предыдущего сеанса связи.
Аутентификация источника заключается в подтверждении подлинности источника отдельных сообщений. Отметим, что данный вид аутентификации не обеспечивает защиты от несанкционированного воспроизведения сообщений предыдущего сеанса.
Управление доступом. Управление доступом обеспечивает защиту от несанкционированного использования ресурсов сети.
Конфиденциальность данных. Конфиденциальность обеспечивает защиту от несанкционированного получения информации. Различают следующие виды конфиденциальности:
• конфиденциальность при взаимодействии с установлением соединения (в этом и следующем случае защищается вся пользовательская информация);
• конфиденциальность при взаимодействии без установления соединения;
• конфиденциальность отдельных полей сообщения (избирательная конфиденциальность);
• конфиденциальность трафика (противодействие различным методам раскрытия, основанным на анализе потоков сообщений).
Целостность данных. Данная услуга подразделяется на подвиды в зависимости от того, с какой тип взаимодействия используется — с установлением соединения или без, защищается ли сообщение целиком или только отдельные поля, обеспечивается ли восстановление в случае нарушения целостности.
Принадлежность. Данная услуга (доказательство принадлежности в случае отказа от ранее переданного/принятого сообщения) обеспечивает:
• доказательство принадлежности с подтверждением подлинности источника сообщений;
• доказательство принадлежности с подтверждением доставки.
В табл. 1.1 указаны уровни эталонной семиуровневой модели OSI, на которых могут быть реализованы описанные услуги безопасности.
7. Механизмы реализации услуг безопасности
Для реализации услуг безопасности могут использоваться следующие механизмы и их комбинации.
Шифрование. Шифрование подразделяется на симметричное (один и тот же секретный
ключ для шифрования и дешифрования) и асимметричное (различные ключи для шифрования и дешифрования).
Электронная (цифровая) подпись. Механизм электронной подписи включает в себя две процедуры:
• выработку (вычисление) подписи;
• проверку подписанных сообщений.
Таблица 1.1. Распределение услуг безопасности по уровням модели ISO/OSI
Процедура выработки подписи использует информацию, известную только подписывающему. Процедура проверки подписи является общедоступной, при этом, однако, as не позволяет раскрывать секретную информацию подписывающего.
Механизмы управления доступом. В ходе принятия решения о предоставлении запрашиваемого доступа могут использоваться следующие виды и источники информации;
• базы данных управления доступом. В такой базе, поддерживаемой централизованно или на оконечных системах, могут храниться списки управления доступом или структуры аналогичного назначения;
• пароли или иная аутентификационная информация;
• различные удостоверения, предъявление которых свидетельствует о наличии прав доступа;
• метки безопасности, ассоциированные с субъектами и объектами доступа;
• время запрашиваемого доступа;
• маршрут запрашиваемого доступа;
• длительность запрашиваемого доступа.
Механизмы управления доступом могут находиться у любой из взаимодействующих
сторон или в промежуточной точке. В промежуточных точках целесообразно проверять права доступа к коммуникационным ресурсам. Требования механизма, расположенного на приемном конце, должны быть известны заранее, до начала взаимодействия.
Механизмы контроля целостности. Различают два аспекта целостности: целостность сообщения или отдельных его полей и целостность потока сообщений.
Процедура контроля целостности отдельного сообщения (или поля) включает в себя два процесса — один на передающей стороне, другой — на приемной. На передающей стороне к сообщению добавляется избыточность(та или иная разновидность контрольной суммы), которая является функцией сообщения. Полученное приемной стороной сообщение также используется для вычисления контрольной суммы. Решение принимается по результатам сравнения принятой и вычисленной контрольных сумм. Отметим, что данный механизм не защищает от несанкционированного воспроизведения (например, дублирования) сообщений.
Для проверки целостности потока сообщений (то есть для защиты от изъятия, переупорядочивания, реплицирования и вставки сообщений) используются порядковые номера
Обозначения:
Ш - шифрование;
ЭЦП - электронная цифровая подпись;
УД - управление доступом; целостность;
А - аутентификация;
ДТ - дополнение трафика;
Н - нотаризация;
«+» - услуга может быть реализована при помощи данного механизма.
Таблица 1.2. Услуги безопасности и механизмы их реализации
временные метки, криптографические методы (в виде различных режимов шифрования) или иные аналогичные приемы.
При взаимодействии без установления соединения использование временных меток может обеспечить частичную защиту от несанкционированного воспроизведения сообщений.
Механизмы аутентификации. Аутентификация может достигаться за счет использования паролей, персональных карточек или иных устройств аналогичного назначения, криптографических методов, устройств измерения и анализа биометрической информации.
Аутентификация бывает односторонней (например, клиент доказывает свою подлинность серверу) и двусторонней (взаимной). Пример односторонней аутентификации— вход пользователя в систему.
Для защиты от несанкционированного воспроизведения аутентификационной информации могут использоваться временные метки и система единого времени, а также различные методы на основе хэш-функций.
Механизмы дополнения («набивки») трафика. Механизмы «набивки» трафика эффективны только в сочетании с мерами по обеспечению конфиденциальности; в противном случае злоумышленник сможет выделить полезные сообщения из общего потока, содержащего шумовую «набивку».
Механизмы нотаризация. Механизм нотаризация служит для заверения подлинности Заверение обеспечивается надежной третьей стороной, которая обладает достаточной информацией, для того чтобы ее заверениям можно было доверять. Как правило, нотаризация опирается на механизм электронной цифровой подписи.
В табл. 1.2 сведены услуги безопасности и механизмы их реализации. Таблица показывает, какие механизмы могут использоваться для реализации тех или иных услуг безопасности.
8. Администрирование
Администрирование включает в себя управление информацией, необходимой для реала услуг безопасности и их механизмов, а также сбор и анализ информации об их функционировании. Примерами могут служить распространение криптографических ключей, уст значений параметров защиты, ведение регистрационного журнала и т.п.
Как правило, все объекты администрирования сводятся в единую информационно
управления безопасностью. База может не существовать как единое распределенное
хранилище, однако каждая из оконечных систем должна располагать информацией, необходимой для реализации функций администрирования.
Основные задачи администратора средств безопасности сводятся к администрированию
• системы в целом;
• услуг безопасности;
• механизмов реализации услуг безопасности.
Администрирование системы в целом заключается в проведении адекватной политики
безопасности, во взаимодействии с другими службами, в реагировании на происходящие события, аудит и безопасном и надежном восстановлении.
Администрирование услуг безопасности включает в себя определение защищаемых актов, выбор и комбинирование механизмов реализации услуг безопасности, взаимодействие с другими администраторами для обеспечения согласованной работы.
Администрирование механизмов реализации услуг безопасности заключается в выборе и своевременной смене параметров в случае возникновения угрозы.
Обязанности администратора определяются перечнем задействованных механизмов
реализации услуг безопасности. Как правило, администрирование включает следующие направления:
• управление ключами (генерация и распределение). К данному виду управления можно отнести и администрирование механизмов электронной цифровой подписи, а также управление целостностью, если целостность обеспечивается криптографическими
ставами;
• администрирование управления доступом (распределение информации, необходимой для управления, — паролей, списков доступа и т.п,);
• администрирование аутентификации (распределение информации, необходимой аутентификации, — паролей, ключей и т.п.);
• управление «набивкой» трафика (выработка правил, задающих характеристики
новых» сообщений, — частоту отправки, размер и т.п.). Характеристики могут варьироваться в зависимости от даты и времени суток;
• управление нотаризацией (распространение информации о нотариальных службах и их администрирование)
Протоколирование и аудит обеспечивают регистрацию последствий различных нарушений и выявление злоумышленников путем анализа накопленной регистрационной информации.
Разумный подход заключается в совместном анализе регистрационных журналов отдельных составляющих системы с целью проверки полноты и непротиворечивости произошедших в ней событий.
Протоколирование помогает отслеживать действия пользователей и реконструировать прошедшие события. Реконструкция событий позволяет проанализировать случаи нарушений, оценить размеры ущерба и принять соответствующие меры. При протоколировании событий должна регистрироваться по крайней мере следующая информация:
• дата и время события;
• идентификатор пользователя или процесса — инициатора события;
• тип события;
• результат события;
• источник запроса события;
• имена затронутых объектов (например, открываемых и удаляемых файлов);
• описание изменений, касающихся механизмов защиты (например, появление новой метки безопасности);
• метки безопасности субъектов и объектов события.
Аудит имеет дело с событиями, затрагивающими безопасность системы, и представляет собой анализ накопленной информации с целью выявления попыток нарушения информационной безопасности. К числу таких событий относятся:
• вход в систему и выход из нее;
• обращение к удаленной системе;
• операции с файлами (открыть, закрыть, переименовать, удалить и т.п.);
• смена привилегий или иных атрибутов безопасности (режима доступа, уровня благонадежности и т.п.).
Полный перечень событий, подлежащих анализу, зависит от избранной политики безопасности.
Активный аудит — отслеживание подозрительных действий в реальном масштабе времени. Активный аудит включает:
• выявление нетипичной активности субъектов (пользователей, программ и т.п.);
• выявление начала злоумышленных действий.
Для выявления нетипичной активности и начала злоумышленных действий используется метод сопоставления с предварительно полученными образцами тех или иных системных событий, а также сигнатурами известных атак.
При оценке трудоемкости тех или иных вычислений важно представлять масштабы чисел. Данные таблицы взяты из книги: Schnei'er В. Applied Cryptography. Protocols, Algorithms, and Source Code in С. Second edition. — John Wiley8cSons, Inc.
Криптографические методы
Криптография составляет основу сформулированных выше услуг безопасности и является наиболее мощным средством обеспечения конфиденциальности, контроля целостности и аутентификации.
Опишем общие принципы построения систем, удовлетворяющих требованиям безопасной передачи информации по открытым каналам.
Базовая модель (рис. П.1) предполагает существование противника, имеющего доступ к открытому каналу связи и перехватывающего путем подслушивания все сообщения, передаваемые от отправителя к получателю. Подслушивание со стороны противника называется пассивным перехватом сообщений. Кроме того, противник может активно
вмешиваться в процесс передачи информации — модифицировать передаваемые сообщения, навязывать получателю свои собственные сообщения и даже изымать сообщения из канала. Такие действия называются активным перехватом сообщений.
Способы противодействия основаны на применении криптографических методов. Классическая одноключевая (или симметричная) криптосистема представлена на рис. П.2.
Прежде чем передать сообщение в открытый канал, отправитель с целью сокрытия истинного содержания подвергает исходную информацию специальному преобразованию. Для получения исходной информации на приемном конце необходимо выполнить обратное преобразование. Процедура прямого преобразования на передающем конце называется шифрованием, процедура обратного преобразования на приемном конце называется дешифрованием. В одноключевой криптосистеме для выполнения процедуры шифрования и дешифрования необходимо знать общий для отправителя и получателя секретный компонент — секретный ключ. Информация на входе шифратора называется открытым текстом. Информацию на входе дешифратора называют шифротекстом. Иногда используют термин криптограмма — более широкое понятие, включающее помимо шифротекста некоторые дополнительные данные, например криптографические атрибуты (идентификаторы криптоалгоритмов, хэш-функций, сертификаты, различные метки и т.д.). Отметим, что термин «открытыми текст» используется в широком смысле и не означает, что на вход шифратора поступает только текст, например, на каком-либо естественном языке. В книге также используются термины криптоалгоритма, шифр и криптосистема. Поясним их. Под криптоалгоритмов (или алгоритмом криптографического преобразования) понимается прямое/обратное криптографическое преобразование, выполняемое в ходе шифрования открытого текста и дешифрования шифротекста. Шифр — совокупность обратимых преобразований множества возможных символов открытого текста на множество возможных символов шифротекста, осуществляемых по определенным правилам с применением ключей. Криптосистема устанавливает ряд требований по выбору криптоалгоритма и его параметров, а также правил генерации, передачи, обработки и хранения ключевой информации.
Противник, наблюдая шифротекста, не может прочитать открытый текст. Отсюда возни кате задача для криптоаналитика — получение открытого текста по наблюдаемому шифротекста; однако в более общей постановке задача сводится к раскрытию секретного клюнь шифрования/дешифрования. Действия, предпринимаемые криптоаналитиком с целью раскрытия секретного ключа, принято называть атакой. Известны следующие классические атаки (даются в порядке возрастания эффективности).
Атака на основе известного шифротекста. Криптоаналитика располагает только шифротекстом (который он всегда может получить из канала) и на его основе раскрывает секретный ключ.
Атака на основе известного открытого текста. Криптоаналитик располагает нужным количеством пар «открытый текст/шифротекста». На практике число секретных ключей чей, как правило, существенно меньше числа передаваемых сообщений. Это означает, что один ключ используется для шифрования серии открытых текстов. Таким образом, раскрытие ключа позволяет прочитать все сообщения, зашифрованные на этом ключе (например, все сообщения одного сеанса связи).
Атака на основе выборочного открытого текста. Криптоаналитик имеет возможность навязывать отправителю нужный ему открытый текст и получать его в зашифрованном виде. Все открытые тексты должны быть выбраны заранее — до получения соответствующих шифротекстом. В зарубежных источниках такую атаку часто называют «полуночной» (midnight attack), или атакой «короткой передышки (coffee-break attack) — как шутливое напоминание о том, что противник может воспользоваться криптографическим устройством и зашифровать подготовленные заранее открытые тексты в тот момент, когда криптограф оставит свое рабочее место для короткого отдыха. Особенно эффективной атака может быть, например, в случае если криптоаналитика завладел устройством (Smart Card, PCMCIA и т.д.), содержали секретный ключ. При разработке большинства криптографических устройств применяется специальная технология (TEMPEST), не позволяющая считывать секрет информацию с помощью внешнего воздействия. Однако криптоаналитик мо попытаться раскрыть ключ, работая с устройством как с черным ящиком», то е подавая на вход определенный открытый текст и анализируя полученный широте
Адаптивная атака на основе выборочного открытого текста. Частный случай атаки на основе выборочного открытого текста. Криптоаналитик может не только выбирать шифруемый текст, но и осуществлять свой последующий выбор на основе полученных результатов шифрования.
Атака на основе выборочного шифротекста. Криптоаналитик может выбирать различные шифротексты для дешифрования. При этом все шифротекста должны быть выбраны заранее — до получения первого открытого текста.
Адаптивная атака на основе выборочного шифротекста. Это частный случай атаки на основе выборочного шифротекста. Выбирая очередной шифротекста, криптоаналитика уже знает все открытые тексты, соответствующие всем ранее выбранным шифротекстом.
Атака на основе выборочного текста. Криптоаналитик имеет возможность атаковать
криптосистему как со стороны отправителя, так и со стороны получателя — выбирать открытые тексты и шифротекста, шифровать и дешифровать их. Данная атака может быть адаптивной с любой стороны.
Практически стойкая криптосистема должна выдерживать все разновидности описанных выше атак; если это так, то принято говорить, что криптосистема обладает высоким уровнем криптостойкости
Секретный канал, используемый для передачи секретного ключа от отправителя к получателю, должен исключать возможность утечки информации. Создание надежного секретного канала представляет собой сложную проблему, требующую подчас значительных финансовых и организационных затрат. Обеспечение секретного канала для каждой пары абонентов в условиях распределенной сетевой архитектуры становится практически неразрешимой задачей.
Для решения в первую очередь задачи распределения ключей была выдвинута концепция двухключевой (или асимметричной) криптографии (рис. II.3).
В такой схеме для шифрования и дешифрования применяются различные ключи. Для шифрования информации, предназначенной конкретному получателю, используют уникальный открытый ключ получателя-адресата. Соответственно для дешифрования получатель использует парный секретный ключ. Для передачи открытого ключа от получателя к отправителю секретный канал не нужен. Вместо секретного канала используется аутентичный канал, гарантирующий подлинность источника передаваемой информации (открытого ключа отправителя). Подчеркнем, что аутентичный канал является открытым и доступен криптоаналитика противника. Однако механизм аутентификации позволяет обнаруживать попытки нарушения целостности и подлинности передаваемой информации (в этом смысле аутентификация имеет ряд аналогий с методами теории помехоустойчивого кодирования, в частности с кодами, обнаруживающими ошибки). Отсутствие аутентификации позволило бы противнику заменить открытый ключ получателя на свой собственный открытый ключ. В этой ситуации противник получает доступ ко всей адресован получателю информации.
Другое уникальное свойство двухключевых криптосистем заключается в возможности доказательства принадлежности в случае отказа отправителя/получателя от ранее переданного/принятого сообщения и достигается применением шаровой подписи (рис. II.4).
Цифровая подпись обеспечивает также аутентификацию и контроль целостности п даваемой информации. Процедура вычисления и проверки подписи отличается порядком использования ключей.
Предъявив аутентичный открытый ключ отправителя, всегда можно доказать, что принятое сообщение было зашифровано на парном секретном ключе, то есть принадлежит правителю. Получатель знает только открытый ключ, которым пользуется для проверки подписи, и поэтому не может подписать сообщение от лица отправителя.
Асимметричные криптосистемы могут быть атакованы теми же способ что и симметричные. Однако следует иметь в виду, что в асимметричной криптосистеме криптоаналитик знает открытый ключ по определению и, следовательно, атака на открытом тексте всегда возможна. Существует специфическая атака на основе проверки шифротекста, когда криптоаналитик, зная открытый ключ, может заранее зашифровать достаточное количество открытых текстов (при условии, что их не очень много) и затем, сравнивая полученные шифротексты с перехваченными, раскрыть передаваемый открытый текст.
Гольдвассер (S. Goldwasser), Микали (S. Micsli) и Ривест (R. Rivest) предложили классификацию атак для схем цифровой подписи [440]. Приведем эти атаки в порядке возрастания эффективности.
Атака на основе известного открытого ключа. Криптоаналитик знает только открытый ключ для проверки цифровой подписи. Атака всегда возможна.
Атака на основе известного сообщения. Криптоаналитик знает открытый ключ и может получить некоторое количество подписанных сообщений. Однако на выбор этих сообщений он повлиять не может.
Атака на основе выборочного сообщения. Криптоаналитик может выбрать необходимое количество сообщений и получить их подписи. Предполагается, что выбор сообщений выполняется до того, как открытый ключ будет опубликован.
Направленная атака на основе выборочного сообщения. Атака аналогична предыдущей с той разницей, что сообщения выбираются, когда открытый ключ уже известен.
Адаптивная атака на основе выборочного сообщения. Атака аналогична предыдущей, но криптоаналитик выбирает сообщения последовательно, исходя из вычисленных подписей для всех ранее выбранных сообщений.
Основная цель описанных выше атак — подделка цифровой подписи. Криптографический протокол, или криптоалгоритм, может быть безусловно секретным, вычислительно секретным или несекретным.
В случае безусловной секретности вероятность (р < 1) раскрытия секретного ключа не зависит от вычислительных ресурсов и времени, которыми располагает криптоаналитик противника. Широко известным примером безусловно секретного криптоалгоритма является шифр Вернама, где вероятность (а priori) «угадывания» секретного ключа не может быть улучшена, даже при неограниченных вычислительных ресурсах. Некоторые совершенные схемы разделения секрета [32], в том числе схема, применяемая в криптосистеме с депонированием ключа [33], также являются безусловно секретными.
Вычислительная секретность означает, что объем вычислений, необходимый для успешной атаки криптоалгоритма, осуществим в принципе, однако трудоемкость всех известных методов решения конкретной задачи, лежащей в основе атаки, превышает вычислительные возможности, реализуемые на современном этапе развития технологии. Следует отметить, что большинство известных асимметричных криптоалгоритмов являются секретными имен- но в этом смысле. Секретность известного протокола экспоненциального ключевого обмена Диффи-Хеллмана обусловлена трудоемкостью решения задачи дискретного логарифмирования [441 — 443]. В полном объеме задача дискретного логарифмирования может быть сформулирована в терминах теории конечных полей. Доказано, что в общем случае (за исключением некоторых конечных полей специального вида [34,160]) решение может быть найдено путем последовательного возведения в степень некоторого числа (примитивного элемента S поля), приведения по модулю и сравнения полученного результата с заданным числом (степенью примитивного элемента). Решением будет показатель степени, для которого текущий результат равен заданному числу. Последовательный характер алгоритма при этом очевиден. Известно также, что данный алгоритм не поддается распараллеливанию. Не составляет труда выбрать такое конечное поле, трудоемкость решения в котором будет превышать вычислительные возможности криптоаналитика противника.
Практически для любого криптостойкого алгоритма или протокола может быть показа но, что в подавляющем большинстве случаев (и при правильном выборе параметров)
атака сводится к решению некоторой трудоемкой задачи, например, разложению на множители (факторизации) большого составного числа. При этом существовал оптимальных с точки зрения вычислительной сложности алгоритмов решения задачи для, произвольно выбранных параметров не доказано. Например для RSA с открытым ключом е=3 можно доказать, что при правильно выбранном модуле любая атака на криптосистему сводится к решению задачи факторизации двусоставного модуля (произведения двух больших простых чисел).
2. Подлинность и конфиденциальность
Защита конфиденциальных сообщений в открытых сетях требует применения криптографических методов. Шифрование позволяет предотвратить доступ к информации со стороны третьих лиц в результате перехвата сообщения. Криптографические методы позволяют также устанавливать подлинность отправителя (аутентификация) и контролировать целостность (неизменность) передаваемых сообщений.
Современная технология шифрования основана на применении двух различных ключей. Одноразовый псевдослучайный сеансовый ключ используется для шифрования (дешифрования) сообщений в течение одного сеанса. В свою очередь, долговременной ключ использует для шифрования (дешифрования) сеансовых ключей. Данный метод имеет ряд преимуществ по сравнению с использованием долговременного ключа в качестве сеансового.
Рассмотрим симметричную (одноключевую, рис. II.2) криптосистему с долговременным ключами. Существует теоретическая возможность раскрытия ключа при наличии соответствующего материала (шифротекста и, возможно, открытого текста). Криптоанализ стойко криптосистемы требует обработки большого количества материала. Так, например, линейный криптоанализ DES (федеральный стандарт США) позволяет восстановить секретны ключ при условии, что криптоаналитик противника имеет в своем распоряжении 247 «открытый текст/шифротекст» (атака на открытом тексте), что эффективнее, чем исчерпывающий перебор ключа в пространстве 256 [30]. Другой, недавно предложенный снос расширения ключевого пространства для DES с результирующей оценкой разрядности ключа k+ n -1 — lg m, где k — разрядность ключа DES (56 бит), n — разрядность блока DES(64 бита), m - число пар «открытый текст/шифротекст», также зависит от объема криптоаналитического материала, которым располагает криптоаналитик противника [31]. Следовательно, использование долговременного ключа для шифрования малых объемов информации с последующим шифрованием больших объемов на одноразовых ключах позволяет минимизировать риск раскрытия долговременного ключа. В случае раскрытия сеансового ключа будет получен доступ к информации текущего сеанса, при этом доступ к информации последующие сеансов потребует дополнительных усилий по раскрытию новых ключей.
Известно, что применение асимметричных (двухключевых, рис. П.3 и рис. П.4) криптосистем приводит к существенным задержкам при шифровании (дешифровании) по сравнению с симметричными криптосистемами.
В целях минимизации задержки используют гибридную схему, где асимметричная криптосистема используется для шифрования короткого сеансового ключа (отправитель выполняет шифрование на открытом ключе получателя, а получатель дешифрует на своем секретною ключе), а информационные потоки в течение сеанса шифруются с использованием ключей симметричной криптосистемы, то есть долговременный ключ (пара ключей — открытый и секретный) принадлежит асимметричной, а сеансовый — симметричной криптосистеме. Данный способ шифрования, известный как метод цифрового конверта (digital envelope), широко применяется на практике.
Аутентификация отправителя и контроль целостности сообщений обеспечиваются цифр вой подписью. Так, например, подпись сообщения в асимметричной криптосистеме выполняется путем шифрования на секретном ключе отправителя. Передаваемое сообщение состоит из содержательной информации отправителя (в открытом виде) с добавленной к ней (конкатенация) цифровой подписью. При этом размер цифровой подписи будет равен размеру исходного сообщения (в символах сообщения). Получатель, зная открытый ключ отправителя, может выполнить дешифрование и тем самым осуществить аутентификацию источника и контроль целостности сообщения (по результату сравнения принятой и вычисленной получателем цифровой подписи). Не зная секретного ключа отправителя, невозможно создать ложное сообщение с заданной цифровой подписью.
Использование специальной хэш-функции в технологии цифровой подписи позволяет избежать удвоения размера передаваемого сообщения. Хэш-функция должна быть однонаправленной, то есть при нетрудоемком прямом вычислении обращение функции должно быть вычислительно-трудоемким (с экспоненциальной оценкой трудоемкости). Другое важное свойство — задача поиска двух различных сообщений с одним и тем же значением хэш-функции должна быть вычислительно-трудоемкой. Ситуация, в которой два различных сообщения «склеиваются» по значению хэш-функции, называется коллизией. Так, трудоемкость (число операций) нахождения коллизии для MD5 оценивается как 264, а оценка трудоемкости подбора некоторого сообщения, удовлетворяющего заданному значению хэш-функции, составляет 2128 [20]. Еще одно важное требование заключается в том, что число бит в выходном значении хэш-функции должно быть фиксированным и не зависеть от длины исходного сообщения. Алгоритм вычисления хэш-функции известен как отправителю, так и получателю сообщений.
В специальной литературе для обозначения результата вычисления хэш-функции нередко используется термин дайджест сообщения (message digest), или цифровой отпечаток пальца (digital fingerprint).
Таким образом, процедура вычисления подписи сводится к последовательному вычислению хэш-функции от исходного сообщения и шифрованию полученного на предыдущем шаге значения на секретном ключе отправителя (или дешифрованию на открытом ключе ври проверке подписи).
В случае когда отправитель и получатель знают один и тот же сеансовый ключ, целостность и аутентичность сообщений можно обеспечить, вычислив значение хэш-функции от объединения (конкатенации) передаваемого сообщения и сеансового ключа. Результат вычислений называется кодом аутентификации сообщения (КАС) (message authentication code, МАС). КАС предназначен для защиты от навязывания ложных сообщений со стороны третьих лиц.
Навязывание ложных сообщений может быть выполнено путем модификации (например, случайным искажением) передаваемой информации в той фазе протокола, когда отправитель и получатель установили защищенный режим взаимодействий (обменялись сеансовым ключом) и, следовательно, полностью доверяют друг другу. Для защиты от подделки КАС не передается в открытом виде, а объединяется с открытым текстом (конкатенация); полученный в результате блок (открытый текст+КАС) шифруется затем на сеансовом ключе.
Другой способ, позволяющий контролировать целостность передаваемых сообщений, основан на использовании кода целостности сообщений (КЦС) (message integrity check, MIC), в другой терминологии — имитовставки. Как и в случае КАС, предполагается, что отправитель и получатель знают общий сеансовый ключ. Для симметричной криптосистемы вычисление КЦС состоит из вычисления хэш-функции от передаваемого сообщения с последующим шифрованием полученного значения на сеансовый ключ. Для асимметричной криптосистемы контроль целостности обеспечивается за счет цифровой подписи.
Отметим, что в случае симметричной криптосистемы КЦС не обеспечивает доказательства принадлежности при отказе отправителя от ранее переданного сообщения и не позволяет доказать факт подделки сообщения в случае компрометации отправителя со стороны получателя (что всегда возможно, так как получатель знает ключ отправителя).
В асимметричной криптосистеме никто, кроме отправителя подписанного сообщения, не знает секретного ключа, на котором сообщение было подписано (предполагается, что ключ не скомпрометирован). Данное обстоятельство позволяет однозначно доказывать принадлежность при отказе отправителя/получателя от ранее переданного/принятого сообщения. Кроме того, получатель, не зная секретного ключа, не может подписать сообщение от лица отправителя и тем самым скомпрометировать его.
Проиллюстрируем описанные выше криптографические методы на примере протокола SSL [51], разработанного компанией Netscape Communication для обеспечения секретного режима взаимодействия и аутентификации сервера в рамках Web-технологии.
Для описания протокола необходимо ввести некоторые обозначения и соглашения. Для процедуры шифрования/дешифрования {открытого_сообщения} на некотором {ключе} вводится обозначение {открытое_сообщение}ключ. Значение {функции}, вычисленной от {аргумента}, обозначается как функции {аргумент}. В соответствии с традицией, сложившейся в криптографической литературе, абонента А будем называть Алисой, а абонента В Бобомз.
Предлагаемое ниже Описание протокола SSL дается последовательно, по мере разъяснения возникающих криптографических задач.
Предположим, Алиса хочет установить, является ли Боб подлинным источником информации. Боб имеет пару ключей: секретный и открытый соответственно. Алиса не имеет своей пары ключей и может воспользоваться только открытым ключом Боба. Открытый ключ Боб заранее передает Алисе (способ передачи будет уточнен позже). Тогда, воспользовавшись двухключевой криптографией, Алиса имеет возможность проверить, действительно ли тот, кто выдает себя за Боба, таковым является. Для этого Алиса генерирует случайное сообщение и посылает его Бобу:
А® В случайное сообщение
Боб отвечает зашифрованным на своем секретном ключе сообщением, которое он получил от Алисы:
В ® А {случайное_сообщение}секретный_ключ_Боба
Алиса принимает сообщение и дешифрует его на открытом ключе Боба. Критерием оценки подлинности источника служит результат сравнения исходного сообщения с тем, которое Алиса получила в результате дешифрования. Воспользовавшись тем, что сообщения случайны, злоумышленник может вынудить Боба зашифровать компрометирующее его сообщение.
Например:
А ® С {случайное_сообщение}
С ® В Скатие[фиктивное_долговое_ обнэательство_Боба]
В ®С {Сиатие[фиктивное_долговое_обиэательство_Боба] }секретный_ключ_Бобa
В данном примере злоумышленник использует методы сжатия информации (zip, arj, gz, compress и т.д.) для маскировки сообщения. Результат сжатия — случайное сообщение. Боб, зашифровав принятое сообщение и передав его злоумышленнику, принимает на себя обязательства, от которых не сможет отказаться (всегда можно доказать, что сообщение было зашифровано на уникальном секретном ключе Боба).
Положение может быть исправлено за счет использования хэш-функции и изменения протокола: ответ на запрос Алисы должен быть оригинальным сообщением Боба. Предполагается, что хэш-функция всем известна.
В результате имеем следующий протокол:
А ® В Привет, это ты, Боб?
В ® А Привет, Алиса, это я, Боб
{хэш-функции[Привет, Алиса, это я, Боб]}секретный_ ключ_ Боба
В этом протоколе Боб посылает Алисе свое оригинальное сообщение в открытом виде и затем посылает зашифрованное значение хэш-функции от этого сообщения. Очевидно, что Алиса, со своей стороны, может вычислить значение функции от открытого сообщения Боба и дешифровать криптограмму на открытом ключе Боба. Совпадение результатов при сравнении будет служить доказательством того, что Боб является подлинным источником информации.
Попытаемся теперь представить протокол, с помощью которого Боб может передать свой открытый ключ Алисе. Пусть протокол выглядит следующим образом:
А ® В Привет, это ты, Боб?
В ® А Привет Алиса, это и, Боб, открытый_ ключ_ Боба
А ® В Докажи это
В ® А Привет Алиса, это я, Боб
{хэш_функции[Привет, Алиса, это и, Боб]}секретный_ ключ_ Боба
В представленном протоколе любой может выдать себя за Боба. Все, что нужно для этою иметь, — это секретный и открытый ключи. Любой может обмануть Алису, утверждая, что он Боб, и представив ей свой открытый ключ вместо ключа Боба. При этом Алиса не имеет возможности обнаружить мимикрию.
Проблема распределения открытых ключей решается с помощью специальных сертификатов. Сертификат выдается доверенным центром и имеет следующие составляющие:
• имя центра сертификации;
• имя объекта сертификации;
• открытый ключ объекта сертификации;
• дата истечения сертификата.
Сертификат подписывается на секретном ключе центра сертификации. Зная открытый
ключ центра, можно убедиться в подлинности открытого ключа объекта сертификации. Тогда, используя технологию сертификатов, при условии, что сертификат Боба принадлежит действительно Бобу, можно воспользоваться следующим протоколом:
А ®B Привет, это ты, Боб?
В ® А Привет, Алиса, это я, Боб, сертификат_ Боба
А ® В Докажи это
В ® А Привет, Алиса, это я, Боб
{хэш-функция[Привет, Алиса, это я, Боб]}секретный_ключ_Боба
Теперь Алиса, получив первое сообщение, может, проверив сертификат, убедиться в подлинности открытого ключа Боба. Предположим, что некий злоумышленник перехватывает сообщения от Алисы и Боба и ведет с Алисой диалог от лица Боба. Рассмотрим следующий протокол:
А ® С Привет, это ты, Боб?
С ® А Привет, Алиса, это я, Боб сертификат_ Боба
А ®С Докажи это
С ® А ???
На последнем этапе протокола Алиса обнаружит мимикрию, так как злоумышленник, не зная секретного ключа, не сможет воспроизвести сообщение Боба.
Убедившись в подлинности источника информации, Алиса может послать ему сообщение, прочитать которое сможет только Боб:
А ® В {секрет}открытый_ключ_Боба
Сообщение {секрет} может быть получено путем дешифрования на секретном ключе Боба. Таким образом, метод двухключевой криптографии применяется для организации обмена сеансовыми секретными ключами с последующим их использованием в схеме симметричного шифрования (один и тот же ключ для шифрования и дешифрования).
В результате Алиса знает сеансовый ключ, так как сама его сгенерировала перед тем, как послать Бобу. Боб знает сеансовый ключ, так как дешифровал сообщение Алисы на своем секретном ключе. Поскольку оба располагают одним и тем же секретным ключом, они могут воспользоваться симметричной схемой шифрования для обмена секретными сообщениями. Очевидно, что сеансовый ключ изменяется от сеанса к сеансу. В итоге протокол будет выглядеть следующим образом (сеансовый ключ в протоколе обозначен как {секрет}):
Рассмотрим следующую ситуацию. Ясно, что злоумышленник не знает сеансового секрет го ключа, которым обменялись Алиса и Боб. Однако он может вмешиваться в их диалог и искажать передаваемые сообщения. Предположим, что злоумышленник расположился между Алисой и Бобом и имеет возможность просматривать все сообщения как с той, так в другой стороны. Основная часть сообщений не изменяется, но некоторые целенаправленно искажаются (сделать это не трудно, так как предполагается, что протокол известен всем, том числе и злоумышленнику):
Как следует из приведенного выше протокола, злоумышленник искажает сообщение Боба Алисе после того, как они обменялись сеансовым секретным ключом. В этой точке протокола Алиса полностью доверяет Бобу и адекватно воспринимает все его сообщения. Ясно, что в этой ситуации Алисе могут быть навязаны ложные сообщения. Для защиты от подобно атаки необходимо ввести зависимость передаваемых сообщений от общей для Алисы и Боба секретной информации. Именно для этих целей служит код аутентификации сообщения (KAC), вычисляемый как значение хэш-функции от конкатенации передаваемого сообщению и сеансового ключа:
КАС := хэш_ функция[открытое_ сообщение, секрет]
Поскольку злоумышленник не знает секретного ключа, он не может вычислить правильное значение хэш-функции. Даже если злоумышленник случайно искажает сообщения, его шансы на успех чрезвычайно малы:
Теперь Алиса и Боб имеют возможность обнаруживать ложные сообщения. Критерием является результат сравнения принятого КАС (предварительно дешифрованного) и КАС, вычисленного от принятого открытого сообщения и сеансового секретного ключа.