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

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

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

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

Количество требуемых ключей зависит от числа участников, которые должны взаимодействовать. Если выполняется шифрование на сетевом или IP-уровне, то ключ необходим для каждой пары хостов в сети. Таким образом, если есть N хостов, то необходимое число ключей /2 . Если шифрование выполняется на прикладном уровне, то ключ нужен для каждой пары прикладных процессов, которых гораздо больше, чем хостов.

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

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

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

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

Эти мастер-ключи также должны распределяться некоторым безопасным способом. Однако при этом существенно уменьшается количество ключей, требующих ручного распределения. Если существует N участников, которые хотят устанавливать соединения, то в каждый момент времени необходимо /2 ключей сессии . Но требуется только N

Указанный подход порождает своего рода замкнутый круг: чтобы разделить секрет (передаваемое сообщение) отправитель и получатель уже должны обладать общим секретом (ключом шифрования). Раньше данная проблема решалась некриптографическим методом -- передачей ключа по физически защищенным от прослушивания каналам связи (рис. 1). Однако создание подобного канала и поддержание его в оперативной готовности на случай экстренной необходимости передачи ключа является довольно трудоемким и затратным делом.

Рис. 1.

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

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

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


Рис. 2.

Проблемы асимметричной криптографии

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

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

По оценкам специалистов, квантовый компьютер, способный взломать криптосистему RSA, может быть создан примерно через 15-25 лет.

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

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

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

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

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

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

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

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

Генерация ключей. В реальных системах используются специальные аппаратные и программные методы генерации случайных ключей. Как правило используют датчики случайных чисел. Однако степень случайности их генерации должна быть достаточно высокой. Идеальными генераторами являются устройства на основе “натуральных” случайных процессов. Напри­мер, генерация ключей на основе белого радиошума. Другим случайным математическим объектом являются десятичные знаки иррациональных чисел, например p или е, которые вычисляются с помощью стандартных математических методов.

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для обмена информацией первый пользователь выбирает случайное число x 1 , равновероятное из целых чисел от 1 до p – 1. Это число он держит в секрете, а другому пользователю посылает число y 1 = , где α – фиксированный элемент поля Галуа GF (p ), который вместе с p заранее распространяется между пользователями.

Аналогично поступает и второй пользователь, генерируя x 2 и вычислив y 2 , отправляя его первому пользователю. В результате этого они оба могут вычислить общий секретный ключ k 12 = .

Для того, чтобы вычислить k 12 , первый пользователь возводит y 2 в степень x 1 и находит остаток от деления на p . То же делает и второй пользователь, только используя y 1 и x 2 . Таким образом, у обоих пользователей оказывается общий ключ k 12 , который можно использовать для шифрования информации обычными алгоритмами. В отличие от алгоритма RSA, данный алгоритм не позволяет шифровать собственно информацию.

Не зная x 1 и x 2 , злоумышленник может попытаться вычислить k 12 , зная только перехваченные y 1 и y 2 . Эквивалентность этой проблемы проблеме вычисления дискретного логарифма есть главный и открытый вопрос в системах с открытым ключом. Простого решения до настоящего времени не найдено. Так, если для прямого преобразования 1000-битных простых чисел требуется 2000 операций, то для обратного преобразования (вычисления логарифма в поле Галуа) – потребуется около 1030 операций.

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

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

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

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

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

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

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

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

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

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

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

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

Сертификаты

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

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

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

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

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

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

  • 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, призваны обеспечить функцию аутентификации.

Понравилась статья? Поделиться с друзьями: