Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
rust_citadel — Libreria di crittografia ibrida post-quantistica che combina X25519 + ML-KEM-768 con AES-256-GCM | Kitploit
Strumenti/GitHubGitHub/mrcord77/rust_citadel
Autenticazione e AutorizzazioneStrumenti di Crittografia/DecrittografiaCrittografiaSicurezza CloudSicurezza delle API
GitHubmrcord77/rust_citadel

rust_citadel

Libreria di crittografia ibrida post-quantistica che combina X25519 + ML-KEM-768 con AES-256-GCM

Vedi Repository
244 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Citadel

Server di crittografia ibrida post-quantum e gestione delle chiavi.

Citadel combina X25519 + ML-KEM-768 per l'incapsulamento delle chiavi e AES-256-GCM per la crittografia dei dati, seguendo l'approccio ibrido del NIST per la transizione post-quantum. Le applicazioni crittografano e decrittografano i dati tramite un'API REST. Citadel gestisce le chiavi — generazione, rotazione, revoca, controllo degli accessi e registrazione audit.

Stato: Implementazione funzionante. Non sottoposta ad audit. Nessun dispiegamento in produzione. Vedi Sicurezza più sotto.


Cosa fa

root@kitploit:~
Your Application              Citadel                         Database
       |                         |                               |
       |-- POST /encrypt ------->|                               |
       |                         |-- hybrid KEM (X25519+ML-KEM)  |
       |                         |-- derive AES-256 key (HKDF)   |
       |                         |-- encrypt with AES-256-GCM    |
       |<-- encrypted blob ------|                               |
       |                                                         |
       |-- store blob ------------------------------------------>|

La tua applicazione non tocca mai il materiale chiave grezzo. Il blob crittografato è auto-contenuto — include la chiave avvolta, gli identificatori dell'algoritmo e il ciphertext. Puoi conservarlo in qualsiasi database. Per decrittografare, invialo indietro a Citadel con lo stesso AAD e contesto.

Architettura

root@kitploit:~
citadel-envelope    Nucleo di crittografia ibrida (X25519 + ML-KEM-768 + AES-256-GCM)
citadel-keystore    Gestione del ciclo di vita delle chiavi, gerarchia a 4 livelli, politiche adattive alle minacce
citadel-api         Server HTTP, autenticazione tramite chiave API con ambiti, limitazione di velocità, dashboard in tempo reale

Avvio rapido

Docker (consigliato)

root@kitploit:~
# Clona
git clone https://github.com/mrcord77/rust_citadel.git
cd rust_citadel

# Imposta la tua chiave API admin
echo -n "your-secret-key" | sha256sum | cut -d' ' -f1
# Copia l'hash

# Avvia
CITADEL_API_KEY_HASH=<incolla-hash> docker compose up -d

# Verifica
curl http://localhost:3000/health
# {"status":"ok","version":"0.2.0"}

Dashboard: http://localhost:3000

Da sorgente

Richiede Rust 1.75+.

root@kitploit:~
cargo build --release -p citadel-api
CITADEL_API_KEY="your-secret-key" CITADEL_SEED_DEMO=true ./target/release/citadel-api

Utilizzo

Python

root@kitploit:~
import requests

api = "http://localhost:3000"
headers = {"Authorization": "Bearer your-secret-key"}

# Crittografa
r = requests.post(f"{api}/api/keys/{dek_id}/encrypt", headers=headers, json={
    "plaintext": "sensitive data",
    "aad": "record-001",        # lega il ciphertext a questo record
    "context": "patient-records" # separazione di dominio
})
blob = r.json()

# Decrittografa
r = requests.post(f"{api}/api/decrypt", headers=headers, json={
    "blob": blob,
    "aad": "record-001",
    "context": "patient-records"
})
plaintext = r.json()["plaintext"]

Vedi citadel_example.py per un esempio funzionante completo con binding AAD, rotazione delle chiavi e comportamento dell'applicazione sensibile alle minacce.

curl

root@kitploit:~
# Stato
curl http://localhost:3000/api/status -H "Authorization: Bearer $KEY"

# Elenca chiavi
curl http://localhost:3000/api/keys -H "Authorization: Bearer $KEY"

# Crittografa
curl -X POST http://localhost:3000/api/keys/$DEK_ID/encrypt \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"plaintext":"hello","aad":"test","context":"demo"}'

Endpoint API

Gerarchia delle chiavi

root@kitploit:~
Root Key
  └── Domain Key (per ambiente / business unit)
        └── KEK — Key Encrypting Key (avvolge DEK)
              └── DEK — Data Encrypting Key (crittografa i dati dell'applicazione)

Segue NIST SP 800-57. Ogni livello contiene il raggio di esplosione di una compromissione — una DEK divulgata non espone altre DEK perché la KEK è separata.

Ambiti delle chiavi API

AmbitoPermessi
readVisualizza chiavi, stato, metriche, livello di minaccia
encryptCrittografa e decrittografa dati

admin implica tutti gli altri ambiti. Principio del minimo privilegio: assegna dashboard di monitoraggio a read, servizi applicativi a read + encrypt, strumenti di amministrazione a admin.

Sistema di minaccia adattivo

Citadel monitora gli eventi di sicurezza e regola automaticamente le politiche chiave:

Eventi che aumentano il livello di minaccia: autenticazione fallita, fallimenti di decrittografia, modelli di accesso rapidi, escalation manuale. Il punteggio decade nel tempo.

Crittografia

Costruzione ibrida: entrambi i segreti condivisi vengono concatenati e alimentati tramite HKDF. La sicurezza è garantita se uno qualsiasi tra X25519 o ML-KEM-768 rimane sicuro.

Formato wire

root@kitploit:~
version[1] || suite_kem[1] || suite_aead[1] || flags[1] || kem_ct_len[2] ||
x25519_ephemeral_pk[32] || mlkem768_ct[1088] || nonce[12] || aead_ct[variable]

Auto-descrittivo, versionato, senza negoziazione (previene attacchi di downgrade). Vedi SPEC.md per la specifica completa.

Proprietà di sicurezza

  • Confronto a tempo costante — Verifica della chiave API tramite il crate subtle previene attacchi di temporizzazione
  • Zeroizzazione — Tutti i segreti condivisi e le chiavi AES sono avvolti in Zeroizing<T>, azzerati al rilascio
  • Errori uniformi — I fallimenti di decrittografia restituiscono messaggi di errore identici (nessun oracolo di decrittografia)
  • Registro audit con catena di integrità — Catena di hash SHA-256 rileva manomissioni del log
  • Limitazione di velocità — Token bucket per IP con escalation della minaccia in caso di violazioni

Sicurezza

Citadel è software non sottoposto ad audit.

L'implementazione utilizza primitive standardizzate dal NIST tramite crate Rust consolidate (ml-kem, x25519-dalek, aes-gcm, hkdf). Non implementa alcun algoritmo crittografico. Il valore sta nella composizione corretta, non in matematica nuova.

Cosa è stato fatto:

  • Suite di test completa inclusi test a risposta nota (KAT)
  • Test fuzz del parser del formato wire e dell'intero percorso di decrittografia
  • Analisi della temporizzazione delle operazioni di crittografia/decrittografia
  • Gestione uniforme degli errori per prevenire oracoli di decrittografia

Cosa NON è stato fatto:

  • Audit di sicurezza indipendente
  • Verifica formale
  • Validazione FIPS
  • Dispiegamento in produzione

Non utilizzare per dati sensibili senza una revisione indipendente. Vedi SECURITY.md per la segnalazione di vulnerabilità.

Conformità

Mappatura su 34 controlli NIST SP 800-57: 26 soddisfatti, 7 parziali, 1 lacuna. Vedi COMPLIANCE_MATRIX.md per la mappatura completa.

Framework rilevanti: NIST SP 800-57 (gestione chiavi), CNSA 2.0 (tempistica PQC), HIPAA (crittografia a riposo), SOC 2 (controlli di accesso e audit).

Struttura del progetto

root@kitploit:~
rust_citadel/
├── citadel-envelope/        # Libreria core di crittografia ibrida
│   ├── src/
│   │   ├── envelope.rs      # Operazioni di crittografia/decrittografia
│   │   ├── kem.rs           # KEM ibrido X25519 + ML-KEM-768
│   │   ├── kdf.rs           # Derivazione chiave HKDF-SHA256
│   │   ├── wire.rs          # Codifica/decodifica formato wire
│   │   ├── aead.rs          # Wrapper AES-256-GCM
│   │   ├── aad.rs           # Dati autenticati aggiuntivi
│   │   ├── error.rs         # Tipi di errore uniformi
│   │   └── sdk.rs           # API di alto livello
│   ├── tests/               # Test KAT + roundtrip
│   └── fuzz/                # Target fuzz
├── citadel-keystore/        # Gestione del ciclo di vita delle chiavi
│   └── src/
│       ├── keystore.rs      # CRUD chiavi + macchina a stati
│       ├── policy.rs        # Politiche dei periodi crittografici
│       ├── threat.rs        # Intelligence sulle minacce adattiva
│       ├── storage.rs       # Archiviazione chiavi su file
│       ├── audit.rs         # Registro audit con catena di integrità
│       └── types.rs         # Tipi e stati delle chiavi
├── citadel-api/             # Server HTTP
│   └── src/
│       ├── main.rs          # Route API, autenticazione, limitazione velocità
│       └── dashboard.html   # Dashboard di sicurezza in tempo reale
├── citadel_example.py       # Esempio di integrazione Python
├── Backup-Citadel.ps1       # Strumenti di backup/ripristino
├── docker-compose.yml       # Dispiegamento di sviluppo
├── docker-compose-production.yml  # Produzione con TLS
├── SPEC.md                  # Specifica del formato wire
├── THREAT_MODEL.md          # Obiettivi di sicurezza e modello dell'attaccante
├── COMPLIANCE_MATRIX.md     # Mappatura controlli NIST 800-57
└── CITADEL_OVERVIEW.md      # Panoramica commerciale

Documentazione

Licenza

Questo progetto è concesso in licenza duale:

  • GNU Affero General Public License v3 (AGPL) — per uso open source
  • Licenza commerciale — per uso proprietario o commerciale

Se utilizzi questo software in un ambiente commerciale o non desideri rispettare i termini AGPL, devi ottenere una licenza commerciale.

Vedi COMMERCIAL_LICENSE.md per i termini commerciali.

Il testo completo dell'AGPL è fornito in AGPL-3.0.txt e COPYING.

Contatto: [email protected]

Autore

Andre Cordero — [email protected]

Scarica lo strumento
EndpointMetodoAmbitoDescrizione
/healthGET—Controllo di integrità
/api/statusGETreadLivello di minaccia, conteggio chiavi
/api/metricsGETreadMetriche di sicurezza
/api/keysGETreadElenca tutte le chiavi
/api/keysPOSTmanageGenera nuova chiave
/api/keys/:idGETreadOttieni dettagli chiave
/api/keys/:id/activatePOSTmanageAttiva una chiave in sospeso
/api/keys/:id/rotatePOSTmanageRuota chiave (nuova versione)
/api/keys/:id/revokePOSTmanageRevoca permanentemente chiave
/api/keys/:id/destroyPOSTmanageDistruggi materiale chiave
/api/keys/:id/encryptPOSTencryptCrittografa dati
/api/decryptPOSTencryptDecrittografa dati
/api/threatGETreadDettagli intelligence sulle minacce
/api/policiesGETreadPolitiche chiave attive
/api/auth/whoamiGETreadInfo chiave API corrente
/api/auth/keysGETadminElenca chiavi API
/api/auth/keysPOSTadminCrea chiave API
/api/auth/keys/:idDELETEadminRevoca chiave API
manageCrea, ruota, revoca, distruggi chiavi
adminTutto quanto sopra + gestisci chiavi API
LivelloAttivazioneRisposta
BASSOOperazioni normaliPeriodi crittografici standard
GUARDATOAnomalie minoriRotazione leggermente più stretta
ELEVATOModelli sospettiProgrammi di rotazione compressi
ALTOIndicatori di minaccia attiviRotazione forzata, limiti di utilizzo ridotti
CRITICOSotto attaccoRestrizioni massime
ComponenteAlgoritmoStandard
Incapsulamento chiave (classico)X25519 ECDHRFC 7748
Incapsulamento chiave (post-quantum)ML-KEM-768FIPS 203
Crittografia datiAES-256-GCMNIST SP 800-38D
Derivazione chiaveHKDF-SHA256NIST SP 800-56C
DocumentoPubblico
SPEC.mdSpecifica del formato wire
THREAT_MODEL.mdObiettivi di sicurezza e presupposti
COMPLIANCE_MATRIX.mdMappatura conformità NIST 800-57
CITADEL_OVERVIEW.mdPosizionamento commerciale
SECURITY.mdSegnalazione vulnerabilità
API_FREEZE.mdGaranzie di stabilità API
DEPLOYMENT.mdGuida al dispiegamento in produzione
QUICKSTART.mdPer iniziare