安全存儲中的安全文件和dirf.db文件中的數(shù)據(jù)內容都是按照一定的格式保存的,主要由三部分組成:
? tee_fs_htree_image
? tee_fs_htree_node_image
? 數(shù)據(jù)區(qū)域塊
tee_fs_htree_image和tee_fs_htree_node_image結構體中保存的是安全文件操作時使用到的重要數(shù)據(jù)的密文數(shù)據(jù),
tee_fs_htree_image區(qū)域中的數(shù)據(jù)是對元數(shù)據(jù)經(jīng)加密重要數(shù)據(jù)后生成的。
而數(shù)據(jù)區(qū)域塊和tee_fs_htree_node_image中的數(shù)據(jù)則是對數(shù)據(jù)塊數(shù)據(jù)經(jīng)加密后獲得的。
5.1、各種類型數(shù)據(jù)的組成及作用
tee_fs_htree_image
tee_fs_htree_image主要保存加密頭部的IV值、加密安全文件的FEK使用的enc_fek以及加密之后生成的tag、imeta及標記兩個tee_fs_htree_image哪個為最新的counter值。
tee_fs_htree_image中的imeta是按照元數(shù)據(jù)的方式經(jīng)加密對應的數(shù)據(jù)獲得
tee_fs_htree_node_image
tee_fs_htree_node_image保存節(jié)點的哈希值、加密數(shù)據(jù)塊區(qū)域使用的IV值、標記使用哪個data
block的ver的flag值以及加密需要被保存的數(shù)據(jù)時生成的tag數(shù)據(jù)。
tee_fs_htree_node_imaget中的tag跟數(shù)據(jù)塊中的數(shù)據(jù)則是按照數(shù)據(jù)塊加密策略經(jīng)加密后獲得。
數(shù)據(jù)塊區(qū)域
數(shù)據(jù)塊區(qū)域保存的是需要被保存的數(shù)據(jù)的密文數(shù)據(jù)。
5.2、元數(shù)據(jù)的加密
tee_fs_htree_image區(qū)域中的數(shù)據(jù)是按照元數(shù)據(jù)方式經(jīng)加密生成的,該加密過程如圖所示。
上述加密操作過程中相關元素說明如下:
?FEK:安全文件和dirf.db文件在執(zhí)行加密操作時使用的密鑰,該值在文件創(chuàng)建時使用隨機數(shù)的方式生成。對已經(jīng)創(chuàng)建好的文件進行操作時,該值會從tee_fs_htree_image的enc_fek成員中使用TSK解密獲得;
? TSK:使用SSK和UUID執(zhí)行HMAC計算得到;
? AES_ECB:將FEK使用TSK經(jīng)AES的ECB模式加密操作后生成enc_fek;
? Encrypted FEK:使用TSK加密FEK得到,保存在tee_fs_htree_image的enc_fek中,最終會被寫入安全文件或者dirf.db文件頭的頭部中;
? Meta
IV:使用安全存儲創(chuàng)建文件或將tee_fs_htree_image寫入文件中都會被隨機生成,最終會被寫入安全文件或dirf.db文件頭的頭部中;
? Meta Data:/data/tee目錄下每個文件中存放的tee_fs_htree_node_image的個數(shù)相關的數(shù)據(jù);
? AES_GCM:將enc_fek+meta iv+meta data使用FEK和meta IV進行AES的GCM模式加密操作生成tag和Encryption Meta Data數(shù)據(jù);
? Tag:加密enc_fek+meta iv+meta data時生成的tag值,數(shù)據(jù)會被保存在tee_fs_htree_image中的tag成員中;
? Encryptoed Meta Data:加密enc_fek+meta iv+meta data時生成的imeta值,數(shù)據(jù)會被保存在tee_fs_htree_image中的imeta成員中。
5.3、數(shù)據(jù)塊區(qū)域的加密策略
數(shù)據(jù)塊區(qū)域和tee_fs_htree_node_image中的數(shù)據(jù)是按照數(shù)據(jù)塊區(qū)域的加密策略經(jīng)加密明文數(shù)據(jù)生成的,數(shù)據(jù)塊區(qū)域加密策略的加密過程如圖所示。
上述加密操作過程中相關元素說明如下:
? Encrypted FEK:使用TSK加密FEK得到,保存在tee_fs_htree_image的enc_fek中,最終會被寫入安全文件或者dirf.db文件頭的頭部中;
? TSK:使用SSK和UUID執(zhí)行HMAC計算得到;
? AES_ECB:將Encrypted FEK使用TSK進行ECB模式的AES解密操作生成FEK;
? FEK:解密Encrypted FEK之后生成的FEK,用于加密需要被保存的數(shù)據(jù)塊;
? Block IV:每次加密數(shù)據(jù)區(qū)域中每個數(shù)據(jù)塊是都會隨機生成,然后被保存tee_fs_htree_node_image變量的IV成員中;
? Block Data:將需要被保存的數(shù)據(jù)更新到對應的數(shù)據(jù)塊區(qū)域,然后重新加密后生成新的數(shù)據(jù)塊的密文數(shù)據(jù);
-
數(shù)據(jù)
+關注
關注
8文章
7249瀏覽量
91317 -
安全存儲器
+關注
關注
0文章
12瀏覽量
7532 -
TEE
+關注
關注
0文章
29瀏覽量
10466
發(fā)布評論請先 登錄
labviewAES加解密小程序
如何利用MEMS和FPGA設計移動硬盤數(shù)據(jù)加解密系統(tǒng)?
如何利用MEMS強鏈和FPGA設計USB移動硬盤數(shù)據(jù)加解密系統(tǒng)?
硬件加解密的分類
硬件加解密主要優(yōu)點及引擎種類
STM32加解密技術
基于MEMS和FPGA的移動硬盤數(shù)據(jù)加解密系統(tǒng)

基于MEMS強鏈和FPGA的USB移動硬盤數(shù)據(jù)加解密系統(tǒng)

基于FPGA的可編程AES加解密IP

評論