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