- •Основы информационной безопасности на воздушном транспорте.
- •Лекция 1. Информационная инфраструктура предприятия воздушного транспорта.
- •Лекция 2. Основные понятия информационной безопасности. Законы и стандарты в области информационной безопасности.
- •Пример стандарта в области иб, использующего концепцию управление рисками: iso‑15408.
- •Лекция 3. Методики построения систем защиты информации (курс.Doc)
- •Лекция 4. Организационная защита информации.
- •Лекция 5. Криптография. Алгоритмы с симметричным и ассиметричным ключом. Хеш-функции.
- •Лекция 6. Ms sql Server 2008
- •Резервное копирование и восстановление данных
- •Лекция 7. Аутентификация. Active Directory. Безопасность в Windows. Контроль учетных записей
- •Лекция 8. Сетевое экранирование. Брандмауэр (Firewall).
- •Лекция 9. Безопасное соединение в сети Интернет. (ssl, vpn…)
- •Лекция 10. Безопасная передача потоковой информации в сети Интернет.
- •Обеспечение безопасности на базе протокола osp
- •Лекция 11. Безопасное беспроводное подключение к сети Интернет
- •Лекция 12. Виды атак на информационные ресурсы. Защита от атак.
- •Лекция 13. Компьютерные вирусы. Защита от компьютерных вирусов.
Лекция 5. Криптография. Алгоритмы с симметричным и ассиметричным ключом. Хеш-функции.
Криптология объединяет криптографию и криптоанализ.
Криптография - это наука об использовании математического аппарата для шифрования и дешифрования данных. Криптография позволяет хранить важную информацию или передавать её по незащищённым каналам связи (таким как Интернет) так, что она не сможет быть прочитана никем, кроме фактического адресата.
криптоанализ -- это наука об анализировании и взломе защищённых коммуникаций. Классический криптоанализ включает интересную смесь аналитических рассуждений, применения вычислительных средств, поиска паттернов.
Информация, которая может быть прочитана и понята без каких-либо специальных мероприятий, называется открытым текстом (plaintext). Метод маскировки открытого текста таким образом, чтобы скрыть его суть, называется шифрованием. Шифрование открытого текста приводит к его превращению в непонятную тарабарщину, именуемую зашифрованным текстом (ciphertext). Шифрование применяется для того, чтобы скрыть информацию от тех, для кого она не предназначается, даже если они могут видеть сам зашифрованный текст 1. Противоположный процесс по обращению зашифрованного текста в его оригинальный вид называется дешифрованием.
Открытый текст (plaintext) - информация, которая может быть прочитана и понята без каких-либо специальных мероприятий
Алфавит - конечное множество знаков, применяемых для шифрования данных.
Текст - упорядоченный набор из алфавитных элементов. Тексты, построенные на алфавите, и станут зашифрованной информацией, которая впоследствии будет подвергнута дешифрованию.
Шифрование - преобразовательный процесс, в котором открытый или исходный текст замещается текстом зашифрованным. (Или это обратимое преобразование открытой (исходной) текстовой информации путем комбинирования некоторого алгоритма с дополнительными секретными данными (ключами) в криптограмму (шифр-текст).)
Дешифрование - процесс, в котором конфиденциальные текстовые данные с помощью специального ключа преобразуются в исходные.
Если безопасность алгоритма основана на сохранении самого алгоритма в тайне, это ограниченный алгоритм. Ограниченные алгоритмы представляют только исторический интерес, но они совершенно не соответствуют сегодняшним стандартам. Большая или изменяющаяся группа пользователей не может использовать такие алгоритмы, так как всякий раз, когда пользователь покидает группу, ее члены должны переходить на другой алгоритм. Алгоритм должен быть заменен и, если кто-нибудь извне случайно узнает секрет.
Что еще хуже, ограниченные алгоритмы не допускают качественного контроля или стандартизации. У каждой группы пользователей должен быть свой уникальный алгоритм. Такие группы не могут использовать открытые аппаратные или программные продукты - злоумышленник может купить такой же продукт и раскрыть алгоритм. Им приходится разрабатывать и реализовывать собственные алгоритмы. Если в группе нет хорошего криптографа, то как ее члены проверят, что они пользуются безопасным алгоритмом?
Ключ - информация, необходимая для реализации свободного шифрования и дешифрования информационных данных.
|
Криптография изучает системы симметричные и системы с открытым ключом.
Симметричные системы - системы, в которых чтобы зашифровать и дешифровать информацию, нужен идентичный ключ.
Системы с открытым ключом – для данных систем необходимы математически связанные между собой открытые и закрытые ключи. Шифровка информации осуществляется открытым ключом, доступным любому желающему, а расшифровка – только закрытым ключом, известным исключительно получателю информационных данных.
Распределение ключей - процесс системной обработки данных, заключающийся в распределении ключей между всеми пользователями
Управление ключами- процесс системной обработки данных, заключающийся в составлении ключей.
Электронные (цифровые) подписи - дополнение к тексту в виде его криптографического преобразования, позволяющего при получении данных другим лицом проверить авторство и подлинность информации.
Криптостойкость - характеристика шифра, определяющую его устойчивость к дешифрованию, если ключ неизвестен (то есть стойкость к криптоанализу). Криптографическая стойкость определяется тем, сколько понадобится времени и средств, чтобы из зашифрованного сообщения восстановить первоначальный открытый текст. В результате применения стойкого шифрования получается зашифрованный текст, который очень сложно расшифровать без обладания определёнными инструментами по дешифрованию.
Криптографический алгоритм, или шифр -- это математическая функция, используемая в процессах шифрования и дешифрования. Чтобы зашифровать открытый текст, криптоалгоритм работает в комбинации с ключом -- словом, числом или фразой. Одно и то же сообщение разными ключами будет шифроваться в разный зашифрованный текст. Защищённость зашифрованных данных целиком зависит от двух вещей: стойкости криптоалгоритма и секретности ключа.
Криптоалгоритм плюс всевозможные ключи и протоколы, заставляющие их работать, составляют криптосистему.
Симетричное шифрование
В конвенциональной (традиционной) криптографии, также называемой шифрованием тайным, или симметричным, ключом, один и тот же ключ используется как для шифрования, так и для дешифрования.
Data Encryption Standart (DES), Advanced Encryption Standard (AES) -- отличный пример конвенционального алгоритма, широко применяемого в госструктурах США
Например, если мы закодируем слово «SECRET», используя ключ Цезаря, равный 3, то сдвинем латинский алфавит так, чтобы он начинался с третьей буквы (D).
Итак, беря исходный вариант
ABCDEFGHIJKLMNOPQRSTUVWXYZ
и смещая всё на 3, получаем
DEFGHIJKLMNOPQRSTUVWXYZABC,
где D=A, E=B, F=C, и т.д.
Используя эту схему, открытый текст «SECRET» шифруется в «VHFUHW». Чтобы позволить кому-то прочитать исходный текст, вы передаёте ему, что ключ -- 3. Конвенциональное шифрование имеет ряд преимуществ. Оно очень быстрое. Оно особенно полезно для шифрования данных, которые остаются у вас. Однако, конвенциональное шифрование, применяемое в одиночку как средство передачи ценных данных, может оказаться довольно затратным просто из-за сложности распространения тайного ключа.
Для установления зашифрованных коммуникаций, использующих конвенциональный алгоритм, отправителю и получателю нужно прежде согласовать ключ и держать его в тайне. Если они находятся в физически удалённых местах, то должны прибегнуть к помощи доверенного посредника, как, например, курьера, чтобы избежать раскрытия ключа в процессе передачи.
Симметричные алгоритмы делятся на две категории . Одни алгоритмы обрабатывают открытый текст побитно (иногда побайтно), они называются потоковыми алгоритмами или потоковыми шифрами. Другие работаю с группами битов открытого текста. Группы битов называются блоками, а алгоритмы - блочными алгоритмами или блочными шифрами. Для алгоритмов, используемых в компьютерных модемах, типичный размер блока составляет 64 бита - достаточно большое значение, чтобы помешать анализу, и достаточно небольшое и удобное для работы. (До появления компьютеров алгоритмы обычно обрабатывали открытый текст посимвольно . Такой вариант может рассматриваться как потоковый алгоритм, обрабатывающий поток символов.)
Ассиметричное шифрование
Проблема распространения ключей была решена т.н. шифрованием открытым, или асимметричным, ключом, концепция которого была представлена Уитфилдом Диффи и Мартином Хеллманом в 1975 году 2.
Шифрование открытым ключом -- это асимметричная схема, в которой применяются пары ключей: открытый, или общественный (public key), который шифрует данные, и соответствующий ему закрытый, или частный (private key), который их дешифрует. Вы предоставляете свой открытый ключ всему миру, в то время как частный держите в тайне. Кто угодно с копией вашего общественного ключа может зашифровать информацию, которую только вы сможете прочитать. Кто угодно. Даже люди, с которыми вы никогда не встречались.
Выделение частного ключа из открытого в вычислительном плане невыполнимо. Каждый, у кого есть ваш открытый ключ, может зашифровать данные, но не может её расшифровать. Только человек, обладающим соответствующим закрытым ключом сможет дешифровать информацию
Главный плюс асимметричного шифрования в том, что оно позволяет людям, не имеющим существующей договорённости о безопасности, отправлять зашифрованные сообщения. Необходимость отправителю и реципиенту обмениваться тайными ключами по какому-либо защищённому каналу полностью отпала. Все коммуникации затрагивают только общественные ключи и ни один частный не должен быть передан. Примеры криптосистем с открытым ключом это Elgamal (названная в честь изобретателя, Тахира Эльгамаля), RSA (названная в честь изобретателей: Рона Райвеста, Ади Шамира и Леонарда Адлмана),Diffie-Hellman (названная, правильно, в честь её создателей) и DSA, Digital Signature Algorithm (изобретённый Дэвидом Кравицом).
Криптоанализ -- это наука об анализировании и взломе защищённых коммуникаций. Классический криптоанализ включает интересную смесь аналитических рассуждений, применения вычислительных средств, поиска паттернов.
Частотный анализ – это анализ частоты появления отдельных символов и их сочетаний. Вероятность появления отдельных букв, а также их порядок в словах и фразах естественного языка подчиняются задокументированным статистическим закономерностям: например, пара стоящих рядом букв «ся» в русском языке более вероятна, чем «цы», а «оь» не встречается никогда. Анализируя достаточно длинный текст, зашифрованный методом замены, можно по частотам появления символов произвести обратную замену и восстановить исходный текст.
Частотный метод породил требование равномерного распределения символов в шифртексте. Сегодня принципы частотного анализа широко применяются в программах по подбору паролей и позволяют на несколько порядков сократить время поиска.
Метод полного перебора. Возможность вскрывать шифры методом перебора ключей появилась у криптоаналитиков с распространением высокопроизводительной вычислительной техники.
Задачу выделения осмысленного текста, то есть определения факта правильной дешифрации, решают при помощи ЭВМ с использованием теоретических положений, разработанных в конце XIX века выдающимся русским математиком А.А. Марковым, – так называемых «цепей Маркова».
При осуществлении попытки атаки на основе только шифртекста требуется анализировать выходные данные алгоритма и проверять их «осмысленность». В случае когда в качестве объекта шифрования выступает графический файл или программа, задача определения «осмысленности» выходных данных становится очень трудной. Если же известно, что открытый текст представляет собой предложение на естественном языке, проанализировать результат и опознать успешный исход дешифрования сравнительно несложно, тем более что криптоаналитик зачастую располагает некоторой априорной информацией о содержании сообщения.
Атака по ключам. Одной из причин ненадежности криптосистем является использование слабых ключей. Фундаментальное допущение криптоанализа, которое впервые сформулировал Огюст Кирхгоф, состоит в том, что секретность сообщения всецело зависит от ключа: механизм шифрования, кроме ключа, известен противнику. Секретность алгоритма не является большим препятствием – для определения типа программно реализованного криптографического алгоритма требуется лишь несколько дней инженерного анализа исполняемого кода. «Слабый ключ» – это ключ, не обеспечивающий достаточного уровня защиты или использующий в шифровании закономерности, которые могут быть выявлены. Алгоритм шифрования не должен иметь слабых ключей. Если это невозможно, то количество слабых ключей должно быть минимальным, чтобы уменьшить вероятность случайного выбора одного из них; все слабые ключи должны быть известны заранее, чтобы их можно было отбраковать в процессе создания ключа.
Хэш функции
У однонаправленной хэш-функинн может быть множество имен: функция сжатия, функция сокращения, contraction function, краткое изложение, характерный признак, криптографическая контрольная сумма, код целостности сообщения (message integrity check, MIC) и код обнаружения манипуляции (manipulation detection code, MDC). Как бы она не называлась эта функция является центральной в современной криптографии. Однонаправленные хэш-функции - это другая часть фундамента многих протоколов.
Хэш-функции, долгое время использующиеся в компьютерных науках, представляют собой функции, математические или иные, которые получают на вход строку переменной длины (называемую прообразом) и преобразуют ее в строку фиксированной, обычно меньшей, длины (называемую значением хэш -функции). В качестве простой хэш-функции можно рассматривать функцию, которая получает прообраз и возвращает байт, представляющий собой XOR всех входных байтов.
Смысл хэш-функции состоит в получении характерного признака прообраза - значения, по которому анализируются различные прообразы при решении обратной задачи. Так как обычно хэш-функция представляет собой соотношение "многие к одному", невозможно со всей определенностью сказать, что две строки совпадают, но их можно использовать, получая приемлемую оценку точности .
Однонаправленная хэш-функция - это хэш-функция, которая работает только в одном направлении: легко вычислить значение хэш-функции по прообразу, но трудно создать прообраз, значение хэш-функции которого равно заданной величине. Упоминавшиеся ранее хэш-функции, вообще говоря, не являются однонаправленными: задав конкретный байт, не представляет труда создать строку байтов, XOR которых дает заданное значение. С однонаправленной хэш-функцией такого не выйдет. Хорошей однонаправленной хэш-функцией является хэш-функция без столкновений - трудно создать два прообраза с одинаковым значением хэш -функции.
Хэш-функция является открытой, тайны ее расчета не существует. Безопасность однонаправленной хэш-функцией заключается именно в ее однонаправленности. У выхода нет видимой зависимости от входа. Изменение одного бита прообраза приводи к изменению, в среднем, половины битов значения хэш-функции. Вычислительно невозможно найти прообраз, соответствующий заданному значению хэш-функции.
Посмотрите на это как на способ получить характерные признаки файлов. Если вы хотите проверить, что у кого-то есть тот же файл, что и у вас, но вы не хотите, чтобы этот файл был передан вам, попросите послать вам значение хэш-функции. Если присланное значение хэш-функции совпадет с рассчитанным вами, то почти наверняка чужой файл совпадает с вашим. Это особенно полезно при финансовых транзакциях, когда вы не хотите где-то в сети превратить снятие со счета S100 в снятие $1000. В обычных условиях вы можете использовать однонаправленную хэш-функцию без ключа, так что кто угодно может проверить значение хэш-функции.
