残余信息保护
大约 3 分钟
残余信息保护
1. 功能说明
残余信息保护用于防止敏感数据在资源释放后以残留形式继续存在。当数据库文件或内存对象完成使用并进入资源清理流程时,TimechoDB 会对纳入保护范围的资源执行相应处理,从而降低资源重新分配后残留数据被恢复和利用的风险。该功能仅针对明确纳入保护范围的文件和内存对象生效,不表示对所有数据库文件及全部进程内存执行全面擦除。
启用残余信息保护后,TimechoDB 会在受支持的资源清理流程中执行以下处理:
文件:在删除或截断受保护文件前覆盖文件内容。
内存:在受保护的内存对象释放、归还内存池或被新对象替换前清理其中的数据。
注意:该功能自 V2.0.12.1 起支持。
2. 保护范围
残余信息保护只对本节列出的文件和内存对象生效,不表示对数据库目录中的所有文件或进程使用的全部内存执行擦除。
2.1 文件
| 节点 | 受保护的主要文件 |
|---|---|
| ConfigNode | ConfigRegion 共识日志和状态机快照;用户及角色 profile 文件;Pipe 接收端临时文件;已安装的 Pipe 插件文件。 |
| DataNode | 顺序和乱序空间中的 TsFile、resource、mods 文件;Object 文件;数据快照文件;Pipe TsFile 硬链接和接收端临时文件;LOAD 任务暂存文件;WAL 和 checkpoint 文件;DataRegion、SchemaRegion 的共识日志与快照;SchemaRegion 本地元数据文件;查询、排序、修复、UDF、Trigger 和 Pipe 插件产生的临时文件。 |
上述文件在进入已支持的删除或截断流程时执行擦除。
2.2 内存
受保护的内存对象主要包括:
WAL 的工作缓冲区、空闲缓冲区和同步缓冲区:在写盘完成后归还复用,或者关闭、调整缓冲区大小前进行清理。
WAL 压缩复用缓冲区:在压缩内容写盘完成后,以及关闭或调整大小前进行清理。
MemTable 使用的池化基础类型数组:在 TVList 或 AlignedTVList 生命周期结束、数组归还内存池或被丢弃前进行清理。点删除仅标记数据,不会在数据仍可能被查询或刷盘任务引用时提前擦除数组。
用户密码:在用户被删除后清理内存中保留的密码信息。
3. 开启方式
通过 enable_secure_erase 参数开启或关闭残余信息保护,参数说明如下:
| 参数 | 类型 | 默认值 | 生效方式 | 说明 |
|---|---|---|---|---|
enable_secure_erase | Boolean | false | 重启服务生效 | 是否开启残余信息保护。true 表示开启,false 表示关闭。 |
在 iotdb-system.properties 中配置:
enable_secure_erase=true只有具备 SYSTEM 权限的用户才能修改该参数。
4. 注意事项
该功能不支持 Windows 系统。
*.lock文件不在当前保护范围内。