数据加密作为数据安全的重要落地方案之一,数据加密所涉及到的场景过多,从传输(敏感数据加密传输)、使用与交互(隐私计算)、存储等全生命周期都有数据加密的要求,这里我仅以数据存储加密为场景,窥探数据加密的全生命周期。这里说的数据是指高敏感数据,有强保护需求的数据。
架构设计
在标准化SDLC流程中,数据保护的要求应该作为安全设计中的最重要的一步之一,即在设计应用程序的总体架构时,需要重点考虑保护数据,通过威胁建模识别数据在各个阶段可能存在的安全风险即,你试图保护数据不受谁的侵害。很多企业落地了密钥管理系统,整体使数据加密减少了很多成本,但是密钥管理系统的管理又是一个额外的成本,所以要选取自己适配的方案,可能小厂自己生成安全的随机数就能够满足需求,而公有云也有很多提供了加密的服务,不追求绝对的安全,适配的就是最好的。
在何处执行加密
可以根据公司业务的不同选取不同层次上加密方案执行加密,例如:
- 在应用层(含API层)。
- 在数据库层(例如,SQL Server TDE)。
- 在文件系统层(例如,BitLocker 或 LUKS)。
- 在硬件层(例如,加密的 RAID 卡或 SSD)。
加密层级 | 常用场景举例 | 优势 | 劣势 |
应用层 | - 对用户数据进行加密处理,如用户密码,对敏感信息进行加密存储,如信用卡信息 | - 灵活控制加密的数据和时机 - 易于集成到现有应用程序中 | - 需要确保加密算法的正确实现 加密和解密可能影响应用程序性能 |
数据库层 | - 对存储在数据库中的敏感数据进行加密,如个人身份信息- 使用透明数据加密(TDE) | - 数据在数据库中的安全性得到增强 - 无需应用程序更改即可加密数据 | - 可能影响数据库查询性能 - 需要管理加密密钥 |
文件系统层 | - 对存储在服务器上的敏感文件进行加密,如日志文件 使用文件级加密软件 | - 保护存储在磁盘上的静态数据 - 可以防止物理设备的未授权访问 | - 加密和解密过程可能影响I/O性能 - 需要确保加密软件的安全性 |
硬件层 | - 使用自加密硬盘(SED)保护数据 用硬件安全模块(HSM)进行密钥管理 | - 提供硬件级别的安全保护 - 难以被软件攻击破解 | - 成本较高 可能需要特定的硬件支持和维护 |
API层 | - 对 |