Распределения ключей с использованием третьей доверенной стороны. Способы распределения ключей с использованием ЦРК на начальном этапе. Теоретические основы решения задачи

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

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

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

Управление ключами информационный процесс, включающий в себя три элемента: генерацию ключей, накопление ключей, распределение ключей.

Генерация ключей

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

Накопление ключей

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

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

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

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

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

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

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

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

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

В этом случае проблема состоит в том, чтобы надёжно удостоверить подлинность субъектов.

В обоих случаях должна быть гарантирована подлинность сеанса связи.

В качестве обобщения сказанного о распределении ключей следует сказать следующее. Задача управления ключами сводится к поиску такого протокола распределения ключей, который обеспечивал бы :

возможность отказа от центра распределения ключей

взаимное подтверждение подлинности участников сеанса

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

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

Протоколы распределения ключей делят на два класса:

    Протоколы транспортировки ключей;

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

Протоколы транспортировки ключей (key transport) - это протоколы распределения ключей, в которых один участник создает или другим образом приобретает секрет и безопасным образом передает его другим участникам.

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

Выделяют две дополнительные формы протоколов распределения ключей. Говорят, что протокол осуществляет обновление ключей (key update), если в протоколе вырабатывается совершенно новый ключ, не зависящий от ключей, выработанных в прошлых сеансах выполнения протокола. Протокол выполняет выработку производных ключей (key derivation), если новый ключ «выводится» из уже существующих у участников криптосистемы.

К основным свойствам протоколов распределения ключей относят свойства аутентификации ключа, подтверждения ключа и явной аутентификации ключа.

(Неявная) аутентификация ключа (implicit key authentication) - свойство, посредством которого один участник протокола убеждается, что никакая другая сторона, кроме специально идентифицированного второго участника протокола (и возможно, центра доверия), не может получить доступ к секретным ключам, полученным в протоколе. Здесь нет гарантий, что второй участник действительно получил доступ к ключу, но никто другой, кроме него, не мог его получить. Неявная аутентификация ключа независима от реального обладания ключом другим участником и не требует каких бы то ни было действий от второй стороны.

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

Явная аутентификация ключа (explicit key authentication) - свойство, которое выполняется, когда имеют место (неявная) аутентификация ключа и подтверждение ключа одновременно.

    1. Протокол Нидхема-Шрёдера (Needham-Schroeder protocol) на симметричных ключах

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

    Протокол Нидхема-Шрёдера на симметричных ключах;

    Протокол Нидхема-Шрёдера на ассиметричных ключах.

Протокол на симметричных ключах работает следующим образом:

Предварительный этап:

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

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

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

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

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

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

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

В этом случае проблема состоит в том, чтобы надежно удостоверить подлинность субъектов.

В обоих случаях должна быть гарантирована подлинность сеанса связи. Это можно обеспечить двумя способами:

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

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

В обоих случаях следует использовать шифрование, чтобы быть уверенным, что ответ послан не злоумышленником и штемпель отметки времени не изменен.

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

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

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

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

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

Идея метода достаточно проста. После того, как ключ использован в одном сеансе по некоторому правилу он сменяется другим.

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

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

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

Наиболее доступным является использование полей Галуа. За счет возведения в степень порождающего элемента можно последовательно переходить от одного числа к другому. Эти числа принимаются в качестве ключей.

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

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

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

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

Система распределения ключей должна соблюдать следующие требования:

  • целостность и конфиденциальность распределяемых ключей
  • оперативность и точность распределения

При распределении ключей есть 2 подхода:

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

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

  • подтверждения подлинности участников сеанса
  • подтвержения достоверности сеанса
  • реализация минимального числа передачи сообщений при обмене ключами

Явным примером реализации центров распределения ключами является система Kerberos. Здесь мы рассмотрим второй подход. Для этого используют:

  • асимметричную криптосистему с открытым ключом для защиты секретного ключа симметричной криптосистемы
  • системы открытого распределения ключей Диффи-Хеллмана

Реализация комбинированной криптосистемы управления распределением

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

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

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

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

  • Действия пользователя А:
    • Создает (любым способом) сеансовый секретный ключ K s , который нужен в симметричном шифровании для зашифровывания пакетов
    • Шифрует пакет М симметричным алгоритмом на сеансовом секретном ключе K s
    • Зашифровывает асимметричным алгоритмом секретный сеансовый ключ K s на открытом ключе K B пользователя В
    • Отправляет по открытому каналу пользователю В зашифрованный пакет М вместе с зашифрованным сеансовым ключом K s
  • Действия пользователя В(при получении электроннго цифрового конверта):
    • расшифровать асимметричным алгоритмом сеансовый ключ K s с помощью своего секретного ключа K B
    • Расшифровать симметричным алгоритмом пакет М с помощью расшифрованного ключа K s
    • Действия пользователей показаны на рис.1

Рисунок — 1

При реализации цифрового конверта минусы асимметричного и симметричного алгоритмов компенсируются из-за:

  • проблема распространения ключей симметричного криптоалгоритма устранена тем, что сеансовый ключ K s передается по открытому каналу в зашифрованном виде с помощью асимметричного криптоалгоритма
  • проблема медленной скорости асимметричного алгоритма не уместная, так как шифруется только ключ, а текст шифруется симметричным криптоалгоритмом

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

Таблица 1 — Длины ключей для асимметричных и симметричных систем при одинаковой криптостойкости

Метод распределения ключей Диффи-Хеллмана

У.Диффи и М.Хеллман создали метод открытого распределения ключей в 1976 году. Метод разрешает пользователям обмениваться ключами через незащищенный канал связи. Его безопасность основана на сложности вычисления дискретных логарифмов в конечном поле, в отличии от легкости решения прямой задачи дискретного возведения в степень в этом же поле. Схема работы метода показана на рис.2.

Рисунок — 2

Пользователи А и В при обмене данными генерируют свои случайные секретные ключи K A и K B (ключи — случайные большие целые числа). ЗАтем пользователь А и В вычисляет открытые ключи:

  • J A,B = g K A,B (mod N)

N, g — большие целые простые числа. Эти числа не секретные, и известны всем пользователям системы. Затем пользователи А и В реализуют обмен ключами J по незащищенному каналу и реализуют их для вычисления общего сессионного ключа J:

  • пользователь А: J = (J B) K A (mod N) = (g K B) K A (mod N)
  • пользователь B: J` = (J A) K B (mod N) = (g K A) K B (mod N)
  • J = J`, так как (g K B) K A = (g K A) K B

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

Метод комплексной защиты конфиденциальности и аутентичности передаваемых данных

Для одновременной защиты конфиденциальности и целостности информации целесообразно реализовывать и шифрование в комплексе. Алгоритм работает следующим образом:

  • пользователь А подписывает пакет М с помощью своего секретного ключа K A , реализуя стандартный алгоритм цифровой подписи
  • пользователь А вычисляет общий секретный ключ K по принципу Диффи-Хеллмана, из своего открытого ключа и открытого ключа пользователя В
  • пользователь А зашифровывает пакет М на общем секретном ключе К, с помощью симметричного шифрования
  • пользователь В получив пакет М, вычисляет общий ключ К и расшифровывает пакет М
  • пользователь В проверяет подпись расшифрованного пакета М с помощью открытого ключа пользователя K A

На основе алгоритма Диффи-Хеллмана работают протоколы управления криптоключами SKIP, IKE.

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

ПРОСТОЕ РАСПРЕДЕЛЕНИЕ СЕКРЕТНЫХ КЛЮЧЕЙ

Исключительно простая схема представлена на рис. 11.4.

Если инициатор А намерен обменяться данными с пользователем В, для этого предполагается следующая процедура.

Рис. 11.4.

  • 1. Сторона А генерирует пару открытый / личный ключи {KU a , KR a } и передает стороне В сообщение, содержащее KU a и идентификатор IDa отправителя А.
  • 2. Получатель В генерирует секретный ключ К у и передает этот ключ инициатору сообщения А зашифрованным с помощью открытого ключа KU a инициатора А.
  • 3. Пользователь А вычисляет D|a^], чтобы восстановить секретный ключ. Поскольку только пользователь А может дешифровать это сообщение, только участники обмена данными А и В будут знать значение K s .
  • 4. Участник А выбрасывает ключ KR a , а участник В выбрасывает ключ KU a .

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

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

  • 5. Участник А генерирует пару открытый / личный ключи {KU a , KR„} и передает стороне В сообщение, содержащее KU a и идентификатор Ш А отправителя А.
  • 6. Противник Е перехватывает сообщение, создает собственную пару открытый / личный ключи {KU e , KR,} и передает адресату В сообщение, содержащее KU e ||Ш А.
  • 7. В генерирует секретный ключ K v и передает ЕкиЛК,].
  • 8. Противник Е перехватывает это сообщение и узнает K v , вычисляя D KRe ].
  • 9. Противник Е передает участнику А сообщение Екиа[Ку|-

В результате оба участника, А и В, будут знать К 4 , но не будут подозревать, что К л также известен противнику Е. Поэтому стороны А и В могут начать обмен сообщениями, используя K s . Противник Е больше не будет активно вмешиваться в канал связи, а просто будет перехватывать сообщения. Зная K s , он сможет дешифровать любое сообщение, а участники А и В даже не будут подозревать о существовании проблемы. Таким образом, этот простой протокол оказывается полезным только в случае, когда единственной возможной угрозой является пассивный перехват сообщений.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: