发布网友 发布时间:2022-04-24 01:44
共1个回答
热心网友 时间:2023-09-15 18:17
如果你选择了这个选项,除了用户home文件夹目录中的数据被加密了之外,不会引起其他任何的改变。令我非常好奇的是,在解密目录的过程中,系统并没有要求用户输入任何的密码,那么这整个过程是如何实现的呢?经过研究和分析之后,我发现Ubuntu发行版已经将eCryptfs嵌入了GNU/Linux内核之中了,而且Ubuntu发行版的系统还会调用ecryptfs-utils工具来对home文件夹进行加密处理。
在我分析完相关的代码之后,我终于明白了这种加密是如何执行的。首先,系统会生成一个长度为16字节的随机密码。这个密码将会配合AES-128加密算法一起来加密和解密文件夹中的数据。这个密码会以加密的形式存储在文件之中:
/home/.ecrpytfs/$USER/.ecrpytfs/wrapped-passphrase
对密码进行加密的过程被称为“密钥封装(key wrapping)”。为了生成一个用于封装密码的封装密钥,一个长度为8字节的Salt值和密码将会链接在一起,然后一同作为SHA-512加密算法的输入数据。处理结果将会进行65535次哈希处理。