0 引言
隨著智能手機(jī)和物聯(lián)網(wǎng)的爆炸式增長(zhǎng),越來越多的安全芯片在眾多領(lǐng)域的終端設(shè)備上被廣泛應(yīng)用,如移動(dòng)支付領(lǐng)域、智能交通系統(tǒng)、公務(wù)政務(wù)領(lǐng)域、安全計(jì)算機(jī)領(lǐng)域、安全通信領(lǐng)域、物聯(lián)網(wǎng)領(lǐng)域等。安全芯片在保障信息安全方面有著無可比擬的優(yōu)點(diǎn)和不可替代的作用。正因?yàn)榘踩酒绱酥匾槍?duì)安全芯片的攻擊技術(shù)也層出不窮;安全芯片本身的安全性設(shè)計(jì)也日益重要,對(duì)這一塊的研究和應(yīng)用具有重要的現(xiàn)實(shí)意義。
在目前的信息安全應(yīng)用中,帶有安全協(xié)處理器方案的芯片被廣泛采納。然而安全協(xié)處理器基本都是針對(duì)某種具體應(yīng)用來設(shè)計(jì)的一個(gè)實(shí)現(xiàn)特定功能的硬件模塊,功能簡(jiǎn)單、沒有靈活性。且特定功能的硬件模塊的設(shè)計(jì)全由硬件實(shí)現(xiàn),要求較高,本身設(shè)計(jì)起來較復(fù)雜、設(shè)計(jì)周期較長(zhǎng)、面積也較大[1]。
在比較復(fù)雜的金融場(chǎng)合,比如POS機(jī)支付領(lǐng)域,要實(shí)現(xiàn)的不單單是數(shù)據(jù)的加解密。從刷卡一開始的卡數(shù)據(jù)保護(hù),到密碼鍵盤的保護(hù),再到液晶接口的顯示,每個(gè)環(huán)節(jié)都要考慮到數(shù)據(jù)的防護(hù)。而且芯片自身也需要防攻擊模塊和機(jī)密數(shù)據(jù)防護(hù)模塊(遇到攻擊要清除機(jī)密數(shù)據(jù))。所有以上的安全功能要通過協(xié)處理器的方法全由硬件來完全實(shí)現(xiàn)是不現(xiàn)實(shí)的。目前市面上的POS機(jī)芯片都是單核實(shí)現(xiàn)的,主要是通過監(jiān)測(cè)是否遇到攻擊來清除機(jī)密數(shù)據(jù)。本文在此基礎(chǔ)上,通過特殊的雙核設(shè)計(jì),使得機(jī)密數(shù)據(jù)運(yùn)行在與實(shí)際應(yīng)用完全隔離的環(huán)境當(dāng)中。
1 設(shè)計(jì)簡(jiǎn)介
本文提供的雙核安全設(shè)計(jì)方法,是一個(gè)軟硬件的綜合體;在幾乎沒有增加芯片面積的前提下,縮短了研發(fā)周期,成本低且靈活多變;在沒有安全應(yīng)用操作時(shí),可以當(dāng)成普通的雙核芯片;在安全應(yīng)用操作時(shí),能在一個(gè)獨(dú)立封閉的物理環(huán)境實(shí)現(xiàn)對(duì)機(jī)密數(shù)據(jù)的完全隔離;在很大程度上提升了芯片處理能力和安全防護(hù),可以適用于各種不同的安全方面的應(yīng)用場(chǎng)景。
如圖1所示,本文主要講述一種雙核POS機(jī)安全芯片的設(shè)計(jì),主要包含安全系統(tǒng)(SP系統(tǒng))、應(yīng)用系統(tǒng)(AP系統(tǒng))、總線矩陣和雙核通信4大部分。
AP系統(tǒng)主要包括應(yīng)用處理器(AP)、應(yīng)用靜態(tài)隨機(jī)存儲(chǔ)器(SRAM-AP)、應(yīng)用存儲(chǔ)器、應(yīng)用直接內(nèi)存存取控制器(DMA-AP)、USB接口、嵌入式多媒體卡接口(eMMC接口)、通用通信接口、外部存儲(chǔ)器控制器接口(EMI)、四線外設(shè)串行接口(QSPI)等模塊。SP系統(tǒng)主要包括安全處理器(SP)、安全靜態(tài)隨機(jī)存儲(chǔ)器(SRAM-SP)、安全直接內(nèi)存存取控制器(DMA-SP)、安全存儲(chǔ)器和安全保護(hù)模塊等模塊。雙核通信模塊包括雙核通信協(xié)議模塊和雙核通信緩存模塊。
安全存儲(chǔ)器和應(yīng)用存儲(chǔ)器可以是ROM、OTP、Flash或EEPROM,也可以是上述4種的隨意混合。
AP系統(tǒng)和SP系統(tǒng)遵循雙核通信協(xié)議,通過對(duì)雙核通信緩存模塊的分時(shí)讀寫實(shí)現(xiàn)雙核之間數(shù)據(jù)的高效傳輸。
源于總線矩陣的特殊設(shè)計(jì),SP可以根據(jù)實(shí)際需求擁有訪問AP系統(tǒng)任何模塊的權(quán)限,而AP卻無法訪問SP系統(tǒng)的任何模塊。如此,實(shí)現(xiàn)了與AP系統(tǒng)完全隔離的密閉的SP系統(tǒng)。由SP系統(tǒng)完成所有的安全操作,AP系統(tǒng)僅需要通過雙核通信協(xié)議,發(fā)送相應(yīng)的數(shù)據(jù)和操作指令,SP系統(tǒng)接收該數(shù)據(jù)和操作指令,執(zhí)行之后把結(jié)果通過雙核通信協(xié)議返還給AP系統(tǒng)。
1.2 總線矩陣的設(shè)計(jì)
圖2是總線矩陣設(shè)計(jì)的一個(gè)簡(jiǎn)單示意圖,芯片內(nèi)的每個(gè)單元可以稱之為設(shè)備(IP),設(shè)備可以分為主設(shè)備或從設(shè)備。主設(shè)備通過片上總線跟總線矩陣相連接,總線矩陣也是通過片上總線跟從設(shè)備相連接。片上總線協(xié)議可以是ARM公司的AMBA協(xié)議,或opencores的wishbone總線協(xié)議,也可以是altera的avalon協(xié)議,也可以是其他類似的總線協(xié)議。
總線矩陣上的主設(shè)備可以是SP、AP、全局DMA,也可以是含內(nèi)置DMA功能的接口模塊(如USB、EMMC、WiFi、藍(lán)牙等);從設(shè)備可以是存儲(chǔ)器、SRAM、外部存儲(chǔ)接口、安全保護(hù)模塊、共同訪問模塊等,從設(shè)備可以根據(jù)應(yīng)用需求拆分得更精細(xì)化。主設(shè)備和從設(shè)備的個(gè)數(shù)可以根據(jù)實(shí)際應(yīng)用場(chǎng)景增加或減少,對(duì)應(yīng)的總線矩陣也要跟著變化。每個(gè)主設(shè)備接口和每個(gè)從設(shè)備接口之間都有通路,可以設(shè)計(jì)成橋接(連通)或斷開。橋接代表橋接兩頭的主設(shè)備和從設(shè)備通路是連通的,主設(shè)備可以訪問從設(shè)備;斷開則代表主設(shè)備無法訪問從設(shè)備。
如圖2所示,SP作為主設(shè)備通過總線矩陣與SRAM-SP、安全存儲(chǔ)器、SRAM-AP、應(yīng)用存儲(chǔ)器、安全防護(hù)模塊等從設(shè)備連接;AP也作為主設(shè)備通過總線矩陣與SRAM-AP、應(yīng)用存儲(chǔ)器等從設(shè)備連接。這樣,SP能夠訪問應(yīng)用系統(tǒng)模塊,而AP無法訪問安全系統(tǒng)模塊。如此,斷開AP與安全存儲(chǔ)器、SRAM-SP、安全防護(hù)模塊的連接關(guān)系,中止AP對(duì)安全系統(tǒng)的訪問,形成一個(gè)完全封閉的安全系統(tǒng),即應(yīng)用開發(fā)人員完全無法訪問到安全保護(hù)模塊及其內(nèi)部的機(jī)密數(shù)據(jù)。
其余內(nèi)置DMA功能的接口模塊可以根據(jù)應(yīng)用需求進(jìn)行差異化配置(圖2中全部留空),在此不具體展開。
1.3 雙核通信協(xié)議
SP系統(tǒng)和AP系統(tǒng)通過雙核通信協(xié)議模塊來實(shí)現(xiàn)對(duì)雙核通信緩存模塊的分時(shí)控制,保障雙核之間數(shù)據(jù)的安全交互。
1.3.1 雙核通信協(xié)議模塊的具體實(shí)現(xiàn)
雙核通信協(xié)議模塊里有一組SP中斷寄存器,包括中斷標(biāo)志位寄存器,中斷置1寄存器和中斷清0寄存器。跟中斷系統(tǒng)類似,SP中斷標(biāo)志位寄存器中只要有一位置1,則會(huì)產(chǎn)生中斷請(qǐng)求,SP通過識(shí)別中斷標(biāo)志位來完成該中斷請(qǐng)求;因此,AP只要往SP中斷標(biāo)志位寄存器寫入相應(yīng)的值(這個(gè)值代表著AP和SP已經(jīng)約定好的某項(xiàng)具體任務(wù)),SP就能完成該值所指的具體任務(wù)。反之,也同樣存在一組AP中斷寄存器,SP只要往AP中斷標(biāo)志位寄存器寫入相應(yīng)的值(這個(gè)值代表著AP和SP已經(jīng)約定好的某項(xiàng)具體任務(wù)),AP就能完成該值所指的具體任務(wù)。
1.3.2 雙核通信緩存分時(shí)讀寫的設(shè)計(jì)實(shí)現(xiàn)
雙核通信協(xié)議模塊包含一個(gè)互斥寄存器。如AP要操作雙核通信緩存之前,應(yīng)先讀取互斥寄存器位,如讀取到1,則表示有權(quán)限對(duì)雙核通信緩存進(jìn)行讀寫;如讀取到0,表示SP正在操作雙核通信緩存(SP在操作雙核通信緩存完后,會(huì)對(duì)互斥寄存器位進(jìn)行寫操作,互斥寄存器位的值為1),AP則應(yīng)該等待并查詢,直到讀取到1方可對(duì)雙核通信緩存進(jìn)行操作。反之,亦然。如SP要操作雙核通信緩存之前,應(yīng)先讀取互斥寄存器位,如讀取到1,則表示有權(quán)限對(duì)雙核通信緩存進(jìn)行讀寫;如讀取到0,表示AP正在操作雙核通信緩存(AP在操作雙核通信緩存完后,會(huì)對(duì)互斥寄存器位進(jìn)行寫操作,互斥寄存器位的值為1),SP則應(yīng)該等待并查詢,直到讀取到1方可對(duì)雙核通信緩存進(jìn)行操作。
1.3.3 雙核通信緩存的實(shí)現(xiàn)
SP系統(tǒng)和AP系統(tǒng)共同遵循以上雙核通信協(xié)議的約定,實(shí)現(xiàn)對(duì)雙核通信緩存的分時(shí)讀寫;SP和AP都可以訪問SRAM-AP,因此,可以由SP在SRAM-AP中直接指定某段區(qū)間為雙核通信緩存[3],軟件人員需要對(duì)這段區(qū)間做額外的定義和約束,避免發(fā)生誤操作。雙核通信緩存也可以是用硬件功能單獨(dú)實(shí)現(xiàn)的一塊SRAM,這塊SRAM只供雙核通信用,可以完全避免誤操作[2]。
1.3.4 雙核通信函數(shù)
SP系統(tǒng)提供所有的功能函數(shù)以便和AP系統(tǒng)通信。AP開發(fā)人員通過雙核通信功能,將需要輸入的數(shù)據(jù)寫入雙核通信緩存,再往SP中斷標(biāo)志位寄存器寫入相應(yīng)的值(代表相應(yīng)的任務(wù)函數(shù)),這樣SP即接收到相應(yīng)的中斷,就執(zhí)行該任務(wù)并最終把數(shù)據(jù)結(jié)果寫回到雙核通信緩存,然后SP往AP中斷標(biāo)志位寄存器寫入相應(yīng)值(代表任務(wù)執(zhí)行完畢),告知AP系統(tǒng)。同樣的,SP也可以主動(dòng)發(fā)起雙核通信,如SP系統(tǒng)檢測(cè)到安全防護(hù)模塊有數(shù)據(jù)輸入,則可以將相應(yīng)的需求數(shù)據(jù)寫入雙核通信緩存,再往AP中斷標(biāo)志位寄存器寫入相應(yīng)的值(代表相應(yīng)的任務(wù)函數(shù));這樣AP就接收到相應(yīng)的中斷,取到SP系統(tǒng)傳輸過來的數(shù)據(jù)。所有雙核之間的通信都必須符合SP系統(tǒng)所提供的功能函數(shù)集合,超出該集合,SP系統(tǒng)不會(huì)做出任何應(yīng)答。
由SP定義并提供函數(shù)調(diào)用接口,這樣做可以用ROM來完成很多程序代碼,節(jié)省FLASH成本,最終節(jié)省芯片成本。
1.4 POS機(jī)的安全實(shí)現(xiàn)
安全防護(hù)模塊包括如下模塊:加解密模塊、數(shù)據(jù)保護(hù)模塊、物理安全模塊、密碼鍵盤模塊、銀行卡模塊、液晶顯示模塊。這些模塊可以根據(jù)實(shí)際安全應(yīng)用需求來添加或減少。安全模塊可以如圖2所示通過總線掛在總線矩陣上,也可以通過總線直接掛在安全CPU上;所有有關(guān)信息安全或金融支付的模塊都可融合于安全防護(hù)模塊。
加解密模塊,包括但不限于DES/3DES、AES、HASH、ECC、RSA、國(guó)密等算法,用于完成機(jī)密信息的加解密處理。數(shù)據(jù)保護(hù)單元由非易失性存儲(chǔ)器構(gòu)成,支持快速清除功能,用于保存重要安全數(shù)據(jù),并在數(shù)據(jù)受到攻擊時(shí)快速清除敏感數(shù)據(jù)。物理安全單元由各種物理量探測(cè)單元組成,用于防御各種電壓、電流、電容、溫度、頻率類型的物理攻擊,銀行卡接口用于支持銀行卡的數(shù)據(jù)讀取,密碼鍵盤模塊用于對(duì)密碼輸入數(shù)據(jù)的保護(hù)。
1.5 升級(jí)的安全實(shí)現(xiàn)
AP可以選擇市場(chǎng)上常見的ARM或MIPS的低功耗系列RISC CPU,以便于客戶開發(fā)和市場(chǎng)推廣。SP完全由公司自主研發(fā),人為形成一個(gè)更加密閉的開發(fā)環(huán)境。如此,機(jī)密數(shù)據(jù)在產(chǎn)品出廠時(shí),通過一個(gè)自主設(shè)計(jì)的硬件通道和燒錄協(xié)議進(jìn)行燒錄,并讀取確認(rèn)燒錄成功后,該燒錄通道通過熔絲燒斷封閉掉,杜絕了燒錄通道泄露機(jī)密數(shù)據(jù)的可能。AP系統(tǒng)與SP系統(tǒng)的數(shù)據(jù)交互只有雙核通信緩存,SP系統(tǒng)提供用機(jī)密數(shù)據(jù)進(jìn)行相應(yīng)操作并輸出結(jié)果的函數(shù),不提供對(duì)機(jī)密數(shù)據(jù)進(jìn)行直接讀取的函數(shù)。這樣,AP開發(fā)人員沒有任何的物理通道讀取到機(jī)密數(shù)據(jù),外界攻擊人員再怎么通過AP系統(tǒng)的漏洞或軟件bug,也是無法取得機(jī)密數(shù)據(jù)的,從而實(shí)現(xiàn)了真正的物理隔離。
2 POS機(jī)實(shí)例說明
2.1 POS機(jī)安全支付
本發(fā)明所述的雙核安全POS機(jī)芯片,其安全支付流程如下:
(1)用戶通過POS設(shè)備進(jìn)行刷卡動(dòng)作,設(shè)備通過雙核芯片中安全系統(tǒng)的銀行卡接口模塊讀取用戶的銀行卡信息。
(2)用戶通過POS機(jī)上的按鍵輸入密碼等信息,按鍵直接連接到安全系統(tǒng)的密碼鍵盤模塊。相關(guān)信息通過安全系統(tǒng)內(nèi)的液晶控制接口在液晶上顯示,與用戶進(jìn)行一定的信息交互,如刪除、退格、確認(rèn)等。
(3)安全系統(tǒng)通過加解密模塊對(duì)上述信息進(jìn)行加密,然后將加密好的數(shù)據(jù)通過雙核通信功能傳輸給應(yīng)用系統(tǒng),應(yīng)用系統(tǒng)再將加密好的信息通過通信接口(如串口、USB等)發(fā)送給支付后臺(tái)。
(4)支付后臺(tái)處理完后,再將加密信息的校驗(yàn)結(jié)果通過通信接口傳輸回POS設(shè)備,應(yīng)用系統(tǒng)將校驗(yàn)結(jié)果通過雙核通信功能送到安全系統(tǒng),并通過約定好的雙核通信協(xié)議的函數(shù),將最終交易結(jié)果通過安全系統(tǒng)內(nèi)的液晶接口顯示出來。
應(yīng)用系統(tǒng)通過通信接口與銀行對(duì)接,只對(duì)已經(jīng)加密好的信息進(jìn)行搬運(yùn)工作,安全方面的所有工作全由安全核完成,應(yīng)用人員無法形成攻擊且無法獲得機(jī)密數(shù)據(jù)。
2.2 POS機(jī)的數(shù)據(jù)防護(hù)
使用安全系統(tǒng)中物理安全單元的相關(guān)功能進(jìn)行各種抗攻擊設(shè)計(jì)。物理安全單元適時(shí)探測(cè)環(huán)境變化,可以保證在機(jī)器受到攻擊后清除數(shù)據(jù)保護(hù)單元中的重要敏感信息,以免被攻擊者盜取。數(shù)據(jù)防護(hù)的工作依舊是安全系統(tǒng)完成,應(yīng)用人員無觸碰。
3 測(cè)試與驗(yàn)證
聯(lián)合應(yīng)用開發(fā)人員,上述設(shè)計(jì)已在FPGA平臺(tái)上完成了高覆蓋率的功能測(cè)試和雙核安全測(cè)試,也在服務(wù)器上完成了芯片級(jí)別的高覆蓋率仿真測(cè)試,目前已MPW。
-
處理器
+關(guān)注
關(guān)注
68文章
19100瀏覽量
228814 -
芯片
+關(guān)注
關(guān)注
452文章
50206瀏覽量
420888
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論