BLE蓝牙通信卡蓝牙功能的技术研究与测试
摘要:为提升数字货币、数字身份识别等行业应用在终端上的适配性,在手机通信卡上集成BLE(Bluetooth Low Energy)蓝牙模块,让手机通信卡具备蓝牙通信接口,终端可以通过蓝牙通信接口或ISO/IEC 7816机卡通道接口访问手机通信卡,进而可加速推进数字货币、数字身份等行业应用在5G网络下的发展。
本文引用地址://www.cghlg.com/article/202204/433461.htm关键词:ISO/IEC7816机卡通道;通信卡;BLE蓝牙;蓝牙通道
当今日常生活工作中,人们出行手机不离手,结合2021 年5G 大规模商用,数字货币、数字身份应用等行业应用发展如火如荼[2],以及小区门禁、公司门禁、搭乘公交地铁、医院健康卡等各种应用场景,设想在手机通信卡上加载上述应用场景,但是部分Android(基于Linux 的智能操作系统)终端和苹果终端无法通过ISO/IEC7816 机卡通道访问手机通信卡[3],为了解决部分Android 终端和苹果终端无法通过ISO/IEC7816 机卡通道访问手机通信卡的问题,在手机通信卡上集成BLE(bluetooth low energy,低功耗蓝牙技术)蓝牙模块,从而手机通信卡具备BLE 蓝牙通信接口,手机终端可以通过蓝牙通信接口或ISO/IEC 7816 机卡通道接口访问手机通信卡。
BLE 低功耗蓝牙技术,具有低成本、短距离等技术特点,工作频段为2.4GHz ISM 射频频段。BLE 蓝牙技术采用非常快速的连接方式,平时可以处于“非连接”状态(节约功耗),此时链路两端相互之间只是知晓对方,只有在必要时才开启链路,然后在尽可能短的时间内关闭链路。在手机通信卡上封装BLE 蓝牙模块,让手机通信卡具备BLE 蓝牙通道,通过BLE 蓝牙通道,实现手机终端与卡片通信模块的数据交互,解决部分手机终端无法通过ISO/IEC 7816 机卡通道访问手机通信卡的问题,从而提高用户的使用体验感,满足用户的各类需求。
1 BLE蓝牙通信卡组成架构
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 模块获取的数据处理结果按照蓝牙接口应用层协议进行协议封装后交由手机终端进行响应。
2 BLE蓝牙模块接口要求
BLE 蓝牙接口支持Paring/Bonding 模式,BLE 蓝牙通信卡和手机终端配对连接成功后,BLE 蓝牙通信卡会保存LTK(Long Term Key,长期密匙),保证BLE 蓝牙通信卡在不修改蓝牙配对码的前提下,BLE 蓝牙通信卡与该手机终端再次进行蓝牙连接时不需要输入蓝牙配对码[6-7]。
2.1 蓝牙广播参数
蓝牙通信中BLE 蓝牙通信卡是从设备,负责进行蓝牙广播。在上电启动后且蓝牙处于未连接状态时,BLE 蓝牙通信卡以约定的广播间隔持续发送广播数据包,直至蓝牙被连接。
蓝牙广播参数取值范围如表1所示。
表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 所示。
图3 蓝牙卡设备名称
图4 蓝牙配对请求
图5 蓝牙卡设备与测试终端蓝牙连接成功
蓝牙卡与测试终端蓝牙功能配对连接成功后,打开测试工具,进行修改蓝牙卡配对码异常测试;修改蓝牙配对码正常测试,修改后蓝牙配对码变为654321;修改蓝牙配对码后修改蓝牙参数等测试案例,测试结果如图6 所示。
图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 所示。
3 BLE蓝牙模块蓝牙接口通信协议
蓝牙接口通信协议是手机终端与BLE 蓝牙通信卡之间的应用层通信协议,定义了手机终端与BLE 蓝牙通信卡通过蓝牙接口进行数据交互的消息报文格式。通过蓝牙接口通信协议,可进行APDU 指令或终端管理数据报文的下发,实现数据的读取和写入[8-10]。
蓝牙接口通信协议定义的主要内容如下:
(1)卡外实体与BLE 蓝牙通信卡通过蓝牙接口进行APDU 指令交互时所发送和接收的报文格式;
(2)卡外实体通过蓝牙接口设置和查看BLE 蓝牙通信卡相关蓝牙参数的报文格式;
(3)消息交换的方法。
蓝牙接口通信协议结构如图7所示。
图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),进行数据分包,分包时,计算数据包的个数≤ 15 个(除末尾数据包外,其余数据包内容必须填充20 byte),如果计算出数据包总数大于最大数据包总数的限制,则返回错误码,结束数据包的发送;如果计算出数据包总数在最大数据包总数之内,则检查每一个数据包数据字节是否≤ 20 byte,如果不是,则返回错误码,结束数据包的发,如果每一数据包数据字节≤ 20 byte,则进行数据包依次分包发送,所有数据包发送完成后,结束指令信息的发送。
当指令信息有效数据字节长度< 16 byte(一个包的最大长度为20 byte),则发送一次单数据包,发送成功后,结束指令信息的发送。
蓝牙接口消息发送流程如图8所示。
3.3.2 蓝牙接口消息接收流程
蓝牙卡和手机终端进行蓝牙配对连接,连接成功后,接收指令信息。
开始接收指令信息数据包后,判断当前数据包是否为最后一个数据包,如果不是最后一个数据包,则继续发送数据包(同时检查该数据包大小是否≤ 20 byte,如果不是,则返错误码);如果是最后一个数据包,则检查最后一个数据包否≤ 20 byte,如果不是,则返错误码;如果最后一个数据包数据字节≤ 20 byte,则判断消息总长度是否等于第一个数据包显示的数据包总长度,如果是,则表明指令信息数据包接收完成,如果不是,返回错误码。
蓝牙接口消息接收流程如图9 所示。
图9 蓝牙接口消息接收流程
3.4 蓝牙接口通信协议测试
蓝牙接口通信协议测试包括蓝牙协议透传功能测试与蓝牙协议透传功能异常测试。
蓝牙协议透传功能测试包括大小数据包的透传测试。
蓝牙协议透传功能异常测试包括数据包总数位置测试、当前数据包位置测试、标志字节测试、长度字节测试、短数据包的发送及接收测试、长数据包的发送及接收测试、数据包乱序发送测试、随即子包漏发测试、同序号包重发测试、异常长度数据包发送测试、异常序号数据包发送测试、异常封装数据包发送测试等,测试结果如图10 所示。
图10 蓝牙接口通信协议测试
3.5 蓝牙接口通信安全规则
对于从BLE 蓝牙接口传入的APDU 指令信息,通信卡SE 模块采用和SWP 接口相同的处理方式,蓝牙接口的通信接口访问配置与SWP 接口保持一致[11]。为了安全、有效地管理通信卡中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 Spe cifica tio n Gro up Co r e N e tw o rk a n d Te rm in a ls; Characteristics of the Universal Subscriber Identity Module(USIM) application(Release 16):TS 31.102,V16.0.0 [S].(2019-06).
[ 4 ] E T S I T S 1 0 2 2 2 1 Smar t c a r d s ; U I C C - T e r m i n a l interface;Physical and logical characteristics[S].European Telecommunications Standards Institute Project Smart Card Platform(EP SCP).
[ 5 ] Bl u e t o o t h S p e c i f i c a t i o n V e r s i o n 4 . 1 [ V o l 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 December2013.
[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 December2013.
[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 102 225 Smart cards;Secured packet structure for UICC based applications,European Telecommunications Standards Institute Project Smart Card Platform(EP SCP)[S].
(本文来源于必威娱乐平台
杂志2022年4月期)
评论