ЗАЩИТА ИНФОРМАЦИИ Лекция № 1 ЗАЩИТА ИНФОРМАЦИИ В СЕТЯХ ПЕРЕДАЧИ ДАННЫХ Защитой информации называют комплекс мероприятий, проводимых для предотвращения утечки, хищения, утраты, несанкционированного уничтожения, искажения, модификации (подделки), несанкционированного копирования и блокирования информации. Так как утрата информации может происходить по техническим, объективным и неумышленным причинам, под это определение попадают меры, связанные с повышением надежности аппаратного обеспечения сервера из-за отказов или сбоев в работе винчестеров, недостатков в используемом программном обеспечении, сбоев питания и др. Переход от работы на персональных компьютерах к работе в сети существенно усложняет защиту информации по следующим причинам: наличие большого числа пользователей в сети и их переменный состав; значительная протяженность и наличие многих потенциальных каналов проникновения в сеть; недостатки в аппаратном и программном обеспечении, которые зачастую обнаруживаются только в процессе функционирования. КАНАЛЫ УТЕЧКИ ИНФОРМАЦИИ В сети имеется много физических мест и каналов несанкционированного доступа к данным. Каждое устройство в сети является источником электромагнитного излучения из-за того, что эти поля, особенно на высоких частотах невозможно полностью экранировать. Система заземления вместе с кабельной системой и сетью электропитания может служить каналом доступа к информации в сети, в том числе на участках, находящихся вне зоны контролируемого доступа и потому особенно уязвимых. Возможна утечка информации по каналам, находящимся вне сети: хранилище носителей информации; элементы строительных конструкций и окна помещений; телефонные, радио-, а также иные проводные и беспроводные каналы. Любые дополнительные соединения с другими сегментами или подключение к Internet порождают новые проблемы. Атаки на локальную сеть через подключение к Internet для того, чтобы получить доступ к конфиденциальной информации, в последнее время получили широкое распространение, что связано с недостатками встроенной системы защиты информации в протоколах TCP/IP. СЕТЕВЫЕ АТАКИ ЧЕРЕЗ ИНТЕРНЕТ сниффер пакетов (sniffer – в данном случае в смысле фильтрация) – прикладная программа, которая использует сетевую карту; IP-спуфинг (spoof – обман, мистификация) – происходит, когда хакер, находящийся внутри корпорации или вне ее, выдает себя за санкционированного пользователя; отказ в обслуживании (Denial of Service – DoS). Атака DoS делает сеть недоступной для обычного использования за счет превышения допустимых пределов функционирования сети, операционной системы или приложения; парольные атаки – попытка подбора пароля легального пользователя для входа в сеть; атаки типа Man-in-the-Middle – непосредственный доступ к пакетам, передаваемым по сети; атаки на уровне приложений; сетевая разведка – сбор информации о сети с помощью общедоступных данных и приложений; злоупотребление доверием внутри сети; вирусы и приложения типа «троянский конь». ПРОГРАММНЫЕ СРЕДСТВА ЗАЩИТЫ ИНФОРМАЦИИ Интегрированные средства защиты информации в сетевых ОС не всегда могут полностью решить возникающие на практике проблемы связанные с защитой информации. Специализированное программное обеспечение для защиты информации от несанкционированного доступа обладают существенно лучшими возможностями и характеристиками, чем интегрированные средства сетевых ОС. Кроме криптографических систем и программ шифрования, существует много других доступных внешних средств защиты данных. Наиболее часто упоминаются следующие системы, позволяющие контролировать и ограничивать информационные потоки: Firewalls – брандмауэры (firewall - огненная стена). Между локальной и глобальной сетями размещаются специальные промежуточные серверы, которые фильтруют и инспектируют весь проходящий через них трафик. Proxy-servers (proxy - доверенное лицо). Весь трафик сетевого и транспортного уровней между локальной и глобальной сетями полностью запрещается, а обращения из локальной сети в глобальную происходят через специальные серверы-посредники. Очевидно, что при такой схеме взаимодействия обращения из глобальной сети в локальную становятся невозможными в принципе. Этот метод, достаточно надежный метод, не дает защиты против сетевых атак на более высоких уровнях (вирусы, код Java и JavaScript). ШИФРОВАНИЕ Шифрование — обратимое преобразование информации в целях сокрытия от неавторизованных лиц, с предоставлением, в это же время, авторизованным пользователям доступа к ней. Шифрование необходимо для соблюдения конфиденциальности передаваемой информации. Важной особенностью любого алгоритма шифрования является использование ключа, который утверждает выбор конкретного преобразования из совокупности возможных для данного алгоритма. Пользователи являются авторизованными, если они обладают определённым аутентичным ключом. Вся сложность и, собственно, задача шифрования состоит в том, как именно реализован этот процесс. В целом, шифрование состоит из двух составляющих — зашифровывание и расшифровывание. С помощью шифрования обеспечиваются три состояния безопасности информации: 1. Конфиденциальность. Шифрование используется для скрытия информации от неавторизованных пользователей при передаче или при хранении. 2. Целостность. Шифрование используется для предотвращения изменения информации при передаче или хранении. 3. Идентифицируемость. Шифрование используется для аутентификации источника информации и предотвращения отказа отправителя информации от того факта, что данные были отправлены именно им. Для того, чтобы прочитать зашифрованную информацию, принимающей стороне необходимы ключ и дешифратор (устройство, реализующее алгоритм расшифровывания). Идея шифрования состоит в том, что злоумышленник, перехватив зашифрованные данные и не имея к ним ключа, не может ни прочитать, ни изменить передаваемую информацию. Кроме того, в современных криптосистемах (с открытым ключом) для шифрования, расшифрования данных могут использоваться разные ключи. Однако, с развитием криптоанализа, появились методики, позволяющие дешифровать закрытый текст без ключа. Они основаны на математическом анализе переданных данных. ЦЕЛИ ШИФРОВАНИЯ Шифрование применяется для хранения важной информации в ненадёжных источниках и передачи её по незащищённым каналам связи. Такая передача данных представляет из себя два взаимно обратных процесса: Перед отправлением данных по линии связи или перед помещением на хранение они подвергаются зашифровыванию. Для восстановления исходных данных из зашифрованных к ним применяется процедура расшифровывания. Шифрование изначально использовалось только для передачи конфиденциальной информации. Однако впоследствии шифровать информацию начали с целью её хранения в ненадёжных источниках. Шифрование информации с целью её хранения применяется и сейчас, это позволяет избежать необходимости в физически защищённом хранилище. Шифром называется пара алгоритмов, реализующих каждое из указанных преобразований. Эти алгоритмы применяются к данным с использованием ключа. Ключи для шифрования и для расшифровывания могут различаться, а могут быть одинаковыми. Секретность второго (расшифровывающего) из них делает данные недоступными для несанкционированного ознакомления, а секретность первого (шифрующего) делает невозможным внесение ложных данных. В первых методах шифрования использовались одинаковые ключи, однако в 1976 году были открыты алгоритмы с применением разных ключей. Сохранение этих ключей в секретности и правильное их разделение между адресатами является очень важной задачей с точки зрения сохранения конфиденциальности передаваемой информации. Эта задача исследуется в теории управления ключами (в некоторых источниках она упоминается как разделение секрета). В настоящий момент существует огромное количество методов шифрования. Главным образом эти методы делятся, в зависимости от структуры используемых ключей, на симметричные методы и асимметричные методы. Кроме того, методы шифрования могут обладать различной криптостойкостью и по-разному обрабатывать входные данные — блочные шифры и поточные шифры. Всеми этими методами, их созданием и анализом занимается наука криптография. ЗАШИФРОВАНИЕ И РАСШИФРОВАНИЕ Шифрование состоит из двух взаимно обратных процессов: зашифрование и расшифрование. На абстрактном уровне представимы математическими функциями, к которым предъявляются определённые требования. Математически данные, используемые в шифровании, представимы в виде множеств, над которыми построены данные функции. Пусть существуют два множества, представляющие данные М и С; каждая из двух функций (шифрующая и расшифровывающая) является отображением одного из этих множеств в другое. Зашифровывающая функция: E: 𝑀 → 𝐶 Расшифровывающая функция: 𝐷: 𝐶 → 𝑀 Элементы этих множеств m и c являются аргументами соответствующих функций. Также в эти функции уже включено понятие ключа. То есть, тот необходимый ключ для зашифровывания или расшифровывания является частью функции. Это позволяет рассматривать процессы шифрования абстрактно, вне зависимости от структуры используемых ключей. Но в общем случае, для каждой из этих функций аргументами являются данные и вводимый ключ 𝐸𝐾1 𝑚 = 𝑐 𝐷𝐾2 𝑐 = 𝑚 Если для зашифровывания и расшифровывания используется один и тот же ключ 𝐾 = 𝐾1 = 𝐾2 , то такой алгоритм относят к симметричным. Если же из ключа шифрования алгоритмически сложно получить ключ расшифровывания, то алгоритм относят к асимметричным, то есть к алгоритмам с открытым ключом Для применения в целях шифрования эти функции, в первую очередь, должны быть взаимно обратными 𝐷 = 𝐸 −1 . 𝐷𝐾2 𝐸𝐾1 𝑚 = 𝑚 𝐸𝐾1 𝐷𝐾2 𝑐 = 𝑐 Важной характеристикой шифрующей функции E является её криптостойкость. Косвенной оценкой криптостойкости является оценка взаимной информации между открытым текстом и шифротекстом, которая должна стремиться к нулю. КРИПТОСТОЙКОСТЬ ШИФРА Криптографическая стойкость — свойство криптографического шифра противостоять криптоанализу, то есть анализу, направленному на изучение шифра с целью его дешифрования. Для изучения криптоустойчивости различных алгоритмов была создана специальная теория, рассматривающая типы шифров и их ключи, а также их стойкость. Основателем этой теории является Клод Шеннон. Криптостойкость шифра есть его важнейшая характеристика, которая отражает то, насколько успешно алгоритм решает задачу шифрования. Любая система шифрования, кроме абсолютно криптостойких, может быть взломана простым перебором всех возможных в данном случае ключей. Но перебирать придётся до тех пор, пока не отыщется тот единственный ключ, который и поможет расшифровать шифротекст. Выбор этого единственного ключа основан на возможности определения правильно расшифрованного сообщения. Зачастую эта особенность является камнем преткновения при подборе ключа, так как при переборе вручную криптоаналитику достаточно просто отличить правильно расшифрованный текст, однако ручной перебор очень медленен. Если же программа выполняет перебор, то это происходит быстрее, однако ей сложно выделить правильный текст. Невозможность взлома полным перебором абсолютно криптостойкого шифра так же основана на необходимости выделить в расшифрованном сообщении именно то, которое было зашифровано в криптограмме. Перебирая все возможные ключи и применяя их к абсолютно стойкой системе, криптоаналитик получит множество всех возможных сообщений, которые можно было зашифровать (в нём могут содержаться и осмысленные сообщения). Кроме того, процесс полного перебора также длителен и трудоёмок. Другой метод дешифровки основывается на анализе перехваченных сообщений. Этот метод имеет большое значение, так как перехват сообщений возможен, если злоумышленник обладает специальным оборудованием, которое, в отличие от достаточно мощного и дорогостоящего оборудования для решения задач методом полного перебора, более доступно. Например, перехват ван Эйка для ЭЛТ монитора осуществим с помощью обычной телевизионной антенны. Кроме того, существуют программы для перехвата сетевого трафика (снифферы), которые доступны и в бесплатных версиях. При анализе передаваемых сообщений криптоустойчивость шифра оценивается из возможности получения дополнительной информации об исходном сообщении из перехваченного. Возможность получения этой информации является крайне важной характеристикой шифра, ведь эта информация в конечном итоге может позволить злоумышленнику дешифровать сообщение. В соответствии с этим шифры делятся на абсолютно стойкие и достаточно стойкие. СИММЕТРИЧНОЕ ШИФРОВАНИЕ (симметричное шифрование или системы с закрытыми ключами – privatekey systems) В симметричных криптосистемах для шифрования и расшифровывания используется один и тот же ключ. Отсюда название — симметричные. Алгоритм и ключ выбирается заранее и известен обеим сторонам. Сохранение ключа в секретности является важной задачей для установления и поддержки защищённого канала связи. В связи с этим, возникает проблема начальной передачи ключа (синхронизации ключей). Кроме того существуют методы криптоатак, позволяющие так или иначе дешифровать информацию не имея ключа или же с помощью его перехвата на этапе согласования. В целом эти моменты являются проблемой криптостойкости конкретного алгоритма шифрования и являются аргументом при выборе конкретного алгоритма. Симметричные, а конкретнее, алфавитные алгоритмы шифрования были одними из первых алгоритмов. Позднее было изобретено асимметричное шифрование, в котором ключи у собеседников разные. СХЕМА РЕАЛИЗАЦИИ Задача. Есть два собеседника — Алиса и Петр, они хотят обмениваться конфиденциальной информацией. Генерация ключа. Петр (или Алиса) выбирает ключ шифрования d и алгоритмы E и D (функции шифрования и расшифрования), затем посылает эту информацию Алисе (Петру). Шифрование и передача сообщения. Алиса шифрует сообщение m с использованием полученного ключа d 𝐸 𝑚, 𝑑 = 𝑐 И передаёт Петру полученный шифротекст c . То же самое делает Петр, если хочет отправить Алисе сообщение. Расшифровывание сообщения. Петр (Алиса), с помощью того же ключа d, расшифровывает шифротекст c. 𝐷 𝑐, 𝑑 = 𝑚 Недостатками симметричного шифрования является проблема передачи ключа собеседнику и невозможность установить подлинность или авторство текста. Поэтому, например, в основе технологии цифровой подписи лежат асимметричные схемы. АСИММЕТРИЧНОЕ ШИФРОВАНИЕ (несимметричное шифрование или системы с открытыми ключами – public-key systems) В системах с асимметричным шифрованием используются два ключа — открытый и закрытый, связанные определённым математическим образом друг с другом. Открытый ключ передаётся по открытому (то есть незащищённому, доступному для наблюдения) каналу и используется для шифрования сообщения и для проверки ЭЦП. Для расшифровки сообщения и для генерации ЭЦП используется секретный ключ. Данная схема решает проблему симметричных схем, связанную с начальной передачей ключа другой стороне. Если в симметричных схемах злоумышленник перехватит ключ, то он сможет как «слушать», так и вносить правки в передаваемую информацию. В асимметричных системах другой стороне передается открытый ключ, который позволяет шифровать, но не расшифровывать информацию. Таким образом решается проблема симметричных систем, связанная с синхронизацией ключей. СХЕМА РЕАЛИЗАЦИИ Задача. Есть два собеседника — Алиса и Петр, Алиса хочет передавать Петру конфиденциальную информацию. Генерация ключевой пары. Петр выбирает алгоритм (E,D) и пару открытый, закрытый ключи (e, d) и посылает открытый ключ e Алисе по открытому каналу. Шифрование и передача сообщения. Алиса шифрует информацию с использованием открытого ключа Петра e. 𝐸 𝑚, 𝑒 = 𝑐 И передаёт Петру полученный шифротекст c. Расшифровывание сообщения. Петр с помощью закрытого ключа d, расшифровывает шифротекст c. 𝐷 𝑐, 𝑑 = 𝑚 Если необходимо наладить канал связи в обе стороны, то первые две операции необходимо проделать на обеих сторонах, таким образом, каждый будет знать свои закрытый, открытый ключи и открытый ключ собеседника. Закрытый ключ каждой стороны не передается по незащищенному каналу, тем самым оставаясь в секретности. УПРАВЛЕНИЕ КЛЮЧАМИ Основные угрозы ключам При шифровании очень важно правильно содержать и распространять ключи между собеседниками, так как это является наиболее уязвимым местом любой криптосистемы. Если собеседники обмениваются информацией посредством идеальной шифрующей системы, то всегда существует возможность найти дефект не в используемой системе, а в тех, кто её использует. Можно выкрасть ключи у доверенного лица или подкупить его, и зачастую это оказывается гораздо дешевле, чем взламывание шифра. Поэтому процесс, содержанием которого является составление и распределение ключей между пользователями, играет важнейшую роль в криптографии как основа для обеспечения конфиденциальности обмена информацией. ЦЕЛИ УПРАВЛЕНИЯ КЛЮЧАМИ Сохранение конфиденциальности закрытых ключей и передаваемой информации. Обеспечение надёжности сгенерированных ключей. Предотвращение несанкционированного использования закрытых или открытых ключей, например использование ключа, срок действия которого истек. Управление ключами в криптосистемах осуществляется в соответствии с политикой безопасности. Политика безопасности диктует угрозы, которым должна противостоять система. Система, контролирующая ключи, делится на систему генерации ключей и систему контроля ключей. Система генерации ключей обеспечивает составление криптоустойчивых ключей. Сам алгоритм генерации должен быть безопасным, так как значительная часть безопасности, предоставляемой шифрованием, заключена в защищённости ключа. Если выбор ключей доверить пользователям, то они с большей вероятностью выбирают ключи типа «Ваня», нежели «*9(hH/A», просто потому что «Ваня» проще запомнить. А такого рода ключи очень быстро подбираются методом вскрытия со словарём, и тут даже самый безопасный алгоритм не поможет. Кроме того, алгоритм генерации обеспечивает создание статистически независимых ключей нужной длины, используя наиболее криптоустойчивый алфавит. Система контроля ключей служит для наиболее безопасной передачи ключей между собеседниками. Если передавать ключ шифрования по открытому каналу, который могут прослушивать, то злоумышленник легко перехватит ключ, и всё дальнейшее шифрование будет бессмысленным. Методы асимметричного шифрования решают эту проблему, используя разные ключи для зашифровывания и расшифровывания. Однако при таком подходе количество ключей растет с увеличением количества собеседников (каждый вынужден хранить свои закрытый и открытый ключи и открытые ключи всех собеседников). Кроме того, методы асимметричного шифрования не всегда доступны и осуществимы. В таких ситуациях используются разные методы по обеспечению безопасной доставки ключей: одни основаны на использовании для доставки ключей альтернативных каналов, считающихся безопасными. Другие, в согласии со стандартом X9.17, используют два типа ключей: ключи шифрования ключей и ключи шифрования данных. Третьи разбивают передаваемый ключ на составные части и передают их по различным каналам. Также существуют различные комбинации перечисленных выше методов. Кроме того, система управления ключами при возникновении большого количества используемых ключей выступает в роли центрального сервера ключей, хранящего и распределяющего их. В том числе она занимается своевременной заменой скомпрометированных ключей. В некоторых системах в целях быстрой коммуникации могут использоваться сеансовые ключи. Сеансовый ключ — ключ шифрования, который используется только для одного сеанса связи. При обрыве сеанса или его завершении сеансовый ключ уничтожается. Также используемые ключи обычно имеют срок действия, то есть срок, в течение которого они являются аутентичными для использования. После истечения данного срока ключ изымается системой управления и, если необходимо, генерируется новый. КЛАССИЧЕСКИЕ АЛГОРИТМЫ ШИФРОВАНИЯ ДАННЫХ Применяются следующие основные методы шифрования: подстановка (простая – одноалфавитная, многоалфавитная однопетлевая, многоалфавитная многопетлевая); гаммирование (смешивание с короткой, длинной или другой маской); перестановка (простая, усложненная). Устойчивость каждого из перечисленных методов к дешифрованию без знания ключа характеризуется количественно с помощью показателя, представляющего собой минимальный объем зашифрованного текста, который может быть дешифрован посредством статистического анализа. Стандартные методы шифрования (национальные или международные) для повышения степени устойчивости к дешифрованию реализуют несколько этапов (шагов) шифрования, на каждом из которых используются различные «классические» методы шифрования в соответствии с выбранным ключом (ключами).