Pular para o conteúdo
De volta ao Nymchat

Base de conhecimento Conversando com as pessoas

Criptografia resistente a quantum

Mensagens privadas e bate-papos em grupo entre usuários do Nymchat podem ser criptografados para que registrá-los hoje não traz nada ao invasor, mesmo quando os computadores quânticos chegam.

O problema que resolve

Criptografia Nostr comum — NIP-44, qual é o que mensagens privadas e bate-papos em grupo são construídos - tem duas metades. A metade disso na verdade, embaralha o texto (ChaCha20, HMAC-SHA256, HKDF) e resiste bem a um quantum computador. A metade que concorda com a chave não concorda.

Esse acordo chave é a curva elíptica Diffie-Hellman em secp256k1, a mesma matemática que o Bitcoin usa. O algoritmo de Shor resolve isso completamente. Qualquer pessoa que o execute em uma chave pública recupera o chave privada e com ela todos os segredos compartilhados que essa chave já produziu.

Colha agora, descriptografe depois

Este não é um problema que começa quando os computadores quânticos chegam. Um adversário com o suficiente armazenamento pode registrar tráfego criptografado hoje, sente-se nele e descriptografe-o anos depois. Qualquer coisa que você enviar agora e que ainda seja importante já está exposta. Esse é o específico atacar esse recurso derrota.

Como funciona

Nymchat deixa o formato de mensagens NIP-44 completamente sozinho. O acordo chave que ele já usa é intacto; um segundo, independente é adicionado ao redor dele.

  • o padrão secp256k1 ECDH, exatamente como antes;
  • ML-KEM-768, o algoritmo pós-quântico NIST padronizado como FIPS 203. Sua segurança depende de problemas de rede, que o algoritmo de Shor não aborda.

Os dois são Misturado, não misturadoA mensagem é criptografada com NIP-44 exatamente como sempre foi, e esse texto criptográfico acabado é então selado uma segunda vez dentro da camada pós-quântica – ChaCha20-Poly1305, chaveado do segredo compartilhado ML-KEM. A chave do remetente, a chave do destinatário, o texto criptográfico de encapsulação e a chave ML-KEM do destinatário estão ligadas a essa derivação como contexto, de modo que uma camada não pode ser levantada de uma troca e reproduzida em outra.

Um combinador como o X-Wing ou o PQXDH do Signal mistura ambos os segredos em uma chave em vez disso. Nymchat não, e a razão é prática em vez de criptográfica: a mistura precisa da saída ECDH bruta, e uma extensão do navegador ou um assinante remoto nunca entregará isso de volta - ele retorna um texto cifrado acabado, que é todo o ponto de segurar a chave onde o aplicativo não pode alcançá-la.

A propriedade importante é a mesma de qualquer maneira: o resultado é pelo menos tão forte quanto a metade mais forteSe a criptografia da grade for mais fraca do que o esperado, quebrar o ML-KEM só tira a camada externa e deixa o NIP-44 de hoje por baixo.Se o secp256k1 cair em um computador quântico, a camada interna se abre, mas o exterior não.

Cada mensagem recebe uma nova troca pós-quântica, portanto, a recuperação da chave de uma mensagem revela nada sobre os outros.

A metade pós-quântica precisa de uma chave própria, e de onde essa chave vem é o que decide se a coisa inteira vale alguma coisa. não Trabalhou a partir do seu nsecUm computador quântico que quebra a metade clássica recupera sua nsec de sua chave pública, e qualquer coisa derivada da nsec por uma fórmula publicada vem com ele — dois fechaduras abertas por uma pausa. Código pós-quântico para cada conta, uma vez, a partir de bytes aleatórios que nenhum valor público expõe. nympq1… Sente-se ao lado do seu nsec nos detalhes do seu Nym, revelados e copiados da mesma maneira.Não é uma senha e não um segundo login: é material chave que você pode salvar, exatamente como o nsec.

Não há nada para ligar

Esta não é uma configuração. A criptografia pós-quântica é simplesmente como o Nymchat se comunica com o Nymchat, o da mesma forma que a criptografia comum é como ela se comunica com todo o resto. Aplica-se automaticamente a cada mensagem privada e bate-papo em grupo com outro usuário do Nymchat.

Configurações › Privacidade & Segurança mostra se ele está ativo e quantos de seus contatos ele atinge atualmente, mas apenas como informação - não há switch.

Um login de extensão do navegador (NIP-07) ou de assinante remoto (NIP-46) nunca entrega sua chave de identidade ao aplicativo, o que é todo o ponto de usar um – e ele não tem que. As duas metades da criptografia são mantidas separadas: seu assinante faz a parte que sempre fez, e o aplicativo faz a parte pós-quântico com seu código de recuperação, que ele detém diretamente.

Cada mensagem no seu histórico permanece legível em todos os dispositivos com nada além do seu nsec, exatamente como antes, e permanece assim para a vida da conta. nympq1… O código de recuperação é o material resistente à quantidade escrito a partir de agora: novas mensagens, e as configurações e arquivos sincronizados que viajam com elas.

Então, um dispositivo tem que segurar esse código antes que ele possa abri-los, e adicionar um dispositivo agora leva um passo extra. nympq1… É uma vez por dispositivo, não uma vez por login. Esse passo não é fricção que não conseguimos remover: um código que poderia chegar em um novo dispositivo por si só teria que viajar lá dentro de uma mensagem comum, e essa mensagem é exatamente o que o atacante esta funcionalidade existe para parar está gravando.

O aplicativo gera o nympq1… código para você, então não há nada para escolher e nada para inventar. Ver ou editar detalhes de NymEntão Revele a chave privada e o código de recuperação do NIMEle está localizado logo abaixo do seu nsec, com os mesmos botões de exibição e cópia. Você nunca tem que pensar sobre isso até o dia em que você adicionar um segundo dispositivo.

Um dispositivo desligado não está bloqueado, entretanto, ele continua a ler tudo escrito sob a encriptação mais antiga e continua a enviar normalmente, e uma vez que você o vincula, ele volta e abre as mensagens resistentes a quantidades que não podia ler antes.

Seus outros dispositivos

Um segundo dispositivo precisa de duas coisas: uma versão atual do aplicativo e o nympq1… Um código mais antigo continua a funcionar – não é cortado – mas não pode ler o formato atual, então enquanto ainda está na conta as cópias que você mantém para si mesmo caem de volta para o mais antigo que pode. Um dispositivo atualizado que não foi ligado ainda lê o seu histórico mais antigo e pede o código. Nem pode nos dizer que existe, razão pela qual este é um aviso, em vez de algo que detectamos para você.

Com quem você consegue

Cada cliente do Nymchat publica um pequeno anúncio assinado, expirando dizendo isso, e inclui sua chave pós-quântica quando tem um.Tendo um anúncio válido para alguém é o que faz com que o aplicativo use a troca mais forte com eles.Não há negociação para interferir: ou a chave está lá ou não está, e porque o anúncio é assinado pelo seu autor, uma chave substituída teria que ser falsificada em vez de simplesmente servida.

Qual um atacante que controla um relé pode Isso é retardar o anúncio, para que o remetente nunca veja uma chave e retorne à criptografia comum. Isso vale a pena dizer claramente. Custa proteção pós-quântica para essas mensagens; não pode tornar uma não legível, e não pode fazer você aceitar uma chave que não é sua.

Esses anúncios duram uma semana e se atualizam diariamente enquanto você usa o aplicativo.Se você estiver longe por mais tempo, seus anúncios falham e você é lido como um cliente Nostr comum por um tempo: as mensagens enviadas para você nessa lacuna são criptografadas da maneira normal em vez da maneira resistente a quantidades. Eles ainda chegam, e você ainda pode lê-los - e nada que você recebeu anteriormente é afetado.

Todos os outros continuam trabalhando exatamente como antes. Bitchat usuários e qualquer outro cliente da Nostra recebem padrão NIP-17, inalterado.Nada se quebra quando você mensage alguém fora do Nymchat.

Uma mensagem pós-quântica substitui o padrão, em vez de ser enviado junto com ele. Enviar ambos seria inútil: um invasor simplesmente quebraria a cópia mais fraca.

As cópias endereçadas a você obtenha também - aquele que seus outros dispositivos leem, o arquivo por trás dele e suas configurações sincronizadas, que viajam da mesma maneira e carregam seu lista de conversas, suas chaves de grupo e seu histórico de mensagens. Deixando qualquer um desses no antigo a criptografia os tornaria a coisa mais fraca que você armazena: legível por qualquer um que quebre criptografia de hoje, não importa quão cuidadosamente as mensagens tenham sido seladas.

Mantendo-se legível pelo Bitchat

O Bitchat não consegue ler o formato da mensagem do Nymchat, então historicamente o Nymchat enviou uma segunda cópia do todas as mensagens no formato do Bitchat para qualquer pessoa que possa usá-lo - o que, para alguém você nunca tinha ouvido falar, significava todo mundo.

O anúncio acima torna essa suposição desnecessária. Se alguém publicou um, eles são executando o Nymchat, então a cópia do Bitchat é descartada e apenas a mensagem mais forte é enviada. Se eles não, nada mudou: eles ainda recebem os dois formatos, exatamente como antes, então nada que você envia pode se tornar ilegível porque o aplicativo adivinhou errado sobre qual cliente alguém usa.

Assim como a criptografia em si, ela é automática e não possui configuração.

Por que não apenas adivinhar a partir da atividade pública

O Nymchat poderia inferir quem está comandando o quê a partir da atividade do canal público e identificaria pessoas mais cedo. Mas essa inferência está ocasionalmente errada, e estar errado aqui significa enviar a alguém uma mensagem que seu aplicativo não pode abrir, sem erro e sem nova tentativa. Um publicado o anúncio é assinado pelo seu autor e não pode ser falsificado, por isso é usado em seu lugar.

Em bate-papos em grupo

As mensagens do grupo já são criptografadas separadamente para cada membro, então um grupo pode misturar os dois tipos livremente - os membros cujos clientes oferecem suporte obtêm a criptografia mais forte, o restante obtém a padrão, e o grupo funciona normalmente de qualquer maneira.

Por causa disso, uma mensagem de grupo só é marcada como resistente a quantum quando todo membro recebeu dessa forma. Se pelo menos uma cópia usou a troca padrão, essa cópia carrega o mesmo mensagem, portanto a mensagem como um todo é tão protegida quanto sua cópia mais fraca. O aplicativo diz "resistente a quântico para 8 de 10 membros" em vez de arredondar.

Os bate-papos em grupo também mantêm sua chaves rotativas de uso único, que esconde quem está em um grupo de qualquer pessoa assistindo a um revezamento. Essa proteção não é afetada e funciona exatamente como antes.

Lendo o crachá

Cada mensagem privada e de grupo carrega uma pequena mensagem escudo ao lado do padlock. Tapping qualquer marca explica o que está mostrando.

MarcaSignificado
CadeadoQuem enviou – se a assinatura corresponde ao autor reivindicado.
EscudoAmbos os lados tinham um código pós-quântico próprio, e a troca híbrida foi usada para cada cópia desta mensagem.
Escudo tracejadoParcialmente resistente a quantidades – uma mensagem de grupo que apenas alguns membros receberam uma cópia protegida.
Escudo de ArmazenamentoA criptografia padrão NIP-44 – ainda criptografada de ponta a ponta, e ainda indescritível para ninguém além dos participantes de hoje.
Sem escudoNão é uma mensagem criptografada.As postagens do canal público são legíveis no relé por design, por isso não se aplica nenhuma marca de criptografia.

O escudo está sempre presente em uma mensagem criptografada, e diz claramente quando a resposta é não. Uma marca faltante seria ambígua - isso poderia igualmente significar “não-quântico-resistente”, “esta construção é muito velha”, ou “o indicador está quebrado”- e um indicador de segurança que não pode ser distinguido de um quebrado não está dizendo nada.

Ele está sentado ao lado do bloqueio em vez de substituí-lo porque os dois respondem a perguntas diferentes, e uma mensagem pode ser uma sem a outra - resistente ao quantum, mas de um remetente não verificado, ou verificada, mas convencionalmente criptografada.

As mensagens mais antigas mantêm o escudo de impacto permanentemente. Tudo o que foi enviado antes que ambos os lados estivessem em uma construção resistente a quantidades foi selado com a troca convencional, e que o texto cifrado já existe nos relés - ele não pode ser re-selado depois do fato.

O que não faz

Isto protege o conteúdo de suas mensagens. Não faz com que todas as partes Nostr é à prova quântica, e vale a pena ser preciso quanto à diferença.

  • As assinaturas ainda são secp256k1. As identidades de Nostr assinam com Schnorr no mesma curva. Um adversário que já tivesse um computador quântico funcionando poderia forjar um assinatura e se passar por alguém em tempo real. O que a troca híbrida interrompe é a leitura tráfego registrado — confidencialidade, não autenticação.
  • Não há segredo adiante. Ambas as chaves são duradouras: NIP-44 deriva sua chave da sua nsec, e a camada pós-quântica encapsula-se na chave ML-KEM por trás do seu nympq1… Cada mensagem recebe uma encapsulação fresca, de modo que a chave de uma mensagem não abre a próxima – mas quem acabar segurando essas chaves de longo prazo pode ler tudo o que já gravou, não apenas o que veio depois. Mensagens expiradas reduzir, e é por isso que este recurso é direcionado para colher-agora-descriptografar-mais tarde, em vez de uma chave que é tomada.
  • Os metadados permanecem inalterados. Um relé ainda vê que um evento foi endereçado a uma chave e aproximadamente quando. Isso é tratado por embrulho de presente e chaves únicas, não por isso.
  • A rede Bluetooth não está coberta. Uma mensagem transmitida por O Mesh viaja dentro de uma sessão Noise XX, que é forte, criptografia atual, mas uma troca de chaves clássica – por isso não carrega a camada pós-quântica, mesmo entre dois usuários do Nymchat. O badge reflete isso: uma mensagem entregue sobre a malha não é marcada com resistência quântica.
  • Seu código de recuperação é uma segunda coisa a manter. Começa com nympq1 Você vai encontrá-lo em Detalhes do seu NymNo mesmo painel que o seu nsec - toque em seu nym, em seguida “Reveal este nym's chave privada e código de recuperação”. nsec por si só não reconstrói sua chave pós-quântica – é exatamente por isso que funciona – então se nenhum dispositivo detém esse código e você não tem uma cópia dele, o que foi selado nele não pode ser aberto novamente. nsec.
  • Não pode proteger o que o outro lado faz. Um destinatário ainda pode capturar imagens, copie ou guarde uma mensagem.

Esta é a mesma posição que o Signal assume com sua própria atualização pós-quântica: consertar a troca de chaves agora, porque essa é a parte em que um invasor pode agir retroativamente e tratar as assinaturas como um problema separado para quando os padrões se atualizarem.

Verificando o trabalho

A implementação do ML-KEM é testada contra o oficial Teste de vetores NIST publica para FIPS 203O aplicativo web e o aplicativo móvel são adicionalmente mantidos em um conjunto compartilhado de vetores de teste, que é o que garante que uma mensagem escrita por um pode ser lida pelo outro.

Ambos são Fonte aberta sob a AGPL-3.0, e as construções do aplicativo web são reprodutíveis — veja verificando uma compilação.

Vamos mais fundo: Acordo de chave pós-quântica no Nymchat - um whitepaper técnico sobre como a chave ML-KEM é distribuída sem um diretório, a construção exata que combina as duas trocas de chaves e os projetos que foram rejeitados.