Para provar sua identidade, a pessoa que se proclama o hacker da Comodo publicou a chave privada do certificado forjado. Verificada a chave e ela é válida, este post descreve como.
Note que a "Autoridade Certificadora" que assina a chave não conheçe a chave privada. Quando alguém faz uma requisição de um certificado ele somente envia um hash para a AC, então ninguém, nem mesmo a Comodo deveria saber a chave privada. Entretanto podemos perder a chave privada, por exemplo, outro hacker pode quebra-la, ou dar ela para um amigo, ou deixada aberto em uma maquina antiga que foi descartada.
A verificação é simples: nos precisamos encriptar com a chave pública, e então decriptar com a chave privada, e ver se tudo confere.
Passo 1: download do certificado público
Para pegar a chave pública foi efetuado o download do certificado forjado do endereço https://bugzilla.mozilla.org/attachment.cgi?id=519863. Este endereço é do sistema de bugs do Firefox. Eles lançaram uma atualização para fazer essas chaves inválidas. Baixado, o certificado, foi gravado com o seguinte nome: "addons.mozilla.org.cer".
Passo 2: download a chave privada do hacker
Para pegar a chave privada temos que ir nesse post http://pastebin.com/X8znzPWH, a chave foi copiada e colada em um arquivo com o nome de "private.pem".
Passo 3: extrair a chave pública
Um certificado contem um monte de informação, mas o que preciso é a chave pública, então foi usado o comando
openssl x509 -noout -inform DER -in addons.mozilla.org.cer -pubkey > public.pem
Foi usada a ferramenta OpenSSL. Esse comando extrai a chave publica e grava no arquivo public.pem
Passo 4: criação do arquivo de teste
Criado o arquivo chamado "verify.txt" e o conteudo dele é somente a palavra "verify".
echo "verify" >verify.txt
Passo 5: encriptar o arquivo de teste com a chave publica
openssl rsautl -encrypt -inkey public.pem -pubin -in verify.txt -out encrypted
Usando o OpenSSL eu peço para encriptar com o algoritmo RSA usando a chave publica que esta no arquivo e peço para gerar um arquivo chamado "encrypted".
Passo 6: decriptar o arquivo de teste com a chave privada
Lembre-se que quando voce criptografa algo com a pública somente poderá ser decriptada com a privada correspondente.
openssl rsautl -decrypt -inkey private.pem -in encrypted -out decrypted.txt
O comando acima falo para usar o RSA novamente e mando gravar um arquivo com o nome "decrypted.txt".
Passo 7: verificar se os arquivos de teste são iguais
Carregando um dump do arquivo "decrypted.txt" e vemos que o conteúdo dele é a palavra "verify" – confere.
Abaixo tem um snapshot das VMs com todos os comandos que foram usados.
Lembrando que não fui eu que fiz esses passos, somente verifiquei ele na minha máquina e funciona realmente. Este procedimento foi feito por Robert Graham.
Incoming search terms:
- chave do comodo
- extrair chave privada openssl
- arquivos decrypted para txt
- openssl criptografar arquivo
- extrair chave publica open ssl
- extrair chave privada certificado jailbreak
- extrair certificado openssl
- decriptar rsa
- comodo chaves
- comodo chave