Безопасность сетей

  0f1a9e67   

Управление ключами


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

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

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

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

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

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


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

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

Чтобы получить представление о том, насколько надежны ключи на практике, вспомните машину EFF. В 1997 г. она стоила 250 000 долларов и обеспечивала раскрытие ключа DES за 4,5 дня. В других случаях 40-битный ключ RC5 был раскрыт с помощью атаки "грубой силы" за 3,5 часа с использованием 250 компьютеров в UC Berkley. В Швейцарском Федеральном институте технологий посредством "грубой силы" раскрыт 48-битный ключ RC5 за 312 часов с использованием 3500 компьютеров. На данный момент рекомендуется использовать, как минимум, 80-битные ключи при шифровании секретной информации, а также минимум 1024-битные ключи в RSA и алгоритме Диффи-Хеллмана. 160-битные ключи ECC также считаются безопасными.

Внимание!

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



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

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

Таблица 12.2. Относительная надежность ключей различной длиныШифрование с секретным ключом(DES, RC5)Шифрование с открытым ключом(RSA, Диффи-Хеллман)Шифрование посредством эллиптических кривых
40 бит--
56 бит400 бит-
64 бит512 бит-
80 бит768 бит-
90 бит1024 бит160 бит
120 бит2048 бит210 бит
128 бит2304 бит256 бит
Такой подход может быть полезным, если удаленные сайты расположены в небольшом удалении. Но что если удаленные сайты расположены на других континентах? Проблема приобретает намного более серьезный характер.

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

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



Примечание

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

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

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

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

Внимание!

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


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



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

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

Аннулирование ключей

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

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

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


Содержание раздела