閻占林 黃健文 黃健 李俊磊 蔡秋艷 楊光

















摘要:2021年5G開啟大規模商用,數字貨幣、數字身份識別等行業在5G網絡環境下加速推廣[1]。在手機通信卡上加載數字貨幣、數字身份識別等行業應用時,存在部分Android終端和蘋果終端無法通過ISO/IEC 7816機卡通道訪問手機通信卡的問題,導致數字貨幣、數字身份識別等行業應用無法在此類終端上使用。為提升數字貨幣、數字身份識別等行業應用在終端上的適配性,在手機通信卡上集成BLE(Bluetooth Low Energy )藍牙模塊,讓手機通信卡具備藍牙通信接口,終端可以通過藍牙通信接口或ISO/IEC 7816機卡通道接口訪問手機通信卡,進而可加速推進數字貨幣、數字身份等行業應用在5G網絡下的發展。
關鍵詞:ISO/IEC7816機卡通道;通信卡;BLE藍牙;藍牙通道
當今日常生活工作中,人們出行手機不離手,結合2021年5G大規模商用,數字貨幣、數字身份應用等行業應用發展如火如荼[2],以及小區門禁、公司門禁、搭乘公交地鐵、醫院健康卡等各種應用場景,設想、在手機通信卡上加載上述應用場景,但是部分Android(基于Linux的智能操作系統)終端和蘋果終端無法通過 ISO/IEC7816機卡通道訪問手機通信卡叫為了解決部分Android終端和蘋果終端無法通過ISO/IEC7816機卡通道訪問手機通信卡的問題,在手機通信卡上集成BLE (bluetooth low energy,低功耗藍牙技術)藍牙模塊,從而手機通信卡具備BLE藍牙通信接口,手機終端可以通過藍牙通信接口或ISO/IEC 7816機卡通道接口訪問手機通信卡。
BLE低功耗藍牙技術,具有低成本、短距離等技術特點,工作頻段為2.4GHz ISM射頻頻段。BLE藍牙技術采用非常快速的連接方式,平時可以處于“非連接”狀態(節約功耗),此時鏈路兩端相互之間只是知曉對方,只有在必要時才開啟鏈路,然后在盡可能短的時間內關閉鏈路。在手機通信卡上封裝BLE藍牙模塊,讓手機通信卡具備BLE藍牙通道,通過BLE藍牙通道,實現手機終端與卡片通信模塊的數據交互,解決部分手機終端無法通過ISO/IEC 7816機卡通道訪問手機通信卡的問題,從而提高用戶的使用體驗感,滿足用戶的各類需求。
1BLE藍牙通信卡組成架構
BLE藍牙通信卡的硬件構成包括通信卡SE芯片模塊和BLE低功耗藍牙芯片模塊兩部分[4]。采用SIP (System In a Package系統級封裝)封裝工藝,將通信卡SE芯片和BLE藍牙芯片封裝在一張手機通信卡上面,形成既有通信功能,又滿足各行業的非接觸應用場景的 BLE藍牙通信卡,BLE藍牙通信卡的形狀和目前運營商發行的手機通信卡的形狀是相同的。其中BLE低功耗藍牙芯片支持 Bluetooth Specification Version 4.1標準規范及以上版本[5]。
BLE藍牙通信卡生態系統包括手機終端藍牙應用、 BLE低功耗藍牙芯片模塊、通信卡SE芯片模塊共同構成,系統架構如圖1所示。
手機終端藍牙應用和BLE藍牙通信卡之間的所有數據交互過程均由手機終端藍牙應用主動發起,手機終端應用將需要發送的數據按照藍牙接口應用層協議進行協議封裝后通過藍牙接口發送給BLE藍牙通信卡,BLE藍牙通信卡收到手機終端消息后執行的內部邏輯處理流程如下:
1)BLE藍牙模塊按照藍牙接口應用層協議對收到的消息進行協議解析;
2)若解析后的數據不需要發送到通信卡SE模塊進行處理,則由BLE藍牙模塊直接進行處理,并將處理結果按照藍牙接口應用層協議交由手機終端進行響應。
若解析后的數據需要發送到通信卡SE模塊進行處理,則由BLE藍牙模塊將解析后的數據通過其與通信卡SE模塊之間的硬件鏈路傳輸給通信卡SE模塊進行處理,通信卡SE模塊處理完畢后通過硬件鏈路將處理結果返回給BLE藍牙模塊,最后,BLE藍牙模塊將從通信卡SE模塊獲取的數據處理結果按照藍牙接口應用層協議進行協議封裝后交由手機終端進行響應。
BLE藍牙模塊接口要求
BLE藍牙接口支持Paring/Bonding模式,BLE藍牙通信卡和手機終端配對連接成功后,BLE藍牙通信卡會保存 LTK ( Long Term Key,長期密匙),保證BLE藍牙通信卡在不修改藍牙配對碼的前提下,BLE藍牙通信卡與該手機終端再次進行藍牙連接時不需要輸入藍牙配對碼A'〕。
2.1藍牙廣播參數
藍牙通信中BLE藍牙通信卡是從設備,負責進行藍牙廣播。在上電啟動后且藍牙處于未連接狀態時, BLE藍牙通信卡以約定的廣播間隔持續發送廣播數據包,直至藍牙被連接。
藍牙廣播參數取值范圍如表1所示。
BLE藍牙通信卡藍牙廣播數據包由6字節藍牙 MAC地址與31字節廣播數據組成。
BLE藍牙模塊MAC地址,通常表示為11:22:33:44:55:66的形式,長度為6 Bytes。手機終端藍牙主設備通過藍牙廣播數據獲取BLE藍牙從設備MAC地址。
2.3藍牙連接參數
BLE藍牙通信卡和手機終端建立連接之后,所有的數據通信都是在連接事件(Connection Events )中進行,每個連接事件中,都需要由手機終端發起數據包,再由 BLE藍牙通信卡回復。藍牙連接參數包含BLE藍牙通信卡的藍牙連接間隔、藍牙連接超時時間與從設備延遲時間三個參數,通過修改這三個參數,可設置藍牙連接過程中的傳輸速度和功耗。
藍牙連接參數取值范圍如表2所示。
2.4藍牙配對碼
為了保證藍牙配對碼數據安全,BLE藍牙通信卡實現對藍牙配對碼的安全存儲和訪問,藍牙配對碼存儲于通信卡SE模塊中,BLE藍牙通信卡設置出廠初始藍牙配對碼默認值。手機終端藍牙應用在首次安裝使用時提示用戶初始藍牙配對碼,并提示用戶修改藍牙配對碼。
支持通過藍牙接口、ISO7816接口修改藍牙卡的藍牙配對碼值,藍牙配對碼修改指令命令報文如表3所示。
2.4藍牙配對流程
BLE藍牙通信卡作為從設備,持續發送藍牙廣播,手機終端作為主設備,在收到藍牙廣播后發起藍牙配對請求,用戶在連接超時時限內輸入正確的藍牙配對碼, BLE藍牙通信卡的藍牙模塊會將藍牙配對碼發送給通信卡SE模塊,通信卡SE模塊會將其與存儲在通信卡SE 中的藍牙配對碼的值進行比對,并將比對結果返回給藍牙模塊,若比對結果完全一致,則配對成功,建立藍牙連接,若比對結果顯示不一致,則配對失敗,之前的連接自動斷開,BLE藍牙通信卡藍牙配對流程如圖2所示。
2.5藍牙配對流程及藍牙配對碼修改測試
在測試終端藍牙中進行藍牙設備搜索,搜索到圖3“CT02000108”名稱的藍牙卡設備,點擊該藍牙卡設備名稱,進行藍牙卡與測試終端藍牙配對連接,測試終端藍牙測試工具界面彈出圖4“藍牙配對請求”的彈窗, 輸入正確的藍牙卡藍牙配對碼與測試終端藍牙進行藍牙連接配對后,藍牙卡與測試終端藍牙功能配對連接成功,如圖5所示。
藍牙卡與測試終端藍牙功能配對連接成功后,打開測試工具,進行修改藍牙卡配對碼異常測試;修改藍牙配對碼正常測試,修改后藍牙配對碼變為654321;修改藍牙配對碼后修改藍牙參數等測試案例,測試結果如圖6所示。
2.6藍牙服務與特征值
終端和藍牙卡之間的藍牙連接一旦建立,則可通過 Generic Attribute Profile( GATT)中的 Service 和 Characteristic進行藍牙通信。
UUID完整長度為128位,主從設備間為提高傳輸效率只發送16位UUID,接收方收到后需補上藍牙技術聯盟(SIG)定義的128位通用唯一識別碼UUID基數。示例如下:
藍牙UUID基數:
00000000- 0000- 1000- 8000- 00805F9B34FB
如要發送的16位UUID為0xFF10,完整的128位的UUID為:
0000FF10-0000-1000-8000-00805F9B34FB
BLE藍牙卡使用的服務與特征值如表4所示。
3BLE藍牙模塊藍牙接口通信協議
藍牙接口通信協議是手機終端與BLE藍牙通信卡之間的應用層通信協議,定義了手機終端與BLE藍牙通信卡通過藍牙接口進行數據交互的消息報文格式。通過藍牙接口通信協議,可進行APDU指令或終端管理數據報文的下發,實現數據的讀取和寫入[8-1。1。
藍牙接口通信協議定義的主要內容如下:
(1)卡外實體與BLE藍牙通信卡通過藍牙接口進行APDU指令交互時所發送和接收的報文格式;
(2)卡外實體通過藍牙接口設置和查看BLE藍牙通信卡相關藍牙參數的報文格式;
(3)消息交換的方法。
藍牙接口通信協議結構如圖7所示。
手機終端和BLE藍牙通信卡之間的協議報文交互如圖7所示,在進行數據傳輸時,數據的發送端根據消息長度將消息數據拆分成若干包,交由通信鏈路層完成發送,接收端根據協議把收到的數據包合并成為消息,從而完成單次數據交互。
本協議在會話層傳遞的會話消息由消息數據和一個2 bytes的消息校驗和組成,校驗和采用CRC16算法。消息進行分包時需嚴格遵循以下原則:
(1)每包的協議字節和數據字節的總長度不超過20 bytes;
(2)4bits表示的當前包位置從0x00開始編號、最大序號為0x0E;
(3)多包發送的情況,除末尾包外,其余包須填充滿20 bytes。
3.1藍牙接口通信協議消息格式
消息數據包是手機終端與BLE藍牙通信卡之間進行數據交互的載體,傳輸方向為雙向傳輸。消息數據包在傳輸時按實際長度進行分包,每包的協議字節和數據字節的總長度不超過20 bytes,多包發送的情況,除末尾包外,其余包須填充滿20 bytes。每個消息數據包分為包頭和數據兩個部分,數據包定義具體如表5和表6所示。
3.2藍牙接口通信協議消息數據包示例
3.2.1單包發送單包接收情形
3.2.2多包發送多包接收情形
3.3藍牙接口通信協議消息傳輸
通信雙方的消息傳輸遵循一問一答通信方式,即發送方發送完一條消息后,需等待該條消息的回復,否則不會發送下一條消息。采用順序分包方式傳遞一個消息, 首包序號為0,發送方從首包開始按包序號遞增順序逐包發送,接收方收到消息數據包后按順序重新組合成一個完整的消息。如發送方發送的某個數據包返回錯誤時, 則發送方需從首包開始重新發送此消息。
3.3.1藍牙接口消息發送流程
藍牙卡和手機終端進行藍牙配對連接,連接成功后,發送指令信息。
當指令信息有效數據字節長度〉16 byte (一個包的最大長度為20 byte ),進行數據分包,分包時,計算數據包的個數M 15個(除末尾數據包外,其余數據包內容必須填充20 byte),如果計算出數據包總數大于最大數據包總數的限制,則返回錯誤碼,結束數據包的發送;如果計算出數據包總數在最大數據包總數之內,則檢查每一個數據包數據字節是否M 20 byte,如果不是, 則返回錯誤碼,結束數據包的發,如果每一數據包數據字節M 20 byte,則進行數據包依次分包發送,所有數據包發送完成后,結束指令信息的發送;
當指令信息有效數據字節長度<16 byte (一個包的最大長度為20 byte),則發送一次單數據包,發送成功后,結束指令信息的發送。
藍牙接口消息發送流程如圖8所示。
3.3.2藍牙接口消息接收流程
藍牙卡和手機終端進行藍牙配對連接,連接成功后,接收指令信息。
開始接收指令信息數據包后,判斷當前數據包是否為最后一個數據包,如果不是最后一個數據包,則繼續發送數據包(同時檢查該數據包大小是否M 20 byte,如果不是,則返錯誤碼);如果是最后一個數據包,則檢查最后一^數據包否M 20 byte,如果不是,則返錯誤碼;如果最后一個數據包數據字節M 20 byte,則判斷消息總長度是否等于第一個數據包顯示的數據包總長度,如果是,則表明指令信息數據包接收完成,如果不是,返
3.4藍牙接口通信協議測試
藍牙接口通信協議測試包括藍牙協議透傳功能測試與藍牙協議透傳功能異常測試。
藍牙協議透傳功能測試包括大小數據包的透傳測試。
藍牙協議透傳功能異常測試包括數據包總數位置測試、當前數據包位置測試、標志字節測試、長度字節測試、短數據包的發送及接收測試、長數據包的發送及接收測試、數據包亂序發送測試、隨即子包漏發測試、同序號包重發測試、異常長度數據包發送測試、異常序號數據包發送測試、異常封裝數據包發送測試等,測試結果如圖10所示。
3.5藍牙接口通信安全規則
對于從BLE藍牙接口傳入的APDU指令信息,通信卡SE模塊采用和SWP接口相同的處理方式,藍牙接口的通信接口訪問配置與SWP接口保持一致問。為了安全、有效地管理通信卡中USIM、CSIM等通信類應用, BLE藍牙通信卡的USIM、CSIM等通信類應用只能在ISO/IEC 7816接口進行安全訪問,禁止在藍牙接口訪問[12-13]。
4結束語
本文對BLE藍牙通信卡的組成架構、藍牙接口要求以及藍牙接口通信協議三個方面進行了研究與測試, BLE藍牙通信卡的藍牙通道,解決了部分Android終端和蘋果終端無法通過ISO/IEC 7816機卡通道訪問通信卡的問題,利用其支持的藍牙通道,可以搭載多種卡應用,例如門禁應用,實現手機終端刷卡開門,應用于社區、公司園區等;一卡通應用,直接在公司園區刷手機消費;交通卡應用,實現公交地鐵手機刷卡進站上車;電子健康卡應用,在各大醫院輕松掛號問診;電子車鑰匙應用,手機終端作為車鑰匙,實現上車時無感開鎖,下車時離開上鎖;以及數字貨幣、數字身份識別等應用場景。
參考文獻:
[1]閻占林,黃健文,黃健,李俊磊,蔡秋艷,楊光.5G通信卡中SUCI隱私保護的研究[J].無線電工程,2020,50(04):269-275.
[2]中國人民銀行.中國金融集成電路(IC)卡規范[S].中華人民共和國金融行業標準JR/T 0025.18-2018.
[3]3GPP 3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; Characteristics of the Universal Subscriber Identity Module (USIM) application(Release 16):TS 31.102,V16.0.0[S].(2019-06).
[4]ETSI TS 102221 Smart cards;UICC-Terminalinterface;Physical and logical characteristics[S].European Telecommunications Standards Institute Project Smart Card Platform(EP SCP).
[5]Bluetooth Specification Version 4.1[Vol 1][S]. Architecture & Terminology Overview.03 December 2013.
[6]Bluetooth Specification Version 4.1[Vol 2][S].Core System Package[BR/EDR Controller volume].03 December 2013.
[7]Bluetooth Specification Version 4.1[Vol 3][S].Core System Package[Host volume].03 December 2013.
[8]Bluetooth Specification Version 4.1[Vol 4][S].Host Controller Interface[Transport Layer].03 December 2013.
[9]Bluetooth Specification Version 4.1[Vol 5][S].Core System Package[AMP Controller volume].03 December 2013.
[10]Bluetooth Specification Version 4.1[Vol 6][S].Core System Package [Low Energy Controller volume].03 December 2013.
[11]Global Platform Card Contactless Services Card Specification - Amendment C V1.0.1[S].
[12]ISO/IEC 7816-4 Identification cards-Integrated circuit cards-Part 4:Organization,security and commands for interchange[S].
[13]ETSI TS 102225 Smart cards;Secured packet structure for UICC based applications,European Telecommunications Standards Institute Project Smart Card Platform(EP SCP)[S].