全盘加密
最近在琢磨一个产品里实现全盘加密的问题,简单来说就是加入存储卷的硬盘存储的是完全加密的数据。对于保存机密数据(例如患者数据)的存储设备来说,这一点十分重要,举例来说,如果硬盘出现故障,OP可以直接把硬盘拆下送回厂商,而不是必须做抹除数据的动作。
之前以为 AES-XTS 会导致延迟,实测发现 FreeBSD 的 GEOM_ELI 实现(配合 Xeon 5600 系列的 AES-NI 指令集)其实已经可以做到几乎没有差异了。因此,大致的想法是:
- 主机的非易失性存储上保存密钥(从 /dev/random 中dd),妥为备份;
- 所有的交换区均作加密(特别是在硬盘上的,如果有的话);
- 系统引导过程中使用保存的密钥;
做了个原型出来,先测测再说。