来源:中国一卡通网 作者:不详 发布时间:2014-03-19 10:20:49 字体:[大 中 小]
摘 要:广东省交通一卡通是以粤港澳地区公共交通行业支付服务为基础,延伸拓展为整个出行链的服务人群提供消费及电子商务领域的一卡通支付系统。随着一卡通跨区域多领域应用的拓展,一卡通应用将会涉及越来越多的主体与资金交易,一卡通交易过程中的安全问题也显得尤为重要。因此,如何提高一卡通在交易过程中的安全性将成为一卡通领域的重要课题。
(1)CRC校检机制设计
在本安全设计方法中,设计Bootloader在运行模式下验证密码序列的完整性,并将应用程序区域的CRC检验值与保存在约定位置中初始检验值比较,从而验证Flash内容未被篡改。在验证失败时,输出验证失败信息和当前的CRC检验值后进入死循环,而不再启动应用程序。在应用程序片区的末尾写入伪随机码序列和32位CRC检验算法,依次对Flash的4~128片区单独进行擦除后写入非法代码进行验证,均得验证失败信息。
对不同片区的篡改操作得到不同的CRC检验值与合法应用程序CRC检验值互不相同。双重完整性检验方案在STM32芯片上运行带来的时间开销约为80 ms,也能够被产品启动过程所接受。在进行产品开发时,可以进一步设计Bootloader验证失败时进入自毁程序,通过修改读保护状态使芯片被整片擦除,从而销毁所有代码,提高代码的安全性。
图 3-7 CRC校验流程
(2)三重验证机制设计
芯片在保护状态下,可以完全禁止通过调试接口或SRAM中运行的程序读取Flash内容,但产品阶段保存在Flash中的代码运行时对自身的读取是允许的,如果非法使用者通过特殊手段篡改了Flash中的部分代码为非法读取程序,并使之在Flash中成功运行,将使产品代码发生部分泄漏,使产品产品面临篡改攻击的风险。
针对以上情况,本产品在安全机制方面用了三重验证技术,即:APP对BootLoader进行验证、APP对CID进行验证以及BootLoader对APP进行验证。
1)APP(用户应用程序)对BootLoader进行验证:用于验证Bootloader的合法性,验证通过则执行程序,否则自毁程序。该步可防止非法获取获取APP用于其他非法的试验或生产。工作流程如图3-8示。
图3-8 APP 对Bootloader验证流程
2)APP对芯片唯一的只读序列号CID进行验证:用于绑定APP与对应的芯片。即使非法拷贝芯片内容到另一芯片上,也无法正常运行。工作流程如图3-9示。
图3-9APP对芯片序号UID验证流程
BootLoader对APP进行验证:用于验证APP的合法性,可防止下载、升级非法APP。工作流程如图3-10示。
图3-10 BootLoader对APP验证流程
3.3方案优势分析
该方法在实际应用过程中具有较高的安全性,主要体现在芯片内部序列号的全球唯一性以及通过相应高强度加密算法进行加密后得到的结果的唯一性。
攻击者即使通过非法手段能够将整个芯片内部的程序代码复制到另一片同型号的芯片中,但由于在程序内部运行过程中对该序列号的唯一特性进行了认证,在非法复制、未经授权的芯片中,在校验时由于读取到的芯片序列号不一样,加密后得到的加密结果与存储区授权的加密结果必然不一致,从而在校验过程中让该芯片作废,有效地保护了应用运行环境的合法性。
同时在授权过程、加密算法安全性、运行效率、占用内存等方面都进行了考虑,保证该方法能对ARM微控制器具有较高的适应性和可移植性,在不影响芯片内部整体功能和资源的前提下,为该类产品的应用推广提供一个有效的安全保护途径。
4.结论
通过核心程序的安全认证,可以对全省交通一卡通场景化终端的应用程序进行统一管理,只认可运行广东省交通一卡通场景化终端发布的官方版本的程序,非认证的应用程序不能通过解密,以确保应用程序的下载安全以及广东省交通一卡通核心业务程序的应用安全性。
推荐文章
新款自助式证卡打印机
公交刷卡机系列
公交车载GPRS无线刷卡POS终端
蓝河X100食堂消费POS机
蓝河X300台式小额支付终端
蓝牙卡有源远距离读卡器
CPU卡通道控制器(GPRS)
公交车载POS机
南京沃思维车载系统一卡通
论坛热帖