
Script em Python para verificar a implementação de Certificate Transparency (SCT) em domínios, verificando SCTs incorporados, de extensão TLS e agrafados (stapled) via OCSP, validando assinaturas de log.
Este é um script Python rápido e sujo para verificar se um domínio implementa corretamente o Certificate Transparency. Se sim, é possível observar como o Certificate Transparency é implementado no lado do servidor. Quando um servidor implementa Certificate Transparency, ele deve oferecer pelo menos um SCT (uma prova de inclusão do certificado TLS do servidor em um Log de Transparência). Um SCT pode ser oferecido de três maneiras diferentes: embutido no certificado, como uma extensão TLS e via OCSP Stapling. Usando o PySCTChecker é possível identificar as opções de entrega que o servidor utiliza e os logs para os quais o certificado foi enviado. Além disso, é possível verificar se os SCTs oferecidos são válidos e assinados legitimamente pelos logs.
Uso:
python PySCTChecker/ct_domains_sct_checker.py [domain1 domain2 ...]
Exemplo de saída:
user@ubuntu:~/Desktop/PySCTChecker$ python ct_domains_sct_checker.py elevenpaths.com
** Conectando ao host: elevenpaths.com... **
** Procurando SCT embutido no certificado **
** Procurando SCTs em extensões TLS **
Nenhum sct encontrado no TLS
** Procurando SCTs na resposta OCSP **
Endereço OCSP não encontrado Nenhum sct encontrado na resposta OCSP
** Logs detectados nos SCTs **
Symantec log (precert) └─ Assinatura verificada: True
Google 'Pilot' log (precert) └─ Assinatura verificada: True
Google 'Rocketeer' log (precert) └─ Assinatura verificada: True
Dependências:
Para executar o PySCTChecker, o OpenSSL é necessário.
Para instalar as dependências dos módulos Python, execute:
sudo pip install -r PySCTChecker/requirements.txt