Kennisbasis Met mense gesels
Kwantumbestande enkripsie
Privaat boodskappe en groepkletse tussen Nymchat-gebruikers kan so geënkripteer word dat die opname daarvan vandag 'n aanvaller niks koop nie, selfs as kwantumrekenaars eers arriveer.
Hierdie bladsy is gerieflikheidshalwe masjienvertaal. Die Engelse oorspronklike is die weergawe wat van toepassing is.
Die probleem wat dit oplos
Gewone Nostr-enkripsie — NIP-44, wat is wat privaat boodskappe en groepkletse is gebou op — het twee helftes. Die helfte wat roer eintlik die teks (ChaCha20, HMAC-SHA256, HKDF) hou goed teen 'n kwantum rekenaar. Die helfte wat oor die sleutel saamstem, stem nie.
Die sleutelooreenkoms is die elliptiese kurwe Diffie-Hellman op secp256k1, dieselfde wiskunde wat Bitcoin gebruik. Shor se algoritme los dit reguit op. Enigiemand wat dit teen 'n publieke sleutel laat loop, herstel die private sleutel, en daarmee saam elke gedeelde geheim wat daardie sleutel ooit geproduseer het.
Dit is nie 'n probleem wat begin wanneer kwantumrekenaars opdaag nie. 'n Teëstander met genoeg berging kan geënkripteerde verkeer opneem vandag, sit daarop, en dekripteer dit jare later. Enigiets wat jy nou stuur wat toe nog saak maak, is reeds ontbloot. Dit is die spesifieke aanval hierdie kenmerk nederlae.
Hoe dit werk
Nymchat laat die NIP-44 boodskapformaat heeltemal alleen. Die sleutel ooreenkoms wat dit reeds gebruik, is ongeskakel; 'n tweede, onafhanklike een word rondom dit bygevoeg.
- die standaard secp256k1 ECDH, presies soos voorheen;
- ML-KEM-768, die post-kwantum algoritme NIST gestandaardiseer as FIPS 203. Die sekuriteit daarvan berus op roosterprobleme, waaraan Shor se algoritme nie raak nie.
Die twee is Gemaak, nie gemeng nieDie boodskap word gekryp met NIP-44 presies soos dit altyd was, en die voltooi kodeertekst word dan 'n tweede keer binne die post-kwantumslaag - ChaCha20-Poly1305, gekrywe van die ML-KEM gedeelde geheim. die afsender se sleutel, die ontvanger se sleutel, die inkapseling se kodeertekst en die ontvanger se ML-KEM sleutel word gebind in daardie afgeleide as konteks, sodat 'n laag nie van een uitruil kan weggeneem word nie en op 'n ander weer gespeel kan word.
'N kombiner soos X-Wing of Signal se PQXDH meng beide geheime in 'n sleutel in plaas daarvan. Nymchat nie, en die rede is prakties eerder as kriptografies: menging benodig die ruwe ECDH-uitvoer, en 'n leseruitbreiding of remote signer sal dit nooit teruggee nie - dit gee 'n voltooi kodeertekst, wat die hele punt is om die sleutel te hou waar die aansoek dit nie kan bereik nie.
Die belangrike eiendom is dieselfde: die resultaat is ten minste so sterk soos die sterker helfteDie lees van die boodskap beteken om deur beide lae te kom. As grid-kryptering blyk swakker te wees as wat verwag is, breek ML-KEM net die buite laag en laat vandag se NIP-44 onder.
Elke boodskap kry 'n vars post-kwantumuitruiling, so die herwinning van een boodskap se sleutel openbaar niks oor die ander nie.
Die post-kwantum helfte het 'n sleutel van hul eie nodig, en waar die sleutel vandaan kom, is wat bepaal of die hele ding iets waardig is. nie Werk uit jou nsec'N Kwantumrekenaar wat die klassieke helfte breek, herstel jou
nsec van jou openbare sleutel, en alles wat uit die nsec deur 'n gepubliseerde formule kom uit met dit - twee slotte geopen deur een breek. Post-Quantum Kode vir elke rekening, een keer, van ewekansige bytes wat geen openbare waarde blootstel nie. nympq1… en sit langs jou nsec Dit is nie 'n wagwoord en nie 'n tweede login nie: dit is sleutelmateriaal wat jy kan red, presies soos die nsec.
Daar is niks om aan te skakel nie
Dit is nie 'n instelling nie. Post-kwantumkodering is eenvoudig hoe Nymchat met Nymchat praat, die dieselfde manier waarop gewone enkripsie is hoe dit met alles anders praat. Dit is outomaties van toepassing op elke privaat boodskap en groepklets met 'n ander Nymchat-gebruiker.
Instellings › Privaatheid & Sekuriteit wys of dit aktief is en hoeveel van jou kontakte dit tans bereik, maar slegs as inligting - daar is geen skakel nie.
'N browser-uitbreiding (NIP-07) of remote-signer (NIP-46) login gee nooit jou identiteits sleutel na die app nie, wat die hele punt is om een te gebruik - en dit hoef nie. Die twee helfte van die versleuteling word afgeskei: jou handtekener doen die deel wat dit altyd gedoen het, en die app doen die post-kwantum deel met jou herstel kode, wat dit direk hou. Uitbreiding en remote-signer login is gewone deelnemers in beide rigtings.
Niks wat jy reeds het, word beïnvloed nie. Elke boodskap in jou geskiedenis bly leesbaar op elke toestel met niks behalwe jou nsec, presies soos voorheen, en bly so vir die lewe van die rekening. nympq1… herstel kode is die kwantum-weerstandige materiaal geskryf van nou af: nuwe boodskappe, en die gesynchroniseerde instellings en arkieë wat saam met hulle reis.
So 'n toestel moet daardie kode hou voordat dit hulle kan oopmaak, en die toevoeging van 'n toestel neem nou 'n ekstra stap. nympq1…
die kode van 'n toestel wat dit reeds het. Dit is een keer per toestel, nie een keer per login. Hierdie stap is nie friksie wat ons misluk het om te verwyder nie: 'n kode wat op 'n nuwe toestel deur jouself kon aankom, sal daar in 'n gewone boodskap moet reis, en dat boodskap is presies wat die aanvallers hierdie funksie bestaan om te stop op te neem.
Die app genereer die nympq1… die kode vir jou, so daar is niks om te kies en niks om uit te vind. Kyk of bewerk Nym se besonderhedeEn dan
Onthul hierdie nym se private sleutel en herstel kodeDit sit net onder jou nsec, met dieselfde toon en kopieer knoppies. Jy hoef nooit daaraan te dink tot die dag dat jy 'n tweede toestel byvoeg nie.
'N Ongelinkte toestel word ondertussen nie uitgesluit nie. Dit lees alles wat onder die ouer versleuteling geskryf is en gaan voort om normaal te stuur, en sodra jy dit koppel, gaan dit terug en oopmaak die kwantum-weerstandige boodskappe wat dit nie voorheen kon lees nie.
'N Tweede toestel benodig twee dinge: 'n huidige weergawe van die app, en die
nympq1… 'N ouer bou werk voort - dit word nie afgesny nie - maar dit kan nie die huidige formaat lees nie, dus terwyl dit nog op die rekening is, val die kopieë wat jy vir jouself hou, terug na die ouer wat dit kan. 'n Opgedateerde toestel wat nog nie gekoppel is nie, lees jou ouer geskiedenis en vra vir die kode nie.
Met wie jy dit kry
Elke Nymchat kliënt publiceer 'n klein onderteken, verval aankondiging sê dit, en sluit sy post-kwantum sleutel in wanneer dit een het. Hou 'n geldige aankondiging vir iemand is wat maak die app gebruik die sterker uitruil met hulle. Daar is geen onderhandelings om te inmeng nie: of die sleutel is daar of dit is nie, en omdat die aankondiging deur sy skrywer onderteken word, moet 'n vervangende sleutel vervals word eerder as net bedien word.
Wat 'n aanvaller wat 'n relay beheer kan Do is om die aankondiging te hou, sodat die afsender nooit 'n sleutel sien nie en terugval na gewone versleuteling. Dit is die moeite werd om duidelik te sê. Dit kos post-kwantum beskerming vir daardie boodskappe; dit kan nie een onleesbaar maak nie, en dit kan nie maak dat jy 'n sleutel wat nie van jou is nie, aanvaar nie. Kliënte vra verskeie oordragers, dus onderdruk dit neem beheer van al hulle.
Die aankondigings duur 'n week en verfris jouself daagliks terwyl jy die app gebruik. As jy langer as dit weg is, verloor jou en jy lees as 'n gewone Nostr kliënt vir 'n rukkie: boodskappe wat na jou gestuur word in daardie gaping word gekrypte op die normale manier eerder as die kwantum-weerstandige manier. Hulle kom steeds aan, en jy kan hulle nog lees - en niks wat jy voorheen ontvang het, word beïnvloed.
Almal hou aan om presies soos voorheen te werk. Bitchat gebruikers en enige ander Nostr kliënt ontvang standaard NIP-17Niks breek wanneer jy boodskap aan iemand buite Nymchat.
'n Post-kwantumboodskap vervang die standaard een eerder as om daarlangs gestuur te word. Om albei te stuur sal sinloos wees: 'n aanvaller sal eenvoudig die swakker kopie breek.
Die afskrifte gerig aan jy kry dit ook - die een wat jou ander toestelle lees, die argief daaragter, en jou gesinkroniseerde instellings, wat dieselfde pad reis en jou dra gesprekslys, jou groepsleutels en jou boodskapgeskiedenis. Laat enige van daardie op die ou enkripsie sou hulle die swakste ding gemaak het wat jy stoor: leesbaar vir enigiemand wat breek vandag se kriptografie, maak nie saak hoe versigtig die boodskappe self verseël is nie.
Bly leesbaar deur Bitchat
Bitchat kan nie Nymchat se boodskapformaat lees nie, so histories het Nymchat 'n tweede kopie van gestuur elke boodskap in Bitchat se formaat aan enigiemand wat dit dalk gebruik - wat vir iemand jy het nog nooit van gehoor nie, bedoel almal.
Die aankondiging hierbo maak daardie raai onnodig. As iemand een gepubliseer het, is hulle hardloop Nymchat, dus word die Bitchat-kopie laat val en net die sterker boodskap word gestuur. As hulle het nie, niks het verander nie: hulle ontvang steeds albei formate, presies soos voorheen, dus niks jy stuur kan onleesbaar word omdat die toepassing verkeerd geraai het oor watter kliënt iemand gebruik.
Soos die enkripsie self, is dit outomaties en het geen instellings nie.
Nymchat kan uit openbare kanaalaktiwiteit aflei wie wat bestuur, en dit sal raaksien mense vroeër. Maar daardie afleiding is soms verkeerd, en om hier verkeerd te wees, beteken om iemand 'n boodskap te stuur, kan hul toepassing nie oopmaak nie, met geen fout en geen herprobeer nie. A gepubliseer aankondiging is onderteken deur die skrywer en kan nie vervals word nie, daarom word dit eerder gebruik.
In groepkletse
Groepboodskappe is reeds vir elke lid afsonderlik geïnkripteer, so 'n groep kan albei soorte meng vrylik - lede wie se kliënte dit ondersteun, kry die sterker enkripsie, die res kry die standaard een, en die groep werk normaalweg op enige manier.
Daarom word 'n groepboodskap slegs as kwantumbestand gemerk wanneer elke lid het dit so ontvang. As selfs een kopie die standaard ruil gebruik het, dra daardie kopie dieselfde boodskap, dus is die boodskap as geheel net so beskerm soos sy swakste kopie. Die app sê "kwantumbestand teen 8 van 10 lede" eerder as om na bo af te rond.
Groepkletse hou ook hul draai eenmalige sleutels, wat versteek wie in 'n groep is van enigiemand wat na 'n aflos kyk. Daardie beskerming word nie aangetas nie en werk presies soos dit gedoen het.
Lees die kenteken
Elke private boodskap en groepboodskap dra 'n klein skild na die padlock. Tapping van 'n merk verduidelik wat dit wys.
| Merk | Betekenis |
|---|---|
| Hangslot | Wie het dit gestuur - of die handtekening ooreenstem met die beweerde outeur. |
| Skild | Beide kante het 'n post-quantum kode van hul eie gehou, en die hybride uitruil is gebruik vir elke kopie van hierdie boodskap. |
| Gestreepte skild | gedeeltelik kwantum-weerstandig - 'n groepboodskap wat slegs sommige lede 'n beskermde kopie van ontvang het. Omdat die ander dieselfde teks dra, behandel die boodskap as konvensionele versleutel in die algemeen. |
| Struck-door die skild | Standaard NIP-44-versleuteling - nog steeds end-to-end versleutel, en nog steeds onleesbaar vir iemand behalwe die deelnemers vandag. |
| Geen skild nie | Nie 'n versleutelde boodskap nie. Openbare kanaal poste is leesbaar op die oordrag deur ontwerp, so geen versleutelingsmerk is toegepas nie. |
Die skild is altyd teenwoordig op 'n versleutelde boodskap, en sê duidelik wanneer die antwoord nee is. 'n ontbrekende teken sou duidelike wees - dit kan ook beteken “nie kwantum-weerstandig”, “ hierdie bou is te oud”, of “ die aanduiding is gebreek” - en 'n sekuriteit aanduiding wat nie onderskei kan word van 'n gebreke een is nie jou iets vertel nie.
Dit sit langs die padlock eerder as om dit te vervang omdat die twee verskillende vrae beantwoord, en 'n boodskap kan een sonder die ander wees - kwantum-weerstandig maar van 'n ongecontroleerde afsender, of geverifieer maar konvensionele versleutel.
Ouder boodskappe hou die slag-door-skild permanent. Alles wat gestuur is voordat beide kante op 'n kwantum-weerstandige konstruksie was, is met die konvensionele uitruil verzegel, en dat ciphertekst reeds bestaan op die relaas - dit kan nie na die feit herverzegel word nie.
Wat dit nie doen nie
Dit beskerm die inhoud van jou boodskappe. Dit maak nie elke deel van Nostr kwantumbestand, en dit is die moeite werd om presies te wees oor die verskil.
- Handtekeninge is steeds secp256k1. Nostr identiteite teken met Schnorr op die dieselfde kurwe. 'n Teëstander wat reeds 'n werkende kwantumrekenaar gehad het, kon 'n handtekening en verpersoonlik iemand in reële tyd. Wat die hibriede ruil stop is om te lees aangetekende verkeer - vertroulikheid, nie verifikasie nie.
- Daar is geen vooruitsig nie. Beide sleutels is langlewendig: NIP-44 ontleed sy sleutel van jou
nsec, en die post-kwantumslaag kapsuleer na die ML-KEM sleutel agter jounympq1…Elke boodskap kry 'n nuwe inkapseling, sodat die sleutel van een boodskap nie die volgende oopmaak nie - maar wie uiteindelik daardie langtermyn sleutels hou, kan alles lees wat hulle ooit opgeteken het, nie net wat daarna gekom het nie. Vervalste boodskappe verminder, en dit is hoekom hierdie funksie is gerig op oes-nu-dekrypte-later eerder as op 'n sleutel wat geneem word. - Metadata is onveranderd. 'n Aflos sien steeds dat 'n gebeurtenis gerig is 'n sleutel, en ongeveer wanneer. Dit word hanteer deur geskenkverpakking en eenmalige sleutels, nie deur nie hierdie.
- Die Bluetooth mesh is nie gedek nie. 'N Boodskap wat oor Die mesh reis binne 'n Noise XX-sessie, wat sterk, huidige versleuteling is, maar 'n klassieke sleuteluitruil - dus dra dit nie die post-kwantumlaag nie, selfs tussen twee Nymchat-gebruikers nie. Die badge weerspieël dit: 'n boodskap wat oor die mesh afgelewer word, word nie gekarakteriseer as kwantum-weerstandig nie.
- Jou herstel kode is 'n tweede ding om te hou. Dit begin met
nympq1En jy sal dit vind in Jou Nym se besonderhedeOp dieselfde pad as jounsec- druk jou nym, dan “Verduidelik hierdie nym se private sleutel en herstel kode”.nsecop sigself herbou nie jou post-kwantum sleutel nie - dit is presies waarom dit werk - so as geen toestel daardie kode hou en jy nie 'n kopie daarvan het nie, wat daarop gesegelde is, kan nie weer oopgemaak word nie.nsec. - Dit kan nie beskerm wat die ander kant doen nie. 'n Ontvanger kan steeds skermskoot, kopieer of hou 'n boodskap.
Dit is dieselfde posisie wat Signal inneem met sy eie post-kwantumopgradering: maak die sleuteluitruiling reg nou, want dit is die deel waarop 'n aanvaller terugwerkend kan optree, en handtekeninge as 'n behandel aparte probleem vir wanneer die standaarde inhaal.
Kontroleer die werk
Die ML-KEM implementasie word getest teen die amptelike Test vektor NIST publiseer vir FIPS 203Die web-app en die mobiele app word bykomend gehou aan 'n gedeelde stel toetsvektore, wat waarborg dat 'n boodskap wat deur een geskryf is, deur die ander gelees kan word.
Beide is Open bron onder die AGPL-3.0, en die webtoepassings van die webtoepassings is herhaalbaar - sien 'n bouwerk te verifieer.
Om dieper te gaan: Post-Quantum sleutel ooreenkoms in Nymchat - 'n tegniese witboek oor hoe die ML-KEM sleutel sonder 'n directory versprei word, die presiese konstruksie wat die twee sleuteluitwisselings kombineer, en die ontwerpe wat verwerp is.