Главная страница

Криптография 2е издание Протоколы, алгоритмы и исходные тексты на языке С


Скачать 3.25 Mb.
НазваниеКриптография 2е издание Протоколы, алгоритмы и исходные тексты на языке С
Дата29.04.2022
Размер3.25 Mb.
Формат файлаpdf
Имя файлаShnayer_Prikladnaya-kriptografiya.352928.pdf
ТипПротокол
#504484
страница55 из 78
1   ...   51   52   53   54   55   56   57   58   ...   78

24.2 MITRENET
Одной из самых ранних реализаций криптографии с открытыми ключами была экспериментальная система
MEMO (MITRE Encrypted Mail Office, Шифрованное почтовое отделение). MITRE - это была команда умных парней, работающая по заказу Министерства обороны . MEMO служила системой безопасной электронной по ч- ты для пользователей сети MITRENET и использовала криптографию с открытыми ключами для обмена кл ю- чами и DES для шифрования файлов.
В системе MEMO все открытые ключи хранятся в Центре распределения открытых ключей (Public Key Dis- tribution Center), который является отдельным узлом сети . Ключи хранятся в стираемом перепрограммируемом
ПЗУ, чтобы не дать изменить их. Закрытые ключи генерируются пользователями системы .
Чтобы пользователь мог отправлять безопасные сообщения , система сначала устанавливает безопасное с о- единение с Центром распределения открытых ключей . Пользователь запрашивает в Центре файл всех открытых ключей. Если пользователь проходит идентификацию с использованием его закрытого ключа, Центр пересыл а- ет запрошенный список на рабочую станцию пользователя . Для обеспечения целостности список шифруется с помощью DES.
Для шифрования сообщений используется DES. Для шифрования файлов система генерирует случайный ключ DES, пользователь шифрует файл ключом DES, а ключ DES - открытым ключом получателя. Зашифро- ванный файл и ключ отправляются получателю .
MEMO не предусматривает мер предосторожности против потерь ключей . Существуют некоторые средства проверки целостности сообщений с использованием контрольных сумм . В систему не встроены средства про- верки подлинности.
Прежде, чем система была реализована, была доказана небезопасность конкретной реализации системы о т- крытых ключей в MEMO - обмена ключами по схеме Diffie-Hellman над GF(2 127
) (см. раздел 11.6), хотя не- трудно изменить систему, чтобы можно было использовать большие числа . MEMO была изобретена главным образом для экспериментальных целей и никогда не использовалась в реальной системе MITRENET.
24.3 ISDN
Bell-Northern Research разработала прототип безопасного телефонного терминала ISDN (Integrated Services
Digital Network, Цифровая сеть с интегрированием услуг) [499, 1192, 493, 500]. Как телефонный аппарат, тер- минал остался на уровне прототипа. В результате появился Уровень безопасности пакетов данных ( Packet Data
Security Overlay). Терминал использует схему обмена ключами Diffie-Hellman, цифровые подписи RSA и DES
для шифрования данных. Он может передавать и принимать речь и данные со ск оростью 64 Кбит/с.
Ключи
В телефон встроена пара "открытый ключ/закрытый ключ" для длительного использования . Закрытый ключ хранится в устойчивом от вскрытия модуле телефона . Открытый ключ служит для идентификации телефона .
Эти ключи являются частью самого телефонного аппарата и не могут быть изменены .
Кроме того, в телефоне хранятся еще два открытых ключа . Одним из них является открытый ключ владел ь- ца аппарата. Этот ключ используется для проверки подлинности команд владельца, он может быть изменен по команде, подписанной владельцем. Так пользователь может передать кому-то другому право владения аппар а- том.
В телефоне также хранится открытый ключ сети . Он используется для проверки подлинности команд апп а- ратуры управления сетью и проверки подлинности вызовов от других пользователей сети . Этот ключ также можно изменить командой, подписанной владельцем . Это позволяет владельцу менять сеть, к которой подкл ю- чен его аппарат.
Эти ключи рассматриваются как ключи длительного пользования - они меняются редко, если вообще мен я- ются. В телефоне также хранится пара "открытый ключ/закрытый ключ" для краткосрочного использования .
Они встроены в сертификат, подписанный центром управления ключами . Два телефона обмениваются сертифи- катами при установлении соединения. Подлинность этих сертификатов удостоверяется открытым ключом сети .
Обмен сертификатами и их проверка выполняются только при установлении безопасного соединения между аппаратами. Для установления безопасного соединения между людьми протокол содержит дополнительный компонент. В аппаратном ключе зажигания, который вставляется в телефон владельцем, хранится закрытый ключ владельца, зашифрованный секретным паролем, известным только владельцу (его не знает ни телефонный аппарат, ни центр управления сетью, ни еще кто-нибудь) . Ключ зажигания также содержит сертификат, подп и- санный центром управления сетью, в который включены открытый ключ владельца и некоторая идентификац и- онная информация (имя, компания, специальность, степень допуска, любимые сорта пиццы, сексуальная ориен- тация и прочее). Все это также зашифровано. Для дешифрирования этой информации и ввода ее в телефон
пользователь вводит свой секретный пароль с клавиатуры аппарата . Телефонный аппарат использует эту ин- формацию для соединения, но она удаляется после того, как пользователь извлечет свой ключ зажигания .
В телефоне также хранится набор сертификатов, выданных центром управления сетью . Эти сертификаты удостоверяют право конкретных пользователей пользоваться конкретными телефонными аппаратами .
Вызов
Вызов Боба Алисой происходит следующим образом.
(1) Алиса вставляет в телефон свой ключ зажигания и вводит свой пароль .
(2) Телефон опрашивает ключ зажигания, чтобы определить личность Алисы и выдать ей сигнал "линия сво- бодна".
(3) Телефон проверяет свой набор сертификатов, проверяя, что Алиса имеет право использовать этот аппарат .
(4) Алиса набирает номер, телефон определяет адресата звонка .
(5) Два телефона используют протокол обмена ключами на базе криптографии с открытыми ключами, чтобы генерировать уникальный и случайный сеансовый ключ . Все последующие этапы протокола шифруются с помощью этого ключа.
(6) Телефон Алисы передает свой сертификат и идентификатор пользователя .
(7) Телефон Боба проверяет подписи сертификата и идентификатора пользователя, используя открытый ключ сети.
(8) Телефон Боба инициирует последовательность запросов/ответов . Для этого необходимо в реальном вре- мени (не позднее заданной задержки) отправлять подписанные ответы на запросы . (Это помешает зло- умышленнику использовать сертификаты, скопированные из предыдущего обмена .) Один ответ должен быть подписан закрытым ключом телефона Алисы, а другой - закрытым ключом Алисы .
(9) Если Боба нет у телефона, то его телефон звонит .
(10) Если Боб дома, он вставляет в телефон свой ключ зажигания . Его телефон опрашивает ключ зажигания и проверяет сертификат Боба, как на этапах (2) и (3).
(11) Боб передает свой сертификат и идентификатор пользователя .
(12) Телефон Алисы проверяет подписи Боба, как на этапе (7) и инициирует последовательность запро- сов/ответов, как на этапе (8).
(13) Оба телефона выводят на свои экраны личность и номер телефона другого пользователя .
(14) Начинается безопасный разговор.
(15) Когда одна из сторон вешает трубку, удаляются сеансовый ключ, а также сертификаты, которые телефон
Боба получил от телефона Алисы, и сертификаты, которые телефон Алисы получил от телефона Боба .
Каждый ключ DES уникален для каждого звонка. Он существует только внутри двух телефонных аппаратов и только в течение разговора, а после его окончания немедленно уничтожается. Если злоумышленник добудет один или оба участвовавших в разговоре аппарата, он не сможет расшифровать ни один предшествующий ра з- говор, в котором участвовали эти два аппарата .
24.4 STU-III
STU обозначает "Secure Telephone Unit" (Безопасный телефонный модуль), разработанный в NSA безопас- ный телефон. По размерам и форме этот модуль почти такой же, как и обычный телефон, и может быть испол ь- зован также, как и обычный телефон. Аппараты устойчивы к взлому, без ключа они работают как несекретные .
Они также включают порт передачи данных и помимо передачи речи могут быть использованы для безопасной передачи данных по модемному каналу [1133].
Уитфилд Диффи описал STU-III в [494]:
Чтобы позвонить, используя STU-III, звонящий сначала обычным образом звонит на другой STU-III, затем вставляет по- хожее на ключ устройство, содержащее криптографическую переменную, и нажимает кнопку "секретные переговоры" ( "go se- cure"). Спустя примерно 15 секунд задержки, нужной для криптографической настройки , каждый телефон выводит на экран информацию о личности и допуске другой стороны, и разговор может начинаться .
Беспрецедентным шагом был объявление Уолтера Дили (Walter Deeley), заместителя директора NSA по безопасности коммуникаций, о STU-III или будущей системе безопасной голосовой связи в эксклюзивном интервью, данном The New York
Times [282]. Главной целью новой системы было предоставить Министерству обороны США и его подрядчикам средства безопасной передачи речи и безопасной низкоскоростной передачи данных. В интервью не было много сказано о работе си с- темы, но постепенно информация начала появляться. В новой системе используются открытые ключи.

О новом подходе к распределению ключей было рассказано в [68], в одной статье говорилось о телефонах,
"перепрограммируемых раз в год по безопасному телефонному каналу ", что весьма вероятно предполагает использование протокола проверки сертификатов, аналогичного описанному [в разделе 24.3], который минимизирует для телефонов необх о- димость общаться с центром управления ключами . Последние известия были более информативными , в них рассказывалось о системе управления ключами, названной FIREFLY, которая [1341] "разработана на базе технологии открытых ключей и ис- пользуется для распределения ключей шифрования попарного трафика". И это описание, и свидетельские показания, данные
Конгрессу США Ли Ньювиртом (Lee Neuwirth) из Cylink [1164] предполагают использование комбинации обмена ключами и сертификатами, аналогичного используемому в безопасных телефонах ISDN. Весьма вероятно, что FIREFLY также основана на возведении в степень.
STU-III производятся AT&T и GE. За 1994 год было выпущено 300000-400000 штук . Новая версия, Secure
Terminal Equipment (STE, Безопасный терминал), будет работать по линиям ISDN.
24.5 KERBEROS
Kerberos представляет собой разработанный для сетей TCP/IP протокол проверки подлинности с доверенной третьей стороной. Служба Kerberos, работающая в сети, действует как доверенный посредник, обеспечивая безопасную сетевую проверку подлинности, дающую пользователю возможность работать на нескольких маш и- нах сети. Kerberos на симметричной криптографии (реализован DES, но вместо него можно использовать и дру- гие алгоритмы). При общении с каждым объектом сети Kerberos использует отличный общий секретный ключ,
и знание этого секретного ключа равносильно идентификации объекта .
Kerberos был первоначально разработан в МТИ для проекта Афина . Модель Kerberos основана на протоколе
Needham-Schroeder с доверенной третьей стороной (см. раздел 3.3) [1159]. Оригинальная версия Kerberos, Вер- сия 4, определена в [1094, 1499]. (Версии с 1 по 3 были внутренними рабочими версиями .) Версия 5, модифика- ция Версии 4, определена в [876, 877, 878]. Лучшим обзором по Kerberos является [1163]. Другие обзорные ста- тьи - [1384, 1493], использование Kerberos в реальном мире хорошо описано в [781, 782].
Модель Kerberos
Базовый протокол Kerberos был схематично описан в разделе 3.3. В модели Kerberos существуют располо- женные в сети объекты - клиенты и серверы . Клиентами могут быть пользователи, но могут и независимые пр о- граммы, выполняющие следующие действия : загрузку файлов, передачу сообщений, доступ к базам данных,
доступ к принерам, получение административных привилегий , и т.п.
Kerberos хранит базу данных клиентов и их секретных ключей . Для пользователей-людей секретный ключ является зашифрованным паролем. Сетевые службы, требующие проверки подлинности, и клиенты, которые хотят использовать эти службы, регистрируют в Kerberos свои секретные ключи.
Так как Kerberos знает все секретные ключи, он может создавать сообщения, убеждающие один объект в подлинности другого. Kerberos также создает сеансовые ключи, которые выдаются клиенту и серверу (или двум клиентам) и никому больше. Сеансовый ключ используется для шифрования сообщений, которыми обменив а- ются две стороны, и уничтожается после окончания сеанса .
Для шифрования Kerberos использует DES. Kerberos версии 4 обеспечивал нестандартный, слабый режим проверки подлинности - он не мог определить определенный изменения шифротекста (см. раздел 9.10). Kerberos версии 5 использует режим CBC.
5 4
3 2
1
Kerberos
Клиент
1. Запрос мандата на выделение мандата
2. Мандат выделения мандата
3. Запрос мандата сервера
4. Мандат сервера
5. Запрос услуги
TGS
Сервер
Рис. 24-1. Этапы проверки подлинности Kerberos
Как работает Kerberos
В этом разделе рассматривается Kerberos версии 5. Ниже я обрисую различия между версиями 4 и 5 . Прото- кол Kerberos прост (см. 23rd). Клиент запрашивает у Kerberos мандат на обращение к Службе выделения ман- датов (Ticket-Granting Service, TGS). Этот мандат, зашифрованный секретным ключом клиента, посылается
клиенту. Для использования конкретного сервера клиент запрашивает у TGS мандат на обращение к серверу.
Если все в порядке, TGS посылает мандат клиенту. Затем клиент предъявляет серверу этот мандат вместе с уд о- стоверением. И снова, если атрибуты клиента правильны, сервер предоставляет клиенту доступ к услуге .
Табл. 24-1.
Таблица сокращений Kerberos c
= клиент s
= сервер a
= сетевой адрес клиента v
= начало и окончание времени действия мандата t
= метка времени
K
x
= секретный ключ x
K
x,y
= сеансовый ключ для x и y
(m)K
x
= m, шифрованное секретным ключом x
T
x,y
= мандат x на использование y
A
x,y
= удостоверение x для y
Атрибуты
Kerberos использует два типа атрибутов: мандаты и удостоверения. (В дальнейшем в этом разделе будет использоваться нотация, используемая в документах Kerberos - см. 23-й.) Мандат используется для безопасной передачи серверу личности клиента, которому выдан этот мандат . В нем также содержится информация, кот о- рую сервер может использовать для проверки того, что клиент, использующий мандат, - это именно тот клиент,
которому этот мандат был выдан. Удостоверение - это дополнительный атрибут, предъявляемый вместе с ма н- датом. Мандат Kerberos имеет следующую форму:
T
c,s
= s, {c, a, v, K
c,s
}K
s
Мандат хорош для одного сервера и одного клиента . Он содержит имя клиента, его сетевой адрес, имя се р- вера, метку времени и сеансовый ключ. Эта информация шифруется секретным ключом сервера . Если клиент получил мандат, он может использовать его для доступа к серверу много раз - пока не истечет срок действия мандата. Не может расшифровать мандат (он не знает секретного ключа сервера), но он может предъявить его серверу в зашифрованной форме. Прочитать или изменить мандат при передаче его по сети невозможно . Удо- стоверение Kerberos имеет следующую форму:
A
c,s
= {c, t, ключ}K
c,s
Клиент создает его каждый раз, когда ему нужно воспользоваться услугами сервера . Удостоверение содер- жит имя клиента, метку времени и необязательный дополнительный сеансовый ключ , все эти данные шифруют- ся сеансовым ключом, общим для клиента и сервера . В отличие от мандата удостоверение используется только один раз. Однако это не проблема, так как клиент может генерировать удостоверения по мере надобности (ему известен общий секретные ключ).
Использование удостоверения преследует две цели . Во первых, оно содержит некоторый открытый текст,
зашифрованный сеансовым ключом. Это доказывает, что клиенту известен ключ . Что не менее важно, зашиф- рованный открытый текст включает метку времени . Злоумышленник, которому удалось записать и мандат, и удостоверение, не сможет использовать их спустя два дня .
Сообщения Kerberos версии 5
В Kerberos версии 5 используется пять сообщений (см. 23-й):
1. Клиент-Kerberos: c,tgs
2. Kerberos-клиент: {K
c,tgs
}K
c
, {T
c,tgs
}K
tgs
3. Клиент-TGS: {A
c,s
}K
c,tgs
{T
c,tgs
} K
tgs,s
4. TGS-клиент: {K
c,s
}K
c,tgs
{T
c,s
}K
s
5. Клиент-сервер: {A
c,s
}K
c,s
{T
c,s
}K
s
Теперь рассмотрим использование этих сообщений подробно .
Получение первоначального мандата
У клиента есть часть информации, доказывающей его личность - его пароль . Понятно, что не хочется за- ставлять клиента передавать пароль по сети . Протокол Kerberos минимизирует вероятность компрометации п а- роля, но при этом не позволяет пользователю правильно идентифицировать себя, если он не знает пароля .

Клиент посылает сообщение, содержащее его имя и имя его сервера TGS на сервер проверки подлинности
Kerberos. (может быть несколько серверов TGS.) На практике пользователь, скорее всего, просто вводит свое имя и программа входа в систему посылает запрос .
Сервер проверки подлинности Kerberos ищет данные о клиенте в своей базе данных . Если информация о клиенте есть в базе данных, Kerberos генерирует сеансовый ключ, который будет использоваться для обмена данными между клиентом и TGS. Он называется Мандатом на выделение мандата (Ticket Granting Ticket,
TGT). Kerberos шифрует этот сеансовый ключ секретным ключом клиента . Затем он создает для клиента TGT,
доказывающий подлинность клиента TGS, и шифрует его секретным ключом TGS. Сервер проверки подлинно- сти посылает эти два зашифрованных сообщения клиенту .
Теперь клиент расшифровывает первое сообщение и получает сеансовый ключ . Секретный ключ является однонаправленной хэш-функцией клиентского пароля , поэтому у законного пользователя не будет никаких пр о- блем. Самозванец не знает правильного пароля и, следовательно, не может расшифровать ответ сервера пр о- верки подлинности. Доступ запрещается, и самозванный клиент не может получить мандат или сеансовый ключ.
Клиент сохраняет TGT и сеансовый ключ, стирая пароль и хэш-значение . Эта информация уничтожается для уменьшения вероятности компрометации . Если враг попытается скопировать память клиента, он получит только
TGT и сеансовый ключ. Эти данные важны, но только на время жизни TGT. Когда срок действия TGT истечет,
эти сведения станут бессмысленными. Теперь в течение времени жизни TGT клиент может доказывать TGS
1   ...   51   52   53   54   55   56   57   58   ...   78


написать администратору сайта