====== Crypto Modul Kontrolna Lista ====== **Verzija:** 2.1\\ **Opseg:** Kriptografski primitivi, protokoli, materijal ključeva i dizajn Crypto API-ja. ===== MORA (Merge Gate) ===== * [ ] **Threat Model** je dokumentiran (Assets, Sposobnosti napadača, Trust Boundaries, Failure Modes) * [ ] **Odabir algoritma** je eksplicitan i obrazložen (nema "home-grown crypto"; izbjegavati zastarjele primitive) * [ ] **Rukovanje materijalom ključeva**: Ključevi/Seed materijal se nikada ne logiraju, nikada nenamjerno ne pohranjuju, čuvaju se u sigurnim kontejnerima * [ ] **Slučajnost**: Kriptografska slučajnost dolazi iz odobrenog CSPRNG; nema ad-hoc RNG; nema time-based Seeds * [ ] **Nonce/IV pravila** se by Design provode (jedinstveni gdje je potrebno; nikada se ne ponavljaju; preferira se interno generiranje) * [ ] **Constant-time usporedbe** za MAC-ove, hasheve i secret-dependent provjere jednakosti * [ ] **Side-channel Posture** je navedena (Timing/Cache/Power očekivanja) i relevantne operacije imaju mitigacije * [ ] **Validacija inputa** je striktna i odbija malformed kodiranja; provjere duljine prije alokacije * [ ] **Zeroization / Lifecycle**: Secret bufferi se nuliraju gdje je moguće; Key objekti imaju determinističke Disposal Patterns * [ ] **Ponašanje kod grešaka**: Crypto neuspjesi vraćaju non-revealing greške (nema oracle leakova); pozivatelji ne mogu razlikovati secret-dependent grane neuspjeha * [ ] **Verzioniranje & Agilnost**: Protocol/Blob formati su verzionirani; parametri su kodirani s ciphertextom/signaturom gdje je potrebno * [ ] **Interoperability Tests** postoje (Golden Vectors ili Cross-Implementation Tests) * [ ] **Negative Tests** postoje (Tamper, Replay, Truncation, Wrong Key, Wrong Nonce/IV, Wrong Context) ===== TREBALO BI (Snažne Preporuke) ===== * [ ] Preferiraj **AEAD** (npr. ChaCha20-Poly1305 / AES-GCM) umjesto "encrypt-then-MAC" osim ako postoji specifičan razlog * [ ] Koristi **Domain Separation** (Context Strings, KDF Labels) za izbjegavanje Key/Nonce Reuse preko konteksta * [ ] Za Signatures/KEM: uključi **Context Binding** (tko/što/zašto) za sprječavanje Substitution Attacks * [ ] Koristi **Structured Encoding** (CBOR/ASN.1/Protobuf) s Canonicalization Rules; izbjegavaj dvosmislenu konkatenaciju * [ ] Osiguraj **Replay Protection** gdje je prikladno (Sequence Numbers, Timestamps sa Skew Policy, Session Tickets) * [ ] Ne eksponirati pretjerano moćne primitive direktno; preferiraj **High-level API-je** koje je teško zloupotrijebiti * [ ] Osiguraj **FIPS/Standard Alignment** gdje je potrebno (Compliance Targets eksplicitno dokumentirati) ===== POŽELJNO (Kvaliteta) ===== * [ ] Benchmarkirati hot paths; dokumentirati Perf/Security trade-offs * [ ] Pružiti Migration Guidance za nadogradnje algoritama (staro -> novo) * [ ] Jasna "Misuse Resistance" sekcija u dokumentaciji (uobičajene zamke i kako ih API sprječava) ---- //Verzija: 2.1 (Split)//\\ //Autor: Wolfgang van der Stille// Natrag na [[.:start|Sigurnosne Kontrolne Liste]] | [[..:start|Kontrolne Liste za Pregled]] ~~DISCUSSION:off~~