密钥管理
从上节中我们了解到eCryptfs中核心机制中主要有两个KEY,即FEKEK和FEK,前者和用户输入passphrase_passwd有关,后者是每个文件唯一的随机数。下面结合ecryptfs-utils源码,分别介绍这两个KEY的生成过程。
1、用户passphrase_passwd 到 FEKEK的转换
从C测试用例中看到,opt参数只有key_sig信息,并不指定FEKEK。且mount操作前提是已添加对应key(FEKEK)到内核keyring。脚本命令实际是mount helper协助(隐式)完成了添加keyring的操作。
核心函数即C用例中调用的ecryptfs_add_passphrase_key_to_key_ring。
首先ecryptfs_generate_passphrase_auth_tok会根据用户输入的passphrases信息、salt信息(参数指定,ecryptfs-utils有一个默认值ECRYPTFS_DEFAULT_SALT如下图),在generate_passphrase_sig函数中进行hash计算,并将结果记录在变量fekek中,然后对fekek再进行一次hash计算,结果记录为passphrase_sig/auth_token_sig,并返回给用户后续使用(key_sig)。
generate_payload则为每一次session创建一个auth_tok结构体,记录更多加解密相关信息。





最后调用ecryptfs_add_auth_tok_to_keyring中,将对应FEKEK、key_sig、salt等信息都添加到keyring。至此就完成了从passphrase_passwd到FEKEK的转换和内核keyring添加。

-
内核
+关注
关注
4文章
1476浏览量
43095 -
Linux
+关注
关注
88文章
11818浏览量
219576 -
磁盘
+关注
关注
1文章
401浏览量
26592 -
密钥管理
+关注
关注
0文章
23浏览量
7815
发布评论请先 登录
Linux内核的作用
使用CAAM安全密钥的磁盘加密,设备映射器在调用dmsetup时启动报错怎么解决?
安全组播密钥管理方案研究
基于非对称加密的根密钥管理方案
基于三叉树的OFT组密钥管理协议
网络安全密钥是什么_网络安全密钥怎么修改
Linux内核的安全性对Android的影响
磁盘eCryptfs加密测试用例
eCryptfs整体架构和核心加解密机制介绍
Linux内核安全eCryptfs密钥管理
评论