一种基于无证书体系的设备远程升级方法与流程

文档序号:17298491发布日期:2019-04-03 04:40阅读:137来源:国知局
一种基于无证书体系的设备远程升级方法与流程

本申请涉及信息安全技术领域,尤其涉及一种基于无证书体系的设备远程升级方法。



背景技术:

现有设备根据需求不断进行改进、增加以及一些严重性bug,这时已发行的设备是无法满足新增加的需求等问题,这时就需要设备支持远程程序升级功能。

目前如何保证设备安全的远程升级,一般会采用的方法有非对称或对称加密解方式进行。

如果采用对称加解密方式保证数据下载的安全性,这时设备与平台服务器同时拥有一组相同的密钥,通过该密钥或采用分散出会话密钥作为数据加解密来保证数据安全性,但是该密钥怎么下载、管理是非常重要的问题。

如果采用非对称加密方式,一般会采用的方法有发送一方(升级平台服务器或设备)公钥或公钥证书给对方。利用非对称算法的特征可以保证数据安全性下载,同时解决对称密钥的下载问题。这种方法也分为2种:

1、只是采用公、私钥运算方式保护数据下载,由于无法认证对方身份合法性而导致固件数据的泄露。

2、采用公钥证书的体系结构在升级前认证对方身份合法性。这样就不会导致固件数据泄露。但是采用这种公钥证书体系结构方法,首先需要双方至少存储一份根公钥以及自身公钥和相关信息使用根私钥进行签名的证书数据,该数据一般在1k到3k之间。如果设备存储空间有限的情况下(即存储不了该数据时,这时只有选择第1种方式)。同时设备升级方式采用无线技术中低数据传输速率(比如:红外、zigbee,bluetooth等)方式进行时,传输公钥证书数据会占用较多时间,会影响用户体验。



技术实现要素:

本申请的目的在于提供一种基于无证书体系的设备远程升级方法,降低运维成本,简化费用管理方式,方便联合经营和大面积推广应用。

为达到上述目的,本申请提供一种基于无证书体系的设备远程升级方法,包括:终端设备存储终端私钥,以及由密钥中心系统根据预置的终端公钥标识导入的终端公钥数据;当所述终端设备需要进行升级时,升级平台服务器根据所述终端公钥数据计算终端公钥,使用所述终端公钥对升级文件数据进行处理,将处理结果返回所述终端设备;若终端设备使用终端私钥对处理结果验证成功,则存储所述升级文件数据。

如上的,其中,升级平台服务器根据所述终端公钥数据验证并计算终端公钥,具体包括如下子步骤:从终端公钥数据中获取终端公钥标识和sm2密钥标识;根据所述sm2密钥标识查找公开的密钥中心公钥,以及根据所述终端公钥标识查找公开的标识向量映射;根据所述终端公钥数据中的终端部分公钥、所述密钥中心公钥和所述标识向量映射,计算得到终端公钥。

如上的,其中,升级平台服务器使用所述终端公钥对升级文件数据进行处理,具体为:升级平台服务器读取升级文件数据,对升级文件数据进行摘要运算,得到摘要值,将摘要值与升级文件数据进行拼接,使用终端公钥对拼接结果进行加密运算,得到处理结果。

如上的,其中,终端设备使用终端私钥对处理结果进行验证,具体为:终端设备使用内置的终端私钥对处理结果进行解密,得到升级文件数据和摘要值,对升级文件数据进行摘要运算,若判断得到的摘要值与解密得到的摘要值相同,则验证成功。

如上的,其中,对于升级文件数据较大时的情况,当升级文件数据全部存储在终端设备中之后,升级平台服务器对全部升级文件数据进行摘要运算,将总摘要值以及升级完成命令发送至终端设备,终端设备接收到升级完成命令后,对存储的全部升级文件数据进行摘要运算,若判断得到的摘要值与解密得到的摘要值相同,则验证成功。

如上的,其中,存储升级文件数据后还包括修改boot程序引导参数区中用户程序的起始地址为本次升级文件数据的起始地址,然后通过软件方式复位设备;设备复位后,首先运行boot程序,boot程序读取引导参数区用户程序起始地址,然后跳转至新的用户程序运行,至此完成设备程序远程升级流程。

如上的,其中,密钥中心系统根据预置的终端公钥标识导入终端公钥数据,具体包括如下子步骤:终端设备生成第一随机数,根据第一随机数生成第一数据,将第一数据和终端公钥标识传回至密钥中心系统;密钥中心系统生成第二随机数,根据第二随机数计算第二数据,然后与接收到的第一数据生成终端部分公钥;根据终端公钥标识、sm2密钥标识、公钥有效期和终端部分公钥组织生成终端公钥数据;将终端公钥数据发送给终端设备进行存储。

如上的,其中,终端设备中终端私钥的生成包括如下子步骤:密钥中心系统根据终端公钥标识以及终端部分公钥计算终端部分私钥,将终端部分私钥发送给终端设备;终端设备根据接收到的终端部分私钥和第一随机数生成终端私钥,存储终端私钥。

如上的,其中,终端设备中预置终端公钥标识,具体为:生产工具读取终端设备内的唯一序列号,使用主密钥对序列号进行处理,得到终端公钥标识,将终端公钥标识发送至终端设备进行存储。

如上的,其中,终端设备除预置终端公钥标识外,还包括预置用于生成终端公钥数据的sm2密钥标识,具体包括如下子步骤:密钥中心系统获取当前使用的sm2密钥标识发送给生产工具;生产工具将密钥中心系统的sm2密钥标识发送至终端设备进行存储。

本申请实现的有益效果如下:采用本申请的技术方案,在存储容易小、低传输率的设备上采用无证书认证机制进行远程程序升级,在保护程序数据不泄露、不篡改的安全前提下,可有效提高下载速度,降低设备内实际用户数据占用率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为终端设备在生产环境下下载设备公钥数据的方法流程图;

图2为终端设备预置终端公钥标识的方法流程图;

图3为密钥中心系统生成终端公钥数据的方法流程图;

图4为终端设备进行远程升级的方法流程图;

图5为升级平台服务器生成终端公钥的方法流程图。

具体实施方式

下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请提供一种设备远程升级方法,设备间认证方法采用无证书体系的自认证方法来认证对方身份合法性,既可以实现非对称算法,同时该方法数据量很小,一般在100字节以内,从而在存储量小、低数据传输率场景占有很大优势。

优选的,本申请使用基于sm2的无证书自认证系统方法。设置一个密钥中心系统,用于完成公私钥对的生成,由密钥中心系统保存私钥且严格保密,公钥对外公布。预先约定所有设备与设备升级平台都必须信任该中心系统以及它生成的公钥。约定公私钥对的关系为pi=kig,其中,p为密钥中心公钥(p1,p2,…,pn);k为密钥中心私钥(k1,k2,…kn);g为椭圆曲线ep上的一个基点;n为基点的阶。

实施例一

本申请实施例一提供的是终端设备在生产环境下下载设备公钥数据的流程,应用于生产工具、密钥中心系统和终端设备组成的系统中,如图1所示:

步骤11:终端设备预置终端公钥标识;

具体的,如图2所示,本步骤具体包括如下子步骤:

步骤21:生产工具向密钥中心系统请求sm2公私钥对以及基点g数据。

步骤22:密钥中心系统将当前使用的sm2公钥标识与g数据发送给请求方(即生产工具);

步骤23:生产工具读取终端设备内的唯一序列号,使用生产工具主密钥对序列号进行处理,得到终端公钥标识;

预先约定生产工具与升级平台拥有一个相同的主密钥,使用该主密钥对终端标识进行对称加密;

可选的,例如,终端标识为16字节的唯一序列号,将终端标识的前8个字节作为d1,后8个字节作为d2,使用主密钥对d1和d2分别进行对称加密,即k1=3des_enc(s1,d1);k2=3des_enc(s1,d2);对k1、k2以及密钥中心系统sm2密钥标识d3进行加密,将加密结果作为终端公钥标识id,即,id=3des_enc(k1+k2,d3)。

步骤24:生产工具将终端公钥标识和密钥中心系统的sm2密钥标识以及g数据发送至终端设备;

其中,密钥中心系统的sm2密钥标识以及g数据作为个人化数据终端设备写入终端设备存储区中。

步骤25:终端设备存储终端公钥标识、sm2密钥标识和g数据。

上述流程为生产工具向一个终端设备导入终端公钥标识以及密钥中心系统的公钥数据的具体操作,多个终端设备的导入与此相同。

继续参见图1,步骤12:密钥中心系统根据终端公钥标识生成终端公钥数据,将终端公钥数据导入终端设备;

参见图3,密钥中心系统生成终端公钥数据,具体包括如下子步骤:

步骤31:终端设备生成第一随机数,根据g数据和第一随机数生成第一数据,将第一数据和终端公钥标识传回至密钥中心系统;

终端设备生成第一数据的计算方式为:

r1=r1g……公式(1)

其中,生产设备读取终端公钥标识id,r1为生成的第一随机数,g为椭圆曲线上的一个基点,计算得到的r1为第一数据,将(r1,id)传回至密钥中心系统。

步骤32:密钥中心系统生成第二随机数,根据第二随机数计算得到第二数据,然后与接收到的第一数据生成当前终端公钥标识对应的终端部分公钥;

密钥中心系统生成部分公钥具体包括如下子步骤:

通过计算r2=r2g,得到第二数据r2,其中r2为密钥中心生成的第二随机数,g为椭圆曲线上的一个基点;

通过计算r=r1+r2,得到终端部分公钥r,其中,r1为第一数据,r2为第二数据。

步骤33:密钥中心系统根据终端公钥标识以及对应的终端部分公钥计算终端部分私钥;

密钥中心系统生产终端部分私钥具体包括如下子步骤:

根据终端公钥标识id以及对应的终端部分公钥r,标识向量映射,该映射设置为公开数据,记为:h(id||r)=(a1,a2,……an);

再根据该标识向量映射、以及第二随机数和密钥中心私钥计算生成终端部分私钥;

具体为:计算d1=r2+a1k1+a2k2+……+ankn(modn),其中,r2为第二随机数,a1~an为id||r到标识向量的映射,k1~kn为密钥中心私钥。

步骤34:密钥中心系统根据终端公钥标识、sm2密钥标识、公钥有效期和终端部分公钥组织生成终端公钥数据;

密钥中心系统按照格式组织终端公钥数据dq:设备公钥标识id||sm2密钥标识sid||公钥有效期date||终端部分公钥r;作为举例,各个字段参考长度为(单位:字节):id=18,sid=2,date=7,r=32,共计59字节,远远小于证书长度;

密钥中心系统将该终端公钥数据进行存储,为升级平台周期性提供终端公钥数据方便升级平台进行同步更新。

步骤35:密钥中心系统将终端部分私钥和终端公钥数据发送给终端设备。

步骤36:终端设备根据接收到的终端部分私钥和第一随机数生成终端私钥,存储终端私钥和终端公钥数据;

终端设备通过计算d=r1+d1(modn),得到当前终端公钥标识id对应的终端私钥。

本申请中,终端设备不需要存储数据量在1k~3k的公钥证书,只需要存储59字节的终端公钥数据,减少了数据的存储,提高了数据传输的速度。

实施例二

本申请实施例二基于实施例一的无证书体系,提供了一种设备远程升级方法,如图4所示,包括:升级平台服务端周期性的请求同步密钥中心系统中各个公钥信息。当需要对某一在密钥中心系统注册的终端设备进行远程升级时,执行如下操作:

步骤41:升级平台服务器根据终端公钥数据计算终端公钥;

参见图5,升级平台服务器生成终端公钥,具体包括如下子步骤:

步骤51:升级平台服务器读取并验证终端公钥数据是否合法,如果是,则执行步骤52,否则返回错误响应;

其中,验证终端公钥数据是否合法包括验证终端公钥数据中的终端公钥标识是否正确以及验证终端公钥数据中的公钥有效期是否合法;

具体的,验证终端公钥标识是否正确的方法与步骤23中计算终端公钥标识的方法相同,判断计算出的终端公钥标识与终端公钥数据中的终端公钥标识是否相同,如果是,则终端公钥标识正确;并且判断终端公钥数据中的公钥有效期是否有合法有效期内,如果是,则终端公钥数据合法。

步骤52:升级平台服务器从终端公钥数据中获取终端公钥标识和sm2密钥标识;

例如,对应实施例一的示例,终端公钥数据dq中前18字节为终端公钥标识id、接下来2个字节为sm2密钥标识,最后32字节为终端部分公钥r。

步骤53:升级平台服务器根据sm2密钥标识查找公开的密钥中心公钥,以及根据终端公钥标识查找公开的标识向量映射;

步骤54:升级平台服务器根据终端部分公钥、密钥中心公钥和标识向量映射,计算得到终端公钥;

升级平台服务器通过计算q=r+(a1p1+a2p2+……+anpn),得到终端公钥q;其中,r为终端部分公钥、标识向量映射为h(id||r)=(a1,a2,……an)、p为密钥中心公钥(p1,p2,…,pn)。

返回参见图4,步骤42:升级平台服务器使用终端公钥对升级文件数据进行处理,将处理结果返回终端设备;

具体的,升级平台服务器读取升级文件数据,对升级文件数据进行摘要运算,得到摘要值,将摘要值与升级文件数据进行拼接,使用终端公钥对拼接结果进行加密运算,得到加密结果,将加密结果返回终端设备。

步骤43:终端设备使用终端私钥对处理结果进行验证,若验证成功,则存储升级文件数据,否则返回错误响应。

具体的,终端设备使用内置的终端私钥对加密结果进行解密,得到升级文件数据和摘要值,对升级文件数据进行摘要运算,判断得到的摘要值与解密得到的摘要值是否相同,如果是,则存储升级文件数据,否则返回错误响应。

进一步的,终端设备在判断计算得到的摘要值与解密得到的摘要值相同时,还包括将计算得到的摘要值或者解密得到的摘要值发送至升级平台服务器,升级平台服务器判决来自终端设备的摘要值与平台计算得到的摘要值是否相同,若相同,则继续进行升级操作,否则向终端设备返回错误响应,退出升级流程。

在步骤42和步骤43中,若对于升级文件数据较大时的情况,采用分包发送的方式时,则重复执行步骤42和步骤43,直至升级文件数据全部存储在终端设备中,之后,升级平台服务器对全部升级文件数据进行摘要运算,将总摘要值以及升级完成命令发送至终端设备,终端设备接收到升级完成命令后,对存储的全部升级文件数据进行摘要运算,判断计算得到的摘要值与接收到的总摘要值是否相同,若相同,则修改boot程序引导参数区中用户程序的起始地址为本次升级文件数据的起始地址,然后通过软件方式复位设备;设备复位后,首先运行boot程序,boot程序读取引导参数区用户程序起始地址,然后跳转至新的用户程序运行。至此完成设备程序远程升级流程。

本申请实现的有益效果如下:采用本申请的技术方案,在存储容易小、低传输率的设备上采用无证书认证机制进行远程程序升级,在保护程序数据不泄露、不篡改的安全前提下,可有效提高下载速度,降低设备内实际用户数据占用率。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1