我正计划zfs load-key pool/set
通过标准输入传递加密密钥。传递的密钥由另一个 HEX 格式的程序生成,并且数据集被配置为具有keylocation=prompt, keyformat=hex
,因此密钥可以通过标准输入传递,如下所示someprogram | zfs load-key pool/set
:
现在我担心即使我真的不希望这种情况发生,shell 是否有可能将这个传递的密钥数据写入磁盘的某个位置?如果在将 STDOUT 传输到 STDIN 的过程中将密钥写入磁盘的某个位置,那么它可能会被恢复,因为主 os 磁盘本身没有加密。
管道(或临时文件系统和命名的 FIFO 管道)似乎不直接写入磁盘,正如 Glenn Jackman 上面分别评论的那样,here和here。
但是,敏感数据的写入可能会通过内存交换(或休眠)间接发生,甚至可能比用户知道检查未删除的未加密文件更出乎意料 - 除非加密或禁用。