安全存儲中的安全文件和dirf.db文件中的數據內容都是按照一定的格式保存的,主要由三部分組成:
? tee_fs_htree_image
? tee_fs_htree_node_image
? 數據區域塊
tee_fs_htree_image和tee_fs_htree_node_image結構體中保存的是安全文件操作時使用到的重要數據的密文數據,
tee_fs_htree_image區域中的數據是對元數據經加密重要數據后生成的。
而數據區域塊和tee_fs_htree_node_image中的數據則是對數據塊數據經加密后獲得的。
5.1、各種類型數據的組成及作用
tee_fs_htree_image
tee_fs_htree_image主要保存加密頭部的IV值、加密安全文件的FEK使用的enc_fek以及加密之后生成的tag、imeta及標記兩個tee_fs_htree_image哪個為最新的counter值。
tee_fs_htree_image中的imeta是按照元數據的方式經加密對應的數據獲得
tee_fs_htree_node_image
tee_fs_htree_node_image保存節點的哈希值、加密數據塊區域使用的IV值、標記使用哪個data
block的ver的flag值以及加密需要被保存的數據時生成的tag數據。
tee_fs_htree_node_imaget中的tag跟數據塊中的數據則是按照數據塊加密策略經加密后獲得。
數據塊區域
數據塊區域保存的是需要被保存的數據的密文數據。
5.2、元數據的加密
tee_fs_htree_image區域中的數據是按照元數據方式經加密生成的,該加密過程如圖所示。
上述加密操作過程中相關元素說明如下:
?FEK:安全文件和dirf.db文件在執行加密操作時使用的密鑰,該值在文件創建時使用隨機數的方式生成。對已經創建好的文件進行操作時,該值會從tee_fs_htree_image的enc_fek成員中使用TSK解密獲得;
? TSK:使用SSK和UUID執行HMAC計算得到;
? AES_ECB:將FEK使用TSK經AES的ECB模式加密操作后生成enc_fek;
? Encrypted FEK:使用TSK加密FEK得到,保存在tee_fs_htree_image的enc_fek中,最終會被寫入安全文件或者dirf.db文件頭的頭部中;
? Meta
IV:使用安全存儲創建文件或將tee_fs_htree_image寫入文件中都會被隨機生成,最終會被寫入安全文件或dirf.db文件頭的頭部中;
? Meta Data:/data/tee目錄下每個文件中存放的tee_fs_htree_node_image的個數相關的數據;
? AES_GCM:將enc_fek+meta iv+meta data使用FEK和meta IV進行AES的GCM模式加密操作生成tag和Encryption Meta Data數據;
? Tag:加密enc_fek+meta iv+meta data時生成的tag值,數據會被保存在tee_fs_htree_image中的tag成員中;
? Encryptoed Meta Data:加密enc_fek+meta iv+meta data時生成的imeta值,數據會被保存在tee_fs_htree_image中的imeta成員中。
5.3、數據塊區域的加密策略
數據塊區域和tee_fs_htree_node_image中的數據是按照數據塊區域的加密策略經加密明文數據生成的,數據塊區域加密策略的加密過程如圖所示。
上述加密操作過程中相關元素說明如下:
? Encrypted FEK:使用TSK加密FEK得到,保存在tee_fs_htree_image的enc_fek中,最終會被寫入安全文件或者dirf.db文件頭的頭部中;
? TSK:使用SSK和UUID執行HMAC計算得到;
? AES_ECB:將Encrypted FEK使用TSK進行ECB模式的AES解密操作生成FEK;
? FEK:解密Encrypted FEK之后生成的FEK,用于加密需要被保存的數據塊;
? Block IV:每次加密數據區域中每個數據塊是都會隨機生成,然后被保存tee_fs_htree_node_image變量的IV成員中;
? Block Data:將需要被保存的數據更新到對應的數據塊區域,然后重新加密后生成新的數據塊的密文數據;
-
數據
+關注
關注
8文章
7048瀏覽量
89072 -
安全存儲器
+關注
關注
0文章
11瀏覽量
7477 -
TEE
+關注
關注
0文章
29瀏覽量
10269
發布評論請先 登錄
相關推薦
評論