🌍 Backend Development · subject
Backend Development Authentication, Authorization and Security Syllabus
Every chapter and topic of Authentication, Authorization and Security examined in Backend Development — 5 chapters, 22 topics, plus 51 flashcards written against it.
Authentication, Authorization and Security syllabus — full chapter and topic list
Expand any chapter to see its topics and sub-topics. This is the whole examinable outline for Authentication, Authorization and Security in Backend Development, not a summary of it.
-
Authentication Fundamentals
4 topics- Password Hashing and Salting
- Session-Based Authentication
- Token-Based Authentication
- Multi-Factor Authentication
-
Tokens and Federated Identity
4 topics- JSON Web Tokens (JWT)
- OAuth 2.0 Flows
- OpenID Connect
- Single Sign-On (SSO) and SAML
-
Authorization Models
4 topics- Role-Based Access Control (RBAC)
- Attribute-Based Access Control (ABAC)
- Access Control Lists
- Policy Enforcement
-
Web Application Security
5 topics- OWASP Top 10
- Injection Attacks
- Cross-Site Scripting (XSS)
- Cross-Site Request Forgery (CSRF)
- Security Headers and CSP
-
Cryptography and Data Protection
5 topics- Symmetric and Asymmetric Encryption
- Hashing vs Encryption
- TLS and Certificate Management
- Secrets Management and Vaults
- Data Privacy and Compliance (GDPR)
Authentication, Authorization and Security flashcards for Backend Development
24 of 51 cards from the Authentication, Authorization and Security deck — real questions with worked answers.
What is the difference between hashing and encryption when storing passwords?
Hashing is a one-way function that cannot be reversed, so the original password can never be recovered; encryption is two-way (reversible with a key). Passwords should be hashed, not encrypted, so a database breach does not directly expose plaintext passwords.
What is a salt in password hashing, and what attack does it defend against?
A salt is a unique random value added to each password before hashing. It ensures identical passwords produce different hashes, defeating precomputed rainbow-table attacks and preventing attackers from seeing which users share the same password.
Why are fast hash functions like MD5 or SHA-256 unsuitable for password storage, and what should be used instead?
Fast hashes let attackers try billions of guesses per second in brute-force/dictionary attacks. Use deliberately slow, memory-hard adaptive functions such as bcrypt, scrypt, Argon2, or PBKDF2, which include a configurable work/cost factor.
What is a pepper, and how does it differ from a salt?
A pepper is a secret value added to passwords before hashing, but unlike a salt it is the same for all users and stored separately (e.g., in an HSM or app config), not in the database. A salt is unique per user and stored alongside the hash.
In session-based authentication, where is the session state stored and what does the client hold?
The session state is stored on the server (in memory, a database, or a cache like Redis). The client holds only an opaque session ID, typically in a cookie, which the server looks up on each request.
What cookie attributes should protect a session cookie, and what does each do?
HttpOnly (blocks JavaScript access, mitigating XSS theft), Secure (sent only over HTTPS), SameSite (restricts cross-site sending, mitigating CSRF), and appropriate Domain/Path and expiration settings.
Contrast stateful session-based auth with stateless token-based auth regarding server storage and scalability.
Session-based auth is stateful: the server stores session data and must share it across instances, complicating horizontal scaling. Token-based auth is stateless: the token itself carries the identity/claims, so any server can validate it without shared session storage, easing scaling.
What is a key trade-off of stateless tokens regarding revocation?
Because a self-contained token is valid until it expires and requires no server lookup, it cannot be easily revoked mid-lifetime. Mitigations include short expiry times, refresh tokens, or maintaining a server-side denylist (which reintroduces state).
What are the two factors combined in a bearer token + refresh token scheme, and what is each used for?
A short-lived access token authorizes API requests; a long-lived refresh token is used only to obtain new access tokens when the old one expires, limiting exposure if an access token is stolen.
What does the acronym MFA stand for, and what are the three classic authentication factor categories?
Multi-Factor Authentication. The categories are: something you know (password/PIN), something you have (phone, hardware token), and something you are (biometrics like fingerprint or face).
How does TOTP (Time-based One-Time Password) generate its code?
TOTP hashes a shared secret together with the current time counter (typically a 30-second window) using HMAC, then truncates the result to a 6-8 digit code. Both server and client compute the same code independently: $TOTP = HOTP(K, \lfloor T/T_{0} \rfloor)$.
Why is an authenticator app (TOTP) or hardware key generally considered stronger than SMS-based MFA?
SMS is vulnerable to SIM-swapping, SS7 network interception, and phishing relay. TOTP secrets never leave the device, and hardware keys (FIDO2/WebAuthn) additionally bind the credential to the origin, resisting phishing entirely.
What are the three structural parts of a JWT, and how are they separated?
Header, Payload (claims), and Signature, each Base64URL-encoded and separated by dots: $header.payload.signature$.
Is the payload of a standard signed JWT (JWS) encrypted? What is the security implication?
No. A signed JWT is only Base64URL-encoded and signed, so anyone can read the payload. It provides integrity/authenticity but not confidentiality; never put secrets in it. For confidentiality use JWE (encrypted JWT).
Name four standard registered JWT claims and their meanings.
iss (issuer), sub (subject/user), aud (audience/intended recipient), exp (expiration time), plus iat (issued at), nbf (not before), and jti (unique token ID).
What is the 'alg: none' JWT vulnerability?
If a server accepts the 'none' algorithm, an attacker can strip the signature and forge arbitrary claims, since no signature verification occurs. Servers must reject 'none' and enforce an expected algorithm whitelist.
Compare HS256 and RS256 JWT signing algorithms.
HS256 is HMAC with a symmetric shared secret—the same key signs and verifies. RS256 is RSA asymmetric—a private key signs and a public key verifies, so verifiers need not hold the signing secret. RS256 suits distributed systems and third-party verification.
In OAuth 2.0, define the four roles: resource owner, client, authorization server, and resource server.
Resource owner: the user who owns the data. Client: the app requesting access. Authorization server: issues tokens after authenticating the owner. Resource server: hosts the protected resources and accepts access tokens.
What are the steps of the OAuth 2.0 Authorization Code flow?
1) Client redirects user to the authorization server. 2) User authenticates and consents. 3) Server redirects back with an authorization code. 4) Client exchanges the code (plus its secret) at the token endpoint for an access token (and optional refresh token).
What is PKCE in OAuth 2.0 and which clients need it?
Proof Key for Code Exchange. The client generates a random code_verifier, sends its hash (code_challenge) in the authorization request, then sends the verifier at token exchange. It protects public clients (SPAs, mobile apps) from authorization-code interception, since they cannot safely store a client secret.
Why is the OAuth 2.0 Implicit flow now discouraged?
It returns the access token directly in the URL fragment, exposing it to browser history, referrer leakage, and interception, with no client authentication. The Authorization Code flow with PKCE is now recommended instead.
What is the OAuth 2.0 Client Credentials grant used for?
Machine-to-machine authentication where no user is involved. The client authenticates with its own credentials to obtain an access token for its own resources (e.g., a backend service calling an API).
Fundamentally, what is OAuth 2.0 designed for, and what is it NOT designed for?
OAuth 2.0 is an authorization framework for delegating access to resources (permissions). It is NOT an authentication protocol for identifying users; using access tokens alone to prove identity is insecure. OpenID Connect adds authentication on top.
What does OpenID Connect (OIDC) add on top of OAuth 2.0?
An identity layer. It introduces the ID token (a JWT with authenticated user identity claims), a standardized /userinfo endpoint, and the 'openid' scope, turning OAuth's authorization into authentication.
See more Authentication, Authorization and Security flashcards →
Planning Authentication, Authorization and Security for Backend Development
Authentication, Authorization and Security is about 13% of the Backend Development syllabus by topic count — 22 of 165 topics, spread over 5 chapters. At roughly 45 minutes per topic plus 12 minutes per sub-topic, a first pass runs to about 15 hours.
The heaviest chapters are Web Application Security (5 topics), Cryptography and Data Protection (5 topics), Authentication Fundamentals (4 topics) . Front-load those while your energy is high; the short chapters are better revision filler later.
Work top-down: read the chapter, then tick topics off individually rather than marking the whole chapter done. Sub-topics are where silent gaps hide.
Authentication, Authorization and Security (Backend Development) FAQ
What is in the Backend Development Authentication, Authorization and Security syllabus?
Authentication, Authorization and Security is split into 5 chapters — Authentication Fundamentals, Tokens and Federated Identity, Authorization Models, Web Application Security and Cryptography and Data Protection, containing 22 topics and 0 sub-topics in total.
How is Authentication, Authorization and Security structured in the Backend Development syllabus?
5 chapters. Authentication, Authorization and Security accounts for about 13% of the topics in the whole Backend Development syllabus (22 of 165).
How long should I spend on Authentication, Authorization and Security for Backend Development?
Budget around 15 hours for a first pass through Authentication, Authorization and Security — about 45 minutes per topic plus 12 minutes per sub-topic across its 22 topics. Add revision cycles on top.
Are there flashcards for Backend Development Authentication, Authorization and Security?
Yes — a 51-card Authentication, Authorization and Security deck. Sample cards are printed on this page, and the full deck is free in the Examius app with spaced repetition scheduling.