Sensitive data is protected during transmission and storage
Data that is intercepted in transit or extracted from storage is useless to an attacker if it is encrypted. Encryption is a foundational control that protects data confidentiality even when other controls fail. This criterion requires that customer data and other sensitive information be encrypted in transit using TLS and at rest using strong encryption algorithms.
Implementation steps
- 1
Enforce TLS for all data in transit
All data transmitted between clients and your services, and between internal services, must use TLS 1.2 or higher. Disable older TLS versions (1.0, 1.1) and weak cipher suites. Configure HTTPS-only on all public endpoints and enforce HSTS. Use TLS for all internal service-to-service communication, database connections, and API calls to third parties.
cloudflare aws-acm lets-encrypt vercel - 2
Encrypt sensitive data at rest
Enable encryption at rest for all storage that contains customer data: databases, object storage (S3 buckets), disk volumes, backups, and logs. Use platform-managed encryption keys at minimum; use customer-managed keys (CMKs) for higher-sensitivity data. Verify that encryption at rest is enabled for all datastores in scope.
aws-kms aws-rds aws-s3 google-cloud-kms hashicorp-vault - 3
Manage encryption keys securely
Encryption keys must be protected with the same rigor as the data they protect. Use a managed key service rather than storing keys alongside data. Rotate keys on a defined schedule. Limit access to key management operations. Document your key management approach.
aws-kms hashicorp-vault google-cloud-kms azure-key-vault
Evidence required
Encryption in transit configuration
Evidence that TLS is enforced for data in transit.
- - TLS configuration showing TLS 1.2+ and HTTPS redirect
- - SSL Labs or similar scan results showing A rating
- - HSTS configuration in web server or CDN
Encryption at rest configuration
Evidence that data at rest is encrypted.
- - AWS RDS encryption-at-rest enabled screenshot
- - S3 bucket default encryption configuration
- - Database encryption configuration showing AES-256
Related controls
Logical access security measures restrict access to assets
Logical and Physical Access
Access credentials are issued with appropriate authorization
Logical and Physical Access
Role-based access is used and reviewed periodically
Logical and Physical Access
Physical access to facilities and systems is restricted
Logical and Physical Access