Baza de cunoștințe Vorbind cu oamenii
Criptare rezistentă la cuantum
Mesajele private și conversațiile de grup între utilizatorii Nymchat pot fi criptate astfel că înregistrarea lor astăzi nu cumpără nimic unui atacator, chiar și odată ce sosesc computerele cuantice.
Această pagină este tradusă automat pentru comoditate. Originalul în limba engleză este versiunea care se aplică.
Problema pe care o rezolvă
Criptare Nostr obișnuită — NIP-44, care este ceea ce mesaje private şi chaturi de grup sunt construite pe — are două jumătăți. Jumătatea asta de fapt amestecă textul (ChaCha20, HMAC-SHA256, HKDF) rezistă bine împotriva unui cuantic calculator. Jumătatea care este de acord cu cheia nu.
Acel acord cheie este curba eliptică Diffie-Hellman pe secp256k1, aceleași matematici pe care le folosește Bitcoin. Algoritmul lui Shor o rezolvă definitiv. Oricine îl rulează pe o cheie publică recuperează cheie privată și, odată cu ea, fiecare secret partajat pe care acea cheie le-a produs vreodată.
Aceasta nu este o problemă care începe când sosesc computerele cuantice. Un adversar cu destule stocarea poate înregistra trafic criptat astăzi, stați pe el și decriptați-l ani mai târziu. Orice trimiteți acum și care mai contează atunci este deja expus. Acesta este specificul ataca această caracteristică înfrângeri.
Cum funcționează
Nymchat lasă formatul de mesaje NIP-44 complet singur. Acordul cheie pe care îl folosește deja este neatins; un al doilea, independent, este adăugat în jurul acestuia.
- standardul secp256k1 ECDH, exact ca înainte;
- ML-KEM-768, algoritmul post-cuantic NIST standardizat ca FIPS 203. Securitatea sa se bazează pe probleme de zăbrele, pe care algoritmul lui Shor nu le atinge.
Cele două sunt Lichidate, nu amestecateMesajul este criptat cu NIP-44 exact așa cum a fost întotdeauna, iar textul de criptare finit este apoi sigilat a doua oară în stratul post-quantum – ChaCha20-Poly1305, cheiați din secretul comun ML-KEM. Cheia expeditorului, cheia destinatarului, textul de criptare de încapsulare și cheia ML-KEM a destinatarului sunt legate în această derivare ca context, astfel încât un strat nu poate fi ridicat de la un schimb și redat pe altul.
Un combinator cum ar fi X-Wing sau Signal's PQXDH amestecă ambele secrete într-o singură cheie în schimb. Nymchat nu, iar motivul este practic mai degrabă decât criptografic: amestecarea are nevoie de ieșirea ECDH brută, iar o extensie a browser-ului sau un semnator de la distanță nu va transmite niciodată acest lucru înapoi - returnează un text de criptare finit, care este întregul punct de a ține cheia în cazul în care aplicația nu poate ajunge la ea.
Proprietatea importantă este aceeaşi în orice fel: rezultatul este Cel puțin la fel de puternică ca jumătatea cea mai puternicăDacă criptografia rețelei se dovedește a fi mai slabă decât era de așteptat, ruperea ML-KEM doar taie stratul exterior și lasă NIP-44 de astăzi sub ea. Dacă secp256k1 cade pe un computer cuantic, stratul interior se deschide, dar cel exterior nu.
Fiecare mesaj primește un schimb post-cuantic proaspăt, așa că recuperarea cheii unui mesaj dezvăluie nimic despre ceilalți.
Jumătatea post-quantum are nevoie de o cheie proprie, și de unde vine acea cheie este ceea ce decide dacă întregul lucru este în valoare de ceva. nu A lucrat din propria ta nsecUn calculator cuantic care rupe jumătatea clasică recuperează
nsec de la cheia ta publică, şi orice derivă din nsec prin o formulă publicată iese cu ea – două încuietori deschise de o singură pauză. Codul post-quantum pentru fiecare cont, o dată, din byte aleatorii pe care nici o valoare publică nu le expune. nympq1… şi stă lângă tine nsec Nu este o parolă și nu este un al doilea login: este un material cheie pe care îl puteți salva, exact ca și nsec.
Nu există nimic de pornit
Aceasta nu este o setare. Criptarea post-cuantică este pur și simplu modul în care Nymchat vorbește cu Nymchat în același mod, criptarea obișnuită este modul în care vorbește cu orice altceva. Se aplică automat la fiecare mesaj privat și chat de grup cu alt utilizator Nymchat.
Setări › Confidențialitate & Securitate arată dacă este activă și câți dintre contactele dvs. ajung în prezent, dar numai ca informații - nu există nici un comutator.
Acest lucru funcționează indiferent de modul în care vă conectați. o extensie a browserului (NIP-07) sau un semnatar la distanță (NIP-46) nu vă trimite niciodată cheia de identitate la aplicație, care este întregul punct al utilizării unuia - și nu trebuie. Cele două jumătăți ale criptării sunt păstrate separat: semnatarul dvs. face partea pe care a făcut-o întotdeauna, iar aplicația face partea post-quantum cu codul dvs. de recuperare, pe care îl deține direct.
Fiecare mesaj din istoria dvs. rămâne lizibil pe orice dispozitiv cu nimic altceva decât nsec, la fel ca înainte, și rămâne așa pentru viața contului. nympq1… Codul de recuperare este materialul cuantic rezistent scris de acum înainte: mesaje noi, setările sincronizate și arhiva care călătoresc cu ele.
Deci, un dispozitiv trebuie să păstreze acel cod înainte de a le putea deschide, iar adăugarea unui dispozitiv necesită acum un pas suplimentar. nympq1…
Este o dată pe dispozitiv, nu o dată pe login. Acest pas nu este fricțiunea pe care nu am reușit să o eliminăm: un cod care ar putea ajunge pe un dispozitiv nou pe cont propriu ar trebui să călătorească acolo în interiorul unui mesaj obișnuit, iar acest mesaj este exact ceea ce atacul această caracteristică există pentru a opri este înregistrarea.
Aplicația generează nympq1… cod pentru tine, astfel încât nu există nimic de ales și nimic de inventat. Vizualizați sau editați detaliile lui NymApoi
Dezvăluiți cheia privată și codul de recuperare al acestui nymSe află chiar sub tine nsecNu trebuie să te gândești niciodată la asta până în ziua în care adaugi un al doilea dispozitiv.
Un dispozitiv fără legătură nu este blocat între timp. continuă să citească tot ce este scris sub criptarea mai veche și continuă să trimită în mod normal, iar odată ce îl conectați, se întoarce și deschide mesajele cuantice rezistente pe care nu le-a putut citi înainte.
Un al doilea dispozitiv are nevoie de două lucruri: o versiune actuală a aplicației și
nympq1… Un build mai vechi continuă să funcționeze – nu este tăiat – dar nu poate citi formatul actual, așa că în timp ce este încă pe cont, copiile pe care le păstrați pentru dvs. se întorc la cel mai vechi pe care îl poate. Un dispozitiv actualizat care nu a fost legat încă citește istoria dvs. mai veche și solicită codul. Nici nu ne poate spune că există, motiv pentru care aceasta este o notificare mai degrabă decât ceva pe care îl detectăm pentru dvs.
Cu cine o iei
Ambele părți au nevoie de ea. Fiecare client Nymchat publică un anunț mic semnat, care expiră spunând așa, și include cheia post-quantum atunci când are una. Păstrarea unei anunțuri valabile pentru cineva este ceea ce face ca aplicația să folosească schimbul mai puternic cu ei. Nu există nicio negociere pentru a interfera: fie cheia este acolo, fie nu este, și pentru că anunțul este semnat de autorul său, o cheie de înlocuire ar trebui să fie contrafăcută mai degrabă decât pur și simplu servită.
Ce atacator care controlează un relay poate Reține anunțul, astfel încât expeditorul nu vede niciodată o cheie și se întoarce la criptarea obișnuită. Acest lucru merită menționat în mod clar. Costă protecție post-quantum pentru acele mesaje; nu poate face una necitibilă și nu vă poate face să acceptați o cheie care nu este a voastră. Clienții solicită mai multe relay-uri, deci suprimarea ia controlul asupra tuturor acestora.
Aceste anunțuri durează o săptămână și se reîmprospătează zilnic în timp ce utilizați aplicația.Dacă sunteți departe mai mult decât atât, datele dvs. se pierd și sunteți citit ca un client Nostr obișnuit pentru o vreme: mesajele trimise în acea lipsă sunt criptate în mod normal, mai degrabă decât în mod cuantic rezistent.
Toți ceilalți continuă să lucreze exact ca înainte. Bitchat utilizatorii și orice alt client Nostr primesc standardul NIP-17, neschimbat. nimic nu se rupe atunci când trimiteți un mesaj cuiva din afara Nymchat.
Un mesaj post-cuantic înlocuiește cel standard, mai degrabă decât să fie trimis alături de el. Trimiterea ambelor ar fi inutilă: un atacator ar sparge pur și simplu copia mai slabă.
Copiile adresate către tu primește-l și pe cel pe care îl citesc celelalte dispozitive, cel arhiva în spatele acesteia și setările dvs. sincronizate, care călătoresc în același mod și vă poartă lista de conversații, cheile de grup și istoricul mesajelor. Lăsând pe oricare dintre aceia pe vechi criptarea le-ar fi făcut cel mai slab lucru pe care îl stocați: ușor de citit de oricine s-ar sparge criptografia de astăzi, indiferent cât de atent au fost sigilate mesajele în sine.
Rămâi lizibil de către Bitchat
Bitchat nu poate citi formatul mesajului Nymchat, așa că, din punct de vedere istoric, Nymchat a trimis oa doua copie a lui fiecare mesaj în formatul Bitchat pentru oricine l-ar putea folosi - ceea ce, pentru cineva nu ai auzit niciodată, însemna toți.
Anunțul de mai sus face ca această ghicire să fie inutilă. Dacă cineva a publicat unul, este rulează Nymchat, astfel încât copia Bitchat este abandonată și este trimis doar mesajul mai puternic. Dacă ei nu s-a schimbat nimic: încă primesc ambele formate, exact ca înainte, deci nimic pe care îl trimiteți poate deveni imposibil de citit, deoarece aplicația a ghicit greșit ce client folosește cineva.
La fel ca și criptarea în sine, aceasta este automată și nu are nicio setare.
Nymchat ar putea deduce cine rulează ce din activitatea canalului public și ar descoperi oamenii mai devreme. Dar această concluzie este uneori greșită și a fi greșit aici înseamnă trimite cuiva un mesaj aplicația sa nu se poate deschide, fără eroare și fără reîncercare. A publicat anunțul este semnat de autorul său și nu poate fi falsificat, așa că este folosit în schimb.
În conversațiile de grup
Mesajele de grup sunt deja criptate separat pentru fiecare membru, astfel încât un grup poate amesteca ambele tipuri liber — membrii ai căror clienți îl susțin primesc criptarea mai puternică, restul obține unul standard, iar grupul funcționează normal în orice mod.
Din acest motiv, un mesaj de grup este marcat ca rezistent cuantic doar atunci când fiecare membru a primit-o așa. Dacă chiar și o copie a folosit schimbul standard, acea copie poartă același lucru mesaj, astfel încât mesajul în ansamblu este la fel de protejat ca și cea mai slabă copie a sa. Aplicația spune „rezistent cuantic la 8 din 10 membri”, mai degrabă decât rotunjirea în sus.
Chaturile de grup își păstrează și ele taste rotative unice, care ascund cine este într-un grup de la oricine urmărește o ștafetă. Această protecție nu este afectată și funcționează exact așa cum a făcut.
Citind insigna
Fiecare mesaj privat și mesaj de grup poartă un mic scut Atingerea oricărei mărci explică ceea ce arată.
| Marca | Sens |
|---|---|
| Lacăt | Cine a trimis-o - dacă semnătura se potrivește cu autorul revendicat. |
| Scut | Ambele părți au avut propriul lor cod post-quantum, iar schimbul hibrid a fost folosit pentru fiecare copie a acestui mesaj. |
| Scut întrerupt | Parțial rezistent la cuantice – un mesaj de grup doar unii membri au primit o copie protejată.Deoarece ceilalți poartă același text, tratați mesajul ca fiind convențional criptat. |
| Struck-through scut | Criptarea standard NIP-44 – încă criptată de la capăt la capăt și încă de nedescris pentru oricine, cu excepția participanților de astăzi. |
| Fără scut | Postările canalului public sunt lizibile pe relay prin design, deci nu se aplică nicio marcă de criptare. |
Un semn lipsă ar fi ambiguu - ar putea însemna la fel de mult “nu cuantic rezistent”, “această construcție este prea veche” sau “indicatorul este rupt” - și un indicator de securitate care nu poate fi distins de unul rupt nu vă spune nimic.
Acesta stă lângă blocaj, mai degrabă decât să-l înlocuiască, deoarece cei doi răspund la întrebări diferite, iar un mesaj poate fi unul fără celălalt - rezistent la cuantice, dar de la un expeditor neverificat, sau verificat, dar criptat convențional.
Mesajele mai vechi păstrează permanent scutul de lovitură. Tot ceea ce a fost trimis înainte ca ambele părți să fie pe o construcție cuantică rezistentă a fost sigilat cu schimbul convențional, iar textul de cifrare există deja pe relee - nu poate fi re-semnat după fapt.
Ceea ce nu face
Aceasta protejează continuturi a mesajelor tale. Nu face fiecare parte din Nostr cuantic-proof și merită să fii precis cu privire la diferență.
- Semnăturile sunt încă secp256k1. Identitățile Nostr semnează cu Schnorr pe aceeași curbă. Un adversar care avea deja un computer cuantic funcțional ar putea crea un semnătură și uzurpare identitatea cuiva în timp real. Ceea ce oprește schimbul hibrid este citirea trafic înregistrat - confidențialitate, nu autentificare.
- Nu există secrete anticipate. Ambele chei sunt de lungă durată: NIP-44 își derivă cheia din
nsec, iar stratul post-quantum se incapsulează la cheia ML-KEM din spatelenympq1…Fiecare mesaj primește o încapsulare proaspătă, astfel încât cheia unui mesaj să nu-l deschidă pe următorul – dar oricine ajunge să dețină acele chei pe termen lung poate citi tot ce a înregistrat vreodată, nu doar ceea ce a venit după. Mesajele expirate reduce, și de aceea această caracteristică vizează recoltarea-acum-decriptarea-mai târziu, mai degrabă decât o cheie care este luată. - Metadatele sunt neschimbate. O ștafetă încă vede că i s-a adresat un eveniment o cheie, și aproximativ când. Asta se ocupa de ambalaj cadou și chei de unică folosință, nu de aceasta.
- Rețeaua Bluetooth nu este acoperită. Un mesaj transmis prin cu mesh Călătorește în interiorul unei sesiuni Noise XX, care este puternică, criptare curentă, dar un schimb clasic de chei - deci nu poartă stratul post-quantum, chiar și între doi utilizatori Nymchat. Semnul reflectă acest lucru: un mesaj livrat peste plasă nu este marcat cu rezistență cuantică. Adăugarea acestuia înseamnă schimbarea mâinii în sine, pe care ambii colegi ar trebui să o facă în același moment, fără relay să cadă înapoi și în timp ce rămâne lizibil de Bitchat.
- Codul de recuperare este un al doilea lucru de păstrat. Începe cu
nympq1Îl veţi găsi în Detaliile lui NymÎn aceeaşi cameră ca şi dumneavoastrănsec— atingeți nym-ul, apoi “ dezvăluiți cheia privată a nym-ului și codul de recuperare”.nsecde la sine nu vă reconstruiește cheia post-quantum – de aceea funcționează – așa că dacă niciun dispozitiv nu deține acel cod și nu aveți nici o copie a acestuia, ceea ce a fost sigilat la el nu poate fi deschis din nou.nsec. - Nu poate proteja ceea ce face cealaltă parte. Un destinatar poate în continuare captură de ecran, copiați sau păstrați un mesaj.
Aceasta este aceeași poziție pe care Signal o are cu propriul upgrade post-cuantic: reparați schimbul de chei acum, pentru că aceasta este partea asupra căreia un atacator poate acționa retroactiv și tratează semnăturile ca a problemă separată pentru când standardele ajung din urmă.
Verificarea lucrării
Implementarea ML-KEM este testată împotriva oficialului Testul vectorilor NIST pentru FIPS 203Aplicația web și aplicația mobilă sunt de asemenea ținute la un set comun de vectori de testare, ceea ce garantează că un mesaj scris de unul poate fi citit de celălalt.
Ambele sunt Sursă deschisă în conformitate cu AGPL-3.0, iar construcțiile aplicației web sunt reproductibile – vezi verificând o construcție.
Să mergem mai adânc: Acordul de cheie post-quantum în Nymchat o carte tehnică privind modul în care cheia ML-KEM este distribuită fără un director, construcția exactă care combină cele două schimburi de chei și proiectele care au fost respinse.