методы защиты информации. безопасность баз анных. 1. Математические (криптографические) методы защиты информации (ммзи) элемент системы инженернотехнической защиты информации Вопрос История криптографии
Скачать 0.5 Mb.
|
Тема 9. Протоколы обмена ключами Цель: Рассмотреть криптографический протокол, как основной обязательный регламент действий участников информационного обмена, позволяющий обеспечить безопасность информационных ресурсов. Задачи: 1. Изучить: основные типы криптографических протоколов; критерии классификации криптографических протоколов; принципы открытого распределения ключей. 2. Приобрести компетенции: классификации и выбора криптографических протоколов; формирования исходных данных для организации защищенной связи. Содержание темы: 1. Понятие криптографического протокола. Основные примеры. 2. Классификация криптографических протоколов. Протоколы сертификации ключей. 3. Протоколы предварительного распределения ключей. 4. Открытое распределение ключей Диффи-Хеллмана и его модификации. Вопрос 1. Понятие криптографического протокола. Основные примеры. Протокол — это распределенный алгоритм, определяющий последовательность действий каждой из сторон. В процессе выполнения протокола идентификации каждая из сторон не передает никакой информации о своем секретном ключе, а хранит его у себя и использует для формирования ответных сообщений на запросы, поступающие при выполнении протокола. Наконец, применительно к самой информации аутентификация означает проверку того, что информация, передаваемая по каналу, является подлинной по содержанию, источнику, времени создания, времени пересылки и т. д. Проверка подлинности содержания информации сводится, по сути, к проверке ее неизменности (с момента создания) в процессе передачи или хранения, то есть проверке целостности. Аутентификация источника данных означает подтверждение того, что исходный документ был создан именно заявленным источником. Заметим, что если стороны доверяют друг другу и обладают общим секретным ключом, то аутентификацию сторон можно обеспечить применением кода аутентификации. Действительно, каждое успешно декодированное получателем сообщение может быть создано только отправителем, так как только он знает их общий секретный ключ. Для не доверяющих друг другу сторон решение подобных задач с использованием общего секретного ключа становится невозможным. Поэтому при аутентификации источника данных нужен механизм цифровой подписи, который будет рассмотрен ниже. В целом, аутентификация источника данных выполняет ту же роль, что и протокол идентификации. Отличие заключается только в том, что в первом случае имеется некоторая передаваемая информация, авторство которой требуется установить, а во втором требуется просто установить сторону, с которой осуществляется взаимодействие. Вопрос 2. Классификация криптографических протоколов. Протоколы сертификации ключей. Создание цифровой подписи позволило решить проблему сертификации открытых ключей. Она заключается в том, что перед тем как использовать открытый ключ некоторого абонента для отправки ему конфиденциального сообщения, отправитель должен быть уверен, что открытый ключ действительно принадлежит этому абоненту. Открытые ключи необходимо очень тщательно обезопасить, в том смысле, что если сервер, на котором они хранятся, не обеспечивает их целостность и аутентичность, то злоумышленник имеет возможность, подменив открытый ключ одного из абонентов, выступать от его имени. Поэтому для защиты открытых ключей создаются специальные центры сертификации, которые играют роль доверенной третьей стороны и заверяют открытые ключи каждого из абонентов своими цифровыми подписями. Сертификат представляет собой набор данных, заверенный цифровой подписью центра и включающий открытый ключ и список дополнительных атрибутов, принадлежащих абоненту. К таким атрибутам относятся: имена пользователя и центра сертификации, номер сертификата, время действия сертификата, предназначение открытого ключа (цифровая подпись, шифрование) и т. д. Международный стандарт ISO Х.509 определяет общую структуру сертификатов открытых ключей и протоколы их использования для аутентификации в распределенных системах. Центры сертификации. Центр сертификации предназначен для регистрации абонентов, изготовления сертификатов открытых ключей, хранения изготовленных сертификатов, поддержания в актуальном состоянии справочника действующих сертификатов и выпуска списка досрочно отозванных сертификатов. В некоторых системах функции регистрации абонентов и обслуживания сертификатов разделяют, создавая дополнительный центр регистрации (регистрационный центр). Для сетей с большим числом абонентов создается несколько центров сертификации. Центры сертификации, как правило, объединяются в древовидную структуру, в корне которой находится главный центр сертификации, который выдает сертификаты подчиненным ему отраслевым центрам, тем самым обеспечивая доверие к открытым ключам этих центров. Каждый центр вышестоящего уровня аналогичным образом делегирует право выпуска сертификатов подчиненным ему центрам. В результате доверие сертификату открытого ключа каждого центра основано на заверении его сертификата ключом вышестоящего центра. Сертификаты главного центра подписывает сам главный центр. Зная иерархию и подчиненность друг другу центров сертификации, можно всегда точно установить, является ли абонент владельцем данного открытого ключа. Основная трудность при создании центров сертификации заключается в их юридическом статусе и потенциальных финансовых возможностях по выплате компенсаций за ущерб, понесенный в результате невыполнения подписанных цифровыми подписями с использованием сертификатов, выданных этим центром, договоров и контрактов, сорванных по причине отказов от цифровых подписей или их подделки. Вопрос 3. Протоколы предварительного распределения ключей. Порядок использования криптографической системы определяется системами установки и управления ключами. Система установки ключей определяет алгоритмы и процедуры генерации, распределения, передачи и проверки ключей. Система управления ключами определяет порядок использования, смены, хранения и архивирования, резервного копирования и восстановления, замены или изъятия из обращения скомпрометированных, а также уничтожения старых ключей. Предварительное распределение ключей для надежной защиты информации, передаваемой по открытому каналу связи, применяют криптографические средства. Чтобы воспользоваться ими, необходимо осуществить первоначальный выбор и установку ключей. Для генерации ключей могут применяться различные алгоритмы. Выбранные ключи необходимо как-либо передать взаимодействующим сторонам. Поэтому для первоначального распределения ключей необходим защищенный канал связи. Самый надежный способ первоначального распределения ключей — это личная встреча всех взаимодействующих сторон. Можно использовать также специальных курьеров, которые будут развозить ключи. Однако при большом числе взаимодействующих сторон требуется предварительная рассылка значительного объема ключевой информации и последующее ее хранение. Поэтому на практике применяют специальные системы предварительного распределения ключей, предусматривающие распределение и хранение не самих ключей, а некоторой меньшей по объему исходной информации, на основе которой в дальнейшем каждая сторона может вычислить ключ для взаимодействия с другой стороной. Система предварительного распределения ключей включает два алгоритма. С помощью первого алгоритма осуществляется генерация исходной информации. Эта информация включает открытую часть, которая будет передана всем сторонам или помещена на общедоступном сервере, а также секретные части каждой стороны. Второй алгоритм предназначен для вычисления действующего значения ключа для взаимодействия между абонентами по имеющейся у них секретной и общей открытой части исходной ключевой информации. Система предварительного распределения ключей должна быть устойчивой, то есть учитывать возможность раскрытия части ключей при компрометации, обмане или сговоре абонентов, и гибкой — допускать возможность быстрого восстановления путем исключения скомпрометированных и подключения новых абонентов. Пересылка ключей. После того как предварительное распределение ключей произведено, может потребоваться передача ключей для каждого конкретного сеанса взаимодействия. Передача этих ключей может осуществляться с помощью шифрования с использованием ранее полученных ключей. Для передачи зашифрованных ключей по открытому каналу связи между не доверяющими друг другу абонентами требуется решение всего комплекса задач по установлению подлинности различных аспектов взаимодействия, начиная от подлинности субъектов взаимодействия, подлинности пере даваемых сообщений, подлинности самого сеанса связи и кончая подтверждением правильности (идентичности) полученных абонентами ключей. Для централизованного управления пересылкой ключей создаются специальные доверенные центры, выполняющие функции центров распределения или перешифрования ключей. Различие между этими центрами заключается в том, что в первом случае генерация ключей осуществляется в центре распределения, а во втором случае — самими абонентами. Открытое распределение ключей. Наиболее просто распределение ключей осуществляется в системах открытого распределения (секретных) ключей. Для сетей связи с большим числом абонентов традиционные подходы к построению системы распределения ключей оказываются очень неудобными. Диффи и Хеллман впервые показали, как можно решить эту задачу, используя незащищенный канал связи. В предложенной ими системе открытого распределения ключей каждая из сторон изначально имеет свой секретный параметр. Стороны реализуют определенный протокол взаимодействия по открытому каналу связи. При этом они обмениваются некоторыми сообщениями (образованными с помощью своих секретных параметров) и по результатам этого обмена вычисляют общий секретный связной ключ. В более поздних работах такие протоколы стали называть протоколами выработки общего ключа, поскольку изначально ни одна из сторон не имеет ключа и как такового распределения или пересылки ключей в нем не происходит. В исходном виде система Диффи и Хеллмана имела существенные недостатки, связанные с возможностью для третьей стороны по осуществлению активного вхождения в канал связи и проведению полного контроля передаваемой информации. Однако после небольших модификаций и дополнений их протокол уже позволяет осуществлять не только выработку общего ключа, но и одновременно проверять и подтверждать правильность вычислений, а также проводить взаимную аутентификацию взаимодействующих сторон. Схема разделения секрета. Еще одной задачей современной криптографии, тесно связанной с проблемой распределения ключей и активно развивающейся в последние годы, является задача построения схем разделения секрета. Для многих практически важных приложений, связанных с запуском или активизацией критических процессов или определяющих порядок получения доступа к значимым данным, ответственное лицо должно ввести секретный ключ. Чтобы обезопасить процедуру принятия решения и не отдавать все на волю одного человека, являющегося обладателем ключа, используют метод разделения секрета. Он состоит в назначении определенной группы лиц, которая имеет право принимать решение. Каждый член группы владеет определенной долей секрета (точнее, специально выбранным набором данных), полная совокупность которых позволяет восстановить секретный ключ. При этом схема разделения секрета выбирается с таким условием, что для восстановления секретного ключа требуется обязательное присутствие всех членов группы, так как в случае отсутствия хотя бы одного из участников объединение долей оставшихся членов группы гарантированно не позволяет получить никакой информации о секретном ключе. Таким образом, схема разделения секрета определяется двумя алгоритмами, удовлетворяющими сформулированному выше условию: первый алгоритм определяет порядок вычисления значений долей по заданному значению секретного ключа, а второй предназначен для восстановления значения секрета по известным долям. Задачу построения схемы разделения секрета можно обобщить: - либо путем введения так называемой структуры доступа, когда решение может приниматься не одной, а несколькими различными группами, причем часть из участников может наделяться правом "вето"; - либо путем добавления механизмов, позволяющих обнаружить обман или сговор участников; - либо введением специального протокола распределения долей между участниками с подтверждением правильности полученной информации и аутентификацией сторон. Вопрос 4. Открытое распределение ключей Диффи-Хеллмана и его модификации. Диффи и Хелман предложили для создания криптографических систем с открытым ключом функцию дискретного возведения в степень. Необратимость преобразования в этом случае обеспечивается тем, что достаточно легко вычислить показательную функцию в конечном поле Галуа состоящим из p элементов. (p - либо простое число, либо простое в любой степени). Вычисление же логарифмов в таких полях - значительно более трудоемкая операция. Если y=x,, 1<x<p-1, где - фиксированный элемент поля GF(p), то x=log y над GF(p). Имея x, легко вычислить y. Для этого потребуется 2 ln(x+y) операций умножения. Обратная задача вычисления x из y будет достаточно сложной. Если p выбрано достаточно правильно, то извлечение логарифма потребует вычислений, пропорциональных: L(p) = exp { (ln p ln ln p)0.5 } Для обмена информацией первый пользователь выбирает случайное число x1, равновероятное из целых 1...p-1. Это число он держит в секрете, а другому пользователю посылает число: y1 = xmod p Аналогично поступает и второй пользователь, генерируя x2 и вычислив y2, отправляя его первому пользователю. В результате этого они могут вычислять k12 = x1x2mod p. Для того, чтобы вычислить k12, первый пользователь возводит y2 в степень x1. То же делает и второй пользователь. Таким образом, у обоих пользователей оказывается общий ключ k12, который можно использовать для шифрования информации обычными алгоритмами. В отличие от алгоритма RSA, данный алгоритм не позволяет шифровать собственно информацию. Не зная x1 и x2, злоумышленник может попытаться вычислить k12, зная только перехваченные y1 и y2. Эквивалентность этой проблемы проблеме вычисления дискретного логарифма есть главный и открытый вопрос в системах с открытым ключом. Простого решения до настоящего времени не найдено. Так, если для прямого преобразования 1000-битных простых чисел требуется 2000 операций, то для обратного преобразования (вычисления логарифма в поле Галуа) - потребуется около 1030 операций. Как видно, при всей простоте алгоритма Диффи-Хелмана, вторым его недостатком по сравнению с системой RSA является отсутствие гарантированной нижней оценки трудоемкости раскрытия ключа. Кроме того, хотя описанный алгоритм позволяет обойти проблему скрытой передачи ключа, необходимость аутентификации остается. Без дополнительных средств, один из пользователей не может быть уверен, что он обменялся ключами именно с тем пользователем, который ему нужен. Опасность имитации в этом случае остается. Перечень литературы и Интернет-ресурсов: 1. А.П.Алферов, А.Ю.Зубов, А.С.Кузьмин, А.В.Черемушкин. Основы криптографии: Учебное пособие. – М.: Гелиос АРВ, 2005. стр. 78-88. 2. В.М. Фомичев. Дискретная математика и криптология Курс лекций. – М.: ДИАЛОГ-МИФИ, 2003. стр. 161-174. 3. Шаньгин В.Ф. Защита компьютерной информации. Эффективные методы и средства. – М.: ДМК Пресс, 2008. стр. 171-185. 4. http://www.fstec.ru/ 5. http://www.cryptopro.ru/ Глоссарий Атака - это реализация угрозы безопасности для криптосистемы. Аутентификация - процесс проверки соответствия полученной информации заявленной. Различают аутентификацию данных, источника данных и опознавание участника протокола. Гаммирование – процесс наложения по определенному закону гаммы шифра на открытые данные. Под гаммой шифра понимается псевдослучайная двоичная последовательность, вырабатываемая по заданному алгоритму и предназначенная как для зашифрования открытых данных, так и для расшифрования. Дешифрование – это нарушение конфиденциальности шифртекста, достигнутое методами криптоанализа. Достоверность – свойство информации, выражающееся в строгой принадлежности объекту, который является её источником, либо тому объекту, от которого эта информация принята. Зашифрование – процесс маскировки сообщения способом позволяющим скрыть его суть. Имитозащита является частным случаем аутентификации. Если криптоалгоритм обеспечивает защиту получателя от навязывания ложной информации, то говорят, что криптоалгоритм реализует имитозащиту данных. Ключ – это сменный элемент шифра, применяемый для зашифрования отдельного сообщения, обеспечивающий выбор одного варианта преобразования из совокупности возможных. Ключом определяется в первую очередь криптостойкость защищаемой информации. Множество возможных ключей называют пространством ключей. Коллизией называется пара аргументов М и М, которым соответствует одно и то же значение хэш-функции: h(M) = h(М’). Если число таких аргументов равно n, то говорят о коллизии кратности n. Если хэш-функция не имеет коллизий при заданных ограничениях на длину аргумента, то она называется свободной от коллизий. Конфиденциальность – свойство информации быть доступной только ограниченному кругу пользователей информационной системы, в которой циркулирует данная информация. Криптоанализ – это раздел прикладной математики изучающий методы, алгоритмы, программные и аппараты средства анализа криптосистем с целью извлечения конфиденциальных данных. Криптографический протокол – алгоритм, выполняемый не менее чем двумя сторонами, задаваемый последовательностью операций, выполняемых каждой из сторон. Криптография – это раздел прикладной математики изучающий методы преобразования информации в целях сокрытия ее содержания. Криптосистема – это система, реализованная программно, аппаратно или программно - аппаратно и осуществляющая криптографическое преобразование информации. Она состоит из пространства ключей, открытых текстов, шифртекстов и алгоритмов зашифрования и расшифрования. Оперативность – способность информации или некоторого информационного ресурса быть доступным для конечного пользователя в соответствии с его временными потребностями. Открытый текст – исходное сообщение. Отправитель – это субъект, посылающий сообщение. Получатель – это субъект, получающий данное сообщение. Расшифрование – процесс преобразования шифртекста в открытый текст. Синхропосылка – исходные открытые параметры алгоритма криптографического преобразования. Стеганография применяется для скрытия факта передачи секретных сообщений в другие сообщения, при этом скрывается даже само существование секрета. Стойкость криптоалгоритма (криптостойкость) заключается в способности шифра противостоять попыткам его расшифрования. Криптостойкость зависит от сложности алгоритма преобразования, длины ключа и объема ключевого пространства. Текст – упорядоченный набор из элементов выбранного алфавита. Хэш-функция – это функция, отображающая аргумент произвольной конечной длины в образ фиксированной длины. Функция, для которой по данному аргументу вычислить её значение легко, а по данному значению функции аргумент найти сложно, называется хэш-функцией, вычислимой в одну сторону. Все хэш-функции считаются вычислимыми в одну сторону. Если хэш-функция зависит от секретного ключа, она называется ключевой, в противном случае – бесключевой. Целостность – свойство информации или программного обеспечения сохранять свою структуру и содержание в процессе передачи и хранения. Шифр – совокупность обратимых преобразований множеств открытых данных на множество зашифрованных данных, заданны алгоритмом криптографического преобразования. Шифртекстом (криптограммой) называется зашифрованное сообщение. ID:1029110 |