Принципи криптографічного захисту інформації

Автор: Пользователь скрыл имя, 12 Марта 2013 в 19:22, лекция

Описание работы

1. Основні концепції шифрування
2. Цифрові підписи
3. Управління ключами

Работа содержит 1 файл

lec_5.docx

— 436.99 Кб (Скачать)
  1. Цифрові підписи

Цифровые  подписи - это не цифровые изображения  рукописных подписей. Цифровые подписи - это форма шифрования, обеспечивающая аутентификацию. Популярность цифровых подписей постоянно растет, и они  были разрекламированы как способ перехода на полностью электронную информационную среду.

Цифровая  подпись - это метод аутентификации электронной информации посредством шифрования.

При шифровании с открытым ключом, если информация шифруется с использованием секретного ключа, принадлежащего определенному  лицу, то только это лицо может осуществлять дешифрование информации. Следовательно, мы знаем, что информация поступила  от этого лица, если дешифрование информации проведено успешно с использованием ключа, принадлежащего этому лицу. Если дешифрование проведено успешно, мы также знаем, что в процессе передачи она не была изменена, поэтому также  обеспечивается целостность данных.

С помощью цифровой подписи можно  еще больше повысить уровень этой защиты и обезопасить информацию от изменения после получения  и дешифрования. На рис. 4 показано, каким  образом может быть выполнена  эта задача. Во-первых, информация обрабатывается с помощью хеш-функции. Хеш-функция  создает контрольную сумму данных. Эта контрольная сумма затем  шифруется с использованием секретного ключа пользователя. Информация и  зашифрованная контрольная сумма  передаются получателю информации.

Рис. 4. Функционирование цифровых подписей

Когда информация принимается получателем, он может обработать ее той же самой  хеш-функцией. Получатель дешифрует  контрольную сумму, принятую вместе с сообщением, и сравнивает две  контрольные суммы. Если они совпадают, это означает, что информация не была изменена. Посредством сохранения исходной зашифрованной контрольной  суммы вместе с информацией эта  информация всегда может быть проверена  на наличие изменений.

Безопасность  и полезность цифровых подписей зависит  от двух важнейших элементов:

  • Защита секретного ключа пользователя.
  • Безопасная хеш-функция.

Если  пользователь не защищает свой секретный  ключ, то он не может быть уверен в  том, что этот ключ используется исключительно  им. Если какое-либо лицо также использует секретный ключ этого пользователя, нет никаких гарантий того, что  рассматриваемые данные подписаны  только действительным пользователем.

Безопасные  хеш-функции

Для использования цифровых подписей необходимы безопасные хеш-функции. Хеш-функция  может называться безопасной, если:

  • функция является односторонней. Иными словами, функция создает контрольную сумму из информации с невозможностью восстановления информации по контрольной сумме;
  • крайне сложно сконструировать два фрагмента информации с получением одинаковой контрольной суммы при выполнении функции.

Второму условию не так-то просто удовлетворить. Рассматриваемые контрольные суммы  должны быть меньше по размеру, нежели информация, для обеспечения простоты подписывания, хранения и передачи информации. Если это условие удовлетворяется, то одной и той же контрольной  сумме должно соответствовать большое  число различных фрагментов информации. Безопасность функций обеспечивается способом связи всех битов в исходных данных со всеми битами контрольной  суммы. Таким образом, если один бит информации изменяется, то также изменяется большое количество битов в контрольной сумме.

Безопасные  хеш-функции должны обеспечивать создание контрольной суммы длиной, по крайней  мере, в 128 бит. Двумя наиболее распространенными  безопасными хеш-функциями являются MD5, генерирующая 128-битную контрольную сумму, и SHA, которая производит контрольную сумму длиной 160 бит.

Существует  множество других хеш-функций, однако большая их часть признана небезопасными. В MD5 были обнаружены уязвимости, которые  могут использоваться при проведении вычислительной атаки. Эта атака  позволит создать дополнительный фрагмент информации, что приведет к образованию  той же контрольной суммы. Функция SHA была разработана правительством США и в настоящее время  считается безопасной. В большей  части программного обеспечения  по информационной безопасности рассмотренные  функции MD5 и SHA доступны для использования.

  1. Управління  ключами

Управление  ключами является самой сложной  задачей при использовании любой  системы шифрования. Ключи представляют собой самые важные объекты во всей системе, так как если злоумышленник  получает ключ, у него появляется возможность  расшифровывать все данные, зашифрованные  с помощью этого ключа. В некоторых  случаях также удается получить последующие ключи. Управление ключами  заключается не только в защите их при использовании. Данная задача предусматривает:

  • создание надежных ключей,
  • безопасное распространение ключей среди удаленных пользователей,
  • обеспечение корректности ключей,
  • отмену ключей, в случае их раскрытия или истечения срока действия.

Ключи и инфраструктура, необходимая для  управления ими соответствующим  образом, могут значительно повлиять на возможность использования организацией системы шифрования.

Создание  ключей

Очевидно, что ключи должны создаваться  с особой тщательностью. Некоторые  ключи обеспечивают недостаточную  производительность при работе с  определенными алгоритмами. Например, ключ, состоящий из одних "нулей", при использовании в DES не обеспечивает высокий уровень защищенности информации. Аналогично, при создании ключей для  использования в RSA, необходимо соблюдать  внимательность при выборе p и q из набора простых чисел.

Большая часть систем шифрования обеспечивают некоторый метод генерирования  ключей. Иногда пользователям позволяется  выбирать ключ посредством выбора пароля. В данном случае полезно проинструктировать пользователей по поводу использования  надежных паролей, содержащих числа  и специальные символы. В противном  случае общее пространство ключей значительно  уменьшается (это позволяет быстрее  проводить поиск при атаке "грубой силой").

Некоторые ключи выбираются из случайных чисел. К сожалению, существует очень немного  генераторов истинно случайных  чисел. Большинство из них генерируют псевдослучайные последовательности (т.е. в наборах чисел прослеживаются схемы, которые через то или иное время повторяются). Если генератор случайных чисел не является истинным, то существует возможность предсказания следующего числа. Если ключи базируются на выходных данных генератора случайных чисел, и злоумышленник может предсказать выходные данные, то существует вероятность того, что он сможет выявить ключ.

Также может быть необходимым выбрать  правильную длину ключа. В некоторых  алгоритмах используются ключи фиксированной  длины (например, в алгоритме DES используется ключ длиной 56 бит). Другие алгоритмы  могут использовать ключи переменной длины. Чем длиннее ключ, тем выше уровень обеспечиваемой безопасности. Например, 1024-битный ключ RSA более надежен, чем 512-битный ключ RSA. Тем не менее, таким образом нельзя сопоставлять надежность ключа RSA с надежностью ключа DES. В таблице 1 представлены относительные степени надежности ключей для различных алгоритмов шифрования.

Таблица 1. Относительная надежность ключей различной  длины

Шифрование с секретным ключом (DES, RC5)

Шифрование с открытым ключом (RSA, Диффи-Хеллман)

Шифрование посредством эллиптических  кривых

40 бит

-

-

56 бит

400 бит

-

64 бит

512 бит

-

80 бит

768 бит

-

90 бит

1024 бит

160 бит

120 бит

2048 бит

210 бит

128 бит

2304 бит

256 бит


Чтобы получить представление о том, насколько  надежны ключи на практике, можно  вспомнить машину EFF (Electronic Frontier Foundation). В 1997 г. она стоила 250 000 долларов и обеспечивала раскрытие ключа DES за 4,5 дня. В других случаях 40-битный ключ RC5 был раскрыт с помощью атаки "грубой силы" за 3,5 часа с использованием 250 компьютеров в UC Berkley. В Швейцарском Федеральном институте технологий посредством "грубой силы" раскрыт 48-битный ключ RC5 за 312 часов с использованием 3500 компьютеров.

Распространение ключей

После генерации ключей их необходимо доставить  в различные места расположения и установить для использования  на соответствующем оборудовании. Если ключи не защищены при передаче, они могут быть скопированы или  украдены, вследствие чего нарушится  безопасность всей системы шифрования. Из этого следует, что канал распространения  должен быть сам по себе защищенным. Передача ключей может осуществляться вне канала связи. Иными словами, ключи могут передаваться администраторами на переносных носителях.

Такой подход может быть полезным, если системы  расположены в небольшом удалении. Но что если системы расположены  на других континентах? Проблема приобретает  намного более серьезный характер.

Тем не менее, существует частичное решение  этой проблемы, заключающееся в использовании  алгоритма обмена ключами Диффи-Хеллмана для распространения множества  сеансовых ключей (ключи с коротким сроком действия, используемые для  одного сеанса или небольшого объема трафика). Этот подход может снизить  необходимость дальних поездок.

Любой ключ, используемый в течение продолжительного периода времени, требует обеспечения  основательных мер предосторожности. Нельзя использовать алгоритм обмена ключами Диффи-Хеллмана для передачи пар ключей RSA. В случае с парами ключей RSA один ключ должен содержаться  в секрете, а другой может находиться в открытом состоянии. Открытый ключ должен публиковаться так, чтобы  предотвратить его подмену. Если пары ключей генерируются центральным  бюро сертификатов, секретный ключ должен безопасно передаваться владельцу  ключевой пары. Если пара ключей генерируется владельцем, открытый ключ должен передаваться в центральное бюро сертификатов с обеспечением мер безопасности.

Если ключевые пары генерируются центральным бюро сертификатов, то возможность использования  секретного ключа для аутентификации находится под вопросом, так как  центральному бюро сертификатов ключ уже может быть известен. При создании и распространении секретных  ключей необходимо соблюдать особую внимательность.

Сертификация  ключей

Если  ключи некоторым образом передаются в удаленное место расположения, они должны проверяться при получении  на предмет того, не подверглись  ли они вмешательству в процессе передачи. Это можно делать вручную  либо использовать некоторую форму  цифровой подписи.

Открытые  ключи предназначены для публикации или передачи другим пользователям  и должны сертифицироваться как  принадлежащие владельцу ключевой пары. Сертификация осуществляется с помощью центрального бюро сертификатов (Certification Authority, CA). В данном случае CA предоставляет цифровую подпись на открытом ключе, и благодаря этому CA с доверием воспринимает тот факт, что открытый ключ принадлежит владельцу ключевой пары (см. рис. 5).

Рис. 5. Сертификация открытого ключа в бюро сертификатов

Без правильной сертификации ключа и  его владельца злоумышленник  может внедрить собственные ключи  и, таким образом, преодолеть защиту всей передаваемой и аутентифицируемой  информации.

Защита  ключей

Открытые  ключи открытой ключевой пары не требуют  защиты конфиденциальности. Они лишь требуют обеспечения защиты целостности  посредством использования сертификатов. Секретный ключ открытой ключевой пары должен все время сохраняться  в тайне.

Если  злоумышленник получает копию секретного ключа, у него появляется возможность  чтения всего конфиденциального  трафика, адресованного владельцу  пары ключей, а также цифрового  подписывания информации в роли владельца  ключевой пары. Защита секретного ключа  должна распространяться на все его  копии. Следовательно, должен защищаться файл, содержащий ключ, а также любой  архивный носитель, на котором может  быть записан этот файл. На большей  части систем защита ключа реализуется  посредством использования паролей. Эта защита позволяет обезопасить  ключи от случайных шпионских  действий, но не от совместной направленной атаки. Пароль, используемый для защиты ключа, должен выбираться тщательным образом, чтобы противостоять атакам посредством  грубой силы. Однако наилучшим способом защиты ключа является, прежде всего, предотвращение доступа злоумышленника к файлу с ключом.

Необходимо  обеспечивать защиту всех ключей системы, использующей секретные ключи. Если ключ содержится в файле, этот файл должен быть защищен в любом месте, где бы он не находился (включая архивные носители). Если ключ находится в  памяти, необходимо предпринимать меры по защите пространства памяти от исследования пользователями или процессами. Аналогично, в случае с дампом (сбросом данных на жесткий диск) ядра, файл ядра должен быть защищен, так как он может  содержать ключ.

Информация о работе Принципи криптографічного захисту інформації