Passa al contenuto
Torniamo a Nymchat

Base di conoscenza Parlare con le persone

Crittografia resistente ai quanti

I messaggi privati e le chat di gruppo tra gli utenti Nymchat possono essere crittografati in questo modo che registrarli oggi non compra nulla a un utente malintenzionato, anche una volta arrivati i computer quantistici.

Il problema che risolve

Crittografia ordinaria della Nostr — NIP-44, che è cosa messaggi privati E chat di gruppo su cui sono costruiti - ha due metà. La metà in realtà confonde il testo (ChaCha20, HMAC-SHA256, HKDF) regge bene contro un quantum computer. La metà che è d'accordo sulla chiave no.

Questo accordo chiave è la curva ellittica Diffie-Hellman su secp256k1, la stessa matematica utilizzata da Bitcoin. L'algoritmo di Shor lo risolve completamente. Chiunque lo esegua contro una chiave pubblica recupera il file chiave privata e con essa ogni segreto condiviso che quella chiave abbia mai prodotto.

Raccogli ora, decifra più tardi

Questo non è un problema che inizia con l’arrivo dei computer quantistici. Un avversario con abbastanza l'archiviazione può registrare il traffico crittografato Oggi, siediti sopra e decifralo anni dopo. Tutto ciò che invii ora che conta ancora allora è già esposto. Questo è lo specifico attaccare questa caratteristica sconfigge.

Come funziona

Nymchat lascia il formato del messaggio NIP-44 completamente da solo. L'accordo chiave che utilizza già è intatto; un secondo, indipendente uno viene aggiunto intorno a esso.

  • la norma secp256k1 ECDH, esattamente come prima;
  • ML-KEM-768, l'algoritmo post-quantistico standardizzato dal NIST come FIPS 203. La sua sicurezza si basa su problemi reticolari, che l'algoritmo di Shor non tocca.

I due sono Mescolare, non miscelareIl messaggio è crittografato con NIP-44 esattamente come è sempre stato, e quel testo crittografo finito viene quindi sigillato una seconda volta all'interno del livello post-quantum - ChaCha20-Poly1305, chiave dal segreto condiviso ML-KEM. La chiave del mittente, la chiave del destinatario, il testo crittografo dell'encapsulazione e la chiave ML-KEM del destinatario sono legati in quella derivazione come contesto, quindi un livello non può essere sollevato da un scambio e riprodotto su un altro.

Un combinatore come X-Wing o Signal's PQXDH mescola entrambi i segreti in una chiave invece. Nymchat non lo fa, e la ragione è pratica piuttosto che criptografica: il mixing ha bisogno della uscita ECDH cruda, e un'estensione del browser o un firmatore remoto non lo restituirà mai - restituisce un testo cifratore finito, che è l'intero punto di tenere la chiave dove l'app non può raggiungerla.

La proprietà importante è la stessa in entrambi i modi: il risultato è Forte quanto la metà più forteLeggere il messaggio significa attraversare entrambi i livelli.Se la crittografia della griglia si rivela più debole del sperato, rompere ML-KEM rimuove solo lo strato esterno e lascia il NIP-44 di oggi sotto.Se secp256k1 cade su un computer quantistico, lo strato interno si apre ma lo strato esterno non lo fa.

Ogni messaggio riceve un nuovo scambio post-quantistico, quindi il recupero della chiave di un messaggio rivela niente degli altri.

La metà post-quantum ha bisogno di una chiave propria, e da dove viene quella chiave è ciò che decide se l'intera cosa vale qualcosa. non Ha lavorato dalla sua nsecUn computer quantistico che rompe la metà classica recupera nsec della vostra chiave pubblica, e qualsiasi cosa derivante dalla nsec con una formula pubblicata esce con esso – due serrature aperte da una pausa. Il codice post quantum per ogni account, una volta, da byte casuali che nessun valore pubblico espone. nympq1… e seduti accanto a te nsec Non è una password e non un secondo login: è materiale chiave che puoi salvare, esattamente come il nsec.

Non c'è niente da accendere

Questa non è un'impostazione. La crittografia post-quantistica è semplicemente il modo in cui Nymchat parla con Nymchat, il allo stesso modo in cui la crittografia ordinaria comunica con tutto il resto. Si applica automaticamente a ogni messaggio privato e chat di gruppo con un altro utente Nymchat.

Impostazioni › Privacy & Security mostra se è attivo e quanti dei tuoi contatti raggiunge attualmente, ma solo come informazioni - non c'è alcun switch.

Un login di estensione del browser (NIP-07) o di signatario remoto (NIP-46) non consegna mai la chiave di identità all'app, che è l'intero punto di utilizzo di uno - e non deve. Le due metà della crittografia sono tenute separatamente: il tuo signatario fa la parte che ha sempre fatto, e l'app fa la parte post-quantum con il tuo codice di recupero, che detiene direttamente.

Ogni messaggio nella tua cronologia rimane leggibile su tutti i dispositivi con solo il tuo nsec, esattamente come prima, e rimane così per la vita del conto. nympq1… Il codice di recupero è il materiale quantico-resistente scritto da ora in poi: nuovi messaggi, e le impostazioni e gli archivi sincronizzati che viaggiano con loro.

Quindi un dispositivo deve tenere quel codice prima di poterlo aprire, e aggiungere un dispositivo ora richiede un ulteriore passo. nympq1… È una volta per dispositivo, non una volta per login.Questo passo non è attrito non siamo riusciti a rimuovere: un codice che potrebbe arrivare su un nuovo dispositivo da solo dovrà viaggiare lì all'interno di un messaggio ordinario, e quel messaggio è esattamente ciò che l'attaccante questa funzione esiste per smettere di registrare.Il passo è il motivo per cui la protezione è reale.

L’app genera il nympq1… codice per te, quindi non c'è nulla da scegliere e niente da inventare. per vederlo: toccare la tua nicchia per aprire Visualizza o modifica i dettagli di NymE poi Rivelare la chiave privata e il codice di recupero di questo nymSi trova direttamente sotto il tuo nsec, con gli stessi pulsanti di visualizzazione e copia. Non devi mai pensare a questo fino al giorno in cui aggiungi un secondo dispositivo.

Un dispositivo non collegato non è bloccato nel frattempo. continua a leggere tutto scritto sotto la crittografia più vecchia e continua a inviare normalmente, e una volta che lo colleghi, torna indietro e apre i messaggi resistenti al quantum che non poteva leggere prima.

I tuoi altri dispositivi

Un secondo dispositivo ha bisogno di due cose: una versione corrente dell'app e nympq1… Un vecchio build continua a funzionare - non viene tagliato - ma non può leggere il formato corrente, quindi mentre è ancora sul conto le copie che si conservano per se stessi tornano a quello più vecchio che può. Un dispositivo aggiornato che non è stato collegato ancora legge la tua storia precedente e chiede il codice. né può dirci che esiste, motivo per cui questo è un avviso piuttosto che qualcosa che rileviamo per te.

Con chi lo ottieni

Ogni cliente Nymchat pubblica un piccolo annuncio firmato, scadente dicendo così, e include la sua chiave post-quantum quando ne ha uno. Tenere un annuncio valido per qualcuno è ciò che rende l'app utilizzare lo scambio più forte con loro. Non c'è alcuna negoziazione con cui interferire: o la chiave è lì o non è, e perché l'annuncio è firmato dal suo autore, una chiave sostituita dovrà essere falsificata piuttosto che semplicemente servita.

Quale attaccante che controlla un relè Può Fare è trattenere l'annuncio, in modo che l'emittente non veda mai una chiave e ritorna alla crittografia ordinaria. Questo vale la pena dire chiaramente. Costano la protezione post-quantum per quei messaggi; non può rendere uno indelebile, e non può farti accettare una chiave che non è tua. I clienti chiedono diversi relai, quindi sopprimendo prende il controllo di tutti loro.

Questi annunci durano una settimana e si aggiornano quotidianamente mentre si utilizza l'app. Se si è lontani più a lungo di questo, i vostri fallimenti e si è letti come un normale cliente Nostr per un po ': i messaggi inviati a voi in quel gap sono crittografati nel modo normale piuttosto che in modo resistente al quantum. Essi arrivano ancora, e si può ancora leggerli - e nulla che si è ricevuto prima è influenzato. l'apertura dell'app ripubblica il vostro annuncio, e la crittografia più forte riprende da sola.

Tutti gli altri continuano a funzionare esattamente come prima. Bitchat utenti e qualsiasi altro cliente Nostro ricevono standard NIP-17Niente si rompe quando invii un messaggio a qualcuno al di fuori di Nymchat.

Un messaggio post-quantistico sostituisce quello standard anziché essere inviato insieme ad esso. Inviarli entrambi sarebbe inutile: un utente malintenzionato romperebbe semplicemente la copia più debole.

Le copie indirizzate a Voi prendilo anche tu: quello letto dagli altri dispositivi, il archivio dietro di esso e le tue impostazioni sincronizzate, che viaggiano allo stesso modo e trasportano il tuo elenco delle conversazioni, i tasti del gruppo e la cronologia dei messaggi. Lasciando qualcuno di quelli sul vecchio la crittografia li avrebbe resi la cosa più debole che archivi: leggibili da chiunque si rompa crittografia di oggi, non importa con quanta cura i messaggi stessi fossero sigillati.

Rimanere leggibile da Bitchat

Bitchat non può leggere il formato del messaggio di Nymchat, quindi storicamente Nymchat ne inviava una seconda copia ogni messaggio nel formato Bitchat a chiunque potrebbe utilizzarlo, il che, per qualcuno di cui non avevi mai sentito parlare, intendevo tutti.

L'annuncio di cui sopra rende superflua questa ipotesi. Se qualcuno ne ha pubblicato uno, lo è eseguendo Nymchat, quindi la copia di Bitchat viene eliminata e viene inviato solo il messaggio più forte. Se loro no, non è cambiato nulla: ricevono ancora entrambi i formati, esattamente come prima, quindi niente che invii può diventare illeggibile perché l'app ha indovinato male quale client utilizza qualcuno.

Come la crittografia stessa, questa è automatica e non ha impostazioni.

Perché non limitarsi a indovinare dall'attività pubblica

Nymchat potrebbe dedurre chi gestisce cosa dall'attività del canale pubblico e lo individuerebbe le persone prima. Ma questa deduzione a volte è sbagliata, e sbagliare qui significa inviare a qualcuno un messaggio che la sua app non può aprire, senza errori e senza riprovare. Un pubblicato l'annuncio è firmato dal suo autore e non può essere falsificato, quindi viene utilizzato al suo posto.

Nelle chat di gruppo

I messaggi di gruppo sono già crittografati separatamente per ciascun membro, quindi un gruppo può mescolare entrambi i tipi liberamente: i membri i cui clienti la supportano ottengono la crittografia più potente, gli altri ottengono quella quello standard e il gruppo funziona normalmente in entrambi i casi.

Per questo motivo un messaggio di gruppo viene contrassegnato come resistente ai quanti solo quando ogni membro ricevuto così. Se anche una sola copia ha utilizzato lo scambio standard, quella copia porta lo stesso messaggio, quindi il messaggio nel suo insieme è protetto solo quanto la sua copia più debole. L'app dice "resistente ai quanti su 8 membri su 10" anziché arrotondare per eccesso.

Anche le chat di gruppo mantengono la loro tasti rotanti monouso, che nascondono chi fa parte di un gruppo da chiunque guardi una staffetta. Tale protezione non viene influenzata e funziona esattamente come prima.

Leggere il distintivo

Ogni messaggio privato e messaggio di gruppo porta un piccolo scudo Accanto al padlock. Tappando entrambi i segni spiega ciò che sta mostrando.

SegnoSenso
LucchettoChi l'ha inviato: se la firma corrisponde all'autore dichiarato.
ScudoEntrambe le parti hanno mantenuto un codice post-quantum proprio, e lo scambio ibrido è stato utilizzato per ogni copia di questo messaggio.
Scudo tratteggiatoParzialmente resistente al quantum - un messaggio di gruppo solo alcuni membri hanno ricevuto una copia protetta. Poiché gli altri portano lo stesso testo, trattare il messaggio come convenzionalmente crittografato nel suo complesso.
Lo scudo di StruckStandard NIP-44 crittografia – ancora end-to-end crittografata, e ancora indelebile per chiunque tranne i partecipanti oggi.
Nessuno scudoI messaggi del canale pubblico sono leggibili sul relay per progettazione, quindi non si applica alcun segno di crittografia.

Un segno mancante sarebbe ambiguo - potrebbe anche significare “non quantico-resistente”, “questa costruzione è troppo vecchia”, o “l'indicatore è rotto” - e un indicatore di sicurezza che non può essere distinto da uno rotto non ti dice nulla.

Si trova accanto al blocco piuttosto che sostituirlo perché i due rispondono a domande diverse, e un messaggio può essere uno senza l'altro - resistente al quantum ma da un mittente non verificato, o verificato ma convenzionalmente crittografato.

I messaggi più vecchi mantengono in modo permanente lo scudo. Tutto ciò che è stato inviato prima che entrambe le parti fossero su una costruzione resistente al quantum è stato sigillato con lo scambio convenzionale, e che il testo di cifratura esiste già sui relai - non può essere nuovamente sigillato dopo il fatto.

Cosa non fa

Questo protegge il contenuto dei tuoi messaggi Non costituisce ogni parte Nostr a prova quantistica, e vale la pena essere precisi sulla differenza.

  • Le firme sono ancora secp256k1. Le nostre identità firmano con Schnorr sul stessa curva. Un avversario che avesse già un computer quantistico funzionante potrebbe forgiare un firmare e impersonare qualcuno in tempo reale. Quello che si ferma lo scambio ibrido sta leggendo traffico registrato: riservatezza, non autenticazione.
  • Non c’è segreto in avanti. Entrambe le chiavi sono durature: NIP-44 deriva la sua chiave dalla nsec, e lo strato post-quantum incapsula la chiave ML-KEM dietro il tuo nympq1… Ogni messaggio riceve una nuova incapsulazione, quindi la chiave di un messaggio non apre la successiva, ma chi finisce per tenere quelle chiavi a lungo termine può leggere tutto ciò che ha mai registrato, non solo ciò che è venuto dopo. Messaggi scaduti ridurre, ed è per questo che questa funzione è mirata a raccogliere-ora-decript-più tardi piuttosto che a una chiave che viene presa.
  • I metadati sono invariati. Un relè vede ancora a chi è stato indirizzato un evento una chiave e più o meno quando. Questo è gestito da confezione regalo e chiavi usa e getta, non da questo.
  • La rete Bluetooth non è coperta. Un messaggio trasmesso La mesh viaggia all'interno di una sessione di Noise XX, che è una forte crittografia corrente ma uno scambio di chiavi classico - quindi non trasporta lo strato post-quantum, anche tra due utenti di Nymchat. Il badge riflette questo: un messaggio consegnato sopra la mesh non è contrassegnato come resistente al quantum. Aggiungerlo significa cambiare il braccio stesso, che entrambi i coetanei dovrebbero fare allo stesso momento, senza il relay per cadere indietro e rimanendo leggibile da Bitchat.
  • Il tuo codice di recupero è una seconda cosa da mantenere. Inizia con nympq1 E lo troverete in I dettagli di Nymnel medesimo gruppo che il tuo nsec - tocca il tuo nym, poi “Rivelare la chiave privata di questo nym e il codice di recupero”. nsec da solo non ricostruisce la tua chiave post-quantum - questo è esattamente il motivo per cui funziona - quindi se nessun dispositivo detiene quel codice e non hai una copia di esso, ciò che è stato sigillato a esso non può essere riaperto. nsec.
  • Non può proteggere ciò che fa l’altra parte. Un destinatario può ancora effettuare uno screenshot, copiare o conservare un messaggio.

Questa è la stessa posizione che Signal assume con il proprio aggiornamento post-quantistico: correggere lo scambio di chiavi now, perché questa è la parte su cui un utente malintenzionato può agire retroattivamente e trattare le firme come un file problema separato per quando gli standard si adegueranno.

Controllo del lavoro

L'implementazione ML-KEM viene testata contro l'ufficiale Test dei vettori NIST per FIPS 203L'app web e l'app mobile sono inoltre tenute a un insieme condiviso di vettori di test, che è ciò che garantisce che un messaggio scritto da uno possa essere letto dall'altro.

Entrambi sono Sorgente aperto sotto l'AGPL-3.0, e le costruzioni dell'app web sono riproducibili - vedi verificare una build.

Vai più in profondità: Accordo chiave post-quantum a Nymchat - un whitepaper tecnico su come la chiave ML-KEM è distribuita senza un directory, la costruzione esatta che combina i due scambi chiave e i disegni che sono stati rifiutati.