芯片程序保护方法、装置、芯片和计算机可读存储介质与流程

文档序号:32394264发布日期:2022-11-30 09:37阅读:57来源:国知局
芯片程序保护方法、装置、芯片和计算机可读存储介质与流程

1.本技术涉及芯片保护领域,具体而言,涉及一种芯片程序保护方法、装置、芯片和计算机可读存储介质。


背景技术:

2.目前,为了防止第三方通过外部技术读取芯片的内部程序文件,往往需要对芯片的内部程序文件进行保护,例如熔断保护等。
3.但现有技术中保护芯片内部程序文件的方式,只能保证软件正向开发无法达到读写芯片内部程序的效果,无法防止使用者在将芯片从电路板上剥离之后通过外部手段破解芯片,例如通过探针对其内部程序和数据进行读取。因此,现有技术中存在芯片程序的安全性较差的问题。


技术实现要素:

4.有鉴于此,本技术的目的在于提供一种芯片程序保护方法、装置、芯片和计算机可读存储介质,以解决芯片程序的安全性较差的问题。
5.为了实现上述目的,本技术实施例采用的技术方案如下:
6.第一方面,本技术提供一种芯片程序保护方法,所述方法包括:
7.在芯片的供电电压达到预设的工作电压的情况下,获取检测信息;
8.判断所述检测信息是否通过所述芯片所在电路板获得;
9.若所述检测信息不是通过所述芯片所在电路板获得,则运行自毁程序。
10.在可选的实施方式中,所述芯片包括发送端口和接收端口,所述发送端口和所述接收端口通过所述电路板电连接,所述在芯片的供电电压达到预设的工作电压的情况下,获取检测信息,包括:
11.在所述芯片的供电电压达到预设的工作电压的情况下,通过所述发送端口发送第一检测信息,并获取所述接收端口接收的第二检测信息;
12.所述判断所述检测信息是否通过所述芯片所在电路板获得,包括:
13.若所述第二检测信息与所述第一检测信息不匹配,则确定所述检测信息不是通过所述芯片所在电路板获得。
14.在可选的实施方式中,所述芯片包括检测端口,所述电路板上设置有检测电源,且所述检测电源与所述检测端口电连接,所述在芯片的供电电压达到预设的工作电压的情况下,获取检测信息,包括:
15.在所述芯片的供电电压达到预设的工作电压的情况下,获取所述检测端口处的输入电压;
16.所述判断所述检测信息是否通过所述芯片所在电路板获得,包括:
17.若所述输入电压与预设的验证电压不匹配,则确定所述检测信息不是通过所述芯片所在电路板获得。
18.在可选的实施方式中,所述芯片包括存储器以及控制寄存器,所述若所述检测信息不是通过所述芯片所在电路板获得,则运行自毁程序,包括:
19.若所述检测信息不是通过所述芯片所在电路板获得,则运行所述自毁程序以通过所述控制寄存器对所述存储器中的程序进行擦除。
20.在可选的实施方式中,所述在芯片的供电电压达到预设的工作电压的情况下,获取检测信息,包括:
21.在所述供电电压达到预设的工作电压的情况下,执行初始化操作;
22.在所述初始化操作完成后,获取检测信息。
23.第二方面,本技术提供一种芯片程序保护装置,所述装置包括:
24.获取模块,用于在芯片的供电电压达到预设的工作电压的情况下,获取检测信息;
25.判断模块,用于判断所述检测信息是否通过所述芯片所在电路板获得;
26.运行模块,用于若所述检测信息不是通过所述芯片所在电路板获得,则运行自毁程序。
27.在可选的实施方式中,所述芯片包括发送端口和接收端口,所述发送端口和所述接收端口通过所述电路板电连接,所述获取模块,还用于在所述芯片的供电电压达到预设的工作电压的情况下,通过所述发送端口发送第一检测信息,并获取所述接收端口接收的第二检测信息;
28.所述判断模块,还用于若所述第二检测信息与所述第一检测信息不匹配,则确定所述检测信息不是通过所述芯片所在电路板获得。
29.在可选的实施方式中,所述芯片包括检测端口,所述电路板上设置有检测电源,且所述检测电源与所述检测端口电连接,所述获取模块,还用于在所述芯片的供电电压达到预设的工作电压的情况下,获取所述检测端口处的输入电压;
30.所述判断模块,还用于若所述输入电压与预设的验证电压不匹配,则确定所述检测信息不是通过所述芯片所在电路板获得。
31.第三方面,本技术提供一种芯片,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现前述实施方式任一所述的方法。
32.第四方面,本技术提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施方式中任一项所述的方法。
33.本技术实施例提供的芯片程序保护方法、装置、芯片和计算机可读存储介质,在芯片的供电电压达到预设的工作电压的情况下,获取检测信息,并判断该检测信息是否通过该芯片所在的电路板获得,若该检测信息不是通过该芯片所在的电路板获得,则说明此时芯片已经脱离电路板,存在被破解的风险,因此为了避免芯片被外部手段破解,可运行自毁程序,以确保芯片的程序安全。通过该方法,可在现有技术的基础上实现芯片在脱离电路板后,上电时及时对其内部程序进行自毁,从而保证芯片的程序无法被外部手段破解,因此可提高芯片程序的安全性。
34.为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
35.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
36.图1示出了本技术实施例提供的芯片的方框示意图;
37.图2示出了本技术实施例提供的芯片程序保护方法的一种流程示意图;
38.图3示出了芯片的一种示意图;
39.图4示出了本技术实施例提供的芯片程序保护方法的另一种流程示意图;
40.图5示出了芯片的另一种示意图;
41.图6示出了本技术实施例提供的芯片程序保护方法的另一种流程示意图;
42.图7示出了本技术实施例提供的一种芯片程序保护装置的功能模块图。
43.图示:10-第一io端口;20-第二io端口;30-导线;40-检测电源;100-芯片;110-存储器;120-处理器;130-通信模块;200-获取模块;210-判断模块;220-运行模块。
具体实施方式
44.下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。
45.因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
46.需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
47.请参照图1,是芯片100的方框示意图。所述芯片100包括存储器110、处理器120及通信模块130。所述存储器110、处理器120以及通信模块130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
48.其中,存储器110用于存储程序或者数据。所述存储器110可以是,但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。
49.处理器120用于读/写存储器中存储的数据或程序,并执行相应地功能。
50.通信模块130用于通过所述网络建立所述芯片与其它通信终端之间的通信连接,并用于通过所述网络收发数据。
51.应当理解的是,图1所示的结构仅为芯片的结构示意图,所述芯片还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
52.本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可实现本技术实施例提供的芯片程序保护方法。
53.接下来以图1中的芯片100为执行主体,结合流程示意图对本技术实施例提供的芯片程序保护方法进行示例性说明。具体的,图2为本技术实施例提供的芯片程序保护方法的一种流程示意图,请参见图2,该方法包括:
54.步骤s20,在芯片的供电电压达到预设的工作电压的情况下,获取检测信息;
55.可选地,芯片可通过外接电源获得供电。在此基础上,该供电电压为芯片外接电源后获得的电压。
56.可选的,该预设的工作电压为芯片可以正常启动运行的电压。可以理解地,在本实施例中,若芯片的供电电压达到预设的工作电压且确认芯片安全,则该芯片可正常启动从而运行其中存储的相应程序。
57.步骤s21,判断检测信息是否通过芯片所在电路板获得;
58.可选地,芯片可焊接在电路板上从而与特定的应用平台进行绑定,在该应用平台下安全启用。可以理解地,若芯片脱离该电路板,则说明该芯片与其绑定的应用平台分离,此时芯片处于不安全的启用环境中,存在程序被破解的风险。在一个示例中,该电路板可以是pcb板。
59.可以理解的,若芯片并未脱离其所在的电路板,则该检测信息可通过电路板获取。
60.在本实施例中,芯片可在供电电压达到预设的工作电压的情况下,先获取检测信息,并判断该检测信息是否通过其所在的电路板获得,从而判断该芯片此时是否还处于其应当处于的电路板上,以确定该芯片的启用环境是否安全。
61.步骤s22,若检测信息不是通过芯片所在电路板获得,则运行自毁程序。
62.可选地,若该检测信息不是通过该芯片所在的电路板获得,则说明此时芯片已经从其应当处于的电路板上脱离,即该芯片与该应用平台脱离,此时芯片的启用环境并不安全,因此为了避免芯片被外部手段破解,该芯片可运行自毁程序,从而将其内部程序销毁。
63.可选地,若检测信息通过芯片所在电路板获得,则说明此时该芯片还处于其应当处于的电路板上,即此时芯片仍然与该应用平台绑定,其启用环境安全,因此,该芯片可正常运行。
64.本技术实施例提供的芯片程序保护方法、装置、芯片和计算机可读存储介质,在芯片的供电电压达到预设的工作电压的情况下,获取检测信息,并判断该检测信息是否通过该芯片所在的电路板获得,若该检测信息不是通过该芯片所在的电路板获得,则说明此时芯片已经脱离电路板,存在被破解的风险,因此为了避免芯片被外部手段破解,可运行自毁程序,以确保芯片的程序安全。通过该方法,可在现有技术的基础上实现芯片在脱离电路板后,上电时及时对其内部程序进行自毁,从而保证芯片的程序无法被外部手段破解,因此可提高芯片程序的安全性。
65.在一种可能实现的情况下,可在对芯片进行ic设计时,设置特定的两个io端口,并将其中一个作为发送端口,另一个作为接收端口,将该发送端口和接收端口通过电路板电连接。
66.在一个示例中,该芯片可以为mcu(microcontroller unit,微控制单元),且该芯片mcu焊接在电路板上,请参见图3,mcu包括两个io端口,分别为第一io端口10和第二io端口20,因此,可分别将第一io端口10作为发送端口,第二io端口20作为发送端口,该电路板上包括导线30,该第一io端口10与第二io端口20通过电路板上的导线30电连接。
67.可以理解地,若该芯片处于其所在电路板上,则芯片通过发送端口发送的第一检测信息,与该芯片通过接收端口接收到的第二检测信息应当匹配。在此基础上,芯片可将第二检测信息作为上述检测信息,根据该第二检测信息与第一检测信息是否匹配,确定该检测信息是否通过该芯片所在电路板获得。
68.具体的,在图2的基础上,图4为本技术实施例提供的芯片程序保护方法的另一种流程示意图,请参见图4,上述步骤s20,还可以通过以下步骤实现:
69.步骤s20-1,在芯片的供电电压达到预设的工作电压的情况下,通过发送端口发送第一检测信息,并获取接收端口接收的第二检测信息;
70.可选地,该第一检测信息可以是事先预设的数据,或特定的命令信息。该第一检测信息可以由设计人员自行设置,本技术对此不作限定。
71.在本实施例中,芯片可在供电电压达到预设的工作电压后,在通过发送端口发送第一检测信息之后,可获取接收端口接收的第二检测信息。
72.进而,上述步骤s21还可以通过以下步骤实现:
73.步骤s21-1,若第二检测信息与第一检测信息不匹配,则确定检测信息不是通过芯片所在电路板获得。
74.可选地,若芯片脱离其所在电路板,则此时芯片可能无法获得第二检测信息,或者获得的第二检测信息为其他设备发送的信息。在此情况下,该第二检测信息显然与第一检测信息不匹配,因此可确定该检测信息不是通过芯片所在电路板获得。
75.在另一种实施例中,还可以在该芯片所在电路板上事先设置检测电源,在芯片上事先确定检测端口,并将该检测端口与电路板上的检测电源电连接。
76.在一个示例中,若该芯片为mcu,且该芯片焊接在电路板上,则可将该芯片的任意io端口作为检测端口,请参见图5,可将mcu中的第一io端口10作为检测端口,则电路板上设置的检测电源40则与该第一io端口10电连接。
77.在此基础上,可事先根据设置的电源设置验证电压,并将该验证电压存储在该芯片中,可以理解地,若该芯片处于其所在电路板上,则该检测端口的输入电压应当与该验证电压匹配。因此芯片可将该输入电压作为上述检测信息,根据该检测信息与该验证电压是否匹配,确定该检测信息是否通过该芯片所在电路板获得。
78.具体的,在图2的基础上,图6为本技术实施例提供的芯片程序保护方法的另一种流程示意图,请参见图6,上述步骤s20,还可以通过以下步骤实现:
79.步骤s20-2,在芯片的供电电压达到预设的工作电压的情况下,获取检测端口处的输入电压;
80.在本实施例中,芯片可在供电电压达到预设的工作电压的情况下,从该检测端口
处获取其输入电压。
81.可选地,该输入电压可以是adc(analog-to-digital converter,模数转换)电压。在此情况下,该芯片中可以设置有adc模块,则该芯片可在供电电压达到预设的工作电压的情况下,通过该adc模块获取检测端口处的adc电压值。
82.进而,上述步骤s21,还可以通过以下步骤实现:
83.步骤s21-2,若输入电压与预设的验证电压不匹配,则确定检测信息不是通过芯片所在电路板获得。
84.可选地,若该输入电压与预设的验证电压不匹配,则说明芯片已经脱离其所在电路板,该输入电压并非通过该电路板上的检测电源获得的电压。
85.可选地,该芯片内还可以包括控制寄存器,则该芯片可通过该控制寄存器对存储器中的程序进行擦除,从而实现该芯片内部的程序自毁。具体的,在图2的基础上,上述步骤s22还可以通过以下步骤实现:
86.若检测信息不是通过芯片所在电路板获得,则运行自毁程序以通过控制寄存器对存储器中的程序进行擦除。
87.可选地,由于该芯片中的存储器用于存储程序或数据,因此,可以通过运行自毁程序以使控制寄存器对存储器中的程序进行擦除,可以理解地,在对存储器中的程序进行擦除后,该芯片中则没有程序或数据,此时芯片无法正常工作,外部探针等也无法获得芯片中的程序或数据。
88.可选地,为了保证芯片的检测效果,可在对芯片中的各个硬件进行初始化后,再获取检测信息进行判断。具体的,在图2的基础上,上述步骤s20还可以通过以下步骤实现:
89.在供电电压达到预设的工作电压的情况下,执行初始化操作;在初始化操作完成后,获取检测信息。
90.可选地,为了芯片中的程序可以正常运转,芯片在供电电压达到预设的工作电压后,还需要对其中包含的各个硬件进行初始化操作。例如,等待rc振荡器稳定,确定寄存器默认配置等。
91.在本实施例中,芯片可在其供电电压达到预设的工作电压后,先执行初始化操作,在初始化操作完成后,获得检测信息,并判断检测信息是否通过该芯片所在电路板获得,若否,则运行自毁程序以保证芯片程序和数据安全,若是,则正常运行。
92.为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种芯片程序保护装置的实现方式。进一步地,请参阅图7,图7为本技术实施例提供的一种芯片程序保护装置的功能模块图。需要说明的是,本实施例所提供的芯片程序保护装置,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该芯片程序保护装置包括:获取模块200,判断模块210以及运行模块220。
93.该获取模块200,用于在芯片的供电电压达到预设的工作电压的情况下,获取检测信息;
94.可以理解地,该获取模块200可以用于执行上述步骤s20;
95.该判断模块210,用于判断检测信息是否通过芯片所在电路板获得;
96.可以理解地,该判断模块210可以用于执行上述步骤s21;
97.该运行模块220,用于若检测信息不是通过芯片所在电路板获得,则运行自毁程
序。
98.可以理解地,该运行模块220可以用于执行上述步骤s22。
99.可选地,该获取模块200,还用于在芯片的供电电压达到预设的工作电压的情况下,通过发送端口发送第一检测信息,并获取接收端口接收的第二检测信息;
100.可以理解地,该获取模块200还可以用于执行上述步骤s20-1;
101.可选地,该判断模块210,还用于若第二检测信息与第一检测信息不匹配,则确定检测信息不是通过芯片所在电路板获得。
102.可以理解地,该判断模块210还可以用于执行上述步骤s21-1。
103.可选地,该获取模块200,还用于在芯片的供电电压达到预设的工作电压的情况下,获取检测端口处的输入电压;
104.可以理解地,该获取模块200还可以用于执行上述步骤s20-2;
105.可选地,该判断模块210,还用于若输入电压与预设的验证电压不匹配,则确定检测信息不是通过芯片所在电路板获得。
106.可以理解地,该判断模块210还可以用于执行上述步骤s21-2。
107.可选地,该运行模块220,还用于若所述检测信息不是通过所述芯片所在电路板获得,则运行所述自毁程序以通过所述控制寄存器对所述存储器中的程序进行擦除。
108.可选地,该获取模块200,还用于在供电电压达到预设的工作电压的情况下,执行初始化操作;在初始化操作完成后,获取检测信息。
109.本技术实施例提供的芯片程序保护装置,通过获取模块在芯片的供电电压达到预设的工作电压的情况下,获取检测信息;通过判断模块判断检测信息是否通过芯片所在电路板获得;通过运行模块在检测信息不是通过芯片所在电路板获得的情况下,则运行自毁程序。通过该装置,可在现有技术的基础上实现芯片在脱离电路板后,上电时及时对其内部程序进行自毁,从而保证芯片的程序无法被外部手段破解,因此可提高芯片程序的安全性。可选地,上述模块可以软件或固件(firmware)的形式存储于图1所示的存储器中或固化于该芯片的操作系统(operating system,os)中,并可由图1中的处理器执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器中。
110.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
111.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
112.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以
存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
113.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1