Crypto design và implementation review
Primitive selection
- Security goal và attacker capability được viết rõ.
- Encoding/hash/MAC/password KDF/encryption/signature không bị dùng lẫn.
- AEAD được ưu tiên; không ECB, textbook RSA hoặc custom construction.
- Algorithm/provider/version và interoperability test vector được ghi.
Parameters
- Key size, nonce rule, tag size, salt và KDF cost theo official guidance.
- CSPRNG dùng cho key/token/nonce/salt phù hợp.
- AAD/canonicalization/context chống substitution và replay.
- Failure không trả oracle chi tiết hoặc dùng unauthenticated plaintext.
Key lifecycle
- Key không nằm trong source, image, log hoặc plaintext config không kiểm soát.
- KMS/HSM/secret manager, least privilege và audit owner rõ.
- Envelope có version/key ID; rotation hỗ trợ dual-read/new-write và rollback.
- Backup/recovery của key khớp RPO/RTO dữ liệu.
Password và identity
- Password dùng Argon2id/scrypt/bcrypt/PBKDF2, random salt và cost benchmark.
- Rate limit, MFA, breach/reset và rehash migration được bao phủ.
- Signature/certificate validation không bị nhầm với authorization.
Evidence
- Tamper, wrong key, wrong AAD, expired token và rotation failure đều có test.
- Không log plaintext, key, password hoặc full token trong evidence.
- 28 câu hỏi trả lời được và 8 lab có assertion/limitations rõ.