阎占林 黄健文 黄健 李俊磊 蔡秋艳 杨光
摘要: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].