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

        ?

        基于STM32的硬件狗設計與實現(xiàn)

        2013-03-18 22:39:22滕廣超郎建軍杜奇才林嘉宇
        微處理機 2013年6期
        關鍵詞:程序段序列號密鑰

        滕廣超,郎建軍,杜奇才,林嘉宇

        (1.國防科學技術大學電子科學與工程學院,長沙 410073;2.武警黃金一總隊通信科,哈爾濱 150086;3.特種作戰(zhàn)學院偵查系,廣州 510500)

        1 引言

        隨著人們對軟件的依賴性越來越高,黨、政、軍的各機要部門借助軟件管理信息、調度、自動化、仿真等應用也越來越廣泛。同時,軟件系統(tǒng)的安全操作等方面存在著巨大隱患。為了防止失泄密事故的發(fā)生,保證需要被保護的軟件操作和訪問的合法性,要在技術防范方面提高水平,加強拒絕非法訪問的手段和防范措施,以技術為手段的保護成為保護軟件的最重要方法[1]。

        對軟件的常用保護技術通常有軟保護和硬保護兩種。軟保護是通過在程序中使用一些獨特手段來實現(xiàn)加密變換,驗證使用者的合法性,重點在如何反拷貝、防靜態(tài)分析、防動態(tài)跟蹤等方面[2]。硬保護是一種需要外插額外硬件的加密手段,軟件必須通過訪問指定的硬件,并與其進行數(shù)據(jù)交換才能執(zhí)行。由于硬保護依賴硬件,相比于軟保護來說具有不易復制性,所以硬保護更加可靠?,F(xiàn)有最常見的硬保護設備主要是硬件狗(加密鎖),它可以有效地保護軟件不被非法復制和非授權訪問或使用,從而達到保護軟件的目的。

        目前市場上在售的硬件狗,都是采用商業(yè)密級加密技術研發(fā)的產(chǎn)品,加密的手段及深度有限,因此選用第四代硬件狗的設計方案,采用STM32系列芯片,如STM32F103ZET6,這款芯片最重要的特點是內(nèi)含唯一序列號,在作為硬件狗的應用方面具有極大優(yōu)勢。

        2 硬件狗系統(tǒng)設計

        2.1 基本原理

        通過硬件狗來保護涉密軟件的基本原理就是在程序執(zhí)行過程中使程序對硬件狗進行訪問或讀寫等操作,使被保護程序對硬件狗有非常強的依賴性。通過硬件狗芯片具有的不可復制性和不可替代性,來實現(xiàn)保護涉密軟件不被非授權訪問的目的。

        2.2 硬件結構

        硬件狗的硬件采用成熟的高性能國際化標準智能芯片,主要部件有:USB接口、微處理器以及存儲器。其中,USB端口通訊實現(xiàn)了硬件狗和PC軟件的通信,同時可以有效防止通過分析通訊數(shù)據(jù)來對硬件狗進行破解;微處理器不僅可以實現(xiàn)對硬件狗的芯片進行基本操作、讀寫存儲器的數(shù)據(jù)等功能,還可以實現(xiàn)AES算法、橢圓曲線算法的運算和被移植程序段的運行以及使硬件狗和被保護軟件不定時的通信和認證;存儲器可劃分成數(shù)據(jù)存儲區(qū)和密鑰存儲區(qū)。

        2.3 相關變量

        設計時主要體現(xiàn)了硬件狗芯片中的唯一序列號、芯片主頻和看門狗單元。對硬件狗內(nèi)含芯片的唯一序列號的操作及使用可以有效防止硬件狗被復制??撮T狗的使用可以保證PC軟件和硬件狗及時的通信交互,提高了程序對硬件的依賴性。

        2.4 防護措施

        (1)被保護軟件開始運行時,先訪問硬件狗,通過訪問來確認硬件狗是否存在。被保護軟件要識別出硬件狗的存在,才能開始運行,如果硬件狗沒有與計算機相連,或是相應驅動程序沒有加載,打開設備的操作將失敗。

        (2)如若硬件狗存在,則將其與軟件匹配。軟件首先向硬件狗發(fā)送一個被公鑰加密后的隨機數(shù),硬件狗收到后,用自身的私鑰對密文進行解密,并將解密后的明文,也就是軟件產(chǎn)生的隨機數(shù)返還給軟件,軟件即可將收到的隨機數(shù)與軟件產(chǎn)生的隨機數(shù)比較,以確認軟件與硬件狗的配對。由于產(chǎn)生的是隨機數(shù),使破解者很難找到規(guī)律,并且破解者不知道公私密鑰對,也不能解出返還的隨機數(shù)。通過這個步驟,可保證軟件與加密鎖硬件的一一對應。這樣就使破解者不能輕易通過軟件引導區(qū)進入核心程序段。需要強調的是有些軟件和硬件狗的配套產(chǎn)品中,直接將硬件狗的唯一序列號寫在軟件中來進行匹配操作,這樣就降低了唯一序列號的保密性,會使破解者能通過分析軟件來獲得唯一序列號,利用獲得的序列號來仿制硬件狗。

        (3)在找到合法的硬件狗后,驗證用戶口令,也就是授權密碼,只有授權密碼正確,軟件才能正確向下執(zhí)行,如密碼不正確則請求再次輸入,如果輸入的口令連續(xù)若干次錯誤,則硬件狗會自鎖,在一定時間內(nèi)使硬件狗失效或不可操作。通過這種手段可以防止破解者通過暴力破解手段侵入被保護的軟件系統(tǒng)。

        (4)當通過授權密碼驗證后,此時被保護軟件已經(jīng)完成了引導區(qū)的工作。下一步則是軟件核心區(qū)的程序。在軟件編制完成后,將軟件的核心程序模塊加密,在軟件執(zhí)行到核心區(qū)時,先向硬件狗請求解密,由硬件狗向軟件發(fā)送解密密碼,解密后方可正確運行。采用這種手段來保護軟件,可以很好的實現(xiàn)防范代碼的反跟蹤。

        (5)加密算法選用橢圓曲線密碼算法,這是一種公鑰密碼體系,用兩對密鑰:一個公共密鑰和一個私有密鑰,能夠很容易地實現(xiàn)數(shù)字簽名。加密算法的目的就是要確保竊聽者在沒有密鑰的情況,即使得到密文,也無法得到明文。硬件狗的私鑰產(chǎn)生于其唯一序列號,可以是部分字段或經(jīng)由一定變化得來,強化了硬件狗的不可復制性。

        (6)在被保護軟件中設置多個加密點,并且使加密點盡量分散,每個加密點都是一次對硬件狗的訪問和校驗過程,這樣可以增加破解者分析加密點的難度。在加密點的驗證過程中要利用隨機數(shù)來保證加密鎖輸入輸出數(shù)據(jù)的隨機性,可以防止解密者通過統(tǒng)計硬件狗的輸入輸出數(shù)據(jù),利用軟件仿真的方式來破解硬件狗。

        加密點的作用有幾點,首先可以驗證、檢測硬件狗的存在性和合法性,該類加密點可以在應用程序源代碼的任何地方進行設置。其次利用硬件狗私密鑰對軟件的某一段代碼進行動態(tài)加解密。首先將軟件的某一段代碼按特定算法加密[3],使其在目標計算機中以密文的方式存放,無法以別的方式打開。該段代碼使用完,則自動產(chǎn)生新的隨機密鑰,再次加密這段代碼,并把密鑰寫入到硬件狗中,以備下一次使用。這樣就保證了該段代碼始終以密文的形式存放,而且每次都不相同,它可以有效阻止對程序進行靜態(tài)的反匯編分析。

        (7)核心程序段移植是保護軟件最有力的方法。可以把最重要的核心程序代碼移植到硬件狗內(nèi)部,通常被保護的軟件都比較龐大,具有許多模塊和線程,若移植幾個程序段將占據(jù)硬件狗很大的儲存空間,降低硬件狗的資源利用率,所以只能選擇最核心的程序段。無論是否正被執(zhí)行,被移植的程序段都不會在計算機中留有痕跡,破解者無法獲得這些代碼的副本,因為硬件狗的硬件部分很難被復制,所以破解被硬件狗保護的軟件是難以實行的。

        (8)充分利用硬件狗的看門狗功能。看門狗可以防止程序跑飛,此外,也可以強化軟件對硬件狗的依賴性,被保護軟件在設計時,內(nèi)部包含一個定時器,定時器的溢出值需要與硬件狗的看門狗窗口匹配。軟件運行過程中,硬件狗會不定時的產(chǎn)生一個隨機數(shù),兩個隨機數(shù)之間的時間間隔必須小于看門狗的窗口值,并且隨機數(shù)的數(shù)值也必須小于窗口值。每次產(chǎn)生隨機數(shù)后,用隨機數(shù)作為硬件狗內(nèi)部定時器的溢出值開始計數(shù)。在硬件狗定時器溢出時,需要計算機與硬件狗對隨機數(shù)進行加密交互以確定軟件運行的合法性。成功驗證后,軟件和硬件狗的定時器都要歸零,方便下一次計時。如果在軟件定時器溢出時仍沒有發(fā)生過一次合法認證,則軟件退出。這種對硬件狗的認證是不定時的,加強了被保護軟件對硬件狗的依賴性。

        課題包括三個部分:硬件狗系統(tǒng)方案設計、數(shù)據(jù)加密及密鑰管理、ARM平臺的開發(fā)及系統(tǒng)實現(xiàn)。具體實現(xiàn)內(nèi)容為:用AES算法或流密碼算法對數(shù)據(jù)加密;利用ARM芯片內(nèi)置的芯片間各不相同的唯一序列號,用橢圓曲線公鑰算法進行密鑰管理;仔細設計硬件狗的系統(tǒng)方案,使得軟件系統(tǒng)和硬件加密設備在線、動態(tài)進行數(shù)據(jù)交換;最終實現(xiàn)利用硬件狗對PC軟件系統(tǒng)的加密和保護。

        3 硬件狗系統(tǒng)實現(xiàn)的核心算法

        AES算法是高級加密標準算法的簡稱,屬于對稱密碼算法中的分組密碼算法,是一個迭代的、對稱密鑰分組的密碼[4]。AES算法每一輪都需要一個和輸入分組具有同樣長度(128比特)的擴展密鑰Ke的參與[5]。與公共密鑰密碼使用密鑰對不同,對稱密鑰密碼使用相同的密鑰加密和解密數(shù)據(jù),通過分組密碼返回的加密數(shù)據(jù)的位數(shù)與輸入數(shù)據(jù)相同。

        公鑰密鑰密碼體系有基于整數(shù)因式分解、基于離散對數(shù)和基于橢圓曲線這三大類別。橢圓曲線密碼的安全性是建立在橢圓曲線的離散對數(shù)問題之上的,是目前已知的公鑰體制中,對每一比特所提供加密強度最高的一種體制[6]。它具有安全性高、密鑰量小、靈活性好的特點,沒有亞指數(shù)攻擊,是利用有限域上橢圓曲線的有限點群代替基于離散對數(shù)問題密碼體制中的有限循環(huán)群所得到的一類密碼體制。橢圓曲線密碼算法在技術上具有安全性高、生成公私鑰方便、處理速度快和存儲空間小等方面的優(yōu)勢,這些優(yōu)點使它成為保證智能密鑰安全機制的主要算法[7]。

        在提取芯片唯一序列號方面,STM32F10x的唯一序列號長度為96位。通過有3個元素無符號長整形的數(shù)組來記錄唯一序列號。通過對唯一序列號的存儲位置取地址指針,將序列號分3段輸入到數(shù)組中,后兩個數(shù)組元素注意加地址偏移量,32位是4個字節(jié),所以每次偏移量加0x04。這樣,唯一序列號就被保存到長整形數(shù)組中了。

        硬件加密狗采用USB接口與PC相連,是因為USB接口具有即插即用和熱插拔特性,而且USB系統(tǒng)使用簡單,性能可靠,可以解決總線的資源沖突問題,同時,USB接口可以提供很高的數(shù)據(jù)傳輸速率。STM32F10x自帶USB模塊,其USB模塊為PC主機和微控制器所實現(xiàn)的功能之間提供了符合USB規(guī)范的通信連接,能夠實現(xiàn)標準USB接口的所有特性。STM32F10x中,USB模塊的使用是非常簡單的,有大量的代碼可供參考,在硬件狗的設計中主要完成兩個部分:一是要初始化USB模塊;二是實現(xiàn)STM32F10x芯片與PC軟件的數(shù)據(jù)傳輸。

        4 結 束 語

        通過硬件狗提供的加密辦法對軟件進行保護,能夠達到極高的加密強度。尤其是利用密鑰加密算法可以在沒有程序源代碼或不對程序源代碼作任何改動的情況下快捷地完成加密工作。同時,通過采用部分程序代碼移植的方式,可以進一步提高被保護軟件對硬件狗的依賴性。

        作者創(chuàng)新點:選用目前市場上非常新的一種芯片STM32F103ZET6來作為加密硬件,經(jīng)過闡述目前各種硬件狗的加密方法,提出一種全新的加密算法和綜合加密辦法,顯著提高其加密強度,保證了軟件的安全。

        [1]謝海光,劉功申,李翔.一種保護商業(yè)化軟件的解決方案[J].上海管理科學,2005(6)35-37.

        [2]張竹青,白新江.軟件的機密保護技術探討[J].內(nèi)蒙古石油化工,2005(12):67-68.

        [3]劉長軍,林嘉宇.為DSP程序的構造的加密體制[J].單片機與嵌入式系統(tǒng)應用,2002(11)5-7.

        [4]何明星,范平志.新一代私鑰加密標準AES進展與評述[J].計算機應用研究,2001(10)4-6.

        [5]NIST.Advanced Encryption Standard(AES)[M].Federal Infor- mation Processing Standards Publication,2001.

        [6]孫躍剛.橢圓曲線密碼體制中若干問題的研究[D].吉林:吉林大學,2009.

        [7]于彬.橢圓曲線密碼算法的研究與實現(xiàn)[D].沈陽:沈陽工業(yè)大學,2004.

        猜你喜歡
        程序段序列號密鑰
        探索企業(yè)創(chuàng)新密鑰
        基于WinCC的物料小車控制系統(tǒng)設計與仿真
        電動工具(2022年2期)2022-05-18 08:40:38
        密碼系統(tǒng)中密鑰的狀態(tài)與保護*
        數(shù)控系統(tǒng)手輪回退功能的研究與實現(xiàn)*
        recALL
        基于NC程序段的提高數(shù)控加工監(jiān)控閾值與信號同步的方法*
        一種對稱密鑰的密鑰管理方法及系統(tǒng)
        基于ECC的智能家居密鑰管理機制的實現(xiàn)
        電信科學(2017年6期)2017-07-01 15:45:06
        PP助手教你辨別翻新iPhone5小白不再中招
        溫度傳感器DS18B20序列號批量搜索算法
        国产亚洲日本精品二区| 久久亚洲精品无码va白人极品| 欧美日韩亚洲tv不卡久久| 成人xx免费无码| 亚洲黄片高清在线观看| 无码人妻系列不卡免费视频| 日本精品久久久久中文字幕1| 成人国产在线播放自拍| 小黄片免费在线播放观看| av中文字幕在线直播| 好大好爽我要高潮在线观看| 风韵丰满熟妇啪啪区老熟熟女| 亚洲国产精品无码专区影院| a级国产乱理伦片在线播放| 看国产黄大片在线观看| 91精品啪在线看国产网站| 亚洲大片一区二区三区四区| 邻居少妇太爽在线观看| 亚洲一区二区三区,日本| 亚洲成a∨人片在无码2023| 人妻少妇精品专区性色av| 五月婷婷激情六月| 97自拍视频国产在线观看| 午夜一区二区视频在线观看| 乱子伦一区二区三区| 99re热这里只有精品最新| 中文无码制服丝袜人妻AV| 国产另类人妖在线观看| 最新欧美精品一区二区三区| 日本污ww视频网站| 骚片av蜜桃精品一区| 日本最新在线一区二区| 日韩有码在线免费视频| 亚洲a无码综合a国产av中文| 国产无遮挡又黄又爽在线观看| 无码av免费永久免费永久专区| 国产麻豆精品精东影业av网站| 国产办公室沙发系列高清| 亚洲女同精品一区二区久久 | 午夜无码片在线观看影院| 强d漂亮少妇高潮在线观看|