文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.171629
中文引用格式: 柯志斌,葉琨,,周媛媛. 一種雙核安全芯片的設(shè)計(jì)實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,,2017,43(10):31-33,,38.
英文引用格式: Ke Zhibin,,Ye Kun,Zhou Yuanyuan. A design implementation of dual-core safe chip[J].Application of Electronic Technique,,2017,,43(10):31-33,38.
0 引言
隨著智能手機(jī)和物聯(lián)網(wǎng)的爆炸式增長(zhǎng),,越來(lái)越多的安全芯片在眾多領(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)域等。安全芯片在保障信息安全方面有著無(wú)可比擬的優(yōu)點(diǎn)和不可替代的作用,。正因?yàn)榘踩酒绱酥匾?,針?duì)安全芯片的攻擊技術(shù)也層出不窮;安全芯片本身的安全性設(shè)計(jì)也日益重要,對(duì)這一塊的研究和應(yīng)用具有重要的現(xiàn)實(shí)意義,。
在目前的信息安全應(yīng)用中,,帶有安全協(xié)處理器方案的芯片被廣泛采納。然而安全協(xié)處理器基本都是針對(duì)某種具體應(yīng)用來(lái)設(shè)計(jì)的一個(gè)實(shí)現(xiàn)特定功能的硬件模塊,,功能簡(jiǎn)單,、沒(méi)有靈活性。且特定功能的硬件模塊的設(shè)計(jì)全由硬件實(shí)現(xiàn),,要求較高,,本身設(shè)計(jì)起來(lái)較復(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ù)),。所有以上的安全功能要通過(guò)協(xié)處理器的方法全由硬件來(lái)完全實(shí)現(xiàn)是不現(xiàn)實(shí)的,。目前市面上的POS機(jī)芯片都是單核實(shí)現(xiàn)的,主要是通過(guò)監(jiān)測(cè)是否遇到攻擊來(lái)清除機(jī)密數(shù)據(jù),。本文在此基礎(chǔ)上,,通過(guò)特殊的雙核設(shè)計(jì),使得機(jī)密數(shù)據(jù)運(yùn)行在與實(shí)際應(yīng)用完全隔離的環(huán)境當(dāng)中,。
1 設(shè)計(jì)簡(jiǎn)介
本文提供的雙核安全設(shè)計(jì)方法,,是一個(gè)軟硬件的綜合體;在幾乎沒(méi)有增加芯片面積的前提下,,縮短了研發(fā)周期,,成本低且靈活多變;在沒(méi)有安全應(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é)議,通過(guò)對(duì)雙核通信緩存模塊的分時(shí)讀寫實(shí)現(xiàn)雙核之間數(shù)據(jù)的高效傳輸,。
源于總線矩陣的特殊設(shè)計(jì),,SP可以根據(jù)實(shí)際需求擁有訪問(wèn)AP系統(tǒng)任何模塊的權(quán)限,而AP卻無(wú)法訪問(wèn)SP系統(tǒng)的任何模塊,。如此,,實(shí)現(xiàn)了與AP系統(tǒng)完全隔離的密閉的SP系統(tǒng)。由SP系統(tǒng)完成所有的安全操作,,AP系統(tǒng)僅需要通過(guò)雙核通信協(xié)議,,發(fā)送相應(yīng)的數(shù)據(jù)和操作指令,SP系統(tǒng)接收該數(shù)據(jù)和操作指令,,執(zhí)行之后把結(jié)果通過(guò)雙核通信協(xié)議返還給AP系統(tǒng),。
1.2 總線矩陣的設(shè)計(jì)
圖2是總線矩陣設(shè)計(jì)的一個(gè)簡(jiǎn)單示意圖,芯片內(nèi)的每個(gè)單元可以稱之為設(shè)備(IP),,設(shè)備可以分為主設(shè)備或從設(shè)備,。主設(shè)備通過(guò)片上總線跟總線矩陣相連接,總線矩陣也是通過(guò)片上總線跟從設(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ù)模塊、共同訪問(wèn)模塊等,,從設(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è)備可以訪問(wèn)從設(shè)備,;斷開則代表主設(shè)備無(wú)法訪問(wèn)從設(shè)備。
如圖2所示,,SP作為主設(shè)備通過(guò)總線矩陣與SRAM-SP,、安全存儲(chǔ)器、SRAM-AP,、應(yīng)用存儲(chǔ)器,、安全防護(hù)模塊等從設(shè)備連接;AP也作為主設(shè)備通過(guò)總線矩陣與SRAM-AP,、應(yīng)用存儲(chǔ)器等從設(shè)備連接,。這樣,SP能夠訪問(wèn)應(yīng)用系統(tǒng)模塊,,而AP無(wú)法訪問(wèn)安全系統(tǒng)模塊,。如此,斷開AP與安全存儲(chǔ)器,、SRAM-SP,、安全防護(hù)模塊的連接關(guān)系,中止AP對(duì)安全系統(tǒng)的訪問(wèn),,形成一個(gè)完全封閉的安全系統(tǒng),,即應(yīng)用開發(fā)人員完全無(wú)法訪問(wèn)到安全保護(hù)模塊及其內(nèi)部的機(jī)密數(shù)據(jù),。
其余內(nèi)置DMA功能的接口模塊可以根據(jù)應(yīng)用需求進(jìn)行差異化配置(圖2中全部留空),在此不具體展開,。
1.3 雙核通信協(xié)議
SP系統(tǒng)和AP系統(tǒng)通過(guò)雙核通信協(xié)議模塊來(lái)實(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通過(guò)識(shí)別中斷標(biāo)志位來(lái)完成該中斷請(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都可以訪問(wèn)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ā)人員通過(guò)雙核通信功能,,將需要輸入的數(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)傳輸過(guò)來(lái)的數(shù)據(jù),。所有雙核之間的通信都必須符合SP系統(tǒng)所提供的功能函數(shù)集合,超出該集合,,SP系統(tǒng)不會(huì)做出任何應(yīng)答,。
由SP定義并提供函數(shù)調(diào)用接口,這樣做可以用ROM來(lái)完成很多程序代碼,節(jié)省FLASH成本,,最終節(jié)省芯片成本,。
1.4 POS機(jī)的安全實(shí)現(xiàn)
安全防護(hù)模塊包括如下模塊:加解密模塊、數(shù)據(jù)保護(hù)模塊,、物理安全模塊,、密碼鍵盤模塊、銀行卡模塊,、液晶顯示模塊,。這些模塊可以根據(jù)實(shí)際安全應(yīng)用需求來(lái)添加或減少,。安全模塊可以如圖2所示通過(guò)總線掛在總線矩陣上,也可以通過(guò)總線直接掛在安全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)上常見(jiàn)的ARM或MIPS的低功耗系列RISC CPU,以便于客戶開發(fā)和市場(chǎng)推廣,。SP完全由公司自主研發(fā),,人為形成一個(gè)更加密閉的開發(fā)環(huán)境。如此,,機(jī)密數(shù)據(jù)在產(chǎn)品出廠時(shí),,通過(guò)一個(gè)自主設(shè)計(jì)的硬件通道和燒錄協(xié)議進(jìn)行燒錄,并讀取確認(rèn)燒錄成功后,,該燒錄通道通過(guò)熔絲燒斷封閉掉,,杜絕了燒錄通道泄露機(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ā)人員沒(méi)有任何的物理通道讀取到機(jī)密數(shù)據(jù),,外界攻擊人員再怎么通過(guò)AP系統(tǒng)的漏洞或軟件bug,,也是無(wú)法取得機(jī)密數(shù)據(jù)的,從而實(shí)現(xiàn)了真正的物理隔離,。
2 POS機(jī)實(shí)例說(shuō)明
2.1 POS機(jī)安全支付
本發(fā)明所述的雙核安全POS機(jī)芯片,,其安全支付流程如下:
(1)用戶通過(guò)POS設(shè)備進(jìn)行刷卡動(dòng)作,設(shè)備通過(guò)雙核芯片中安全系統(tǒng)的銀行卡接口模塊讀取用戶的銀行卡信息,。
(2)用戶通過(guò)POS機(jī)上的按鍵輸入密碼等信息,,按鍵直接連接到安全系統(tǒng)的密碼鍵盤模塊。相關(guān)信息通過(guò)安全系統(tǒng)內(nèi)的液晶控制接口在液晶上顯示,,與用戶進(jìn)行一定的信息交互,,如刪除、退格,、確認(rèn)等,。
(3)安全系統(tǒng)通過(guò)加解密模塊對(duì)上述信息進(jìn)行加密,然后將加密好的數(shù)據(jù)通過(guò)雙核通信功能傳輸給應(yīng)用系統(tǒng),,應(yīng)用系統(tǒng)再將加密好的信息通過(guò)通信接口(如串口,、USB等)發(fā)送給支付后臺(tái)。
(4)支付后臺(tái)處理完后,,再將加密信息的校驗(yàn)結(jié)果通過(guò)通信接口傳輸回POS設(shè)備,,應(yīng)用系統(tǒng)將校驗(yàn)結(jié)果通過(guò)雙核通信功能送到安全系統(tǒng),并通過(guò)約定好的雙核通信協(xié)議的函數(shù),,將最終交易結(jié)果通過(guò)安全系統(tǒng)內(nèi)的液晶接口顯示出來(lái),。
應(yīng)用系統(tǒng)通過(guò)通信接口與銀行對(duì)接,只對(duì)已經(jīng)加密好的信息進(jìn)行搬運(yùn)工作,,安全方面的所有工作全由安全核完成,,應(yīng)用人員無(wú)法形成攻擊且無(wú)法獲得機(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)用人員無(wú)觸碰。
3 測(cè)試與驗(yàn)證
聯(lián)合應(yīng)用開發(fā)人員,,上述設(shè)計(jì)已在FPGA平臺(tái)上完成了高覆蓋率的功能測(cè)試和雙核安全測(cè)試,,也在服務(wù)器上完成了芯片級(jí)別的高覆蓋率仿真測(cè)試,目前已MPW,。
參考文獻(xiàn)
[1] 妙維,,袁宏駿,余紅斌,等.信息安全協(xié)處理器及其內(nèi)部存儲(chǔ)空間的管理方法.中國(guó),,CN 102521166 B[P].2015-02-11.
[2] NXP Semiconductors,,LPC43xx/LPC43Sxx ARM Cortex-M4/M0 multi-core microcontroller user manual[DB/OL].(2015-10-10).http://cache.nxp.com/documents/user_manual/UM10503.pdf?fsrch=1&sr=1&pageNum=1.
[3] NXP Semiconductors,LPC5411x User manual[DB/OL].(2016-2-16).http://cache.nxp.com/documents/user_manual/UM10914.pdf?fsrch=1&sr=4&pageNum=1.
作者信息:
柯志斌,,葉 琨,,周媛媛
(福建睿矽微電子科技有限公司,福建 福州350003)