tls-auditor
Auditor de configuração TLS/SSL: detecta protocolos/cifras fracas e certificados expirados.
10 testes · 10 passou · 0 falhou · 0 skip
- test_classify_protocol_weak0.00s
- test_classify_protocol_ok0.00s
- test_is_weak_cipher_detects_markers0.00s
- test_is_weak_cipher_safe0.00s
- test_split_weak_ciphers_separates0.00s
- test_is_cert_expired_future0.00s
- test_is_cert_expired_past0.00s
- test_is_cert_expired_string0.00s
- test_check_cert_expiry_ok0.01s
- test_check_cert_expiry_falha_rede0.01s
Entrypoints (CLI)
tls-auditor
Módulos e funções principais
src/tls_auditor/auditor.py
classify_protocol()— Classifica uma string de versão de protocolo como fraca ou ok.is_weak_cipher()— Detecta se um cipher é considerado fraco pelos marcadores conhecidos.split_weak_ciphers()— Recebe uma lista de nomes de ciphers e separa fracos de seguros.check_cert_expiry()— Conecta e inspeciona o certificado TLS (expiração). Offline-friendly.
src/tls_auditor/cli.py
build_parser()main()
src/tls_auditor/scanner.py
is_cert_expired()— Recebe a data de expiração do certificado e diz se já venceu.scan_host()— Conecta a host:porta, coleta protocolo, ciphers e validade do cert.build_report()— Monta o dicionário de resultado da varredura de forma testável.
Estrutura de arquivos
- LICENSE
- README.md
- pyproject.toml
- src/tls_auditor.egg-info/PKG-INFO
- src/tls_auditor.egg-info/SOURCES.txt
- src/tls_auditor.egg-info/dependency_links.txt
- src/tls_auditor.egg-info/entry_points.txt
- src/tls_auditor.egg-info/top_level.txt
- src/tls_auditor/__init__.py
- src/tls_auditor/auditor.py
- src/tls_auditor/cli.py
- src/tls_auditor/scanner.py
- tests/test_auditor.py
README
# tls-auditor
Auditor defensivo de configuração **TLS/SSL**. Dado um `host:porta`, abre uma
conexão SSL e lista protocolos/versões suportadas, cifras (ciphers) e aponta
configurações fracas.
## Aviso ético
Esta ferramenta é **educacional e defensiva**. Use-a apenas em sistemas de sua
propriedade ou nos quais tenha autorização explícita para realizar testes de
segurança. Varrer hosts de terceiros sem permissão pode violar leis e políticas
de uso. O autor não se responsabiliza por uso indevido.
## Instalação
```bash
pip install -e .
```
Requer Python 3.10+ (apenas biblioteca padrão).
## Uso
```bash
tls-auditor example.com
tls-auditor example.com --port 8443
```
A saída mostra o protocolo negociado, o cipher e o estado de validade do
certificado, sinalizando configurações inseguras.
## O que é detectado como fraco
- Protocolos: **SSLv3**, **TLS 1.0**, **TLS 1.1**
- Cifras: **NULL**, **RC4**, **3DES**, **EXPORT**, **DES-CBC**
- Certificado **expirado**
## Testes
```bash
pip install pytest
pytest tests/
```
## Licença
MIT — Copyright (c) 2026 Diogo Damasceno. Veja `LICENSE`.
Como rodar na prática (entrada → saída):
$ tls-auditor exemplo.com:443
TLS 1.2/1.3 ok\nCifra fraca: TLS_RSA_WITH_AES_128_CBC_SHA\nCert valido ate 2026-08-01