Когда ты создаёшь учётную запись в сервисе приватных сообщений, ты обычно выбираешь пароль. До этого момента всё обычно. Не так обычно то, что происходит под капотом.
В большинстве сервисов твой пароль — это ключ ко всему. Если ты его потеряешь, ты потеряешь доступ. Если его украдут, ты потеряешь всё. Твою личность, твои сообщения, твои файлы. Всё зависит от одной вещи, которую ты набрал на клавиатуре во вторник днём.
24 слова работают иначе. Это не пароль, который ты выбираешь. Это ключ, который система генерирует случайно, с 256 битами реальной энтропии. Чтобы ты понимал масштаб: взлом этого ключа полным перебором потребовал бы больше энергии, чем солнце произведёт за всё время своего существования. Это не метафора. Это математический расчёт.
Два ключа для двух дверей
Твой пароль соединяет тебя с сервисом. Это ключ от входной двери. Если ты его забудешь, ты можешь войти через заднюю дверь с помощью своих 24 слов. Если твой пароль украдут, ты можешь мгновенно изменить его без каких-либо других изменений.
Твои 24 слова — это другое. Это представление твоего мастер-ключа. Ключа, от которого происходит твоя криптографическая личность, который защищает твои данные, который идентифицирует тебя перед твоими контактами. Если ты потеряешь 24 слова и также пароль, твои данные невозможно восстановить. Как в Bitcoin. И это, хоть и звучит жестко, именно то, чего ты хочешь от безопасной системы.
Потому что альтернатива заключается в том, что кто-то может восстановить твои данные за тебя. А если кто-то может восстановить твои данные, он также может получить к ним доступ.
Бумага имеет значение
Запиши свои 24 слова на бумаге. Настоящей бумаге, старомодной. Храни её в безопасном месте. Не в телефоне, не в цифровой заметке, не в электронном письме самому себе. Бумага в ящике, в сейфе или там, где ты хранишь важные вещи.
Может показаться устаревшим. Но бумагу нельзя взломать удалённо, нельзя перехватить через интернет, и ей не нужна батарея. Иногда самая старая технология — самая безопасная.
Для тех, кто хочет углубиться
24 слова следуют стандарту BIP39, используемому кошельками Bitcoin. Они представляют 256 бит энтропии, сгенерированных CSPRNG операционной системы (crypto.getRandomValues). Из этих 256 бит выводится ключ идентичности (Ed25519 для подписи + X25519 для обмена ключами) через HKDF-SHA256 с разделением доменов. Пароль оборачивает этот ключ с помощью Argon2id + AES-256-GCM перед отправкой на сервер. Сервер хранит зашифрованный блоб, но не может его прочитать.