a. Session Cookie Authentication + CSRF b. Password Authentication c. JWT Token Authentication CODE_BLOCK: a. Session Cookie Authentication + CSRF b. Password Authentication c. JWT Token Authentication CODE_BLOCK: ╔════════════════════════════════════════════════════════════════════════════════════════════════╗ ║ CLIENT ║ ║ ┌──────────────────────────────────┐ ║ ║ User Asymmetric Key ┌───▶│ ML-KEM-1024 + X25519 Key Pair │ ║ ║ │ │ ┌─────────────┬──────────────┐ │ ║ ║ ┌───────────────────────────┐ │ │ │ Private Key │ Public Key │ │ ║ ║ │ Argon2ID (KDF) │ │ │ └─────────────┴──────────────┘ │ ║ ║ │ Salt : email address │──────── Master Key┤ └──────────────────────────────────┘ ║ ║ │ Payload: master password │ │ ║ ║ └───────────────────────────┘ │ ┌──────────────────────────────────┐ ║ ║ └───▶│ HKDF-SHA-256 ──▶ Stretched │ ║ ║ │ Master Key │ ║ ║ └─────────────────┬────────────────┘ ║ ║ │ ║ ║ ┌───────────────────────────┐ ▼ ║ ║ │ Argon2ID (KDF) │◀── Master Key ┌───────────────────────────────────────┐ ║ ║ │ Payload: master key │ │ Generated Symmetric Key │ ║ ║ │ Salt : master password │ │ Encryption Key : 256 bits │ ║ ║ └─────────────┬─────────────┘ │ MAC Key : 256 bits │ ║ ║ │ └─────────────┬─────────────────────────┘ ║ ║ │ │ Symmetric Key ║ ║ ▼ │ ║ ║ ┌──────────────────────┐ ┌─────────────────────────┐ │ ┌────────────────────────┐ ║ ║ │ Master Password │ │ 192-bit Nonce (CSPRNG) │───────┼─▶│ XChaCha20-Poly1305 │ ║ ║ │ Hash (SHA-256) │ └─────────────────────────┘ │ │ Nonce : 192-bit │ ║ ║ └──────────────────────┘ ▲ │ │ Payload: sym key │ ║ ║ │ │ Nonce └─▶│ Key: stretched mkey │ ║ ║ │ CSPRNG┘ └──────────┬─────────────┘ ║ ║ │ │ ║ ║ │ ▼ ║ ║ │ ┌───────────────────────────────┐ ║ ║ │ │ Protected Symmetric Key │ ║ ║ │ └───────────────────────────────┘ ║ ╚════════════════╪════════════════════════════════════════════════════╪══════════════════════╝ │ 🔒 https:// │ ▼ ▼ ╔════════════════════════════════════════════════════════════════════════════════════════════════╗ ║ CLOUD ║ ║ ║ ║ KMS – Data Protection Key – XChaCha20-Poly1305 Encryption ║ ║ ┌────────────────────────────────┬───────────────────────────────────────┐ ║ ║ │ SHA-256(Master Password Hash) │ Protected Symmetric Key │ ║ ║ ├────────────────────────────────┴───────────────────────────────────────┤ ║ ║ │ Database with Transparent Data Encryption (TDE) │ ║ ║ ├────────────────────────────────┬───────────────────────────────────────┤ ║ ║ │ SHA-256(Master Password Hash) │ Protected Symmetric Key │ ║ ║ └────────────────────────────────┴───────────────────────────────────────┘ ║ ╚════════════════════════════════════════════════════════════════════════════════════════════════╝ CODE_BLOCK: ╔════════════════════════════════════════════════════════════════════════════════════════════════╗ ║ CLIENT ║ ║ ┌──────────────────────────────────┐ ║ ║ User Asymmetric Key ┌───▶│ ML-KEM-1024 + X25519 Key Pair │ ║ ║ │ │ ┌─────────────┬──────────────┐ │ ║ ║ ┌───────────────────────────┐ │ │ │ Private Key │ Public Key │ │ ║ ║ │ Argon2ID (KDF) │ │ │ └─────────────┴──────────────┘ │ ║ ║ │ Salt : email address │──────── Master Key┤ └──────────────────────────────────┘ ║ ║ │ Payload: master password │ │ ║ ║ └───────────────────────────┘ │ ┌──────────────────────────────────┐ ║ ║ └───▶│ HKDF-SHA-256 ──▶ Stretched │ ║ ║ │ Master Key │ ║ ║ └─────────────────┬────────────────┘ ║ ║ │ ║ ║ ┌───────────────────────────┐ ▼ ║ ║ │ Argon2ID (KDF) │◀── Master Key ┌───────────────────────────────────────┐ ║ ║ │ Payload: master key │ │ Generated Symmetric Key │ ║ ║ │ Salt : master password │ │ Encryption Key : 256 bits │ ║ ║ └─────────────┬─────────────┘ │ MAC Key : 256 bits │ ║ ║ │ └─────────────┬─────────────────────────┘ ║ ║ │ │ Symmetric Key ║ ║ ▼ │ ║ ║ ┌──────────────────────┐ ┌─────────────────────────┐ │ ┌────────────────────────┐ ║ ║ │ Master Password │ │ 192-bit Nonce (CSPRNG) │───────┼─▶│ XChaCha20-Poly1305 │ ║ ║ │ Hash (SHA-256) │ └─────────────────────────┘ │ │ Nonce : 192-bit │ ║ ║ └──────────────────────┘ ▲ │ │ Payload: sym key │ ║ ║ │ │ Nonce └─▶│ Key: stretched mkey │ ║ ║ │ CSPRNG┘ └──────────┬─────────────┘ ║ ║ │ │ ║ ║ │ ▼ ║ ║ │ ┌───────────────────────────────┐ ║ ║ │ │ Protected Symmetric Key │ ║ ║ │ └───────────────────────────────┘ ║ ╚════════════════╪════════════════════════════════════════════════════╪══════════════════════╝ │ 🔒 https:// │ ▼ ▼ ╔════════════════════════════════════════════════════════════════════════════════════════════════╗ ║ CLOUD ║ ║ ║ ║ KMS – Data Protection Key – XChaCha20-Poly1305 Encryption ║ ║ ┌────────────────────────────────┬───────────────────────────────────────┐ ║ ║ │ SHA-256(Master Password Hash) │ Protected Symmetric Key │ ║ ║ ├────────────────────────────────┴───────────────────────────────────────┤ ║ ║ │ Database with Transparent Data Encryption (TDE) │ ║ ║ ├────────────────────────────────┬───────────────────────────────────────┤ ║ ║ │ SHA-256(Master Password Hash) │ Protected Symmetric Key │ ║ ║ └────────────────────────────────┴───────────────────────────────────────┘ ║ ╚════════════════════════════════════════════════════════════════════════════════════════════════╝ CODE_BLOCK: ╔════════════════════════════════════════════════════════════════════════════════════════════════╗ ║ CLIENT ║ ║ ┌──────────────────────────────────┐ ║ ║ User Asymmetric Key ┌───▶│ ML-KEM-1024 + X25519 Key Pair │ ║ ║ │ │ ┌─────────────┬──────────────┐ │ ║ ║ ┌───────────────────────────┐ │ │ │ Private Key │ Public Key │ │ ║ ║ │ Argon2ID (KDF) │ │ │ └─────────────┴──────────────┘ │ ║ ║ │ Salt : email address │──────── Master Key┤ └──────────────────────────────────┘ ║ ║ │ Payload: master password │ │ ║ ║ └───────────────────────────┘ │ ┌──────────────────────────────────┐ ║ ║ └───▶│ HKDF-SHA-256 ──▶ Stretched │ ║ ║ │ Master Key │ ║ ║ └─────────────────┬────────────────┘ ║ ║ │ ║ ║ ┌───────────────────────────┐ ▼ ║ ║ │ Argon2ID (KDF) │◀── Master Key ┌───────────────────────────────────────┐ ║ ║ │ Payload: master key │ │ Generated Symmetric Key │ ║ ║ │ Salt : master password │ │ Encryption Key : 256 bits │ ║ ║ └─────────────┬─────────────┘ │ MAC Key : 256 bits │ ║ ║ │ └─────────────┬─────────────────────────┘ ║ ║ │ │ Symmetric Key ║ ║ ▼ │ ║ ║ ┌──────────────────────┐ ┌─────────────────────────┐ │ ┌────────────────────────┐ ║ ║ │ Master Password │ │ 192-bit Nonce (CSPRNG) │───────┼─▶│ XChaCha20-Poly1305 │ ║ ║ │ Hash (SHA-256) │ └─────────────────────────┘ │ │ Nonce : 192-bit │ ║ ║ └──────────────────────┘ ▲ │ │ Payload: sym key │ ║ ║ │ │ Nonce └─▶│ Key: stretched mkey │ ║ ║ │ CSPRNG┘ └──────────┬─────────────┘ ║ ║ │ │ ║ ║ │ ▼ ║ ║ │ ┌───────────────────────────────┐ ║ ║ │ │ Protected Symmetric Key │ ║ ║ │ └───────────────────────────────┘ ║ ╚════════════════╪════════════════════════════════════════════════════╪══════════════════════╝ │ 🔒 https:// │ ▼ ▼ ╔════════════════════════════════════════════════════════════════════════════════════════════════╗ ║ CLOUD ║ ║ ║ ║ KMS – Data Protection Key – XChaCha20-Poly1305 Encryption ║ ║ ┌────────────────────────────────┬───────────────────────────────────────┐ ║ ║ │ SHA-256(Master Password Hash) │ Protected Symmetric Key │ ║ ║ ├────────────────────────────────┴───────────────────────────────────────┤ ║ ║ │ Database with Transparent Data Encryption (TDE) │ ║ ║ ├────────────────────────────────┬───────────────────────────────────────┤ ║ ║ │ SHA-256(Master Password Hash) │ Protected Symmetric Key │ ║ ║ └────────────────────────────────┴───────────────────────────────────────┘ ║ ╚════════════════════════════════════════════════════════════════════════════════════════════════╝
- Broken Authentication / Authorization a. Session Cookie Authentication + CSRF b. Password Authentication c. JWT Token Authentication
- Broken SQL Injection
- Server Side Request Forgery
- IDOR (Insecure Direct Object Reference)
- Missing Rate Limiting
- OS Path Traversal
- OS Command Injection
- Malicious File Uploads
- Security Misconfigurations (see Week 14 from 48-week Plan)
- API Key Management & Authentication
- Security Logging and Monitoring Failures
- XXE Entity Bugs