Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Аутентификация на основе криптографии с открытыми ключами




Протокол аутентификации S/Key

Одним из наиболее распространенных протоколов аутентификации на основе одноразовых паролей является стандартизованный в Интернете протокол S/Key (RFC 1760). Этот протокол реализован во многих системах, требующих проверки подлинности удаленных пользователей, в частности в системе TACACS+ компании CISCO.

Протокол состоит из двух этапов – инициализации и аутентификации. Задача состоит в обеспечении многократной (например, 100 раз) аутентификации клиента на сервере.

Протокол инициализации S/Key

  1. Клиент генерирует (или получает от сервера) случайное число K.
  2. Сервер путем хеширования числа K вычисляет (N+1)=101 одноразовых паролей – w1= h(K), w2 = h(h(K)), w3 = h(h(h(K))), …, w101 = h(h(h(…h(K)…))) = h101(K).
  3. Клиент записывает в свою базу данных N=100 одноразовых паролей и их порядковые номера.
  4. Сервер записывает в свою базу данных: имя клиента, N, w101 = h(h(h(…h(K)…))) = h101(K).

Протокол аутентификации S/Key

  1. Клиент посылает серверу свое имя и запрос аутентификации.
  2. Сервер после анализа имени отвечает числом N=100.
  3. Клиент посылает серверу w'100 = h(h(h(…h(K)…))) = h100(K).
  4. Сервер вычисляет w'101= h(w'100), если w'100 = w100, то сервер аутентифицирует клиента.
  5. Сервер записывает в свою базу данных: имя клиента, N-1, w'100.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Этап (1) может показаться ненужным и запутанным, но он необходим для защиты протокола от вскрытия.

Двухстороння аутентификация с использованием протокола "держась за руки"

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

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

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

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

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

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

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

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

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

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

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

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

Для Алисы и Боба ничего не изменилось. Однако, Мэллори знает и РА, и РВ. Если Алиса - это пользователь, а Боб - хост-компьютер, Мэллори может предпочесть быть Бобом, выполнить первые этапы протокола с Алисой и разорвать соединение. Симулирование шума на линии или сетевого отказа потребует от Мэллори настоящего артистизма, но в результате Мэллори получит пароль Алисы. Затем он сможет соединиться с Бобом и завершить протокол, получая и пароль Боба.

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




Поделиться с друзьями:


Дата добавления: 2013-12-12; Просмотров: 667; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.