Анимация
JavaScript
|
Главная Библионтека только от самых обычных вскрытий файла паролей с использованием словаря, а не от согласованной атаке о д-ного пароля. Она защищает людей, использующих один и тот же пароль на различных машинах, но не делает лучше плохо выбранный пароль. SKEY SKEY - это программа удостоверения подлинности, обеспечивающая безопасность с помощью однонапра в-ленной функции. Это легко объяснить. Регистрируясь в системе, Алиса задает случайное число , R. Компьютер вычисляет f(R), f(f(R)), f(f(f(R))), и так далее, около сотни раз. Обозначим эти значения как xj, x2, x3, xigg. Компьютер печатает список этих чисел, и Алиса прячет его в безопасное место. Компьютер также открытым текстом ставит в базе данных подключения к системе в соответствие Алисе число xigj. Подключаясь впервые, Алиса вводит свое имя и xg. Компьютер рассчитывает f(xigg) и сравнивает его с xigi, если значения совпадают, права Алисы подтверждаются . Затем компьютер заменяет в базе данных xigi на xigg. Алиса вычеркивает xigg из своего списка. Алиса, при каждом подключении к системе, вводит последнее невычеркнутое число из своего списка: x,-. Компьютер рассчитывает f(xi) и сравнивает его с xt+i, хранившемся в базе данных. Так как каждый номер используется только один раз, Ева не сможет добыть никакой полезной информации . Аналогично, база данных бесполезна и для взломщика. Конечно же, как только список Алисы исчерпается ей придется перерегистрир о-ваться в системе. Удостоверение подлинности с помощью криптографии с открытыми ключами Даже с использованием "соли" у первого протокола есть серьезные проблемы с безопасностью . Когда Алиса посылает свой пароль главному компьютеру, любой, у кого есть доступ пути передачи ее данных, может пр о-честь пароль. Она может получить доступ к своему главному компьютеру посредством запутанного пути пер е-дачи информации, проложив его через четырех промышленных конкурентов, три других страны и два перед о-вых университета. Ева может находиться в любой из этих точек, подслушивая передаваемую Алисой послед о-вательность. Если у Евы есть доступ к оперативной памяти главного компьютера, она сможет подсмотреть п а-роль до того, как главный компьютер сможет его хэшировать . Криптография с открытыми ключами может решить эту проблему . Главный компьютер хранит файл откр ы-тых ключей всех пользователей, а все пользователи хранят свои закрытые ключи . Вот как выглядит упрощенная попытка организовать протокол подключения: (1) Главный компьютер посылает Алисе случайную строку. (2) Алиса шифрует эту строку своим закрытым ключом и посылает ее обратно главному компьютеру вместе со своим именем. (3) Главный компьютер находит в базе данных открытый ключ Алисы и дешифрирует сообщение, используя этот открытый ключ. (4) Если отправленная сначала и расшифрованная строки совпадают, главный компьютер предоставляет Алисе доступ к системе Никто другой не может воспользоваться закрытым ключом Алисы, следовательно никто не сможет выдать себя за нее. Что более важно, Алиса никогда не посылает на компьютер свой закрытый ключ . Ева, подслушивая взаимодействие, не получит никаких сведений, которые позволили бы ей вычислить закрытый ключ Алисы и выдать себя за нее. Закрытый ключ должен быть достаточно длинным и не должен быть мнемоническим. Он будет автоматич е-ски обрабатываться аппаратурой пользователя или программным обеспечением связи . Это требует использования "умного" терминала, которому Алиса доверяет, но не главный компьютер, ни линии связи не обязаны быть безопасными. Глупо шифровать произвольные строки - не только посланные подозрительным авторов, но и вообще любые . Иначе может быть использовано схема вскрытия, обсуждаемая в разделе 19.3. Безопасные идентификационные протоколы имеют следующую, более сложную форму : (1) Алиса выполняет вычисление, основанное на некоторых случайных числах и своем закрытом ключе, и п о-сылает результат на главный компьютер. (2) Главный компьютер посылает другое случайное число. (3) Алиса выполняет некоторое вычисление, основанное на случайных числах (как созданном ею, так и пол ученном от главного компьютера) и своем закрытом ключе, и посылает результат на главный компьютер. (4) Главный компьютер выполняет некоторое вычисление для различных чисел, полученных от Алисы, и ее открытого ключа, проверяя, что ей известен ее закрытый ключ. (5) Если проверка завершается успешно, личность Алисы подтверждается. Если Алисы доверяет главному компьютеру не в большей степени, чем тот доверяет Алисе, то она должна потребовать подтверждения подлинности главного компьютера аналогичным образом . Этап (1) может показаться ненужным и запутанным, но он необходим для защиты протокола от вскрытия . Различные протоколы и алгоритмы подтверждения подлинности математически подробно описываются в ра з-делах 21.1 и 21.2. См. также [935]. Обоюдное удостоверение подлинности с использованием протокола "держась за руки" Пусть два пользователя, Алиса и Боб, хотят проверить подлинность друг друга . У каждого из них есть пароль, известный другому пользователю: PA у Алисы и PB у Боба. Вот как выглядит протокол, который не будет работать: (1) Алиса и Боб обмениваются открытыми ключами. (2) Алиса шифрует PA открытым ключом Боба и посылает его ему. (3) Боб шифрует PB открытым ключом Алисы и пос1лает его ей. (4) Алиса расшифровывает полученное на этапе (3) и подтверждает правильность пароля. (5) Боб расшифровывает полученное на этапе (2) и подтверждает правильность пароля. Мэллори может предпринять успешное вскрытие "человек-в-середине" (см. раздел 3.1): (1) Алиса и Боб обмениваются открытыми ключами. Мэллори перехватывает оба сообщения, и посылает обоим корреспондентам свой собственный открытый ключ, подменив им их ключи. (2) Алиса шифрует PA открытым ключом "Боба" и посылает его ему. Мэллори перехватывает сообщение, расшифровывает PA с помощью своего закрытого ключа, снова шифрует PA открытым ключом Боба и посылает его ему. (3) Боб шифрует PB открытым ключом "Алисы" и пос1лает его ей. Мэллори перехватывает сообщение, ра с-шифровывает 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.) В - это имя Боба. (3) Алиса рассчитывает Hk(Ra, Rb, B) и сравнивает результат со значением, полученным от Боба. Если р е-зультаты совпадают, Алиса убеждается в том, что она соединилась именно с Бобом. SKID3 обеспечивает совместную проверку подлинности Алисой и Бобом . Этапы (1) - (3) совпадают с протоколом SKID2, а затем выполняются следующие действия: (4) Алиса посылает Бобу: Hk(Rb, A) A - это имя Алисы. (5) Боб рассчитывает Hk(Rb, A) и сравнивает результат со значением, полученным от Алисы. Если результаты совпадают, Боб убеждается в том, что она соединилась именно с Алисой. Этот протокол неустойчив к вскрытию "человек-в-середине" . В общем случае, вскрытие "человек-в-середине" может угрожать любому протоколу, в который не входит какой-нибудь секрет. Удостоверение подлинности сообщений Когда Боб получает сообщение от Алисы, как ему узнать, что это сообщение подлинно ? Если Алиса подписала свое сообщение, то все просто. Цифровая подпись Алисы достаточна, чтобы подтвердить кому угодно по д-линность ее сообщения. Некоторую проверку подлинности предоставляют и симметричные алгоритмы . Когда Боб получает сообщение от Алисы, шифрованное их общим ключом, он знает, что это сообщение от Алисы . Никто больше не знает их ключа. Однако, у Боба нет возможности убедить в этом кого-то еще. Боб не может показать сообщение Тренту и убедить его, что оно отправлено Алисой. Трент может сделать вывод, что сообщение отправлено или Ал и-сой, или Бобом (так как их секретный ключ никому больше не принадлежит), но у него нет способа определить, кто же конкретно автор сообщения. Если сообщение не шифровано, Алиса может также использовать MAC. Это также убедит Боба в подлинности сообщения, но возникнут те же проблемы, что и для решений симметричной криптографии . 3.3 Удостоверение подлинности и обмен ключами Эти протоколы объединяют удостоверение подлинности и обмен ключами для решения основной компь ю-терной проблемы: Алиса и Боб хотят безопасно обмениваться сообщениями, находясь на различных концах сети. Как могут Алиса и Боб обменяться секретным ключом, при этом сохраняя уверенность, что они обмен и-ваются сообщениями друг с другом, а не с Мэллори ? В большинстве протоколов предполагается, что каждому пользователю Трент выделяет отдельный секретный ключ, и перед началом работы протокола все ключи уже находятся у пользователей. Символы, используемые в этих протоколах, сведены в 2-й. Табл. 3-1. Символы, используемые в протоколах удостоверения подлинности и обмена ключами A Имя Алисы B Имя Боба EA Шифрование ключом, выделенном Трентом Алисе EB Шифрование ключом, выделенном Трентом Бобу I Порядковый номер К Случайное сеансовое число L Время жизни TA, TB Метки времени RA, RB Случайные числа, выбранные Алисой и Бобом, соответственно Лягушка с широким ртом Протокол "Лягушка с широким ртом" (Wide-Mouth Frog) [283,284], возможно, является простейшим симметричным протоколом управления ключами, в котором используется заслуживающий доверия сервер . Алиса и Боб делят свой секретный ключ с Трентом . Эти ключи используются только для распределения ключей, а не для шифрования пользовательских сообщений. Вот как, используя два сообщения, Алиса передает Бобу сеансовый 0 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 |