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