使用 inode 字段来存储文件的加密密钥
我正在研究文件加密和解密的固有内核功能;带有某些预定义前缀的目录名称将自动加密。现在我必须安全地存储文件的加密密钥,我可以使用索引节点的任何未使用的字段吗?它是否有效或请提出任何其他想法。
I am working on inherent kernel functionality for file encryption and decryption ; directory name with some predefined prefix will be automatically be encrypted. Now I am stucked to store encryption key for file securely can I use any unused field of inode for that? Will it be efficient or please suggest any other idea.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将加密密钥存储在加密文件的索引节点中是弄巧成拙的 - 您可以使用磁盘编辑器等读取此密钥并访问文件内容,从而破坏加密。您需要为此提供一个 /proc 接口,以便用户空间可以决定如何提供此密钥(例如,提示用户输入经过哈希处理的密码以获得加密密钥)。
内核不应将加密密钥写入任何地方,它只应在将其写入特殊的 /proc 文件时接收它。您可以使用另一个 /proc 文件告诉内核标记加密目录的目录前缀。
如果您需要在文件中存储一些加密元数据(不是加密密钥!),请像 eCryptfs 一样将其放入标头中。
Storing the encryption key in the inode of a file which is encrypted is self-defeating - you can read this key using e.g. a disk editor and access the file content, thereby defeating encryption. You need to provide a /proc interface for that, so userspace can decide how this key is supplied (e.g. the user is prompted for a password which is hashed to obtain the encryption key).
The kernel should not write the encryption key anywhere, it should only receive it when it is written to a special /proc file. You can use another /proc file to tell the kernel the directory prefix that marks encrypted directories.
If you need to store some encryption metadata in the file (not the encryption key!), put it in a header like eCryptfs does.