金錢,這個財富象徵、用於償還債務的概念化共識,是現代文明的重要里程碑。現在,隨著智慧技術整合到互動的事物之中,未來將可在家電、車輛和家居環境進行支付交易。管理帳戶資料保護的權責單位是支付卡產業安全標準委員會(PCI SSC),該委員會提供的準則可讓開發人員理解及實作高度安全的裝置,讓他們提供的服務能夠獲利。而滿足接受支付卡和執行支付交易之PCI標準的關鍵,是使用具有整合安全功能的Arm CPU的處理器,這些功能可增強信任、加密和因應篡改,全都是實現嵌入式系統尖端安全性的必要條件。

支付應用的方式五花八門,可以是簡單的PIN輸入裝置,或是在高檔餐廳桌上會看到的最新型多媒體智慧終端系統。除了完成支付交易之外,這些智慧型POS裝置還能擔任廣告平台的角色。對於連接到智慧型手機或平板電腦的簡單PIN鍵盤和從屬終端系統,使用的Arm Cortex-M處理器性能兼具功耗和成本考量。對於更為先進、採用Android作業系統和高階顯示器的系統,是使用Arm Cortex-A CPU的處理器,這兩種應用案例都必須採用防篡改、加密和信任的必要功能。本文將簡介用於確保遵循支付卡產業標準的關鍵處理器功能、軟體元件和方法。

安全交易

很多人每天會多次使用支付卡。不管是搭計程車、去餐廳,還是午餐光顧最喜歡的餐車,都參與了持卡人、商家、收單機構與銀行間的安全交易。光是在美國,2015年的卡片支付交易數量就超過了1,000億筆,這些安全交易與價值直接相關,在美國平均每筆交易額為55美元。隨著嵌入式世界進入一個一切智慧化、連網的時代,這個成熟的應用空間面臨持續成長的安全威脅,有很多值得學習的地方。

如圖1所示,支付卡交易展現出安全嵌入式應用的各個層面。在交易的一端,消費者持有支付卡,這個節點將獨特辨識與使用者綁定。對於參與交易的實體,有著對保證服務的期望及支援,通訊受到通訊介面的加密及實體保護方案的保護,為完成支付而產生的敏感資料受到安全管理,只能使用安全的網路介面。在支付卡及終端系統上,都有整合的防篡改功能,以增強應用的安全性。這些安全層面都必須具備,以支援安全交易。

20181019TA71P1 圖1 支付卡交易的功能安全性。

支付終端系統的功能與其他嵌入式應用市場一樣,可能因為幾個因素而各有不同。支援的人機互動豐富程度、接受支付卡類型,以及系統是桌面裝置還是可攜式;在較低階的系統,讀卡機連接到行動裝置,只接受一種支付方式。較標準、普遍的支付終端系統類型,是手持、接受PIN碼和桌上型,高階系統則整合了完整的收銀機與高階顯示器。這些裝置的個別系統需求,造成支援這些裝置的嵌入式處理器之多樣性,對於所有外型尺寸的裝置,產業標準都要求對系統的安全性進行認證。

這種嵌入式多樣性的態勢,並不僅限於支付終端系統。縱觀物聯網,可看到智慧手錶、溫控裝置、家居監控系統等應用也有類似變化。嵌入式系統設計人員如果要打造支付終端系統或智慧手錶,必須瞭解可保護系統、防止高傷害攻擊的方法及準則。

支付終端系統架構

支付終端系統架構可以分為四種類型。若要瞭解安全性的挑戰,首先要大略瞭解這些設計提供的基礎功能。以下部分將詳細介紹此應用空間中的主要架構。

A.具備RTOS的微控制器(MCU)

最簡易的支付裝置支援安全PIN鍵盤、連接至行動裝置的mPOS或可攜式銷售點(POS)裝置等功能,通常由MCU架構打造而成,例如,運作時脈超過100MHz的Arm Cortex-M等級裝置。這種裝置的嵌入式記憶體因終端裝置功能而異,差距極大,一般大小從256KB嵌入式快閃記憶體、1MB嵌入式快閃記憶體到256KB的SRAM都有。圖2詳細介紹此架構及所有嵌入式功能支援的最完整呈現。

20181019TA71P2 圖2 具備RTOS的MCU方塊圖。

其提供的功能是以有線或無線介面、系統時脈、電源和最終的讀卡機介面,藉由PIN鍵盤、顯示器、狀態LED及蜂鳴器連線能力構成的人機介面。讀卡器介面可包括使用近距離無線通訊(NFC)的磁卡、接觸式卡片及非接觸式卡片。

B.執行Linux的應用處理器

桌面及可攜式銷售點裝置最常見的外型尺寸,是以執行Linux作業系統的應用處理器打造而成,此架構提供的功能可等同於MCU系統。這些裝置可為連接到行動裝置的mPOS,或是使用自身的數據機完成支付交易的裝置。支援Linux需要使用Arm Cortex-A裝置。若要提供終端使用者更多可擴展性,此類裝置必須能讓商家自訂設置,並與支付網路基礎架構共同運作。運用Linux作業系統,應用處理器可提供更高階的顯示及更多性能。

C.執行Android的應用處理器

最近的趨勢是以Android作業系統打造的支付終端系統。這些裝置可讓終端使用者獲得的體驗,與使用具有豐富3D使用者介面的智慧型手機相同。在Android應用程式開發人員的協助下,這一波趨勢為支付終端系統帶來了更多功能,包括庫存管理和資源規劃應用程式,補足裝置的接受支付功能。

D.分離架構:具有安全MCU的應用處理器

某些情況的處理需求極高,例如需要播放高畫質影片並支援廣告展示。此時可以部署分離架構:這種架構主要是採用MCU系統架構,並加入通常配備在平板電腦或智慧型手機的高階處理器,應用處理器通常會執行Android。此架構中的安全MCU作用為與接觸式、非接觸式讀卡機通訊,以及執行大部分功能,以支援終端裝置的安全性。高階應用處理器提供多媒體功能。

20181019TA71P3 圖3 分離架構方塊圖。

支付安全標準

2006年,主要發卡品牌Visa、MasterCard、Discover、American Express和JCB共同創立了支付卡產業安全標準委員會。委員會的創辦目的為提高消費者對其產品的信心,以提供開發人員瞭解及實作高度安全裝置所需的準則。這項標準是適用於支付終端系統的主要標準,目前已為全球採用。如圖4所示,支付卡產業安全標準委員會將其標準劃分為三類,即終端系統製造商、支付應用程式開發商與商家,以及處理器的準則。

20181019TA71P4 圖4 支付卡產業安全標準委員會簡介。

與嵌入式處理器最相關的是終端系統製造商的準則。這些是PCI Pin交易標準。PCI PTS標準每三年或每次出現重大威脅時進行更新。長時間累積的重大改變,顯示嵌入式應用安全性受到的威脅逐漸增加。其中包括對於進行第三方評估、因應防篡改、安全通訊要求、端對端加密方法的需求,以及使用者在裝置部署後如何維護安全性的文件記錄需求。在PCI PTS標準中,有詳細說明安全要求的文件,以及第三方實驗室測試終端裝置的準則。

支付終端系統的標準強度,使得發動對終端系統的攻擊極為困難。此標準提供兩份重要文件,一份詳細說明安全要求(SR),另一份文件則詳細說明接受該裝置的支付卡必須通過的測試。這些衍生測試要求由經核准的評估實驗室應用於正在進行評估之終端裝置的功能。以上文件加上PCI PTS文件,共同提供準則及實作建議,提高所有支付裝置的安全層級。

20181019TA71P5 圖5 PCI PTS隨時間的改變。

A.PCI PTS 評估

為符合PCI PTS標準,製造商必須與經核准的PCI PTS評估實驗室合作。這項來自第三方的參與,是確保安全整合滿足標準要求的一種方法。PCI實驗室評估支付裝置時,將執行系統層級評估,包括分析評估目標的所有設計及製造層面,此類實驗室將具備內部知識,包括取用設計檔案及韌體。製造商將以最終的外形尺寸提供帶有外殼的支付裝置,評估人員將根據標準準則設計針對裝置的攻擊。

PCI PTS評估實驗室將挑戰裝置兩個層面的安全性:實體安全性及邏輯安全性。實體安全性是指對PCB佈線的保護、對鍵盤上覆蓋攻擊(overlay attack)的抵抗力,甚至是敏感操作的訊號發射或洩露。邏輯安全性保護包括韌體保護,例如應用程式分區,以及如何進行韌體更新。

評估實驗室攻擊裝置時會檢視攻擊成本,這項措施是用於瞭解已實施的安全功能之執行情況。攻擊成本的計算以計分系統為準,此系統在衍生測試文件中的PCI PTS標準中有詳細說明。它將攻擊分為兩個階段,首先是辨識,然後是漏洞利用。攻擊成本計算考量的攻擊層面包括:時間、專業知識、設備、對裝置的瞭解、裝置存取權限,以及攻擊所需的特定零件或工具。有一套計分系統用於計算攻擊的分數,測試對於攻擊的漏洞利用階段得分,以及總分有相關要求。這種方法強調安全的一個重要層面:一旦攻擊者找出一種系統的攻擊模式,之後的攻擊就會變得更容易,因為現有攻擊計畫已可用。

藉由分析此標準中的攻擊成本要求,可以看到應用中必須保護之最敏感資料的階層結構。安全處理器將接受最嚴格的安全測試,並取得對韌體或秘密金鑰的存取權限。使用者輸入PIN密碼的鍵盤必須嚴密保護,即使顯示的資訊也必須通過標準中訂定的PCI PTS攻擊成本標準。

20181019TA71P6 圖6 PCI攻擊成本要求與功能的關係。

安全處理器技術

為符合PCI PTS要求,安全支付接受裝置必須使用正確的架構元件。如果沒有將安全技術整合到元件中,無法實現認證,像恩智浦半導體這樣的半導體製造商,提供安全處理器數百種與終端設計安全相關的功能,可分類如下:

加密加速:編碼及解碼資料的科學。

信任執行:僅允許對應用程式預期的功能。

防篡改:監控、保護系統不受攻擊者的侵害,並在需要時加以因應。

20181019TA71P6-1

這些安全技術彼此協調運作,以保護嵌入式系統。防篡改技術應用於由加密加速器處理的敏感金鑰及資料,反之,加密加速器用於測試韌體,以確保信任執行。最後,執行韌體的任何問題都會在系統中啟動因應防篡改。

為支援支付終端系統外型尺寸的變化,這些機制整合至安全處理器中的方式各不相同。對於PIN鍵盤提供的最低限度功能,由執行RTOS的Arm Cortex-M CPU驅動的處理器,將與執行Linux或Android的高階架構所需的功能層級不同。瞭解這些處理器如何滿足PCI PTS要求,可提供保護所有類型嵌入式設計所需的深入見解。

A.MCU的實體安全實作

為通過評估,PCI PTS設計必須對PIN揭露錯誤具有極高的抵抗力。由於相關電子設備具有傳遞敏感資料的數位介面,因此許多設計實作安全外殼,以防止對敏感訊號的探測,這些外殼能夠限制對管理安全資料IC的存取。這些安全外殼必須遵循PCI PTS的設計準則,以保護PCB中的通孔、設定佈線寬度和間距,並且只有不相關的防篡改訊號能夠彼此相鄰,PCB設計範例如圖7所示。

20181019TA71P7 圖7 PCB設計及保護接觸式卡片介面。

這種類型的實體屏障不能單獨使用。設計中內建了多個實體保護區域,包括用於偵測裝置外殼是否已被移除的感測器。機械和電氣設計共同作用,讓外殼關閉開關將保護網狀訊號連接在一起。

管理此實體保護的是MCU上的防篡改周邊裝置。對於恩智浦Kinetis MCU,該周邊裝置稱為DryICE,DryICE會產生隨機輸出訊號,經過保護區域,必須在輸入針腳上讀取到相同的訊號,否則會產生篡改狀態。這些保護性佈線分佈在整個設計中,為敏感功能提供保護,例如支付卡介面、顯示器及鍵盤。

DryICE還提供感測器,用於監控安全處理器的時脈、電壓、溫度及內部狀態訊號。對於類比感測器或進入DryICE的數位輸入,發生違規的因應措施是安全儲存空間歸零,此操作藉由銷毀與敏感資料相關的金鑰來破壞對該資料的存取,這種支付終端系統的「遭篡改」狀態會讓系統無法完成該筆支付交易。

這些防篡改功能由嵌入裝置的獨立安全電池供電,通常是支付裝置外殼內的鈕扣電池。支付應用防篡改功能的一個重要層面,是啟用這些功能的功耗,讓防篡改感測器以非常低的漏電流運作,可以讓部署時間達到3年、5年甚至7年。因此,MCU上實現的防篡改功能經過最佳化,可以減少漏電流,並且只需2μA電流就可以支援這項基本功能。

B.MCU的邏輯安全實作

為支援PCI PTS邏輯安全性評估,製造商必須辨識敏感資訊,以及瞭解如何加以保護。認證程序中產生的匯總表,有助於評估者和製造商確保進行全面的安全實作。

20181019TA71P7-1 表1 辨識敏感資訊。

使用DryICE提供的強大實體安全保護的金鑰,明確控制資料的存放位置及大多數安全資料的加密儲存。輔助邏輯安全性的基本MCU功能,包括記憶體保護單元、硬體防火牆及快閃記憶體保護機制,這些功能共同運作,以確保執行期間所辨識的敏感資訊受到保護。

20181019TA71P8 圖8 MCU的系統級保護。

此外每次啟動時,主韌體中的自我測試功能都會運作,執行韌體的SHA-256雜湊並檢查篡改,做為真實性檢查。如果裝置啟動超過24小時,則強制重新啟動裝置,以再次檢查真實性,如果檢查失敗,則強制執行篡改條件。此設計可確保只能執行經授權的應用程式碼,敏感韌體不可重新編寫程式,因此無法修改應用程式。

PCI PTS標準中還有詳細說明金鑰管理的準則,例如,大量資料加密的密鑰必須與財務資訊密鑰分開。必須執行韌體檢查,以符合金鑰管理準則,PCI PTS認證過程將包括對裝置韌體中之金鑰管理的分析,評估人員將檢查終端系統製造商記錄的金鑰管理是否在安全韌體中實作。

C.應用處理器的安全架構

隨著手機及平板電腦的普及,技術的採用範圍已經納入銷售點裝置。能夠驅動功能更強大之支付裝置的安全處理器,正將性能及多媒體整合推向極限,這些應用處理器的設計為開放系統。為維持支付裝置所需的強大安全性,高性能子系統在硬體級別上完成了許多功能,圖9為恩智浦i.MX6及i.MX7的安全架構。

20181019TA71P9 圖9 i.MX6及i.Mx7安全架構。

Arm TrustZone架構用於為敏感軟體功能加入保護層。為補足Arm TrustZone,中央安全單元(CSU)等周邊可以控制從其他總線主控器到周邊裝置的存取,提供硬體防火牆。SNVS子系統進行監控,與MCU中的DryICE周邊所執行的功能相同,對於i.MX應用處理器,有來自晶片的警示,例如JTAG控制器及系統監視器。

為減少對系統中密鑰的軟體存取量,安全金鑰儲存、加密硬體與裝置啟動之間存在強大的互動關係。除非晶片使用裝置的ROM啟動並執行韌體驗證,否則系統中最受信任的安全金鑰將無法使用。

20181019TA71P10 圖10 金鑰管理與安全晶片狀態。

恩智浦應用處理器使用稱為加密保證和加速模組(CAAM)的區塊。CAAM本身整合了與信任、加密加速及防篡改等安全要素相關的功能,這些功能全都在這個單一子系統中。在加密方面,CAAM與MCU實作的區別,在於演算法支援及流通量。該區塊具備自有的DMA來執行多項作業,CAAM還整合了隨機數產生器及邏輯,以執行滿足與證明系統使用的隨機數強度相關的PCI PTS標準所需的白化(whitening)。OTP主金鑰及可歸零主金鑰(ZMK)直接對接至CAAM,不需軟體傳遞金鑰即可執行加密操作,同樣的,除非系統經過韌體驗證進入安全狀態,否則這些金鑰無法使用。

與CAAM緊密耦合的,是可達32KB的安全揮發性記憶體。此記憶體與晶片的防篡改功能相連結,提供CAAM在加密明文資料並將其傳遞到晶片外記憶體之前,臨時保存明文資料所需的空間,CAAM具有內建功能,能夠以加密並與檔案共同安全存放的金鑰建立大型外部加密檔案,獲得資料存取權限的唯一方法,是晶片的安全狀態是否與最初寫入檔案時的狀態相符。

CAAM還整合了一個名為執行時完整性檢查的關鍵信任功能。此功能藉由韌體執行時進行雜湊來監控其執行狀態,如果計算的雜湊值與預期結果不相符,則會發生安全違規,這是一種確保應用韌體未遭到攻擊篡改的方法。

安全解決方案

為支援支付終端系統製造商,恩智浦推出SLN-POS-RDR。這種以MCU為基礎的安全讀卡機解決方案將相關的恩智浦技術整合到一個套件中,其中包括與PCI PTS及EMVCo認證相關的附屬品。硬體以模組化開發平台Tower System為基礎,這些電路板互相接合,提供TFT彩色顯示器、支援接觸式、NFC支付卡、Kinetis K81 MCU安全處理器卡的支付卡讀卡機人機介面。

20181019TA71P11 圖11 MCU式解決方案產品硬體及軟體。

系統中使用的軟體由現成恩智浦元件組成,如提供周邊驅動程式的MCU軟體開發套件(KSDK)。此外,還有專門用於執行支付應用程式、因應安全需求的軟體模組,這包括支援防篡改及記憶體保護單元,還有具開放授權條款的第三方元件,以及合作夥伴Cirque及Cardtek的專有元件。Cirque提供安全的觸控控制器,用於支援可通過PCI PTS認證的電容式觸控介面;Cardtek 提供EMV L2軟體,可以處理支付卡品牌的介面。

完整的解決方案套件還包括實現PCI PTS認證作為Pin輸入裝置(PED)所需的所有附屬品。這包括與設計相關的電路板設計檔案、評估問卷及評估報告。配備這些元件的終端設計人員,在銷售點應用程式空間中建立終端裝置時能夠節省時間及金錢。

結論

安全裝置的設計及維護非常複雜。利用產業標準,例如用於保護支付卡產業安全標準委員會支付接受裝置的標準,可提供珍貴的指引。從PCI PTS標準來看,瞭解必須持續維持安全性,而且尋求第三方分析有其價值,還能瞭解到,一旦裝置遭到入侵,未來攻擊的阻力就會降低,因此嚴謹的因應計畫對部署的裝置至關重要。

PCI PTS安全要求檔案提供了關於如何管理密鑰的指示,哪些加密演算法足以保護資料,以及保護通訊管道的指引。支付應用中最敏感的資料受到最嚴謹要求的保護,除了要求之外,還有PCI PTS的衍生測試要求(DTR),參考測試要求文件可以深入瞭解實體及被動攻擊。利用PCI標準,開發人員將獲得有關如何設定其安全處理器、讓裝置準備好抵禦安全威脅的深入見解及指引。