一种操作系统更新方法及装置
技术领域
本申请涉及软件领域,特别涉及一种操作系统更新方法及装置。
背景技术
eSE(嵌入式安全元件,embedded Secure Element)、eSIM(嵌入式用户身份鉴别模块,embedded Subscriber Identification Module)、eUICC(嵌入式通用集成电路卡,Embedded Universal Integrated Circuit Card)是一种专为机器用设计的产品,具备普通SE(安全元件,Secure Element)、SIM(用户身份鉴别模块,Subscriber IdentificationModule)、UICC(通用集成电路卡,Universal Integrated Circuit Card)的全部功能。此类产品直接焊接在设备终端主板模组上,实现紧密牢固的物理连接和可靠的接口通信,能够应付大多数恶劣的环境;体积小,可以安装在绝大多数终端内,摒弃了传统的SIM卡槽,满足现今产品集成度越来越高的需求,节约成本;材料特殊,可以应对高温高湿环境;直接焊接,可以避免磨损引起的触点接触不良,起到很好的防抖作用。此类产品的上述优点,使其在NFC、M2M中,有着非常广泛的应用前景。
同时,eSE、eSIM、eUICC此类产品的缺点也很明显,即:嵌入设备后,无法被更换。如果此类产品出现安全、功能漏洞,会因无法被更换而导致无法升级修复,因此目前亟需一种更新方法,解决此类产品出现安全、功能漏洞时无法升级修复的问题。
发明内容
为解决上述技术问题,本申请实施例提供一种操作系统更新方法及装置,以达到实现芯片操作系统的更新,解决eSE、eSIM、eUICC此类产品出现安全、功能漏洞时无法升级修复的问题的目的,技术方案如下:
一种操作系统更新方法,应用于待更新芯片,所述方法包括:
从多条逻辑通道中选取一条逻辑通道作为安全传输通道;
在所述安全传输通道上与服务器建立安全会话,生成会话密钥;
从所述安全传输通道上接收所述服务器下发的加密后的数据,所述加密后的数据至少包括加密后的待使用芯片操作系统,所述加密后的待使用芯片操作系统由所述会话密钥加密而成;
对所述加密后的数据进行解密,并将解密后的待使用芯片操作系统存储至指定存储区域;
校验所述解密后的待使用芯片操作系统是否完整;
若校验结果为所述解密后的待使用芯片操作系统完整,则将当前的芯片操作系统替换为所述解密后的待使用芯片操作系统;
若校验结果为所述解密后的待使用芯片操作系统不完整,则返回执行在所述安全传输通道上与服务器建立安全会话,生成会话密钥的步骤,直至得到完整的解密后的待使用芯片操作系统。
一种操作系统更新方法,应用于服务器,所述方法包括:
在安全传输通道上与待更新芯片建立安全会话,生成会话密钥;
使用所述会话密钥对待传输数据进行加密,得到加密后的数据,所述加密后的数据至少包括加密后的待使用芯片操作系统;
在所述安全传输通道上下发所述加密后的数据,以使所述待更新芯片执行下载更新过程;
所述下载更新过程包括:
从所述安全传输通道上接收所述服务器下发的加密后的数据,所述加密后的数据至少包括加密后的待使用芯片操作系统;
对所述加密后的数据进行解密,并将解密后的待使用芯片操作系统存储至指定存储区域,所述加密后的待使用芯片操作系统由所述会话密钥加密而成;
校验所述解密后的待使用芯片操作系统是否完整;
若校验结果为所述解密后的待使用芯片操作系统完整,则将当前的芯片操作系统替换为所述解密后的待使用芯片操作系统;
若校验结果为所述解密后的待使用芯片操作系统不完整,则返回执行在所述安全传输通道上与服务器建立安全会话,生成会话密钥的步骤,直至得到完整的解密后的待使用芯片操作系统。
一种操作系统更新装置,应用于待更新芯片,所述装置包括:
选取模块,用于从多条逻辑通道中选取一条逻辑通道作为安全传输通道;
芯片侧生成模块,用于在所述安全传输通道上与服务器建立安全会话,生成会话密钥;
接收模块,用于从所述安全传输通道上接收所述服务器下发的加密后的数据,所述加密后的数据至少包括加密后的待使用芯片操作系统,所述加密后的待使用芯片操作系统由所述会话密钥加密而成;
解密模块,用于对所述加密后的数据进行解密;
存储模块,用于将解密后的待使用芯片操作系统存储至指定存储区域;
校验模块,用于校验所述解密后的待使用芯片操作系统是否完整,若校验结果为所述解密后的待使用芯片操作系统完整,则执行替换模块将当前的芯片操作系统替换为所述解密后的待使用芯片操作系统,若校验结果为所述解密后的待使用芯片操作系统不完整,则返回执行芯片侧生成模块,直至得到完整的解密后的待使用芯片操作系统。
一种操作系统更新装置,应用于服务器,所述装置包括:
服务器侧生成模块,用于在安全传输通道上与待更新芯片建立安全会话,生成会话密钥;
加密模块,用于使用所述会话密钥对待传输数据进行加密,得到加密后的数据,所述加密后的数据至少包括加密后的待使用芯片操作系统;
下发模块,用于在所述安全传输通道上下发所述加密后的数据,以使所述待更新芯片执行下载更新过程;
所述下载更新过程包括:
从所述安全传输通道上接收所述服务器下发的加密后的数据,所述加密后的数据至少包括加密后的待使用芯片操作系统;
对所述加密后的数据进行解密,并将解密后的待使用芯片操作系统存储至指定存储区域,所述加密后的待使用芯片操作系统由所述会话密钥加密而成;
校验所述解密后的待使用芯片操作系统是否完整;
若校验结果为所述解密后的待使用芯片操作系统完整,则将当前的芯片操作系统替换为所述解密后的待使用芯片操作系统;
若校验结果为所述解密后的待使用芯片操作系统不完整,则返回执行在所述安全传输通道上与服务器建立安全会话,生成会话密钥的步骤,直至得到完整的解密后的待使用芯片操作系统。
与现有技术相比,本申请的有益效果为:
在本申请中,由芯片从多条逻辑通道中选取一条逻辑通道作为安全传输通道;在所述安全传输通道上与服务器建立安全会话,生成会话密钥;从所述安全传输通道上接收服务器下发的加密后的待使用芯片操作系统,对其进行解密,并将解密后的待使用芯片操作系统存储至指定存储区域;校验所述解密后的待使用芯片操作系统是否完整;若校验结果为所述解密后的待使用芯片操作系统完整,则将当前的芯片操作系统替换为所述解密后的待使用芯片操作系统,实现芯片操作系统的更新,解决eSE、eSIM、eUICC此类产品出现安全、功能漏洞时无法升级修复的问题。
进一步的,基于多逻辑通道设计,即芯片通过从多条逻辑通道中选取一条逻辑通道作为安全传输通道,由安全传输通道处理新的芯片操作系统的下载过程,其他逻辑通道维持正常业务,使整个更新过程接近无缝衔接,提升用户的体验性。
以及,在基于多逻辑通道设计的基础上,基于安全会话来完成新的芯片操作系统的下载更新过程,提高了更新的安全性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的操作系统更新方法的一种流程图;
图2是本申请提供的操作系统更新方法的一种子流程图;
图3是本申请提供的操作系统更新方法的另一种子流程图;
图4是本申请提供的操作系统更新方法的再一种子流程图;
图5是本申请提供的操作系统更新方法的再一种子流程图;
图6是本申请提供的芯片操作系统的一种存储区域示意图;
图7是本申请提供的芯片操作系统的一种更新示意图;
图8是本申请提供的操作系统更新方法的另一种流程图;
图9是本申请提供的操作系统更新方法的再一种流程图;
图10是本申请提供的操作系统更新方法的再一种子流程图;
图11是本申请提供的操作系统更新方法的再一种子流程图;
图12是本申请提供的操作系统更新方法的再一种子流程图;
图13是本申请提供的操作系统更新方法的再一种流程图;
图14是本申请提供的操作系统更新装置的一种逻辑结构示意图;
图15是本申请提供的操作系统更新装置的另一种逻辑结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
请参见图1,其示出了本申请提供的操作系统更新方法的一种流程图,其中,本实施例是从待更新芯片的角度阐述操作系统更新方法的具体过程,可以包括以下步骤:
步骤S11:从多条逻辑通道中选取一条逻辑通道作为安全传输通道。
待更新芯片支持多个逻辑通道功能,可以在不同逻辑通道上处理不同的业务,使得待更新芯片在维持现有业务的同时,能够下载新的芯片操作系统。
安全传输通道后续用于加密传输数据(如新的芯片操作系统),其他逻辑通道用以维持正常业务。
步骤S12:在所述安全传输通道上与服务器建立安全会话,生成会话密钥。
待更新芯片在安全传输通道上与服务器建立安全会话,待更新芯片和服务器均生成会话密钥,且生成的会话密钥相同。待更新芯片和服务器之间后续进行数据传输时,则可以基于双方约定的算法和相同的会话密钥对数据进行加密传输。
步骤S13:从所述安全传输通道上接收所述服务器下发的加密后的数据,所述加密后的数据至少包括加密后的待使用芯片操作系统,所述加密后的待使用芯片操作系统由所述会话密钥加密而成。
在本实施例中,服务器可以直接下发加密后的数据至待更新芯片,待更新芯片直接在安全传输通道上接收服务器下发的加密后的数据。
在所述加密后的数据只包括加密后的待使用芯片操作系统时,待更新芯片只需要更新芯片操作系统,而无需更新其他数据,可以减少更新量,提高更新效率。
所述加密后的待使用芯片操作系统由所述会话密钥加密而成,具体可以为了保证数据传输效率,使用安全性和强度相对较高的对称算法(如,AES、SM4)及会话密钥对待使用芯片操作系统进行加密,同时采用CMAC方式来保证数据传输的完整性。
步骤S14:对所述加密后的数据进行解密,并将解密后的待使用芯片操作系统存储至指定存储区域。
步骤S15:校验所述解密后的待使用芯片操作系统是否完整。
若是,则执行步骤S16,若否,则返回执行步骤S12,直至得到完整的解密后的待使用芯片操作系统。
步骤S16:将当前的芯片操作系统替换为所述解密后的待使用芯片操作系统。
在本实施例中,当前的芯片操作系统替换为所述解密后的待使用芯片操作系统具体可以但不局限于为:将所述待更新芯片的启动加载地址由所述当前的芯片操作系统的存储区域中的启动加载地址修改为所述解密后的待使用芯片操作系统的存储区域中的启动加载地址。
其中,将当前的芯片操作系统替换为所述解密后的待使用芯片操作系统的具体方式限定为将所述待更新芯片的启动加载地址由所述当前的芯片操作系统的存储区域中的启动加载地址修改为所述解密后的待使用芯片操作系统的存储区域中的启动加载地址,由于只需切换芯片启动加载地址,因此大大简化了切换过程,加快了更新过程。
将当前的芯片操作系统替换为所述解密后的待使用芯片操作系统后,原有芯片操作系统所在存储区域空间释放,供下次芯片操作系统更新复用。
在本实施例中,图1示出的操作系统更新方法可以集成到待更新芯片的原有芯片操作系统中,由待更新芯片的原有芯片操作系统执行图1示出的操作系统更新方法。
在本申请中,由芯片从多条逻辑通道中选取一条逻辑通道作为安全传输通道;在所述安全传输通道上与服务器建立安全会话,生成会话密钥;从所述安全传输通道上接收服务器下发的加密后的待使用芯片操作系统,对其进行解密,并将解密后的待使用芯片操作系统存储至指定存储区域;校验所述解密后的待使用芯片操作系统是否完整;若校验结果为所述解密后的待使用芯片操作系统完整,则将当前的芯片操作系统替换为所述解密后的待使用芯片操作系统,实现芯片操作系统的更新,解决eSE、eSIM、eUICC此类产品出现安全、功能漏洞时无法升级修复的问题。
进一步的,基于多逻辑通道设计,即芯片通过从多条逻辑通道中选取一条逻辑通道作为安全传输通道,由安全传输通道处理新的芯片操作系统的下载过程,其他逻辑通道维持正常业务,使整个更新过程接近无缝衔接,提升用户的体验性。
以及,在基于多逻辑通道设计的基础上,基于安全会话来完成新的芯片操作系统的下载更新过程,提高了更新的安全性。
在本实施例中,在所述安全传输通道上与服务器建立安全会话,生成会话密钥的具体过程可以参见图2,可以包括以下步骤:
步骤S21:发送芯片侧静态公钥证书至所述服务器。
服务器和待更新芯片各预置静态私钥和静态公钥证书。静态私钥和静态公钥证书可以存储于待更新芯片中不受芯片操作系统更新影响的固定区域,也可以与芯片操作系统绑定一起更新。
步骤S22:接收并存储所述服务器发送的服务器侧静态公钥证书。
待更新芯片接收并验证服务器侧静态公钥证书合法性,如果验证通过,存储服务器侧静态公钥证书。
步骤S23:接收并存储所述服务器发送的服务器侧临时公钥。
服务器侧临时公钥由服务器随机产生。
步骤S24:生成芯片侧临时公私钥对。
待更新芯片随机生成芯片侧临时公私钥对。
步骤S25:基于所述服务器侧临时公钥和所述芯片侧临时公私钥对中的芯片侧临时私钥,生成芯片侧临时共享密文。
步骤S26:基于所述服务器侧静态公钥证书中的服务器侧静态公钥和芯片侧静态私钥,生成芯片侧静态共享密文。
步骤S27:根据所述芯片侧临时共享密文和所述芯片侧静态共享密文,生成会话密钥。
步骤S28:基于服务器侧数据和芯片侧数据,使用所述会话密钥进行MAC计算,生成收条。
服务器侧数据具体可以为服务器侧临时公钥,芯片侧数据具体可以为会话密钥分散计数器或分散随机数。
步骤S29:发送所述芯片侧数据、所述收条和所述芯片侧临时公私钥对中的芯片侧临时公钥至所述服务器,以使所述服务器基于所述芯片侧临时公钥和服务器侧临时私钥,生成服务器侧临时共享密文,基于所述芯片侧静态公钥证书中的芯片侧静态公钥和服务器侧静态私钥,生成服务器侧静态共享密文,并根据所述服务器侧临时共享密文和所述服务器侧静态共享密文,生成会话密钥,并基于所述服务器侧数据和所述芯片侧数据,使用生成的会话密钥验证所述收条。
在本实施例中,服务器侧临时共享密文和芯片侧临时共享密文相同,服务器侧静态共享密文和芯片侧静态共享密文相同,在此基础上,基于相同的算法,服务器生成的会话密钥和待更新芯片生成的会话密钥相同。
其中,服务器和待更新芯片生成的相同的会话密钥由双方协商得到的,并没有直接在双方之间传输,避免了直接泄露的可能性。
服务器侧临时共享密文和芯片侧临时共享密文生成的具体过程可以为:
服务器生成临时公私钥对:生成随机数a,作为服务器侧临时私钥,计算A=a*G作为服务器侧临时公钥,G为椭圆曲线基点;
待更新芯片生成临时公私钥对:生成随机数b,作为芯片侧临时私钥,计算B=b*G作为芯片侧临时公钥,G为椭圆曲线基点。
服务器和待更新芯片将彼此的临时公钥公开传递给对方。虽然攻击者可以获取到A、B,但是根据A、G是无法计算出a,同样根据B、G是无法计算出b的。
服务器计算服务器侧临时共享密文:Q=a*B=a*b*G;待更新芯片计算芯片侧临时共享密文:Q=b*A=b*a*G;这2个Q是相等的,也就是服务器和待更新芯片生成了相同的临时共享密文。
服务器侧静态共享密文和芯片侧静态共享密文生成的具体原理与服务器侧临时共享密文和芯片侧临时共享密文的原理相同,因此服务器侧静态共享密文和芯片侧静态共享密文生成的具体过程可以参见服务器侧临时共享密文和芯片侧临时共享密文的具体过程,在此不再赘述。
其中,因为服务器侧临时公私钥和芯片侧临时公私钥随机生成,服务器侧临时共享密文和芯片侧临时共享密文也随之改变,因此可以保证每次重新建立安全会话时的会话密钥的临时性,提高数据传输的安全性。
基于上述过程,根据所述芯片侧临时共享密文和所述芯片侧静态共享密文,生成会话密钥的具体过程可以参见图3,可以包括以下步骤:
步骤S31:对所述芯片侧临时共享密文和所述芯片侧静态共享密文进行组合,得到组合密文。
步骤S32:添加预设字节数的计数器或分散随机数至所述组合密文。
步骤S33:使用杂凑算法对添加有预设字节数的计数器或分散随机数的组合密文进行摘要计算,得到摘要结果。
杂凑算法可以是SHA1、SHA256等。
步骤S34:对所述摘要结果进行截取或拼凑,得到所述会话密钥。
现举例对所述摘要结果进行截取或拼凑,得到所述会话密钥,比如:
现举例对步骤S31至步骤S34示出的过程进行说明,例如,对所述芯片侧临时共享密文和所述芯片侧静态共享密文进行组合,得到组合密文(芯片侧静态共享密文||芯片侧临时共享密文),添加有预设字节数的计数器的组合密文即(芯片侧静态共享密文||芯片侧临时共享密文||Counter),使用SHA1算法对(芯片侧静态共享密文||芯片侧临时共享密文||Counter)进行摘要计算,得到摘要结果(静态共享密文||临时共享密文||Counter)SHA1,得到20字节摘要,假如现在所需会话密钥为16字节,截取20字节的前16字节作为会话密钥即可。
在本实施例中,提供了一种不同于图2示出在所述安全传输通道上与服务器建立安全会话,生成会话密钥的具体过程,请参见图4,在所述安全传输通道上与服务器建立安全会话,生成会话密钥的具体过程可以为:
步骤S41:接收所述服务器发送的第一随机数。
步骤S42:生成第二随机数。
步骤S43:基于指定静态密钥和规则,生成芯片侧会话密钥。
步骤S44:基于所述第一随机数和所述第二随机数,使用所述会话密钥计算芯片侧密文。
步骤S45:发送所述第二随机数和所述芯片侧密文至所述服务器,以使所述服务器基于所述指定静态密钥和规则,生成服务器侧会话密钥,并基于所述第一随机数和所述第二随机数,使用所述服务器侧会话密钥验证所述芯片侧密文,并基于所述第一随机数和所述第二随机数,使用所述服务器侧会话密钥生成服务器侧密文,并发送所述服务器侧密文至所述待更新芯片。
步骤S46:接收所述服务器侧密文。
步骤S47:基于所述第一随机数和第二随机数,使用所述芯片侧会话密钥验证所述服务器侧密文。
步骤S48:在验证所述服务器侧密文合法的情况下,确定所述服务器侧会话密钥和所述芯片侧会话密钥为相同的会话密钥,并指示所述服务器和所述待更新芯片使用相同的会话密钥对待传输数据进行加密。
图4示出的在所述安全传输通道上与服务器建立安全会话,生成会话密钥的具体过程相比于图2示出的在所述安全传输通道上与服务器建立安全会话,生成会话密钥的具体过程,实现相对简单,建立安全会话过程较快,但是安全性相对较低。
在上述方法过程中,不同于服务器直接下发加密后的数据至待更新芯片,待更新芯片直接在安全传输通道上接收服务器下发的加密后的数据的方式,提供了另外一种从所述安全传输通道上接收所述服务器下发的加密后的待使用芯片操作系统的方式,请参见图5,可以包括以下步骤:
步骤S51:与终端建立安全会话。
服务器可以先将加密后的数据下发至终端,然后由待更新芯片与终端建立安全会话。
步骤S52:基于与终端建立的安全会话,接收所述终端以多次分发的方式发送的加密后的待使用芯片操作系统,所述终端发送的加密后的待使用芯片操作系统从所述安全传输通道上接收。
图5示出的接收过程的优点在于:芯片操作系统的数据量对于终端与服务器来说,很小,基本上一次性就能下发完成,而无需多次分发,可以避免网络端,因多次分发而产生的数据丢包情况。
在上述方法过程中,指定存储区域仅用于存储所述解密后的待使用芯片操作系统。
指定存储区域仅用于存储所述解密后的待使用芯片操作系统,说明解密后的待使用芯片操作系统单独存储在指定存储区域中,与其他数据(如应用、个人化数据等)分离存储,使得其他数据在芯片操作系统更新过程中可以保持不变,应用、个人化数据无需重复下载,降低了新的芯片操作系统的更新数据量和芯片的系统开销,加快了整个更新过程。
解密后的待使用芯片操作系统单独存储在指定存储区域中,与其他数据(如应用、个人化数据等)分离存储的示意图可以参见图6,如图6所示,NVM3区域存储除芯片操作系统之外的数据;NVM1区域存储原有的芯片操作系统;NVM2区域存储待使用芯片操作系统。当切换系统时,芯片启动加载地址从NVM1切换到NVM2,此时NVM1区域空间释放。
当然,所述指定存储区域也可以用于存储所述解密后的待使用芯片操作系统和其他数据。即解密后的待使用芯片操作系统和其他数据存储在同一个存储区域中。
在本实施例中,上述加密后的数据还可以包括:除所述加密后的待使用芯片操作系统之外的其他加密数据。即待更新芯片连同待使用芯片操作系统和除待使用芯片操作系统之外的其他数据一起更新,不需要芯片操作系统和其他数据分离设计,实现起来相对简单。
待更新芯片连同待使用芯片操作系统和除待使用芯片操作系统之外的其他数据一起更新的示意图可以参见图7,原有芯片操作系统和除芯片操作系统之外的其他数据存储在NVM1区域中,在进行更新后,新的芯片操作系统和除芯片操作系统之外的其他数据更新至NVM2区域中,当切换系统时,芯片启动加载地址从NVM1切换到NVM2,此时NVM1区域空间释放。
在本实施例中,在图1示出的操作系统更新方法的基础上扩展出另外一种操作系统更新方法,请参见图8,将当前的芯片操作系统替换为所述解密后的待使用芯片操作系统之前还包括以下步骤:
步骤S17:呈现芯片操作系统更新提醒信息。
在本实施例中,服务器会发送芯片操作系统更新提醒信息至待更新芯片所属终端,由终端或待更新芯片呈现芯片操作系统更新提醒信息,提示用户是否进行更新。
步骤S18:判断是否接收到更新请求。
若接收到更新请求,说明用户选择更新,则响应更新请求,执行步骤S16,若未接收到更新请求,说明用户未选择更新,则返回执行步骤S17,继续找下一个时机呈现芯片操作系统更新提醒信息,如:隔段时间提醒;用户在终端中打开某个UI界面时提醒;用户主动查询时提醒等。
实施例二
请参见图9,其示出了本申请提供的操作系统更新方法的一种流程图,其中,本实施例是从服务器的角度阐述操作系统更新方法的具体过程,可以包括以下步骤:
步骤S91:在安全传输通道上与待更新芯片建立安全会话,生成会话密钥。
步骤S92:使用所述会话密钥对待传输数据进行加密,得到加密后的数据,所述加密后的数据至少包括加密后的待使用芯片操作系统;
步骤S93:在所述安全传输通道上下发所述加密后的数据,以使所述待更新芯片执行下载更新过程。
所述下载更新过程包括:
从所述安全传输通道上接收所述服务器下发的加密后的数据,所述加密后的数据至少包括加密后的待使用芯片操作系统;
对所述加密后的数据进行解密,并将解密后的待使用芯片操作系统存储至指定存储区域,所述加密后的待使用芯片操作系统由所述会话密钥加密而成;
校验所述解密后的待使用芯片操作系统是否完整;
若校验结果为所述解密后的待使用芯片操作系统完整,则将当前的芯片操作系统替换为所述解密后的待使用芯片操作系统;
若校验结果为所述解密后的待使用芯片操作系统不完整,则返回执行在所述安全传输通道上与服务器建立安全会话,生成会话密钥的步骤,直至得到完整的解密后的待使用芯片操作系统。
在本实施例中,所述加密后的数据还包括:除所述加密后的待使用芯片操作系统之外的其他加密数据。
在本实施例中,在安全传输通道上与待更新芯片建立安全会话,生成会话密钥的过程可以参见图10,可以包括以下步骤:
步骤S101:获取所述待更新芯片的芯片侧静态公钥证书。
步骤S102:发送服务器侧静态公钥证书至所述待更新芯片。
步骤S103:生成服务器侧临时公私钥对。
步骤S104:发送所述服务器侧临时公私钥对中的服务器侧临时公钥至所述待更新芯片,以使所述待更新芯片接收所述服务器发送的服务器侧临时公钥,生成芯片侧临时公私钥对,基于所述服务器侧临时公钥和所述芯片侧临时公私钥对中的芯片侧临时私钥,生成芯片侧临时共享密文,基于所述服务器侧静态公钥证书中的服务器侧静态公钥和芯片侧静态私钥,生成芯片侧静态共享密文,根据所述芯片侧临时共享密文和所述芯片侧静态共享密文,生成会话密钥,并基于服务器侧数据和芯片侧数据,使用所述会话密钥进行MAC计算,生成收条。
步骤S105:接收所述芯片侧数据、所述收条和所述芯片侧临时公私钥对中的芯片侧临时公钥。
步骤S106:基于所述芯片侧临时公钥和服务器侧临时私钥,生成服务器侧临时共享密文。
步骤S107:基于所述芯片侧静态公钥证书中的芯片侧静态公钥和服务器侧静态私钥,生成服务器侧静态共享密文。
步骤S108:根据所述服务器侧临时共享密文和所述服务器侧静态共享密文,生成会话密钥,并基于所述服务器侧数据和所述芯片侧数据,使用生成的会话密钥验证所述收条。
步骤S101至步骤S108所涉及的具体执行过程及原理请参见图2示出的具体执行过程及原理,在此不再赘述。
在本实施例中,根据所述服务器侧临时共享密文和所述服务器侧静态共享密文,生成会话密钥的具体过程可以参见图11,可以包括以下步骤:
步骤S111:对所述服务器侧临时共享密文和所述服务器侧静态共享密文进行组合,得到组合密文。
步骤S112:添加预设字节数的计数器或分散随机数至所述组合密文。
步骤S113:使用杂凑算法对添加有预设字节数的计数器或分散随机数的组合密文进行摘要计算,得到摘要结果。
步骤S114:对所述摘要结果进行截取或拼凑,得到所述会话密钥。
在本实施例中,示出了另外一种在安全传输通道上与待更新芯片建立安全会话,生成会话密钥的具体过程,可以参见图12,可以包括以下步骤:
步骤S121:生成第一随机数。
发送所述第一随机数至所述待更新芯片,以使所述待更新芯片生成第二随机数,基于指定静态密钥和规则,生成芯片侧会话密钥,基于所述第一随机数和所述第二随机数,使用所述会话密钥计算芯片侧密文,发送所述第二随机数和所述芯片侧密文至所述服务器。
步骤S122:基于所述指定静态密钥和规则,生成服务器侧会话密钥。
步骤S123:基于所述第一随机数和所述第二随机数,使用所述服务器侧会话密钥验证所述芯片侧密文。
步骤S124:并基于所述第一随机数和所述第二随机数,使用所述服务器侧会话密钥生成服务器侧密文。
步骤S125:发送所述服务器侧密文至所述待更新芯片,以使所述待更新芯片接收所述服务器侧密文,基于所述第一随机数和第二随机数,使用所述芯片侧会话密钥验证所述服务器侧密文,在验证所述服务器侧密文合法的情况下,确定所述服务器侧会话密钥和所述芯片侧会话密钥为相同的会话密钥,并指示所述服务器和所述待更新芯片使用相同的会话密钥对待传输数据进行加密。
在本实施例中,在图9示出的操作系统更新方法的基础上扩展出另外一种操作系统更新方法,请参见图13,在所述安全传输通道上下发所述加密后的数据,以使所述待更新芯片执行下载更新过程之后,还可以包括:
步骤S94:接收所述待更新芯片发送的解密后的待使用芯片操作系统完整的校验结果,并发送芯片操作系统更新提醒信息至所述待更新芯片所属终端。
由待更新芯片所属终端呈现芯片操作系统更新提醒信息,提示用户是否进行更新。
实施例三
与方法实施例一相对应,本实施例提供了一种操作系统更新装置,应用于待更新芯片,请参见图14,操作系统更新装置包括:选取模块11、芯片侧生成模块12、接收模块13、解密模块14、存储模块15、校验模块16和替换模块17。
选取模块11,用于从多条逻辑通道中选取一条逻辑通道作为安全传输通道。
芯片侧生成模块12,用于在所述安全传输通道上与服务器建立安全会话,生成会话密钥和收条。
接收模块13,用于从所述安全传输通道上接收所述服务器下发的加密后的数据,所述加密后的数据至少包括加密后的待使用芯片操作系统,所述加密后的待使用芯片操作系统由所述会话密钥加密而成。
解密模块14,用于对所述加密后的数据进行解密。
存储模块15,用于将解密后的待使用芯片操作系统存储至指定存储区域。
校验模块16,用于校验所述解密后的待使用芯片操作系统是否完整,若校验结果为所述解密后的待使用芯片操作系统完整,则执行替换模块17将当前的芯片操作系统替换为所述解密后的待使用芯片操作系统,若校验结果为所述解密后的待使用芯片操作系统不完整,则返回执行芯片侧生成模块12,直至得到完整的解密后的待使用芯片操作系统。
在本实施例中,芯片侧生成模块12具体可以包括:第一发送单元、第一接收存储单元、第二接收存储单元、第一生成单元、第二生成单元、第三生成单元、第四生成单元、第五生成单元和第二发送单元。
第一发送单元,用于发送芯片侧静态公钥证书至所述服务器。
第一接收存储单元,用于接收并存储所述服务器发送的服务器侧静态公钥证书。
第二接收存储单元,用于接收并存储所述服务器发送的服务器侧临时公钥。
第一生成单元,用于生成芯片侧临时公私钥对。
第二生成单元,用于基于所述服务器侧临时公钥和所述芯片侧临时公私钥对中的芯片侧临时私钥,生成芯片侧临时共享密文。
第三生成单元,用于基于所述服务器侧静态公钥证书中的服务器侧静态公钥和芯片侧静态私钥,生成芯片侧静态共享密文。
第四生成单元,用于根据所述芯片侧临时共享密文和所述芯片侧静态共享密文,生成会话密钥。
第五生成单元,用于基于服务器侧数据和芯片侧数据,使用所述会话密钥进行MAC计算,生成收条。
第二发送单元,用于发送所述芯片侧数据、所述收条和所述芯片侧临时公私钥对中的芯片侧临时公钥至所述服务器,以使所述服务器基于所述芯片侧临时公钥和服务器侧临时私钥,生成服务器侧临时共享密文,基于所述芯片侧静态公钥证书中的芯片侧静态公钥和服务器侧静态私钥,生成服务器侧静态共享密文,并根据所述服务器侧临时共享密文和所述服务器侧静态共享密文,生成会话密钥,,并基于所述服务器侧数据和所述芯片侧数据,使用生成的会话密钥验证所述收条。
在本实施例中,第四生成单元具体可以包括:组合子单元、添加子单元、计算子单元和处理子单元。
组合子单元,用于对所述芯片侧临时共享密文和所述芯片侧静态共享密文进行组合,得到组合密文。
添加子单元,用于添加预设字节数的计数器或分散随机数至所述组合密文。
计算子单元,用于使用杂凑算法对添加有预设字节数的计数器或分散随机数的组合密文进行摘要计算,得到摘要结果。
处理子单元,用于对所述摘要结果进行截取或拼凑,得到所述会话密钥。
在本实施例中,芯片侧生成模块12也可以具体包括:第一接收单元、第六生成单元、第七生成单元、第一计算单元、第三发送单元、第二接收单元、验证单元。
第一接收单元,用于接收所述服务器发送的第一随机数。
第六生成单元,用于生成第二随机数。
第七生成单元,用于基于指定静态密钥和规则,生成芯片侧会话密钥。
第一计算单元,用于基于所述第一随机数和所述第二随机数,使用所述会话密钥计算芯片侧密文。
第三发送单元,用于发送所述第二随机数和所述芯片侧密文至所述服务器,以使所述服务器基于所述指定静态密钥和规则,生成服务器侧会话密钥,并基于所述第一随机数和所述第二随机数,使用所述服务器侧会话密钥验证所述芯片侧密文,并基于所述第一随机数和所述第二随机数,使用所述服务器侧会话密钥生成服务器侧密文,并发送所述服务器侧密文至所述待更新芯片。
第二接收单元,用于接收所述服务器侧密文。
验证单元,用于基于所述第一随机数和第二随机数,使用所述芯片侧会话密钥验证所述服务器侧密文,在验证所述服务器侧密文合法的情况下,执行确定单元确定所述服务器侧会话密钥和所述芯片侧会话密钥为相同的会话密钥,并指示所述服务器和所述待更新芯片使用相同的会话密钥对待传输数据进行加密。
在上述操作系统更新装置中,接收模块13具体可以包括:建立单元和第三接收单元。
建立单元,用于与终端建立安全会话。
第三接收单元,用于基于与终端建立的安全会话,接收所述终端以多次分发的方式发送的加密后的待使用芯片操作系统,所述终端发送的加密后的待使用芯片操作系统从所述安全传输通道上接收。
在本实施例中,所述指定存储区域仅用于存储所述解密后的待使用芯片操作系统;
或,所述指定存储区域用于存储所述解密后的待使用芯片操作系统和其他数据。
在本实施例中,所述加密后的数据还包括:除所述加密后的待使用芯片操作系统之外的其他加密数据。
在本实施例中,替换模块17具体可以包括:修改单元,用于将所述待更新芯片的启动加载地址由所述当前的芯片操作系统的存储区域中的启动加载地址修改为所述解密后的待使用芯片操作系统的存储区域中的启动加载地址。
在本实施例中,图14示出的操作系统更新装置还可以包括:呈现模块和判断模块。
呈现模块,用于呈现芯片操作系统更新提醒信息。
判断模块,用于判断是否接收到更新请求,若是,执行所述替换模块,若否,执行所述呈现模块。
实施例四
与方法实施例二相对应,本实施例提供了一种操作系统更新装置,应用于服务器,请参见图15,操作系统更新装置包括:服务器侧生成模块21、加密模块22和下发模块23。
服务器侧生成模块21,用于在安全传输通道上与待更新芯片建立安全会话,生成会话密钥。
加密模块22,用于使用所述会话密钥对待传输数据进行加密,得到加密后的数据,所述加密后的数据至少包括加密后的待使用芯片操作系统。
下发模块23,用于在所述安全传输通道上下发所述加密后的数据,以使所述待更新芯片执行下载更新过程;
所述下载更新过程包括:
从所述安全传输通道上接收所述服务器下发的加密后的数据,所述加密后的数据至少包括加密后的待使用芯片操作系统;
对所述加密后的数据进行解密,并将解密后的待使用芯片操作系统存储至指定存储区域,所述加密后的待使用芯片操作系统由所述会话密钥加密而成;
校验所述解密后的待使用芯片操作系统是否完整;
若校验结果为所述解密后的待使用芯片操作系统完整,则将当前的芯片操作系统替换为所述解密后的待使用芯片操作系统;
若校验结果为所述解密后的待使用芯片操作系统不完整,则返回执行在所述安全传输通道上与服务器建立安全会话,生成会话密钥的步骤,直至得到完整的解密后的待使用芯片操作系统。
在本实施例中,服务器侧生成模块21具体可以包括:获取单元、第一发送单元、第一生成单元、第二发送单元、第一接收单元、第二生成单元、第三生成单元、第四生成单元和第一验证单元。
获取单元,用于获取所述待更新芯片的芯片侧静态公钥证书;
第一发送单元,用于发送服务器侧静态公钥证书至所述待更新芯片。
第一生成单元,用于生成服务器侧临时公私钥对。
第二发送单元,用于发送所述服务器侧临时公私钥对中的服务器侧临时公钥至所述待更新芯片,以使所述待更新芯片接收所述服务器发送的服务器侧临时公钥,生成芯片侧临时公私钥对,基于所述服务器侧临时公钥和所述芯片侧临时公私钥对中的芯片侧临时私钥,生成芯片侧临时共享密文,基于所述服务器侧静态公钥证书中的服务器侧静态公钥和芯片侧静态私钥,生成芯片侧静态共享密文,根据所述芯片侧临时共享密文和所述芯片侧静态共享密文,生成会话密钥,并基于服务器侧数据和芯片侧数据,使用所述会话密钥进行MAC计算,生成收条。
第一接收单元,用于接收所述芯片侧数据、所述收条和所述芯片侧临时公私钥对中的芯片侧临时公钥。
第二生成单元,用于基于所述芯片侧临时公钥和服务器侧临时私钥,生成服务器侧临时共享密文。
第三生成单元,用于基于所述芯片侧静态公钥证书中的芯片侧静态公钥和服务器侧静态私钥,生成服务器侧静态共享密文。
第四生成单元,用于根据所述服务器侧临时共享密文和所述服务器侧静态共享密文,生成会话密钥。
第一验证单元,用于基于所述服务器侧数据和所述芯片侧数据,使用生成的会话密钥验证所述收条。
在本实施例中,第四生成单元具体可以包括:组合子单元、添加子单元、计算子单元和处理子单元。
组合子单元,用于对所述服务器侧临时共享密文和所述服务器侧静态共享密文进行组合,得到组合密文。
添加子单元,用于添加预设字节数的计数器或分散随机数至所述组合密文。
计算子单元,用于使用杂凑算法对添加有预设字节数的计数器或分散随机数的组合密文进行摘要计算,得到摘要结果。
处理子单元,用于对所述摘要结果进行截取或拼凑,得到所述会话密钥。
在本实施例中,服务器侧生成模块21也可以具体包括:第五生成单元、第三发送单元、第六生成单元、第二验证单元、第七生成单元和第四发送单元。
第五生成单元,用于生成第一随机数。
第三发送单元,用于发送所述第一随机数至所述待更新芯片,以使所述待更新芯片生成第二随机数,基于指定静态密钥和规则,生成芯片侧会话密钥,基于所述第一随机数和所述第二随机数,使用所述会话密钥计算芯片侧密文,发送所述第二随机数和所述芯片侧密文至所述服务器。
第六生成单元,用于基于所述指定静态密钥和规则,生成服务器侧会话密钥。
第二验证单元,用于基于所述第一随机数和所述第二随机数,使用所述服务器侧会话密钥验证所述芯片侧密文。
第七生成单元,用于并基于所述第一随机数和所述第二随机数,使用所述服务器侧会话密钥生成服务器侧密文。
第四发送单元,用于发送所述服务器侧密文至所述待更新芯片,以使所述待更新芯片接收所述服务器侧密文,基于所述第一随机数和第二随机数,使用所述芯片侧会话密钥验证所述服务器侧密文,在验证所述服务器侧密文合法的情况下,确定所述服务器侧会话密钥和所述芯片侧会话密钥为相同的会话密钥,并指示所述服务器和所述待更新芯片使用相同的会话密钥对待传输数据进行加密。
在本实施例中,所述加密后的数据还包括:除所述加密后的待使用芯片操作系统之外的其他加密数据。
在本实施例中,图15示出的操作系统更新装置还可以包括:接收模块和发送模块。
接收模块,用于接收所述待更新芯片发送的解密后的待使用芯片操作系统完整的校验结果。
发送模块,用于发送芯片操作系统更新提醒信息至所述待更新芯片所属终端。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种操作系统更新方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。