日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Linux下一種ELF文件代碼簽名驗(yàn)證機(jī)制( 二 )


3.4 公鑰管理
在解密簽名數(shù)據(jù)時(shí) , 需要用到簽名者的證書(shū)公鑰 。由于可能存在多個(gè)簽名者簽發(fā)的代碼 , 因此也就存在多個(gè)簽名者的證書(shū) 。為了節(jié)省系統(tǒng)開(kāi)銷(xiāo) , 盡量減小對(duì)系統(tǒng)性能的影響 , 我們必須高效地管理這些證書(shū)公鑰 。為此 , 我們?cè)谙到y(tǒng)核心空間中維護(hù)了一個(gè)信任公鑰鏈表 , 所有被信任者的公鑰都將被放在該公鑰鏈表中 。當(dāng)系統(tǒng)驗(yàn)證代碼的簽名值時(shí) , 就可以直接從公鑰鏈表中取得相應(yīng)的公鑰 。如果公鑰鏈表中沒(méi)有相應(yīng)的公鑰 , 則表示該代碼的簽名者不被信任 , 因而驗(yàn)證失敗 。系統(tǒng)中的被信任公鑰是可配置的 , 系統(tǒng)在啟動(dòng)時(shí)將根據(jù)配置文件自動(dòng)初始化核心公鑰鏈表 , 系統(tǒng)管理員也可以隨時(shí)對(duì)其刷新或者修改 。3.5 軟件結(jié)構(gòu) 本機(jī)制的實(shí)現(xiàn)主要包括用戶(hù)空間的簽名驗(yàn)證工具和核心空間的簽名驗(yàn)證機(jī)制模塊兩個(gè)部分 。其中 , 用戶(hù)空間的簽名驗(yàn)證工具是本機(jī)制的輔助工具 , 其主要功能是對(duì) ELF 文件進(jìn)行簽名和設(shè)置 , 同時(shí)也可對(duì) ELF 文件的簽名值進(jìn)行驗(yàn)證 , 在此不再贅述;核心空間的簽名驗(yàn)證機(jī)制模塊可以分為驗(yàn)證策略模塊以及公鑰管理模塊 。
3.5.1 驗(yàn)證策略模塊 驗(yàn)證策略模塊負(fù)責(zé)執(zhí)行簽名值的驗(yàn)證策略 , 同時(shí)負(fù)責(zé)管理已驗(yàn)證文件的緩存鏈表 。當(dāng)用戶(hù)請(qǐng)求執(zhí)行 ELF 文件時(shí) , 該模塊就會(huì)執(zhí)行如圖 3-2 所示的驗(yàn)證策略 。驗(yàn)證簽名值時(shí) , 系統(tǒng)將首先查詢(xún)已驗(yàn)證文件緩存鏈表 , 如果發(fā)現(xiàn)被驗(yàn)證文件已經(jīng)被驗(yàn)證過(guò) , 那么就不必再進(jìn)行重復(fù)驗(yàn)證 , 直接采用上次的驗(yàn)證結(jié)果 。如果緩存鏈表中沒(méi)有被執(zhí)行文件 , 那么就向公鑰管理模塊請(qǐng)求簽名者公鑰 , 然后再驗(yàn)證其簽名值 。如果驗(yàn)證正確 , 則說(shuō)明被執(zhí)行文件是完整和可信的 , 就讓其執(zhí)行;否則就禁止執(zhí)行 。另外 , 為了保證已驗(yàn)證文件緩存鏈表和實(shí)際文件的一致性 , 我們必須監(jiān)視 ELF 文件的修改情況 , 當(dāng)某一 ELF 文件被修改時(shí) , 我們應(yīng)當(dāng)立即清除已驗(yàn)證文件緩存鏈表中與該文件相關(guān)的驗(yàn)證結(jié)果 。3.5.2 公鑰管理模塊 公鑰管理模塊主要負(fù)責(zé)對(duì)信任公鑰鏈表進(jìn)行管理 , 如:初始化鏈表 , 獲取、添加以及刪除公鑰節(jié)點(diǎn)等 。信任公鑰鏈表由一系列的公鑰節(jié)點(diǎn)組成 , 如圖 3-3 所示 。圖 3-3 核心公鑰鏈表 其中 key_id 是對(duì)應(yīng)公鑰的 MD5 哈希值 , 長(zhǎng)度為 16 個(gè)字節(jié) 。從理論上說(shuō) , 不同公鑰的 key_id 相同的概率接近于 2 128 分之一 。在很大范圍內(nèi) , 我都可以認(rèn)為 key_id 和公鑰是一一對(duì)應(yīng)的 。因此 , 我們將 key_id 作為每個(gè)公鑰的唯一標(biāo)識(shí) 。3.6 性能測(cè)試 表 3-3 是一組簡(jiǎn)單的測(cè)試數(shù)據(jù) , 這些數(shù)據(jù)是通過(guò)多次執(zhí)行后取得的平均值 。從中可以看出 , 通過(guò)使用分級(jí)機(jī)制和緩存機(jī)制 , 系統(tǒng)開(kāi)銷(xiāo)增加不到 5% , 大大減小了對(duì)系統(tǒng)性能的影響 。4、結(jié)束語(yǔ) 代碼簽名及驗(yàn)證的主要目的是防止執(zhí)行病毒以及木馬程序等惡意代碼 , 提高操作系統(tǒng)的安全性;同時(shí)也是為了保護(hù)軟件開(kāi)發(fā)者以及使用者的利益 , 軟件開(kāi)發(fā)者可以防止他人冒名頂替 , 而軟件使用者也可以確認(rèn)軟件的真實(shí)性和完整性 。【Linux下一種ELF文件代碼簽名驗(yàn)證機(jī)制】目前 , 也有很多系統(tǒng)采用安裝時(shí)驗(yàn)證代碼簽名的機(jī)制 , 如微軟的 windows 系列操作系統(tǒng) 。但是 , 僅僅在安裝時(shí)驗(yàn)證代碼簽名存在很大的局限性 , 它無(wú)法檢測(cè)程序安裝后對(duì)代碼的任何修改 。因此 , 采用執(zhí)行時(shí)驗(yàn)證代碼簽名的機(jī)制將大大提高系統(tǒng)的安全性 。但安全性增強(qiáng)的同時(shí)卻導(dǎo)致了系統(tǒng)效率的降低 。為了取得安全性與效率的平衡 , 本文提出了分級(jí)驗(yàn)證的機(jī)制 。對(duì)安全要求高的系統(tǒng) , 則犧牲一定的效率來(lái)提高系統(tǒng)安全性;對(duì)安全性要求較低的系統(tǒng) , 則犧牲一定的安全性來(lái)提高系統(tǒng)效率 。

推薦閱讀