Большинство генераторов паролей используют псевдослучайность — обычную математическую формулу. Её можно предсказать, если узнать начальные данные. Мы берём энтропию из физического мира — прямо из движений вашей руки. Такую случайность не воспроизведёт никто.
Ваша рука не движется дважды одинаково. Даже если вы попытаетесь повторить жест — разница в пикселях и микросекундах будет колоссальной. Мы фиксируем координаты с точностью до пикселя, скорость и интервалы между событиями. Этот шум и станет основой пароля.
Водите мышью или пальцем по области ниже. Когда наберётся 128 бит энтропии — появится пароль.
Энтропия — это мера непредсказуемости. Чем больше энтропии, тем сложнее угадать, что выпадет. Вот три примера:
Проблема обычных генераторов в том, что они берут энтропию из формулы — а формула предсказуема. Мы берём её из физического мира: из движений вашей руки. Рука не повторяется — значит, энтропия настоящая.
Слева — обычный генератор на математической формуле (LCG). Одинаковое начальное число всегда даёт одинаковую последовательность. Зная её — можно восстановить все пароли. Справа — настоящий физический шум, который невозможно повторить.
Узор слева — фиксированный. Он всегда такой, при каждом обновлении страницы. Узор справа меняется каждые две секунды — потому что он рождается в моменте и не сохраняется.
Обычный генератор: LCG или Mersenne Twister. Одинаковый seed → одинаковая последовательность. Воспроизводится, если знать алгоритм.
Настоящий шум: координаты мыши, температура CPU, таймеры. Никакой узор не повторится — потому что его источник существует только в этот момент.
Сырые движения руки — ещё не пароль. Это «серый» шум, который проходит четыре стадии обработки. Нажмите на карточку, чтобы увидеть, что происходит внутри.
Когда наберётся 128 бит энтропии из движений руки, кнопка активируется. Пароль создаётся через двойной SHA-256 и раскладывается по алфавиту из 65 символов. Такой пароль невозможно предсказать — он рождён из уникального момента времени.
Любой пароль можно подобрать перебором — вопрос только в том, сколько это займёт. Настройте длину и размер алфавита — и увидите, сколько лет потребуется современному компьютеру, чтобы перебрать все комбинации.
Двигайте ползунки, чтобы менять длину пароля и размер алфавита.
Алфавит: 10 — только цифры, 26 — только строчные, 52 — оба регистра, 62 — + цифры, 95 — + все знаки.
Оценка по трём типовым сценариям атаки.
Настоящий перебор в вашем браузере. Выберите режим, задайте пароль — и наблюдайте, как компьютер перебирает комбинации одну за другой. Все расчёты происходят на вашем устройстве, ничего не отправляется на сервер.
Конечно, взломать настоящий 20-символьный пароль здесь не получится — для этого нужны века и ферма видеокарт. Но короткие PIN-коды и слабые пароли сдаются на ваших глазах.