Encryption & Key Management Policy
| Property | Value |
|---|---|
| Document ID | POL-004 |
| Version | 1.0 |
| Status | Draft |
| Owner | Chief Information Security Officer (CISO) |
| Last Updated | 2026-01-11 |
| Next Review | 2027-01-11 |
| Related Controls | SOC 2: CC6.1, CC6.7 / ISO 27001: A.10.1 |
1. Purpose
This policy establishes requirements for cryptographic controls and key management to protect the confidentiality and integrity of sensitive information. It defines standards for encryption algorithms, key generation, storage, rotation, and destruction.
2. Scope
This policy applies to:
- Data States: Data at rest, data in transit, data in use (where applicable)
- Systems: All systems processing, storing, or transmitting sensitive data
- Key Types: Encryption keys, signing keys, API keys, certificates, secrets
- Personnel: All individuals responsible for implementing or managing cryptographic controls
3. Policy Statements
3.1 Encryption Requirements by Data State
| Data State | Encryption Requirement | Minimum Standard |
|---|---|---|
| Data at Rest | Required for all sensitive data | AES-256 |
| Data in Transit | Required for all network communications | TLS 1.2+ (TLS 1.3 preferred) |
| Data in Use | Implement where feasible | Application-level controls |
| Backups | Required | AES-256 |
| Removable Media | Required | AES-256 with hardware encryption preferred |
3.2 Approved Cryptographic Algorithms
Symmetric Encryption
| Use Case | Approved Algorithms | Key Size |
|---|---|---|
| General encryption | AES-GCM, AES-CBC | 256-bit |
| Disk encryption | AES-XTS | 256-bit |
| Legacy systems (phase out) | AES-128 | 128-bit |
Asymmetric Encryption
| Use Case | Approved Algorithms | Key Size |
|---|---|---|
| Key exchange | ECDH | P-256 or higher |
| Digital signatures | ECDSA, EdDSA | P-256 or Ed25519 |
| RSA (legacy) | RSA-OAEP | 2048-bit minimum, 4096-bit preferred |
Hashing
| Use Case | Approved Algorithms |
|---|---|
| General integrity | SHA-256, SHA-384, SHA-512 |
| Password hashing | Argon2id, bcrypt, PBKDF2 (100k+ iterations) |
| HMAC | HMAC-SHA256, HMAC-SHA384 |
TLS Configuration
| Setting | Requirement |
|---|---|
| Minimum Version | TLS 1.2 (TLS 1.3 preferred) |
| Cipher Suites | AEAD ciphers only (GCM, ChaCha20-Poly1305) |
| Certificate Key | RSA 2048+ or ECDSA P-256+ |
| Perfect Forward Secrecy | Required (ECDHE key exchange) |
3.3 Prohibited Algorithms
The following are prohibited for new implementations:
| Algorithm | Reason |
|---|---|
| DES, 3DES | Weak encryption |
| MD5 | Cryptographically broken |
| SHA-1 | Collision vulnerabilities |
| RC4 | Biased output |
| TLS 1.0, 1.1 | Known vulnerabilities |
| SSL (all versions) | Deprecated |
| RSA < 2048 bits | Insufficient key length |
3.4 Key Management Lifecycle
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Generate │───▶│ Store │───▶│ Distribute │───▶│ Rotate │───▶│ Destroy │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
3.4.1 Key Generation
| Requirement | Standard |
|---|---|
| Randomness | CSPRNG (Cryptographically Secure PRNG) |
| Generation Location | HSM, cloud KMS, or approved key management system |
| Documentation | Key purpose, owner, and creation date recorded |
3.4.2 Key Storage
| Key Type | Storage Requirement |
|---|---|
| Master keys | Hardware Security Module (HSM) or cloud KMS |
| Data encryption keys | Encrypted by master key (envelope encryption) |
| API keys/secrets | Approved secrets vault (e.g., HashiCorp Vault, AWS Secrets Manager) |
| TLS certificates | Certificate manager with access controls |
| Personal keys | Password manager or approved secure storage |
Prohibited Storage Locations:
- Source code repositories
- Configuration files (unencrypted)
- Environment variables (for production secrets)
- Email or messaging systems
- Personal devices (unprotected)
- Shared drives without encryption
3.4.3 Key Distribution
- Keys must be transmitted via secure channels only
- Out-of-band verification for critical key exchanges
- Access to keys limited by least privilege
- Audit logging of key access
3.4.4 Key Rotation Schedule
| Key Type | Rotation Frequency |
|---|---|
| Master keys | Annually (or per vendor recommendation) |
| Data encryption keys | Annually |
| API keys | Every 90 days (or after suspected compromise) |
| TLS certificates | Before expiration (automate with ACME) |
| SSH keys | Annually |
| Service account passwords | Every 90 days |
3.4.5 Key Destruction
| Requirement | Standard |
|---|---|
| Timing | When no longer needed or upon compromise |
| Method | Cryptographic erasure or secure deletion |
| Documentation | Destruction recorded with date and reason |
| Verification | Confirm key is no longer accessible |
3.5 Certificate Management
| Requirement | Standard |
|---|---|
| Certificate Authority | Trusted public CA or managed private CA |
| Certificate Validity | Maximum 1 year (13 months) |
| Automated Renewal | Required (ACME/Let's Encrypt or equivalent) |
| Certificate Monitoring | Expiration alerts 30, 14, 7 days before expiry |
| Revocation | Immediate revocation upon compromise |
| Inventory | Maintain inventory of all certificates |
3.6 Cloud Encryption
| Cloud Service | Encryption Requirement |
|---|---|
| Object Storage (S3, GCS) | Server-side encryption enabled (SSE-KMS preferred) |
| Block Storage (EBS, Persistent Disk) | Encryption enabled with customer-managed keys |
| Databases (RDS, Cloud SQL) | Encryption at rest and in transit |
| Secrets | Cloud secrets manager with IAM controls |
| Key Management | Cloud KMS with customer-managed keys for sensitive data |
4. Roles and Responsibilities
| Role | Responsibilities |
|---|---|
| CISO / Security Lead | Define cryptographic standards, approve exceptions |
| Security Engineering | Implement and maintain encryption infrastructure |
| IT Operations | Manage certificates, keys, and secrets operationally |
| Development Teams | Implement encryption in applications per standards |
| Cloud/Infrastructure | Configure cloud encryption services |
5. Implementation Checklist
Technical Controls
- TLS 1.2+ enforced on all endpoints
- Database encryption at rest enabled
- Disk/volume encryption enabled on all servers
- Secrets vault deployed and integrated
- Cloud KMS configured for key management
- Certificate automation implemented (ACME)
- Certificate monitoring and alerting configured
- Backup encryption enabled
Process Controls
- Key inventory documented
- Certificate inventory documented
- Key rotation schedule defined
- Key destruction procedure documented
- Cryptographic exception process defined
6. Evidence Requirements
| Evidence Type | Description | Location | Retention |
|---|---|---|---|
| TLS Configuration | SSL Labs scan results, cipher configurations | Document repository | Quarterly |
| Encryption Settings | Cloud console screenshots, config exports | Document repository | Current + 1 year |
| Key Inventory | List of keys with owners and rotation dates | Secrets vault / KMS | Current |
| Certificate Inventory | List of certificates with expiration dates | Certificate manager | Current |
| Key Rotation Records | Evidence of key rotation completion | Change tickets | 3 years |
| Vault Access Logs | Audit logs from secrets vault | SIEM | 1 year |
7. Related Documents
- Data Classification & Handling Policy (POL-005)
- Password & Authentication Policy (POL-003)
- Secure Configuration Standards (PROC-003)
- Backup & Recovery Policy (POL-009)
8. Exceptions
Exceptions to cryptographic requirements must:
- Document the technical limitation
- Include risk assessment
- Define compensating controls
- Obtain CISO approval
- Set remediation timeline
- Review quarterly
9. Version History
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0 | 2026-01-11 | Security Team | Initial release |
10. Approval
| Role | Name | Signature | Date |
|---|---|---|---|
| CISO | _________________ | _________________ | ________ |
| CTO | _________________ | _________________ | ________ |
This document is classified as INTERNAL. Unauthorized distribution is prohibited.