Описание принципа открытого распределения ключей. Протоколы распределения ключей

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Аннотация: В предыдущих лекциях мы обсуждали криптографию с симметричными ключами и с асимметричными ключами. Однако мы еще не обсудили, как распределяются и обслуживаются ключи засекречивания в криптографии с симметричными ключами и открытые ключи в криптографии с асимметричными ключами. Эта лекция затрагивает эти две проблемы. Во-первых, мы поговорим о распределении симметричных ключей, с использованием третьего лица, которому доверяют. Во-вторых, мы покажем, как две стороны могут установить симметричный ключ между собой, не используя третье лицо, которому доверяют. В-третьих, мы рассмотрим систему Цербер (Kerberos), центры распределения ключей KDC и протокол определения подлинности объекта. В-четвертых, мы обсудим сертификацию общедоступных ключей, используя центры сертификации (CA), на основе рекомендаций X.509. Наконец, мы кратко рассмотрим идею относительно Инфраструктуры Общедоступного ключа (PKI) и расскажем о некоторых из ее режимов работы.

5.1. Распределение с симметричными ключами

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

Если Алиса должна обмениваться конфиденциальными сообщениями с N людьми, она нуждается в N различных ключах. А что, если N людей должно общаться друг с другом? Тогда необходимое общее количество ключей равно N (N - l) . Если мы позволяем Алисе и Бобу использовать два одинаковых ключа для двунаправленной связи для обоих направлений, тогда нужно только N (N - 1)/2 ключей. Это означало бы, что если один миллион человек связывается друг с другом, каждый человек имеет почти один миллион различных ключей. Всего необходим почти один триллион ключей. Это называется N -проблемой, потому что число требуемых ключей для N объектов - N 2 .

Число ключей - не единственная проблема; распределение ключей - другая беда. Алиса и Боб хотят связаться между собой. Им нужен способ обмена ключами засекречивания. Если Алиса хочет связаться с одним миллионом человек, как она может обменяться одним миллионом ключей с одним миллионом человек? Использование Internet - явно не безопасный метод . Очевидно, что мы нуждаемся в эффективном способе поддерживать и распределять ключи засекречивания.

Центр Распределения Ключей: KDC

Практическое решение - привлечение третьего лица, которому доверяют. Оно называется здесь центром распределения ключей (KDC - Key-Distribution Center) . Чтобы уменьшать число ключей, каждый человек устанавливает открытый ключ засекречивания с KDC , как показано на рис. 5.1 .


Рис. 5.1.

Ключ засекречивания установлен между KDC и каждым членом сообщества. Алиса имеет ключ засекречивания с KDC , который мы называем K Alice . Боб имеет ключ засекречивания с KDC , который мы называем K Bob . Теперь вопрос - то, как Алиса может передать конфиденциальное сообщение Бобу. Процесс следующий:

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

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

Когда число людей, использующих KDC (Центр распределения ключей ), увеличивается, система становится неуправляемой и срабатывает ее узкое место - число ключей может кончиться. Чтобы решить проблему, мы должны иметь много KDC . Мы можем разделить мир на домены. Каждый домен может иметь один или более KDCs (для резервной избыточности в случае отказа). Теперь, если Алиса хочет передать конфиденциальное сообщение Бобу, который принадлежит к другому домену, она входит в контакт со своим KDC , который, в свою очередь, входит в контакт с KDC в домене Боба. Два KDCs могут создать ключ засекречивания между Алисой и Бобом.

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

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

Криптографические методы защиты применяют для надежной защиты информации, передаваемой по открытому каналу связи. Чтобы пользоваться этими методами, нужно выполнить первоначальный выбор и установку ключей. Обычно для первоначальног8о распределения ключей нужен защищенный канал связи.
Самый надежный способ первоначального распределения ключей - личная встреча всех взаимодействующих сторон, фельдъегерская связь. При большом числе пользователей требуется предварительная рассылка значительного объема ключевой информации и ее дальнейшее хранение.
На практике используют специальные системы предварительного распределения ключей. Эти системы предусматривают распределение и хранение не самих ключей, а некоторой меньшей по объему информации, на основе которой каждая сторона может вычислить сеансовый ключ.
Имеется два алгоритма предварительного распределения ключей:
  • передается информация, включающая открытую часть, которая может помещена на общедоступном сервере, а также секретные части, предназначенные для каждой стороны;
  • вычисляется действующее значение ключа для взаимодействия между абонентами по имеющейся у абонентов секретной и общей открытой части исходной ключевой информации.
Имеются два требования к системе предварительного распределения ключей:
  • она должна быть устойчивой , т.е. учитывать возможность раскрытия части ключей при компрометации, обмане или сговоре абонентов;
  • она должна быть гибкой - допускать возможность быстрого восстановления путем исключения скомпрометированных и подключения новых абонентов.

Пересылка ключей

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

Открытое распределение ключей

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

Схема разделения секрета

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

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

Сертификаты

Проблема сертификации цифровой подписи заключается в следующем. Прежде чем использовать открытый ключ, абонент должен быть уверен, что открытый ключ принадлежит именно получателю. Открытые ключи хранятся на общедоступном сервере и нарушитель имеет возможность, подменив открытый ключ одного из абонентов, выступать от его имени.
Для защиты открытых ключей созданы специальные центры сертификации, которые играют роль третьей стороны и заверяют открытые ключи каждого из абонентов своими цифровыми подписями.
Сертификат представляет собой набор данных, заверенный цифровой подписью центра, и включает открытый ключ и список атрибутов, принадлежащих абоненту. В этот список входят атрибуты:
  • имя пользователя и центра сертификации;
  • номер сертификата;
  • время действия сертификата;
  • назначение открытого ключа (шифрование , цифровая подпись) и др.
Международный стандарт ISO X.509 определяет общую структуру сертификатов открытых ключей и протоколы их использования для аутентификации в сетях.

Центры сертификации

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

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

Contents

Постановка задачи защиты информации

Протоколы открытого распределения ключей появились в связи с необходимостью реализовать обмен ключами без использования защищённого канала связи . Два или более участников в результате выполнения действий, предписанных протоколом, получают одинаковые ключи, которые затем используются в схемах симметричного шифрования. Первые исследования в этой области были выполнены Уитфилдом Диффи (Whitfield Diffie) и Мартином Хеллманом (Martin Hellman), которые в 70-х годах XX века опубликовали свой протокол открытого распределения ключей. Это была первая криптосистема, которая позволяла защищать информацию без использования секретных ключей, передаваемых по защищенным каналам.

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

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

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

Теоретические основы решения задачи

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

Общая схема протокола выглядит следующим образом:

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

  • получить p – большое простое число;
  • получить полное разложение числа (p –1) на множители;
  • вычислить первообразный корень r по модулю p (r mod p).

Составное число раскладывается на простые множители (на простые числа или их положительные целые степени, возможно нулевые), где p i – простые числа; b i – степени простых чисел.

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

Рабочий этап

Пусть и - два абонента, которым необходимо получить общий секретный ключ . Тогда:

1. генерирует элемент , вычисляет и отправляет результат

2. генерирует элемент , вычисляет и отправляет результат

3. вычисляет значение

4. вычисляет значение

После получения значения и необходимо уничтожить.

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

Основные криптографические конструкции и их стойкость

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

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

Протокол Диффи-Хеллмана не обеспечивает ни аутентификацию , ни подтверждение ключа, ни аутентификацию участников протокола. Активный противник может построить атаку на протокол методом включения в канал (атака "Человек посередине").

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

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

Cхема Эль-Гамаля

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

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

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

IKE (Internet Key Exchange)

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

IPsec (IP Security) - набор протоколов для обеспечения защиты данных, передаваемых по межсетевому протоколу IP. Позволяет осуществлять подтверждение подлинности (аутентификацию), проверку целостности и/или шифрование IP-пакетов. IPsec также включает в себя протоколы для защищённого обмена ключами Диффи-Хеллмана в сети Интернет.

Протоколы IKE решают три задачи:

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

Управляют параметрами соединения и защитой от некоторых типов атак, контролируют выполнение всех достигнутых соглашений;

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

PGP (Pretty Good Privacy)

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

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

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

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

  • 1. Ключ может быть выбран стороной А и физически доставлен стороне В.
  • 2. Ключ может выбрать третья сторона и физически доставить его участникам А и В.
  • 3. Если участники обмена А и В уже используют некоторый общий ключ, одна из сторон может передать новый ключ второй стороне в шифрованном виде, используя старый ключ.
  • 4. Если обе из сторон А и В имеют криптографически защищенные каналы связи с третьей стороной С, то последняя может доставить ключ участникам А и В по этим защищенным каналам.

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

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

Масштаб проблемы зависит от числа контактирующих пар, которые приходится обслуживать. Если сквозное шифрование осуществляется на сетевом уровне или на уровне IP, то потребуется по одному ключу для каждой пары ведущих узлов в сети, обменивающихся данными. Поэтому, если имеется N ведущих узлов, число необходимых ключей будет равно / 2. Если шифрование осуществляется на уровне приложения, то свой ключ потребуется для каждой пары пользователей или процессов, выходящих на связь. При этом сеть может иметь сотни ведущих узлов и тысячи пользователей и процессов. На рис. 6.2 для случая сквозного шифрования показана зависимость сложности задачи распределения ключей от числа пар, участвующих в обмене данными. Например, в сети, насчитывающей 1000 узлов, где шифрование осуществляется на уровне узла, скорее всего придется распределять около полумиллиона ключей. А если в такой сети поддерживается около 10 000 приложений, то при шифровании на уровне приложений может потребоваться распределение около 50 миллионов ключей.

Рис. 6.2.

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

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

Рис. 6.3.

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

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

Распределение ключей можно реализовать разными способами. Типичный сценарий показан на рис. 6.4. Этот сценарий предполагает, что каждый пользователь имеет уникальный главный ключ, используемый совместно с центром распределения ключей (ЦРК).

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

При этом пользователь А имеет секретный ключ К а, известный только ему и ЦРК, и точно так же В использует общий с ЦРК главный ключ К в.

Система обмена информацией выглядит следующим образом.

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

Рис. 6.4.

  • 1. Кроме того, сообщение включает и два элемента, предназначенные для В :
    • - одноразовый сеансовый ключ К. у, который будет использоваться в сеансе связи;
    • - идентификатор ГО А пользователя А (например, его сетевой адрес).
  • 2. Оба элемента шифруются с помощью ключа К ь (главного ключа, применяемого совместно ЦРК и В), и предполагается, что они должны быть впоследствии отправлены В, чтобы установить соединение и идентифицировать А.
  • 3. Сторона А сохраняет сеансовый ключ для предстоящего сеанса связи и пересылает стороне В информацию, полученную от ЦРК и предназначенную для В (а именно, информацию Екь[К Л ||ГО А ]). Поскольку эта информация шифрована с использованием К ь, она оказывается защищенной. Теперь получатель В знает сеансовый ключ (K s) и знает, что полученная информация пришла от ЦРК (поскольку эта информация оказывается зашифрованной с использованием ключа Кь).

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

  • 1. Используя только что полученный сеансовый ключ К, для шифрования, сторона В посылает стороне А новую оказию Л/
  • 2. С помощью того же ключа K s сторона А в ответ возвращает /{N 2 ), где /является функцией, выполняющей некоторое преобразование N 2 (например, добавление единицы).

Эти действия призваны убедить адресата В в том, что первоначально полученное им сообщение (п. 3) не было воспроизведено.

Следует обратить внимание на то, что сам процесс передачи ключа фактически выполняется в п. 1-3, а п. 4 и 5, так же как отчасти и п. 3, призваны обеспечить функцию аутентификации.