Организация сетей засекреченной связи
6.1. Протоколы распределения ключей. 6.1.1. Передача ключей с использованием симметричного шифрования 6.1.2. Передача ключей с использованием асимметричного шифрования 6.1.3. Открытое распределение ключей 6.1.4. Предварительное распределение ключей 6.1.5. Схемы разделения секрета 6.1.6. Способы установления ключей для конференц-связи 6.2. Особенности использования вычислительной техники в криптографии. 6.2.1. Методы применения шифрования данных в локальных вычислительных сетях. 6.2.2. Обеспечение секретности данных при долгосрочном хранении. 6.2.3. Задачи обеспечения секретности и целостности данных и ключей при краткосрочном хранении: 6.2.4. Обеспечение секретности ключей при долгосрочном хранении. 6.2.5. Защита от атак с использованием побочных каналов. Протоколы распределения ключей. Различают следующие типы протоколов распределения ключей: — протоколы передачи (уже сгенерированных) ключей; — протоколы (совместной) выработки общего ключа (открытое распределение ключей); — схемы предварительного распределения ключей. Различают также протоколы распределения ключей между отдельными участниками и между группами участников информационного взаимодействия. Передача ключей с использованием симметричного шифрования Имеются протоколы, в которых стороны осуществляют передачу ключей при непосредственном взаимодействии, то есть двусторонние протоколы или, иначе, протоколы типа "точка-точка", и протоколы с централизованным распределением ключей, в которых предусмотрена третья сторона, играющая роль доверенного центра. Двусторонние протоколы Различают протоколы, в которых стороны заранее располагают какой-либо известной им обоим секретной информацией, и протоколы, не требующие этого условия.
Пусть стороны А и В заранее обладают общей секретной информацией. Допустим, что это — секретный ключ kАВ. Тогда для передачи ключа k стороны могут использовать одностороннюю передачу: А→В: EkAB (k,t,B), где Е — алгоритм шифрования, t — метка времени, В — идентификатор абонента В (для краткости вместо id(B) будем использовать лишь один символ В). Если не передавать метки времени, то злоумышленник может осуществить повторную передачу того же сообщения. Если же не указывать идентификатора адресата, то злоумышленник может вернуть отправителю перехваченное сообщение, что в некоторых ситуациях может быть опасным, поскольку абонент А не сможет установить, что это сообщение получено не от абонента В. В приведенном протоколе вместо шифрования можно было использовать ключевую хэш-функцию, зависящую от общего ключа: А→В: k Å hkAB (t,B). Если дополнительно требуется аутентификация сеанса, то можно использовать следующий протокол типа "запрос-ответ": 1. В→А:rB, 2. А→В:ЕkАВ (k,rB,В), где rB — случайное число, сгенерированное абонентом В и переданное абоненту А в начале сеанса. При использовании хэш-функции подобный протокол может выглядеть так: 1. B→A: rB, 2. A→B: k Å hkAB (rB,B). Если требуется двусторонняя аутентификация, то можно модифицировать последний протокол, предоставив возможность стороне А путем генерации своего случайного числа rА и введения его в сообщение на шаге 2 протокола убедиться в том, что он имеет дело именно с абонентом В. Исходный протокол можно модифицировать так, чтобы искомый ключ k генерировался не одной стороной, а являлся результатом двустороннего обмена. Пусть абонентами А и В помимо случайных чисел rА и rB генерируют также случайные числа k A и kB соответственно. Тогда в результате выполнения протокола
1. В→А:rв, 2. A→B:EkAB (kA,rA,rB,B), 3. B→A:EkAB (kB,rB,rA,A), каждая из сторон может вычислить общий ключ с помощью некоторой функции f по правилу k = f (kA,kB). В этом протоколе ни одна из сторон не может знать заранее значения ключа. Приведем теперь "бесключевой" протокол А. Шамира, позволяющий передать ключ без использования какой-либо общей секретной информации. Пусть имеется некоторое коммутирующее шифрующее преобразование Е. Это означает, что при всех сообщениях х и ключах k 1и k 2выполняется равенство Тогда пользователи А и В могут реализовать следующий трехшаговый протокол для передачи секретного ключа k от А к В: 1. А→В: ЕkА (k), 2. В→А: ЕkB (ЕkА (k)), 3. А→В: DkА (ЕkB (ЕkA (k))). В этом протоколе можно использовать не каждое коммутирующее преобразование Е. Например, легко заметить, что для преобразования Ек (к) = k Å Г протокол оказывается заведомо нестойким. Поэтому в протоколе Шамира рекомендуется использовать преобразование вида ЕkA (k) = ka mod p, в котором константа а определяется ключом kа. Трехсторонние протоколы Рассмотрим протоколы распределения ключей между парами участников с использованием третьей стороны Т, называемой центром. В этом качестве обычно выступает некоторый выделенный узел сети, или сервер, которому доверяют все участники. Центр Т хранит ключи всех абонентов сети. Поэтому схема ключевых взаимоотношений графически представляет собой звезду. Один из первых протоколов такого типа заключается в выполнении следующих шагов: 1. А→Т: А,В,rA, 2. T→A: EkAT (rA,B,k,EkBT (k,A)), 3. A→B: EkBT (k,A), 4. B→A: Ek (rB), 5. A→B: Ek (rB - 1). В результате выполнения трех первых шагов протокола пользователи А и В получают сгенерированный центром Т общий ключ к для организации взаимодействия. Четвертый и пятый шаги предназначены для аутентификации пользователя А и подтверждения правильности получения ключа обеими сторонами. Слабость этого протокола заключается в возможности повторной передачи абоненту В сообщения, переданного на шаге 3. При этом абонент В не имеет возможности установить, что полученный ключ k уже был использован. Поэтому в случае компрометации этого ключа злоумышленник может аутентифицироваться и передавать сообщения от имени A.
Недостаток этого протокола устранен в протоколе Kerberos. Рассмотрим сначала базовый протокол, применяемый в протоколе аутентификации и распределения ключей Kerberos. Он состоит из следующих шагов: 1. А→Т: А,В,rА, 2. Т→А: ЕкBT (k, rA,L,B), билет, 3. A→В: билет, аутентификатор, 4. В→А: Ek (t,kB). Здесь "билетом" названа величина EkBT (k,A,L), "ayтентификатором" — величина Ek (A,t,kA), t — метка времени; L — период времени действия билета, rА — случайное число, сгенерированное абонентом А и вставленное в передаваемое сообщение для взаимной аутентификации, а kА и kB — случайные числа, сгенерированные абонентами А и В соответственно, и используемые либо в качестве ключа шифрования информации другой стороне, либо для выработки общего ключа kАВ = f (kA,kB)с помощью некоторой функции f. В полном протоколе Kerberos описанный выше базовый протокол используется два раза. Дело в том что в нем предусмотрено два сервера. Первый - "сервер аутентификации", обозначаемый AS, выдает так называемые "билеты для получения билетов" (tgt), содержащие ключи, предназначенные для длительного использования. Второй сервер, TGS, — "сервер выдачи билетов", выдает обычные билеты для доступа к сетевым ресурсам и обращения к другим пользователям. Рис.36. Протокол Kerberos. Сообщения, передаваемые согласно этому протоколу, выглядят следующим образом: 1. A→AS: A,TGS,rA,, 2. AS→A: EkA,AS (kA,TGS,rA,L 1 ,TGS), tgt, 3. A→TGS: tgt, аутентификатор 1, B, rA’, 4. TGS→ A: EkA,TGS (k,rA’,L2,B), билет, 5. A→В: билет, аутентификатор 2, 6. B→A: Ek (t2,kB), где tgt = ЕkАS,TGS (kА,TGS, А, L 1), аутентификатор 1 = EkA,TGS (A,t 1), билет = ЕkB,TGS (К, A,L 2 ), аутентифиштор 2 = Ek (A, t 2, kA). Благодаря введению второго сервера нагрузка на первый сервер уменьшается во много раз. Первый сервер должен быть наиболее защищенным, поскольку он хранит главные ключи всех пользователей. Серверов второго типа может быть несколько, и они могут соответствовать определенной подсети или определенному типу ресурса. Приведем еще один протокол распределения ключей с использованием сервера, предпочтительный для случая, когда сервер находится в более удобном расположении для второго абонента. Протокол состоит в выполнении следующих действий:
1. A→B: r,A,B,EkAT (rA,r,A,B), 2. В →Т: r, А,В,EkAT (rA,r, А,В) ,ЕkBT (rB,r, А,В), 3. T→B: EkAT (rA,k) ,EkBT (rB,k), 4. В→А: ЕкАТ (rА,к). Пользователь А генерирует два случайных числа: первое (rА)используется, как и раньше, для взаимной аутентификации, а второе (r) — для аутентификации сеанса связи (вместо него может быть использована метка времени). Этот протокол можно дополнить еще одним шагом для обеспечения взаимной аутентификации сторон и подтверждения правильности полученного ключа: 4’. B→A: ЕkAT (rА,k) ,Еk (r,rв), 5. А→В: Еk (r).
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|