Проверка пароля без его отправки

Основы

Проверка по базам утечек звучит как противоречие: чтобы проверить, надо отправить. Разбираем приём, который это обходит.

«Проверьте пароль по базам утечек» звучит как ловушка: чтобы узнать, есть ли пароль в базе, его вроде бы надо туда отправить. Приём, который это обходит, придумали давно, и он достаточно изящен, чтобы разобрать его целиком.

Три шага

  1. Пароль превращается в хеш прямо у вас

    В браузере, без единого сетевого запроса. Хеш — строка из сорока символов, из которой пароль обратно не получить.

  2. На сервер уходят только первые пять символов

    Не весь хеш, а его начало. Этого мало, чтобы опознать пароль: под такое начало подходят десятки тысяч разных хешей.

  3. Сервер присылает весь список подходящих

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

1из ~30 000
Столько знает сервер о вашем пароле

Он видит запрос на пять символов и отдаёт весь список под них. Какой именно из тридцати тысяч ваш — и ваш ли вообще хоть один — он не узнаёт: сравнение идёт уже после ответа, на вашей стороне.

Что сервер всё-таки видит

ЧтоВидит ли
Ваш парольНет
Полный хеш пароляНет
Первые пять символов хешаДа — но это тысячи разных паролей
Ваш IP-адрес и время запросаДа — как при любом запросе
Нашёлся ли пароль в базеНет — сравнение идёт у вас
Сколько раз вы проверялиДа — по числу запросов
Приём защищает пароль, а не факт обращения к сервису. Это разные вещи, и второе он не скрывает.

Что делать с результатом

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

  • Меняйте везде, где он использовался, а не только там, где вспомнили.
  • Начните с почты — через неё восстанавливается остальное.
  • Не пытайтесь «поправить» пароль, добавив символ: варианты перебирают автоматически.

Не найденный пароль не означает, что он надёжен. Базы неполны, и свежая утечка попадает в них не сразу — это проверка на известную компрометацию, а не аттестат прочности. Что делает пароль стойким, разобрано в статье про энтропию.

Скопировано