安全存儲中的安全文件和dirf.db文件中的數(shù)據(jù)內(nèi)容都是按照一定的格式保存的,主要由三部分組成:
? tee_fs_htree_image
? tee_fs_htree_node_image
? 數(shù)據(jù)區(qū)域塊
tee_fs_htree_image和tee_fs_htree_node_image結(jié)構(gòu)體中保存的是安全文件操作時(shí)使用到的重要數(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及標(biāo)記兩個(gè)tee_fs_htree_image哪個(gè)為最新的counter值。
tee_fs_htree_image中的imeta是按照元數(shù)據(jù)的方式經(jīng)加密對應(yīng)的數(shù)據(jù)獲得
tee_fs_htree_node_image
tee_fs_htree_node_image保存節(jié)點(diǎn)的哈希值、加密數(shù)據(jù)塊區(qū)域使用的IV值、標(biāo)記使用哪個(gè)data
block的ver的flag值以及加密需要被保存的數(shù)據(jù)時(shí)生成的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)加密生成的,該加密過程如圖所示。
上述加密操作過程中相關(guān)元素說明如下:
?FEK:安全文件和dirf.db文件在執(zhí)行加密操作時(shí)使用的密鑰,該值在文件創(chuàng)建時(shí)使用隨機(jī)數(shù)的方式生成。對已經(jīng)創(chuàng)建好的文件進(jìn)行操作時(shí),該值會從tee_fs_htree_image的enc_fek成員中使用TSK解密獲得;
? TSK:使用SSK和UUID執(zhí)行HMAC計(jì)算得到;
? 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)建文件或?qū)ee_fs_htree_image寫入文件中都會被隨機(jī)生成,最終會被寫入安全文件或dirf.db文件頭的頭部中;
? Meta Data:/data/tee目錄下每個(gè)文件中存放的tee_fs_htree_node_image的個(gè)數(shù)相關(guān)的數(shù)據(jù);
? AES_GCM:將enc_fek+meta iv+meta data使用FEK和meta IV進(jìn)行AES的GCM模式加密操作生成tag和Encryption Meta Data數(shù)據(jù);
? Tag:加密enc_fek+meta iv+meta data時(shí)生成的tag值,數(shù)據(jù)會被保存在tee_fs_htree_image中的tag成員中;
? Encryptoed Meta Data:加密enc_fek+meta iv+meta data時(shí)生成的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ū)域加密策略的加密過程如圖所示。
上述加密操作過程中相關(guān)元素說明如下:
? Encrypted FEK:使用TSK加密FEK得到,保存在tee_fs_htree_image的enc_fek中,最終會被寫入安全文件或者dirf.db文件頭的頭部中;
? TSK:使用SSK和UUID執(zhí)行HMAC計(jì)算得到;
? AES_ECB:將Encrypted FEK使用TSK進(jìn)行ECB模式的AES解密操作生成FEK;
? FEK:解密Encrypted FEK之后生成的FEK,用于加密需要被保存的數(shù)據(jù)塊;
? Block IV:每次加密數(shù)據(jù)區(qū)域中每個(gè)數(shù)據(jù)塊是都會隨機(jī)生成,然后被保存tee_fs_htree_node_image變量的IV成員中;
? Block Data:將需要被保存的數(shù)據(jù)更新到對應(yīng)的數(shù)據(jù)塊區(qū)域,然后重新加密后生成新的數(shù)據(jù)塊的密文數(shù)據(jù);
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7149瀏覽量
89601 -
安全存儲器
+關(guān)注
關(guān)注
0文章
11瀏覽量
7495 -
TEE
+關(guān)注
關(guān)注
0文章
29瀏覽量
10307
發(fā)布評論請先 登錄
相關(guān)推薦
labviewAES加解密小程序
如何利用MEMS和FPGA設(shè)計(jì)移動硬盤數(shù)據(jù)加解密系統(tǒng)?
如何利用MEMS強(qiáng)鏈和FPGA設(shè)計(jì)USB移動硬盤數(shù)據(jù)加解密系統(tǒng)?
硬件加解密的分類
硬件加解密主要優(yōu)點(diǎn)及引擎種類
STM32加解密技術(shù)
基于MEMS和FPGA的移動硬盤數(shù)據(jù)加解密系統(tǒng)
![基于MEMS和FPGA的移動硬盤<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>加解密</b>系統(tǒng)](https://file1.elecfans.com//web2/M00/A5/59/wKgZomUMOAKAWPFnAABipNKsmgU138.jpg)
基于MEMS強(qiáng)鏈和FPGA的USB移動硬盤數(shù)據(jù)加解密系統(tǒng)
![基于MEMS強(qiáng)鏈和FPGA的USB移動硬盤<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>加解密</b>系統(tǒng)](https://file1.elecfans.com//web2/M00/A5/59/wKgZomUMOAWAQfaGAABFUSRA8lM760.jpg)
基于FPGA的可編程AES加解密IP
![基于FPGA的可編程AES<b class='flag-5'>加解密</b>IP](https://file1.elecfans.com/web2/M00/BB/A1/wKgZomWctPuAMZalAAARq0WWAIA369.jpg)
評論