A chave de backdoor da NSA no Lotus Notes em 2002
(cypherspace.org)- 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 = 3e 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
MiniTrutheBig Brotherremetem 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
- Na representação big endian,
- 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
pgpacketconfirma 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
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
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
https://www.youtube.com/watch?v=vjkBAl84PJs
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
(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
NSA's Backdoor Key from Lotus Notes (2002) - https://news.ycombinator.com/item?id=21859581 - dezembro de 2019 (87 comentários)
NSA's Backdoor Key from Lotus Notes - https://news.ycombinator.com/item?id=9291404 - março de 2015 (51 comentários)
NSA's Backdoor Key from Lotus Notes - https://news.ycombinator.com/item?id=5846189 - junho de 2013 (85 comentários)
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
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
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?
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
https://crypto.stackexchange.com/a/1982
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
Relacionado: https://github.com/goshacmd/nsa_panel