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