Inhaltsverzeichnis
Checklist Modulo Crypto
Versione: 2.1
Ambito: Primitive crittografiche, protocolli, materiale chiavi e design API Crypto.
DEVE (Merge Gate)
- [ ] Threat Model documentato (Asset, capacità attaccante, confini fiducia, modalità fallimento)
- [ ] Selezione algoritmo esplicita e giustificata (niente „crypto fatto in casa“; evitare primitive obsolete)
- [ ] Gestione materiale chiavi: Chiavi/materiale seed mai registrati, mai persistiti involontariamente, conservati in container sicuri
- [ ] Casualità: Casualità crittografica da CSPRNG approvato; niente RNG ad-hoc; niente seed basati sul tempo
- [ ] Regole Nonce/IV applicate by design (unici dove richiesto; mai riutilizzati; preferibilmente generati internamente)
- [ ] Confronti Constant-time per MAC, hash e controlli uguaglianza dipendenti da segreti
- [ ] Postura Side-channel specificata (aspettative Timing/Cache/Power) e operazioni rilevanti hanno mitigazioni
- [ ] Validazione Input rigorosa e rifiuta codifiche malformate; controlli lunghezza prima dell'allocazione
- [ ] Zeroization / Lifecycle: Buffer segreti azzerati dove possibile; oggetti chiave hanno pattern di disposal deterministici
- [ ] Comportamento Errori: Fallimenti crypto restituiscono errori non rivelatori (nessun leak oracolo); chiamanti non possono distinguere branch di fallimento dipendenti da segreti
- [ ] Versioning & Agilità: Formati Protocol/Blob sono versionati; parametri codificati con ciphertext/firma dove richiesto
- [ ] Test Interoperabilita esistono (Golden Vectors o test cross-implementazione)
- [ ] Test Negativi esistono (Tamper, Replay, Truncation, Wrong Key, Wrong Nonce/IV, Wrong Context)
DOVREBBE (Raccomandazioni Forti)
- [ ] Preferire AEAD (es. ChaCha20-Poly1305 / AES-GCM) su „encrypt-then-MAC“ salvo motivo specifico
- [ ] Usare Domain Separation (stringhe contesto, etichette KDF) per evitare riutilizzo Key/Nonce tra contesti
- [ ] Per Signatures/KEM: includere Context Binding (chi/cosa/perche) per prevenire attacchi di sostituzione
- [ ] Usare Codifica Strutturata (CBOR/ASN.1/Protobuf) con regole di canonicalizzazione; evitare concatenazione ambigua
- [ ] Assicurare Protezione Replay dove appropriato (numeri sequenza, timestamp con policy skew, ticket sessione)
- [ ] Non esporre direttamente primitive troppo potenti; preferire API alto livello difficili da abusare
- [ ] Assicurare Allineamento FIPS/Standard dove richiesto (documentare esplicitamente target conformità)
BUONO (Qualità)
- [ ] Benchmark hot path; documentare trade-off Perf/Security
- [ ] Fornire guida migrazione per upgrade algoritmi (vecchio → nuovo)
- [ ] Sezione chiara „Resistenza agli Abusi“ nei docs (insidie comuni e come l'API le previene)
Versione: 2.1 (Split)
Autore: Wolfgang van der Stille
Torna a Checklist Sicurezza | Checklist di Revisione
Zuletzt geändert: il 30/01/2026 alle 01:34