基于FPGA安全封裝的身份認證模型研究

發(fā)布時(shí)間:2009-5-27 09:39    發(fā)布者:FPGA
關(guān)鍵詞: FPGA , 封裝 , 身份認證
在深入分析基于FPGA的安全封裝結構的基礎上,針對其實(shí)際應用中身份認證的安全性要求,重點(diǎn)研究并設計了一種適用于FPGA安全封裝結構的身份認證模型。該模型通過(guò)利用RSA公鑰密碼算法和SHA-1算法,實(shí)現了對用戶(hù)及FPGA的雙向認證。該模型具備良好的可移植性和安全性,能夠有效抵御多種攻擊,為基于FPGA的安全封裝應用提供了強有力的用戶(hù)權限認證。
    隨著(zhù)嵌入式技術(shù)的推廣,FPGA在各種嵌入式系統中得到了廣泛應用。在各種嵌入式系統應用中,FPGA往往用于實(shí)現整個(gè)系統的核心功能[1]。因此,如何保證FPGA內部功能構造的安全性成為保護整個(gè)嵌入式系統核心知識產(chǎn)權的關(guān)鍵性問(wèn)題。針對FPGA內部構造碼安全性的問(wèn)題,各FPGA廠(chǎng)家推出了多種具有特殊安全功能的產(chǎn)品[2-3]。但是,先進(jìn)的數據分析技術(shù)及工具使得攻擊者可以很容易地對芯片管腳的輸出信號(如地址總線(xiàn)、數據總線(xiàn))進(jìn)行行為探測或數據竊取,并且根據探測結果推導出FPGA內部功能模塊的實(shí)現機理。
   基于FPGA的安全封裝技術(shù)正是為了解決對芯片管腳輸出信號的攻擊而產(chǎn)生的一種安全防護技術(shù),通過(guò)在FPGA芯片內的功能模塊外加上一層安全封裝,保證功能模塊運行時(shí)的不可探測性。而作為整個(gè)安全防護機制的啟用入口,身份認證機制關(guān)系整個(gè)安全封裝結構的有效性,必須保證認證信息在靜態(tài)存儲及認證過(guò)程中的有效性及安全性[4]。本文通過(guò)對FPGA安全封裝進(jìn)行剖析,重點(diǎn)研究并設計了一種基于FPGA安全封裝的身份認證機制。該身份認證機制能夠保證認證過(guò)程的有效性及認證信息的安全性,具有良好的可移植性,能夠集成到各種安全封裝結構中。




1 FPGA安全封裝技術(shù)

   如圖1所示,基于FPGA的安全封裝結構可以看作是在功能模塊外加上一層保護層,功能模塊所有與外界的I/O端口通信都必須通過(guò)安全封裝結構。當功能模塊需要對外部器件進(jìn)行通信時(shí),所有功能模塊接收/發(fā)送的數據均被安全封裝模塊進(jìn)行加/脫密處理。通過(guò)這種方法,攻擊者在FPGA管腳上所截獲的信息均為密文信息,從而達到保護FPGA內部功能模塊的目的。
   安全封裝結構主要由三個(gè)功能單元組成,分別為FPGA功能模塊單元、身份認證單元和加密單元。其中,功能模塊單元為具體實(shí)現系統中FPGA功能的部分,是實(shí)現FPGA芯片應用的核心單元;身份認證單元主要負責對用戶(hù)的合法身份進(jìn)行認證并啟用安全封裝;加密單元負責對功能單元的輸入/輸出數據進(jìn)行加/脫密處理,保證FPGA輸入/輸出數據的安全性。用戶(hù)接口便于用戶(hù)插入智能卡等設備,進(jìn)行身份認證。安全封裝組成結構如圖2所示。




   安全封裝未啟用前,FPGA芯片內的功能模塊單元處于等待狀態(tài)。當用戶(hù)需要啟用FPGA內部的安全封裝時(shí),利用智能卡與FPGA芯片進(jìn)行身份認證。如果認證失敗,則芯片拒絕該用戶(hù)的訪(fǎng)問(wèn),如果認證成功,身份認證單元會(huì )將用戶(hù)ID發(fā)送給加密單元。接收到用戶(hù)ID后,加密單元將啟動(dòng)功能模塊單元。當功能模塊單元對外部進(jìn)行寫(xiě)/讀操作時(shí),加密單元從功能模塊單元獲得數據的地址信息,結合用戶(hù)ID,作為產(chǎn)生加/解密密鑰的根向量,并利用所產(chǎn)生的密鑰對功能模塊單元輸入/輸出的數據進(jìn)行加/解密。
2 基于FPGA安全封裝的身份認證
2.1 基于FPGA安全封裝的雙向認證方案
   身份認證是通過(guò)將一個(gè)證據與實(shí)體身份綁定實(shí)現的。在FPGA安全封裝應用中,實(shí)體為智能卡及FPGA。為了確保安全封裝應用的安全性,在認證過(guò)程中,一方面智能卡必須向FPGA提供證據證明自己的合法身份;另一方面,FPGA芯片也必須向智能卡提供證據證明自己的合法性。因此,基于FPGA安全封裝的身份認證機制必須是雙向的。為了降低身份認證機制實(shí)現的復雜度并節省FPGA內部資源,選擇了RSA密碼算法并輔助以SHA-1算法作為實(shí)現雙向認證方案的密碼學(xué)基礎。
    RSA密碼的安全性基于大合數因子分解的困難性[5],當大合數取1 024位或2 048位時(shí),破譯RSA密碼的代價(jià)將是非常巨大的。SHA-1算法是一種單向的Hash函數,通過(guò)輸入一組小于264位的報文,得到一組160位的報文摘要[6],并且算法滿(mǎn)足下面兩條性質(zhì):(1)通過(guò)報文摘要推算出原報文在計算上是不可行的,即算法具備不可逆性; (2)不同的兩段報文所產(chǎn)生的報文摘要是不相同的,即算法具備抗沖擊性。
    雙向認證方案的密鑰配置如表1所示。假設ef和eu分別為智能卡和FPGA的RSA私鑰,df和du分別為智能卡和FPGA的RSA公鑰,nf和nu分別為智能卡和FPGA所使用的RSA大合數。FPGA擁有自己的私鑰eu和智能卡的公鑰df及雙方所使用的大合數nf、nu;同樣智能卡也擁有自己的私鑰ef和FPGA的公鑰du及雙方所使用的大合數nf、nu, 則雙向認證過(guò)程可分為以下幾個(gè)步驟:


    (1) 用戶(hù)將記錄有用戶(hù)ID信息的智能卡插入用戶(hù)接口。
    (2) FPGA芯片探測到智能卡的插入,啟動(dòng)身份認證單元。
    (3) 智能卡產(chǎn)生一個(gè)隨機數mu,并用ef和nf對其進(jìn)行加密,然后將加密后的結果發(fā)給FPGA芯片中的身份認證單元。
    (4) 身份認證單元使用df和nf對cu進(jìn)行解密,得到解密結果mu′。
    (5) 身份認證單元使用eu和nu對mu′進(jìn)行加密,并將加密結果cf′回傳給智能卡。
    (6) 智能卡使用du和nu對cf′進(jìn)行解密,并將解密結果與mu進(jìn)行對比。若正確,則確認FPGA芯片對于用戶(hù)的合法性,并繼續下一步的操作;若不正確,智能卡將與FPGA芯片斷開(kāi)連接。
    (7) 身份認證單元產(chǎn)生一隨機數mf,并使用eu和nu對其進(jìn)行加密,并將加密結果cf傳遞給智能卡。
    (8) 智能卡使用du和nu對cf進(jìn)行解密,得到解密結果mf。
    (9) 智能卡使用ef和nf對(ID+mu+mf)進(jìn)行加密,得到加密結果cID,并將cID發(fā)送給身份認證單元。
    (10) 身份認證單元使用df和nf對cID進(jìn)行解密,并將解密結果減去mu和mf得到ID。
    (11) 身份認證單元使用SHA-1算法對ID進(jìn)行Hash運算,得到chash。
    (12) 身份認證單元將與ID Hash表寄存器中的值進(jìn)行匹配,若匹配成功,則證明智能卡對于FPGA芯片的合法性,ID Hash將作為根向量的一部分參與到加密單元的加解密操作中去,若匹配不成功,FPGA芯片將斷開(kāi)與智能卡的連接。
2.2 身份認證單元模型設計
   在FPGA安全封裝結構中,身份認證單元的一端與加密單元相連,另一端與用戶(hù)接口相連。為了滿(mǎn)足雙向認證過(guò)程中智能卡RSA運算及用戶(hù)ID存儲安全性的要求,選用DS1957B實(shí)現智能卡。DS1957B使用防止物理探測的封裝方式,內置Java處理器、1 024位密碼加速器、隨機數發(fā)生器及134KB的非易失性RAM,能夠非常方便地實(shí)現RSA運算,并且能夠對卡內保存的密鑰及用戶(hù)ID信息實(shí)施密封存儲。
    為了實(shí)現雙向認證過(guò)程,FPGA安全封裝中的身份認證單元模型由一個(gè)xe mod n計算器、隨機數發(fā)生器、RSA引擎、RSA密鑰寄存器、SHA-1計算器及ID Hash表寄存器組成。其中,xemodn計算器負責RSA密碼的模冪運算,隨機數發(fā)生器負責產(chǎn)生隨機數,RSA引擎負責FPGA端的RSA運算,RSA密鑰寄存器存儲RSA密碼的密鑰,SHA-1計算器負責對用戶(hù)ID信息進(jìn)行單向Hash運算,ID Hash表寄存器存儲合法的用戶(hù)ID的Hash值。身份認證單元模型如圖3所示。


3 安全性分析
    身份認證單元模型的安全性主要基于三點(diǎn):(1)密鑰及用戶(hù)ID靜態(tài)存放的安全性; (2)所使用的加密算法的安全性;(3)認證方案抵御各種攻擊的能力。其中第二點(diǎn)不屬于本文討論的范圍。假定所使用的算法總是安全的,以下將具體分析第一點(diǎn)和第三點(diǎn)。
    (1)針對于密鑰和用戶(hù)ID的靜態(tài)存放,一方面由于智能卡采用了防止物理探測的封裝形式,并對智能卡內的數據進(jìn)行密封存儲的方式進(jìn)行保存,攻擊者難以通過(guò)物理探測或軟件探測盜取存儲在智能卡上的密鑰及用戶(hù)ID信息[7-8]。另一方面,FPGA內部由大規模邏輯門(mén)陣列組成,要從中單獨提取出密鑰等敏感數據非常困難。此外,大部分FPGA已經(jīng)具備對比特流及其內部結構的保護功能。因此,能夠確保身份認證過(guò)程中所使用密鑰及用戶(hù)ID的靜態(tài)安全性。
    (2)在認證過(guò)程中,最有可能遭受到的攻擊手段有冒充實(shí)體攻擊、重放攻擊、唯密文攻擊。針對這些攻擊,認證方案都具備相應的防范策略。
3.1 冒充實(shí)體攻擊
   假設攻擊者盜取了用戶(hù)的智能卡,為了獲得智能卡上的ID信息,利用一個(gè)設備冒充合法的FPGA與智能卡連接。但由于在認證過(guò)程中,該冒充的設備無(wú)法成功地向智能卡證明其身份的合法性,使智能卡不會(huì )向該設備發(fā)送包含用戶(hù)ID的相關(guān)信息,所以該安全封裝結構能夠抵抗“冒充實(shí)體攻擊”。
3.2 重放攻擊
    假設攻擊者截獲了身份認證單元發(fā)送的認證信息cf′和cf,并對智能卡發(fā)動(dòng)重發(fā)攻擊。
    (1) 在認證過(guò)程的步驟(3)中,智能卡產(chǎn)生一個(gè)新的隨機數mu2,并用ef和nf對其進(jìn)行加密,然后將加密后的結果cu2發(fā)給FPGA芯片中的身份認證單元。
    (2) 攻擊者將cf′發(fā)回給智能卡。
    (3) 智能卡使用du和nu對cf′進(jìn)行解密,得到mu,由于mu≠mu2,認證失敗。
    假設攻擊者截獲了智能卡發(fā)送的認證信息cu和cID,并對FPGA發(fā)動(dòng)重發(fā)攻擊:
    (1) 在認證過(guò)程步驟(7)中,身份認證單元產(chǎn)生了一個(gè)新的隨機數mf 2,并使用eu和nu對其進(jìn)行加密,并將加密結果cf2傳遞給智能卡;
    (2) 攻擊者將cID發(fā)回給FPGA;
    (3) 身份認證單元使用df和nf對cID進(jìn)行解密,并將解密結果減去mu和mf2得到ID2;
    (4) 身份認證單元使用SHA-1算法對ID2進(jìn)行Hash運算,得到chash′;
    (5) 由于chash′顯然不能與ID Hash表寄存器中的值匹配成功,認證失敗。
    因此該安全封裝結構能夠抵抗“重放攻擊”。
3.3 唯密文攻擊
    假設攻擊者通過(guò)信道竊聽(tīng)截獲了雙方傳遞的所有認證信息,由于認證信息都是基于隨機數產(chǎn)生的,所以每次傳遞的認證信息都不相同,這極大增加了攻擊者分析密文的難度。而在認證過(guò)程的步驟(9)中,由于CID是通過(guò)對(ID+mu+mf)加密后得到,mu和mf都是隨機數,所以每次認證的結果都不同,使攻擊者也不能也通過(guò)分析CID獲得用戶(hù)ID的相關(guān)信息。
   本文針對FPGA芯片內部功能單元的安全性問(wèn)題,深入剖析了基于FPGA的安全封裝結構,并對基于該結構的身份認證機制進(jìn)行了重點(diǎn)研究,設計并實(shí)現了一種基于FPGA安全封裝結構的身份認證模型。該模型采用基于公鑰體制的雙向認證機制,能夠有效保證認證信息靜態(tài)及動(dòng)態(tài)的安全,從而達到確保安全封裝結構有效性及芯片內部功能單元安全的目的。
本文地址:http://selenalain.com/thread-2744-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页