Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Как читать эту книгу 6 страница



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

SKEY

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

Регистрируясь в системе, Алиса задает случайное число, R.Компьютер вычисляет f(R), f(f(R)), f(f(f(R))), и так далее, около сотни раз. Обозначим эти значения как x1, x2, x3,..., x100.Компьютер печатает список этих чисел, и Алиса прячет его в безопасное место. Компьютер также открытым текстом ставит в базе данных подключения к системе в соответствие Алисе число x101.

Подключаясь впервые, Алиса вводит свое имя и x100.Компьютер рассчитывает f(x100) и сравнивает его с x101,если значения совпадают, права Алисы подтверждаются. Затем компьютер заменяет в базе данных x101 на x100. Алиса вычеркивает x100 из своего списка.

Алиса, при каждом подключении к системе, вводит последнее невычеркнутое число из своего списка: xi. Компьютер рассчитывает f(xi) и сравнивает его с xi+1,хранившемся в базе данных. Так как каждый номер используется только один раз, Ева не сможет добыть никакой полезной информации. Аналогично, база данных бесполезна и для взломщика. Конечно же, как только список Алисы исчерпается ей придется перерегистрироваться в системе.

Удостоверение подлинности с помощью криптографии с открытыми ключами

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

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

(1) Главный компьютер посылает Алисе случайную строку.

(2) Алиса шифрует эту строку своим закрытым ключом и посылает ее обратно главному компьютеру вместе со своим именем.

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

(4) Если отправленная сначала и расшифрованная строки совпадают, главный компьютер предоставляет Алисе доступ к системе

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

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

Глупо шифровать произвольные строки - не только посланные подозрительным автором, но и вообще любые. Иначе может быть использовано схема вскрытия, обсуждаемая в разделе 19.3. Безопасные идентификационные протоколы имеют следующую, более сложную форму:

(1) Алиса выполняет вычисление, основанное на некоторых случайных числах и своем закрытом ключе, и посылает результат на главный компьютер.

(2) Главный компьютер посылает другое случайное число.

(3) Алиса выполняет некоторое вычисление, основанное на случайных числах (как созданном ею, так и полученном от главного компьютера) и своем закрытом ключе, и посылает результат на главный компьютер.

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

(5) Если проверка завершается успешно, личность Алисы подтверждается.

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

Этап (1) может показаться ненужным и запутанным, но он необходим для защиты протокола от вскрытия. Различные протоколы и алгоритмы подтверждения подлинности математически подробно описываются в разделах 21.1 и 21.2. См. также [935].

Обоюдное удостоверение подлинности с использованием протокола "держась за руки"

Пусть два пользователя, Алиса и Боб, хотят проверить подлинность друг друга. У каждого из них есть пароль, известный другому пользователю: PA у Алисы и PB у Боба. Вот как выглядит протокол, который не будет работать:

(1) Алиса и Боб обмениваются открытыми ключами.

(2) Алиса шифрует PA открытым ключом Боба и посылает его ему.

(3) Боб шифрует PB открытым ключом Алисы и посылает его ей.

(4) Алиса расшифровывает полученное на этапе (3) и подтверждает правильность пароля.

(5) Боб расшифровывает полученное на этапе (2) и подтверждает правильность пароля.

Мэллори может предпринять успешное вскрытие "человек-в-середине" (см. раздел 3.1):

(1) Алиса и Боб обмениваются открытыми ключами. Мэллори перехватывает оба сообщения, и посылает обоим корреспондентам свой собственный открытый ключ, подменив им их ключи.

(2) Алиса шифрует PA открытым ключом "Боба" и посылает его ему. Мэллори перехватывает сообщение, расшифровывает PA с помощью своего закрытого ключа, снова шифрует PA открытым ключом Боба и посылает его ему.

(3) Боб шифрует PB открытым ключом "Алисы" и посылает его ей. Мэллори перехватывает сообщение, расшифровывает PB с помощью своего закрытого ключа, снова шифрует PB открытым ключом Алисы и посылает его ей.

(4) Алиса расшифровывает PB и подтверждает его правильность.

(5) Боб расшифровывает PA и подтверждает его правильность.

Для Алисы и Боба ничего не изменилось. Однако, Мэллори знает и PA, и PB. Дональд Дэвис (Donald Davies) и Вильям Прайс (William Price) описывают, как протокол "держась-за-руки" (см. раздел 3.1) противодействует такому вскрытию [435]. Стив Белловин (Steve Bellovin) и Майкл Мерритт (Michael Merritt) рассматривают способы вскрытия этого протокола в [110]. Если Алиса - это пользователь, а Боб - хост-компьютер, Мэллори может предпочесть быть Бобом, выполнить первые этапа протокола с Алисой и разорвать соединение. Симулирование шума на линии или сетевого отказа потребует от Мэллори настоящего артистизма, но в результате Мэллори получит пароль Алисы. Затем он сможет соединиться с Бобом и завершить протокол, получая и пароль Боба.

Протокол можно изменить так, чтобы Боб передавал свой пароль перед Алисой в предположении, что пароль пользователя более важен, чем пароль главного компьютера. Это приведет к усложнению способа вскрытия, также описанного в [110].

SKID

SKID2 и SKID3 - это симметричные криптографические протоколы идентификации, разработанные для проекта RACE RIPE [1305] (см. раздел 25.7). Они используют MAC (см. раздел 2.4) для обеспечения безопасности и предполагают, что Алиса и Боб используют общий секретный ключ, K.SKID2 позволяет Бобу доказать свою подлинность Алисе. Вот этот протокол:

(1) Алиса выбирает случайное число, RA. (Документами RIPE определяется 64-битовое число). Она посылает это число Бобу.

(2) Боб выбирает случайное число, RB. (Документами RIPE определяется 64-битовое число). Он посылает Алисе.

RB, HK(RA, RB, B)

HK - это MAC. (В документах RIPE предлагается функция RIPE-MAC, см. раздел 18.4.) B - это имя Боба.

(1) Алиса рассчитывает HK(RA, RB, B) и сравнивает результат со значением, полученным от Боба. Если результаты совпадают, Алиса убеждается в том, что она соединилась именно с Бобом.

SKID3 обеспечивает совместную проверку подлинности Алисой и Бобом. Этапы (1) - (3) совпадают с протоколом SKID2, а затем выполняются следующие действия:

(4) Алиса посылает Бобу:

HK(RB, A)

A - это имя Алисы.

(5) Боб рассчитывает HK(RB, A) и сравнивает результат со значением, полученным от Алисы. Если результаты совпадают, Боб убеждается в том, что она соединилась именно с Алисой.

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

Удостоверение подлинности сообщений

Когда Боб получает сообщение от Алисы, как ему узнать, что это сообщение подлинно? Если Алиса подписала свое сообщение, то все просто. Цифровая подпись Алисы достаточна, чтобы подтвердить кому угодно подлинность ее сообщения.

Некоторую проверку подлинности предоставляют и симметричные алгоритмы. Когда Боб получает сообщение от Алисы, шифрованное их общим ключом, он знает, что это сообщение от Алисы. Никто больше не знает их ключа. Однако, у Боба нет возможности убедить в этом кого-то еще. Боб не может показать сообщение Тренту и убедить его, что оно отправлено Алисой. Трент может сделать вывод, что сообщение отправлено или Алисой, или Бобом (так как их секретный ключ никому больше не принадлежит), но у него нет способа определить, кто же конкретно автор сообщения.

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

3.3 Удостоверение подлинности и обмен ключами

Эти протоколы объединяют удостоверение подлинности и обмен ключами для решения основной компьютерной проблемы: Алиса и Боб хотят безопасно обмениваться сообщениями, находясь на различных концах сети. Как могут Алиса и Боб обменяться секретным ключом, при этом сохраняя уверенность, что они обмениваются сообщениями друг с другом, а не с Мэллори? В большинстве протоколов предполагается, что каждому пользователю Трент выделяет отдельный секретный ключ, и перед началом работы протокола все ключи уже находятся у пользователей. Символы, используемые в этих протоколах, сведены в Табл. -1.

Табл. -1.
Символы, используемые в протоколах удостоверения подлинности и обмена ключами

A Имя Алисы
B Имя Боба
EA Шифрование ключом, выделенном Трентом Алисе
EB Шифрование ключом, выделенном Трентом Бобу
I Порядковый номер
K Случайное сеансовое число
L Время жизни
TA, TB Метки времени
RA, RB Случайные числа, выбранные Алисой и Бобом, соответственно

Лягушка с широким ртом

Протокол "Лягушка с широким ртом" (Wide-Mouth Frog) [283, 284], возможно, является простейшим симметричным протоколом управления ключами, в котором используется заслуживающий доверия сервер. Алиса и Боб делят свой секретный ключ с Трентом. Эти ключи используются только для распределения ключей, а не для шифрования пользовательских сообщений. Вот как, используя два сообщения, Алиса передает Бобу сеансовый ключ:

(1) Алиса объединяет метку времени, имя Боба и случайный сеансовый ключ, затем шифрует созданное сообщение общим с Трентом ключом и посылает его Тренту вместе со своим именем.

A, EA(TA, B, K)

(2) Трент расшифровывает сообщение от Алисы. Затем он добавляет новую метку времени, имя Алисы и случайный сеансовый ключ, шифрует полученное сообщение общим с Бобом ключом. Трент посылает Бобу:

EB(TB, B, K)

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

Yahalom

В этом протоколе Алисы и Боб делят с Трентом секретный ключ [283, 284].

(1) Алиса объединяет свое имя и случайное число, и отправляет созданное сообщение Бобу.

A, RA

(2) Боб объединяет имя Алисы, ее случайное число, свое случайное число, шифрует созданное сообщение общим с Трентом ключом и посылает его Тренту, добавляя свое имя:

B, EB(A, RA, RB)

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

EA(B, K, RA, RB), EB(A, K)

(4) Алиса расшифровывает первое сообщение, извлекает K и убеждается, что RA совпадает со значением, отправленным на этапе (1). Алиса посылает Бобу два сообщения. Одним является сообщение Трента, зашифрованное ключом Боба. Второе - это RB, зашифрованное сеансовым ключом.

EB(A, K), EK(RB),

(5) Боб расшифровывает первое сообщение, извлекает K и убеждается, что RB совпадает с отправленным на этапе (2).

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

Needham-Schroeder

В этом протоколе, изобретенном Роджером Неедхэмом (Roger Needham) и Майклом Шредером (Michael Schroeder) [1159], также используются симметричная криптография и Трент.

(1) Алиса посылает Тренту сообщение, содержащее ее имя, имя Боба и случайное число.

A, B, RA

(2) Трент генерирует случайный сеансовый ключ. Он шифрует сообщение, содержащее случайный сеансовый ключ и имя Алисы, секретным ключом, общим для него и Боба. Затем он шифрует случайное число Алисы, имя Боба, ключ, и шифрованное сообщение секретным ключом, общим для него и Алисы. Наконец, он отправляет шифрованное сообщение Алисе:

EA(RA, B, K, EB(K, A))

(3) Алиса расшифровывает сообщение и извлекает K. Она убеждается, что RA совпадает со значением, отправленным Тренту на этапе (1). Затем она посылает Бобу сообщение, зашифрованное Трентом ключом Боба.

EB(K, A)

(4) Боб расшифровывает сообщение и извлекает K. Затем он генерирует другое случайное число, RB. Он шифрует это число ключом K и отправляет его Алисе.

EK(RB)

(5) Алиса расшифровывает сообщение с помощью ключа K. Она создает число RB-1 и шифрует это число ключом K. Затем она посылает это сообщение обратно Бобу.

EK(RB-1)

(6) Боб расшифровывает сообщение с помощью ключа K и проверяет значение RB-1.

Вся эта возня с RA, RB, и RB-1 служит для предотвращения вскрытия с повторной передачей. При таком способе вскрытияМэллори может записать старые сообщения и впоследствии использовать их при попытке взломать протокол. Присутствие RA на этапе (2) убеждает Алису, что сообщение Трента достоверно и не является повторной передачей отклика, использованного при одном из предыдущих применений протокола. Когда Алиса успешно расшифрует RB и передает Бобу RB-1 на этапе (5), Боб убеждается, что сообщения Алисы не является повторной передачей сообщений, использованных при одном из предыдущих применений протокола.

Главной прорехой этого протокола является важность использованных сеансовых ключей. Если Мэллори получит доступ к старому K, он сможет предпринять успешное вскрытие [461]. Ему нужно только записать сообщения Алисы Бобу на этапе (3). Тогда, имея K, он может выдать себя за Алису:

(1) Мэллори посылает Бобу следующее сообщение:

EB(K, A)

(2) Боб извлекает K, генерирует RB и отправляет Алисе:

EK(RB)

(3) Мэллори перехватывает сообщение, расшифровывает его с помощью ключа K и посылает Бобу:

EK(RB-1)

(4) Боб убеждается, что сообщение "Алисы" состоит из RB-1.

Теперь Мэллори убедил Боба, что он и есть "Алиса". Более защищенный протокол, использующий метки времени, может противостоять этому вскрытию [461,456]. Метки времени добавляются к сообщению Трента на этапе (2) и шифруются ключом Боба: EB(K, A, T). Метки времени требуют надежной и точной системы единого времени, что само по себе нетривиальная проблема.

Компрометация ключа, общего для Трента и Алисы, будет иметь драматические последствия. Мэллори сможет использовать его с целью получения сеансовых ключей для обмена сообщениями с Бобом (или с кем-нибудь еще). Даже хуже, Мэллори продолжать подобные действия даже после замены ключа Алисы [90].

Неедхэм и Шредер пытались исправить эти проблемы в модифицированной версии своего протокола [1160]. Их новый протокол по существу совпадает с протоколом Otway-Rees, опубликованном в том же выпуске того же журнала.

Otway-Rees

Этот протокол также использует симметричную криптографию [1224].

(1) Алиса создает сообщение, состоящее из порядкового номера, ее имени, имени Боба и случайного числа. Сообщение шифруется ключом, общим для Алисы и Трента. Она посылает это сообщение Бобу вместе с порядковым номером, ее и его именами:

I, A, B, EA(RA, I, A, B)

(2) Боб создает сообщение, состоящее из нового случайного числа, порядкового номера, имени Алисы и имени Боба. Сообщение шифруется ключом, общим для Алисы и Боба. Он посылает это сообщение Тренту вместе с шифрованным сообщением Алисы, порядковым номером, ее и его именами:

I, A, B, EA(RA, I, A, B), EB(RB, I, A, B)

(3) Трент генерирует случайный сеансовый ключ. Затем он создает два сообщения. Одно, состоящее из случайного числа Алисы и сеансового ключа, шифруется ключом, общим для него и Алисы. Другое, состоящее из случайного числа Боба и сеансового ключа, шифруется ключом, общим для него и Боба. Он отправляет два этих сообщения вместе с порядковым номером Бобу:

I, EA(RA, K), EB(RB, K)

(4) Боб отправляет Алисе сообщение, шифрованное ее ключом, и порядковый номер:

I, EA(RA, K)

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

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

Kerberos

Kerberos - вариант протокола Needham-Schroeder - подробно обсуждается в разделе 24.5. В базовом протоколе Kerberos Version 5 у Алисы и Боба общие ключи с Трентом. Алиса хочет генерировать сеансовый ключ для сеанса связи с Бобом.

(1) Алиса посылает Тренту сообщение со своим именем и именем Боба:

A, B

(2) Трент создает сообщение, состоящее из метки времени, времени жизни, L, случайного сеансового ключа и имени Алисы. Он шифрует сообщение ключом, общим для него и Боба. Затем он объединяет метку времени, время жизни, сеансовый ключ, имя Боба, и шифрует полученное сообщение ключом, общим для него и Алисы. Оба шифрованных сообщения он отправляет Алисе.

EA(T, L, K, B), EB(T, L, K, A)

(3) Алиса создает сообщение, состоящее из ее имени и метки времени, шифрует его ключом K и отправляет Бобу. Алиса также посылает Бобу сообщение от Трента, шифрованное ключом Боба:

EA(A, T), EB(T, L, K, A)

(4) Боб создает сообщение, состоящее из метки времени плюс единица, шифрует его ключом K и отправляет Алисе:

EK(T+1)

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

Neuman-Stubblebine

Из-за недостатков системы или саботажа синхронизация часов может быть нарушена. Если часы сбиваются, против большинства протоколов может быть использован определенный способ вскрытия [644]. Если часы отправителя опережают часы получателя, Мэллори может перехватить сообщение отправителя и повторно использовать его позднее, когда метка времени станет текущей в месте нахождения получателя. Этот способ, называющийся вскрытием с подавлением повторной передачи, может привести к неприятным последствиям.

Этот протокол, впервые опубликованный в [820] и исправлен в [1162], пытается противостоять вскрытию с подавлением повторной передачи. Этот отличный протокол является улучшением Yahalom.

(1) Алиса объединяет свое имя и случайное число, и отправляет созданное сообщение Бобу.

A, RA

(2) Боб объединяет имя Алисы, ее случайное число и метку времени, шифрует созданное сообщение общим с Трентом ключом и посылает его Тренту, добавляя свое имя и новое случайное число:

B, RB, EB(A, RA, TB)

(3) Трент генерирует случайный сеансовый ключ. Затем он создает два сообщения. Первое включает имя Боба, случайное число Алисы, случайный сеансовый ключ, метку времени и шифруется ключом, общим для Трента и Алисы. Второе состоит из имени Алисы, сеансового ключа, метки времени и шифруется ключом, общим для Трента и Боба. Трент посылает оба сообщения Алисе вместе со случайным числом Боба:

EA(B, RA, K, TB), EB(A, K, TB), RB

(4) Алиса расшифровывает сообщение, зашифрованное ее ключом, извлекает K и убеждается, что RA совпадает со значением, отправленным на этапе (1). Алиса посылает Бобу два сообщения. Одним является сообщение Трента, зашифрованное ключом Боба. Второе - это RB, зашифрованное сеансовым ключом.

EB(A, K), EK(RB),

(5) Боб расшифровывает сообщение, зашифрованное его ключом, извлекает K и убеждается, что значения TB и RB те же, что и отправленные на этапе (2).

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

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

(1) Алиса посылает Бобу сообщение, присланное ей Трентом на этапе (3) и новое случайное число.

EB(A, K, TB), R'A

(2) Боб посылает Алисе другое новое случайное число и случайное число, присланное Алисой, шифруя их сеансовым ключом связи.

R'B, EK(R'A)

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

EK(R'B)

Новые случайные числа защищают от вскрытия с повторно передачей.

DASS

Протоколы Распределенной служба безопасности и проверки подлинности (Distributed Authentication Security Service, DASS), созданные в Digital Equipment Corporation, также обеспечивают обоюдную проверку подлинности и обмен ключами [604, 1519, 1518]. В отличие от предыдущего протокола DASS использует как криптографию с открытыми ключами, так и симметричную криптографию. И у Алисы, и у Боба есть свой закрытый ключ. Трент подписывает копии их открытых ключей.

(1) Алиса посылает Тренту сообщение, состоящее из имени Боба.

В

(2) Трент посылает Алисе открытый ключ Боба, KB, подписанный закрытым ключом Трента, T. Подписанное сообщение содержит имя Боба.

ST(B, KB)

(3) Алиса проверяет подпись Трента, убеждаясь, что она действительно получила открытый ключ Боба. Она генерирует случайный сеансовый ключ, K, и случайную пару ключей открытый/закрытый, Kp. Она шифрует метку времени ключом K, а затем подписывает время жизни, L, свое имя и своим закрытым ключом, KA. Наконец, она зашифровывает K открытым ключом Боба и подписывает его с помощью Kp. Все это она отправляет Бобу.

EK(TA), (L, A, Kp), ( (K))

(4) Боб посылает Тренту (это может быть другой Трент) сообщение, состоящее из имени Алисы.

А

(5) Трент посылает Бобу открытый ключ Алисы, KА, подписанный закрытым ключом Трента. Подписанное сообщение содержит имя Алисы.

ST(А, KА)

(6) Боб проверяет подпись Трента, убеждаясь, что он действительно получила открытый ключ Алисы. Затем он проверяет подпись Алисы и извлекает Kp. Боб использует свой закрытый ключ, извлекая K. Затем он расшифровывает TA, проверяя, что это сообщение - текущее.

(7) Если требуется обоюдная проверка подлинности, Боб шифрует новую метку времени ключом K и посылает ее Алисе.

EK(TВ)

(1) Алиса расшифровывает TВ ключом K, проверяя, что это сообщение - текущее.

SPX, продукт DEC, основан на DASS. Дополнительную информацию можно найти в [34].

Denning-Sacco

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

(1) Алиса посылает Тренту сообщение, состоящее из ее имени и имени Боба.

А, В

(2) Трент посылает Алисе открытый ключ Боба, KB, подписанный закрытым ключом Трента, T. Трент также посылает Алисе ее собственный открытый ключ, KА, подписанный закрытым ключом Трента.

ST(B, KB), ST(А, KА)

(3) Алиса посылает Бобу случайный сеансовый ключ и метку времени, подписав их своим закрытым ключом и зашифровав открытым ключом Боба, вместе с обоими подписанными ключами.

ЕВ(SА(K, ТА)), ST(А, KА), ST(В, KВ)

(4) Боб расшифровывает сообщение Алисы с помощью своего закрытого ключа и проверяет подпись Алисы с помощью ее открытого ключа. Он также убеждается, что метка времени правильна.

С этого момента Алиса и Боб получили K и могут провести безопасный сеанс связи. Это выгляди красиво, но есть одна тонкость - выполнив протокол с Алисой, Боб сможет выдать себя за Алису [5]. Смотрите:

(1) Боб посылает Тренту свое имя и имя Кэрол.

В, С

(2) Трент посылает Бобу подписанные открытые ключи Боба и Кэрол.

ST(B, KB), ST(С, KС)

(3) Боб посылает Кэрол подписанный случайный сеансовый ключ и метку времени, ранее полученные от Алисы, зашифровав их открытым ключом Кэрол, вместе с подтверждением Алисы и подтверждением Кэрол.

ЕС(SА(K, ТА)), ST(А, KА), ST(С, KС)

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

Теперь Кэрол считает, что она соединилась с Алисой, Боб успешно одурачил ее. Действительно, Боб сможет дурачить любого пользователя сети, пока не закончится срок действия метки времени. Но это легко можно исправить. Просто вставьте имена в шифрованное сообщение на этапе (3):





Дата публикования: 2015-11-01; Прочитано: 344 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.027 с)...