未完,待补充
透明加密概念:
“透明加密”是一种对用户无感知、无操作干预的加密技术,广泛应用于数据保护、终端安全和文件防泄漏领域。它的核心目标是:让加密和解密的过程对用户透明,不影响正常使用体验。
特征:
自动化
: 加密、解密过程由系统或驱动自动完成,无需用户手动干预。实时性
: 加密和解密发生在 I/O 层(如文件读写时),几乎不影响性能。应用无感
: 不改变原有操作系统、应用程序的使用方式。权限控制
:通常结合用户身份、应用程序白名单、网络环境等判断是否解密。防止泄露
: 防止复制、转发、打印等敏感操作,支持审计与追踪。
实现流程:
- 总架构示例:
- 开发涉及的核心模块
- 工作:虚拟一个盘符或路径,把用户的所有文件操作拦截下来(Read/Write/Create 等)
- 工具:Dokany + Go
- 加解密逻辑(对称加密):
-
推荐:AES-256-GCM 或 ChaCha20-Poly1305
-
加密粒度:建议按文件粒度加密(块加密也可)
-
每个文件独立密钥(推荐),主密钥派生子密钥
-
支持自动过期/吊销
-
加密元数据:文件头保存加密信息(magic + nonce + tag)
-
- 非白名单进程(如 notepad.exe)打开文件,返回失败或乱码
加密后文件结构示意:
Magic Header | 元数据区(JSON) | 加密数据体 | 验证标签(Tag) |
---|---|---|---|
(固定标识: 4B) | 变量长度 | 由 AES-GCM 加密 | GCM 的认证标签 |
说明: |
Magic Header
比如 0xA1B2C3D4,用于识别文件是否被本系统加密过
元数据区(Metadata)
包括算法版本、加密时间、Nonce、文件原始大小、扩展字段等
密文区(Encrypted Data)
用 AES-GCM 加密后的完整文件内容
Tag GCM
自动生成的 16 字节认证标签,用于验证完整性