Иванов М.А. КМЗИ сети. Криптографические методы защиты информации
Скачать 3.04 Mb.
|
Криптоалгоритмы и криптопротоколы основаны на исполь- зовании ключевой информации, под которой понимается вся совокупность действующих в КС ключей. По своему назначе- нию они делятся на ключи для шифрования ключей и ключи для шифрования данных. По времени жизни ключи делятся на дол- го- и кратковременные. Примером последних являются так на- зываемые сеансовые ключи, действующие в течение только од- ного сеанса связи. В понятие управление ключами входит сово- купность методов решения следующих задач: генерации ключей; распределения ключей; хранения ключей; замены ключей; депонирования ключей; уничтожения ключей. Правильное решение всех перечисленных задач имеет ог- ромное значение, так как в большинстве случаев противнику гораздо проще провести атаку на ключевую подсистему или на конкретную реализацию криптоалгоритма, а не на сам алго- ритм криптографической защиты. Использование стойкого ал- горитма шифрования – необходимое, но далеко не достаточное условие построения надежной системы криптографической за- щиты информации. Используемые в процессе информационно- го обмена ключи нуждаются в не менее надежной защите на всех стадиях своего жизненного цикла. 7.1. Разрядность ключа К ключам для симметричных и асимметричных криптоси- стем предъявляются различные требования. Этот факт следует учитывать при построении гибридных криптосистем. В на- стоящее время надежными считаются ключи разрядностью не менее 128 бит для систем с секретным ключом и не менее 2304 бит для систем с открытым ключом, стойкость которых опре- 218 деляется сложностью решения задачи факторизации больших чисел (например, RSA). В распоряжении противника, атакующего криптосистему, всегда имеются две возможности: случайное угадывание ключа и полный перебор по всему ключевому пространству. Вероят- ность успеха и в том, и другом случае зависит от разрядности ключа. В табл. 7.1 приведены длины ключей симметричных и асимметричных систем, обеспечивающие одинаковую стой- кость к атаке полного перебора и решению задачи факториза- ции соответственно. Таблица 7.1 Длины ключей для криптосистем с секретным и открытым ключами Длина ключа, бит Криптосистема с секретным ключом Криптосистема с открытым ключом 56 384 64 512 80 768 112 1792 128 2304 Примечание. На практике в гибридных криптосистемах долговременный ключ для асимметричного алгоритма выбирают более стойким, чем сеансо- вый ключ для симметричного. Если противник обладает неограниченными финансовыми и техническими возможностями, для того чтобы узнать ключ, ему необходимо лишь потратить достаточное количество денег. В случае противника с ограниченными возможностями при выборе разрядности ключа учитывают следующие сообра- жения: сложность атаки полного перебора; требуемое быстродействие криптоалгоритма в тех случаях, когда увеличение размера ключа увеличивает время работы операций шифрования; время жизни защищаемой информации и ее ценность; возможности противника. 219 Если технические возможности противника известны, слож- ность атаки путем полного перебора по всему ключевому про- странству оценить достаточно просто. Например, при разряд- ности ключа симметричной криптосистемы, равной 64 бит, объем ключевого пространства равен 64 2 . Компьютер, который может перебирать 6 10 ключей в секунду, потратит на проверку всех возможных ключей более 5 тысяч лет. В 1999 г. появилось сообщение [23], что международной группе исследователей удалось вскрыть шифр RSA с ключом длиной 512 бит. Интересно также отметить, что 512 двоичных разрядов – это максимальная длина ключа, которую до недав- него времени правительство США разрешало использовать в экспортируемых программных продуктах. Работа по подбору двух простых сомножителей числа, содержащего 155 десятич- ных цифр, велась в течение семи месяцев с привлечением ре- сурсов параллельно работающих 292 компьютеров, находящих- ся в 11 различных географических точках. В это количество входило 160 рабочих станций SGI и Sun, работающих на такто- вых частотах 175 – 400 МГц, 8 компьютеров Origin 2000 SGI, работающих на частоте 250 МГц, 120 ПК с процессорами Pentium II (350 – 450 МГц) и 4 процессора, работающих на частоте 500 МГц, производства Digital/Compaq. Общие затраты вычислительных ресурсов составили около 8 тыс. MIPS-лет. Взломанный код RSA RSA – 155 = 109417386415705274218097073220403576120037329 454492059909138421314763499842889347847179972 578912673324976257528997818337970765372440271 46743531593354333897 = 102639592829741105772054196573991675900716567 808038066803341933521790711307779 106603488380168454820927220360012878672079585 75989291522270608237193062808643. 220 7.2. Генерация ключей Согласно принципу Кирхгофастойкость криптоалгоритма определяется секретностью ключа. Это означает, что если для генерации ключей используется криптографически слабый ал- горитм, независимо от используемого шифра вся система будет нестойкой. Качественный ключ, предназначенный для исполь- зования в рамках симметричной криптосистемы представляет собой случайный двоичный набор. Если требуется ключ раз- рядностью n, в процессе его генерации с одинаковой вероятно- стью должен получаться любой из n 2 возможных кодов. Гене- рация ключей для асимметричных криптосистем процедура бо- лее сложная. Так, ключи, применяемые в этих системах, долж- ны обладать определенными математическими свойствами. На- пример, в случае системы RSA модуль шифрования есть произ- ведение двух больших простых чисел. Для генерации ключевой информации, предназначенной для использования в рамках симметричной криптосистемы, исполь- зуются следующие методы (в порядке возрастания качества): программная генерация, предполагающая вычисление оче- редного псевдослучайного числа как функции текущего времени, последовательности символов, введенных поль- зователем, особенностей его клавиатурного почерка и т.п.; программная генерация, основанная на моделировании ка- чественного генератора ПСЧ с равномерным законом рас- пределения; аппаратная генерация с использованием качественного ге- нератора ПСЧ; аппаратная генерация с использованием генераторов слу- чайных последовательностей, построенных на основе фи- зических генераторов шума и качественных генераторов ПСЧ. Невысокое качество программных методов формирования объясняется в первую очередь возможностью атаки на кон- кретную реализацию генератора и необходимостью защиты от разрушающих программных воздействий [29]. 221 На рис. 7.1 показана схема генерации сеансовых ключей в стандарте ANSI X9.17, где k E – функция зашифрования, k – ключ, 0 V – секретная синхропосылка, i T – временная отметка, i R – сеансовый ключ. Очевидно, что данная схема может пр и- меняться совместно с любым блочным шифром. Очередной се- ансовый ключ формируется в соответствии с уравнением i i k k i V T E E R Новое значение 1 i V определяется следующим образом: 1 i i k k i R T E E V k k k E k E k E k V i T i V i +1 R i Рис. 7.1. Схема генерации ключей в стандарте ANSI X9.17 7.3. Неоднородное ключевое пространство Для защиты от несанкционированного использования крип- тографического оборудования, которое противник не в состоя- нии вскрыть с целью исследования алгоритма, формируется неоднородное ключевое пространство (рис. 7.2), имеющее сле- дующие особенности: закрытие информации с использованием стойкого крипто- алгоритма k E имеет место только при использовании клю- чей специального вида; «правильный» (стойкий) ключ k разрядности k n k n k со- стоит из двух частей: собственно ключа * k разрядности * k n * * k n k и некоторого кода фиксированной длины 222 * k k n n , полученного в результате преобразования кода * k с использованием некоторой криптографической функ- ции F, т.е. ; = , , * * * k F k F k k вероятность случайно получить стойкий ключ пренебре- жимо мала и равна ; 2 - если поступивший на вход криптомодуля ключ не удовле- творяет указанным условиям, для шифрования информации применяется существенно менее стойкий алгоритм k E m, k k = (A, B), A = n k* , B = B' = F(A) c = E k (m) B' = B ? c = E' k (m) c Да Нет Рис. 7.2. Принцип работы криптомодуля при использовании неоднородного ключевого пространства 7.4. Хранение ключей Секретные ключи не должны храниться в памяти в явном виде, допускающем их считывание. Любая информация об ис- пользуемых ключах должна хранится в зашифрованном виде, а значит, в защищенной системе должна иметь место иерархия ключей: либо двухуровневая (ключи шифрования ключей – ключи шифрования данных), либо трехуровневая (главный или 223 мастер-ключ – ключи шифрования ключей – ключи шифрова- ния данных). Учитывая, что такое разделение функций необхо- димо для обеспечения максимальной безопасности, каждый из указанных типов ключей, различающихся по последствиям компрометации, времени жизни, а иногда и по способам фор- мирования, должен использоваться только по своему прямому назначению. На самом нижнем уровне иерархии находятся ключи шифрования данных или сеансовые ключи, которые ис- пользуются для шифрования пересылаемых сообщений или ау- тентификационной информации. Для защиты сеансовых клю- чей при их хранении и передаче используются ключи следую- щего уровня – ключи шифрования ключей. На верхнем уровне иерархии располагается мастер-ключ, используемый для защи- ты ключей шифрования ключей. Обычно в каждом компьютере используется один мастер-ключ. Учитывая главенствующую роль в иерархии мастер-ключа, применяемого в течение длительного времени, его защите уде- ляется особое внимание: мастер-ключ хранится в защищенном от считывания, запи- си и разрушающих воздействий модуле системы защиты; мастер-ключ распространяется неэлектронным способом, исключающим его компрометацию; в системе должен существовать способ проверки аутентич- ности мастер-ключа. Один из способов аутентификации мастер-ключа показан на рис. 7.3. В памяти компьютера хранится пара , , c m где m – некоторый массив данных, m E c k – результат его за- шифрования на мастер-ключе M k Всякий раз, когда требуется проверка аутентичности мастер-ключа, берется код m из па- мяти и подается на вход криптомодуля. Полученный с выхода последнего зашифрованный текст c сравнивается с шифро- текстом, хранящемся в памяти. При положительном результа- те сравнения, аутентичность мастер-ключа считается установ- ленной [25]. При генерации сеансовых ключей код с выхода генератора ПСЧ рассматривается как результат шифрования s k k E сеан- сового ключа s k , полученный с использованием мастер-ключа M k , и поэтому может храниться в том виде, в котором он был 224 получен (рис. 7.4). При шифровании сообщения на вход крип- томодуля подаются шифротекст s k k E и сообщение m . Крип- томодуль сначала «восстанавливает» сеансовый ключ, а затем с его помощью шифрует сообщение [25]. Криптомодуль k m E k Сравнение m E k (m) c' Память Результат c Рис. 7.3. Схема аутентификации мастер-ключа Криптомодуль k s E k E k (m) D k k M Генератор ПСЧ Память E k (k s ) m Рис. 7.4. Схема защиты сеансового ключа Проще всего хранить ключи криптосистемы с одним пользо- вателем. В распоряжении последнего один из следующих вари- антов в порядке возрастания надежности: 225 запоминание пароля pw и в случае необходимости автома- тическое получение из него ключа k с использованием хеш- функции h(x) по формуле ; pw h k запоминание начального заполнения качественного генера- тора ПСЧ, формирующего ключ; использование пластикового ключа с размещенным на нем ПЗУ (ROM-key) или интеллектуальной карточки. Следует помнить, что в первых двух случаях объем ключе- вого пространства зависит не только от длины пароля или клю- чевой фразы, но и от ограничения на вид используемых симво- лов. В табл. 7.2 приведены количество возможных ключей при использовании 8-символьной ключевой фразы и время полного перебора при скорости перебора 6 10 ключей в секунду в зави- симости от ограничений на используемые символы. Также сле- дует помнить о возможности проведения противником так на- зываемой атаки со словарем, включающем в себя наиболее ве- роятные ключевые слова. Пароли и символьные строки началь- ного заполнения генератора ПСЧ следует выбирать случайным образом, а не на основе лишь критерия простоты запоминания. Таблица 7.2 Количество возможных ключей и время их полного перебора при различных ограничениях на используемые символы Символы ключа Число символов Число возможных ключей Время полного перебора Заглавные буквы 32 1,1 10 12 13 дней Заглавные буквы и цифры 42 9,7 10 12 112 дней Все 8-разрядные коды 256 1,9 10 19 600 000 лет В последнем случае ни сам ключ, ни исходная информация, необходимая для его получения, пользователю неизвестны, а значит, он не может и скомпрометировать ее. Использование ROM-key, имеющего тот же вид, что и привычный ключ от входной двери, позволяет пользователю чисто интуитивно из- бегать многих ошибок, связанных с хранением криптографиче- ских ключей [25]. 226 7.5. Распределение ключей Распределение ключей между участниками информационно- го обмена в сети реализуется двумя способами (рис. 7.5): использованием одного или нескольких центров распреде- ления или трансляции ключей; прямым обменом сеансовыми ключами между пользовате- лями сети. Недостатком первого подхода является возможность зло- употреблений со стороны центра, которому известно, кому и какие ключи распределены. Во втором случае проблема заклю- чается в необходимости проведения более качественной, чем в первом случае, процедуры аутентификации для проверки под- линности участников сеанса взаимодействия и достоверности самого сеанса. Примером первого подходя является схема Ker- beros, примером второго – схема Диффи – Хeллмана (гл. 6). A B A B A B б k k k k ЦРК ЦРК k а A B A B в k k k k ЦТК ЦТК k Рис. 7.5. Возможные варианты построения схемы распределения ключей: а – прямой обмен между пользователями в сети (схема типа «точка-точка»); б – схемы с использованием центра распределения ключей (ЦРК); в – схемы с использованием центра трансляции ключей (ЦТК); А, В – участники информационного обмена, k – ключ 227 Схемы, показанные на рис. 7.5, б и в, предполагают, что абоненты А и В предварительно разделили знание своих сек- ретных ключей с центром С, а схемы с ЦРК – что именно он формирует сеансовые ключи. Схемы, показанные на рис. 7.5,в, отличаются от предыдущего варианта тем, что ЦТК обеспечи- вает только перешифрование полученной ключевой информа- ции [25]. В двухключевых асимметричных криптосистемах существу- ет опасность подмены открытого ключа одного или нескольких участников информационного обмена. Задача защиты открытых ключей от подделки является «ахиллесовой пятой» всей техно- логии. Пусть, например, противник W, имеющий пару ключей secret W public W k k , подменил своим открытым ключом открытый ключ public A k або- нента А. В результате противник может: читать все сообщения, адресованные А, так как обладает секретным ключом secret А k из фальшивой пары ключей; снова зашифровать расшифрованное им сообщение на- стоящим ключом public A k и отправить его абоненту А, при этом никто ничего не заметит; формировать от имени А электронную подпись, которая будет казаться подлинной, так как все для ее проверки бу- дут использовать фальшивый ключ. Учитывая вышеизложенное, одна из важнейших функций центра доверия – сертификация открытых ключей взаимодей- ствующих абонентов. Например, сертификат A c открытого ключа абонента А суть шифрограмма, полученная на секретном ключе центра распределения С, которая содержит метку време- ни ts, время действия сертификата lt, идентификатор A ID и от- крытый ключ , public A k т.е. , , , , public A A C A k ID lt ts D c где C D – функция шифрования с использование секретного ключа secret А k 228 В самом общем случае функциями центра доверия могут яв- ляться: генерация, хранение, распределение и контроль времени жизни ключей; сертификация ключей; аутентификация участников информационного обмена; аудит; служба единого времени; нотариальная служба; служба депонирования ключей. Для уменьшения количества сеансов пересылки ключей применяется процедура модификации ключей, которая может быть основана, например, на получении нового ключа путем хеширования старого. Если правило смены ключей соблюдает- ся и отправителем и получателем, то в каждый момент времени они имеют одинаковый ключ. Постоянная смена ключа затруд- няет противнику решение задачи раскрытия информации. При использовании такого приема следует помнить, что вся ключе- вая последовательность будет скомпрометирована, если про- тивнику станет известен хотя бы один из ранее использовав- шихся старых ключей [25]. 7.6. Время жизни ключей Любой ключ должен использоваться в течение ограниченно- го отрезка времени, длительность которого зависит от: частоты использования ключей (ключи щифрования клю- чей, например, применяются гораздо реже ключей шифро- вания данных); величины ущерба от компрометации ключа, которая зави- сит, в частности, от ценности защищаемой информации; объема и характера защищаемой информации (например, при шифровании случайным образом сформированных ключей закрытию подвергается информации, о содержи- мом которой противнику заранее ничего не известно). При определении времени жизни ключа учитываются сле- дующие соображения: 229 чем дольше используется ключ, тем больше вероятность его компрометации и тем больший потенциальный ущерб может нанести его компрометация; чем больший объем информации, зашифрованной на одном ключе, перехватывает противник, тем легче проводить ата- ку на него; при длительном использовании ключа у противника появ- ляется дополнительный стимул потратить на его вскрытие значительные ресурсы, так как выгода в случае успеха оп- равдает все затраты [25]. Контрольные вопросы 1. Укажите, от чего зависит длительность использования ключевой информации. 2. Каково минимальная разрядность ключа для криптосис- тем с секретным ключом? 3. Каково минимальная разрядность ключа для криптосис- тем с открытым ключом? 4. Перечислите не менее пяти способов формирования клю- чевой информации. 5. Что такое неоднородное ключевое пространство? 6. Что такое мастер-ключ? 7. Опишите процедуру аутентификации мастер-ключа. 8. Что такое сертификат открытого ключа? |