嵌入式系統(tǒng)安全實(shí)驗(yàn) 插入密碼算法內(nèi)核用于加密
1.創(chuàng)建一個(gè)新密碼算法的內(nèi)核模塊,生成該模塊的.ko文件
2.將新.ko文件插入內(nèi)核
3.通過(guò)算法接口使用新密碼算法如加密、解密文件,驗(yàn)證其有效性
4.將新算法用在加密存儲(chǔ)和加密通信中
一.創(chuàng)建內(nèi)核模塊
.ko文件介紹
kernel object文件(內(nèi)核模塊),意義在于把內(nèi)核的一些功能移動(dòng)到內(nèi)核外,需要時(shí)插入內(nèi)核,不需要時(shí)卸載內(nèi)核
加載驅(qū)動(dòng)模塊:insmod命令
查看已加載的驅(qū)動(dòng)模塊列表:lsmod命令
二?編寫密碼算法
embcipher.c


embcipher.c對(duì)應(yīng)的Makefile文件

make命令編譯embcipher.c


將加密模塊插入內(nèi)核

三 驗(yàn)證有效性
用戶空間應(yīng)用程序

gcc編譯運(yùn)行,驗(yàn)證有效性

四 加密存儲(chǔ)
打開dmsetup工具,查看命令說(shuō)明

生成空文件,并加載為loop塊設(shè)備

Create創(chuàng)建
embcrypt 自定義設(shè)備名稱
--table:后跟具體參數(shù)
0:從0扇區(qū)開始
16384:扇區(qū)數(shù)
crypt:表示加密設(shè)備
aes-xts-plain64 由三部分組成,可根據(jù)自己需要選擇不同參數(shù)
因?yàn)檫x擇了xts所以需要256位key
0 是稱為Initialization Vector初始向量的偏移值。一般填0即可
最后面根據(jù)需要還可以加入"1 allow_discards"打開discard功能(相當(dāng)于trim)用于SSD優(yōu)化。不過(guò)這個(gè)功能不利于保密



