Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [ 21 ] 22 23 24

ПСЧ как сложную функцию от текущего времени и (или) числа, введенного пользователем.

Под накоплением ключей понимается организация их хранения, учета и удаления.

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

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

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

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

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

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

Для описания алгоритмов и методов в этом пункте нам потребуются следующие обозначения:

1а - идентификатор стороны А;

Da - секретное криптопреобразование стороны А (с использованием секретного ключа асимметричной криптосистемы);

Еа - открытое криптопреобразование стороны А (с использованием открытого ключа асимметричной криптосистемы);

Та - временной штамп стороны А;

Ra - случайное число, выбранное стороной А.

5.1. Обычная система управления ключами

Распределение ключей - самый ответственный процесс в управлении ключами. К нему предъявляются два требования:

1. Оперативность и точность распределения;

2. Скрытность распределяемых ключей.

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

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

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



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

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

5.2. Управление ключами, основанное на системах с открытым ключом

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

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

случае, если открытые ключи хранятся или доступ к ним осу-ш,ествляется через каталог.

В качестве примера можно привести протокол обмена ключом Диффи-Хеллмана. Системными параметрами этого протокола являются большое простое число р и число g, являюш,ееся примитивным элементом GF{p).

Пусть теперь пользователи а и В желают получить обш,ий секретный ключ. Сначала а генерирует случайное число а, которое он держит в секрете, а В генерирует случайное число Ь, которое он также держит в секрете. Затем они вычисляют g" mod pug mod p соответственно и передают вычисленные значения друг другу, причем это можно сделать по открытым каналам связи. После этого а вычисляет кь = (g* mod р)" mod р, а В вычисляет кьа = {g" mod pfmod p. Поскольку каь = кьа = к,у А и В теперь есть обш,ий секретный ключ к.

Протокол Диффи-Хеллмана, однако, является уязвимым для атаки, называемой "человек в середине". Злоумышленник С может перехватить открытое значение, посылаемое от а к В, и послать вместо него свое открытое значение. Затем он может перехватить открытое значение, посылаемое от В к а, и также послать вместо него свое открытое значение. Тем самым С получит обш,ие секретные ключи с а и В и сможет читать и/или модифицировать сообш,ения, передаваемые от одной стороны к другой.

5.3. Протокол обмена секретным ключом

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

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

а может послать В сообш,ение С=Ев(КаДа), где Ев - процедура шифрования с открытым ключом В, Тд - идентификатор а и Ra - случайное число. Теперь В может расшифровать С и получить Тд. Теперь В выбирает случайное число Rb и посылает С-Ea(Ra,Rb) а. После расшифрования С а может в реальном



времени проверить, что В получил Кд, поскольку только В может расшифровать С. Наконец, А посылает В С-Eb(Rb), и когда В расшифрует С" он сможет проверить в реальном времени, что А получил Rb, поскольку только А может расшифровать С. Тем самым А и В аутентифицировали друг друга, т.е. каждый из них знает, что они обш,аются именно друг с другом.

Теперь А посылает В Eb(Da(K)), В расшифровывает сообш,е-ние и получает К. Данная процедура обеспечивает как секретность, так и аутентичность при обмене ключом К.

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

5.4. Использование сертификатов

Метод достижения одновременно аутентичности и целостности при распределении открытых ключей заключается в использовании сертификатов. Система, основанная на сертификатах, предполагает, что имеется центральный орган (ЦО), как и в случае распределения секретных ключей. Далее предполагается, что каждый пользователь может осуш,ествлять безопасное взаимодействие с ЦО. Это относительно просто сделать, поскольку для этого требуется только, чтобы у каждого пользователя был открытый ключ ЦО - Ецо. Тогда каждый пользователь А может зарегистрировать в ЦО свой открытый ключ Ед. Поскольку Ед является открытым, это можно сделать по почте, по открытому каналу электросвязи и т.п.

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

посредников в процессе регистрации пользователя на более низких уровнях иерархии.

В любом случае, в ответ А получает сертификат, подписанный ЦО и содержаш,ий Ед. Т.е., ЦО формирует сообш,ение М, содержаш,ее Ед, идентификационную информацию для А (1д), период действия сертификата и т.п. Затем ЦО вычисляет СЕРТд=Вцо(М), который и становится сертификатом А. СЕКТд делается обш,едоступным документом, который содержит Ед и одновременно аутентифицирует его, поскольку сертификат подписан ЦО. Сертификаты могут распространяться ЦО, пользователями или использоваться в иерархической системе. Включение срока действия является обобш,ением временного штампа. Важность временного штампа заключается в заш,ите от использования скомпрометированных ключей.

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

Некоторые свойства рассмотренных схем могут быть объединены в подход, известный под названием «телефонный справочник», с использованием электронного эквивалента, такого как гибкий диск, содержаш,ий сертификаты. Это облегчит использование, поскольку пользователь сможет быстро связаться с другим, очень быстро получая доступ к сертификату последнего. Однако, и в этом случае ЦО должен выпускать «горячие списки». Периодическое распространение списков сертификатов будет представлять собой отдельный управленческий процесс. Кроме того, безопасность подобной схемы определенно находится под вопросом, поскольку элементы телефонного справочника могут содержать ошибки или быть намеренно изменены.

5.5. Протоколы аутентификации

Предположим, что А желает установить связь с В. Предположим далее, что А получил сертификационный путь от А до В,



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [ 21 ] 22 23 24