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