一种设备程序的处理方法及装置与流程

文档序号:16207051发布日期:2018-12-08 07:14阅读:159来源:国知局
一种设备程序的处理方法及装置与流程

本公开涉及但不限于物联网设备安全领域,尤其涉及一种设备程序的处理方法及装置。

背景技术

在物联网飞速发展的今天,联网的设备越来越多。物联网设备与传统嵌入式设备相比,接入公开的网络是其主要特征。在网络环境下,安全是一个特别重要的问题,安全问题又分为通信安全,设备安全和系统服务安全等方面,本公开关注物联网设备本身的安全,例如,终端程序被替换后发送不可靠数据到服务器,恶意程序在终端上执行未授权动作,目前针对物联网设备的安全尚未提出有效的保护措施。



技术实现要素:

本发明实施例提供一种设备程序的处理方法及装置,以保证设备端程序的安全性。

一种设备程序的处理方法,包括:

在特权模式下访问第一程序区,运行解密程序解密存储在第二程序区中的加密的程序;

对解密的程序进行验证,如验证通过,则运行拷贝启动程序将所述解密的程序拷贝到第三程序区,切换到非特权模式下运行所述第三程序区中的程序;如验证不通过,运行升级程序发起远程升级申请请求。

可选地,所述对解密的程序进行验证,包括:

判断所述第一程序区中存储的解密密钥验证解密出的程序序列标示与所述第一程序区中存储的程序序列标示是否一致,如一致,则验证通过;如不一致,则验证不通过。

可选地,所述第一程序区为片内非易失存储器,所述第二程序区为片外存储器,所述第三程序区为片内非易失存储器或者片内随机存取存储器。

可选地,所述切换到非特权模式下运行所述第三程序区中的程序的过程中,还包括:

如接收到访问所述第一程序区的请求,则进行复位。

可选地,所述发起远程升级申请请求后,还包括:

从服务器上下载加密的程序,存储于所述第二程序区。

一种设备程序的处理装置,包括存储器和处理器,其中,

所述存储器至少包括第一程序区、第二程序区和第三程序区,所述第一程序区存储有解密程序、拷贝启动程序和升级程序,仅特权模式下可读写;所述第二程序区存储有加密的程序;所述第三程序区用于存储解密的程序;

所述处理器,用于在特权模式下访问所述第一程序区,运行所述解密程序解密存储在所述第二程序区中的加密的程序;对解密的程序进行验证,如验证通过,则运行所述拷贝启动程序将所述解密的程序拷贝到所述第三程序区,切换到非特权模式下运行所述第三程序区中的程序;如验证不通过,运行所述升级程序发起远程升级申请请求。

可选地,所述第一程序区中存储有解密密钥和程序序列标示;

所述处理器,对解密的程序进行验证包括:判断所述解密密钥验证解密出的程序序列标示与所述第一程序区中存储的程序序列标示是否一致,如一致,则验证通过;如不一致,则验证不通过。

可选地,所述第一程序区为片内非易失存储器,所述第二程序区为片外存储器,所述第三程序区为片内非易失存储器或者片内随机存取存储器。

可选地,所述处理器,切换到非特权模式下运行所述第三程序区中的程序的过程中,还包括:如接收到访问所述第一程序区的请求,则进行复位。

可选地,所述处理器,发起远程升级申请请求后,还包括:从服务器上下载加密的程序,存储于所述第二程序区。

综上,本发明实施例提供一种设备程序的处理方法及装置,利用了单片机(如cortexm系列)的特权级划分机制,内存保护机制等硬件资源及加解密技术、远程升级技术实现物联网设备端程序正确、可靠安全运行和异常恢复。

附图说明

图1为本公开实施例的设备程序的处理装置;

图2是本公开mcu存储总体框图;

图3为本公开实施例的一种设备程序的处理方法的流程图;

图4为本公开设备内存划分及远程升级功能框图;

图5为本公开一应用示例的设备程序的处理方法的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

为了解决当前物联网设备安全保护不足问题,本公开利用保护机制和加密远程升级实现设备程序的安全运行。

图1为本公开实施例的设备程序的处理装置,如图1所示,本公开的处理装置包括存储器和处理器,所述存储器至少包括:第一程序区、第二程序区和第三程序区,所述第一程序区存储有解密程序、拷贝启动程序和升级程序,仅特权模式下可读写;所述第二程序区存储有加密的程序;所述第三程序区用于存储解密的程序;

所述处理器,用于在特权模式下访问所述第一程序区,运行所述解密程序解密存储在所述第二程序区中的加密的程序;对解密的程序进行验证,如验证通过,则运行所述拷贝启动程序将所述解密的程序拷贝到所述第三程序区,切换到非特权模式下运行所述第三程序区中的程序;如验证不通过,运行所述升级程序发起远程升级申请请求。

其中,第一程序区仅可在特权模式下访问,保证第一程序区不轻意被破解,保证设备端整个程序的安全性。

在一实施例中,所述第一程序区中存储有解密密钥和程序序列标示;

所述处理器,对解密的程序进行验证包括:判断所述解密密钥验证解密出的程序序列标示与所述第一程序区中存储的程序序列标示是否一致,如一致,则验证通过;如不一致,则验证不通过。

在一实施例中,所述处理器,切换到非特权模式下运行所述第三程序区中的程序的过程中,还包括:如接收到访问所述第一程序区的请求,则进行复位。

在一实施例中,所述处理器,发起远程升级申请请求后,还包括:从服务器上下载加密的程序,存储于所述第二程序区。

本公开的设备程序的处理装置可以是物联网设备,主要利用设备端单片机有限软硬件资源和加密远程升级机制实现设备程序的安全运行,防破解。

本公开实施例的设备程序的处理装置的实现主要包含:特权级模式和存储区划分,以cortex系列单片机为例,如图2所示,存储本身为线性平坦的4g实地址空间,并进行了基础的地址规定,规定程序从零地址开始为程序存储区,另一地址开始为ram(random-accessmemory,随机存取存储器)区以及其他的外设访问区或dma(directmemoryaccess,直接内存存取)区域。

本公开实施例主要将程序存储区域进行划分,分为了引导程序区(相当于上文的第一程序区)、运行程序区(相当于上文的第三程序区)和运行程序加密存储区(相当于上文的第二程序区)。

引导程序区介质为片内非易失flash(闪存),出厂烧写完成,运行时为特权级代码区及mpu(microprocessoruint,微处理器单元)读写保护区域,只能在特权级下可读写。

运行程序区为片内非易失flash或片内ram,运行时为非特权代码区,mpu根据实际需要选择性保护读写。

运行程序加密存储区为片外flash,程序文件存储作用,不能直接运行。

其中,只有引导程序区不被破解,才能保证设备端整个程序的安全性。

片外保护:引导程序区程序出厂固化在rom(read-onlymemory,只读存储器)中,并设置了单片机片外读保护。

引导程序区中代码包含了解密程序,升级程序,拷贝启动程序。引导程序区中的数据包含了解密密钥和程序固定序列数据,这两项数据都是厂商保密的,在单片机设置了读保护后片外不可读的。

片内保护:程序启动后,由于运行程序区运行在非特权级,引导程序区运行在特权级,即从硬件上保证引导程序区可以读写访问运行程序区,而运行程序区是不能访问引导程序区的,所以引导程序区除自身外是片内不可读的。

基于成本等考虑,运行程序加密存储区一般为spi(serialperipheralinterface,串行外围设备接口)flash等片外扩展存储,可以单独读写,所以本发明实施例采用程序加密后保存在flash中的方法来保证代码正确性,最终只有正确的代码才能在运行程序区运行。

程序加密目的是防止伪终端获取代码运行,若不加密,则可能出现伪造一个升级请求下载了远端的程序即可以运行。

进行程序加密后,最终存储在运行程序加密存储区的代码为整体加密后的代码,不能直接运行,需要解密后才能运行。本公开实施例采用对称加密技术,密钥分别存于服务器和引导存储区。

解密后程序正确性判断是通过比较解密后程序序列标示与存储在引导区内的标示是否一致进行判断的,程序序列标示采用程序的固定厂家保密标示或者校验码。

升级程序用于控制设备端与服务器端的升级交互,完成升级请求,文件接收,文件存储和升级完成等动作。

单片机程序升级为全量升级,单片机引导程序为一个独立的bin(二进制)文件,而运行程序一般最终为另一个整体的bin文件或hex(程序文件格式)文件,出厂后引导程序不再变化,远程升级会整体替换运行程序加密存储区的文件,进而整体替换运行程序区文件。

拷贝启动程序:运行程序区的代码是从片外存储得到,所以需要将解密后的程序文件拷贝到运行程序区。

程序执行上下文从引导程序区切换到运行程序区,重新运行,需要特权级和堆栈的切换,并且重新设置中断向量表,跳转到运行程序区运行。拷贝启动程序即完成这些工作。

图2中描述单片机系统存储分为程序存储区,ram区,外设等特殊寄存器访问区及片外存储。本公开实施例分区和保护主要针对程序存储区和片外flash区进行。

图3为本发明实施例的一种设备程序的处理方法的流程图,如图3所示,本实施例的处理方法包括:

步骤301,在特权模式下访问第一程序区,运行解密程序解密存储在第二程序区中的加密的程序;

步骤302,对解密的程序进行验证,如验证通过,则转步骤303;如验证不通过,则转步骤304;

步骤303,运行拷贝启动程序将所述解密的程序拷贝到第三程序区,切换到非特权模式下运行所述第三程序区中的程序;

步骤304,运行升级程序发起远程升级申请请求。

本实施例中的第一程序区仅可在特权模式下访问,保证第一程序区不轻意被破解,进而保证设备端整个程序的安全性。

图4为本公开实施例的设备程序的处理方法的示意图,如图4所示,与本公开实施例相关的有单片机本身,片外flash,远程升级服务器,其中,

单片机本身主要关注与本公开实施例相关的存储布局划分与特权级划分两个部分,引导程序区包含了运行在特权级下的解密程序,升级程序以及拷贝启动程序;运行程序区包含了运行在非特权级下的运行程序;运行程序加密存储区包含了加密后的运行程序。

其中,解密程序通过标号1作用在加密存储区到运行程序区的解密过程中,升级程序通过标号2作用在远程升级服务器与加密存储区之间,拷贝启动程序通过标号3作用在运行程序启动过程中。

图5为本公开一应用示例的设备程序的处理方法的流程图,如图5所示,包括以下步骤:

步骤301,单片机上电。

步骤302,复位。

复位中断处理函数,进入特权模式。

步骤303,内存设置,在特权模式下可以访问任意的寄存器及设置mpu,设置在此模式下设备的引导程序区为特权访问,运行程序区为非特权访问。

步骤304,解密运行程序加密存储区中的程序文件,该程序文件携带有程序序列标示。

步骤305,验证程序序列标示是否正确,若正确,则转步骤307;若验证后不正确,则转步骤306。

步骤306,发出远程升级申请,从服务器上下载到加密后的程序文件,转步骤304。

步骤307,拷贝程序到运行程序区。

步骤308,切换到非特权模式下运行。

步骤309,判断是否出现访问引导程序区的动作,如出现,则转步骤302。如未出现,转步骤310。

因为设置了mpu保护,在从步骤308切换到非特权模式后,访问特权区域会触发异常并reset,跳转到步骤302。

步骤310,继续运行,直到结束。

本公开实施例的设备程序的处理方法能够保证物联网受限设备上程序本身的运行正确和安全性,即在有限的软硬件条件下保证运行在受限设备上程序的正确性和安全性,并能在异常情况下恢复,进而在设备本身程序正确和安全的基础上实现通信等其他部分的安全。

本发明实施例还提供了一种计算机可读存储介质,其存储有计算机可执行指令,所述计算机可执行指令被执行时实现所述设备程序的处理方法。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

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