999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

無校驗值比對的可信鏈建立方法

2016-12-28 01:22:54劉濤董亞楠
現代計算機 2016年33期
關鍵詞:程序

劉濤,董亞楠

(四川大學計算機學院,成都 610000)

無校驗值比對的可信鏈建立方法

劉濤,董亞楠

(四川大學計算機學院,成都 610000)

可信平臺模塊(TPM)具有對度量校驗值進行硬件級保護等特點,在可信引導過程中起到至關重要的作用,進而有力保障用戶計算環境的安全性。然而目前尚有大量不具備TPM硬件的計算機,如何實現其可信引導從而建立安全的計算環境仍然亟待解決。針對在沒有TPM硬件的環境中度量校驗值安全性難以保證的問題,提出一種無校驗值比對的可信鏈建立方法。這種方法采用在操作系統引導時輸入密鑰來動態解碼二進制指令流的模式,充分利用在操作系統引導這一特殊時期軟硬件環境尚不完整,嘗試破解密鑰代價高昂的特點。通過實驗驗證這種方法的有效性。

可信鏈;可信度量;可信引導

0 引言

隨著信息產業的高速發展,個人電腦、手機、智能終端等電子設備越來越普及。然而普及的背后隱藏著越來越巨大的信息安全危機。電腦病毒、手機病毒、木馬后門等不安全的因素層出不窮,給廣大用戶帶來了嚴重威脅。病毒常常篡改操作系統運行所必須的關鍵部分,并偷偷在用戶不知情的情況下運行,從而達到監視用戶行為,盜取破壞用戶敏感數據之目的。

保障系統啟動過程的安全性對于建立安全的計算環境至關重要。為了保證系統的啟動過程是安全可信的,文獻[1]和[5]采用了可信鏈機制:即先確立一個可信任的根,從這個根出發,對下一個啟動步驟進行可信度量,如果度量成功,則將其納入可信鏈,并將系統控制權交給它;反之則認為該步驟被篡改,不可信而啟動失敗。不斷重復這一過程,可信鏈不斷延長,直至系統啟動完畢。那么就可以認為,系統的啟動過程是可信的,安全的。可信根是可信鏈的起點;可信度量則決定了可信鏈延展性。這兩項在可信鏈的建立過程中相輔相成,缺一不可。

正是由于可信根和可信度量在可信鏈建立過程中的重要性,工業界和學術界普遍采用將二者結合的辦法,即構建一個專門的安全芯片TPM(Trusted Platform Module)[1,4-5],它既作為整個系統的可信根,又作為可信度量的場所,它內部有專門的硬件電路負責密鑰存儲,加解密計算等。即使在沒有內置TPM硬件的環境中,為了實現可信引導,很多人也采用外置類似TPM功能硬件的方法,如文獻[2]中提出的USB-key等等。

由于TPM硬件(以及類似TPM功能的硬件)目前的普及率和大眾認知度不高(在淘寶網上搜索TPM硬件條目數便可窺一二),這導致很多計算機難以實現可信引導而長期處于安全風險中。因此從實用的角度出發,如何在沒有TPM硬件的條件下建立可信鏈,進而提供一個便捷、安全的計算環境是眼下的當務之急。文獻[3]實現了一種無需TPM硬件實現可信引導的方法,其基本思想是在引導系統時引入一個精簡Linux環境,對目標系統進行可信度量,然后與保存在精簡Linux環境中的度量校驗值進行比對,從而判定目標系統的可信與否。這種方法的不足之處在于存儲在軟件環境中的度量校驗值安全可靠性難以得到保證。本文將介紹一種在沒有TPM情況下不依靠校驗值比對實現可信引導的解決辦法。

1 系統設計

1.1 可信根

計算機系統的啟動需要經歷如下過程,以PC啟動位于硬盤上的Linux為例[1]:計算機上電后,首先完成硬件自檢,接著執行BIOS中的代碼完成硬件初始化,然后讀入并執行MBR中的代碼,MBR其實包含了grub引導程序的stage1,接著執行grub的stage1_5,stage2,最后將控制權交給Linux內核vmlinuz完成Linux操作系統的啟動,如圖1所示。

圖1 無TPM的Linux啟動過程

在引入了TPM的計算機系統中,Linux操作系統的啟動過程與之前相比增加了TPM的可信度量環節:計算機上電完成硬件自檢,TPM度量BIOS中代碼;BIOS初始化硬件,TPM度量MBR代碼;執行MBR中grub引導程序的stage1,TPM度量stage1_5;執行stage1_5,TPM度量stage2;執行stage2,TPM度量vmlinuz;執行vmlinuz,至此Linux操作系統啟動完成,如圖2所示。

可信根應該有度量下一步可執行代碼正確性的能力,否則就不能實現可信鏈的傳遞和延展。計算機上電、硬件自檢、BIOS初始化硬件這三步的可執行代碼常常位于主板的ROM中,對普通用戶而言難以修改,通常由硬件生產廠家直接提供,幾乎不具備度量的能力,因此不適宜作為可信根。對于普通用戶而言,唯有位于磁盤上的代碼是易于修改的,因此MBR或bootloader等作為在BIOS初始化硬件完畢后執行的第一步外部代碼則可以經過修改而具備度量功能(比如修改grub或Linux中有關bootsector的代碼)。既然這些代碼位于磁盤上,對于普通用戶是易于修改的,對于惡意程序或惡意用戶來說也是易于修改的,那么如何保證這些代碼的安全性?本文將在第二部分可信度量中做進一步分析和探討。

圖2 有TPM的Linux啟動過程

1.2 可信度量

常見可信度量方法[1,3-5]可以簡單總結為下面四步:(1)輸入度量目標;(2)按照一定度量算法計算;(3)將度量結果與存儲在某處的度量校驗值進行比對;(4)根據比對的結果判斷度量目標是否可信。如圖3所示。前人的研究工作主要集中在第二步和第三步上,如在第二步中采用復雜的加解密算法,在第三步采用將校驗值存儲在TPM等特殊軟硬件環境等方式來確保校驗值的正確性和安全性。

圖3 可信鏈建立過程中的常見度量步驟

這種依賴校驗值比對的方式有一定弊端:惡意用戶或程序可能通過某種途徑獲得或修改這個校驗值,繞過復雜的度量算法,從而控制系統。如文獻[7]提出利用LiveCD修改Linux登錄密鑰的方法就是一種變相修改校驗值的方法。

一個更好的辦法是在可信鏈的建立過程中移除校驗值比對這一薄弱的環節,即不保存所謂的校驗值,從而消除校驗值比對帶來的潛在威脅。這種方法的流程如圖4所示:度量目標事先被一定的可逆加密算法加密(如位運算、DES加密等,由于加解密算法不在本文研究范圍內,所以不再詳述),到需要度量該目標時,提示用戶輸入密鑰,然后將這個密鑰不加驗證地用于解密算法中進行運算。此時無論是真密鑰還是假密鑰,無論被度量目標被篡改與否,都可以運算得到一個二進制流的結果,然后系統跳轉到該結果處繼續執行。只有真密鑰和未篡改的度量目標解碼出來的結果才是有效的二進制指令流從而被正確執行。這樣只能通過系統的運行行為(如正常開機、正常啟動)而非存儲在某處的校驗值比對來判斷密鑰和度量目標的真偽。

圖4 無校驗值比對的度量步驟

利用上述無校驗值比對的可信度量方式,可按如下過程建立可信鏈:假如操作系統啟動需要經過5個步驟:s1,s2,s3,s4,s5,其中前一步包含了對后一步的解密算法,如s1的代碼中包含了對s2的解密算法。寫在磁盤上的操作系統代碼已經按照上面5個步驟劃分成了5塊,并已經分別按照相應的加密算法進行了加密。當然s1不需要加密,因為它的上一步是BIOS,而BIOS中的代碼不具備解密功能。當啟動計算機時,上電、硬件自檢、BIOS初始化硬件這三步不變,接著BIOS把控制權交給s1,s1完成自身特定功能后提示用戶輸入用于解密s2的密鑰,如果密鑰正確且s2沒有被篡改,s2將得以正確解密而完成自身特定功能并提示輸入解密s3的密鑰;反之不能得到正確的s2代碼而永遠不能進行后續步驟,s3,s4,s5與此類似,不再贅述。

惡意程序不能破壞、增刪s1-s5中任意一個環節,否則都將使得后續步驟的解密失敗,因為這樣會破壞數據的完整性從而導致解密運算得到的二進制流與原始可執行的二進制指令流不一致,使得啟動不能繼續進行。對于惡意程序來說,有可乘之機的地方在BIOS與s1處,即在BIOS與s1間增加一個環節。如引導區病毒(Boot sector viruses),它可以先于正常引導程序運行,待完成自身任務后將控制權交給正常引導程序。如何防范引導區病毒不在本文的討論范圍之列,文獻[6]給出了一些常見的防范辦法,本文不再贅述。但是近幾年引導區病毒破壞力有限,在dos、win95時代猖狂一時,但在Linux和windowsNT時代的破壞卻鮮有耳聞,現代操作系統已經具備有成熟的虛擬內存保護和管理機制,使得引導區病毒無機可乘。由此s1,s2,s3,s4,s5構成了一條可信鏈。

2 實驗驗證

筆者在Linux-0.12基礎上開發了一個小型的操作系統內核,它由兩部分組成:引導程序和內核。它的啟動將依次進行下面的步驟:上電,硬件自檢,BIOS初始化硬件,BIOS將控制權交給引導程序,引導程序度量內核并將控制權交給內核,運行內核完成系統啟動。

BIOS中可設置的啟動引導設備有軟盤、硬盤、光盤、U盤等等。理論上說這些設備都可以作為實驗對象,但軟盤由于其結構簡單,設置方便,因此我們選用軟盤作為引導介質。實驗環境為:debian-7.0.0作為宿主操作系統,版本號為1.1.2的qemu虛擬機。

2.1 模擬度量目標沒有被篡改條件下的運行情況

(1)實驗步驟

①編譯并制作正常可以啟動的操作系統內核system。

②編寫以位運算作為加密手段的加密程序encrypt.c,設置好加密參數,將system加密為e_system。

③編寫帶解密算法的引導程序boot.s,并編譯成boot.bin。

④將引導程序boot.bin和加密后的內核e_system一并寫入軟盤鏡像fakedisk.img中。

⑤用這個軟盤鏡像啟動qemu虛擬機,運行參數為:qemu-system-i386-m 8-fda fakedisk.img。

(2)實驗結果(如圖5、圖6)

2.2 模擬度量目標被篡改條件下的運行情況

(1)實驗步驟

①編譯并制作正常可以啟動的操作系統內核system。

②編寫以位運算作為加密手段的加密程序encrypt.c,設置好加密參數,將system加密為e_system。

③模擬篡改行為,隨機修改e_system中的幾位,得到f_system。

④編寫帶解密算法的引導程序boot.s,并編譯成boot.bin。

⑤將引導程序boot.bin和篡改后的內核f_system一并寫入軟盤鏡像fakedisk.img中。

圖5 輸入正確密鑰,正常運行打印出標識

圖7 輸入正確密鑰,不能正常運行打印出標識

⑥用這個軟盤鏡像啟動qemu虛擬機,運行參數為:qemu-system-i386-m 8-fda fakedisk.img。

(2)實驗結果(如圖7、圖8)

2.3 實驗結果說明

實驗發現當輸入正確密鑰且度量目標沒有被篡改時,度量目標被還原成正確可執行的二進制指令流,正常運行并打印出標識;當輸入錯誤密鑰或度量目標被篡改時,度量目標被計算成無意義的二進制流,當跳轉到該結果處執行后,虛擬電腦由于執行錯誤指令而出現“死機”的狀態。

3 可信鏈建立方式的有效性

上述可信鏈建立過程中沒有任何校驗值比對,杜絕了惡意程序和用戶修改或竊取度量校驗值從而繞過可信度量的隱患。如果采用暴力破解密鑰的辦法,那么每嘗試一次密鑰就需要重啟電腦一次;如果是在VirtualBox、qemu類的虛擬機中破解,每次嘗試也需要重啟虛擬機。這也是操作系統啟動引導過程的特殊性,因為此時系統沒有完全運轉起來,不能提供完整的軟硬件環境。相比于其他暴力破解方式(系統完全運轉起來,使用破解軟件,開啟上百個線程,每秒嘗試上萬個密鑰),這種暴力破解的代價是相當大的。

圖6 輸入錯誤密鑰,不能正常運行打印出標識

圖8 輸入錯誤密鑰,不能正常運行打印標識

4 結語

按照文中設計的無校驗值比對的可信鏈建立方式,構建具有可信度量功能的操作系統引導程序。實驗結果表明,這種不依賴校驗值比對的可信鏈建立方式是可行的。這為廣大沒有TPM硬件的用戶提供了一種保障自身計算環境安全的新思路。

[1]吳剛.面向Xen安全計算機中可信鏈的可信引導及可信設備虛擬化[D].華南理工大學,2011.

[2]張帆,張聰,陳偉,等.一種無需操作系統的硬件級可信度量方法[J].華中科技大學學報:自然科學版,2014(11):6-10.

[3]姚金魁,張濤,王金雙,陳融,施祖清.一種不依賴TPM的安全引導方式的設計與實現[期刊論文].計算機技術與發展,2012(6)

[4]譚良,周明天.基于可信計算平臺的可信引導過程研究[J].計算機應用研究,2008,25(1):232-234.

[5]赫芳,劉毅,莊祿.面向云計算平臺的可信度量研究[J].信息網絡安全,2013(1):5-7.

[6]Boot sector.https://en.wikipedia.org/wiki/Boot_sector

[7]利用LiveCD修改root密鑰.http://luyx30.blog.51cto.com/1029851/1092928/

A Way of Building Trusted Chain Without Checksum Validation

LIU Tao,DONG Ya-nan

(College of Computer Science,Sichuan University,Chengdu 610000)

The trusted platform module(TPM)is capable of protecting validation checksum from hardware level perspective,and plays a vital role in guaranteeing the safety of computing environment.However there are a lot of computers running without TPM,how to guarantee their safety is still unsolved.For that reason,proposes a way of building trusted chain without checksum validation.This method dynamically decodes binary instructions at boot time,taking full advantage of the characteristics that cracking key at initialization moment will be costly.Finally the effectiveness of the proposed method is verified by experiment.

Trusted Chain;Trusted Measurement;Trusted Startup

1007-1423(2016)33-0009-05

10.3969/j.issn.1007-1423.2016.33.002

2016-10-08

2016-11-15

劉濤(1990-),四川資陽人,在讀碩士研究生,研究方向為嵌入式操作系統

董亞楠(1990-),女,河北保定人,在讀碩士研究生,研究方向為嵌入式操作系統

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 亚洲无码电影| 日韩欧美成人高清在线观看| 亚欧美国产综合| 国产杨幂丝袜av在线播放| 免费在线观看av| 久久精品最新免费国产成人| 国产凹凸视频在线观看| AV熟女乱| 日韩 欧美 国产 精品 综合| 国产波多野结衣中文在线播放| 在线a网站| 国产三级韩国三级理| 国产尤物jk自慰制服喷水| 美女视频黄频a免费高清不卡| 欧美成人手机在线观看网址| 无码AV高清毛片中国一级毛片| 青青国产视频| 欧美精品在线看| 青青草一区| 欧美成人精品一区二区| 国产女主播一区| 欧美激情视频在线观看一区| 国产欧美在线视频免费| 成人国产精品一级毛片天堂 | 中文字幕在线播放不卡| 性做久久久久久久免费看| 午夜精品一区二区蜜桃| 中文字幕调教一区二区视频| 国产成人亚洲综合A∨在线播放| 亚洲性视频网站| 一级毛片免费观看不卡视频| 国产91在线|日本| 久久午夜夜伦鲁鲁片无码免费| 免费播放毛片| 日本人又色又爽的视频| 91久久青青草原精品国产| 免费视频在线2021入口| 99er精品视频| 亚洲欧美精品在线| 精品人妻无码中字系列| 国产高清不卡| 日本黄色不卡视频| 欧美激情视频一区二区三区免费| 国产视频大全| 国产精品视频a| 丝袜美女被出水视频一区| 91美女在线| 日韩国产高清无码| 亚洲国产成人综合精品2020 | 中文字幕久久亚洲一区| 久久青草精品一区二区三区| 超薄丝袜足j国产在线视频| 婷婷六月综合网| 99在线视频免费| 在线免费a视频| 精品久久香蕉国产线看观看gif| 精品免费在线视频| 久久久久青草大香线综合精品| 亚洲最猛黑人xxxx黑人猛交| 日a本亚洲中文在线观看| 2021国产精品自产拍在线| 亚洲成人免费在线| 国产欧美精品午夜在线播放| 欧美一级大片在线观看| 日韩精品毛片人妻AV不卡| 欧美精品一区在线看| 国产麻豆精品在线观看| 啪啪永久免费av| 青草91视频免费观看| 狠狠色噜噜狠狠狠狠奇米777| 欧美色图第一页| 午夜不卡视频| 99青青青精品视频在线| 婷婷亚洲综合五月天在线| 天堂岛国av无码免费无禁网站| 欧美成人在线免费| 第一页亚洲| 天堂岛国av无码免费无禁网站| 欧美不卡在线视频| 青青热久麻豆精品视频在线观看| 影音先锋丝袜制服| 欧美国产日韩在线|