Bird
Raised Fist0
HLDsystem_design~7 mins

Encryption at rest and in transit in HLD - System Design Guide

Choose your learning style10 modes available
Problem Statement
Data stored on disks or traveling over networks can be intercepted or accessed by unauthorized parties. Without protection, sensitive information like user credentials, payment details, or personal data can be stolen or tampered with, leading to data breaches and loss of trust.
Solution
Encryption transforms readable data into an unreadable format using keys, making it accessible only to authorized users. Encryption at rest protects data stored on disks or databases by encrypting it before saving. Encryption in transit secures data as it moves between clients, servers, or services by encrypting communication channels.
Architecture
Client App
(Data in use)
→Network TLS
↓
Encrypted Disk
Encrypted Disk

This diagram shows data encrypted during network transfer using TLS and encrypted when stored on disk, protecting data both in transit and at rest.

Trade-offs
✓ Pros
→
Protects sensitive data from unauthorized access during storage and transmission.
→
Meets compliance requirements for data security and privacy regulations.
→
Reduces risk of data breaches and associated financial and reputational damage.
→
Encryption keys can be rotated to enhance security without downtime.
✗ Cons
→
Adds computational overhead, potentially increasing latency and resource usage.
→
Key management complexity can lead to security risks if mishandled.
→
Requires careful integration to avoid exposing data before encryption or after decryption.
Use when handling sensitive or regulated data, especially at scale above thousands of users or transactions per second, or when compliance standards like GDPR, HIPAA, or PCI-DSS apply.
Avoid in low-risk systems with non-sensitive data and very low traffic (under 100 requests per second) where encryption overhead outweighs benefits.
Real World Examples
Netflix
Encrypts user data stored in cloud storage to prevent unauthorized access even if storage is compromised.
Stripe
Uses TLS encryption for all payment data in transit to protect cardholder information during transactions.
Google
Encrypts data at rest in its data centers and uses HTTPS for all client-server communication to secure user data.
Alternatives
Tokenization
Replaces sensitive data with non-sensitive tokens instead of encrypting the original data.
Use when: Use when you want to minimize encryption overhead and simplify compliance by avoiding storing actual sensitive data.
Hashing
Transforms data into fixed-size hash values, typically one-way and not reversible, unlike encryption.
Use when: Use for verifying data integrity or storing passwords securely rather than protecting data confidentiality.
Summary
Encryption at rest protects stored data by making it unreadable without keys.
Encryption in transit secures data moving between systems to prevent interception.
Both are essential for protecting sensitive data and meeting security compliance.

Practice

(1/5)
1. What is the main purpose of encryption at rest in system design?
easy
A. To protect stored data from unauthorized access
B. To speed up data transmission over the network
C. To compress data for storage efficiency
D. To authenticate users before accessing the system

Solution

  1. Step 1: Understand encryption at rest

    Encryption at rest means encrypting data when it is stored on disks or databases to prevent unauthorized access.
  2. Step 2: Identify the main goal

    The main goal is to protect stored data from being read by unauthorized users if the storage is compromised.
  3. Final Answer:

    To protect stored data from unauthorized access -> Option A
  4. Quick Check:

    Encryption at rest = Protect stored data [OK]
Hint: Encryption at rest means securing stored data only [OK]
Common Mistakes:
  • Confusing encryption at rest with encryption in transit
  • Thinking encryption at rest speeds up data
  • Mixing encryption with user authentication
2. Which of the following is the correct protocol used for encryption in transit?
easy
A. AES-256
B. TLS (Transport Layer Security)
C. SHA-256
D. RSA key exchange

Solution

  1. Step 1: Identify encryption in transit protocols

    Encryption in transit protects data moving over networks. TLS is the standard protocol for this purpose.
  2. Step 2: Differentiate options

    AES-256 is a symmetric encryption algorithm (used for data at rest), SHA-256 is a hash function, RSA is an encryption algorithm but not a protocol for transit encryption.
  3. Final Answer:

    TLS (Transport Layer Security) -> Option B
  4. Quick Check:

    Encryption in transit = TLS protocol [OK]
Hint: TLS is the standard for encrypting data in transit [OK]
Common Mistakes:
  • Confusing encryption algorithms with protocols
  • Choosing AES or RSA as transit protocols
  • Mixing hash functions with encryption
3. Consider a system where data is encrypted with AES-256 before storage and TLS is used for network communication. What is the main benefit of this design?
medium
A. Data transmission speed is maximized
B. Only stored data is protected, transmission is not
C. Data is protected both when stored and when transmitted
D. Encryption is only applied to user passwords

Solution

  1. Step 1: Analyze encryption at rest with AES-256

    AES-256 encrypts data stored on disk, protecting it from unauthorized access.
  2. Step 2: Analyze encryption in transit with TLS

    TLS encrypts data moving over the network, preventing interception or tampering.
  3. Step 3: Combine both protections

    Using both means data is secure when stored and when sent, covering both attack surfaces.
  4. Final Answer:

    Data is protected both when stored and when transmitted -> Option C
  5. Quick Check:

    AES-256 + TLS = Full data protection [OK]
Hint: AES for storage + TLS for network = full data protection [OK]
Common Mistakes:
  • Assuming TLS speeds up transmission
  • Thinking encryption only protects passwords
  • Ignoring encryption in transit
4. A developer implemented encryption in transit using HTTP instead of HTTPS. What is the main issue with this approach?
medium
A. Data is not encrypted during transmission
B. Data is encrypted but stored insecurely
C. Encryption keys are exposed in the database
D. Data is encrypted only at rest, not in transit

Solution

  1. Step 1: Understand difference between HTTP and HTTPS

    HTTP transmits data in plain text, while HTTPS uses TLS to encrypt data in transit.
  2. Step 2: Identify the problem with using HTTP

    Using HTTP means data is sent unencrypted, vulnerable to interception and attacks.
  3. Final Answer:

    Data is not encrypted during transmission -> Option A
  4. Quick Check:

    HTTP = no encryption in transit [OK]
Hint: HTTP sends data unencrypted; HTTPS encrypts it [OK]
Common Mistakes:
  • Confusing encryption at rest with in transit
  • Assuming HTTP encrypts data
  • Thinking keys are exposed due to HTTP
5. You are designing a cloud storage system that must comply with strict security standards. Which combination best ensures data confidentiality both when stored and when accessed remotely?
hard
A. Encrypt data only during transmission using SSL 2.0
B. Use SHA-256 hashing for stored data and HTTP for data transfer
C. Store data unencrypted and rely on VPN for secure access
D. Encrypt data at rest with AES-256 and use TLS 1.3 for all client-server communication

Solution

  1. Step 1: Identify strong encryption for data at rest

    AES-256 is a widely accepted strong encryption standard for stored data.
  2. Step 2: Choose secure protocol for data in transit

    TLS 1.3 is the latest secure protocol for encrypting data during transmission, better than older SSL versions.
  3. Step 3: Evaluate other options

    SHA-256 is a hash, not encryption; HTTP is unencrypted; VPN alone does not encrypt stored data; SSL 2.0 is outdated and insecure.
  4. Final Answer:

    Encrypt data at rest with AES-256 and use TLS 1.3 for all client-server communication -> Option D
  5. Quick Check:

    AES-256 + TLS 1.3 = Best practice for confidentiality [OK]
Hint: Use AES-256 for storage and TLS 1.3 for transmission [OK]
Common Mistakes:
  • Using outdated SSL instead of TLS
  • Confusing hashing with encryption
  • Relying only on VPN without encryption
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard