
Pesquisador fatora chaves RSA de certificados do Netscape de 1999
O pesquisador Matthew McPherrin relata ter fatorado as chaves RSA de autoridades certificadoras de 512 bits que a Netscape distribuiu com o Netscape 4.51 em março de 1999. As duas raízes pertenciam à extinta autoridade certificadora canadense E-Certify e eram confiadas para SSL e S/MIME. O ponto de partida é uma reflexão sobre a segurança do RSA: o esquema depende da dificuldade de fatorar um semiprimo grande, mas o que é "grande" é uma questão interessante. A Web PKI depreciou RSA de 1024 bits há mais de uma década; o autor não conhece quem tenha fatorado uma chave desse tamanho, embora isso esteja no campo da possibilidade para um governo ou organização com muitos computadores. Dias antes, alguém fatorou a chave RSA-260, de 862 bits, a maior fatoração que ele conhece. Hoje se usa pelo menos 2048 bits, mas esse tamanho também deve ser depreciado no futuro por risco de computadores quânticos.
A partir daí, ele se pergunta se chaves RSA pequenas poderiam ser fatoradas até em um computador desktop modesto. Nos primeiros tempos da Web PKI não havia padrões nem requisitos mínimos. A Netscape passou a oferecer suporte a SSL em 1994, e o Internet Explorer veio logo depois. Era ainda a era de restrições de exportação de criptografia. Para encontrar uma chave vulnerável, ele baixou arquivos de certificados raiz distribuídos com instalações do Internet Explorer e do Netscape hospedados no archive.org. Usou o Claude Code para extrair todas as raízes e publicou uma página gerada por Claude com esses certificados antigos. Ele ressalva que não verificou se a saída do modelo de linguagem é totalmente confiável, mas ela parece plausível.
Os alvos
Com os filtros da página, ele encontrou um alvo: em março de 1999, o Netscape 4.51 distribuiu uma autoridade certificadora RSA de 512 bits confiada para SSL e outra para S/MIME, ambas da E-Certify. Mais tarde naquele ano, a RSA-155, de 512 bits, foi fatorada; portanto, mesmo na época essas chaves eram fracas demais e provavelmente não deveriam ter sido distribuídas. A Netscape removeu as raízes de 512 bits da E-Certify em 2002. O Internet Explorer aparentemente nunca distribuiu raízes de 512 bits para SSL, então o escopo ficou limitado ao Netscape e a um período relativamente curto.
Como bônus, o Internet Explorer 3.02 distribuiu uma autoridade de assinatura de código de 512 bits chamada Test VeriSign Commercial Software Publisher CA. O autor não sabe para que ela servia, mas ela é igualmente fácil de fatorar. Há outras chaves RSA de 512 bits com aparência de teste no repositório "ancient roots", e ele sugere que outras pessoas tentem fatorá-las ou descobrir para que poderiam ser usadas.
Fatoração e uso
Fatorar a chave pública do certificado fornece os dois primos necessários para reconstruir a chave privada. Ele rodou o CADO-NFS em um desktop com Ryzen 9 5950X; a fatoração da E-Certify RSA 512 Gold Server, para SSL, levou 32 horas, e a da E-Certify RSA 512 Gold Client, para S/MIME, levou outras 29 horas. As chaves privadas resultantes estão no texto.
Usar essas chaves exigiria, em tese, um Netscape 4.51 rodando com o relógio ajustado para antes de 16 de outubro de 2003, quando as raízes da E-Certify expiravam. Segundo o autor, isso descreve zero pessoas no planeta, exceto uma máquina virtual que ele montou. Verificar se os certificados emitidos funcionariam no Netscape 4.51 foi uma aventura à parte, porque não há sobreposição de capacidades TLS entre o Netscape 4.51 e qualquer pilha moderna. Ele voltou ao Claude Code para criar um servidor TLS antigo em Go. O site está publicado em e-certify.fly.dev, que pode ser testado com uma cópia própria do Netscape, mas não carrega em navegadores modernos. As chaves e ferramentas estão em um repositório público. Ele observa que seria possível fazer algo pior, como interceptar o SSL de todos os usuários do Netscape 4.51 com relógios ajustados para 25 anos atrás. Steve Weis fatorou uma das chaves de teste em cerca de uma hora usando um cluster de GPUs, e o SSL Labs avalia bem o site de teste.