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