2 pontos por GN⁺ 2023-09-19 | 1 comentários | Compartilhar no WhatsApp
  • Antes da revogação das restrições de exportação de criptografia dos EUA, a edição de exportação do Lotus Notes incluía uma estrutura de escrow de chaves/backdoor chamada differential cryptography
  • Nesse método, 24 bits da criptografia de 64 bits eram criptografados com a chave pública da NSA para obter autorização de exportação, e a NSA podia acessar o texto em claro tentando força bruta apenas nos 40 bits restantes
  • No processo de engenharia reversa, o identificador da chave pública da NSA dentro da aplicação aparecia como O=MiniTruth CN=Big Brother, revelando uma nomeação orwelliana intencional
  • O material da chave pública foi reconstruído a partir de anotações alguns anos depois, portanto há possibilidade de erro; o módulo parecia estar em little endian e, na representação big endian, tinha e = 3 e 760 bits
  • O user ID em formato de chave PGP Director, NSA <dirnsa@nsa.gov> foi criado arbitrariamente e não é uma chave com autoassinatura (self-signed)

Estrutura de backdoor da edição de exportação do Lotus Notes

  • Antes da revogação das restrições de exportação de criptografia dos EUA, a edição de exportação do Lotus Notes incluía o recurso de escrow de chaves/backdoor chamado differential cryptography
  • A ideia central era uma estrutura em que 24 bits de uma cifra de 64 bits eram criptografados com a chave pública da NSA para obter autorização de exportação
    • A NSA precisava tentar força bruta apenas nos 40 bits restantes para obter o texto em claro
    • Usuários comuns precisavam enfrentar o espaço completo de chaves de 64 bits, mas mesmo na época permanecia a possibilidade de a NSA, com custo maior, conseguir fazer força bruta
  • A engenharia reversa foi feita partindo da suposição de que em algum lugar dentro da aplicação haveria uma chave pública da NSA correspondente à chave privada da NSA

Identificador de chave e dados de chave pública encontrados

  • No depurador, o nome da organização e o nome comum da chave pública da NSA apareciam assim
    • O=MiniTruth CN=Big Brother
  • MiniTruth e Big Brother remetem a expressões do romance 1984, de George Orwell
    • O Ministry of Truth é, no livro, o órgão responsável por propaganda e supressão da verdade
    • Big Brother aparece como o líder maligno desse governo
  • Os dados da chave pública foram organizados com base em anotações alguns anos após a engenharia reversa, portanto há possibilidade de erro
  • O módulo raw da chave pública foi obtido no depurador e, após tentativa e erro, concluiu-se que estava em formato little endian
    • Na representação big endian, e = 3
    • O módulo tinha 760 bits
  • A chave pública também é apresentada em formato de chave PGP
    • pub 760/13629D8D 1998/10/25 Director, NSA <dirnsa@nsa.gov>
    • Esse user ID foi criado arbitrariamente e não é uma chave com autoassinatura
  • A saída de pgpacket confirma que se trata de um pacote de chave pública RSA
    • Version Byte: 3
    • Key Created: 25 Oct 1998 01:12:02
    • Algorithm: 1 (RSA)
    • Key ID: 0xA703EFD313629D8D

1 comentários

 
GN⁺ 2023-09-19
Comentários do Hacker News
  • Sobre esse assunto, vale a pena ler o comentário de Ray Ozzie (criador do Lotus Notes) na discussão do HN de 2013
    https://news.ycombinator.com/item?id=5846189
    Antes de o software ser lançado, Ray Ozzie e Kauffman explicaram publicamente o que estavam fazendo na conferência RSA. Não era um backdoor secreto, mas sim conformidade com controles de exportação, algo com que todo o setor precisava lidar. Também vale a pena ler o comentário de barrkel alguns comentários abaixo

    • Para pessoas com menos de, digamos, 37 anos, vale lembrar que, antes de 2000, a criptografia — especialmente a criptografia em produtos comerciais lançados no mercado — estava sob regulamentação governamental bem diferente da atual
      https://en.m.wikipedia.org/wiki/Crypto_Wars
      Em resumo, o governo dos EUA basicamente proibia lançar produtos distribuídos internacionalmente com criptografia forte. Isso valia para praticamente todos os produtos comerciais, mesmo já existindo implementações open source de criptografia forte como o PGP. Hoje ninguém liga se você distribuir algo com criptografia tão segura quanto quiser, mas naquela época havia uma chance razoável de o governo dos EUA usar todo o seu aparato jurídico. Foi um período absurdamente contraditório
    • Há um vídeo de um ex-desenvolvedor da Microsoft analisando bem a NSAkey
      https://www.youtube.com/watch?v=vjkBAl84PJs
    • Foi uma época interessante. Já conversei rapidamente com a pessoa cujo nome esqueci que implementou o crc32 e o algoritmo de criptografia do ZIP, e ele disse, quase se desculpando, que aquela criptografia foi projetada para ser exportável conforme as leis da época
      Ainda assim, quebrá-la não é totalmente trivial, mas no tempo em que se tenta uma única senha em um documento moderno do Office, dá para testar milhões de senhas em uma entrada de arquivo ZIP
    • Secreto ou não, era um backdoor que podia ser explorado e de fato foi explorado. É estranho viver numa época em que governos exigem “backdoors secretos” de empresas de tecnologia e ainda assim não enxergam o risco enorme
    • Isso não era secreto de forma alguma. Trabalhei na Lotus em meados dos anos 90, e havia duas versões do Lotus Notes: uma para os EUA e outra rotulada como “International”
  • (2002)
    Discussões anteriores com Lotus Notes no título:
    4 anos atrás
    https://news.ycombinator.com/item?id=21859581
    8 anos atrás
    https://news.ycombinator.com/item?id=9291404
    10 anos atrás
    https://news.ycombinator.com/item?id=5846189

  • O velho e bom NOBUS. Outros erros mais divertidos da NSA:
    https://en.wikipedia.org/wiki/Clipper_chip
    https://en.wikipedia.org/wiki/Dual_EC_DRBG

    • Isso e o Clipper Chip não são NOBUS. A NSA não quer que as pessoas saibam que há recursos de acesso para autoridades policiais nos sistemas criptográficos
      O FBI não se importa tanto que as pessoas saibam, porque os criminosos que eles miram não fazem OPSEC direito
  • É surpreendente que o pessoal da NSA tivesse autoconsciência suficiente para perceber que isso era uma atitude de Big Brother, mas não para entender por que isso era ruim

    • Acho que isso provavelmente foi sarcasmo do engenheiro da Lotus que colocou aquilo lá
    • “Big Brother” em si não é chocante. Era algo conhecido havia algum tempo, então ainda dava para acreditar um pouquinho que talvez houvesse boas intenções — tipo nos proteger de pessoas más
      Mas MiniTruth... nossa, isso realmente surpreende
      No contexto do romance 1984, o Ministry of Truth é uma instituição dedicada à propaganda, e toda a sociedade está imersa nessa propaganda. Tudo na sociedade em que vivem é mentira. Isso destrói a última esperança de que eles pudessem ter boas intenções. O último exemplo que me vem à cabeça de quão cinicamente eles desprezam as pessoas que dizem servir, e de quão descuidados são, foi quando se revelou que o nome de um chat interno da FTX era “Wirefraud”
  • O backdoor original não estava em exemplos de código que a NSA fornecia a empresas que queriam usar criptografia? Pelo que lembro, eles davam algo como uma seed de exemplo, e a maioria das empresas simplesmente copiava e colava aquilo em vez de gerar seus próprios primos, permitindo que a NSA quebrasse tudo com muita facilidade
    Minha memória está vaga e está difícil encontrar a fonte original

  • Fico curioso para saber quão difícil seria encontrar a chave privada por força bruta a partir da chave pública RSA de 760 bits de 1998. Alguém sabe?

    • https://en.wikipedia.org/wiki/Integer_factorization_records e https://en.wikipedia.org/wiki/RSA_numbers dão algumas pistas. Em especial, o segundo explica que uma chave de 768 bits foi fatorada “em 12 de dezembro de 2009, ao longo de 2 anos”, e que o tempo de CPU foi “aproximadamente equivalente a quase 2000 anos de computação em um computador baseado em AMD Opteron de 2,2 GHz de núcleo único”
      Depois, em 2019, uma chave de 795 bits foi fatorada, e dizem que o tempo de CPU foi “cerca de 900 core-years em uma CPU Intel Xeon Gold 6130 de 2,1 GHz”. Em comparação com a fatoração do RSA-768, os autores estimam que algoritmos melhores aceleraram o cálculo em 3 a 4 vezes, e computadores mais rápidos em 1,25 a 1,67 vez
      Portanto, assumindo que os algoritmos aprimorados também se aplicam a números menores, alguém que saiba lidar com isso provavelmente conseguiria em poucos meses com algumas dezenas de máquinas modernas. Embora fatorar números grandes pareça bem mais difícil do que simplesmente rodar CADO-NFS e apontar para o número e o cluster
      Por exemplo, usando o valor do segundo artigo de fatoração que diz que “o cálculo de 795 bits deveria ser 2,25 vezes mais difícil que o de 768 bits”, pode-se estimar que quebrar a chave menor com software moderno exigiria 900/2,25 = 400 core-years de CPU em termos de Xeon. Essa CPU também já é um modelo de 6 anos. Com 24 servidores de 64 núcleos de desempenho equivalente, levaria um pouco mais de 3 meses. É pesado para fazer por hobby, só por diversão, mas uma empresa com um interesse financeiro razoável conseguiria perfeitamente, desde que tivesse pessoal capaz de entender e reproduzir o trabalho
    • Alguém já tentou fatorá-la em 2018: http://factordb.com/index.php?query=444376527415060195687748...
    • Sempre depende dos recursos disponíveis, ou seja, recursos computacionais e tempo. É possível, mas não é fácil
      https://crypto.stackexchange.com/a/1982
    • Que pergunta estranhamente específica. Tem algo em especial te incomodando?
  • Agora que existe a nuvem, nada disso é mais necessário. Por causa das leis sobre dados armazenados, qualquer e-mail com mais de 6 meses pode ser mexido livremente

    • Pesquisei, mas não encontrei nenhum resultado claro sobre qual lei obrigaria empresas como o Google a fornecer acesso a dados armazenados a agências governamentais sem mandado ou NSL
  • Relacionado: https://github.com/goshacmd/nsa_panel