一种安全的金融终端的固件烧写方法及金融终端的制作方法_2

文档序号:8942866阅读:来源:国知局

[0060]本实施例中,步骤S2中还可以包括:初始化防穷举参数空间。
[0061]本实施例中,金融终端将应答数据封装成CCID通信协议层数据后返回给上位机。
[0062]进一步地,本实施例中,金融终端执行步骤S2之前还包括:判断安全环境是否已建立,是则执行步骤S2,否则提示错误,返回步骤SI ;
[0063]本实施例中,步骤S2中还包括生成根密钥,用根密钥加密预设的应用固件更新密钥和安全固件更新密钥;判断安全环境是否已建立的方法可以具体为:对根密钥存储区中的数据进行SHA-256运算,判断运算结果的前4个字节是否与BPK RAM区中的数据相同,若相同则安全环境已建立,否则安全环境未建立,其中所述根密钥存储区和BPK RAM区中的初始数据均为O ;
[0064]相应地,步骤S2中,金融终端产生根密钥之后,将根密钥保存到根密钥存储区,并对根密钥进行SHA-256运算,将运算结果的前4个字节保存到BPK RAM区。
[0065]步骤S3、金融终端下载正式安全boot,用正式安全boot替换金融终端中的测试安全boot,向上位机返回应答,返回步骤SI ;
[0066]步骤S4、金融终端下载正式应用固件,用正式应用固件替换金融终端中的测试应用固件,向上位机返回应答,返回步骤SI ;
[0067]步骤S5、金融终端下载正式安全固件,用正式安全固件替换金融终端中的测试安全固件,向上位机返回应答,返回步骤SI。
[0068]进一步地,步骤SI中还包括,当接收到上位机下发的启动侵入检测指令时执行步骤S6,当接收到上位机下发的获取侵入检测状态指令时执行步骤S7:
[0069]步骤S6、金融终端启动侵入检测功能,向上位机返回应答,返回步骤SI ;
[0070]具体地,金融终端通过设置相应寄存器和传感器启动侵入检测功能。
[0071]步骤S7、金融终端检查侵入检测状态,向上位机返回侵入检测状态,返回步骤SI ;
[0072]具体地,金融终端通过检查相应寄存器和传感器获取侵入检测状态。
[0073]进一步地,步骤SI中还包括,当金融终端接收到上位机下发的硬件测试指令时执行步骤S8:
[0074]步骤S8、根据指令内容测试金融终端的硬件功能,向上位机返回应答,返回步骤
Slo
[0075]更进一步地,上述方法中还可以包括固件烧写流程的控制机制,具体包括:
[0076]金融终端执行步骤S3之前还包括:金融终端检查安全环境建立标志是否被置位,若被置位则执行步骤S3,若未被置位则向上位机返回错误信息码,返回步骤SI ;
[0077]步骤S2中还包括:金融终端置位安全环境建立标志;
[0078]金融终端执行步骤S4之前还包括:金融终端检查安全boot更新标志是否被置位,若被置位则执行步骤S4,若未被置位则向上位机返回错误信息码,返回步骤SI ;
[0079]金融终端执行步骤S5之前还包括:金融终端检查安全boot更新标志是否被置位,若被置位则执行步骤S5,若未被置位则向上位机返回错误信息码,返回步骤SI ;
[0080]步骤S3中还包括:金融终端置位安全boot更新标志;
[0081]金融终端执行步骤S2之前还包括:金融终端检查侵入检测启动标志是否被置位,若被置位则执行步骤S2,若未被置位则向上位机返回错误消息码,返回步骤SI ;
[0082]金融终端执行步骤S7之前还包括:金融终端检查侵入检测启动标志是否被置位,若被置位则执行步骤S7,若未被置位则向上位机返回错误消息码,返回步骤SI ;
[0083]步骤S6中,金融终端启动侵入检测功能后还包括:金融终端检查侵入检测状态,根据侵入检测状态判断是否存在侵入事件,若存在侵入事件则向上位机返回错误状态,返回步骤SI,若不存在侵入事件则置位侵入检测启动标志,向上位机返回应答,返回步骤SI ;
[0084]金融终端执行步骤S6之前还包括:金融终端检查硬件功能检测标志是否被置位,若被置位则执行步骤S6,若未被置位则向上位机返回错误消息码,返回步骤SI ;
[0085]步骤S8中,金融终端根据指令内容测试金融终端的硬件功能后还包括:金融终端判断是否测试完全部待测硬件功能,若全部测试完则置位硬件功能检测标志,向上位机返回应答,返回步骤Si ;否则直接向上位机返回应答,返回步骤SI。
[0086]本实施例中,金融终端中包含应用处理器和安全处理器,应用boot指在应用处理器中运行的boot程序,测试应用固件指在应用处理器中运行的包含硬件测试相关程序和安全环境建立相关程序的固件程序;正式应用固件指在应用处理器中运行的不包含硬件测试相关程序和安全环境建立相关程序的固件程序;测试安全固件指在安全处理器中运行的包含硬件测试相关程序和安全环境建立相关程序的固件程序;正式安全固件指在安全处理器中运行的不包含硬件测试相关程序和安全环境建立相关程序的固件程序;测试安全boot指在安全处理器中运行的不包含检测安全环境是否建立的相关程序的boot程序,正式安全boot指在安全处理器中运行的包含检测安全环境是否建立的相关程序的boot程序。
[0087]本实施例中,根据指令内容测试金融终端的硬件功能,向上位机返回应答,具体包括:
[0088]应用处理器接收到上位机下发的硬件测试指令后判断硬件测试指令的类型;
[0089]若硬件测试指令为语音播放指令,则应用处理器控制语音芯片播放声音,组织应答数据,并对应答数据封装CCID协议层数据后返回给上位机;
[0090]若硬件测试指令为获取扫码数据指令,则应用处理器根据获取扫码数据指令获取扫码枪扫描数据,组织应答数据,并将应答数据封装成CCID协议层数据后返回给上位机;
[0091]否则,应用处理器根据硬件测试指令向安全处理器下发具体测试指令;安全处理器根据具体测试指令测试相应硬件功能,并向应用处理器返回指令应答;应用处理器根据安全处理器返回的指令应答组织应答数据,对应答数据封装CCID协议层数据后返回给上位机。
[0092]具体测试指令包括:IXD显示指令、获取键值指令、蜂鸣器控制指令、IC卡管理指令和磁条卡管理指令等;
[0093]本实施例中,应用处理器通过硬件测试指令的数据域的第二个字节判断硬件测试指令的类型;例如,当硬件测试指令的数据域的第二个字节为15时,硬件测试指令具体为语音播放指令;当硬件测试指令的数据域的第二个字节为16时,硬件测试指令具体为获取扫码数据指令;当硬件测试指令的数据域的第二个字节为02时,应用处理器向安全处理器下发LCD显示指令;当硬件测试指令的数据域的第二个字节为01时,应用处理器向安全处理器下发获取键值指令;当硬件测试指令的数据域的第二个字节为05时,应用处理器向安全处理器下发蜂鸣器控制指令;当硬件测试指令的数据域的第二个字节为03时,应用处理器向安全处理器下发IC卡管理指令;当硬件测试指令的数据域的第二个字节为OF时,应用处理器向安全处理器下发磁条卡管理指令。
[0094]进一步地,安全处理器根据具体测试指令测试相应硬件功能,并向应用处理器返回指令应答,可以具体包括:
[0095]步骤1-1、安全处理器解析接收到的具体测试指令,若为LCD显示指令则执行步骤1-2,若为获取键值指令则执行步骤1-3,若为蜂鸣器控制指令则执行步骤1-4,若为IC卡管理指令则执行步骤1-5,若为磁条卡管理指令则执行步骤1-6 ;
[0096]步骤1-2、安全处理器根据IXD显示指令控制IXD显示相应文字和图形,向应用处理器返回IXD显示指令应答;
[0097]步骤1-3、安全处理器根据获取键值指令在指定时间内获取键盘输入键值,向应用处理器返回获取键值指令应答;
[0098]步骤1-4、安全处理器控制蜂鸣器鸣响,向应用处理器返回蜂鸣器控制指令应答;
[0099]步骤1-5、安全处理器在指定时间内进行IC卡轮询,根据IC卡管理指令与IC卡进行通信,向应用处理器返回IC卡管理指令应答;
[0100]步骤1-6、安全处理器在指定时间内获取磁条卡刷卡数据,向应用处理器返回磁条卡管理指令应答。
[0101]本实施例中,金融终端启动侵入检测功能,向上位机返回应答,具体包括:
[0102]步骤201、应用处理器接收到上位机下发的启动侵入检测指令后向安全处理器发送侵入检测启动指令;
[0103]步骤202、安全处理器启动侵入检测功能;
[0104]具体地,安全处理器通过设置相应寄存器和传感器启动侵入检测功能。
[0105]步骤203、安全处理器向应用处理器返回侵入检测启动指令应答;
[0106]步骤204、应用处理器根据安全处理器返回的侵入检测启动指令应答组织应答数据;
[0107]步骤205、应用处理器对应答数据封装CCID通信协议层数据后返回给上位机。
[0108]本实施例中,金融终端检查侵入检测状态,向上位机返回应答,具体包括:
[0109]步骤301、应用处理器接收到上位机下发的获取侵入检测状态指令后向安全处理器发送侵入检测状态获取指令;
[0110]步骤302、安全处理器获取侵入检测状态;
[0111]具体地,安全处理器通过检查相应寄存器和传感器获取侵入检测状态。
[0112]步骤303、安全处理器向应用处理器返回侵入检测状态获取指令应答;
[0113]步骤304、应用处理器根据安全处理器返回的侵入检测状态获取指令应答组织应答数据;
[0114]步骤305、应用处理器对应答数据封装CCID通信协议层数据后返回给上位机。
[0115]本实施例中,步骤S2可以具体包括:
[0116]步骤401、应用处理器接收到上位机下发的建立安全环境指令后向安全处理器下发安全环境建立指令;
[0117]步骤402、安全处理器产生根密钥,使用根密钥分别将应用固件更新密钥和安全固件更新密钥加密后存储,初始化防穷举参数空间;
[0118]本实施例中,根密钥具体为安全处理器生成的一个随机数;使用根密钥分别将应用固件更新密钥和安全固件更新密钥加密后存储,具体为:使用所述随机数分别对应用固件更新密钥和安全固件更新密钥进行加密,存储加密得到的应用固件更新密钥密文和安全固件更新密钥密文。
[0119]步骤403、安全处理器向应用处理器返回建立安全环境指令应答;
[0120]步骤404、应用处理器根据安全处理器返回的建立安全环境指令应答组织应答数据;
[0121]步骤405、应用处理器对应答数据封装CCID通信协议层数据后返回给上位机。
[0122]如图2所示,本实施例中,金融终端下载正式安全boot,用正式安全boot替换金融终端中的测试安全boot,向上位机返回应答,具体包括:
[0123]步骤501、应用处理器接收到上位机下发的安全boot下载更新指令时判断安全boot下载更新指令的类型,若为下载开始指令则执行步骤502,若为下载指令则执行步骤506,若为下载结束指令则执行步骤510 ;
[0124]步骤502、应用处理器向安全处理器发送安全boot下载开始指令;
[0125]本实施例中,应用处理器向安全处理器发送的安全boot下载开始指令中包含应用处理器从上位机下发的CCID通信指令中获取的安全boot校验和。
[0126]步骤503、安全处理器从安全boot下载开始指令中获取安全boot校验和,保存安全boot校验和到安全处理器的外部flash ;
[0127]步骤504、安全处理器向应用处理器返回安全boot下载开始指令应答;
[0128]步骤505、应用处理器根据安全处理器返回的安全boot下载开始指令应答组织应答数据,对应答数据封装CCID通信协议层数据后返回给上位机,返回步骤501 ;
[0129]步骤506、应用处理器向安全处理器发送安全boot下载指令;
[0130]本实施例中,应用处理器向安全处理器发送的安全boot下载指令中包含应用处理器从上位机下发的CCID通信指令中获取的安全boot更新数据。
[0131]步骤507、安全处理器从安全boot下载指令中获取安全boot更新数据,保存安全boot更新数据到安全处理器的外部flash ;
[0132]步骤508、安全处理器向应用处理器返回安全boot下载指令应答;
[0133]步骤509、应用处理器根据安全处理器返回的安全boot下载指令应答组织应答数据,对应答数据封装CCID通信协议层数据后返回给上位机,返回步骤501 ;
[0134]步骤510、应用处理器向安全处理器发送安全boot下载结束指令;
[0135]步骤511、安全处理器根据安全boot校验和对安全boot更新数据进行校验,若校验通过则执行步骤512,若校验未通过则执行步骤513 ;
[0136]本实施例中,上位机将安全boot更新数据分包后封装成若干包含安全boot更新数据包的标准CCID通信指令,依次下发给应用处理器,相应地,应用处理器接收到每条包含安全boot更新数据包的标准CCID通信指令时,向安全处理器发送一条包含相应安全boot更新数据包的安全boot下载指令,安全处理器获取安全boot下载指令中的安全boot更新数据包,将获取到的安全boot更新数据包顺序存入安全处理器的外部flash,更新安全boot更新数据校验和为已接收到的安全boot更新数据的校验和,向应用处理器返回安全boot下载指令应答;
[0137]当安全处理器接收到应用处理器发送的安全boot下载结束指令时,判断安全boot更新数据校验和与安全处理器外部flash中存储的安全boot校验和是否相同,是则安全boot更新数据校验通过,否则安全boot更新数据校验未通过。
[0138]例如,安全boot更新数据为64k字节,上位机对安全boot更新数据分包得到64个Ik字节的安全boot
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1