Управление ключами. Проблема распределения ключей в криптографии Алгоритмы распределения ключей

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

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

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

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

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

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

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

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

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

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

Сертификаты

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

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

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

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

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

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

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

* генеpацию ключей;

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

* pаспpеделение ключей.

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

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

В самом начале pазговоpа о кpиптогpафических методах было сказано, что не стоит использовать неслучайные ключи с целью легкости их запоминания. В сеpьезных ИС используются специальные аппаpатные и пpогpаммные методы генеpации случайных ключей. Как пpавило используют датчики ПСЧ. Однако степень случайности их генеpации должна быть достаточно высоким. Идеальным генеpатоpами являются устpойства на основе "натуpальных" случайных пpоцессов. Напpимеp, появились сеpийные обpазцы генеpации ключей на основе белого pадиошума . Дpугим случайным математическим объектом являются десятичные знаки иppациональных чисел, напpимеp или е , котоpые вычисляются с помощью стандаpтных математических методов.

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

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

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

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

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

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

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

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

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

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

Распpеделение ключей - самый ответственный пpоцесс в упpавлении ключами. К нему пpедъявляются два тpебования:
  1. Опеpативность и точность pаспpеделения
  2. Скpытность pаспpеделяемых ключей.
В последнее вpемя заметен сдвиг в стоpону использования кpиптосистем с откpытым ключом, в котоpых пpоблема pаспpеделения ключей отпадает. Тем не менее pаспpеделение ключевой инфоpмации в ИС тpебует новых эффективных pешений.

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

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

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

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

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

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

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

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

Алгоpитм Диффи-Хеллмана

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

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

Если y = x , 1<x <p -1, где - фиксиpованный элемент поля GF(p) , то x =log y над GF(p) . Имея x , легко вычислить y . Для этого потpебуется 2 ln(x +y ) опеpаций умножения.

Обpатная задача вычисления x из y будет достаточно сложной. Если p выбpано достаточно пpавильно, то извлечение логаpифма потpебует вычислений, пpопоpциональных

L(p) = exp { (ln p ln ln p ) 0.5 }

Для обмена инфоpмацией пеpвый пользователь выбиpает случайное число x 1 , pавновеpоятное из целых 1...p -1. Это число он деpжит в секpете, а дpугому пользователю посылает число

y 1 = x mod p

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

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

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

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

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

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

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

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

* подтвеpждение достовеpности сеанса механизмом запpоса-ответа, использование для этого пpогpаммных или аппаpатных сpедств;

* использование пpи обмене ключами минимального числа сообщений.

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

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

Лекция 6: Управление криптографическими ключами. Криптографические протоколы.

Вопросы:

1. Криптографические протоколы.

2. Распределение секретных ключей.

3. Распределение открытых ключей.

4. Распределение секретных ключей с помощью системы с открытым ключом.

1 Криптографические протоколы.

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

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

· при игре в карты;

· при заказе товаров по телефону.

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

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

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

· Алиса – первый участник.

· Боб – второй участник.

· Кэрол – участник в трехсторонних протоколах.

· Дэйв – четырехсторонний протокол.

· Ева – перехватчик сообщений.

· Мэллори – активный взломщик.

· Трэнт – доверенный посредник.

· Уолтер –надзиратель (стережет Алису и Боба).

· Пэгги – претендент (пытается что-то доказать).

· Виктор – верификатор (проверяет Пэгги).

Различают:

· самодостаточные протоколы ;

· протоколы с посредником ;

· протоколы с арбитром.

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

Алиса Боб

Протоколы с посредником.

Посредником называют незаинтересованную третью сторону, которой доверено довести до конца исполнение протокола. «Незаинтересованность» означает, что посреднику безразличны как результат исполнения протокола, так и любой его участник. Все участники протокола воспринимают слова посредника как истину, все его действия признают правильными.

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


Протоколы с арбитром.


Арбитр – посредник особого типа. Это незаинтересованная и доверенная третья сторона. В отличие от посредника он не обязательно участвует в исполнении каждого протокола, а только в том случае, когда между сторонами возникают разногласия.

В качестве примера можно назвать судей.

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

Организация связи с помощью симметричной криптографии.

Модель симметричной криптосистемы:

1. Алиса и Боб выбирают криптосистему.

2. Алиса и Боб выбирают ключ.

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

4. Алиса посылает шифротекст Бобу.

5. Боб расшифровывает шифротекст, используя ключ и получая открытый текст.

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

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

Активный взломщик Мэллори может пойти дальше. На этапе 4 он может нарушить линию связи. Либо перехватить сообщение Алисы и заменить его собственным. У Боба нет никакой возможности распознать, что сообщение отправлено не Алисой.

Алиса или Боб могут передать копию ключа Еве и т.д.

Подводя итоги, перечислим недостатки симметричных криптосистем :

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

2. При получении ключа возможно создание ложных сообщений.

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

n пользователей - n (n – 1) / 2 – ключей,

10 пользователей - 45 ключей,

100 пользователей - 4950 ключей и т.д.

Организация связи с помощью криптографии с открытым ключом.

1. Алиса и Боб договариваются использовать криптосистему с открытым ключом.

2. Боб посылает Алисе свой открытый ключ.

3. Алиса шифрует свое сообщение, используя открытый ключ Боба, и отсылает его Бобу.

4. Боб расшифровывает сообщение своим закрытым ключом.

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


2. Распределение секретных ключей.

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

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

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

1. Ключ выбран стороной А и физически доставлен В.

2. Ключ выбирает третья сторона и физически доставляет А и В.

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

4. Третья сторона С доставляет ключ А и В по защищенным каналам связи, т.е. используется некий Центр распределения ключей (ЦРК).

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

Рассмотрим п.4.

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

Главных ключей требуется N (по числу пользователей). Их распределяют некриптографическим способом (физической доставкой адресату).

Сценарий распределения ключей (Централизованная схема).

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

При этом пользователь А имеет секретный ключ К a , известный только ему и ЦРК, а пользователь В имеет К b (К a и К b –главные ключи, К s – одноразовый сеансовый ключ).

Обмен информацией происходит следующим образом:

1. Пользователь А посылает запрос в ЦРК на получение сеансового ключа для защиты связи с В.

Посылаемый запрос должен включать:

- информацию, позволяющую однозначно определить А и В ( ID A , ID В );

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

2. ЦРК отвечает на запрос пользователя А, шифруя ответ ключом К a (главным А). Единственным пользователем, кто сможет прочесть ответ, является А (следовательно, А уверен, что сообщение пришло от ЦРК).

Сообщение-ответ включает следующие элементы:

· Предназначенные для А :

S (для связи А с В).

- Запрос с оказией N 1 , чтобы пользователь А мог сопоставить ответ с запросом.

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

· Предназначенные для В .

Одноразовый сеансовый ключ К s .

Идентификатор пользователя А - ID A (например, сетевой адрес А).

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

E Ka [ K S ||Запрос|| N 1 || E Kb (K S , ID A )]

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

Пользователь В получает К s и знает, что полученная информация пришла от ЦРК (так как она зашифрована К В, который знают только В и ЦРК).

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

4. Используя полученный сеансовый ключ К s пользователь В посылает пользователю А новую оказию N 2 .

5. С помощью К s пользователь А в ответ возвращает f (N 2 ). Это необходимо, чтобы убедить В в том, что первоначально полученное им сообщение не было воспроизведено злоумышленником.

Таким образом, обеспечивается не только передача ключа, но и аутентификация (шаги 4 и 5).


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

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

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

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


1) А посылает запрос на получение К s + оказия N 1 .

2) В отвечает, шифруя ответ с использованием общего у А и В главного ключа Е МК m .

3) А возвращает f (N 2 ), шифруя с помощью К s .

3. Распределение открытых ключей.

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

1. распределение открытых ключей;

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

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

1. публичное объявление;

2. публично доступный каталог;

4. сертификаты открытых ключей.

1)Публичное объявление открытых ключей (Неконтролируемое распределение) .

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

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

2)Публично доступный каталог (Централизованная схема).

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

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

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

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

4. Периодически публикуется весь каталог или обновления к нему.

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

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

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

(1) Инициатор А посылает сообщение с меткой даты/времени (оказией N 1 ) авторитетному источнику открытых ключей с запросом о текущем открытом ключе участника В.

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

· Открытый ключ участника В , KU b ;

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


· Оригинальную метку даты/времени (оказия N 1 ), чтобы отправитель А мог удостовериться, что это ответ именно на данный запрос.

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

(4) (5) Респондент В получает открытый ключ участника А от авторитетного источника точно таким же способом, каким отправитель А получил открытый ключ получателя В.

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

(6) Респондент В посылает сообщение инициатору А, шифрованное с помощью KU A и содержащее оказию отправителя А ( N 1 ), а также новую оказию, сгенерированную участником В ( N 2 ). Присутствие N 1 в сообщении (6) убеждает участника А в том, что отправителем полученного сообщения был В.

(7) Инициатор А возвращает N 2 шифрованное с помощью открытого ключа участника В, чтобы тот мог убедиться в том, что отправителем ответа является А.

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

4) Сертификаты открытых ключей .

Альтернативный подход предложил Конфельдер. Он основан на сертификатах.

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

Требования к системе :

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

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

4. Деннинг добавил следующее требование – любой участник должен иметь возможность проверить срок действия сертификата.


Рис. Обмен сертификатами открытых ключей.

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

АИС пересылает сертификаты С А и С В, содержащие 1) время действия сертификата; 2)идентификатор владельца; 3)открытый ключ владельца сертификата. Сертификаты зашифрованы с помощью личного ключа авторитетного источника.

А может переслать сертификат любому участнику.

Получатель использует открытый ключ KU auth АИС, чтобы прочитать сертификат. Это дает гарантию, что сертификат пришел именно от него.

D KU [ C A ]= D KU [ E KR [ T , ID A , KU A ]]=(T , ID A , KU )

4. Распределение секретных ключей с помощью системы с открытым ключом.

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

1)Схема Меркла (самодостаточный протокол)

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


1. Сторона А генерирует пару открытый/личный ключи { KU A , KR A } и передает сообщение стороне В, содержащее KU A и идентификатор отправителя А, ID A .

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

3. Пользователь А вычисляет D KRa [ E KUa [ K S ]], чтобы восстановить секретный ключ. Поскольку только участник А может дешифровать это сообщение, только участники обмена А и В будут знать значение K S .

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

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

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

1. Участник А генерирует пару открытый/личный ключи { KU A , KR A KU A и идентификатор участника А, ID A .

2. Противник Е перехватывает сообщение, создает собственную пару открытый/личный ключи { KU Е , KR Е } и передает сообщение адресату В, содержащее KU Е || ID A .

3. В генерирует секретный ключ K S и передает E KUe [ K S ].

4. Противник Е перехватывает это сообщение и узнает K S , вычисляя D KRe [ E KUe [ K S ]].

5. Противник Е передает участнику А сообщение E KU а [ K S ].

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

2)Распределение секретных ключей с обеспечением конфиденциальности и аутентификации.

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


(1) Сторона А использует открытый ключ стороны В, чтобы переслать стороне В шифрованное сообщение, содержащее идентификатор участника А ( ID A ) и оказию (N 1 ), используемую для идентификации данной конкретной транзакции.

(2) Пользователь В дешифрует (1) с использованием KR В . Пользователь В посылает сообщение пользователю А, зашифрованное с помощью KU А и содержащее полученную от него оказию ( N 1 ) и новую оказию (N 2 ). Ввиду того, что только участник В мог дешифровать сообщение (1), присутствие N 1 в сообщении (2) убеждает участника А в том, что респондентом является сторона В.

( 3) Сторона А возвращает N 2 , шифруя сообщение открытым ключом стороны В, чтобы гарантировать ей, что его респондентом является сторона А.

(4) Участник А выбирает секретный ключ K S и посылает участнику В сообщение M = E KUb [ E KRa [ K S ]]. Шифрование этого сообщения открытым ключом стороны В гарантирует, что только участник В сможет прочитать его, а шифрование личным ключом участника А – что только участник А смог послать его.

(5) Сторона В вычисляет В KU а [ E KRb [ K S ]], чтобы восстановить секретный ключ.

При обмене секретными ключами эта схема гарантирует как конфиденциальность, так и аутентификацию.

3) Гибридная схема (трехуровневая).

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

· Скорость выполнения процедуры .

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

· Обратная совместимость .

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

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

5. Обмен ключами по схеме Диффи-Хеллмана.

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

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

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

a mod p, a 2 mod p,…, a p-1 mod p

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

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

Пользователь А выбирает случайное целое число Х А < q и вычисляет Y A =а XA mod q . Точно так же пользователь В независимо выбирает случайное целое число X B < q и вычисляет Y B = a XB mod q . Каждая сторона сохраняет значение Х в тайне и делает значение Y свободно другой стороне. Пользователь А вычисляет ключ по формуле К = ( Y B ) XA mod q , а пользователь В по формуле К = ( Y А ) X В mod q . Эти две формулы вычисления дают одинаковые результаты .

Итак, обе стороны обменялись секретными ключами. А поскольку при этом Х А и Х В были только в личном использовании и поэтому сохранились в тайне, противнику придется работать только с q , a , Х А,Х B . Таким образом, ему придется вычислять дискретный логарифм, чтобы определит ключ. Например, чтобы определить ключ.

После этого он сможет вычислить ключ К точно так же, как это делает пользователь В.

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


Противник знает: q , а, Y А , Y В. Чтобы определить ключ, необходимо вычислить дискретный логарифм.

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

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

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

Под ключевой информацией понимается совокупность всех действующих в ИС ключей.

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

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

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

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

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

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

Накопление ключей – организация их учета, хранения и удаления. Так как ключей много, то они хранятся в БД ключевой информации. Сами ключи должны храниться в БД в зашифрованном виде.

Ключ, зашифровывающий ключевую информацию, называется мастер- ключом.

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

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

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

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

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

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

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

1) можно через курьера доставить ключ, но так как ключи должны обновляться, то доставлять дорого и неэффективно

2) получение двумя пользователя общего ключа от центрального органа (Центр Распределении Ключей – ЦРК). Передаваемый ключ шифруется ключом ЦРК. Недостаток: в ЦРК может появиться злоумышленник. Можно, чтобы в виде дерева организовать хранение ключей в ЦРК.

3) Третий способ предложили ученые Диффи и Хеллман – протокол обмена ключами по открытому каналу. Протокол – это последовательность шагов, которые принимают 2 или большее число сторон для совместного решения задачи. Все шаги следуют в порядке очередности.



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

Протокол обмена ключами по открытому каналу Диффи-Хеллмана.

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

1. Пользователь А генерирует случайное число Х.

2. Пользователь В генерирует случайное число У.

3. А вычисляет: La=a^x mod m

4. B вычисляет: Lb=b^y mod m

5. A посылает пользователю В La.

6. В посылает пользователю А Lb.

7. A вычисляет Kab =(Lb)^x mod m=(a^y mod m)^x mod m=a^xy mod m.

8. B вычисляет Kab =(La)^y mod m=(a^x mod m)^y mod m=a^xy mod m.

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

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

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

1. механизма «запрос-ответ» (процедура «рукопожатие» = установка виртуального канала);

2. механизма отметки времени.

Задача распределения ключей сводится к построению протокола распределения, обеспечивающего:

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

2. Подтверждение достоверности сеанса механизмом «запрос-ответ» или отметки времени.

3. Использование минимального числа сообщений при обмене ключами.

4. Возможность исключения злоупотребления со стороны ЦРК (вплоть до отказа от его услуг).

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

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

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

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

Например: сертификат открытого ключа для пользователя А, обозначаемый С А, содержит отметку времени Т, идентификатор Id A , открытый ключ K A , зашифрованный секретным ключом ЦРК К црк:

С А = Е К црк (Т, Id A , K A)

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

Система, обеспечивающая шифрование с открытым ключом и ЭЦП, называется инфраструктурой открытого ключа.

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

1. Полное имя пользователя (номер, пароль).

2. Открытый ключ пользователя.

3. Время действия сертификата.

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

Аутентификация Kerberos

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

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

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

  1. получение пользователем билета TGT на билеты;
  2. получение пользователем билета на доступ к серверу ;
  3. аутентификация пользователя сервером;
  4. аутентификация сервера пользователем.

Рассмотрим более подробно аутентификацию в системе Kerberos (рис. ), которая выполняется за четыре шага:

1) Сеанс начинается с получения пользователем А билета для получения билета - Ticket-Granting Ticket (TGT) от ЦРК .

2) Когда пользователь желает получить доступ к некоторому серверу В, то сначала отправляет запрос на билет для доступа к этому серверу вместе со своим билетом TGT в ЦРК . TGT содержит информацию о сеансе регистрации пользователя А и позволяет ЦРК оперировать, не поддерживая постоянно информацию о сеансе регистрации каждого пользователя.

3) В ответ на свой запрос пользователь А получает зашифрованный сеансовый ключ S A и билет на доступ к серверу В. Сеансовый ключ зашифрован секретным ключом, известным только пользователю А и ЦРК . Билет на доступ к серверу В содержит тот же самый сеансовый ключ, однако он шифруется секретным ключом, известным только серверу В и ЦРК .

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