OTA方法、系统、设备、SE模块、程序服务器和介质
技术领域
本发明涉及通信领域,尤其涉及OTA方法、系统、设备、SE模块、程序服务器和介质。
背景技术
空中下载技术(Over The Air,OTA)的所谓“空中”指的是远程无线方式,指通过网络(如WiFi、2G、3G等)的空中接口对目标终端的固件及软件进行远程管理的技术,OTA技术可以理解为一种远程无线升级技术。
现阶段,程序服务器和目标下载终端之间主要采用明文下载升级的方式下载或更新程序。整个OTA过程的安全性不受保障。
发明内容
本发明实施例提供的OTA方法、系统、设备、SE模块、程序服务器和介质,可以提高OTA的安全性。
根据本发明实施例的第一方面,提供一种OTA方法,包括:接收由程序服务器发送的待下载数据的第一密文和待下载数据的第一消息认证码,第一密文是利用第一加密密钥对待下载数据的明文加密得到的;利用与第一加密密钥对应的第一解密密钥对第一密文解密,得到待下载数据的明文;利用第一消息认证码和待下载数据的明文验证待下载数据具备完整性,将待下载数据发送至目标终端的更新模块。
在一种可选的实施方式中,接收由程序服务器发送的待下载数据的第一密文和待下载数据的第一消息认证码之前,方法还包括:
接收由程序服务器发送的服务器数字签名和程序服务器的第一数字证书;基于服务器数字签名和第一数字证书,验证程序服务器是否具备合法性;若验证程序服务器具备合法性,将SE模块的SE数字签名和SE模块的第二数字证书发送至程序服务器,以供服务器基于SE数字签名和第二数字证书验证SE模块具备合法性。
在一种可选的实施方式中,第一数字证书为程序服务器的服务器安全认证公钥的数字证书,服务器数字签名是利用与服务器安全认证公钥对应的服务器安全认证私钥,对由SE模块生成的一次性SE信息标识符加密后生成的。
基于服务器数字签名和第一数字证书,验证程序服务器是否具备合法性,具体包括:
利用认证中心根证书验证第一数字证书具备合法性,并从第一数字证书中获取服务器安全认证公钥;利用服务器安全认证公钥对第一数字证书解密,得到一次性SE信息标识符;确认解密得到的一次性SE信息标识符与由SE模块生成的一次性SE信息标识符是否匹配;若匹配,验证程序服务器具备合法性;若不匹配,验证程序服务器不具备合法性。
在一种可选的实施方式中,接收由程序服务器发送的待下载数据的第一密文和待下载数据的第一消息认证码之前,方法还包括:
接收由程序服务器发送的目标程序更新通知消息;基于目标程序更新通知消息,将目标终端的身份标识信息发送至程序服务器,以供程序服务器基于目标终端的身份标识信息,验证目标终端具备数据下载权限。
在一种可选的实施方式中,将待下载数据发送至目标终端的更新模块,具体包括:
接收由更新模块发送的加解密密钥;利用加解密密钥对待下载数据的明文进行加密,得到待下载数据的第二密文;基于待下载数据的明文生成待下载数据的第二消息认证码;将第二密文和第二消息认证码发送至更新模块。
在一种可选的实施方式中,第一加密密钥和第一解密密钥具有对称性;
其中,第一加密密钥由程序服务器基于自身生成的一次性OTA私钥和接收的一次性SE公钥生成,第一解密密钥由SE模块基于自身生成的一次性SE私钥和接收的一次性OTA公钥生成,一次性OTA私钥和一次性OTA公钥是由程序服务器针对当前OTA生成的一次性密钥对;一次性SE私钥和一次性SE公钥是由SE模块针对本次OTA生成的一次性密钥对。
根据本发明实施例的第二方面,提供一种OTA方法,应用于程序服务器,包括:向目标终端侧的安全模块SE模块发送待下载数据的第一密文和待下载数据的第一消息认证码,以供SE模块利用与第一加密密钥对应的第一解密密钥对第一密文解密,得到待下载数据的明文,并以供SE模块利用第一消息认证码和待下载数据的明文验证待下载数据具备完整性,将待下载数据发送至目标终端的更新模块;其中,第一密文是利用第一加密密钥对待下载数据的明文加密得到的。
在一种可选的实施方式中,程序服务器向目标终端侧的SE模块发送待下载数据的第一密文和待下载数据的第一消息认证码之前,方法还包括:
向SE模块发送服务器数字签名和程序服务器的第一数字证书,以供SE模块基于服务器数字签名和第一数字证书,验证程序服务器是否具备合法性;接收由SE模块验证程序服务器具备合法性发送的SE模块的SE数字签名和SE模块的第二数字证书;基于SE数字签名和第二数字证书,验证SE模块具备合法性。
在一种可选的实施方式中,第二数字证书为SE模块的SE安全认证公钥的数字证书,SE数字签名是利用与SE安全认证公钥对应的SE安全认证私钥、对由SE模块生成的一次性服务器信息标识符加密后生成的。
基于SE数字签名和第二数字证书,验证SE模块具备合法性,具体包括:
利用认证中心根证书验证第二数字证书具备合法性,并从第二数字证书中获取SE安全认证公钥;利用SE安全认证公钥对第二数字证书解密,得到一次性服务器信息标识符;确认解密得到的一次性服务器信息标识符与由程序服务器生成的一次性服务器信息标识符是否匹配;若匹配,验证SE模块具备合法性。
在一种可选的实施方式中,向目标终端侧的SE模块发送待下载数据的第一密文和待下载数据的第一消息认证码之前,方法还包括:
向SE模块发送目标程序更新通知消息,以向SE模块请求目标终端的身份标识信息;
接收由SE模块发送的目标终端的身份标识信息;
基于目标终端的身份标识信息,验证目标终端具备数据下载权限。
在一种可选的实施方式中,第一加密密钥和第一解密密钥具有对称性。
其中,第一加密密钥由程序服务器,基于自身生成的一次性OTA私钥和接收的一次性SE公钥生成。第一解密密钥由SE模块,基于自身生成的一次性SE私钥和接收的一次性OTA公钥生成。一次性OTA私钥和一次性OTA公钥是由程序服务器针对本次OTA生成的一次性密钥对。一次性SE私钥和一次性SE公钥是由SE模块针对本次OTA生成的一次性密钥对。
根据本发明实施例的第三方面,提供一种OTA方法,包括:
程序服务器向目标终端侧的安全模块SE模块发送待下载数据的第一密文和待下载数据的第一消息认证码,第一密文是利用第一加密密钥对待下载数据的明文加密得到的;SE模块利用与第一加密密钥对应的第一解密密钥对第一密文解密,得到待下载数据的明文;SE模块利用第一消息认证码和待下载数据的明文验证待下载数据具备完整性,将待下载数据发送至目标终端的更新模块。
在一种可选的实施方式中,程序服务器向目标终端侧的SE模块发送待下载数据的第一密文和待下载数据的第一消息认证码之前,方法还包括:SE模块和程序服务器互相验证对方具备安全性。
在一种可选的实施方式中,SE模块和程序服务器互相验证对方具备安全性,具体包括:程序服务器向SE模块发送的服务器数字签名和程序服务器的第一数字证书;SE模块基于服务器数字签名和第一数字证书,验证程序服务器是否具备合法性;若验证程序服务器具备合法性,SE模块将SE模块的SE数字签名和SE模块的第二数字证书发送至程序服务器;程序服务器基于SE数字签名和第二数字证书,验证SE模块具备合法性。
在一种可选的实施方式中,第一数字证书为程序服务器的服务器安全认证公钥的数字证书,服务器数字签名是利用与服务器安全认证公钥对应的服务器安全认证私钥、对由SE模块生成的一次性SE信息标识符加密后生成的。
SE模块基于服务器数字签名和第一数字证书,验证程序服务器是否具备合法性,具体包括:SE模块利用认证中心根证书验证第一数字证书具备合法性,并从第一数字证书中获取服务器安全认证公钥;利用服务器安全认证公钥对第一数字证书解密,得到一次性SE信息标识符;确认解密得到的一次性SE信息标识符与由SE模块生成的一次性SE信息标识符是否匹配;若匹配,验证程序服务器具备合法性;若不匹配,验证程序服务器不具备合法性。
在一种可选的实施方式中,第二数字证书为SE模块的SE安全认证公钥的数字证书,SE数字签名是利用与SE安全认证公钥对应的SE安全认证私钥、对由SE模块生成的一次性服务器信息标识符加密后生成的。
服务器基于SE数字签名和第二数字证书,验证SE模块具备合法性,具体包括:程序服务器利用认证中心根证书验证第二数字证书具备合法性,并从第二数字证书中获取SE安全认证公钥;利用SE安全认证公钥对第二数字证书解密,得到一次性服务器信息标识符;确认解密得到的一次性服务器信息标识符与由程序服务器生成的一次性服务器信息标识符是否匹配;若匹配,验证SE模块具备合法性。
在一种可选的实施方式中,程序服务器向目标终端侧的SE模块发送待下载数据的第一密文和待下载数据的第一消息认证码之前,方法还包括:
程序服务器向SE模块发送目标程序更新通知消息;SE模块基于目标程序更新通知消息,将目标终端的身份标识信息发送至程序服务器;程序服务器基于目标终端的身份标识信息,验证目标终端具备数据下载权限。
在一种可选的实施方式中,将待下载数据发送至目标终端的更新模块,具体包括:SE模块接收由更新模块发送的加解密密钥;SE模块利用加解密密钥对待下载数据的明文加密,得到待下载数据的第二密文,并基于待下载数据的明文生成待下载数据的第二消息认证码;SE模块将第二密文和第二消息认证码发送至更新模块。
在一种可选的实施方式中,方法还包括:更新模块利用加解密密钥对第二密文解密,得到待下载数据的明文,并利用第二消息认证符和待下载数据的明文验证待下载数据是否具备完整性;若具备完整性,则利用解密得到的待下载数据的明文更新目标程序。
在一种可选的实施方式中,方法还包括:程序服务器针对本次OTA生成一次性OTA私钥和与一次性OTA私钥对应的一次性OTA公钥,并将一次性OTA公钥发送至SE模块;SE模块针对本次OTA生成一次性SE私钥和与一次性SE私钥对应的一次性SE公钥,并将一次性SE公钥发送至程序服务器;程序服务器基于自身生成的一次性OTA私钥和接收的一次性SE公钥,生成第一加密密钥;SE模块基于自身生成的一次性SE私钥和接收的一次性OTA公钥,生成与第一加密密钥具有对称性的第一解密密钥。
根据本发明实施例的第四方面,提供一种SE模块,包括:接收处理单元,用于接收由程序服务器发送的待下载数据的第一密文和待下载数据的第一消息认证码,第一密文是利用第一加密密钥对待下载数据的明文加密得到的;解密处理单元,用于利用与第一加密密钥对应的第一解密密钥对第一密文解密,得到待下载数据的明文;发送处理单元,用于利用第一消息认证码和待下载数据的明文验证解密得到的待下载数据具备完整性,将待下载数据发送至目标终端的更新模块。
根据本发明实施例的第五方面,提供一种程序服务器,包括:发送单元,用于向目标终端侧的SE模块发送待下载数据的第一密文和待下载数据的第一消息认证码,以供SE模块利用与第一加密密钥对应的第一解密密钥对第一密文解密,得到待下载数据的明文,并以供SE模块利用第一消息认证码和待下载数据的明文验证解密得到的待下载数据具备完整性,将待下载数据发送至目标终端的更新模块;其中,第一密文是利用第一加密密钥对待下载数据的明文加密得到的。
根据本发明实施例的第六方面,提供一种OTA系统,包括:
程序服务器,用于向目标终端侧的SE模块发送待下载数据的第一密文和待下载数据的第一消息认证码,第一密文是利用第一加密密钥对待下载数据的明文加密得到的;SE模块,用于利用与第一加密密钥对应的第一解密密钥对第一密文解密,得到待下载数据的明文;以及,还用于利用第一消息认证码和待下载数据的明文验证待下载数据具备完整性,将待下载数据发送至目标终端的更新模块。
根据本发明实施例的第七方面,提供一种OTA设备,包括:
存储器,用于存储程序;处理器,用于运行存储器中存储的程序,以执行本发明实施例的第一方面提供的OTA方法、本发明实施例的第二方面提供的OTA方法或本发明实施例的第三方面提供的OTA方法。
根据本发明实施例的第八方面,提供一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现本发明实施例的第一方面提供的OTA方法、本发明实施例的第二方面提供的OTA方法或本发明实施例的第三方面提供的OTA方法。
根据本发明实施例中的OTA方法、系统、设备、SE模块、程序服务器和介质,相较于现有技术中程序服务器和目标终端之间的明文下载升级方式,本发明实施例中的程序服务器将待下载数据的密文和待下载数据的消息认证码发送至目标终端侧的SE模块。SE模块利用待下载数据的明文和第一消息认证码验证待下载数据具备完整性后,将待下载数据发送至目标终端的更新模块。本发明实施例的技术方案中通过设置SE模块,待下载数据不会被直接发送至目标终端的更新模块,而是先由SE模块进行验证,只有具备完整性的待下载数据才会被SE模块传输至更新模块,更新模块不会接收到被篡改或伪造的待下载数据,保证了更新模块的安全性。此外,程序服务器和SE模块之间传输的是待下载数据的密文,能够防止传输信道被攻击而导致的待下载数据泄露。因此,本发明实施例的技术方案能够提高OTA的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是示出根据本发明实施例的OTA方法的示意流程图;
图2是示出根据本发明实施例的OTA方法的更详细的示意流程图;
图3是示出根据本发明实施例的OTA方法的示意流程图;
图4是示出根据本发明实施例的OTA方法的示意流程图;
图5示出了根据本发明实施例提供的OTA系统的结构示意图;
图6示出了根据本发明实施例提供的程序服务器的结构示意图;
图7示出了根据本发明实施例提供的SE模块的结构示意图;
图8是本发明实施例中OTA设备的示例性硬件架构的结构图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明实施例提供一种OTA方法、系统、设备、SE模块、程序服务器和介质,可应用于对目标终端的固件更新或软件更新的场景中。主要涉及程序服务器和目标终端侧的安全模块(Secure Element,SE模块)。
其中,目标终端表示与程序服务器具备远程通讯功能的设备。具体地,可以是物联网设备或者车联网设备。例如,可以是手机、电脑、智能家电、汽车等。
程序服务器可以是具有待下载数据推送及发布功能的云端服务器。具体地,可以是虚拟服务器或者物理服务器,对此不做限定。
SE模块表示相较于目标终端中各功能模块具有更高安全等级的模块。
安全模块可以具体实现为支持安全协议的模块。具体地,安全模块可以是防篡改平台(通常是单芯片安全微控制器),能够根据明确标识的受信任机构设置的规则和安全要求,安全地托管应用程序、其机密数据和加密数据(例如加密密钥)等。比如,对SE模块的安全要求可以是通过CC EAL6的安全认证等。SE模块的具体形态可以是芯片,例如同方的THD88芯片,对此不作限制。
SE模块可以预先安装于目标终端内,可分为嵌入式和集成式两种。比如,SE模块可以嵌入或集成入用户身份识别卡(Subscriber Identification Module,SIM)、通用集成电路卡(Universal Integrated Circuit Card,UICC),智能micro SD卡以及智能卡。SE模块也可以与目标终端通过插接、焊接、卡接、压接或者贴合等方式与目标终端相连接,对此不做限定。
SE模块可以包括通信单元,也可以不包括通信单元。若SE模块不包括通信单元,程序服务器和SE模块之间的通讯,可以通过目标终端转发实现。例如,目标终端的通信单元接收由程序服务器发送的待下载数据的密文,并将待下载数据的密文转发至SE模块。
此外,芯片在设计时要能防御各种攻击手段。比如下述攻击的一种或多种:(1)物理攻击-侵入式攻击、半侵入式攻击和非侵入式攻击;(2)对于传感器和过滤器的攻击;(3)通过FA方式得到秘钥的攻击;(4)侧信道攻击;(5)穿透性攻击;(6)对于测试特性的攻击;(7)对于随机数的攻击等。
为了更好的理解本发明,下面将结合附图,详细描述根据本发明实施例的OTA方法、装置、设备和介质,应注意,这些实施例并不用来限制本发明公开的范围。
图1是示出根据本发明实施例的OTA方法的示意流程图。如图1所示,本实施例中的OTA方法100可以包括步骤104、步骤106和步骤107:
步骤104,程序服务器向SE模块发送待下载数据的第一密文和待下载数据的第一消息认证码。其中,第一密文是利用第一加密密钥对待下载数据的明文加密得到的。
在本发明的一些实施例中,待下载数据可以是固件或软件的安装数据或更新数据。其中,下载数据表示用于在目标终端安装固件或软件的数据,更新数据表示用于对目标终端内已安装的固件或软件进行更新的数据。固件的待下载数据可以表示对固件的驱动、系统、功能、应用等进行安装或更新的数据。例如,固件可以是手机的移动操作系统。软件的待下载数据可以表示对应用程序进行安装或更新的数据。例如,软件可以是车载地图、车载导航等。
在本发明的一些实施例中,程序服务器的第一加密密钥和SE模块的第一解密密钥是一对对称性密钥。二者可以利用密钥交换算法(Diffie-Hellman,DH)计算得到。
在一些实施例中,第一加密密钥的生成方式包括步骤A1至步骤A3:
步骤A1,程序服务器针对本次OTA生成一次性OTA私钥和对应的一次性OTA公钥。其中,一次性OTA私钥和一次性OTA公钥可以是非对称性密钥。生成一次性OTA私钥和一次性OTA公钥所利用的非对称加密算法可以是RSA算法(即一种非对称加密算法)、椭圆加密算法(Elliptic curve cryptography,ECC)、Elgamal算法(即一种非对称加密算法)、背包算法等。
步骤A2,SE模块针对本次OTA生成一次性SE私钥和与一次性SE私钥对应的一次性SE公钥。其中,一次性SE私钥和一次性SE公钥是非对称密钥,加密算法可以参见上述非对称算法,在此不再赘述。
步骤A3,SE模块将一次性SE公钥发送至程序服务器。
步骤A4,程序服务器基于自身生成的一次性OTA私钥和接收的一次性SE公钥,利用DH算法生成第一加密密钥。
需要说明的是,本发明实施例对步骤A1和步骤A2的执行次序不做限定。
在本实施例中,第一加密密钥、一次性OTA私钥和一次性SE公钥无需预先存储于任何固件设备中,能够防止因固件设备被攻击所导致的密钥泄露。并且,一次性OTA私钥和一次性SE公钥均是本次OTA过程中随机生成的,进一步提高了第一加密密钥的私密性。因此,本发明实施例能够提高OTA的安全性。
在本方面的一些实施例中,第一消息认证码可以是程序服务器对待下载数据的数字签名。具体地,数字签名的计算方法可以是:先计算待下载数据的摘要,再对待下载数据的摘要进行加密,得到第一消息认证码。其中,摘要算法并不限定,可以采用MD5消息摘要算法(MD5 Message-Digest Algorithm,MD5)、安全哈希算法(Secure Hash Algorithm,sha1)、sha256算法(即一种哈希值算法)、SM3算法(即一种密码散列函数标准)等。对摘要的加密算法也不作限定,可以是对称加密算法也可以是非对称加密算法,对此不做限定。
步骤106,SE模块利用与第一加密密钥对应的第一解密密钥对第一密文解密,得到待下载数据的明文。
在一些实施例中,第一解密密钥的生成方式包括步骤A1、步骤A2、步骤A5和步骤A6:
步骤A5、程序服务器将一次性OTA公钥发送至SE模块。
步骤A6、SE模块基于自身生成的一次性SE私钥和接收的一次性OTA公钥,利用DH算法生成与第一加密密钥对应的第一解密密钥。
其中,步骤A1和步骤A2可参见本发明上述实施例,在此不再赘述。
在本实施例中,第一解密密钥、一次性OTA公钥和一次性SE私钥因无需预先存储于任何固件设备中,能够防止因固件设备被攻击所导致的密钥泄露。并且,一次性OTA私钥和一次性SE公钥均是本次OTA过程中随机生成的,进一步提高了第一加密密钥的私密性。此外,第一解密密钥是由SE模块自身生成的,无需在程序服务器与SE模块之间传输,能够防止因传输信道被攻击所导致的密钥泄露。因此,本发明实施例能够提高OTA的安全性。
步骤107,SE模块利用第一消息认证码和待下载数据的明文验证待下载数据具备完整性,将待下载数据发送至目标终端的更新模块。
根据本发明实施例中的OTA方法,相较于现有技术中程序服务器和目标终端之间的明文下载升级方式,程序服务器将待下载数据的密文和待下载数据的消息认证码发送至目标终端侧的SE模块。SE模块利用待下载数据的明文和第一消息认证码验证待下载数据具备完整性后,将待下载数据发送至目标终端的更新模块。本发明实施例的技术方案中通过设置SE模块,待下载数据不会被直接发送至目标终端的更新模块,而是先由SE模块进行验证,只有具备完整性的待下载数据才会被SE模块传输至更新模块,更新模块不会接收到被篡改或伪造的待下载数据,保证了更新模块的安全性。此外,程序服务器和SE模块之间传输的是待下载数据的密文,能够防止传输信道被攻击而导致的待下载数据泄露。因此,发明实施例的技术方案能够提高OTA的安全性。
在本发明一些实施例中,待下载数据的完整性用于验证待下载数据是否被非法篡改或非法伪造。具体的验证方式可以是验证待下载数据的明文与原始待下载数据是否相同。
在一些实施例中,验证待下载数据具备完整性的具体实施方式包括:利用计算第一消息认证码时所使用的摘要算法,计算待下载数据的明文的摘要。然后,利用计算第一消息认证码时所使用的加密算法,对待下载数据的明文的摘要进行加密,得到待验证数字签名。最后,确定待验证数字签名与第一消息认证码是否相同。若相同,验证待下载数据具备完整性。若不相同,验证待下载数据不具备完整性。
在本实施例中,通过第一消息认证码和待下载数据的明文验证待下载数据是否具备完整性,能够防止待下载数据被篡改或被替换,保证了待下载数据的真实性和安全性。此外,利用第一消息认证码还能证明程序服务器的身份,防止伪造服务器对目标程序的更新模块的攻击,进一步提高了OTA的安全性。
在本发明的一些实施例中,目标终端的更新模块表示能够控制待下载数据对应的固件或软件进行安装或更新的模块。例如,车辆的微控制单元(Microcontroller Unit,MCU)、手机的处理器、智能家具的处理器等。
在本发明的一些实施例中,SE模块接收到待下载数据后,需要将待下载数据发送至更新模块,以供更新模块利用待下载数据对固件或者软件进行安装或更新。为了提高SE模块、更新模块、以及SE模块与更新模块之间传输信道的安全性,步骤107,具体包括:
步骤1071,SE模块利用第一消息认证码和待下载数据的明文验证待下载数据具备完整性。
其中,步骤1071的具体实施方式可参见本发明上述实施例对步骤107的相关描述,在此不再赘述。
步骤1072,SE模块接收由更新模块发送的加解密密钥。
在一些实施例中,加解密密钥可以是由更新模块针对本次OTA生成的。示例性的,加解密密钥可以是更新模块生成的一个随机数。
在本实施例中,利用本次OTA过程中生成的随机数作为加解密密钥,更新模块无需预先存储待下载数据的加解密密钥,即使更新模块被攻击也不会导致密钥泄露,提高了OTA的安全性。
在一些实施例中,为了防止加解密密钥因传输信道被攻击而泄露,更新模块在向SE模块发送加解密密钥之前,需要对加解密密钥进行加密。步骤1072之前,方法100包括:
步骤B2、更新模块利用一次性SE公钥对加解密密钥加密,得到加解密密钥的密文,并将加解密密钥的密文发送至SE模块。
相应地,步骤1072具体包括:
SE模块接收由更新模块发送的加解密密钥的密文。
在一个实施例中,步骤B1中可以利用步骤A2生成的一次性SE公钥对加解密密钥加密。相应地,在步骤B2之前,方法100还包括:
步骤B1、SE模块在生成一次性SE公钥之后,将一次性SE公钥发送至更新模块,以供更新模块利用一次性SE公钥对加解密密钥加密。
步骤1073,SE模块利用加解密密钥对待下载数据的明文加密,得到待下载数据的第二密文,并基于待下载数据的明文生成待下载数据的第二消息认证码。
在一些实施例中,步骤1073的加密算法可以是对称加密算法,对此不做限定。
在一些实施例中,第二消息认证码的生成方式与第一消息认证码的生成方式相似,在此不再赘述。
步骤1074,SE模块将第二密文和第二消息认证码发送至更新模块。
在本实施例中,SE模块通过向更新模块发送待下载数据的密文,能够防止待下载数据在传输过程中泄露。此外,通过向更新模块发送第二消息认证码,可以供更新模块验证待下载数据的完整性,以及验证SE的身份。能够防止更新模块被伪造SE模块攻击,以及能够防止更新模块使用被伪造的或者被篡改的待下载数据进行安装或更新,提高了整个OTA过程的安全性。
在本发明的一些实施例中,在步骤S1074之后,方法100还包括:
步骤108,更新模块利用加解密密钥对第二密文解密,得到待下载数据的明文,并利用第二消息认证符和待下载数据的明文验证待下载数据是否具备完整性。
在一些实施例中,若更新模块接收到的是由一次性SE公钥加密后的加解密密钥的密文,步骤1073还包括步骤B3。
步骤B3、SE模块利用一次性SE私钥对加解密密钥的密文解密,得到加解密密钥。
在一些实施例中,步骤108中验证待下载数据具备完整性的方式和步骤107中验证待下载数据具备完整性的方式相同,在此不再赘述。
步骤109,若待下载数据具备完整性,更新模块则利用解密得到的待下载数据的明文更新目标程序。
在步骤109中,目标程序可以是固件或软件,更新目标程序可以是在目标终端中安装目标程序,或者在目标终端中更新目标程序。
需要说明的是,目标程序可以是安装于更新模块中的目标程序,也可以是安装在目标终端的除更新模块之外的其他模块的目标程序,对此不做限定。
在本发明的一些实施例中,为了提高OTA的安全性,步骤104之前,方法100还包括:
步骤101,程序服务器向SE模块发送目标程序更新通知消息。
在一些实施例中,目标程序更新通知消息用于通知目标终端和SE模块,目标程序可以进行更新或安装的消息。
步骤102,SE模块基于目标程序更新通知消息,将目标终端的身份标识信息发送至程序服务器。
在一些实施例中,目标终端的身份标识信息表示可以证明目标终端的唯一身份的信息。例如,可以是目标终端的终端ID。
步骤103,程序服务器基于目标终端的身份标识信息,验证目标终端具备数据下载权限。
在一些实施例中,在程序服务器中预先设置一个权限表,记录着具有数据下载权限的所有终端的ID。在接收到某一终端ID后,在权限表中查找是否记录有该终端ID,若记录有该终端ID,则证明该终端ID对应的终端具备数据下载权限。
通过步骤102和步骤103,能够验证目标终端是否具备数据下载权限,能够防止目标程序被未经授权的用户盗用,且一定程序上能够证明目标终端的身份,防止被伪造终端攻击。
在本发明的一些实施例中,为了提高OTA的安全性,步骤106之前,方法100还包括:
步骤105,SE模块和程序服务器互相验证对方具备安全性。
在本实施例中,SE模块和程序服务器互相验证对方具备安全性,能够防止伪造目标终端对程序服务器端的攻击,也能防止伪造程序服务器对目标终端的攻击。
在一些实施例中,步骤105包括SE模块验证程序服务器具备安全性和程序服务器验证SE模块具备安全性的两个过程。此时,步骤105具体包括步骤1051至步骤1054。
步骤1051,程序服务器向SE模块发送的服务器数字签名和程序服务器的第一数字证书。其中,数字签名算法可以是RSA算法等,对此不做限定。
在一个实施例中,服务器数字签名可以是基于由SE模块生成的一次性SE信息标识符生成的。其中,一次性SE信息标识符可以是本次OTA过程中生成的第一随机数。需要说明的是,“第一随机数”中的“第一”仅起到标号的作用,以将本步骤中的随机数与其他步骤中的随机数进行区分。
对应地,步骤1051之前还包括步骤C1和步骤C2。
步骤C1、SE模块在本次OTA过程中生成一定长度的第一随机数,并将第一随机数发送至程序服务器。其中,该随机数可以与目标终端的身份标识信息一起,发送至程序服务器。
步骤C2、程序服务器基于第一随机数生成服务器数字签名。
在一个具体的实施例中,步骤C2的具体实施方式可以包括:
程序服务器利用服务器安全认证私钥对由第一随机数和目标终端的身份标识信息所组成的数据进行签名,得到服务器数字签名。其中,签名算法不作限定。通过本实施例,利用第一随机数生成服务器数字签名,每一次OTA过程的服务器数字签名均是不同的,服务器数字签名也具有随机性,降低了服务器数字签名被盗用的风险,进而提高OTA过程的安全性。
步骤1052,SE模块基于服务器数字签名和第一数字证书,验证程序服务器是否具备合法性。
在一些实施例中,第一数字证书可以是经权威机构发放的,用于证明程序服务器的身份合法性的文件。示例性的,包含程序服务器的信息以及属于程序服务器的公钥的信息。
在一些实施例中,若服务器数字签名是利用与服务器安全认证公钥对应的服务器安全认证私钥,对由SE模块生成的一次性SE信息标识符加密后生成的,对应的,第一数字证书是程序服务器的服务器安全认证公钥的数字证书。
相应地,步骤1052,具体包括步骤D1至步骤D3。
步骤D1,SE模块利用认证中心根证书验证第一数字证书具备合法性,并从第一数字证书中获取服务器安全认证公钥。其中,认证中心可以是证书授权(CertificateAuthority,CA)中心。
在步骤D1中,第一数字证书具备合法性表示第一数字证书是经可信权威中心认可的。此外,第一数字证书具备合法性,能够进一步表明程序服务器具备合法性。
在一些实施例中,可以通过验证第一数字证书上认证中心的签名来检查第一数字证书的合法性。
在一些实施例中,步骤D1中从第一数字证书中获取服务器安全认证公钥的具体实施方式可以是:利用认证中心的公钥对第一数字证书解密,得到服务器安全认证公钥。
在一些实施例中,服务器安全认证公钥和服务器安全认证私钥是一对非对称性密钥。对非对称加密算法不作限定。
步骤D2,SE模块利用服务器安全认证公钥对第一数字证书解密,得到一次性SE信息标识符。
其中,一次性SE信息标识符可以是本发明上述实施例提及的第一随机数。
步骤D3,SE模块确认解密得到的一次性SE信息标识符与由SE模块生成的一次性SE信息标识符是否匹配。若匹配,验证程序服务器具备合法性。若不匹配,验证程序服务器不具备合法性。
在步骤D3中,确认解密得到的一次性SE信息标识符与由SE模块生成的一次性SE信息标识符是否匹配的具体实施方式可以是确认两者是否完全相同,若完全相同,则证明相匹配,若不完全相同,则证明不匹配。
在本实施例中,利用认证中心的根证书进行合法性认证,能够保证整个过程的安全性。
步骤1053,若验证程序服务器具备合法性,SE模块将SE模块的SE数字签名和SE模块的第二数字证书发送至程序服务器。
在一些实施例中,SE数字签名可以是基于一次性服务器信息标识符生成的。其中,一次性服务器信息标识符可以是由程序服务器生成的固定长度的第二随机数。
此外,SE数字签名的其他相关说明可参见本发明上述实施例中服务器数字签名的相关内容,在此不再赘述。
在一些实施例中,第二数字证书可以是SE安全认证公钥的数字证书。
此外,第二数字证书的相关说明可参见本发明上述实施例中第一数字证书的相关内容,在此不再赘述。
步骤1054,程序服务器基于SE数字签名和第二数字证书,验证SE模块具备合法性。
其中,步骤1054的说明可参见步骤1052的相关内容,对此不再赘述。
在一些实施例中,若第二数字证书为SE模块的SE安全认证公钥的数字证书,若SE数字签名是利用与SE安全认证公钥对应的SE安全认证私钥、对由SE模块生成的一次性服务器信息标识符加密后生成的。
相应地,步骤1054,具体包括步骤E1至步骤E3。
步骤E1,程序服务器利用认证中心根证书验证第二数字证书具备合法性,并从第二数字证书中获取SE安全认证公钥。
步骤E2,程序服务器利用SE安全认证公钥对第二数字证书解密,得到一次性服务器信息标识符。
步骤E3,程序服务器确认解密得到的一次性服务器信息标识符与由程序服务器生成的一次性服务器信息标识符是否匹配,若匹配,验证SE模块具备合法性。
其中,步骤E1至E3的相关说明可参见本发明上述实施例中对步骤D1至D3的说明,对此不再赘述。
步骤1055,程序服务器向SE模块发送验证成功的通知消息,以供SE模块基于验证成功的通知消息,执行后续的软件更新步骤。例如,SE模块接收到验证成功的通知消息后,执行步骤106。
图2是示出根据本发明实施例的OTA方法的更详细的示意流程图,图2与图1相同或等同的步骤使用相同的标号。如图2所示,方法200包括:
步骤101,程序服务器将目标程序更新通知消息发送至SE模块。
步骤102,SE模块基于目标程序更新通知消息,将目标终端的身份标识信息发送至程序服务器。
步骤103,程序服务器验证目标终端具备数据下载权限。
步骤104,程序服务器将第一密文和第一消息认证码发送至SE模块。
步骤1051,程序服务器将服务器数字签名和第一数字证书发送至SE模块。
步骤D1,SE模块利用认证中心根证书验证第一数字证书具备合法性,从第一数字证书获取服务器安全认证公钥。
步骤D2,SE模块利用服务器安全认证公钥对第一数字证书解密,得到一次性SE信息标识符。
步骤D3,SE模块确认解密得到的一次性SE信息标识符与由SE模块生成的一次性SE信息标识符是否匹配。若匹配,验证程序服务器具备合法性。若不匹配,验证程序服务器不具备合法性。
步骤1053,若验证程序服务器具备合法性,SE模块将SE模块的SE数字签名和SE模块的第二数字证书发送至程序服务器。
步骤E1,程序服务器利用认证中心根证书验证第二数字证书具备合法性,并从第二数字证书中获取SE安全认证公钥。
步骤E2,程序服务器利用SE安全认证公钥对第二数字证书解密,得到一次性服务器信息标识符。
步骤E3,程序服务器确认解密得到的一次性服务器信息标识符与由程序服务器生成的一次性服务器信息标识符是否匹配,若匹配,验证SE模块具备合法性。
步骤1055,程序服务器向SE模块发送验证成功的通知消息。
步骤106,SE模块利用与第一加密密钥对应的第一解密密钥对第一密文解密,得到待下载数据的明文。
步骤1071,SE模块利用第一消息认证码和待下载数据的明文验证待下载数据具备完整性。
步骤1072,更新模块将加解密密钥发送至SE模块。
步骤1073,SE模块利用加解密密钥对待下载数据的明文加密,得到待下载数据的第二密文,并基于待下载数据的明文生成待下载数据的第二消息认证码。
步骤1074,SE模块将第二密文和第二消息认证码发送至更新模块。
步骤108,更新模块利用加解密密钥对第二密文解密,得到待下载数据的明文,并利用第二消息认证符和待下载数据的明文验证待下载数据是否具备完整性。
步骤109,若待下载数据具备完整性,更新模块则利用解密得到的待下载数据的明文更新目标程序。
需要说明的是,本发明实施例中的相关内容,可参见本发明上述实施例的相关内容,在此不再赘述。
基于相同的发明构思,图3是示出根据本发明实施例的OTA方法的示意流程图。其中,各步骤的执行主体可以是目标终端侧的SE模块。如图3所示,OTA方法300包括步骤301至步骤303。
步骤301,接收由程序服务器发送的待下载数据的第一密文和待下载数据的第一消息认证码。第一密文是利用第一加密密钥对待下载数据的明文加密得到的。
其中,步骤301的相关描述可参见步骤103的相关内容,在此不再赘述。
步骤302,利用与第一加密密钥对应的第一解密密钥对第一密文解密,得到待下载数据的明文。
其中,步骤302的相关描述可参见步骤106的相关内容,在此不再赘述。
步骤303,利用第一消息认证码和待下载数据的明文验证待下载数据具备完整性,将待下载数据发送至目标终端的更新模块。
其中,步骤303的相关描述可参见步骤107的相关内容,在此不再赘述。
在本发明的一些实施例中,步骤301之前,方法300还包括:
步骤304,接收由程序服务器发送的服务器数字签名和程序服务器的第一数字证书。
步骤305,基于服务器数字签名和第一数字证书,验证程序服务器是否具备合法性。
步骤306,若验证程序服务器具备合法性,将SE模块的SE数字签名和SE模块的第二数字证书发送至程序服务器,以供服务器基于SE数字签名和第二数字证书验证SE模块具备合法性。
在一些实施例中,若第一数字证书为程序服务器的服务器安全认证公钥的数字证书,对应的,服务器数字签名是利用与服务器安全认证公钥对应的服务器安全认证私钥,对由SE模块生成的一次性SE信息标识符加密后生成的。
步骤305,具体包括:
步骤3051,利用认证中心根证书验证第一数字证书具备合法性,并从第一数字证书中获取服务器安全认证公钥。
步骤3052,利用服务器安全认证公钥对第一数字证书解密,得到一次性SE信息标识符。
步骤3053,确认解密得到的一次性SE信息标识符与由SE模块生成的一次性SE信息标识符是否匹配。
步骤3054,若匹配,验证程序服务器具备合法性。
步骤3055,若不匹配,验证程序服务器不具备合法性。
在本发明的一些实施例中,步骤301之前,方法还包括:
步骤307,接收由程序服务器发送的目标程序更新通知消息。
步骤308,基于目标程序更新通知消息,将目标终端的身份标识信息发送至程序服务器,以供程序服务器基于目标终端的身份标识信息,验证目标终端具备数据下载权限。
在本发明的一些实施例中,步骤303中的将待下载数据发送至目标终端的更新模块,具体包括:
步骤3031,接收由更新模块发送的加解密密钥。
步骤3032,利用加解密密钥对待下载数据的明文进行加密,得到待下载数据的第二密文。
步骤3033,基于待下载数据的明文生成待下载数据的第二消息认证码。
步骤3034,将第二密文和第二消息认证码发送至更新模块。
在本发明的一些实施例中,第一加密密钥和第一解密密钥具有对称性。
其中,第一加密密钥由程序服务器基于自身生成的一次性OTA私钥和接收的一次性SE公钥生成。
第一解密密钥由SE模块基于自身生成的一次性SE私钥和接收的一次性OTA公钥生成。
一次性OTA私钥和一次性OTA公钥是由程序服务器针对当前OTA生成的一次性密钥对。
一次性SE私钥和一次性SE公钥是由SE模块针对本次OTA生成的一次性密钥对。
基于相同的发明构思,图4是示出根据本发明实施例的OTA方法的示意流程图。其中,各步骤的执行主体可以是程序服务器。如图4所示,OTA方法400包括:
步骤401,向目标终端侧的SE模块发送待下载数据的第一密文和待下载数据的第一消息认证码,以供SE模块利用与第一加密密钥对应的第一解密密钥对第一密文解密,得到待下载数据的明文,并以供SE模块利用第一消息认证码和待下载数据的明文验证待下载数据具备完整性,将待下载数据发送至目标终端的更新模块。
其中,第一密文是利用第一加密密钥对待下载数据的明文加密得到的。
在本发明的一些实施例中,步骤401之前,方法400还包括:
步骤402,向SE模块发送的服务器数字签名和程序服务器的第一数字证书,以供SE模块基于服务器数字签名和第一数字证书,验证程序服务器是否具备合法性。
步骤403,接收由SE模块验证程序服务器具备合法性发送的SE模块的SE数字签名和SE模块的第二数字证书;
步骤404,基于SE数字签名和第二数字证书,验证SE模块具备合法性。
在一些实施例中,若第二数字证书为SE模块的SE安全认证公钥的数字证书,SE数字签名是利用与SE安全认证公钥对应的SE安全认证私钥、对由SE模块生成的一次性服务器信息标识符加密后生成的。
步骤404,具体包括步骤4041至步骤4044:
步骤4041,利用认证中心根证书验证第二数字证书具备合法性,并从第二数字证书中获取SE安全认证公钥。
步骤4042,利用SE安全认证公钥对第二数字证书解密,得到一次性服务器信息标识符。
步骤4043,确认解密得到的一次性服务器信息标识符与由程序服务器生成的一次性服务器信息标识符是否匹配。
步骤4044,若匹配,验证SE模块具备合法性。
在本发明的一些实施例中,步骤401之前,方法还包括:
步骤405,向SE模块发送目标程序更新通知消息,以向SE模块请求目标终端的身份标识信息。
步骤406,接收由SE模块发送的目标终端的身份标识信息。
步骤407,基于目标终端的身份标识信息,验证目标终端具备数据下载权限。
在本发明的一些实施例中,第一加密密钥和第一解密密钥具有对称性。
其中,第一加密密钥由程序服务器,基于自身生成的一次性OTA私钥和接收的一次性SE公钥生成。
第一解密密钥由SE模块,基于自身生成的一次性SE私钥和接收的一次性OTA公钥生成。
一次性OTA私钥和一次性OTA公钥是由程序服务器针对本次OTA生成的一次性密钥对。
一次性SE私钥和一次性SE公钥是由SE模块针对本次OTA生成的一次性密钥对。
基于相同的发明构思,本发明实施例提供了一种OTA系统。图5示出了根据本发明实施例提供的OTA系统的结构示意图。如图5所示,OTA系统500包括程序服务器510和SE模块520。
程序服务器510,用于向目标终端侧的SE模块发送待下载数据的第一密文和待下载数据的第一消息认证码,第一密文是利用第一加密密钥对待下载数据的明文加密得到的。
SE模块520,用于利用与第一加密密钥对应的第一解密密钥对第一密文解密,得到待下载数据的明文;以及,还用于利用第一消息认证码和待下载数据的明文验证待下载数据具备完整性,将待下载数据发送至目标终端的更新模块。
在本发明的一些实施例中,OTA系统500还包括目标终端的更新模块530。
在本发明的一些实施例中,SE模块和程序服务器互相验证对方具备安全性。
在本发明的一些实施例中,程序服务器510还用于向SE模块发送的服务器数字签名和程序服务器的第一数字证书。以及,还用于基于SE数字签名和第二数字证书,验证SE模块具备合法性。
SE模块520,还用于基于服务器数字签名和第一数字证书,验证程序服务器是否具备合法性。以及,若验证程序服务器具备合法性,SE模块将SE模块的SE数字签名和SE模块的第二数字证书发送至程序服务器。
在一些实施例中,若第一数字证书为程序服务器的服务器安全认证公钥的数字证书,服务器数字签名是利用与服务器安全认证公钥对应的服务器安全认证私钥、对由SE模块生成的一次性SE信息标识符加密后生成的。
SE模块520,具体用于:
利用认证中心根证书验证第一数字证书具备合法性,并从第一数字证书中获取服务器安全认证公钥。以及,利用服务器安全认证公钥对第一数字证书解密,得到一次性SE信息标识符。以及,确认解密得到的一次性SE信息标识符与由SE模块生成的一次性SE信息标识符是否匹配。以及,若匹配,验证程序服务器具备合法性;若不匹配,验证程序服务器不具备合法性。
在一些实施例中,第二数字证书为SE模块的SE安全认证公钥的数字证书,SE数字签名是利用与SE安全认证公钥对应的SE安全认证私钥、对由SE模块生成的一次性服务器信息标识符加密后生成的。
程序服务器510,具体用于:
利用认证中心根证书验证第二数字证书具备合法性,并从第二数字证书中获取SE安全认证公钥。以及,利用SE安全认证公钥对第二数字证书解密,得到一次性服务器信息标识符。以及,确认解密得到的一次性服务器信息标识符与由程序服务器生成的一次性服务器信息标识符是否匹配。以及,若匹配,验证SE模块具备合法性。
在本发明的一些实施例中,程序服务器510,还用于向SE模块发送目标程序更新通知消息。以及,还用于基于目标终端的身份标识信息,验证目标终端具备数据下载权限。
SE模块520,还用于基于目标程序更新通知消息,将目标终端的身份标识信息发送至程序服务器。
在本发明的一些实施例中,SE模块520,具体用于:
接收由更新模块发送的加解密密钥。以及,利用加解密密钥对待下载数据的明文加密,得到待下载数据的第二密文,并基于待下载数据的明文生成待下载数据的第二消息认证码。以及,将第二密文和第二消息认证码发送至更新模块。
在本发明的一些实施例中,更新模块530,用于:
利用加解密密钥对第二密文解密,得到待下载数据的明文,并利用第二消息认证符和待下载数据的明文验证待下载数据是否具备完整性。以及,用于若具备完整性,则利用解密得到的待下载数据的明文更新目标程序。
在本发明的一些实施例中,程序服务器针510,还用于对本次OTA生成一次性OTA私钥和与一次性OTA私钥对应的一次性OTA公钥,并将一次性OTA公钥发送至SE模块。以及,基于自身生成的一次性OTA私钥和接收的一次性SE公钥,生成第一加密密钥。
SE模块520,还用于针对本次OTA生成一次性SE私钥和与一次性SE私钥对应的一次性SE公钥,并将一次性SE公钥发送至程序服务器。以及,基于自身生成的一次性SE私钥和接收的一次性OTA公钥,生成与第一加密密钥具有对称性的第一解密密钥。
根据本发明实施例的OTA系统的其他细节与以上结合图1至图2描述的根据本发明实施例的OTA方法类似,在此不再赘述。
基于相同的发明构思,本发明实施例提供了一种程序服务器。图6示出了根据本发明实施例提供的程序服务器的结构示意图。如图6所示,程序服务器510包括发送单元511。
发送单元511,用于向目标终端侧的SE模块发送待下载数据的第一密文和待下载数据的第一消息认证码,以供SE模块利用与第一加密密钥对应的第一解密密钥对第一密文解密,得到待下载数据的明文,并以供SE模块利用第一消息认证码和待下载数据的明文验证解密得到的待下载数据具备完整性,将待下载数据发送至目标终端的更新模块;
其中,第一密文是利用第一加密密钥对待下载数据的明文加密得到的。
在本发明的一些实施例中,程序服务器510还包括发送单元512、接收单元513和验证单元514。
其中,发送单元512,用于向SE模块发送服务器数字签名和程序服务器的第一数字证书,以供SE模块基于服务器数字签名和第一数字证书,验证程序服务器是否具备合法性。
其中,接收单元513,用于接收由SE模块验证程序服务器具备合法性发送的SE模块的SE数字签名和SE模块的第二数字证书。
其中,验证单元514,用于基于SE数字签名和第二数字证书,验证SE模块具备合法性。
在一些实施例中,第二数字证书为SE模块的SE安全认证公钥的数字证书,SE数字签名是利用与SE安全认证公钥对应的SE安全认证私钥、对由SE模块生成的一次性服务器信息标识符加密后生成的。
验证单元514,具体包括验证子单元5141、获取子单元5142和匹配子单元5143。
验证子单元5141,用于利用认证中心根证书验证第二数字证书具备合法性,并从第二数字证书中获取SE安全认证公钥。
获取子单元5142,用于利用SE安全认证公钥对第二数字证书解密,得到一次性服务器信息标识符。
匹配子单元5143,用于确认解密得到的一次性服务器信息标识符与由程序服务器生成的一次性服务器信息标识符是否匹配;若匹配,验证SE模块具备合法性。
在本发明的一些实施例中,程序服务器510还包括:
发送单元515,用于向SE模块发送目标程序更新通知消息,以向SE模块请求目标终端的身份标识信息;
接收单元516,用于接收由SE模块发送的目标终端的身份标识信息;
验证单元517,用于基于目标终端的身份标识信息,验证目标终端具备数据下载权限。
在本发明的一些实施例中,第一加密密钥和第一解密密钥具有对称性。
其中,第一加密密钥由程序服务器,基于自身生成的一次性OTA私钥和接收的一次性SE公钥生成。
第一解密密钥由SE模块,基于自身生成的一次性SE私钥和接收的一次性OTA公钥生成。
一次性OTA私钥和一次性OTA公钥是由程序服务器针对本次OTA生成的一次性密钥对。
一次性SE私钥和一次性SE公钥是由SE模块针对本次OTA生成的一次性密钥对。
根据本发明实施例的程序服务器的其他细节与以上结合图4描述的根据本发明实施例的OTA方法类似,在此不再赘述。
基于相同的发明构思,本发明实施例提供了一种SE模块。图7示出了根据本发明实施例提供的SE模块的结构示意图。如图7所示,SE模块520包括接收处理单元521、解密处理单元522和发送处理单元523。
接收处理单元521,用于接收由程序服务器发送的待下载数据的第一密文和待下载数据的第一消息认证码,第一密文是利用第一加密密钥对待下载数据的明文加密得到的。
解密处理单元522,用于利用与第一加密密钥对应的第一解密密钥对第一密文解密,得到待下载数据的明文。
发送处理单元523,用于利用第一消息认证码和待下载数据的明文验证解密得到的待下载数据具备完整性,将待下载数据发送至目标终端的更新模块。
在本发明的一些实施例中,SE模块520还包括接收处理单元524、验证处理单元525和发送处理单元526:
接收处理单元524,用于接收由程序服务器发送的服务器数字签名和程序服务器的第一数字证书。
验证处理单元525,用于基于服务器数字签名和第一数字证书,验证程序服务器是否具备合法性。
发送处理单元526,用于若验证程序服务器具备合法性,将SE模块的SE数字签名和SE模块的第二数字证书发送至程序服务器,以供服务器基于SE数字签名和第二数字证书验证SE模块具备合法性。
在一些实施例中,若第一数字证书为程序服务器的服务器安全认证公钥的数字证书,服务器数字签名是利用与服务器安全认证公钥对应的服务器安全认证私钥,对由SE模块生成的一次性SE信息标识符加密后生成的;
验证处理单元525,具体用于:利用认证中心根证书验证第一数字证书具备合法性,并从第一数字证书中获取服务器安全认证公钥;利用服务器安全认证公钥对第一数字证书解密,得到一次性SE信息标识符;确认解密得到的一次性SE信息标识符与由SE模块生成的一次性SE信息标识符是否匹配;若匹配,验证程序服务器具备合法性;若不匹配,验证程序服务器不具备合法性。
在本发明的一些实施例中,SE模块520还包括接收处理单元527和验证处理单元528。
接收处理单元527,用于接收由程序服务器发送的目标程序更新通知消息。
验证处理单元528,用于基于目标程序更新通知消息,将目标终端的身份标识信息发送至程序服务器,以供程序服务器基于目标终端的身份标识信息,验证目标终端具备数据下载权限。
在本发明的一些实施例中,发送处理单元523具体用于:接收由更新模块发送的加解密密钥;利用加解密密钥对待下载数据的明文进行加密,得到待下载数据的第二密文;基于待下载数据的明文生成待下载数据的第二消息认证码;将第二密文和第二消息认证码发送至更新模块。
在本发明的一些实施例中,第一加密密钥和第一解密密钥具有对称性。
其中,第一加密密钥由程序服务器基于自身生成的一次性OTA私钥和接收的一次性SE公钥生成。
第一解密密钥由SE模块基于自身生成的一次性SE私钥和接收的一次性OTA公钥生成。
一次性OTA私钥和一次性OTA公钥是由程序服务器针对当前OTA生成的一次性密钥对。
一次性SE私钥和一次性SE公钥是由SE模块针对本次OTA生成的一次性密钥对。
根据本发明实施例的SE模块的其他细节与以上结合图3描述的根据本发明实施例的OTA方法类似,在此不再赘述。
图8是本发明实施例中OTA设备的示例性硬件架构的结构图。
如图8所示,OTA设备800包括输入设备801、输入接口802、中央处理器803、存储器804、输出接口805、以及输出设备806。其中,输入接口802、中央处理器803、存储器804、以及输出接口805通过总线810相互连接,输入设备801和输出设备806分别通过输入接口802和输出接口805与总线810连接,进而与OTA设备800的其他组件连接。
具体地,输入设备801接收来自外部的输入信息,并通过输入接口802将输入信息传送到中央处理器803;中央处理器803基于存储器804中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器804中,然后通过输出接口805将输出信息传送到输出设备806;输出设备806将输出信息输出到OTA设备800的外部供用户使用。
也就是说,图8所示的OTA设备也可以被实现为包括:存储有计算机可执行指令的存储器,以及处理器。该处理器在执行计算机可执行指令时可以实现结合图1至图7描述的OTA设备的方法、系统、程序服务器或SE模块。
在一个实施例中,图8所示的OTA设备800可以被实现为一种设备,该设备可以包括:存储器,用于存储程序;处理器,用于运行存储器中存储的程序,以执行本发明实施例的OTA方法。
本发明实施例还提供了一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现本发明实施例的OTA方法。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
以上,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。