来源:中国一卡通网 作者:不详 发布时间:2014-03-19 10:20:49 字体:[大 中 小]
摘 要:广东省交通一卡通是以粤港澳地区公共交通行业支付服务为基础,延伸拓展为整个出行链的服务人群提供消费及电子商务领域的一卡通支付系统。随着一卡通跨区域多领域应用的拓展,一卡通应用将会涉及越来越多的主体与资金交易,一卡通交易过程中的安全问题也显得尤为重要。因此,如何提高一卡通在交易过程中的安全性将成为一卡通领域的重要课题。
3.2软件方案
3.2.1 BootLoader初始化及其安全机制
在交易模块系统中,(启动引导代码)是在操作系统内核运行之前的引导程序。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境,整个系统的加载启动任务就完全由BootLoader来完成。
图3-2 一卡通交易模块系统层级架构
通过采用APP与Bootloader的互相认证互相绑定的方法,芯片下载程序采用时采用读保护机制,确保每颗芯片的源代码无法读出。
图3-3 软件模块说明
初始化BootLoader阶段先读取每颗芯片自带唯一的96 位UID 号,使BootLoader 程序段绑定此UID,并通过加密算法提供APP1 认证的参数。APP1 程序段解密BootLoader 的认证参数,通过解密算法得出是否一致,是则运行APP1 程序;另外在APP1 段中加载APP2 程序段的认证密钥因子参数。
应用程序下载时采用固件升级更新的方式,调用串口直接从上位机更新,绑定认证过程如图3-4所示:
图3-4 引导程序与APP的绑定
认证通过处理如图3-5所示:
图3-5 引导程序对APP进行加密下载
APP2 程序段负责解密APP1 的认证参数,是则运行APP2 段函数,否则无法运行。
在本安全控制设计方案中,芯片里面的源码无法读出,即使通过解剖芯片方式得出源码,由于绑定其UID号,下载到其他芯片也无法复制,APP2程序段的启动运行需要预先在APP1程序段中添加认证密钥因子才可以,同理APP1程序段的启动也需要BOOTLOAD的认证密钥因子,而APP1的其他则需要BootLoad中的与UID相关的认证密钥因子,因此无法破解和复制。
3.2.2软件系统设计
在本安全设计方法中, Bootloader在运行模式下将验证应用序列码的完整性,并将应用程序区域的CRC(循环冗余校验码)检验值与保存在约定位置中初始检验值比较,从而验证Flash内容未被篡改。在验证失败时,将会输出验证失败信息和当前的CRC检验值,并进入死循环,停止启动应用程序。
攻击者如果在应用程序片区的末尾写人伪随机码和32位CRC检验算法,并依次对Flash的4~ 128片区单独进行擦除后写入非法代码,在非法应用程序启动前,将会得到失败的验证信息。
图3-6 软件系统启动流程图
对芯片内部Flash的不同片区的篡改操作得到CRC检验值将无法通过合法的CRC校验。同时,当Bootloader验证失败时将启动自毁程序,通过修改读保护状态使芯片被整片擦除,致使所有代码被销毁,可进一步提高产品应用环境的安全性。
推荐文章
新款自助式证卡打印机
公交刷卡机系列
公交车载GPRS无线刷卡POS终端
蓝河X100食堂消费POS机
蓝河X300台式小额支付终端
蓝牙卡有源远距离读卡器
CPU卡通道控制器(GPRS)
公交车载POS机
南京沃思维车载系统一卡通
论坛热帖