Cryptography (CRA)
How to play?Players can discuss any type of Cryptography (CR) attack they think might be possible against the assessment target. It does not matter if the attack relates to another CR card, but if possible try to identify an attack that is fairly unique to the application/functionality/users.
Scenario: Invent your own Cryptography threat
Inventing a new cryptography threat could lead to:
- Data Exposure: Breaking encryption or hashing reveals confidential data (passwords, PII, financial info).
- Impersonation / Spoofing: Forging digital signatures, certificates, or tokens allows pretending to be another user/system.
- Data Tampering: Altering messages, files, or communications without detection.
- Privilege Escalation: Using broken cryptography in access tokens or authorization systems to gain higher privileges.
- Replay or Forgery: Exploiting weak session keys or signed messages to repeat or fabricate transactions.
- Denial of Service: Attacking computationally heavy cryptographic operations to exhaust system resources.
- Loss of Auditability / Repudiation: Actions cannot be trusted as genuine if signatures or integrity checks are bypassed.
Threat Modeling
STRIDE
Any of the STRIDE categories may be applicable, but the primary concern is usually Information Disclosure or Tampering as breaking cryptography, in most cases, mean you can either disclose or modify data, depending on the context.
What can go wrong?
Data leaks, impersonation, tampering, privilege escalation, replay/forgery, DoS, loss of trust in audits.
What are we going to do about it?
Use strong cryptography, proper key management, proven libraries, integrity checks, secure storage, monitoring, and regular updates.
- Use Strong, Approved Cryptography: Only standardized, vetted algorithms (AES, RSA, ECDSA, SHA-2/3, etc.).
- Proper Key Management: Secure generation, storage, rotation, and destruction of keys.
- Do Not Roll Your Own Cryptography: Avoid custom encryption, hashing, or random number implementations.
- Use Proven Libraries: Rely on well-maintained cryptographic libraries rather than ad-hoc code.
- Enforce Integrity Checks: Always use authenticated encryption (AES-GCM, ChaCha20-Poly1305) or MACs to prevent tampering.
- Secure Transmission and Storage: Encrypt sensitive data in transit and at rest.
- Monitor and Audit: Log unusual cryptographic failures, expired certificates, or invalid signatures.
- Regularly Update Algorithms: Replace algorithms that are weak due to advances in computing power or cryptanalysis.
- Penetration Testing and Threat Modeling: Simulate novel cryptographic attacks and assess resistance.
Mappings
STRIDE:
OWASP ASVS: -
CAPEC: -
OWASP DevGuide:
OWASP AppSensor: -
SAFECode: -