CWICP study materials
CWICP study resources

CWICP: Cryptography and Transport Security

CWICP · Work through your exam, one topic at a time.

All guide sections

Cryptography and Transport Security

This domain checks applied cryptography judgement: whether transport is genuinely protected, whether secrets are stored with appropriate algorithms, and whether the failure you found is exploitable or merely non-ideal. Marks are lost for both overclaiming and underclaiming.

Transport

  • Protocol and suites. TLS 1.2 with CBC suites is not automatically broken; TLS 1.0/1.1 support, SSLv3, RC4, export ciphers, and null encryption are. Prefer AEAD (AES-GCM, ChaCha20-Poly1305) and forward secrecy via ECDHE.
  • HSTS. Strict-Transport-Security with a meaningful max-age and includeSubDomains; preload is a separate commitment. Without it, a single HTTP response enables downgrade and cookie theft.
  • Certificates and chain. Validity dates, SAN coverage, chain completeness, and revocation. Mixed content defeats the padlock; note that active mixed content is blocked by modern browsers while passive content may load.
  • Termination points. TLS often ends at a load balancer, and traffic behind it is plaintext - relevant when you can reach the internal segment.

Applied crypto

  • Password storage. Argon2id, scrypt, bcrypt (with appropriate cost), or PBKDF2 with high iterations. Unsalted MD5/SHA-1/SHA-256 is a finding regardless of the salt question, because the hashes are fast.
  • Symmetric modes. ECB leaks structure; static IVs and reused nonces break CBC-GCM confidentiality; padding oracles turn decryption into plaintext recovery.
  • Randomness and key handling. Predictable tokens from rand()/Math.random(), keys in source, in JavaScript bundles, or in .env files served statically.
  • Integrity. MAC-then-encrypt versus AEAD; JWT signatures validated with the correct algorithm and key type.

Worked example

A scan shows TLS 1.0, TLS 1.1, and TLS 1.2 offered, RC4 among the suites, no HSTS header, and a valid certificate. Separately the user table stores md5(password). Reasoning: the transport finding is real but its severity depends on whether an attacker can position on-path and whether anything (HSTS, app-level pinning) mitigates downgrade - rate it medium at most in isolation, and list the concrete cipher and protocol evidence. The password storage is the higher-impact item: an unsalted MD5 hash is recovered at billions of guesses per second on commodity GPUs, so a database read becomes credential compromise. Recommend Argon2id with rehash-on-login.

Traps that cost marks

  • Equating "uses TLS 1.2" with secure, ignoring suite strength and HSTS.
  • Calling Base64 or hex encoding encryption.
  • Flagging SHA-256 for password hashing as fine because the algorithm is modern - speed is the problem.
  • Reporting a missing HSTS header as critical without an on-path threat model.
  • Ignoring secrets committed in JavaScript bundles and mobile binaries.