密钥管理
从上节中我们了解到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添加。
-
内核
+关注
关注
3文章
1359浏览量
40179 -
Linux
+关注
关注
87文章
11196浏览量
208667 -
磁盘
+关注
关注
1文章
359浏览量
25152 -
密钥管理
+关注
关注
0文章
23浏览量
7573
发布评论请先 登录
相关推荐
评论