《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 一種雙核安全芯片的設(shè)計(jì)實(shí)現(xiàn)
一種雙核安全芯片的設(shè)計(jì)實(shí)現(xiàn)
2017年電子技術(shù)應(yīng)用第10期
柯志斌,葉 琨,周媛媛
福建睿矽微電子科技有限公司,福建 福州350003
摘要: 介紹了一種雙核安全芯片的設(shè)計(jì)方法,并以已實(shí)現(xiàn)的雙核POS機(jī)安全芯片為例,對(duì)其原理及功能實(shí)現(xiàn)進(jìn)行闡述。目前,純粹的安全芯片基本都是單核的實(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)中,杜絕了機(jī)密數(shù)據(jù)在應(yīng)用開(kāi)發(fā)終端被誘取的可能。
中圖分類(lèi)號(hào): TN492/TP338.1
文獻(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.
A design implementation of dual-core safe chip
Ke Zhibin,Ye Kun,Zhou Yuanyuan
Fujian Witsi Microelectronics Technology Co.,Ltd.Fuzhou 350003,China
Abstract: A design method of dual-core security chip was introduced, and with the implemented dual-core security chip used in POS equipment as an example, the principle and function realization was elaborated. At present, the pure basic security chip is a single core implementation scheme, mainly through monitoring whether encounter attack to clear the confidential data. Based on this, a special dual-core technology is designed, making the confidential data run in closed environment which is completely isolated from the practical application, putting an end to the possibility that the confidential data may be induced to be stolen through the application terminal.
Key words : dual-core;security chip;confidential data;POS(point-of-sale) equipment

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ù)的加解密。從刷卡一開(kāi)始的卡數(shù)據(jù)保護(hù),到密碼鍵盤(pán)的保護(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大部分。

wdz1-t1.gif

    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í)讀寫(xiě)實(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è)單元可以稱(chēng)之為設(shè)備(IP),設(shè)備可以分為主設(shè)備或從設(shè)備。主設(shè)備通過(guò)片上總線跟總線矩陣相連接,總線矩陣也是通過(guò)片上總線跟從設(shè)備相連接。片上總線協(xié)議可以是ARM公司的AMBA協(xié)議,或opencores的wishbone總線協(xié)議,也可以是altera的avalon協(xié)議,也可以是其他類(lèi)似的總線協(xié)議。

wdz1-t2.gif

    總線矩陣上的主設(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ì)成橋接(連通)或斷開(kāi)。橋接代表橋接兩頭的主設(shè)備和從設(shè)備通路是連通的,主設(shè)備可以訪問(wèn)從設(shè)備;斷開(kāi)則代表主設(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)模塊。如此,斷開(kāi)AP與安全存儲(chǔ)器、SRAM-SP、安全防護(hù)模塊的連接關(guān)系,中止AP對(duì)安全系統(tǒng)的訪問(wèn),形成一個(gè)完全封閉的安全系統(tǒng),即應(yīng)用開(kāi)發(fā)人員完全無(wú)法訪問(wèn)到安全保護(hù)模塊及其內(nèi)部的機(jī)密數(shù)據(jù)。

    其余內(nèi)置DMA功能的接口模塊可以根據(jù)應(yīng)用需求進(jìn)行差異化配置(圖2中全部留空),在此不具體展開(kāi)。

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)類(lèi)似,SP中斷標(biāo)志位寄存器中只要有一位置1,則會(huì)產(chǎn)生中斷請(qǐng)求,SP通過(guò)識(shí)別中斷標(biāo)志位來(lái)完成該中斷請(qǐng)求;因此,AP只要往SP中斷標(biāo)志位寄存器寫(xiě)入相應(yīng)的值(這個(gè)值代表著AP和SP已經(jīng)約定好的某項(xiàng)具體任務(wù)),SP就能完成該值所指的具體任務(wù)。反之,也同樣存在一組AP中斷寄存器,SP只要往AP中斷標(biāo)志位寄存器寫(xiě)入相應(yīng)的值(這個(gè)值代表著AP和SP已經(jīng)約定好的某項(xiàng)具體任務(wù)),AP就能完成該值所指的具體任務(wù)。

1.3.2 雙核通信緩存分時(shí)讀寫(xiě)的設(shè)計(jì)實(shí)現(xiàn)

    雙核通信協(xié)議模塊包含一個(gè)互斥寄存器。如AP要操作雙核通信緩存之前,應(yīng)先讀取互斥寄存器位,如讀取到1,則表示有權(quán)限對(duì)雙核通信緩存進(jìn)行讀寫(xiě);如讀取到0,表示SP正在操作雙核通信緩存(SP在操作雙核通信緩存完后,會(huì)對(duì)互斥寄存器位進(jìn)行寫(xiě)操作,互斥寄存器位的值為1),AP則應(yīng)該等待并查詢(xún),直到讀取到1方可對(duì)雙核通信緩存進(jìn)行操作。反之,亦然。如SP要操作雙核通信緩存之前,應(yīng)先讀取互斥寄存器位,如讀取到1,則表示有權(quán)限對(duì)雙核通信緩存進(jìn)行讀寫(xiě);如讀取到0,表示AP正在操作雙核通信緩存(AP在操作雙核通信緩存完后,會(huì)對(duì)互斥寄存器位進(jìn)行寫(xiě)操作,互斥寄存器位的值為1),SP則應(yīng)該等待并查詢(xún),直到讀取到1方可對(duì)雙核通信緩存進(jìn)行操作。

1.3.3 雙核通信緩存的實(shí)現(xiàn)

    SP系統(tǒng)和AP系統(tǒng)共同遵循以上雙核通信協(xié)議的約定,實(shí)現(xiàn)對(duì)雙核通信緩存的分時(shí)讀寫(xiě);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開(kāi)發(fā)人員通過(guò)雙核通信功能,將需要輸入的數(shù)據(jù)寫(xiě)入雙核通信緩存,再往SP中斷標(biāo)志位寄存器寫(xiě)入相應(yīng)的值(代表相應(yīng)的任務(wù)函數(shù)),這樣SP即接收到相應(yīng)的中斷,就執(zhí)行該任務(wù)并最終把數(shù)據(jù)結(jié)果寫(xiě)回到雙核通信緩存,然后SP往AP中斷標(biāo)志位寄存器寫(xiě)入相應(yīng)值(代表任務(wù)執(zhí)行完畢),告知AP系統(tǒng)。同樣的,SP也可以主動(dòng)發(fā)起雙核通信,如SP系統(tǒng)檢測(cè)到安全防護(hù)模塊有數(shù)據(jù)輸入,則可以將相應(yīng)的需求數(shù)據(jù)寫(xiě)入雙核通信緩存,再往AP中斷標(biāo)志位寄存器寫(xiě)入相應(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ù)模塊、物理安全模塊、密碼鍵盤(pán)模塊、銀行卡模塊、液晶顯示模塊。這些模塊可以根據(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è)單元組成,用于防御各種電壓、電流、電容、溫度、頻率類(lèi)型的物理攻擊,銀行卡接口用于支持銀行卡的數(shù)據(jù)讀取,密碼鍵盤(pán)模塊用于對(duì)密碼輸入數(shù)據(jù)的保護(hù)。

1.5 升級(jí)的安全實(shí)現(xiàn)

    AP可以選擇市場(chǎng)上常見(jiàn)的ARM或MIPS的低功耗系列RISC CPU,以便于客戶開(kāi)發(fā)和市場(chǎng)推廣。SP完全由公司自主研發(fā),人為形成一個(gè)更加密閉的開(kāi)發(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開(kāi)發(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)的密碼鍵盤(pán)模塊。相關(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)用開(kāi)發(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)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。