掌桥专利:专业的专利平台
掌桥专利
首页

一种防止MCU内部程序被复制的方法

文献发布时间:2023-06-19 19:30:30


一种防止MCU内部程序被复制的方法

技术领域

本发明是关于MCU保密技术领域,特别是关于一种防止MCU内部程序被复制的方法。

背景技术

MCU广泛应用于各种电子设备和机械设备,任何需要根据程序执行一定操作的装置内部均需要MCU或者具有类似MCU功能的处理装置。

对于某些厂商(例如某些高端汽车厂商),MCU内部程序是需要严格保密的,对于这些厂商而言,尤其需要防止MCU内部程序被非法的整体拷贝,因为这样将导致MCU内部程序的泄漏。在最原始的MCU防泄密方案中,需要授权用户在访问终端中输入账号密码,从而正确登录访问终端,随后该授权用户就可以使用该访问终端读取MCU内部的程序。该方案保密性较差,例如非授权用户可以通过各种方法破解账号密码,从而正确登录访问终端。在一些较先进的MCU防泄密方案中,要求授权用户使用访问终端登录服务器,并由服务器通过一些复杂的加密手段对访问终端进行鉴权,如果服务器对访问终端鉴权成功,则服务器通知MCU允许访问终端对MCU进行访问。这种方案充分利用了服务器安全性更高、算力更强的优势,可以增加MCU的保密强度。但是存在各种方法,通过其它设备伪装为服务器,并由伪装的服务器向MCU发送虚假的命令,从而导致MCU允许非授权的访问终端对MCU进行访问。如何对于这类方案进行改进以增加MCU保密强度,是现有技术面临的问题。

发明内容

为实现上述目的,本发明提供了一种防止MCU内部程序被复制的方法,其特征在于,方法包括:

由访问终端向服务器发送MCU程序复制请求;

由访问终端向MCU发送MCU程序复制请求;

在服务器接收到MCU程序复制请求之后,由服务器对访问终端进行鉴权;

在服务器对访问终端成功鉴权之后,由服务器在预定义的第一时频位置处向MCU发送第一随机数列,其中,预定义的第一时频位置与第一随机数列相对应,其中,第一时频位置与第一掩蔽码对应,其中,第一随机数列由第一掩蔽码掩蔽;

在MCU接收到MCU程序复制请求之后,由MCU开始监听由服务器在预定义的第一时频位置处发送的经过掩蔽的第一随机数列。

在一优选的实施方式中,方法还包括:

如果MCU在预定义的第一时频位置处接收到服务器发送的经过掩蔽的第一随机数列,则MCU基于第一时频位置确定第一掩蔽码;

在MCU确定第一掩蔽码之后,由MCU恢复第一随机数列;

由MCU确定恢复的第一随机数列是否与预定义的第一时频位置相对应;

如果MCU确定恢复的第一随机数列与预定义的第一时频位置相对应,则MCU执行MCU程序复制请求,并向访问终端发送经过复制的MCU程序。

在一优选的实施方式中,方法还包括:

如果MCU在不同于第一时频位置的其它时频位置处接收到由其它装置发送的其它随机数列,则MCU基于其它时频位置确定掩蔽码;

如果MCU不能基于其它时频位置确定任何掩蔽码,则MCU不执行MCU程序复制请求,并且MCU锁定MCU内部的存储器。

在一优选的实施方式中,方法还包括:

如果MCU基于其它时频位置确定其它掩蔽码,则MCU使用其它掩蔽码恢复其它随机数列;

由MCU确定恢复的其它随机数列是否与其它时频位置相对应;

如果MCU确定恢复的其它随机数列与其它时频位置不对应,则MCU不执行MCU程序复制请求,并且MCU锁定MCU内部的存储器。

在一优选的实施方式中,方法还包括:

在服务器向MCU发送第一随机数列之后,服务器在预定义的第二时频位置处向MCU发送第二随机数列,其中,预定义的第二时频位置与第二随机数列相对应,其中,第二时频位置与第二掩蔽码对应,其中,第二随机数列由第二掩蔽码掩蔽;

其中,服务器被配置为:在预定义的时间段之内,不再使用第一随机数列;

其中,MCU被配置为:在接收到经过掩蔽的第二随机数列之前,不将所有MCU程序发送给访问终端。

在一优选的实施方式中,方法还包括:

MCU监听由服务器在预定义的第二时频位置处发送的经过掩蔽的第二随机数列;

如果MCU在预定义的第二时频位置处接收到服务器发送的经过掩蔽的第二随机数列,则MCU基于第二时频位置确定第二掩蔽码;

在MCU确定第二掩蔽码之后,由MCU恢复第二随机数列;

由MCU确定恢复的第二随机数列是否与预定义的第二时频位置相对应;

如果确定恢复的第二随机数列与预定义的第二时频位置相对应,则MCU继续向访问终端发送经过复制的MCU程序。

本发明提供了一种非暂时性计算机可读存储介质,其特征在于,介质内存储有计算机可执行指令,指令在被执行时,能够执行如下操作:

由访问终端向服务器发送MCU程序复制请求;

由访问终端向MCU发送MCU程序复制请求;

在服务器接收到MCU程序复制请求之后,由服务器对访问终端进行鉴权;

在服务器对访问终端成功鉴权之后,由服务器在预定义的第一时频位置处向MCU发送第一随机数列,其中,预定义的第一时频位置与第一随机数列相对应,其中,第一时频位置与第一掩蔽码对应,其中,第一随机数列由第一掩蔽码掩蔽;

在MCU接收到MCU程序复制请求之后,由MCU开始监听由服务器在预定义的第一时频位置处发送的经过掩蔽的第一随机数列。

在一优选的实施方式中,介质内存储有计算机可执行指令,指令在被执行时,还能够执行如下操作:

如果MCU在预定义的第一时频位置处接收到服务器发送的经过掩蔽的第一随机数列,则MCU基于第一时频位置确定第一掩蔽码;

在MCU确定第一掩蔽码之后,由MCU恢复第一随机数列;

由MCU确定恢复的第一随机数列是否与预定义的第一时频位置相对应;

如果MCU确定恢复的第一随机数列与预定义的第一时频位置相对应,则MCU执行MCU程序复制请求,并向访问终端发送经过复制的MCU程序。

在一优选的实施方式中,介质内存储有计算机可执行指令,指令在被执行时,还能够执行如下操作:

如果MCU在不同于第一时频位置的其它时频位置处接收到由其它装置发送的其它随机数列,则MCU基于其它时频位置确定掩蔽码;

如果MCU不能基于其它时频位置确定任何掩蔽码,则MCU不执行MCU程序复制请求,并且MCU锁定MCU内部的存储器。

在一优选的实施方式中,介质内存储有计算机可执行指令,指令在被执行时,还能够执行如下操作:

如果MCU基于其它时频位置确定其它掩蔽码,则MCU使用其它掩蔽码恢复其它随机数列;

由MCU确定恢复的其它随机数列是否与其它时频位置相对应;

如果MCU确定恢复的其它随机数列与其它时频位置不对应,则MCU不执行MCU程序复制请求,并且MCU锁定MCU内部的存储器。

与现有技术相比,本发明具有如下优点,如背景技术所述,目前的MCU保密技术方案的缺陷在于,可以通过其它设备伪装为服务器,并由伪装的服务器向MCU发送虚假的命令,从而导致MCU允许非授权的访问终端对MCU进行访问。我方研究人员研究发现,该问题的核心在于其它设备伪装为服务器,并发送虚假命令的难度较低,从而导致该保密技术方案容易被破解,本发明的方法能够较大幅度的提升其它设备伪装为服务器的难度,从而提升MCU的保密强度。

附图说明

图1是本发明的一个实施例的系统结构示意图。

图2是本发明的一个实施例的方法流程图。

图3是本发明的一个实施例的用于发送随机数列的时频资源的示意图。

具体实施方式

下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。

如背景技术所述,目前的MCU保密技术方案的缺陷在于,可以通过其它设备伪装为服务器,并由伪装的服务器向MCU发送虚假的命令,从而导致MCU允许非授权的访问终端对MCU进行访问。我方研究人员研究发现,该问题的核心在于其它设备伪装为服务器,并发送虚假命令的难度较低,从而导致该保密技术方案容易被破解,本发明的方法能够较大幅度的提升其它设备伪装为服务器的难度,从而提升MCU的保密强度。

实施例1

图1是本发明的一个实施例的系统结构示意图。如图所示,本发明的系统包括访问终端、MCU以及服务器,其中,访问终端、MCU以及服务器可以互相传递消息。访问终端可以是用户的手持设备、笔记本计算机、台式机、平板电脑、有命令输入功能的专用设备等等。本领域技术人员应该理解的是,本发明的MCU具有完成本发明所限定的所有功能的必要硬件,例如MCU本身需要具有执行程序指令的硬件、需要具有与服务器和访问终端进行通信的通信接口(通信接口可以是有线或者无线接口)、还需要具有存储程序指令的存储器等等,各种硬件均是现有技术,本发明不再详细介绍硬件结构。

实施例2

图2是本发明的一个实施例的方法流程图。图3是本发明的一个实施例的用于发送随机数列的时频资源的示意图。如图所示,本发明的方法包括如下步骤:

步骤21:由访问终端向服务器发送MCU程序复制请求;

步骤22:由访问终端向MCU发送MCU程序复制请求;

步骤23:在服务器接收到MCU程序复制请求之后,由服务器对访问终端进行鉴权;其中,服务器对访问终端进行鉴权可以通过任何公知的鉴权方法进行,例如服务器从访问终端获取用户名、密码、硬件标识符、秘钥等内容,然后基于公知算法对于该访问终端进行鉴权;

步骤24:在服务器对访问终端成功鉴权之后,由服务器在预定义的第一时频位置处向MCU发送第一随机数列,其中,预定义的第一时频位置与第一随机数列相对应,其中,第一时频位置与第一掩蔽码对应,其中,第一随机数列由第一掩蔽码掩蔽;

在一个具体示例中,服务器可以与MCU预先约定用于发送随机数列的时频资源池,例如服务器可以与MCU按照图3的示例预先约定用于发送随机数列的时频资源池。在图3中,示出了周期性出现的两个用于发送随机数列的时频资源池,图3中的每个时频资源池中的一个小方格代表一个时频单元(随机数列必须占满整数个时频单元,例如不允许在3.5个时频单元上发送随机数列),例如一个时频单元可以由10ms时间以及2MHz的频率组成,图3中每个时频资源池具有50个时频单元,时频资源池之间的时间间隔可以例如为3s、5s或者10s,可以规定在每一个时频资源池中只能发送一次随机数列;例如在图3中,在第一个时频资源池的第三格时间至第五格时间,以及第一格频率至第二格频率内发送第一随机数列,在第二个时频资源池的第五格时间至第六格时间,以及第一格频率至第三格频率内发送第二随机数列。当然,本领域技术人员应该理解的是,可以设计更多个时频资源池,每一个时频资源池可以具有更多的时频单元。在一个具体示例中,预定义的第一时频位置与第一随机数列的对应关系可以如下所示:

表1

上表中的随机数列仅仅是示例,为了安全起见,可以将第一随机数列设计为具有更长长度的数列;其中,时频位置A(例如在系统中显示时频位置A为数字“1”,但是系统和表1中均不显示时频位置A是第一个时频资源池的第三格时间至第五格时间,以及第一格频率至第二格频率)可以指第一个时频资源池的第三格时间至第五格时间,以及第一格频率至第二格频率,时频位置B可以指第二个时频资源池的第五格时间至第六格时间,以及第一格频率至第三格频率;时频位置A与具体时频单元的对应关系需要单独存储在另外的映射表中,在表1中不显示具体的时频资源池中的具体时频单元的位置,这样,即便表1泄漏,非授权人员也无法获知具体时频单元与随机数列的对应关系。

在一个具体示例中,第一时频位置与第一掩蔽码的对应关系可以如下所示:

表2

表2存储在与表1不同的位置,并由单独的密码进行保护,防止非授权用户一次性获取时频位置、掩蔽码与随机数列的对应关系。对随机数列进行掩蔽操作的方法可以为:以时频位置A发送的第一随机数列为例,通过第一随机数列后五位与掩蔽码逐位进行不进位的二进制加法进行掩蔽,具体地,第一随机数列为0101010101,其后五位为10101,掩蔽码为11111,逐位相加的结果为01010,掩蔽之后的第一随机数列为0101001010。该设计的目的在于防止其它设备进行“嗅探”攻击,例如,某个非授权设备长时间监听服务器发送的随机数列,如果没有掩蔽操作,那么非授权设备就可以通过监听获取整个随机数列列表以及发送每个随机数列列表的频率段和时间段,随后非授权设备就也可以模仿服务器,在通过监听获取的、发送随机数列列表的频率段和时间段上发送对应的随机数列,从而使得MCU无法分辨发送随机数列的设备是否是服务器。但是在采用本发明的方法之后,只要随时更新表2中的对应关系,则非授权设备即便获取到经过掩蔽操作的随机数列以及发送每个随机数列列表的频率段和时间段,非授权设备也无法伪装为服务器。具体地,例如,服务器第一次在时频位置A发送第一随机数列时,经过掩蔽的第一随机数列为0101001010(假定该0101001010数列被非授权设备监听),随后可以更改表2,使得时频位置A对应掩蔽码“00111”,那么之后服务器再在时频位置A发送第一随机数列时,经过掩蔽的第一随机数列为0101010010,因此非授权设备即便监听到0101001010以及发送该0101001010的时频位置,非授权设备首先无法获知真正的第一随机数列是什么,非授权设备也无法知晓再次发送第一随机数列时,经过掩蔽的第一随机数列是什么,因此非授权设备无法通过嗅探方式伪装为服务器。

步骤25:在MCU接收到MCU程序复制请求之后,由MCU开始监听由服务器在预定义的第一时频位置处发送的经过掩蔽的第一随机数列。

实施例3

在实施例3中,方法还包括:

如果MCU在预定义的第一时频位置处接收到服务器发送的经过掩蔽的第一随机数列,则MCU基于第一时频位置确定第一掩蔽码;在一个具体示例中,MCU中需要存储前述表1、表2以及具体时频单元与表1中时频位置编号的对应关系,在一个具体示例中,例如MCU在第一个时频资源池的第三格时间至第五格时间,以及第一格频率至第二格频率中接收到经过掩蔽的第一随机数列,MCU可以通过查表获得第一个时频资源池的第三格时间至第五格时间,以及第一格频率至第二格频率对应时频位置A,随后MCU查表2获得第一掩蔽码11111;

在MCU确定第一掩蔽码之后,由MCU恢复第一随机数列;在一个具体示例中,MCU查表2获得第一掩蔽码11111,MCU接收到的经过掩蔽的第一随机数列为0101001010,随后MCU对经过掩蔽的第一随机数列0101001010的后五位与掩蔽码逐位进行不进位的二进制加法进行恢复,恢复得到的第一随机数列为0101010101;

由MCU确定恢复的第一随机数列是否与预定义的第一时频位置相对应;在一个具体示例中,MCU再查表1,判断0101010101是否与时频位置A对应;

如果MCU确定恢复的第一随机数列与预定义的第一时频位置相对应,则MCU执行MCU程序复制请求,并向访问终端发送经过复制的MCU程序。

在一优选的实施方式中,方法还包括:

如果MCU在不同于第一时频位置的其它时频位置处接收到由其它装置发送的其它随机数列,则MCU基于其它时频位置确定掩蔽码;在一个具体示例中,其它装置指的是非授权的、伪装为服务器的装置;

如果MCU不能基于其它时频位置确定任何掩蔽码,则MCU不执行MCU程序复制请求,并且MCU锁定MCU内部的存储器。在该情况中,其它装置实际上是在没有任何信息的情况下,在随机时频位置向MCU随机发送一个数列,在这种情况下,MCU基本不可能在表中查到该时频位置对应的掩蔽码;

在一优选的实施方式中,方法还包括:

如果MCU基于其它时频位置确定其它掩蔽码,则MCU使用其它掩蔽码恢复其它随机数列;在该情况中,其它装置可能恰巧在表中存在的时频位置发送了随机序列,或者其它装置通过嗅探知道了发送随机数列的时频位置,其它装置可能模仿服务器在正确的时频位置发送了随机数列,此时,MCU能够基于其它时频位置确定表2中的某一个掩蔽码;

由MCU确定恢复的其它随机数列是否与其它时频位置相对应;在前述情况中,由于其它装置至多能够通过嗅探知道发送随机数列的时频位置,但是其它装置无法知道表2的内容,所以MCU对其它装置发送的随机序列进行恢复之后,恢复的随机序列无法与表1中任何序列对应;

如果MCU确定恢复的其它随机数列与其它时频位置不对应,则MCU不执行MCU程序复制请求,并且MCU锁定MCU内部的存储器。

在一优选的实施方式中,方法还包括:

在服务器向MCU发送第一随机数列之后,服务器在预定义的第二时频位置处向MCU发送第二随机数列,其中,预定义的第二时频位置与第二随机数列相对应,其中,第二时频位置与第二掩蔽码对应,其中,第二随机数列由第二掩蔽码掩蔽;

其中,服务器被配置为:在预定义的时间段之内,不再使用第一随机数列;该步骤的意义在于:在一个最简单的重放攻击中,非授权设备可以监听服务器向MCU发送的某个随机数列A,并能够知道发送随机数列A的具体时频单元,随后该非法授权设备在不知道掩蔽码、随机数列具体内容的前提下,复制监听到的随机数列A,然后在下一个时频资源池的相同时频单元处向MCU发送复制的随机数列A,这样该非授权设备也能够伪装为服务器,但是本发明的方法不允许服务器在预定义的时间段(预定义的时间段例如为1小时、3小时或者24小时,在预定义的时间段之后,服务器可以更新表2的内容,从而彻底防止重放攻击)之内向MCU发送相同的随机数列,因此避免了这种最简单的重放攻击。

其中,MCU被配置为:在接收到经过掩蔽的第二随机数列之前,不将所有MCU程序发送给访问终端。在一个具体示例中,可以通过限制MCU的数据传输速度来防止MCU在接收到经过掩蔽的第二随机数列之前,就将所有程序发送给访问终端,该操作主要作用在于:即便在极端情况下,非授权设备通过试错法偶尔正确发送了一次随机数列,并成功伪装为服务器,MCU也不会将所有程序发送给访问终端。

在一优选的实施方式中,方法还包括:

MCU监听由服务器在预定义的第二时频位置处发送的经过掩蔽的第二随机数列;

如果MCU在预定义的第二时频位置处接收到服务器发送的经过掩蔽的第二随机数列,则MCU基于第二时频位置确定第二掩蔽码;

在MCU确定第二掩蔽码之后,由MCU恢复第二随机数列;

由MCU确定恢复的第二随机数列是否与预定义的第二时频位置相对应;

如果确定恢复的第二随机数列与预定义的第二时频位置相对应,则MCU继续向访问终端发送经过复制的MCU程序。

本发明提供了一种非暂时性计算机可读存储介质,其特征在于,介质内存储有计算机可执行指令,指令在被执行时,能够执行如下操作:

由访问终端向服务器发送MCU程序复制请求;

由访问终端向MCU发送MCU程序复制请求;

在服务器接收到MCU程序复制请求之后,由服务器对访问终端进行鉴权;

在服务器对访问终端成功鉴权之后,由服务器在预定义的第一时频位置处向MCU发送第一随机数列,其中,预定义的第一时频位置与第一随机数列相对应,其中,第一时频位置与第一掩蔽码对应,其中,第一随机数列由第一掩蔽码掩蔽;

在MCU接收到MCU程序复制请求之后,由MCU开始监听由服务器在预定义的第一时频位置处发送的经过掩蔽的第一随机数列。

在一优选的实施方式中,介质内存储有计算机可执行指令,指令在被执行时,还能够执行如下操作:

如果MCU在预定义的第一时频位置处接收到服务器发送的经过掩蔽的第一随机数列,则MCU基于第一时频位置确定第一掩蔽码;

在MCU确定第一掩蔽码之后,由MCU恢复第一随机数列;

由MCU确定恢复的第一随机数列是否与预定义的第一时频位置相对应;

如果MCU确定恢复的第一随机数列与预定义的第一时频位置相对应,则MCU执行MCU程序复制请求,并向访问终端发送经过复制的MCU程序。

在一优选的实施方式中,介质内存储有计算机可执行指令,指令在被执行时,还能够执行如下操作:

如果MCU在不同于第一时频位置的其它时频位置处接收到由其它装置发送的其它随机数列,则MCU基于其它时频位置确定掩蔽码;

如果MCU不能基于其它时频位置确定任何掩蔽码,则MCU不执行MCU程序复制请求,并且MCU锁定MCU内部的存储器。

在一优选的实施方式中,介质内存储有计算机可执行指令,指令在被执行时,还能够执行如下操作:

如果MCU基于其它时频位置确定其它掩蔽码,则MCU使用其它掩蔽码恢复其它随机数列;

由MCU确定恢复的其它随机数列是否与其它时频位置相对应;

如果MCU确定恢复的其它随机数列与其它时频位置不对应,则MCU不执行MCU程序复制请求,并且MCU锁定MCU内部的存储器。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

相关技术
  • 一种用于通用MCU程序保护的方法
  • 复制防止装置、复制防止方法以及使计算机执行该方法的程序
  • 防止不正当复制应用程序执行的方法、程序、程序记录装置和程序记录媒体
技术分类

06120115935846