一卡通交易模块程序安全性验证的方法研究 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

一卡通交易模块程序安全性验证的方法研究

来源:中国一卡通网  作者:不详  发布时间:2014-03-19 10:20:49  字体:[ ]

关键字:一卡通  交通一卡通  ARM  

摘   要:广东省交通一卡通是以粤港澳地区公共交通行业支付服务为基础,延伸拓展为整个出行链的服务人群提供消费及电子商务领域的一卡通支付系统。随着一卡通跨区域多领域应用的拓展,一卡通应用将会涉及越来越多的主体与资金交易,一卡通交易过程中的安全问题也显得尤为重要。因此,如何提高一卡通在交易过程中的安全性将成为一卡通领域的重要课题。

  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验证失败时将启动自毁程序,通过修改读保护状态使芯片被整片擦除,致使所有代码被销毁,可进一步提高产品应用环境的安全性。

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖