- 主题:Linux下的named pipe会被swap吗
最近开发一个小应用, 在Linux设备上要加密一个文件。我们是从硬件设备上获得一个秘钥来加密另一个秘钥。第二个秘钥是用来加密文件的。然后用第一个秘钥加密第二个秘钥,可以保存。
我的方案是第一个秘钥用原来的程序,稍作修改,把结果输出到文件,另写一个程序来进行加密,从文件中读取秘钥,从拎一个文件读取内容,加密结果输出到第三个文件。反馈说不行,怕文件被swap了,就是去保密了。
那我用pipe可以吧,stdout | stdin.
有考虑,会不会程序运行中有的函数随时把什么信息输出了到stdout。
那我用有名字的pipe呢?这个会被swap吗?
--
FROM 98.42.143.*
硬件本身的加密的内容太小,大约几兆,而我可能需要7-32兆,所以只能在内存中运行程序加密。
一般来说,一个程序内部生成秘钥,加密,然后加密秘钥,然后扔掉秘钥,就安全了。如果这个也能swap,那么这个人反对存到/tmp的理由就不成立了。我明天把这个说法告诉他,如果正在运行的程序swap了,和把秘钥存到/tmp里比有什么优势?
另一个人说我们这个设备就没有swap的分区,怎么swap。但是第一个人说,那以后改了呢?说实在的,其实不可能改,这个设备内存挺大,运行的程序又不多,我的程序是在系统刚启动就运行,哪有那么多机会swap.
【 在 ilovecpp 的大作中提到: 】
: 你先确定一下反对意见的具体意思。
: swap普通用户没有读权限。如果他担心密钥泄露给普通用户,那不会的。
: 如果是密钥写到磁盘就算泄露,那还挺麻烦的。
: ...................
--
FROM 98.42.143.*
GetHardwareDerivedKey
【 在 JulyClyde 的大作中提到: 】
: 首先,“从硬件设备上获得一个密钥”就已经错了
--
FROM 98.42.143.*