Ir ao contido
Volver a Nymchat

Base de coñecemento Falando coa xente

Cifrado cuántico resistente

As mensaxes privadas e os chats de grupo entre usuarios de Nymchat pódense cifrar así que gravalos hoxe non lle compra nada a un atacante, mesmo unha vez que chegan os ordenadores cuánticos.

O problema que soluciona

Cifrado Nostr ordinario - NIP-44, que é o que mensaxes privadas e chats en grupo están construídos sobre - ten dúas metades. A metade que realmente revolve o texto (ChaCha20, HMAC-SHA256, HKDF) resiste ben contra un quantum ordenador. A metade que concorda na clave non.

Ese acordo clave é a curva elíptica Diffie-Hellman en secp256k1, as mesmas matemáticas que usa Bitcoin. O algoritmo de Shor resolve-lo directamente. Calquera que o execute contra unha chave pública recupera o clave privada, e con ela todos os segredos compartidos que esa chave produciu.

Colleita agora, descifrado máis tarde

Este non é un problema que comece cando chegan os ordenadores cuánticos. Un adversario con suficiente o almacenamento pode gravar o tráfico cifrado hoxe, séntese nel e descífrao anos despois. Todo o que envías agora que aínda importa entón xa está exposto. Ese é o específico ataca esta característica derrota.

Como funciona

Nymchat deixa o formato de mensaxes NIP-44 completamente só. O acordo clave que xa usa é intacto; engádese un segundo, independente ao redor del.

  • o estándar secp256k1 ECDH, exactamente como antes;
  • ML-KEM-768, o algoritmo post-cuántico estandarizado como NIST FIPS 203. A súa seguridade descansa en problemas de celosía, que o algoritmo de Shor non toca.

Os dous son conxelado, non mesturadoA mensaxe está cifrada con NIP-44 exactamente como sempre foi, e que o texto cifrado acabado é entón selado unha segunda vez dentro da capa poscuántica - ChaCha20-Poly1305, clave do segredo compartido ML-KEM. A clave do remitente, a clave do receptor, o texto cifrado de encapsulación e a clave ML-KEM do receptor están unidos a esa derivación como contexto, polo que unha capa non pode ser levantada dun intercambio e reproducida noutro.

Un combinador como X-Wing ou Signal's PQXDH mestura ambos os segredos nunha clave en vez. Nymchat non, e a razón é práctica en vez de criptográfica: a mestura necesita a saída ECDH en bruto, e unha extensión do navegador ou un asinante remoto nunca o entregará de volta - devolve un texto cifrado acabado, que é todo o punto de manter a clave onde a aplicación non pode alcanzalo.

A propiedade importante é a mesma de calquera xeito: o resultado é polo menos tan forte como a metade máis forteA lectura da mensaxe significa pasar por ambas as capas.Se a criptografía da grella resulta ser máis débil do esperado, romper ML-KEM só tira a capa externa e deixa o NIP-44 de hoxe por baixo.Se secp256k1 cae a un ordenador cuántico, a capa interna ábrese pero a capa externa non.

Cada mensaxe recibe un novo intercambio post-cuántico, polo que se recupera a clave dunha mensaxe nada sobre os demais.

A metade post cuántica necesita unha clave propia, e de onde vén esa clave é o que decide se a cousa enteira vale algo. non Traballou dende a súa nsecUn ordenador cuántico que rompe a metade clásica recupera a súa nsec da súa clave pública, e todo o derivado da nsec por unha fórmula publicada sae con el - dous bloques abertos por unha pausa. Código cuántico para cada conta, unha vez, a partir de bytes aleatorios que ningún valor público expón. nympq1… e sentar ao teu lado nsec Non é un contrasinal e non un segundo login: é material clave que podes gardar, exactamente como o nsec.

Non hai nada que acender

Esta non é unha configuración. O cifrado post-cuántico é simplemente como Nymchat fala con Nymchat, o do mesmo xeito que o cifrado común é como fala con todo o demais. Aplícase automaticamente a cada mensaxe privada e chat grupal con outro usuario de Nymchat.

Configuración › Privacidade & Seguridade mostra se está activo e cantos dos seus contactos alcanza actualmente, pero só como información - non hai cambio.

Unha extensión do navegador (NIP-07) ou o rexistro remoto (NIP-46) nunca entregan a súa clave de identidade á aplicación, o que é todo o punto de usar unha - e non ten que. As dúas metades da cifrado mantéñense separadas: o seu asinante fai a parte que sempre fixo, e a aplicación fai a parte post-cuántica co seu código de recuperación, que mantén directamente.

Cada mensaxe no teu historial permanece lexible en todos os dispositivos con nada máis que o teu nsec, exactamente como antes, e permanece ese xeito para a vida da conta. nympq1… O código de recuperación é o material cuántico-resistente escrito a partir de agora: novas mensaxes, e as configuracións e arquivos sincronizados que viaxan con eles.

Entón, un dispositivo ten que manter ese código antes de que poida abrir estes, e engadir un dispositivo agora leva un paso adicional. nympq1… Este paso non é fricción que non conseguimos eliminar: un código que podería chegar a un novo dispositivo por si só tería que viaxar alí dentro dunha mensaxe ordinaria, e esa mensaxe é exactamente o que o atacante esta característica existe para deixar de gravar.

A aplicación xera o nympq1… código para ti, así que non hai nada que escoller e nada que inventar. Ver ou editar os detalles de NymEntón Revela a clave privada e o código de recuperación deste ninjaEstá directamente debaixo da túa nsec, co mesmo amosar e copiar botóns. Nunca ten que pensar sobre iso ata o día que engade un segundo dispositivo.

Un dispositivo non vinculado non está pechado mentres tanto. segue lendo todo escrito baixo a encriptación antiga e segue enviando normalmente, e unha vez que o enlaces, volve e abre as mensaxes cuánticas resistentes que non podía ler antes.

Os teus outros dispositivos

Un segundo dispositivo necesita dúas cousas: unha versión actual da aplicación e nympq1… Un código máis vello segue funcionando -non se corta - pero non pode ler o formato actual, polo que mentres aínda está na conta as copias que mantén para si mesmo caen de volta ao máis vello que pode. Un dispositivo actualizado que non foi conectado aínda le a súa historia máis vella e pide o código.

Con quen o consegues

Cada cliente Nymchat publica un pequeno anuncio asinado, expirando dicindo iso, e inclúe a súa clave post cuántica cando ten un. Mantendo un anuncio válido para alguén é o que fai que a aplicación use o intercambio máis forte con eles. Non hai negociación para interferir: ou a clave está aí ou non está, e porque o anuncio está asinado polo seu autor, unha clave substituída tería que ser falsificada en vez de simplemente servida.

Que un atacante que controla un relé pode O que fai é retener o anuncio, de xeito que o remitente nunca ve unha clave e cae de volta á cifrado ordinaria. Isto vale a pena dicir claramente. Custa protección post-cuántica para esas mensaxes; non pode facer unha non legible, e non pode facer que acepte unha clave que non é a túa.

Estes anuncios duran unha semana e se refrescan diariamente mentres usas a aplicación.Se estás lonxe máis tempo que iso, os teus fallos e estás lido como un cliente ordinario Nostr por un tempo: as mensaxes enviadas a ti nesa brecha son cifradas do xeito normal en lugar da forma cuántica-resistente. Aínda chegan, e aínda podes lelas - e nada que recibises antes é afectado.

Todos os demais seguen traballando exactamente como antes. Bitchat usuarios e calquera outro cliente de Nostr reciben o estándar NIP-17, inalterado.Nada se rompe cando mensaxe a alguén fóra de Nymchat.

Unha mensaxe post-cuántica substitúe o estándar en lugar de enviarse xunto a el. Enviar ambos sería inútil: un atacante simplemente rompería a copia máis débil.

As copias dirixidas ti obtelo tamén: o que len os teus outros dispositivos, o arquivo detrás del e a túa configuración sincronizada, que viaxa polo mesmo camiño e leva o teu lista de conversas, as teclas do teu grupo e o teu historial de mensaxes. Deixando calquera deses no vello o cifrado faría que fosen o máis débil que almacenas: lexibles por calquera que rompa criptografía de hoxe, por moi coidadosamente seladas que fosen as mensaxes.

Permanecer lexible por Bitchat

Bitchat non pode ler o formato de mensaxe de Nymchat, polo que, historicamente, Nymchat enviou unha segunda copia de todas as mensaxes no formato de Bitchat para quen a poida estar usando, o que, para alguén nunca tiñas oído falar de todo o mundo.

O anuncio anterior fai que esa suposición sexa innecesaria. Se alguén publicou un, está executando Nymchat, polo que se elimina a copia de Bitchat e só se envía a mensaxe máis forte. Se eles non, nada cambiou: aínda reciben os dous formatos, exactamente como antes, así que nada pode chegar a ser ilexible porque a aplicación adiviñou mal o cliente que usa alguén.

Do mesmo xeito que o propio cifrado, este é automático e non ten configuración.

Por que non só adiviñar a partir da actividade pública

Nymchat podería inferir quen está a executar que a partir da actividade da canle pública, e detectaríao xente antes. Pero esa inferencia é ocasionalmente incorrecta, e equivocarse aquí significa enviar a alguén unha mensaxe que a súa aplicación non pode abrir, sen erros e sen reintento. A publicada o anuncio está asinado polo seu autor e non pode ser falsificado, polo que úsase no seu lugar.

En chats de grupo

As mensaxes de grupo xa están cifradas por separado para cada membro, polo que un grupo pode mesturar ambos os tipos libremente: os membros cuxos clientes o admiten obteñen o cifrado máis forte, o resto obtén o estándar, e o grupo funciona normalmente de calquera xeito.

Por iso, unha mensaxe de grupo só se marca como resistente á cuántica cando cada membro recibiuno así. Se ata unha copia usou o intercambio estándar, esa copia leva o mesmo mensaxe, polo que a mensaxe no seu conxunto só está protexida como a súa copia máis débil. A aplicación di "resistente á cuántica a 8 de 10 membros" en lugar de redondear cara arriba.

Os chats de grupo tamén manteñen o seu teclas rotativas dunha soa vez, que ocultan quen está nun grupo de quen ve un relevo. Esa protección non se ve afectada e funciona exactamente como fixo.

Lendo o distintivo

Cada mensaxe privada e de grupo leva unha pequena escudo Xunto ao pavillón.Tapando calquera marca explica o que está mostrando.

MarcosSignificado
CandadoQuen o enviou: se a sinatura coincide co autor reclamado.
EscudoAmbos os dous lados tiñan o seu propio código post-cuántico, e o intercambio híbrido foi usado para cada copia desta mensaxe.
Escudo de trazosParcialmente cuántico-resistente: unha mensaxe de grupo só algúns membros recibiron unha copia protexida.
O escudo transversalA encriptación estándar NIP-44 aínda está encriptada de extremo a extremo, e aínda non é lida por ninguén, agás os participantes de hoxe.
Sen escudoNon é unha mensaxe cifrada.As publicacións de canles públicas son lexibles no relé por deseño, polo que non se aplica ningunha marca de cifrado.

O escudo está sempre presente nunha mensaxe cifrada, e di claramente cando a resposta é non.Unha marca faltante sería ambigua - que tamén podería significar “non cuántico-resistente”, “esta construción é moi vella”, ou “o indicador está roto”- e un indicador de seguridade que non pode ser distinguido dun roto non está dicindo nada.

Séntese ao lado do bloque en lugar de substituílo porque os dous responden a preguntas diferentes, e unha mensaxe pode ser unha sen a outra - cuántica-resistente pero dun remitente non verificado, ou verificada pero convencionalmente cifrada.

As mensaxes máis antigas manteñen o escudo de paso permanentemente. Todo o que foi enviado antes de que ambos os dous lados estiveran nunha construción resistente a cuánticos foi selado co intercambio convencional, e que o texto cifrado xa existe nos relés - non pode ser re-selado despois do feito.

O que non fai

Isto protexe o contidos das túas mensaxes. Non fai todas as partes Nostr a proba cuántica, e paga a pena ser preciso sobre a diferenza.

  • As sinaturas seguen sendo secp256k1. As identidades de Nostr asinan con Schnorr no mesma curva. Un adversario que xa tiña un ordenador cuántico funcionando podería forxar a sinatura e suplantar a alguén en tempo real. O que para o intercambio híbrido é ler tráfico rexistrado: confidencialidade, non autenticación.
  • Non hai segredo para adiante. Ambas as chaves son duradeiras: NIP-44 deriva a súa chave da túa nsec, e a capa post cuántica encapsula á clave ML-KEM detrás da túa nympq1… Cada mensaxe recibe unha encapsulación fresca, polo que a clave dunha mensaxe non abre a seguinte - pero quen remate con esas chaves a longo prazo pode ler todo o que xa gravou, non só o que veu despois. Mensaxes expiradas reducir, e é por iso que esta característica está dirixida á colleita-agora-descifrar-máis tarde que a unha clave que se toma.
  • Os metadatos non se modifican. Un relevo aínda ve que se dirixiu un evento unha chave, e aproximadamente cando. Iso é xestionado por envoltorio de agasallo e chaves únicas, non por isto.
  • A rede Bluetooth non está cuberta. Unha mensaxe transmitida A súa mesh viaxa dentro dunha sesión Noise XX, que é forte, cifrado actual pero un intercambio de chaves clásico - así que non leva a capa post-cuántica, mesmo entre dous usuarios de Nymchat. O badge reflicte isto: unha mensaxe entregada sobre a rede non está marcada como cuántica-resistente. Engadíndoo significa cambiar a man, que ambos os compañeiros terían que facer ao mesmo tempo, sen ningún relé para caer de volta e mentres permaneza lexible por Bitchat.
  • O seu código de recuperación é unha segunda cousa a manter. Comeza coa nympq1 e atoparás en Os detalles do teu NymNa mesma páxina que a túa nsec — toque o seu nym, a continuación “Revela a clave privada deste nym e código de recuperación”. nsec por si só non reconstrúe a súa clave pós cuántica - esa é precisamente a razón pola que funciona - así que se ningún dispositivo posúe ese código e non ten unha copia del, o que foi selado nel non se pode abrir de novo. nsec.
  • Non pode protexer o que fai o outro lado. Un destinatario aínda pode facer unha captura de pantalla, copia ou garda unha mensaxe.

Esta é a mesma posición que toma Signal coa súa propia actualización post-cuántica: corrixir o intercambio de chaves agora, porque esa é a parte na que un atacante pode actuar con carácter retroactivo e trata as sinaturas como a problema separado para cando os estándares se poñan ao día.

Comprobación do traballo

A implementación de ML-KEM é probada contra o oficial test vectores NIST publicacións para FIPS 203A aplicación web e a aplicación móbil atópanse ademais a un conxunto compartido de vectores de proba, que é o que garante que unha mensaxe escrita por un poida ser lida polo outro.

Ambos son Fontes abertas baixo a AGPL-3.0, e as construcións da aplicación web son reproducibles — véxase verificando unha compilación.

e máis profundamente: Acordo clave post cuántico en Nymchat Un whitepaper técnico sobre como se distribúe a clave ML-KEM sen un directorio, a construción exacta que combina os dous intercambios de chaves e os deseños que foron rexeitados.