《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > 基于FPGA安全封裝的身份認(rèn)證模型研究

基于FPGA安全封裝的身份認(rèn)證模型研究

2009-05-26
作者:嚴(yán) 博, 歐慶于, 吳曉平

??? 摘? 要: 在深入分析基于FPGA的安全封裝結(jié)構(gòu)的基礎(chǔ)上,針對(duì)其實(shí)際應(yīng)用中身份認(rèn)證的安全性要求,,重點(diǎn)研究并設(shè)計(jì)了一種適用于FPGA安全封裝結(jié)構(gòu)的身份認(rèn)證模型。該模型通過(guò)利用RSA公鑰密碼算法和SHA-1算法,,實(shí)現(xiàn)了對(duì)用戶及FPGA的雙向認(rèn)證。該模型具備良好的可移植性和安全性,,能夠有效抵御多種攻擊,,為基于FPGA的安全封裝應(yīng)用提供了強(qiáng)有力的用戶權(quán)限認(rèn)證。?

??? 關(guān)鍵詞: FPGA,; 安全封裝,; 身份認(rèn)證?

?

??? 隨著嵌入式技術(shù)的推廣,F(xiàn)PGA在各種嵌入式系統(tǒng)中得到了廣泛應(yīng)用,。在各種嵌入式系統(tǒng)應(yīng)用中,,F(xiàn)PGA往往用于實(shí)現(xiàn)整個(gè)系統(tǒng)的核心功能[1]。因此,,如何保證FPGA內(nèi)部功能構(gòu)造的安全性成為保護(hù)整個(gè)嵌入式系統(tǒng)核心知識(shí)產(chǎn)權(quán)的關(guān)鍵性問(wèn)題,。針對(duì)FPGA內(nèi)部構(gòu)造碼安全性的問(wèn)題,各FPGA廠家推出了多種具有特殊安全功能的產(chǎn)品[2-3],。但是,,先進(jìn)的數(shù)據(jù)分析技術(shù)及工具使得攻擊者可以很容易地對(duì)芯片管腳的輸出信號(hào)(如地址總線、數(shù)據(jù)總線)進(jìn)行行為探測(cè)或數(shù)據(jù)竊取,,并且根據(jù)探測(cè)結(jié)果推導(dǎo)出FPGA內(nèi)部功能模塊的實(shí)現(xiàn)機(jī)理。?

??? 基于FPGA的安全封裝技術(shù)正是為了解決對(duì)芯片管腳輸出信號(hào)的攻擊而產(chǎn)生的一種安全防護(hù)技術(shù),,通過(guò)在FPGA芯片內(nèi)的功能模塊外加上一層安全封裝,,保證功能模塊運(yùn)行時(shí)的不可探測(cè)性。而作為整個(gè)安全防護(hù)機(jī)制的啟用入口,,身份認(rèn)證機(jī)制關(guān)系整個(gè)安全封裝結(jié)構(gòu)的有效性,,必須保證認(rèn)證信息在靜態(tài)存儲(chǔ)及認(rèn)證過(guò)程中的有效性及安全性[4]。本文通過(guò)對(duì)FPGA安全封裝進(jìn)行剖析,重點(diǎn)研究并設(shè)計(jì)了一種基于FPGA安全封裝的身份認(rèn)證機(jī)制,。該身份認(rèn)證機(jī)制能夠保證認(rèn)證過(guò)程的有效性及認(rèn)證信息的安全性,,具有良好的可移植性,能夠集成到各種安全封裝結(jié)構(gòu)中,。?

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

??? 如圖1所示,,基于FPGA的安全封裝結(jié)構(gòu)可以看作是在功能模塊外加上一層保護(hù)層,功能模塊所有與外界的I/O端口通信都必須通過(guò)安全封裝結(jié)構(gòu),。當(dāng)功能模塊需要對(duì)外部器件進(jìn)行通信時(shí),,所有功能模塊接收/發(fā)送的數(shù)據(jù)均被安全封裝模塊進(jìn)行加/脫密處理。通過(guò)這種方法,,攻擊者在FPGA管腳上所截獲的信息均為密文信息,,從而達(dá)到保護(hù)FPGA內(nèi)部功能模塊的目的。?

??? 安全封裝結(jié)構(gòu)主要由三個(gè)功能單元組成,,分別為FPGA功能模塊單元,、身份認(rèn)證單元和加密單元。其中,,功能模塊單元為具體實(shí)現(xiàn)系統(tǒng)中FPGA功能的部分,,是實(shí)現(xiàn)FPGA芯片應(yīng)用的核心單元;身份認(rèn)證單元主要負(fù)責(zé)對(duì)用戶的合法身份進(jìn)行認(rèn)證并啟用安全封裝,;加密單元負(fù)責(zé)對(duì)功能單元的輸入/輸出數(shù)據(jù)進(jìn)行加/脫密處理,,保證FPGA輸入/輸出數(shù)據(jù)的安全性。用戶接口便于用戶插入智能卡等設(shè)備,,進(jìn)行身份認(rèn)證,。安全封裝組成結(jié)構(gòu)如圖2所示。?

??? 安全封裝未啟用前,,F(xiàn)PGA芯片內(nèi)的功能模塊單元處于等待狀態(tài),。當(dāng)用戶需要啟用FPGA內(nèi)部的安全封裝時(shí),利用智能卡與FPGA芯片進(jìn)行身份認(rèn)證,。如果認(rèn)證失敗,,則芯片拒絕該用戶的訪問(wèn),如果認(rèn)證成功,,身份認(rèn)證單元會(huì)將用戶ID發(fā)送給加密單元,。接收到用戶ID后,加密單元將啟動(dòng)功能模塊單元,。當(dāng)功能模塊單元對(duì)外部進(jìn)行寫/讀操作時(shí),,加密單元從功能模塊單元獲得數(shù)據(jù)的地址信息,結(jié)合用戶ID,,作為產(chǎn)生加/解密密鑰的根向量,,并利用所產(chǎn)生的密鑰對(duì)功能模塊單元輸入/輸出的數(shù)據(jù)進(jìn)行加/解密,。?

2 基于FPGA安全封裝的身份認(rèn)證?

2.1 基于FPGA安全封裝的雙向認(rèn)證方案?

??? 身份認(rèn)證是通過(guò)將一個(gè)證據(jù)與實(shí)體身份綁定實(shí)現(xiàn)的。在FPGA安全封裝應(yīng)用中,,實(shí)體為智能卡及FPGA,。為了確保安全封裝應(yīng)用的安全性,在認(rèn)證過(guò)程中,,一方面智能卡必須向FPGA提供證據(jù)證明自己的合法身份,;另一方面,F(xiàn)PGA芯片也必須向智能卡提供證據(jù)證明自己的合法性,。因此,,基于FPGA安全封裝的身份認(rèn)證機(jī)制必須是雙向的。為了降低身份認(rèn)證機(jī)制實(shí)現(xiàn)的復(fù)雜度并節(jié)省FPGA內(nèi)部資源,,選擇了RSA密碼算法并輔助以SHA-1算法作為實(shí)現(xiàn)雙向認(rèn)證方案的密碼學(xué)基礎(chǔ),。?

??? RSA密碼的安全性基于大合數(shù)因子分解的困難性[5],當(dāng)大合數(shù)取1 024位或2 048位時(shí),,破譯RSA密碼的代價(jià)將是非常巨大的,。SHA-1算法是一種單向的Hash函數(shù),通過(guò)輸入一組小于264位的報(bào)文,,得到一組160位的報(bào)文摘要[6],,并且算法滿足下面兩條性質(zhì):(1)通過(guò)報(bào)文摘要推算出原報(bào)文在計(jì)算上是不可行的,即算法具備不可逆性,; (2)不同的兩段報(bào)文所產(chǎn)生的報(bào)文摘要是不相同的,,即算法具備抗沖擊性。?

??? 雙向認(rèn)證方案的密鑰配置如表1所示,。假設(shè)ef和eu分別為智能卡和FPGA的RSA私鑰,,df和du分別為智能卡和FPGA的RSA公鑰,nf和nu分別為智能卡和FPGA所使用的RSA大合數(shù),。FPGA擁有自己的私鑰eu和智能卡的公鑰df及雙方所使用的大合數(shù)nf,、nu;同樣智能卡也擁有自己的私鑰ef和FPGA的公鑰du及雙方所使用的大合數(shù)nf,、nu, 則雙向認(rèn)證過(guò)程可分為以下幾個(gè)步驟:?

?

?

??? (1) 用戶將記錄有用戶ID信息的智能卡插入用戶接口,。?

??? (2) FPGA芯片探測(cè)到智能卡的插入,啟動(dòng)身份認(rèn)證單元,。?

??? (3) 智能卡產(chǎn)生一個(gè)隨機(jī)數(shù)mu,,并用ef和nf對(duì)其進(jìn)行加密,然后將加密后的結(jié)果發(fā)給FPGA芯片中的身份認(rèn)證單元,。?

??? (4) 身份認(rèn)證單元使用df和nf對(duì)cu進(jìn)行解密,,得到解密結(jié)果mu′。?

??? (5) 身份認(rèn)證單元使用eu和nu對(duì)mu′進(jìn)行加密,,并將加密結(jié)果cf′回傳給智能卡,。?

??? (6) 智能卡使用du和nu對(duì)cf′進(jìn)行解密,并將解密結(jié)果與mu進(jìn)行對(duì)比,。若正確,,則確認(rèn)FPGA芯片對(duì)于用戶的合法性,并繼續(xù)下一步的操作;若不正確,,智能卡將與FPGA芯片斷開連接,。?

??? (7) 身份認(rèn)證單元產(chǎn)生一隨機(jī)數(shù)mf,并使用eu和nu對(duì)其進(jìn)行加密,,并將加密結(jié)果cf傳遞給智能卡,。?

??? (8) 智能卡使用du和nu對(duì)cf進(jìn)行解密,得到解密結(jié)果mf,。?

??? (9) 智能卡使用ef和nf對(duì)(ID+mu+mf)進(jìn)行加密,,得到加密結(jié)果cID,并將cID發(fā)送給身份認(rèn)證單元,。?

??? (10) 身份認(rèn)證單元使用df和nf對(duì)cID進(jìn)行解密,,并將解密結(jié)果減去mu和mf得到ID。?

??? (11) 身份認(rèn)證單元使用SHA-1算法對(duì)ID進(jìn)行Hash運(yùn)算,,得到chash,。?

??? (12) 身份認(rèn)證單元將與ID Hash表寄存器中的值進(jìn)行匹配,若匹配成功,,則證明智能卡對(duì)于FPGA芯片的合法性,,ID Hash將作為根向量的一部分參與到加密單元的加解密操作中去,若匹配不成功,,F(xiàn)PGA芯片將斷開與智能卡的連接,。?

2.2 身份認(rèn)證單元模型設(shè)計(jì)?

??? 在FPGA安全封裝結(jié)構(gòu)中,身份認(rèn)證單元的一端與加密單元相連,,另一端與用戶接口相連,。為了滿足雙向認(rèn)證過(guò)程中智能卡RSA運(yùn)算及用戶ID存儲(chǔ)安全性的要求,選用DS1957B實(shí)現(xiàn)智能卡,。DS1957B使用防止物理探測(cè)的封裝方式,,內(nèi)置Java處理器、1 024位密碼加速器,、隨機(jī)數(shù)發(fā)生器及134 KB的非易失性RAM,,能夠非常方便地實(shí)現(xiàn)RSA運(yùn)算,并且能夠?qū)▋?nèi)保存的密鑰及用戶ID信息實(shí)施密封存儲(chǔ),。?

??? 為了實(shí)現(xiàn)雙向認(rèn)證過(guò)程,,F(xiàn)PGA安全封裝中的身份認(rèn)證單元模型由一個(gè)xe mod n計(jì)算器、隨機(jī)數(shù)發(fā)生器,、RSA引擎,、RSA密鑰寄存器,、SHA-1計(jì)算器及ID Hash表寄存器組成。其中,,xe mod n計(jì)算器負(fù)責(zé)RSA密碼的模冪運(yùn)算,,隨機(jī)數(shù)發(fā)生器負(fù)責(zé)產(chǎn)生隨機(jī)數(shù),RSA引擎負(fù)責(zé)FPGA端的RSA運(yùn)算,RSA密鑰寄存器存儲(chǔ)RSA密碼的密鑰,SHA-1計(jì)算器負(fù)責(zé)對(duì)用戶ID信息進(jìn)行單向Hash運(yùn)算,ID Hash表寄存器存儲(chǔ)合法的用戶ID的Hash值,。身份認(rèn)證單元模型如圖3所示,。?

?

?

3 安全性分析?

??? 身份認(rèn)證單元模型的安全性主要基于三點(diǎn):(1)密鑰及用戶ID靜態(tài)存放的安全性; (2)所使用的加密算法的安全性,;(3)認(rèn)證方案抵御各種攻擊的能力,。其中第二點(diǎn)不屬于本文討論的范圍。假定所使用的算法總是安全的,,以下將具體分析第一點(diǎn)和第三點(diǎn),。?

??? (1)針對(duì)于密鑰和用戶ID的靜態(tài)存放,一方面由于智能卡采用了防止物理探測(cè)的封裝形式,,并對(duì)智能卡內(nèi)的數(shù)據(jù)進(jìn)行密封存儲(chǔ)的方式進(jìn)行保存,,攻擊者難以通過(guò)物理探測(cè)或軟件探測(cè)盜取存儲(chǔ)在智能卡上的密鑰及用戶ID信息[7-8]。另一方面,,F(xiàn)PGA內(nèi)部由大規(guī)模邏輯門陣列組成,,要從中單獨(dú)提取出密鑰等敏感數(shù)據(jù)非常困難。此外,,大部分FPGA已經(jīng)具備對(duì)比特流及其內(nèi)部結(jié)構(gòu)的保護(hù)功能,。因此,能夠確保身份認(rèn)證過(guò)程中所使用密鑰及用戶ID的靜態(tài)安全性,。?

??? (2)在認(rèn)證過(guò)程中,,最有可能遭受到的攻擊手段有冒充實(shí)體攻擊、重放攻擊,、唯密文攻擊,。針對(duì)這些攻擊,認(rèn)證方案都具備相應(yīng)的防范策略,。?

3.1 冒充實(shí)體攻擊?

??? 假設(shè)攻擊者盜取了用戶的智能卡,,為了獲得智能卡上的ID信息,利用一個(gè)設(shè)備冒充合法的FPGA與智能卡連接,。但由于在認(rèn)證過(guò)程中,,該冒充的設(shè)備無(wú)法成功地向智能卡證明其身份的合法性,使智能卡不會(huì)向該設(shè)備發(fā)送包含用戶ID的相關(guān)信息,,所以該安全封裝結(jié)構(gòu)能夠抵抗“冒充實(shí)體攻擊”,。?

3.2 重放攻擊?

??? 假設(shè)攻擊者截獲了身份認(rèn)證單元發(fā)送的認(rèn)證信息cf′和cf,并對(duì)智能卡發(fā)動(dòng)重發(fā)攻擊。?

??? (1) 在認(rèn)證過(guò)程的步驟(3)中,,智能卡產(chǎn)生一個(gè)新的隨機(jī)數(shù)mu2,,并用ef和nf對(duì)其進(jìn)行加密,然后將加密后的結(jié)果cu2發(fā)給FPGA芯片中的身份認(rèn)證單元,。?

??? (2) 攻擊者將cf′發(fā)回給智能卡,。?

??? (3) 智能卡使用du和nu對(duì)cf′進(jìn)行解密,得到mu,,由于mu≠mu2,認(rèn)證失敗,。?

??? 假設(shè)攻擊者截獲了智能卡發(fā)送的認(rèn)證信息cu和cID,,并對(duì)FPGA發(fā)動(dòng)重發(fā)攻擊:?

??? (1) 在認(rèn)證過(guò)程步驟(7)中,身份認(rèn)證單元產(chǎn)生了一個(gè)新的隨機(jī)數(shù)mf 2,,并使用eu和nu對(duì)其進(jìn)行加密,,并將加密結(jié)果cf2傳遞給智能卡;?

??? (2) 攻擊者將cID發(fā)回給FPGA,;?

??? (3) 身份認(rèn)證單元使用df和nf對(duì)cID進(jìn)行解密,,并將解密結(jié)果減去mu和mf2得到ID2;?

??? (4) 身份認(rèn)證單元使用SHA-1算法對(duì)ID2進(jìn)行Hash運(yùn)算,,得到chash′,;?

??? (5) 由于chash′顯然不能與ID Hash表寄存器中的值匹配成功,認(rèn)證失敗,。?

??? 因此該安全封裝結(jié)構(gòu)能夠抵抗“重放攻擊”,。?

3.3 唯密文攻擊?

??? 假設(shè)攻擊者通過(guò)信道竊聽截獲了雙方傳遞的所有認(rèn)證信息,由于認(rèn)證信息都是基于隨機(jī)數(shù)產(chǎn)生的,,所以每次傳遞的認(rèn)證信息都不相同,,這極大增加了攻擊者分析密文的難度。而在認(rèn)證過(guò)程的步驟(9)中,,由于CID是通過(guò)對(duì)(ID+mu+mf)加密后得到,,mu和mf都是隨機(jī)數(shù),所以每次認(rèn)證的結(jié)果都不同,,使攻擊者也不能也通過(guò)分析CID獲得用戶ID的相關(guān)信息,。?

??? 本文針對(duì)FPGA芯片內(nèi)部功能單元的安全性問(wèn)題,深入剖析了基于FPGA的安全封裝結(jié)構(gòu),,并對(duì)基于該結(jié)構(gòu)的身份認(rèn)證機(jī)制進(jìn)行了重點(diǎn)研究,設(shè)計(jì)并實(shí)現(xiàn)了一種基于FPGA安全封裝結(jié)構(gòu)的身份認(rèn)證模型,。該模型采用基于公鑰體制的雙向認(rèn)證機(jī)制,能夠有效保證認(rèn)證信息靜態(tài)及動(dòng)態(tài)的安全,,從而達(dá)到確保安全封裝結(jié)構(gòu)有效性及芯片內(nèi)部功能單元安全的目的,。?

參考文獻(xiàn)?

[1] 曾志廉,何清平,,鄒候文.通用FPGA實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)與應(yīng)用. 微計(jì)算機(jī)信息,,2007,,23(4):234-235.?

[2] KEAN T. Secure configuration of field programmable gate?arrays, in LNCS 2147,FPL2001,Springer-Verlag, 2001.?

[3] WOLLINGER T, PAAR C. How secure are FPGAs in?cryptographic application,Inernational Conference on Field?Programmable Logic and Application. FPL, 2003(9).?

[4] 張偉麗,,楊鼎才,,亓文華.智能卡雙向認(rèn)證協(xié)議的改進(jìn)[J],微計(jì)算機(jī)信息,,2007,,23(9):78-79.?

[5] 王超,沈海斌,,孟慶.RSA密碼算法的硬件實(shí)現(xiàn)[J],,計(jì)算機(jī)工程與應(yīng)用,2004(14).?

[6] 黃諄,,白國(guó)強(qiáng),,陳弘毅.快速實(shí)現(xiàn)SHA-1算法的硬件結(jié)構(gòu). 清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2005,,45(1).?

[7] 李美峰,,戴冠中,劉航,等. 加密芯片中密鑰獲取模塊的設(shè)計(jì)與FPGA實(shí)現(xiàn).計(jì)算機(jī)工程與應(yīng)用,,2006(9).?

[8] 吳成波,,寇雅楠,湯黎.基于智能卡的嵌入式網(wǎng)絡(luò)加密安全系統(tǒng)設(shè)計(jì). 計(jì)算機(jī)工程與設(shè)計(jì),,2007,,28(14):3436-3439.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。