CN111159720B - 对应答保护单调计数器rpmc进行测试的系统 - Google Patents

对应答保护单调计数器rpmc进行测试的系统 Download PDF

Info

Publication number
CN111159720B
CN111159720B CN202010226475.8A CN202010226475A CN111159720B CN 111159720 B CN111159720 B CN 111159720B CN 202010226475 A CN202010226475 A CN 202010226475A CN 111159720 B CN111159720 B CN 111159720B
Authority
CN
China
Prior art keywords
command
message
authentication code
test
message authentication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010226475.8A
Other languages
English (en)
Other versions
CN111159720A (zh
Inventor
虞安华
徐光明
黄亚龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xtx Technology Inc
Original Assignee
XTX Technology Shenzhen Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by XTX Technology Shenzhen Ltd filed Critical XTX Technology Shenzhen Ltd
Priority to CN202010226475.8A priority Critical patent/CN111159720B/zh
Publication of CN111159720A publication Critical patent/CN111159720A/zh
Application granted granted Critical
Publication of CN111159720B publication Critical patent/CN111159720B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C29/56004Pattern generation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C29/56016Apparatus features
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • G11C2029/5602Interface to device under test

Abstract

本发明提供一种对RPMC进行测试的系统,系统包括:上位机、下位机以及含RPMC的存储芯片,用户可在上位机上操作,生成各种测试指令,并通过下位机发送至含RPMC的存储芯片,以供对芯片中的RPMC进行测试。通过本发明,可基于用户操作,灵活生成任意测试指令,以供对RPMC进行功能性测试或健壮性测试,具有测试灵活,测试用例覆盖面全的优点。

Description

对应答保护单调计数器RPMC进行测试的系统
技术领域
本发明涉及测试技术领域,尤其涉及一种对应答保护单调计数器RPMC进行测试的系统。
背景技术
含有RPMC(Replay Protection Monotonic Counter,应答保护单调计数器)增强机制的存储芯片在开发和验证阶段需要与主机通讯,以测试RPMC功能的完整性和健壮性,而具有这种RPMC功能的主机端是Intel电脑主板、手机等,在开发阶段的测试和验证都是通过FPGA板子实现,导致测试人员不能随意下测试指令对RPMC进行测试。
发明内容
本发明的主要目的在于提供一种对RPMC进行测试的系统,旨在解决现有技术中存在的上述技术问题。
为实现上述目的,本发明实施例提供一种对RPMC进行测试的系统,所述系统包括:上位机、下位机以及含RPMC的存储芯片;
所述上位机用于:接收用户操作,并通过HMAC算法对所述用户操作触发的第一测试命令进行加密计算,得到第一消息认证码,对所述第一测试命令以及所述第一消息认证码进行编辑,得到第一报文,将所述第一报文发送给下位机,所述第一报文为所述上位机与所述下位机间的通信接口可识别的报文;
所述下位机用于:接收所述第一报文,从所述第一报文中解析出所述第一测试命令以及所述第一消息认证码,对所述第一测试命令以及所述第一消息认证码进行编辑,得到第二报文,将所述第二报文发送给含RPMC的存储芯片,所述第二报文为所述下位机与所述含RPMC的存储芯片间的通信接口可识别的报文;
所述含RPMC的存储芯片用于:接收来自所述下位机的报文,从接收到的报文中解析出第二测试命令以及第二消息认证码;通过HMAC算法对接收到的第二测试命令进行加密计算,得到第三消息认证码;比对所述第二消息认证码与所述第三消息认证码是否一致;若一致,则执行所述第二测试命令对应的测试动作,并在所述测试动作执行完成时,设置完成状态字节;若不一致,则不执行所述第二测试命令对应的测试动作,并设置完成状态字节;
所述下位机还用于:循环读取所述含RPMC的存储芯片的完成状态字节,当读取到完成状态字节时,反馈命令完成信号至所述上位机;
所述上位机还用于:显示所述命令完成信号、所述第一消息认证码以及所述第一测试命令;
所述上位机还用于:基于用户操作触发读取单调计数器状态Read MC Status命令,并将所述Read MC Status命令发送给下位机;
所述下位机还用于:基于所述Read MC Status命令读取所述含RPMC的存储芯片的状态字节,并将所述状态字节返回给上位机;
所述上位机还用于:比对所述状态字节与所述第一测试命令对应的基准状态字节是否一致;若所述状态字节与所述第一测试命令对应的基准状态字节一致,则显示测试成功信号。
可选的,所述上位机还用于:
当所述状态字节与所述第一测试命令对应的基准状态字节不一致时,获取所述第二测试命令以及所述第三消息认证码;
将所述第一测试命令与所述第二测试命令进行对比,将所述第一消息认证码与所述第三消息认证码进行对比,得到对比结果;
基于所述对比结果,显示所述第一测试命令与所述第二测试命令之间不一致的数据字段,显示所述第一消息认证码与所述第三消息认证码之间不一致的数据字段。
可选的,所述上位机包括:人机交互界面、命令处理模块、HMAC算法模块以及USB通信模块;
所述人机交互界面用于:接收用户操作,并将所述用户操作触发的第一测试命令发送给所述命令处理模块;
所述命令处理模块用于:对所述第一测试命令进行编辑,得到原始消息,将所述原始消息发送给HMAC算法模块;
所述HMAC算法模块用于:通过HMAC算法对所述原始消息进行计算,得到第一消息认证码,并将所述第一消息认证码反馈给命令处理模块;
所述命令处理模块还用于:对所述第一测试命令以及所述第一消息认证码进行编辑,得到第一报文,将所述第一报文发送给USB通信模块;
所述USB通信模块用于:将所述第一报文发送给下位机;
所述USB通信模块还用于:接收来自所述下位机的命令完成信号,并将所述命令完成信号发送给所述命令处理模块;
所述命令处理模块还用于:将所述命令完成信号、所述第一消息认证码以及所述第一测试命令发送给人机交互界面;
所述人机交互界面还用于:显示所述命令完成信号、所述第一消息认证码以及所述第一测试命令;
所述人机交互界面还用于:基于用户操作触发Read MC Status命令,将所述ReadMC Status命令发送给命令处理模块;
所述命令处理模块还用于:将所述Read MC Status命令编辑成Read MC Status命令报文,并发送给所述USB通信模块;
所述USB通信模块还用于:将所述Read MC Status命令报文发送给下位机,接收所述下位机基于所述Read MC Status命令报文反馈的状态字节,将所述状态字节发送给所述命令处理模块;
所述命令处理模块还用于:比对所述状态字节与所述第一测试命令对应的基准状态字节是否一致;若所述状态字节与所述第一测试命令对应的基准状态字节一致,则发送测试成功信号至所述人机交互界面;当所述状态字节与所述第一测试命令对应的基准状态字节不一致时,获取所述第二测试命令以及所述第三消息认证码;将所述第一测试命令与所述第二测试命令进行对比,将所述第一消息认证码与所述第三消息认证码进行对比,得到对比结果;基于所述对比结果,发送所述第一测试命令与所述第二测试命令之间不一致的数据字段至所述人机交互界面,发送所述第一消息认证码与所述第三消息认证码之间不一致的数据字段至所述人机交互界面;
所述人机交互界面还用于:显示所述测试成功信号;
或,显示所述第一测试命令与所述第二测试命令之间不一致的数据字段和/或所述第一消息认证码与所述第三消息认证码之间不一致的数据字段。
可选的,所述下位机包括:USB接口、微控制单元以及用于与含RPMC的存储芯片进行通信的通信接口,所述通信接口为SPI接口、SD接口、MMC接口、USB接口、Parallel NAND接口中的任一种;
所述微控制单元用于:通过所述USB接口接收所述第一报文,从所述第一报文中解析出所述第一测试命令以及所述第一消息认证码,对所述第一测试命令以及所述第一消息认证码进行编辑,得到第二报文,通过所述通信接口将所述第二报文发送到所述含RPMC的存储芯片;
所述微控制单元还用于:通过所述通信接口循环读取所述含RPMC的存储芯片的完成状态字节,当读取到完成状态字节时,通过所述USB接口反馈命令完成信号至所述USB通信模块;
所述微控制单元还用于:通过所述USB接口接收所述Read MC Status命令报文,并从所述Read MC Status命令报文中解析出所述Read MC Status命令,通过所述通信接口将所述Read MC Status命令发送到所述含RPMC的存储芯片,并在接收到所述含RPMC的存储芯片基于所述Read MC Status命令反馈的状态字节时,通过所述USB接口将所述状态字节返回给所述USB通信模块。
本发明中,对RPMC进行测试的系统包括:上位机、下位机以及含RPMC的存储芯片;所述上位机用于:接收用户操作,并通过HMAC算法对所述用户操作触发的第一测试命令进行加密计算,得到第一消息认证码,对所述第一测试命令以及所述第一消息认证码进行编辑,得到第一报文,将所述第一报文发送给下位机,所述第一报文为所述上位机与所述下位机间的通信接口可识别的报文;所述下位机用于:接收所述第一报文,从所述第一报文中解析出所述第一测试命令以及所述第一消息认证码,对所述第一测试命令以及所述第一消息认证码进行编辑,得到第二报文,将所述第二报文发送给含RPMC的存储芯片,所述第二报文为所述下位机与所述含RPMC的存储芯片间的通信接口可识别的报文;所述含RPMC的存储芯片用于:接收来自所述下位机的报文,从接收到的报文中解析出第二测试命令以及第二消息认证码;通过HMAC算法对接收到的第二测试命令进行加密计算,得到第三消息认证码;比对所述第二消息认证码与所述第三消息认证码是否一致;若一致,则执行所述第二测试命令对应的测试动作,并在所述测试动作执行完成时,设置完成状态字节;若不一致,则不执行所述第二测试命令对应的测试动作,并设置完成状态字节;所述下位机还用于:循环读取所述含RPMC的存储芯片的完成状态字节,当读取到完成状态字节时,反馈命令完成信号至所述上位机;所述上位机还用于:显示所述命令完成信号、所述第一消息认证码以及所述第一测试命令;所述上位机还用于:基于用户操作触发Read MC Status命令,并将所述ReadMC Status命令发送给下位机;所述下位机还用于:基于所述Read MC Status命令读取所述含RPMC的存储芯片的状态字节,并将所述状态字节返回给上位机;所述上位机还用于:比对所述状态字节与所述第一测试命令对应的基准状态字节是否一致;若所述状态字节与所述第一测试命令对应的基准状态字节一致,则显示测试成功信号。通过本发明,可基于用户操作,灵活生成任意测试指令,以供对RPMC进行功能性测试或健壮性测试,具有测试灵活,测试用例覆盖面全的优点。
附图说明
图1为本发明对RPMC进行测试的系统一实施例的架构示意图;
图2为一实施例中上位机的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明对RPMC进行测试的系统一实施例的架构示意图。在一实施例中,对RPMC进行测试的系统包括:上位机、下位机以及含RPMC的存储芯片;
所述上位机用于:接收用户操作,并通过HMAC算法对所述用户操作触发的第一测试命令进行加密计算,得到第一消息认证码,对所述第一测试命令以及所述第一消息认证码进行编辑,得到第一报文,将所述第一报文发送给下位机,所述第一报文为所述上位机与所述下位机间的通信接口可识别的报文;
本实施例中,如图2所示,图2为一实施例中上位机的结构示意图。上位机包含HMAC算法模块、USB通信模块、命令处理模块和人机交互界面,其中人机交互界面含七个命令按钮及相应的参数编辑框、一个健壮性测试选项卡专栏和一个输出窗口(可保存于文档)。其中,HMAC算法模块、USB通信模块、命令处理模块集成在上位机内部,人机交互界面的七个命令按钮分别是:写入根密钥Write Root Key(9Bh+00h命令)、更新消息认证密钥UpdateHMAC Key(9Bh+01h命令)、单调计数器加一Increment MC(9Bh+02h命令)、请求计数值Request MC(9Bh+03h命令)、保留的命令Reserved CMD(9Bh+04h~FFh命令)、读取单调计数器状态Read MC Status(96h命令,只读状态字节)、读取计数值Read MC Data(96h命令,读状态和数据)。这七个命令按钮对应的参数编辑框有:计数器地址Counter Address、根密钥Root Key、消息认证密钥HMAC Key、计数值Counter Data、标签Tag、保留命令的参数Reserved CMD Parameter;命令按钮和参数编辑框是一对多的对应。健壮性测试选项卡包括:签名不匹配Signature Mismatch、软复位Software Reset、删减有效数据ReducePayload Size、增加有效数据Increase Payload Size等四个选项。
用户操作触发的第一测试命令为功能性测试命令或健壮性测试命令。具体的触发方式为:
用户在参数编辑框中输入参数,并选择命令按钮,根据输入的参数和被选择的命令按钮,生成功能性测试命令。或,用户在参数编辑框中输入参数,并选择命令按钮,同时勾选选项卡(可以多选),根据输入的参数、被选择的命令按钮和勾选的选项卡,生成健壮性测试命令。
所述下位机用于:接收所述第一报文,从所述第一报文中解析出所述第一测试命令以及所述第一消息认证码,对所述第一测试命令以及所述第一消息认证码进行编辑,得到第二报文,将所述第二报文发送给含RPMC的存储芯片,所述第二报文为所述下位机与所述含RPMC的存储芯片间的通信接口可识别的报文;
本实施例中,下位机以32位MCU为核心,与上位机的USB通信用户自定义协议是采用USB Mass Storage协议,即采用USB接口与上位机通信;与含RPMC的存储芯片的接口是SPI接口。其中,与上位机通信采用用户自定义SCSI Command:RPMC输入指令RPMC InputInstruction(9Bh),RPMC输出指令RPMC Output Instruction(96h),自定义命令块包CBW的数据字段格式见表1,表1为一实施例中自定义命令块包CBW的数据字段格式的示意表。表1:
0 1 2 3
Direction Command Sub Command Paramater1
4 5 6 7
Paramater2 Paramater3 Paramater4 Paramater5
8 9 10 11
Paramater6 Paramater7 Paramater8 Paramater9
12 13 14 15
Paramater10 Paramater11 Paramater12 Check Code
其中,CBW的数据字段由16个字节组成,前三个字节分别是传输方向(Direction)、命令(Command)和子命令(Sub Command),最后一个字节是校验字节,剩下的3~14字节是参数。上位机通过这两个命令携带不同参数,就可以传送不同的指令给下位机。下位机可以通过轮询中断的方式接收来自USB接口的命令。下位机MCU固件程序接收USB命令并解析命令,解析出的命令发送到SPI接口,等待含RPMC的存储芯片的busy状态转换为ready状态,再把执行结果通过USB CSW返回给上位机,如果有数据,也同时把从SPI接口读到的数据发送到上位机。
上面只是本实施例的采用的一种与上位机进行通信的方式,实际应用时也可以采用USB CDC等其他设备类协议,数据字段格式也可以自定义为其他格式;同理,与含RPMC的存储芯片进行通信的接口也可以是SD/MMC/USB/Parallel NAND等其他接口。
所述含RPMC的存储芯片用于:接收来自所述下位机的报文,从接收到的报文中解析出第二测试命令以及第二消息认证码;通过HMAC算法对接收到的第二测试命令进行加密计算,得到第三消息认证码;比对所述第二消息认证码与所述第三消息认证码是否一致;若一致,则执行所述第二测试命令对应的测试动作,并在所述测试动作执行完成时,设置完成状态字节;若不一致,则不执行所述第二测试命令对应的测试动作,并设置完成状态字节;
所述下位机还用于:循环读取所述含RPMC的存储芯片的完成状态字节,当读取到完成状态字节时,反馈命令完成信号至所述上位机;
所述上位机还用于:显示所述命令完成信号、所述第一消息认证码以及所述第一测试命令;
所述上位机还用于:基于用户操作触发Read MC Status命令,并将所述Read MCStatus命令发送给下位机;
所述下位机还用于:基于所述Read MC Status命令读取所述含RPMC的存储芯片的状态字节,并将所述状态字节返回给上位机;
所述上位机还用于:比对所述状态字节与所述第一测试命令对应的基准状态字节是否一致;若所述状态字节与所述第一测试命令对应的基准状态字节一致,则显示测试成功信号。
一实施例中,以对RPMC进行功能性测试为例进行完整的说明:
测试人员通过人机交互界面,设定Counter Address、Root Key、HMAC Key、Counter Data、Tag等参数,再点击命令按钮,就可以进行RPMC功能性测试。例如,设定Counter Address=0,Root Key=55…55h(32个字节),然后点击Write Root Key,第一测试命令就会发出,命令处理模块收到该第一测试命令后,编辑原始消息发给HMAC算法模块,HMAC算法模块经过加密计算输出第一消息认证码,命令处理模块得到第一消息认证码,将第一测试命令以及第一消息认证码编辑到报文数据域,得到第一报文,将第一报文发给USB通信模块,USB通信模块通过USB驱动和USB数据线发送第一报文到下位机。
下位机收到第一报文,解析出Write Root Key命令、参数(Write Root Key命令和参数即为第一测试命令)和第一消息认证码,然后对第一测试命令和第一消息认证码进行编辑,得到第二报文,将第二报文发送到含RPMC的存储芯片。然后下位机一直循环读取RPMC的存储芯片的状态字节,直到状态字节变为ready状态。
含RPMC的存储芯片收到来自下位机的消息,但由于存在接收出错的可能,因此,含RPMC的存储芯片从收到的报文中解析出的第二测试命令和第二消息认证码有可能与第一测试命令和第一消息认证码相同,也有可能不同。含RPMC的存储芯片解析出第二测试命令和第二消息认证码后,首先通过HMAC算法对接收到的第二测试命令进行加密计算,得到第三消息认证码,然后将第三消息认证码与第二消息认证码进行对比,若一致,则执行第二测试命令对应的动作,并在执行完成后,设置状态字节为ready状态;若不一致,则不执行第二测试命令对应的动作,即此时是命令执行失败,同样设置状态字节为ready状态。这时下位机读到含RPMC的存储芯片的状态字节变为ready状态,表示含RPMC的存储芯片对上位机下发的测试指令已处理完成或处理失败,则下位机返回命令完成信号给上位机。
上位机收到命令完成的信号,将命令完成的信号输出到人机交互界面的输出窗口,同时将之前发送的第一消息认证码以及第一测试命令也输出到人机交互界面的输出窗口,便于含RPMC的存储芯片处理测试命令出错时调试。
测试人员看到命令完成的信号,点击Read MC Status命令,该命令经过命令处理模块、USB通信模块到下位机,下位机解析后发送给含RPMC的存储芯片,然后将含RPMC的存储芯片返回的状态字节读出来,再通过USB接口将状态字节发送给上位机,上位机输出到输出窗口。测试人员查看状态字节是否是80h(第一测试命令对应的基准状态字节),如果是80h则表示上一条Write Root Key命令处理成功,则在人机交互界面的输出窗口显示测试成功信号。如果不是80h,则表示该命令因为某种错误而处理失败。具体是哪种错误,可根据状态字节的值,查找含RPMC的存储芯片规格书上所描述的对应的错误类型。即状态字节与第一测试命令对应的基准状态字节一致,说明测试例成功,从而在输出窗口显示测试成功信号。反之,则测试例失败,一实施例中,当所述状态字节与所述第一测试命令对应的基准状态字节不一致时,获取所述第二测试命令以及所述第三消息认证码;将所述第一测试命令与所述第二测试命令进行对比,将所述第一消息认证码与所述第三消息认证码进行对比,得到对比结果;基于所述对比结果,显示所述第一测试命令与所述第二测试命令之间不一致的数据字段,显示所述第一消息认证码与所述第三消息认证码之间不一致的数据字段。
有时候,我们知道了错误类型,却仍然不知道更具体的错误位置。这时,测试人员可以进行调试:查看上述上位机输出窗口显示的第一测试命令,并与含RPMC的存储芯片收到的第二测试命令进行对比;查看上述上位机输出窗口显示的第一消息认证码,并与含RPMC的存储芯片计算得到的第三消息认证码(含RPMC的存储芯片的RPMC模块有与上位机相同的HMAC算法模块,用于计算消息认证码并验证消息认证码)进行对比,找到不一致的数据字段,从而定位出错位置(由开发人员根据不一致的数据字段定位出错位置)。当然该对比工作也可以由上位机执行,即:上位机获取含RPMC的存储芯片收到的第二测试命令,以及含RPMC的存储芯片中由RPMC模块通过与上位机中相同的HMAC算法对第二测试命令进行加密计算得到的第三消息认证码;将第一测试命令与第二测试命令进行对比,将第一消息认证码与第三消息认证码进行对比,得到对比结果;基于所述对比结果,在输出窗口显示第一测试命令与第二测试命令之间不一致的数据字段,显示第一消息认证码与第三消息认证码之间不一致的数据字段,以供开发人员根据不一致的数据字段定位出错位置。实际调试方法不限于此一种,具体可以根据实际需要进行选择。经过上述过程,Write Root Key命令的功能性测试得以完成。其他命令的功能性测试与上述过程类似,在此不做赘述。
另一实施例中,以对RPMC进行健壮性测试为例进行完整的说明:
测试人员通过人机交互界面,设定错误的Counter Address/Root Key/HMAC Key/Counter Data/Tag等参数,或者勾选Signature Mismatch/Software Reset/ReducePayload Size/Increase Payload Size选项卡,或者组合勾选,或者错误参数与选项卡勾选组合,再点击命令按钮,就可以进行RPMC健壮性测试。例如,设定错误的Counter Data,同时勾选Signature Mismatch,然后点击Increment MC命令按钮,第一测试命令就会发出,命令处理模块收到该第一测试命令后,编辑原始消息发给HMAC算法模块,HMAC算法模块经过加密计算输出消息认证码,命令处理模块得到消息认证码,检查到选项卡SignatureMismatch被勾选,则命令模块将正确的消息认证码篡改,并将所设定的错误的CounterData、Increment MC命令(错误的Counter Data以及Increment MC命令即第一测试命令)和篡改的消息认证码(第一消息认证码)编辑成第一报文,发给USB通信模块,USB通信模块通过USB驱动和USB数据线发送第一报文到下位机。
下位机收到第一报文,解析出第一消息认证码以及第一测试命令,然后将解析出的第一消息认证码以及第一测试命令编辑成第二报文,再通过SPI接口发送第二报文到含RPMC的存储芯片。
含RPMC的存储芯片收到来自下位机的消息,但由于存在接收出错的可能,因此,含RPMC的存储芯片从收到的报文中解析出来的第二测试命令和第二消息认证码有可能与第一测试命令和第一消息认证码相同,也有可能不同。含RPMC的存储芯片解析出第二测试命令和第二消息认证码后,首先通过HMAC算法对接收到的第二测试命令进行加密计算,得到第三消息认证码,然后将第三消息认证码与第二消息认证码进行对比,若一致,则执行第二测试命令对应的动作,并在执行完成后,设置状态字节为ready状态;若不一致,则不执行第二测试命令对应的动作,即此时是命令执行失败,同样设置状态字节为ready状态。这时下位机读到含RPMC的存储芯片的状态字节变为ready状态,表示含RPMC的存储芯片对上位机下发的测试指令已处理完成或处理失败,则下位机返回命令完成信号给上位机。
上位机收到命令完成的信号,将命令完成的信号输出到人机交互界面的输出窗口,同时将之前发送的第一消息认证码以及第一测试命令也输出到人机交互界面的输出窗口,便于含RPMC的存储芯片处理测试命令出错时调试。
测试人员看到命令完成的信号,点击Read MC Status命令,该命令经过命令处理模块、USB通信模块到下位机,下位机解析后发送给终端存储器,然后将终端存储器返回的状态字节读出来,再通过USB将状态字节发送给上位机,上位机输出到输出窗口。
测试人员查看输出窗口返回的状态字节的值,根据状态字节的值,查找含RPMC的存储芯片规格书上所描述的对应的错误类型,如果该错误类型是我们上述制造的Signature Mismatch和Counter Data Mismatch(即Counter Data错误),即状态字节与第一测试命令对应的基准状态字节一致,说明测试例成功,从而在输出窗口显示测试成功信号。
反之,则测试例失败,一实施例中,当所述状态字节与所述第一测试命令对应的基准状态字节不一致时,获取所述第二测试命令以及所述第三消息认证码;将所述第一测试命令与所述第二测试命令进行对比,将所述第一消息认证码与所述第三消息认证码进行对比,得到对比结果;基于所述对比结果,显示所述第一测试命令与所述第二测试命令之间不一致的数据字段,显示所述第一消息认证码与所述第三消息认证码之间不一致的数据字段。
有时候,我们知道了错误类型,却仍然不知道更具体的错误位置。这时,测试人员可以进行调试:查看上述上位机输出窗口显示的第一测试命令,并与含RPMC的存储芯片收到的第二测试命令进行对比;查看上述上位机输出窗口显示的第一消息认证码,并与含RPMC的存储芯片计算得到的第三消息认证码(含RPMC的存储芯片的RPMC模块有与上位机相同的HMAC算法模块,用于计算消息认证码并验证消息认证码)进行对比,找到不一致的数据字段,从而定位出错位置(由开发人员根据不一致的数据字段定位出错位置)。当然该对比工作也可以由上位机执行,即:上位机获取含RPMC的存储芯片收到的第二测试命令,以及含RPMC的存储芯片中由RPMC模块通过与上位机中相同的HMAC算法对第二测试命令进行加密计算得到的第三消息认证码;将第一测试命令与第二测试命令进行对比,将第一消息认证码与第三消息认证码进行对比,得到对比结果;基于所述对比结果,在输出窗口显示第一测试命令与第二测试命令之间不一致的数据字段,显示第一消息认证码与第三消息认证码之间不一致的数据字段,以供开发人员根据不一致的数据字段定位出错位置。实际调试方法不限于此一种,具体可以根据实际需要进行选择。经过上述过程,对Increment MC命令的一种健壮性测试用例得以完成。其他命令的健壮性测试与上述过程类似,在此不做赘述。
进一步地,一实施例中,所述上位机包括:人机交互界面、命令处理模块、HMAC算法模块以及USB通信模块;
所述人机交互界面用于:接收用户操作,并将所述用户操作触发的第一测试命令发送给所述命令处理模块;
所述命令处理模块用于:对所述第一测试命令进行编辑,得到原始消息,将所述原始消息发送给HMAC算法模块;
所述HMAC算法模块用于:通过HMAC算法对所述原始消息进行计算,得到第一消息认证码,并将所述第一消息认证码反馈给命令处理模块;
所述命令处理模块还用于:对所述第一测试命令以及所述第一消息认证码进行编辑,得到第一报文,将所述第一报文发送给USB通信模块;
所述USB通信模块用于:将所述第一报文发送给下位机;
所述USB通信模块还用于:接收来自所述下位机的命令完成信号,并将所述命令完成信号发送给所述命令处理模块;
所述命令处理模块还用于:将所述命令完成信号、所述第一消息认证码以及所述第一测试命令发送给人机交互界面;
所述人机交互界面还用于:显示所述命令完成信号、所述第一消息认证码以及所述第一测试命令;
所述人机交互界面还用于:基于用户操作触发Read MC Status命令,将所述ReadMC Status命令发送给命令处理模块;
所述命令处理模块还用于:将所述Read MC Status命令编辑成Read MC Status命令报文,并发送给所述USB通信模块;
所述USB通信模块还用于:将所述Read MC Status命令报文发送给下位机,接收所述下位机基于所述Read MC Status命令报文反馈的状态字节,将所述状态字节发送给所述命令处理模块;
所述命令处理模块还用于:比对所述状态字节与所述第一测试命令对应的基准状态字节是否一致;若所述状态字节与所述第一测试命令对应的基准状态字节一致,则发送测试成功信号至所述人机交互界面;当所述状态字节与所述第一测试命令对应的基准状态字节不一致时,获取所述第二测试命令以及所述第三消息认证码;将所述第一测试命令与所述第二测试命令进行对比,将所述第一消息认证码与所述第三消息认证码进行对比,得到对比结果;基于所述对比结果,发送所述第一测试命令与所述第二测试命令之间不一致的数据字段至所述人机交互界面,发送所述第一消息认证码与所述第三消息认证码之间不一致的数据字段至所述人机交互界面;
所述人机交互界面还用于:显示所述测试成功信号;
或,显示所述第一测试命令与所述第二测试命令之间不一致的数据字段和/或所述第一消息认证码与所述第三消息认证码之间不一致的数据字段。
进一步地,一实施例中,所述下位机包括:USB接口、微控制单元以及用于与含RPMC的存储芯片进行通信的通信接口,所述通信接口为SPI接口、SD接口、MMC接口、USB接口、Parallel NAND接口中的任一种;
所述微控制单元用于:通过所述USB接口接收所述第一报文,从所述第一报文中解析出所述第一测试命令以及所述第一消息认证码,对所述第一测试命令以及所述第一消息认证码进行编辑,得到第二报文,通过所述通信接口将所述第二报文发送到所述含RPMC的存储芯片;
所述微控制单元还用于:通过所述通信接口循环读取所述含RPMC的存储芯片的完成状态字节,当读取到完成状态字节时,通过所述USB接口反馈命令完成信号至所述USB通信模块;
所述微控制单元还用于:通过所述USB接口接收所述Read MC Status命令报文,并从所述Read MC Status命令报文中解析出所述Read MC Status命令,通过所述通信接口将所述Read MC Status命令发送到所述含RPMC的存储芯片,并在接收到所述含RPMC的存储芯片基于所述Read MC Status命令反馈的状态字节时,通过所述USB接口将所述状态字节返回给所述USB通信模块。
本实施例中,对RPMC进行测试的系统包括:上位机、下位机以及含RPMC的存储芯片;所述上位机用于:接收用户操作,并通过HMAC算法对所述用户操作触发的第一测试命令进行加密计算,得到第一消息认证码,对所述第一测试命令以及所述第一消息认证码进行编辑,得到第一报文,将所述第一报文发送给下位机,所述第一报文为所述上位机与所述下位机间的通信接口可识别的报文;所述下位机用于:接收所述第一报文,从所述第一报文中解析出所述第一测试命令以及所述第一消息认证码,对所述第一测试命令以及所述第一消息认证码进行编辑,得到第二报文,将所述第二报文发送给含RPMC的存储芯片,所述第二报文为所述下位机与所述含RPMC的存储芯片间的通信接口可识别的报文;所述含RPMC的存储芯片用于:接收来自所述下位机的报文,从接收到的报文中解析出第二测试命令以及第二消息认证码;通过HMAC算法对接收到的第二测试命令进行加密计算,得到第三消息认证码;比对所述第二消息认证码与所述第三消息认证码是否一致;若一致,则执行所述第二测试命令对应的测试动作,并在所述测试动作执行完成时,设置完成状态字节;若不一致,则不执行所述第二测试命令对应的测试动作,并设置完成状态字节;所述下位机还用于:循环读取所述含RPMC的存储芯片的完成状态字节,当读取到完成状态字节时,反馈命令完成信号至所述上位机;所述上位机还用于:显示所述命令完成信号、所述第一消息认证码以及所述第一测试命令;所述上位机还用于:基于用户操作触发Read MC Status命令,并将所述ReadMC Status命令发送给下位机;所述下位机还用于:基于所述Read MC Status命令读取所述含RPMC的存储芯片的状态字节,并将所述状态字节返回给上位机;所述上位机还用于:比对所述状态字节与所述第一测试命令对应的基准状态字节是否一致;若所述状态字节与所述第一测试命令对应的基准状态字节一致,则显示测试成功信号。通过本实施例,可基于用户操作,灵活生成任意测试指令,以供对RPMC进行功能性测试或健壮性测试,具有测试灵活,测试用例覆盖面全的优点。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的步骤。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (4)

1.一种对应答保护单调计数器RPMC进行测试的系统,其特征在于,所述系统包括:上位机、下位机以及含RPMC的存储芯片;
所述上位机用于:接收用户操作,并通过HMAC算法对所述用户操作触发的第一测试命令进行加密计算,得到第一消息认证码,对所述第一测试命令以及所述第一消息认证码进行编辑,得到第一报文,将所述第一报文发送给下位机,所述第一报文为所述上位机与所述下位机间的通信接口可识别的报文;
所述下位机用于:接收所述第一报文,从所述第一报文中解析出所述第一测试命令以及所述第一消息认证码,对所述第一测试命令以及所述第一消息认证码进行编辑,得到第二报文,将所述第二报文发送给含RPMC的存储芯片,所述第二报文为所述下位机与所述含RPMC的存储芯片间的通信接口可识别的报文;
所述含RPMC的存储芯片用于:接收来自所述下位机的报文,从接收到的报文中解析出第二测试命令以及第二消息认证码;通过HMAC算法对接收到的第二测试命令进行加密计算,得到第三消息认证码;比对所述第二消息认证码与所述第三消息认证码是否一致;若一致,则执行所述第二测试命令对应的测试动作,并在所述测试动作执行完成时,设置完成状态字节;若不一致,则不执行所述第二测试命令对应的测试动作,并设置完成状态字节;
所述下位机还用于:循环读取所述含RPMC的存储芯片的完成状态字节,当读取到完成状态字节时,反馈命令完成信号至所述上位机;
所述上位机还用于:显示所述命令完成信号、所述第一消息认证码以及所述第一测试命令;
所述上位机还用于:基于用户操作触发读取单调计数器状态Read MC Status命令,并将所述Read MC Status命令发送给下位机;
所述下位机还用于:基于所述Read MC Status命令读取所述含RPMC的存储芯片的状态字节,并将所述状态字节返回给上位机;
所述上位机还用于:比对所述状态字节与所述第一测试命令对应的基准状态字节是否一致;若所述状态字节与所述第一测试命令对应的基准状态字节一致,则显示测试成功信号。
2.如权利要求1所述的对应答保护单调计数器RPMC进行测试的系统,其特征在于,所述上位机还用于:
当所述状态字节与所述第一测试命令对应的基准状态字节不一致时,获取所述第二测试命令以及所述第三消息认证码;
将所述第一测试命令与所述第二测试命令进行对比,将所述第一消息认证码与所述第三消息认证码进行对比,得到对比结果;
基于所述对比结果,显示所述第一测试命令与所述第二测试命令之间不一致的数据字段,显示所述第一消息认证码与所述第三消息认证码之间不一致的数据字段。
3.如权利要求2所述的对应答保护单调计数器RPMC进行测试的系统,其特征在于,所述上位机包括:人机交互界面、命令处理模块、HMAC算法模块以及USB通信模块;
所述人机交互界面用于:接收用户操作,并将所述用户操作触发的第一测试命令发送给所述命令处理模块;
所述命令处理模块用于:对所述第一测试命令进行编辑,得到原始消息,将所述原始消息发送给HMAC算法模块;
所述HMAC算法模块用于:通过HMAC算法对所述原始消息进行计算,得到第一消息认证码,并将所述第一消息认证码反馈给命令处理模块;
所述命令处理模块还用于:对所述第一测试命令以及所述第一消息认证码进行编辑,得到第一报文,将所述第一报文发送给USB通信模块;
所述USB通信模块用于:将所述第一报文发送给下位机;
所述USB通信模块还用于:接收来自所述下位机的命令完成信号,并将所述命令完成信号发送给所述命令处理模块;
所述命令处理模块还用于:将所述命令完成信号、所述第一消息认证码以及所述第一测试命令发送给人机交互界面;
所述人机交互界面还用于:显示所述命令完成信号、所述第一消息认证码以及所述第一测试命令;
所述人机交互界面还用于:基于用户操作触发Read MC Status命令,将所述Read MCStatus命令发送给命令处理模块;
所述命令处理模块还用于:将所述Read MC Status命令编辑成Read MC Status命令报文,并发送给所述USB通信模块;
所述USB通信模块还用于:将所述Read MC Status命令报文发送给下位机,接收所述下位机基于所述Read MC Status命令报文反馈的状态字节,将所述状态字节发送给所述命令处理模块;
所述命令处理模块还用于:比对所述状态字节与所述第一测试命令对应的基准状态字节是否一致;若所述状态字节与所述第一测试命令对应的基准状态字节一致,则发送测试成功信号至所述人机交互界面;当所述状态字节与所述第一测试命令对应的基准状态字节不一致时,获取所述第二测试命令以及所述第三消息认证码;将所述第一测试命令与所述第二测试命令进行对比,将所述第一消息认证码与所述第三消息认证码进行对比,得到对比结果;基于所述对比结果,发送所述第一测试命令与所述第二测试命令之间不一致的数据字段至所述人机交互界面,发送所述第一消息认证码与所述第三消息认证码之间不一致的数据字段至所述人机交互界面;
所述人机交互界面还用于:显示所述测试成功信号;
或,显示所述第一测试命令与所述第二测试命令之间不一致的数据字段和/或所述第一消息认证码与所述第三消息认证码之间不一致的数据字段。
4.如权利要求3所述的对应答保护单调计数器RPMC进行测试的系统,其特征在于,所述下位机包括:第一USB接口、微控制单元以及用于与含RPMC的存储芯片进行通信的存储芯片通信接口,所述存储芯片通信接口为SPI接口、SD接口、MMC接口、USB接口、Parallel NAND接口中的任一种;
所述微控制单元用于:通过所述第一USB接口接收所述第一报文,从所述第一报文中解析出所述第一测试命令以及所述第一消息认证码,对所述第一测试命令以及所述第一消息认证码进行编辑,得到第二报文,通过所述存储芯片通信接口将所述第二报文发送到所述含RPMC的存储芯片;
所述微控制单元还用于:通过所述存储芯片通信接口循环读取所述含RPMC的存储芯片的完成状态字节,当读取到完成状态字节时,通过所述第一USB接口反馈命令完成信号至所述USB通信模块;
所述微控制单元还用于:通过所述第一USB接口接收所述Read MCStatus命令报文,并从所述Read MC Status命令报文中解析出所述Read MC Status命令,通过所述存储芯片通信接口将所述Read MC Status命令发送到所述含RPMC的存储芯片,并在接收到所述含RPMC的存储芯片基于所述Read MC Status命令反馈的状态字节时,通过所述第一USB接口将所述状态字节返回给所述USB通信模块。
CN202010226475.8A 2020-03-27 2020-03-27 对应答保护单调计数器rpmc进行测试的系统 Active CN111159720B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010226475.8A CN111159720B (zh) 2020-03-27 2020-03-27 对应答保护单调计数器rpmc进行测试的系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010226475.8A CN111159720B (zh) 2020-03-27 2020-03-27 对应答保护单调计数器rpmc进行测试的系统

Publications (2)

Publication Number Publication Date
CN111159720A CN111159720A (zh) 2020-05-15
CN111159720B true CN111159720B (zh) 2020-07-24

Family

ID=70567939

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010226475.8A Active CN111159720B (zh) 2020-03-27 2020-03-27 对应答保护单调计数器rpmc进行测试的系统

Country Status (1)

Country Link
CN (1) CN111159720B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113436671B (zh) * 2021-06-30 2023-09-08 芯天下技术股份有限公司 Spi nor flash测试平台、测试方法、测试装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103988185A (zh) * 2011-12-20 2014-08-13 英特尔公司 安全的重放保护存储
CN104572015A (zh) * 2013-10-21 2015-04-29 北京兆易创新科技股份有限公司 与fpga结合的flash芯片及指令处理方法
CN209462386U (zh) * 2019-02-27 2019-10-01 北京交大思诺科技股份有限公司 便携式btm测试仪
CN110380932A (zh) * 2019-07-17 2019-10-25 中国工商银行股份有限公司 用于安全设备的测试方法和装置、以及测试系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN202815170U (zh) * 2012-03-08 2013-03-20 无锡华大国奇科技有限公司 芯片测试系统
CN103323768A (zh) * 2013-06-09 2013-09-25 苏州大学 一种指定高速da芯片性能参数测试的方法
US10846438B2 (en) * 2014-07-24 2020-11-24 Nuvoton Technology Corporation RPMC flash emulation
CN105004984A (zh) * 2015-06-25 2015-10-28 深圳市芯海科技有限公司 一种自动化芯片测试方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103988185A (zh) * 2011-12-20 2014-08-13 英特尔公司 安全的重放保护存储
CN104572015A (zh) * 2013-10-21 2015-04-29 北京兆易创新科技股份有限公司 与fpga结合的flash芯片及指令处理方法
CN209462386U (zh) * 2019-02-27 2019-10-01 北京交大思诺科技股份有限公司 便携式btm测试仪
CN110380932A (zh) * 2019-07-17 2019-10-25 中国工商银行股份有限公司 用于安全设备的测试方法和装置、以及测试系统

Also Published As

Publication number Publication date
CN111159720A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
CN110427331B (zh) 基于接口测试工具自动生成性能测试脚本的方法
CN101604272B (zh) 存储卡测试装置及其测试方法
CN111190629B (zh) 一种嵌入式终端升级软件包及其解析方法
CN107453873B (zh) 一种智能ic卡数据校验方法及系统
CN112965908B (zh) 通信测试方法、装置、通信设备及存储介质
CN115952758B (zh) 芯片验证方法、装置、电子设备及存储介质
CN111159720B (zh) 对应答保护单调计数器rpmc进行测试的系统
CN107735802A (zh) 电子单元与在该电子单元中执行的方法
US7385927B2 (en) Methods and structure for improved testing of embedded systems
CN112631557A (zh) 生成接口代码和/或接口文档的方法、装置及存储介质
CN113010190A (zh) 一种mac地址烧录方法、装置、设备和存储介质
CN114721683A (zh) 升级固件的电路、方法、芯片和电子设备
CN105808257A (zh) 一种应用弹窗识别方法和装置
CN113220568B (zh) Usim卡文件系统的测试方法、装置及介质
CN114816993A (zh) 一种全链路接口测试方法、系统、介质及电子设备
CN111351669B (zh) 故障诊断方法和装置、存储介质和车辆
CN115495363A (zh) 一种软件测试方法、电子设备及可读存储介质
CN114253841A (zh) 测试脚本生成方法、装置及存储介质
US7020600B2 (en) Apparatus and method for improvement of communication between an emulator unit and a host device
CN110825795A (zh) 访问数据库的方法、装置、设备及计算机可读存储介质
CN108665938B (zh) 写测试方法、读测试方法、读写测试方法及终端设备
CN115098402B (zh) 调试方法以及调试装置
CN112866938B (zh) 利用无线设备打开应用程序的方法、装置及智能设备及存储介质
US20240096149A1 (en) Vehicle data verification apparatus and method thereof
KR102005718B1 (ko) 상황정보 병기형 실사용 기반 모바일단말 스크립트 생성 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 518000 Room 101, building 10, Dayun software Town, 8288 Longgang Avenue, he'ao community, Yuanshan street, Longgang District, Shenzhen City, Guangdong Province

Patentee after: XTX Technology Inc.

Address before: 518000 19 / F, Xinghe World Building, Bantian street, Longgang District, Shenzhen City, Guangdong Province

Patentee before: Paragon Technology (Shenzhen) Ltd.