Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[17]

EB(K), Ec(K), Ed(K)

(4)Алиса широковещательно посылает шифрованное сообщение и все шифрованные ключи своим корре с-пондентам.

Ek(M), Eb(K), Ec(K), Ed(K)

(5)Только Боб, Кэрол и Дэйв могут, каждый при помощи своего закрытого ключа, расшифровать ключ K.

(6)Только Боб, Кэрол и Дэйв могут расшифровать сообщ ение Алисы, используя K.

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

3.2 Удостоверение подлинности

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

Удостоверение подлинности с помощью однонаправленных функций

Роджер Неедхэм (Roger Needham) и Майк Гай (Mike Guy) показали, что главному компьютеру не нужно знать сами пароли, вполне достаточно, чтобы главный компьютер мог отличать правильные пароли от непр а-вильных. Этого легко достичь с помощью однонаправленных функций [1599, 526,1274, 1121]. При этом на главном компьютере хранятся значения однонаправленных функций паролей, а не сами пароли .

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

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

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

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

Вскрытия с помощью словаря и "соль"

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

Это вскрытие с помощью словаря может быть удивительно успешным (см. раздел 8.1). "Соль" - это способ затруднить его. "Соль" представляет собой случайную строку, добавляемую к паролям перед обработкой их однонаправленной функцией. Затем в базе данных главного компьютера сохраняются и значение "соли", и р е-зультат однонаправленной функции. Использование достаточно большого числа возможных значений "соли" практически устраняет возможность вскрытия с помощью словаря, так как Мэллори придется вычислять знач е-ние однонаправленной хэш-функции для каждого возможного значения "соли". Это простейший пример использование вектора инициализации (см. раздел 9.3).

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

Для этого нужно много "соли". Большинство UNIX-систем используют для "соли" 12 бит. Несмотря на это Дэниел Кляйн (Daniel Klein) написал программу разгадывания паролей, которая в некоторых системах за нед е-лю часто вскрывала 40 процентов паролей [847,848] (см. раздел 8.1). Дэвид Фельдмайер (David Feldmeier) и Филип Кан (Philip Karn) составили список из 732000 наиболее часто используемых паролей, присоединив к к а-ждому из них 4096 возможных значений "соли" . По их оценкам 30 процентов паролей на любом главном ко м-пьютере могут быть взломаны с помощью этого списка [561].

"Соль" не является панацеей, увеличение числа бит "соли" не решит всех проблем . "Соль" предохраняет


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

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

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

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

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

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

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

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

(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].

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] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120] [стр.121] [стр.122] [стр.123] [стр.124] [стр.125] [стр.126] [стр.127] [стр.128] [стр.129] [стр.130] [стр.131] [стр.132] [стр.133] [стр.134] [стр.135] [стр.136] [стр.137] [стр.138] [стр.139] [стр.140] [стр.141] [стр.142] [стр.143] [стр.144] [стр.145] [стр.146] [стр.147] [стр.148] [стр.149] [стр.150] [стр.151] [стр.152] [стр.153] [стр.154] [стр.155] [стр.156] [стр.157] [стр.158] [стр.159] [стр.160] [стр.161] [стр.162] [стр.163] [стр.164] [стр.165] [стр.166] [стр.167] [стр.168] [стр.169] [стр.170] [стр.171] [стр.172] [стр.173] [стр.174] [стр.175] [стр.176] [стр.177] [стр.178] [стр.179] [стр.180] [стр.181] [стр.182] [стр.183] [стр.184] [стр.185] [стр.186] [стр.187] [стр.188] [стр.189] [стр.190] [стр.191] [стр.192] [стр.193] [стр.194] [стр.195] [стр.196] [стр.197] [стр.198] [стр.199] [стр.200] [стр.201] [стр.202] [стр.203]