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