Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/amenti-labs/openentropy
Análise EstáticaCriptografiaSegurança de HardwarePapers e PesquisaAprendizado e Educação
GitHubamenti-labs/openentropy

openentropy

Coleta de entropia de código aberto a partir de fontes de hardware não convencionais. SDK em Rust + Python.

Ver Repositório
2822há 6 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
logotipo openentropy

openentropy

Meça e operacionalize entropia de hardware para pesquisa e segurança.

Crates.io PyPI docs.rs Docs License: MIT CI Platform

Colete entropia de fontes de hardware no dispositivo, analise a qualidade da fonte com testes estatísticos e forneça saída bruta ou condicionada através de interfaces CLI, Rust, Python e HTTP.

Um único fluxo de trabalho para pesquisa, validação e implantação criptográfica de entropia.

Por Amenti Labs


Início Rápido

root@kitploit:~
# Instalar
cargo install openentropy-cli

# Descobrir fontes de entropia na sua máquina
openentropy scan

# Benchmark de todas as fontes rápidas
openentropy bench

# Saída de 64 bytes hexadecimais aleatórios
openentropy stream --format hex --bytes 64

# Painel TUI ao vivo
openentropy monitor

Por padrão, apenas fontes rápidas (<2s) são usadas. Passe --all para incluir fontes mais lentas (DNS, TCP, GPU, BLE). O alias posicional all também é aceito para compatibilidade.

Hardware QRNG externo

A maioria das fontes do OpenEntropy vem da própria máquina hospedeira. O OpenEntropy também suporta dispositivos de hardware externos quando estão conectados e detectáveis:

  • Crypta Labs QCicada USB QRNG — exposto como fonte qcicada. O OpenEntropy pode ler a saída quântica do dispositivo e fazer benchmark, analisar, gravar ou compará-la juntamente com as fontes do hospedeiro. Os modos de saída do próprio dispositivo mapeiam para raw, sha256 e samples, e o OpenEntropy agora usa o helper de modo contínuo de início fresco do qcicada 0.2.2, que descarta a entrada já armazenada em buffer do dispositivo uma vez após entrar no modo contínuo, em vez de servir a primeira leitura a partir de bytes enfileirados obsoletos. Consulte o manual do QCicada.

Python

root@kitploit:~
pip install openentropy
root@kitploit:~
from openentropy import EntropyPool, detect_available_sources

sources = detect_available_sources()
print(f"{len(sources)} fontes de entropia disponíveis")

pool = EntropyPool.auto()
source = sources[0]["name"]
data = pool.get_source_bytes(source, 256, conditioning="sha256")

Compilar a partir do código fonte (extensão nativa):

root@kitploit:~
git clone https://github.com/amenti-labs/openentropy.git && cd openentropy
pip install maturin
maturin develop

Dois Públicos

Engenheiros de segurança usam o OpenEntropy para validar a qualidade da entropia e semear CSPRNGs:

root@kitploit:~
openentropy analyze --profile security --output audit.md

Pesquisadores usam o OpenEntropy para estudar características de ruído bruto:

root@kitploit:~
openentropy analyze --profile deep --output analysis.json

Engenheiros de segurança semeiam CSPRNGs, geram chaves e complementam /dev/urandom com entropia de hardware independente. A saída condicionada por SHA-256 (--conditioning sha256, o padrão) produz bytes aleatórios de qualidade criptográfica. O perfil security ativa a bateria de testes NIST, a análise de min-entropia e o condicionamento SHA-256 em um único parâmetro.

Pesquisadores estudam as características de ruído bruto de subsistemas de hardware. Passe --conditioning raw para obter bytes não branqueados e não condicionados que preservam o sinal de ruído real de cada fonte. O perfil deep ativa 100K amostras, correlação cruzada e análise de tentativas estilo PEAR.

O modo bruto permite:

  • Caracterização de hardware — meça min-entropia, autocorrelação e propriedades espectrais de fontes de ruído individuais
  • Validação de silício — compare perfis de ruído entre revisões de chip, estados térmicos e domínios de tensão
  • Detecção de anomalias — monitore a saúde da fonte de entropia para sinais de degradação de hardware ou adulteração
  • Análise entre domínios — estude correlações entre domínios de entropia independentes (térmico vs temporização vs IPC)

O Que Torna Isto Diferente

A maioria dos geradores de números aleatórios são pseudorrandômicos — algoritmos determinísticos semeados uma vez. O OpenEntropy coleta continuamente ruído físico real do seu hardware:

  • Ruído térmico — três batimentos de oscilador independentes (cristal da CPU vs PLL de áudio, PLL de display, PLLs PHY PCIe)
  • Temporização e microarquitetura — ruído de fase de clock, conflitos de buffer de linha DRAM, variação de execução especulativa, TLB shootdowns, corridas DVFS, contenção de barramento ICC, estado de prefetcher, temporização JIT APRR, cruzamento de domínio de clock ANE
  • E/S e IPC — latência de disco e NVMe (incluindo polling de sensor IOKit, dispositivo bruto e pass-through Linux), enumeração USB, IPC de porta Mach, alocação de buffer de pipe, eventos kqueue, journal fsync
  • GPU e computação — divergência de warp GPU, temporização entre domínios IOSurface, temporização de inferência Neural Engine
  • Escalonamento e sistema — deriva de nanosleep, filas de dispatch GCD, ciclo de vida de thread, migração P/E-core, coalescência de timer, contadores de kernel, snapshots de tabela de processos
  • Rede e sensores — temporização de resolução DNS, variação de handshake TCP, RSSI WiFi, RF ambiente BLE, ruído ADC de áudio
  • Hardware profundo — batimentos de domínio de clock duplo, SITVA, troca de contexto AES-XTS, broadcast SEV, seqlock COMMPAGE, termistor SMC, reseed TRNG getentropy

O pool combina fluxos independentes via XOR. Nenhuma falha de fonte única pode comprometer o pool.

Modos de Condicionamento

O condicionamento é opcional e configurável. Use --conditioning na CLI ou ?conditioning= na API HTTP:

ModoBandeiraDescrição
SHA-256 (padrão)--conditioning sha256Condicionamento SHA-256. Saída de qualidade criptográfica.
Von Neumann--conditioning vonneumannApenas desbiasedor — remove viés enquanto preserva mais da estrutura do sinal bruto.
Bruto--conditioning rawNenhum processamento. Bytes da fonte sem branqueamento — preserva o sinal de ruído real do hardware para pesquisa.

O modo bruto é o que torna o OpenEntropy útil para pesquisa. A maioria das APIs HWRNG executa pós-processamento DRBG que faz toda fonte parecer bytes aleatórios uniformes, destruindo as informações que os pesquisadores precisam. A saída bruta preserva a estrutura de ruído por fonte: viés, autocorrelação, características espectrais e correlações entre fontes. Consulte Condicionamento para detalhes.


Documentação

  • Site de documentação: https://amenti-labs.github.io/openentropy/
  • Pacote PyPI: https://pypi.org/project/openentropy/
DocumentoDescrição
Catálogo de FontesCatálogo de fontes com explicações físicas e notas de plataforma
Referência da CLIReferência completa de comandos e exemplos
CondicionamentoModos de condicionamento Bruto vs VonNeumann vs SHA-256
Metodologia de Análise de TentativasTentativas de 200 bits estilo PEAR, portão de calibração e referências
Modelo de TelemetriaModelo de contexto experimental telemetry_v1 e pontos de integração
Referência da API RustSuperfície da API Rust principal
ArquiteturaEstrutura de crates e decisões de design
SDK PythonLigações PyO3 e referência da API Python
ExemplosExemplos de código Rust e Python
Solução de ProblemasProblemas comuns e correções
SegurançaModelo de ameaça e divulgação responsável

Agradecimentos

O roteiro expandido de análise estatística e o inventário de métodos foram informados por:

  • vikingdude81/qrng-analysis-toolkit

Agradecemos o trabalho de código aberto que ajudou a moldar esta superfície comparativa de análise QRNG/PRNG.


Fontes de Entropia

O registro atual de fontes abrange 13 categorias baseadas em mecanismos; a disponibilidade real varia por plataforma:

CategoriaQuantidade
Térmica4
Temporização7
Escalonamento6
E/S6
IPC4
Microarquitetura16
GPU3
Rede3
Sistema6
Sinal3
Sensor4
Quântico1

Para descrições completas por fonte, disponibilidade por plataforma e notas físicas, consulte Catálogo de Fontes.

Hardware externo atualmente suportado:

  • qcicada — Crypta Labs QCicada USB QRNG (manual)

Referência da CLI

Para a referência completa de comandos e exemplos, consulte Referência da CLI.

Fluxos de trabalho mais usados:

root@kitploit:~
openentropy scan
openentropy bench
openentropy stream --format hex --bytes 64
openentropy analyze --profile security         # Bateria NIST + entropia + sha256
openentropy analyze --profile deep             # 100K + forense + cross-corr + tentativas
openentropy record clock_jitter --duration 30s
openentropy sessions sessions/<id> --profile deep
openentropy compare sessions/<id-a> sessions/<id-b> --profile deep

Em sessions, predefinições de perfil se aplicam apenas quando um caminho de sessão específico é fornecido. openentropy sessions sem caminho sempre permanece no modo de listagem.

As referências de metodologia de tentativas estilo PEAR (tentativas de 200 bits, Z terminal, composição de Stouffer ponderada, portão de calibração) estão documentadas em Metodologia de Análise de Tentativas.


API Rust

root@kitploit:~
[dependencies]
openentropy-core = "0.12"
root@kitploit:~
use openentropy_core::{ConditioningMode, EntropyPool, detect_available_sources};

let sources = detect_available_sources();
println!("{} fontes disponíveis", sources.len());

let pool = EntropyPool::auto();
let source = pool.source_names()[0].clone();
let bytes = pool
    .get_source_bytes(&source, 256, ConditioningMode::Sha256)
    .unwrap();
let health = pool.health_report();

Analise e compare dados de entropia programaticamente:

root@kitploit:~
use openentropy_core::{full_analysis, compare, trial_analysis};

let data = pool.get_source_raw_bytes(&source, 5000).unwrap();

// Análise estatística por fonte
let analysis = full_analysis(&source, &data);
println!("Entropia de Shannon: {:.4} bits/byte", analysis.shannon_entropy);

// Comparação diferencial de dois fluxos
let other = pool.get_source_raw_bytes(&source, 5000).unwrap();
let diff = compare("stream_a", &data, "stream_b", &other);

// Análise de tentativas estilo PEAR
let trials = trial_analysis(&data, &Default::default());
println!("Z terminal: {:.4}, p = {:.4}", trials.terminal_z, trials.terminal_p_value);

Análise de teoria do caos (distinguir aleatoriedade real de caos determinístico):

root@kitploit:~
use openentropy_core::chaos::chaos_analysis;

let result = chaos_analysis(&data);
println!("Hurst H={:.4}, Lyapunov λ={:.4}, D₂={:.4}",
    result.hurst.hurst_exponent,
    result.lyapunov.lyapunov_exponent,
    result.correlation_dimension.dimension);

Arquitetura

Workspace Cargo com 6 crates:

CrateDescrição
openentropy-coreBiblioteca principal — fontes, pool, condicionamento
openentropy-cliBinário CLI com painel TUI
openentropy-serverServidor HTTP de entropia Axum
openentropy-testsBateria de testes inspirada no NIST SP 800-22
openentropy-pythonLigações Python via PyO3/maturin
openentropy-wasmCrate de entropia para WebAssembly/navegador
root@kitploit:~
flowchart TD
    Sources[Fontes 63] --> Raw[amostras brutas]
    Raw --> Pool[Pool de Entropia XOR combinar]
    Pool --> Modes{Modo de condicionamento}
    Modes -->|padrão| Sha[sha256]
    Modes --> Vn[vonneumann]
    Modes -->|passagem| RawMode[bruto]
    Sha --> Output[Superfícies de saída]
    Vn --> Output
    RawMode --> Output
    Output --> Rust[API Rust]
    Output --> CLI[CLI e TUI]
    Output --> Http[Servidor HTTP]
    Output --> Pipe[Pipe nomeado]
    Output --> Py[SDK Python]

Suporte a Plataformas

PlataformaFontesNotas
MacBook (M-series)63/63Conjunto completo — WiFi, BLE, câmera, microfone
Mac Mini / Studio / Pro50–55Sem câmera embutida, microfone em alguns modelos
Intel Mac~20Algumas fontes de silício/microarquitetura são específicas do ARM
Linux12–15Fontes de temporização, rede, disco, processos + pass-through NVMe

A biblioteca detecta o hardware disponível em tempo de execução e ativa apenas as fontes funcionais.


Compilando a Partir do Código Fonte

Requer Rust 1.85+ e macOS ou Linux.

root@kitploit:~
git clone https://github.com/amenti-labs/openentropy.git
cd openentropy
cargo build --release --workspace --exclude openentropy-python
cargo test --workspace --exclude openentropy-python
cargo install --path crates/openentropy-cli

Pacote Python

root@kitploit:~
pip install maturin
maturin develop --release
python3 -c "from openentropy import EntropyPool; print(EntropyPool.auto().get_random_bytes(16).hex())"

Contribuindo

Consulte CONTRIBUTING.md. Ideias:

  • Novas fontes de entropia (especialmente para Linux)
  • Melhorias de desempenho
  • Implementações adicionais de testes NIST
  • Suporte para plataforma Windows

Referências

  • NIST SP 800-22: A Statistical Test Suite for Random and Pseudorandom Number Generators
  • Bone, A. (2026): QRNG Analysis Toolkit — métodos de análise de teoria do caos (expoente de Hurst, expoente de Lyapunov, dimensão de correlação, BiEntropy, Epiplexity) foram reimplementados em Rust a partir de definições matemáticas, inspirados neste toolkit Python
  • Croll, G.J. (2013): BiEntropy — The Approximate Entropy of a Finite Binary String
  • Hurst, H.E. (1951): Long-term storage capacity of reservoirs
  • Rosenstein, M.T., Collins, J.J. & De Luca, C.J. (1993): A practical method for calculating largest Lyapunov exponents from small data sets
  • Grassberger, P. & Procaccia, I. (1983): Measuring the strangeness of strange attractors
  • Shannon, C.E. (1948): A Mathematical Theory of Communication

Licença

MIT — Copyright © 2026 Amenti Labs

Baixar ferramenta