Create task task-016
This commit is contained in:
parent
478c1f6774
commit
01b5a84e42
|
|
@ -0,0 +1,56 @@
|
||||||
|
---
|
||||||
|
id: task-016
|
||||||
|
title: Add encryption for CryptID emails at rest
|
||||||
|
status: To Do
|
||||||
|
assignee: []
|
||||||
|
created_date: '2025-12-04 12:01'
|
||||||
|
labels:
|
||||||
|
- security
|
||||||
|
- cryptid
|
||||||
|
- encryption
|
||||||
|
- privacy
|
||||||
|
- d1
|
||||||
|
dependencies:
|
||||||
|
- task-017
|
||||||
|
priority: medium
|
||||||
|
---
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||||
|
Enhance CryptID security by encrypting email addresses stored in D1 database. This protects user privacy even if the database is compromised.
|
||||||
|
|
||||||
|
**Encryption Strategy:**
|
||||||
|
- Encrypt email addresses before storing in D1
|
||||||
|
- Use Cloudflare Workers KV or environment secret for encryption key
|
||||||
|
- Store encrypted email + hash for lookups
|
||||||
|
- Decrypt only when needed (sending emails, display)
|
||||||
|
|
||||||
|
**Implementation Options:**
|
||||||
|
1. **AES-GCM encryption** with key in Worker secret
|
||||||
|
2. **Deterministic encryption** for email lookups (hash-based)
|
||||||
|
3. **Hybrid approach**: Hash for lookup index, AES for actual email
|
||||||
|
|
||||||
|
**Schema Changes:**
|
||||||
|
```sql
|
||||||
|
ALTER TABLE users ADD COLUMN email_encrypted TEXT;
|
||||||
|
ALTER TABLE users ADD COLUMN email_hash TEXT; -- For lookups
|
||||||
|
-- Migrate existing emails, then drop plaintext column
|
||||||
|
```
|
||||||
|
|
||||||
|
**Considerations:**
|
||||||
|
- Key rotation strategy
|
||||||
|
- Performance impact on lookups
|
||||||
|
- Backup/recovery implications
|
||||||
|
<!-- SECTION:DESCRIPTION:END -->
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
<!-- AC:BEGIN -->
|
||||||
|
- [ ] #1 Encryption key securely stored in Worker secrets
|
||||||
|
- [ ] #2 Emails encrypted before D1 insert
|
||||||
|
- [ ] #3 Email lookup works via hash index
|
||||||
|
- [ ] #4 Decryption works for email display and sending
|
||||||
|
- [ ] #5 Existing emails migrated to encrypted format
|
||||||
|
- [ ] #6 Key rotation procedure documented
|
||||||
|
- [ ] #7 No plaintext emails in database
|
||||||
|
<!-- AC:END -->
|
||||||
Loading…
Reference in New Issue