конспект доклада 29 встречи IFF

доклад сделан на базе лекций, читанных
докладчику в воронежском политехе

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

распределённый алгоритм

классификация протоколов

протоколы бывают на основе:
1) протоколы на общем секрете
2) протоколы на основе физических носителей (здесь физический носитель и явяляется секретом)
3) протоколы на основе биометрии - опираются на более сложную теоретическую базу имеют свои интересные особенности

Протоколы на общем секрете:
1) фиксированный пароль - когда человек просто передаёт свой логин и пароль. логин - это идентификатор, а пароль - подтверждение.

что плохого в данном способе:

  • 1) то что некоторый хакер сможет прослушивать канал связи
  • 2) брутфорс - прямой перебор может дать пароль
  • 3) могут атаковать хранилище - и тогда вытянуть сразу все пароли

это не надёжно но часто используется - например в локальных приложениях

даже на локальных машинах рекомендуется хэшировать пароли - то есть не хранить их в исходном виде

Соль - это набор случайных бит, который используется как добавка к паролю - соль обычно не хранят в базе
чтобы её не вытянули вместе с хэшами паролей - иначе нет смысла

Одноразовые пароли

это тоже фиксированные пароли -
но они генерируются для каждой сессии

если одну перехватил - ничего в следующий раз это не даст.

W - это мастер пароль

мастер-пароль - это исходный пароль?
да - это исходный пароль который мы вводим

то есть используются общий алгоритм на клиенте и сервере?
ответ - да - за счёт этого и можно проверить верен ли временный пароль

одноразовые пароли хороши - но они не способны защитить от MitM атаки?

Cookie-BASE

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

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

ЗАПРОС - ОТВЕТ

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

Хэшируем случайно число и соль и отправляем на сервер - то есть "утяжеляем" взлом хэша

запрос ответ можно защитить чтобы справится с незначительными задержками.

СИНХРОЧАСЫ

договариваемся о часах - и не запрашиваем у сервера время а сразу отправляем ему хэшированный результат с учётом временной метки.

СИММЕТРИЧНОЕ ШИФРОВАНИЕ - запрос ответ

в запрос-ответ добавляют симметричное шифрование.

здесь обычно принимает участие третья сторона, которая "выдаёт" ключи

также можно шифровать своим ключом - например возьмём хэш от пароля и будем использовать его в качестве ключа шифрования в симметричном алгоритме

аналогично можно модифицировать протокол использую ассиметричное шифрование.

  • 1) сторона А отправляет логин
  • 2) Б говорит "ок" - бэ знает ключ а и вычислят Ц

Цифровая подпись -защищает от MITM-атаки.

ВЗАИМНАЯ ИДЕНТИФИКАЦИЯ

выше мы рассматривали одностороннюю идентификацию
разница в том что обычно всё предыдущее проходит в два этапа

НУЛЕВОЕ РАЗГЛАШЕНИЕ

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

есть группа вопросов который один задаёт другому - но на все вопросы может ответить только тот кто знает секрет

вопросы каждый раз разные?
ответ - они каждый раз с разными параметрами. Они стандартизированы в протоколе но имеют разные параметры.

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

правда есть атака. но мы её не будем приводить здесь.

Протокол Нидхема_Шрёдера

Кирберес версии 4 работал как раз на этом проколе

мы рассматриваем вариант с симметричным шифрованием

хакер может заблокировать данные -
но не сможет получить сессионный ключ. - ему придётся подбирать число.

хакер может просто прослушать канал
добавление временных меток увеличивают надёжность - но тем не менее протокол бы раскритикован

мы и рассмотрим протокол

Kerberos версии 5
здесь всё намного сложнее