亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SHA-256的可信啟動(dòng)完整性校驗(yàn)程序設(shè)計(jì)與驗(yàn)證

        2022-03-18 07:45:12張大松姜洪朝劉智國(guó)
        關(guān)鍵詞:加密算法哈希內(nèi)置

        ◆張大松 姜洪朝 劉智國(guó)

        基于SHA-256的可信啟動(dòng)完整性校驗(yàn)程序設(shè)計(jì)與驗(yàn)證

        ◆張大松 姜洪朝 劉智國(guó)

        (中國(guó)電子信息產(chǎn)業(yè)集團(tuán)有限公司第六研究所 北京 100083)

        本文針對(duì)工業(yè)控制領(lǐng)域中控制器安全運(yùn)行的問題,進(jìn)行了控制器內(nèi)置程序安全啟動(dòng)方面的研究,提出了采用SHA-256安全哈希算法對(duì)控制器內(nèi)置程序進(jìn)行校驗(yàn)的程序完整性檢查方法。本文提出了控制器程序的安全可信啟動(dòng)系統(tǒng)架構(gòu),給出了基于SHA-256哈希算法的校驗(yàn)處理流程,并在控制器上進(jìn)行了實(shí)際的效果測(cè)試和驗(yàn)證。驗(yàn)證試驗(yàn)表明,本文提出的可信啟動(dòng)方法能夠有效檢測(cè)出控制器程序內(nèi)容的篡改破壞情況,具有極高的靈敏度,能夠保證控制器程序的可信安全啟動(dòng)。

        工控安全;安全哈希算法;安全防護(hù);可信啟動(dòng);完整性校驗(yàn)

        1 引言

        在工業(yè)控制領(lǐng)域,保證控制器內(nèi)置程序的完整性是一項(xiàng)重要的任務(wù)。控制器程序容易在人為、病毒或意外干擾的情況下被修改,從而產(chǎn)生意料之外的運(yùn)行結(jié)果。通常,控制器都是一個(gè)系統(tǒng)的核心部件,任何意外運(yùn)行結(jié)果都會(huì)對(duì)系統(tǒng)產(chǎn)生巨大的影響,甚至毀滅性的破壞。在現(xiàn)實(shí)中,隨著智能化的控制器普及應(yīng)用,這種意外事件屢見不鮮,比如著名的伊朗核電站離心機(jī)PLC事件[1]。因此,保證控制器的安全運(yùn)行是一項(xiàng)需要深入研究的問題。

        哈希算法是密碼學(xué)中重要的分支之一,主要用于數(shù)據(jù)的完整性校驗(yàn)、基于口令的身份認(rèn)證、數(shù)字簽名等領(lǐng)域[2]。采用哈希算法能夠從信息數(shù)據(jù)中提取代表數(shù)據(jù)特征的特征數(shù)值,即哈希值,這是一個(gè)不可逆的數(shù)學(xué)映射過程,因此具有安全屬性[3]。著名的哈希算法有MD系列和SHA系列。MD-5和SHA-1已經(jīng)被破解,目前應(yīng)用最為廣泛的是SHA-2系列算法。采用哈希算法,通過設(shè)計(jì)合適的算法處理過程并應(yīng)用于控制器的程序設(shè)計(jì),能夠?qū)崿F(xiàn)對(duì)控制器程序內(nèi)容的完整性校驗(yàn),從而達(dá)到安全可信啟動(dòng)和運(yùn)行的目的[4]。SHA-256是SHA-2系列算法中的一種,技術(shù)成熟可靠,具有大量的實(shí)際應(yīng)用,其運(yùn)算速度和安全級(jí)別比較適合工業(yè)控制器的處理能力。

        本文采用SHA-256哈希算法設(shè)計(jì)校驗(yàn)程序,使得控制器能夠在啟動(dòng)時(shí)進(jìn)行內(nèi)容完整性校驗(yàn),進(jìn)而保證控制器的安全可信啟動(dòng)及運(yùn)行。目前,大部分工業(yè)控制器沒有程序完整性校驗(yàn)機(jī)制,存在極大的安全隱患。本文提出的校驗(yàn)方法,代碼簡(jiǎn)短、校驗(yàn)精度高、運(yùn)算速度快,與工業(yè)控制器的處理能力和程序存儲(chǔ)容量相契合。

        2 程序完整性校驗(yàn)系統(tǒng)設(shè)計(jì)

        2.1 密碼算法概述

        采用密碼算法是實(shí)現(xiàn)信息安全的有效途徑之一,國(guó)際通用密碼算法在安全領(lǐng)域廣泛使用,如RSA、ECC、MD5、SHA-1、SHA-2、DES、3DES、AES等[5]。這些密碼算法經(jīng)過合理設(shè)計(jì),能夠用于實(shí)現(xiàn)數(shù)字簽名、數(shù)據(jù)加密傳輸、密鑰協(xié)商、身份識(shí)別認(rèn)證等安全功能[6]。

        目前,國(guó)際主流標(biāo)準(zhǔn)密碼算法主要分為三類:對(duì)稱加密算法、非對(duì)稱加密算法、哈希算法[7]。

        (1)對(duì)稱加密算法:其主要特點(diǎn)是加密和解密使用同一個(gè)密鑰,常用對(duì)稱加密算法有DES、3DES、AES。DES由IBM公司研制,并于1997年被美國(guó)政府推廣使用,廣泛應(yīng)用于數(shù)據(jù)安全的各個(gè)方面。3DES是基于DES進(jìn)行改進(jìn)的一種加密算法,主要特點(diǎn)是使用3個(gè)64位密鑰對(duì)原始數(shù)據(jù)進(jìn)行3次加密。由于DES存在安全隱患,美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所(NIST)研制出AES加密算法取代DES,成為適應(yīng)數(shù)據(jù)安全發(fā)展的加密標(biāo)準(zhǔn)。目前應(yīng)用廣泛的3DES-2、3DES-3已經(jīng)逐步升級(jí)為AES,密鑰長(zhǎng)度由128位逐步增加到192位和256位。

        (2)非對(duì)稱加密算法:該加密算法的密鑰分為公鑰和私鑰,公鑰可以公開,私鑰不可以公開。常用非對(duì)稱加密算法包括:基于大數(shù)分解的RSA算法和基于橢圓曲線離散對(duì)數(shù)的ECC算法。RSA加密算法由Ron Rivest、Adi Shamir和Leonard Adleman三人于1977年提出,加密原理以數(shù)論為基礎(chǔ)。ECC加密算法由Koblitz和Miller兩人于1985年提出,其基本原理是先用橢圓曲線上的有理點(diǎn)構(gòu)造Abel加法群上橢圓離散對(duì)數(shù),然后利用其中的計(jì)算困難性實(shí)現(xiàn)加密。在加解密應(yīng)用上,ECC算法相比RSA算法在多個(gè)方面優(yōu)勢(shì)明顯,包括加解密速度、占用存儲(chǔ)空間、帶寬等方面??紤]到密碼更新?lián)Q代速度,實(shí)際使用中在短時(shí)間內(nèi)兩種算法會(huì)同時(shí)存在。兩者的密鑰長(zhǎng)度隨應(yīng)用場(chǎng)合的安全要求提高而逐步增加。

        3)Hash算法:Hash算法是一種單向算法,主要功能是通過數(shù)學(xué)運(yùn)算從原始數(shù)據(jù)提取出指定長(zhǎng)度的一段惟一Hash值[8]。常用Hash算法有MD4、MD5、SHA-1、SHA-2、SHA-3。Rivest先于1989年提出MD2算法,之后不斷改進(jìn)加強(qiáng)算法的安全性,于1990年、1991年分別提出MD4、MD5算法[9]。MD5算法的主要改進(jìn)是在MD4的基礎(chǔ)上增加了safety belts機(jī)制。MD5曾經(jīng)廣泛使用于計(jì)算機(jī)安全領(lǐng)域,用以提供數(shù)據(jù)的完整性保護(hù),但是之后被中國(guó)學(xué)者王小云破解[10]。SHA(Secure Hash Algorithm,安全散列算法)是由美國(guó)國(guó)家安全局(NSA)提出、美國(guó)NIST發(fā)布的密碼散列函數(shù)系列,目前應(yīng)用廣泛[11]。目前,MD5、SHA-1因?yàn)榇嬖诎踩L(fēng)險(xiǎn)使用逐漸減少,主流應(yīng)用逐漸向SHA-2、SHA-3過渡,Hash值長(zhǎng)度逐步增加。

        本文主要以SHA-2系列算法中的SHA-256算法為核心設(shè)計(jì)控制器程序完整性校驗(yàn)程序。

        2.2 可信啟動(dòng)程序架構(gòu)

        一般控制器都采用傳統(tǒng)啟動(dòng)方法,即上電后由控制器內(nèi)置bootloader直接跳轉(zhuǎn)到控制器程序,然后執(zhí)行控制任務(wù)。采用完整性校驗(yàn)的控制器可信啟動(dòng)流程則是,先由bootloader跳轉(zhuǎn)到校驗(yàn)程序,然后校驗(yàn)程序?qū)刂破鞒绦蜻M(jìn)行掃描并生成一個(gè)校驗(yàn)值,然后將校驗(yàn)值與事先存儲(chǔ)的校驗(yàn)結(jié)果進(jìn)行對(duì)比。如果一致,則由校驗(yàn)程序跳轉(zhuǎn)到控制器程序;否則,校驗(yàn)程序輸出警告信息并報(bào)錯(cuò),拒絕執(zhí)行下一步的控制器程序。

        圖1 可信與傳統(tǒng)系統(tǒng)啟動(dòng)步驟對(duì)比

        2.3 SHA-256算法處理流程

        SHA-2系列哈希算法共有4種,分別是SHA-224、SHA-256、SHA-384和SHA-512。4種SHA-2算法處理過程基本一樣,都是分為2個(gè)步驟:預(yù)處理和哈希計(jì)算。預(yù)處理階段依次包括消息填充、消息分隔以及哈希初始值設(shè)置。哈希計(jì)算階段使用哈希函數(shù)結(jié)合待處理的數(shù)據(jù)塊和相關(guān)常數(shù),進(jìn)行多次迭代產(chǎn)生系列哈希值,直到所有數(shù)據(jù)塊處理完畢。

        SHA-2算法處理過程的迭代結(jié)構(gòu)如圖2所示。

        2.4 可信啟動(dòng)校驗(yàn)流程

        基于SHA-256算法,在校驗(yàn)程序中對(duì)控制器程序進(jìn)行掃描和校驗(yàn),進(jìn)而判斷控制器程序的完整性以及是否滿足可信啟動(dòng)的條件。

        具體過程為:首先將控制器程序按照SHA-256算法處理的要求切割為n個(gè)數(shù)據(jù)塊,然后由壓縮函數(shù)結(jié)合前一步的哈希值生成當(dāng)前步哈希值,依次循環(huán)處理,直到處理完最后一個(gè)數(shù)據(jù)塊Bn和產(chǎn)生最后一個(gè)哈希值Hn。Hn即為控制器程序的哈希值。哈希值H0為已知默認(rèn)初始值。

        如果哈希值Hn與事先存儲(chǔ)的校驗(yàn)結(jié)果一致,則認(rèn)為控制器程序內(nèi)容沒有發(fā)生任何篡改,可以進(jìn)一步執(zhí)行啟動(dòng)控制器程序的工作,否則拒絕啟動(dòng)控制器程序,并輸出報(bào)錯(cuò)信息。

        圖2 SHA-256算法處理流程

        3 驗(yàn)證試驗(yàn)

        為了驗(yàn)證本文提出的程序可信啟動(dòng)完整性校驗(yàn)程序設(shè)計(jì)功能的有效性,進(jìn)行了2次驗(yàn)證試驗(yàn)。第1次模擬控制器程序內(nèi)容未被修改的情況下,控制器正常啟動(dòng)。第2次模擬控制器程序內(nèi)容被修改的情況下,控制器拒絕啟動(dòng),校驗(yàn)程序能夠檢測(cè)到控制器程序已被修改,并輸出警告信息和報(bào)錯(cuò)信息。

        本文采用串口作為與控制器通信的接口,通過串口調(diào)用控制器內(nèi)置程序及函數(shù),結(jié)果均反饋輸出到串口調(diào)試軟件界面。

        3.1 啟動(dòng)校驗(yàn)成功試驗(yàn)

        本次試驗(yàn)?zāi)M控制器啟動(dòng)校驗(yàn)成功的情況。啟動(dòng)前,控制器程序完整,沒有經(jīng)過任何內(nèi)容修改??刂破魍耆凑照2襟E啟動(dòng),經(jīng)過3步之后,程序啟動(dòng)完畢,控制器系統(tǒng)進(jìn)入正常運(yùn)行狀態(tài)。在Step 2進(jìn)行了程序校驗(yàn),輸出了校驗(yàn)結(jié)果。由圖3可見,校驗(yàn)結(jié)果與事先存儲(chǔ)的校驗(yàn)哈希值完全相同,說明控制器程序沒有被破壞,因此控制器能夠成功啟動(dòng)。

        圖3 控制器程序啟動(dòng)校驗(yàn)成功試驗(yàn)

        3.2 啟動(dòng)校驗(yàn)失敗試驗(yàn)

        本次試驗(yàn)?zāi)M控制器啟動(dòng)校驗(yàn)失敗的情況。試驗(yàn)前,先人為修改控制器內(nèi)置程序,具體通過事先準(zhǔn)備的控制器程序修改接口命令來進(jìn)行內(nèi)置程序的修改。操作過程如下:

        首先,選擇控制器的存儲(chǔ)器地址0x8030000,通過Show命令顯示內(nèi)容為0xca。

        然后,修改控制器的存儲(chǔ)器地址0x8030000的內(nèi)容,通過Change命令修改為0xcb。

        之后,重新啟動(dòng)控制器,啟動(dòng)過程進(jìn)行到Step 2時(shí)進(jìn)行了校驗(yàn)。由圖4可見,校驗(yàn)結(jié)果與事先存儲(chǔ)的校驗(yàn)哈希值不同,說明控制器程序已經(jīng)遭到破壞,因此控制器拒絕執(zhí)行后續(xù)啟動(dòng)流程并報(bào)錯(cuò)。

        3.3 完整性校驗(yàn)精度

        采用SHA-256算法具有極高的校驗(yàn)精度。在啟動(dòng)校驗(yàn)失敗試驗(yàn)中,控制器程序中僅僅一個(gè)字節(jié)中的一位發(fā)生了改變,SHA-256算法產(chǎn)生的哈希值就會(huì)產(chǎn)生顯著變化,然后產(chǎn)生報(bào)錯(cuò)信息,因此在實(shí)際應(yīng)用中能夠檢測(cè)到控制器程序最少一位的篡改事件,具有極高的精度及可靠性。

        3.4 程序篡改定位

        在實(shí)際應(yīng)用中,可能需要進(jìn)一步定位程序篡改發(fā)生的位置。

        此時(shí)需要事先存儲(chǔ)控制器程序的系列哈希值,即圖2中的H1到Hn。然后在控制器啟動(dòng)時(shí),逐一比較校驗(yàn)程序產(chǎn)生的哈希值。如果第i個(gè)哈希值Hi與事先存儲(chǔ)的哈希值不一致,則可以斷定控制器程序的第i個(gè)數(shù)據(jù)塊Bi發(fā)生了篡改,由此可以定位控制器程序具體發(fā)生篡改的數(shù)據(jù)塊。

        利用這一特性可以進(jìn)一步實(shí)現(xiàn)控制器程序的局部修復(fù)。

        圖4 控制器程序啟動(dòng)校驗(yàn)失敗試驗(yàn)

        4 結(jié)論

        本文通過采用安全哈希算法構(gòu)建控制器內(nèi)置程序的安全可信啟動(dòng)架構(gòu)和校驗(yàn)流程,可以實(shí)現(xiàn)對(duì)內(nèi)置程序的完整性檢測(cè),提高控制器內(nèi)置程序的安全防護(hù)能力,保證了控制器的安全啟動(dòng)及運(yùn)行,實(shí)際測(cè)試驗(yàn)證了所提方法的可行性及有效性,具有極高的校驗(yàn)精度,能夠定位控制器程序損壞發(fā)生的數(shù)據(jù)塊。

        [1]朱明露.功能安全標(biāo)準(zhǔn)在電廠安全系統(tǒng)中的應(yīng)用研究[J].中國(guó)儀器儀表,2015(9):29-31.

        [2]范明鈕,王光衛(wèi).密碼學(xué)理論與技術(shù)[M].清華大學(xué)出版社,2008.

        [3]王張宜,李波,張煥國(guó).Hash函數(shù)的安全性研究[J].計(jì)算機(jī)工程與應(yīng)用,2005,41(12):18-19.

        [4]魏欽志.工業(yè)控制系統(tǒng)安全現(xiàn)狀及安全策略分析[J].信息安全與技術(shù),2013(2):23-26

        [5]李樹國(guó),周潤(rùn)德,馮建華.RSA密碼協(xié)處理器的實(shí)現(xiàn)[J].電子學(xué)報(bào),2001,29(11):1441-1444.

        [6]崔艷娜,張紅金,李繼安.工業(yè)控制系統(tǒng)漏洞的統(tǒng)計(jì)及其分析研究[J].電子產(chǎn)品可靠性與環(huán)境試驗(yàn),2018(6):41-46

        [7]王締酈,白國(guó)強(qiáng),陳弘毅.一種Montgomery模乘算法硬件結(jié)構(gòu)[J].微電子學(xué)與計(jì)算機(jī),2010(5):1-4.

        [8]申延召.SM3密碼雜湊算法分析[D].上海:東華大學(xué),2013.

        [9]劉宗斌,馬原,荊繼武.SM3哈希算法的硬件實(shí)現(xiàn)與研究[C].第26次全國(guó)計(jì)算機(jī)安全學(xué)術(shù)交流會(huì).福建,中國(guó).2011:191-193.

        [10]王曉燕,楊先文.基于FPGA的SM3算法優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2012,38(6):244-246.

        [11]董馨.可配置SHA-2系列算法和SHA-3(BLAKE-32)算法的硬件實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2012.

        北京市科技計(jì)劃項(xiàng)目(No.Z181100005118005,No.Z191100004619003);廣東省電力系統(tǒng)網(wǎng)絡(luò)安全企業(yè)重點(diǎn)實(shí)驗(yàn)室(Guangdong Provincial Key Laboratory of Power System Network Security)

        猜你喜歡
        加密算法哈希內(nèi)置
        內(nèi)置加勁環(huán)T型管節(jié)點(diǎn)抗沖擊承載力計(jì)算
        芯片內(nèi)置測(cè)試電路的設(shè)計(jì)
        基于OpenCV與均值哈希算法的人臉相似識(shí)別系統(tǒng)
        基于小波變換和混沌映射的圖像加密算法
        內(nèi)置管腸排列術(shù)治療嚴(yán)重粘連性腸梗阻的臨床分析
        基于維度分解的哈希多維快速流分類算法
        Hill加密算法的改進(jìn)
        對(duì)稱加密算法RC5的架構(gòu)設(shè)計(jì)與電路實(shí)現(xiàn)
        基于同態(tài)哈希函數(shù)的云數(shù)據(jù)完整性驗(yàn)證算法
        基于Arnold變換和Lorenz混沌系統(tǒng)的彩色圖像加密算法
        亚洲VA欧美VA国产VA综合| 亚洲乱码国产乱码精品精| 在线观看免费人成视频| 成年女人免费v片| 日本一区二区三区的免费视频观看 | 热久久久久久久| 日本高清一区二区在线观看| 在线播放亚洲丝袜美腿| 成人精品视频一区二区三区尤物| 最新国产一区二区精品久久| 一本久道久久综合狠狠操| 成人一区二区人妻少妇| 成人美女黄网站色大免费的| 亚洲一区综合精品狠狠爱| 黄网站a毛片免费观看久久| 91精品国产在热久久| 国产亚洲日本精品无码| 久久精品国产亚洲AV成人公司| 中文字幕亚洲精品高清| 亚洲精品国产一二三区| 久久综合精品国产二区无码 | 久久久精品456亚洲影院| 久久九九青青国产精品| 免费av在线 国产精品| 欧美a级在线现免费观看| 女同同性av观看免费| аⅴ资源天堂资源库在线| 亚洲色AV性色在线观看| 国产特黄a三级三级三中国| 国产精品福利一区二区| 亚洲av无码成人精品区在线观看| 国产亚洲精选美女久久久久| 亚洲av老熟女一区二区三区| 少妇高潮惨叫久久久久久电影| 日日摸夜夜添夜夜添一区二区| 全程国语对白资源在线观看| 80s国产成年女人毛片| 精品国产乱码久久久软件下载 | 日韩av在线亚洲女同| 国产熟妇另类久久久久| 国产日韩欧美网站|