密鑰管理
從上節(jié)中我們了解到eCryptfs中核心機(jī)制中主要有兩個(gè)KEY,即FEKEK和FEK,前者和用戶輸入passphrase_passwd有關(guān),后者是每個(gè)文件唯一的隨機(jī)數(shù)。下面結(jié)合ecryptfs-utils源碼,分別介紹這兩個(gè)KEY的生成過(guò)程。
1、用戶passphrase_passwd 到 FEKEK的轉(zhuǎn)換
從C測(cè)試用例中看到,opt參數(shù)只有key_sig信息,并不指定FEKEK。且mount操作前提是已添加對(duì)應(yīng)key(FEKEK)到內(nèi)核keyring。腳本命令實(shí)際是mount helper協(xié)助(隱式)完成了添加keyring的操作。
核心函數(shù)即C用例中調(diào)用的ecryptfs_add_passphrase_key_to_key_ring。
首先ecryptfs_generate_passphrase_auth_tok會(huì)根據(jù)用戶輸入的passphrases信息、salt信息(參數(shù)指定,ecryptfs-utils有一個(gè)默認(rèn)值ECRYPTFS_DEFAULT_SALT如下圖),在generate_passphrase_sig函數(shù)中進(jìn)行hash計(jì)算,并將結(jié)果記錄在變量fekek中,然后對(duì)fekek再進(jìn)行一次hash計(jì)算,結(jié)果記錄為passphrase_sig/auth_token_sig,并返回給用戶后續(xù)使用(key_sig)。
generate_payload則為每一次session創(chuàng)建一個(gè)auth_tok結(jié)構(gòu)體,記錄更多加解密相關(guān)信息。
最后調(diào)用ecryptfs_add_auth_tok_to_keyring中,將對(duì)應(yīng)FEKEK、key_sig、salt等信息都添加到keyring。至此就完成了從passphrase_passwd到FEKEK的轉(zhuǎn)換和內(nèi)核keyring添加。
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1416瀏覽量
41379 -
Linux
+關(guān)注
關(guān)注
87文章
11508瀏覽量
213623 -
磁盤
+關(guān)注
關(guān)注
1文章
390瀏覽量
25816 -
密鑰管理
+關(guān)注
關(guān)注
0文章
23瀏覽量
7723
發(fā)布評(píng)論請(qǐng)先 登錄
Linux內(nèi)核的作用

使用CAAM安全密鑰的磁盤加密,設(shè)備映射器在調(diào)用dmsetup時(shí)啟動(dòng)報(bào)錯(cuò)怎么解決?
Arm密鑰管理單元規(guī)范
Linux的內(nèi)核教程
安全組播密鑰管理方案研究
基于非對(duì)稱加密的根密鑰管理方案

基于三叉樹的OFT組密鑰管理協(xié)議

網(wǎng)絡(luò)安全密鑰是什么_網(wǎng)絡(luò)安全密鑰怎么修改
密鑰管理系統(tǒng)概述_密鑰管理系統(tǒng)架構(gòu)圖

LINUX電源管理

Linux內(nèi)核的安全性對(duì)Android的影響
一文解讀密鑰管理與密鑰分散
磁盤eCryptfs加密測(cè)試用例

eCryptfs整體架構(gòu)和核心加解密機(jī)制介紹

評(píng)論