CN102103672B - 一种主板的保护方法和装置 - Google Patents

一种主板的保护方法和装置 Download PDF

Info

Publication number
CN102103672B
CN102103672B CN200910189057XA CN200910189057A CN102103672B CN 102103672 B CN102103672 B CN 102103672B CN 200910189057X A CN200910189057X A CN 200910189057XA CN 200910189057 A CN200910189057 A CN 200910189057A CN 102103672 B CN102103672 B CN 102103672B
Authority
CN
China
Prior art keywords
mainboard
restricting condition
access times
key
system clock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200910189057XA
Other languages
English (en)
Other versions
CN102103672A (zh
Inventor
刘志超
申娟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Yanxiang Smart Technology Co ltd
Original Assignee
EVOC Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EVOC Intelligent Technology Co Ltd filed Critical EVOC Intelligent Technology Co Ltd
Priority to CN200910189057XA priority Critical patent/CN102103672B/zh
Publication of CN102103672A publication Critical patent/CN102103672A/zh
Application granted granted Critical
Publication of CN102103672B publication Critical patent/CN102103672B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明适用于计算机领域,提供了一种主板的保护方法和装置,所述方法包括下述步骤:A、将主板的使用限制条件存储至主板上不对客户开放的密钥空间;B、在程序引导阶段,从主板的密钥空间中读取主板的使用限制条件;C、监测主板的使用情况,并在主板的使用情况达到主板的使用限制条件时,系统挂起,限制对主板的继续使用。本发明实施例由于通过各种使用限制条件对主板的使用进行限制,从而不仅可以提供完整版本的软件给客户,以便客户对主板进行测试和试用,而且由于对主板的使用进行了限制,从而提高了主板的安全性,保证了主板厂商的利益。

Description

一种主板的保护方法和装置
技术领域
本发明属于计算机领域,尤其涉及一种主板的保护方法和装置。
背景技术
主板厂商在向客户提供主板时,一般都需要同时提供适用于该主板的软件,以使客户可以采用提供的软件对主板厂商提供的主板进行试用或测试。由于开发适用于该主板的软件也给主板厂商增加了成本,因此,主板厂商一般会提供适用于主板的试用版本的软件和完整版本的软件。其中试用版本的软件是在软件功能上相对于完整版本的软件做了裁剪得到的。在客户购买主板前,主板厂商向客户提供试用版本的软件,以使客户可以采用该试用版本的软件对主板厂商提供的主板进行试用或测试。而当客户购买主板后,向用户提供完整版本的软件。通过这种方式,达到对主板厂商提供的主板以及开发的适用于该主板的软件进行保护的目的。
但是由于试用版本的软件在软件功能上相对于完整版本的软件做了裁剪,因此,其功能没有完整版本的软件的功能齐全,不便于用户对主板进行试用和测试。同时由于没有对主板以及试用版本的软件进行任何保护,因此,容易被客户破解,安全性低,且可能损害主板厂商的利益。
发明内容
本发明实施例的目的在于提供一种主板的保护方法,旨在解决现有的主板保护方法安全度低、用户使用不便的问题。
本发明实施例是这样实现的,一种主板的保护方法,所述方法包括下述步骤:
A、将主板的使用限制条件存储至主板上不对客户开放的密钥空间,所述主板的使用限制条件包括设置标识、时间域、系统时钟修改次数;
B、在程序引导阶段,从主板的密钥空间中读取主板的使用限制条件,如果根据所述主板的使用限制条件中的设置标识判定主板的使用限制条件未被设置,则设置主板的使用限制条件;
C1’、从主板的时间设备中读取当前时间,并判断读取的当前时间是否超过主板的使用限制条件中的时间域,如果是,执行步骤C2’,如果否,执行步骤C3’;
C2’、系统挂起,终止正常引导内核启动,限制对主板的继续使用;
C3’、判断读取的当前时间是否早于主板的使用限制条件中的初始时间,如果是,执行所述步骤C4’,如果否,采用读取的当前时间更新主板的使用限制条件中的初始时间,并将主板的使用限制条件重新写入主板的密钥空间;
C4’、根据主板的使用限制条件中的系统时钟修改次数,判断对主板的系统时钟的实际修改次数是否超过预设的允许修改次数,如果是,执行所述步骤C2’,否则,将主板的使用限制条件重新写入主板的密钥空间。本发明实施例的另一目的在于提供一种主板的保护装置,其特征在于,所述装置包括:
密钥存储单元,用于存储主板的使用限制条件,所述主板的使用限制条件包括设置标识、时间域、系统时钟修改次数,所述密钥存储单元为主板上不对客户开放的密钥空间;
密钥读取单元,用于在程序引导阶段,从主板中的所述密钥存储单元中读取主板的使用限制条件;
密钥设置判断单元,用于根据主板的使用限制条件中的设置标识,判断主板的使用限制条件是否被设置;
密钥设置单元,用于在所述密钥设置判断单元判定主板的使用限制条件未被设置时,设置主板的使用限制条件;
主板使用限制单元,用于监测主板的使用情况,并在主板的使用情况达到主板的使用限制条件时,系统挂起,限制对主板的继续使用;
其中所述主板使用限制单元包括
时间域判断单元,用于从主板的时间设备中读取当前时间,并判断读取的当前时间是否超过主板的使用限制条件中的时间域;
当前时间判断单元,用于判断读取的当前时间是否早于主板的使用限制条件中保存的初始时间;
修改次数判断单元,用于在所述当前时间判断单元判定读取的当前时间早于主板的使用限制条件中保存的初始时间时,根据主板的使用限制条件中的系统时钟的修改次数,判断对主板的系统时钟的实际修改次数是否超过预设的允许修改次数;
主板限制单元,用于在所述时间域判断单元判定读取的当前时间超过主板的使用限制条件中的时间域,或者在所述修改次数判断单元判定对主板的系统时钟的实际修改次数超过预设的允许修改次数时,系统挂起,终止正常引导内核启动,限制对主板的继续使用;
密钥更新单元,用于将主板的使用限制条件重新写入主板的密钥空间。
在本发明实施例中,预先将主板的使用限制条件存储至主板上不对客户开放的密钥空间,在程序引导阶段,从该密钥空间中读取主板的使用限制条件,并在主板的使用情况达到主板的使用限制条件时,系统挂起,以限制对主板的继续使用,从而不仅可以提供完整版本的软件给客户,以便客户对主板进行测试和试用,而且由于对主板的使用进行了限制,从而提高了主板的安全性,保证了主板厂商的利益。
附图说明
图1是本发明实施例提供的主板保护方法的实现流程图;
图2是本发明实施例提供的图1中的步骤S103的具体实现流程图;
图3是本发明另一实施例提供的图1中的步骤S103的具体实现流程图;
图4是本发明实施例提供的主板保护装置的结构框图;
图5是本发明实施例提供的图3中的主板使用限制单元的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,预先将主板的使用限制条件存储至主板上不对客户开放的密钥空间,在程序引导阶段,从该密钥空间中读取主板的使用限制条件,并在主板的使用情况达到主板的使用限制条件时,系统挂起,以限制对主板的继续使用,从而不仅可以提供完整版本的软件给客户,以便客户对主板进行测试和试用,而且由于对主板的使用进行了限制,从而保证了主板厂商的利益。
图1示出了本发明实施例提供的主板保护方法的实现流程,详述如下:
在步骤S101中,将主板的使用限制条件存储至主板上不对客户开放的密钥空间。
一般主板上均存在有不向客户开放的硬件存储空间,如NOR Flash、NandFlash、CF卡、SD卡、电可擦可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM)、串行外设接口(Serial PeripheralInterface,SIP)Flash等。在本发明实施例中,将主板上存在的不向客户开放的硬件存储空间中的一种作为密钥空间,用于存储主板的使用限制条件。如将用于存放程序引导文件(BootLoader文件)的NOR Flash作为密钥空间。为了避免主板的使用限制条件与BootLoader文件发生冲突,在本发明实施例中,将用于存放程序引导文件(BootLoader文件)的NOR Flash的最后一个存储扇区作为密钥空间,存储主板的使用限制条件。
其中主板的使用限制条件为使用次数(times)。在本发明另一实施例中,主板的使用限制条件还包括时间域、系统时钟修改次数(error count)、软件版本(version)中的一个或多个组合。其中使用次数为主板的允许使用次数或者主板的实际累计使用次数。时间域是指允许用户使用该主板的时间段,可以采用任意时间格式,如yy-mm-dd-hh等格式。系统时钟修改次数为允许对主板的系统时钟进行修改的次数或者系统时钟的实际累计修改次数。软件版本是指适用于该主板的软件的版本。在本发明另一实施例中,该主板的使用限制条件还包括设置标识,该设置标识用于标识主板的使用限制条件是否被设置。
在具体实现时,可以定义主板的使用限制条件的数据结构(也称为密钥数据结构),并将该密钥数据结构存储至主板上的密钥空间。其中密钥数据结构举例说明如下:
Figure GSB00001008948600051
其中setted参数用于标识是否设置了主板的使用限制条件,如果设置了,setted参数的值为1,否则为0。version参数用于指示适用于该主板的软件的版本。times参数用于指示主板的允许使用次数或者主板的实际累计使用次数。yy、mm、dd、hh参数共同用于指示时间域。error_count参数用于指示允许对主板的系统时钟进行修改的次数或者系统时钟的实际累计修改次数。
其中步骤S101是本发明实施例的准备步骤,不一定在每次对主板进行保护时都执行。
在步骤S102中,在程序引导阶段,从主板的密钥空间中读取主板的使用限制条件。
在本发明实施例中,可以通过密钥读取函数,如′Get_CK_Info(structCK_Info*ck_info)函数,从主板的密钥空间中读取主板的使用限制条件。由于主板的存储介质可能各不相同,因此密钥读取函数的具体实现方法也可能不尽相同。由于根据主板的存储介质的不同,密钥读取函数的具体实现方法属于现有技术,在此举例说明如下,但不以该举例说明为限。
当在步骤S101中将主板的使用限制条件以数据结构(如名称为CK_info的密钥数据结构)的方式存储在主板的密钥空间时,则从主板的密钥空间中读取CK_info的密钥数据结构到内存。
如果使用NOR Flash存储主板的使用限制条件,其代码举例说明如下:
首先得到存放密钥的地址,然后从该地址中取出CK_info结构体,将其赋给ck_info指针。
其中FLASH_BYTE_SIZE为访问该Nor Flash的端口大小,一般是unsignedchar或者unsigned short,base_addr表示该Flash在主板中的地址。BIOS_SIZE表示该Flash芯片的容量。
在步骤S103中,监测主板的使用情况,并在主板的使用情况达到主板的使用限制条件时,系统挂起,限制对主板的继续使用。
在本发明实施例中,根据主板的使用限制条件中的使用次数,判断主板的实际使用次数是否超过预设的允许使用次数,并在主板的实际使用次数超过预设的允许使用次数时,系统挂起,停止引导内核启动,以限制对主板的继续使用。
当主板的使用限制条件中的使用次数为主板的允许使用次数时,上述步骤具体如下:
A、判断从主板的密钥空间中读取的使用次数(times)是否为0,即判断CK_info.times==0?,如果是,系统挂起,停止引导内核启动,以限制对主板的继续使用,否则,执行步骤B;
B、将从主板的密钥空间中读取的使用次数(times)减1,即设置CK_info.times=CK_info.times-1,并将主板的使用限制条件重新写入主板的密钥空间。
当主板的使用限制条件中的使用次数为主板的实际累计使用次数时,上述步骤具体如下:
A’、将从主板的密钥空间中读取的使用次数(times)加1,即设置CK_info.times=CK_info.times+1;
B’、判断经步骤A’处理后的使用次数(times)是否大于预设的阈值,如果是,系统挂起,停止引导内核启动,以限制对主板的继续使用,否则,将主板的使用限制条件重新写入主板的密钥空间。其中预设的阈值是预设的主板的允许使用次数,即如果预设的阈值为5,则判断CK_info.times>5?,系统挂起,停止引导内核启动,以限制对主板的继续使用,否则,将主板的使用限制条件重新写入主板的密钥空间。
一般情况下,主板在出厂时,均会设置好主板的密钥空间存储的主板的使用限制条件,这种情况下,从主板的密钥空间中读取的setted参数一般为已被设置。但是客户在使用主板过程中,可能采用某种方式清除了主板的密钥空间中存储的主板的使用限制条件,此时,从主板的密钥空间中读取的setted参数一般为未被设置。当主板的密钥空间中存储的主板的使用限制条件未被设置时,可能给本发明提供的方法造成影响,为了避免该问题,在本发明的优选实施例中,主板的使用限制条件包括使用次数和设置标识,此时,在判断主板的实际使用次数是否超过预设的允许使用次数前,该方法还包括下述步骤:
根据主板的使用限制条件中的设置标识判断主板的使用限制条件是否被设置,如果是,则根据主板的使用限制条件中的使用次数,判断主板的实际使用次数是否超过预设的允许使用次数,否则,设置主板的使用限制条件。
在本发明实施例中,通过判断读取的密钥数据结构中的setted参数是否被设置来判断主板的使用限制条件是否被设置,如果是,则主板的使用限制条件已被设置,否则,主板的使用限制条件未被设置。
在设置主板的使用限制条件时,可以通过密钥设置函数如Set_CK_Info(struct CK_Info*ck_info)函数,设置主板的使用限制条件。由于主板的存储介质可能各不相同,因此密钥设置函数的具体实现方法也可能不尽相同。由于根据主板的存储介质的不同,密钥设置函数的具体实现方法属于现有技术,在此不再赘述。
为了进一步提高对主板的保护力度,提高主板的安全性,在本发明的另一优选实施例中,主板的使用限制条件包括使用次数和软件版本,或者设置标识、使用次数和软件版本,此时,在判断主板的实际使用次数是否超过预设的允许使用次数之前或者之后,该方法还包括下述步骤:
判断主板当前所用的软件版本是否与主板的使用限制条件中的软件版本相符,并在判定主板当前所用的软件版本与主板的使用限制条件中的软件版本不符时,系统挂起,停止引导内核启动,以限制对主板的继续使用。
在本发明实施例中,主板厂商在向客户提供主板的同时,向客户提供适用于该主板的完整版本的软件,以使客户可以采用该完整版本的软件对主板进行测试和试用。为了对主板厂商提供的主板以及适用于该主板的完整版本的软件进行保护,在本发明实施例中,一套完整版本的软件仅适用于同一型号的主板,而且同一型号的主板也只能使用一套完整版本的软件。
在本发明另一实施例中,当主板中存在时间设备,且主板的使用限制条件为时间域时,则步骤S103具体为:
从主板的时间设备中读取当前时间,并判断读取的当前时间是否超过主板的使用限制条件中的时间域,在判定读取的当前时间超过主板的使用限制条件中的时间域时,系统挂起,停止引导内核启动,以限制对主板的继续使用。
在本发明的优选实施例中,主板的使用限制条件包括设置标识和时间域,此时,在判断读取的当前时间是否超过主板的使用限制条件中的时间域之前,该方法还包括下述步骤:
判断主板的使用限制条件是否被设置,如果是,则判断读取的当前时间是否超过主板的使用限制条件中的时间域,否则,设置主板的使用限制条件。
为了进一步提高对主板的保护力度,提高主板的安全性,在本发明的另一优选实施例中,主板的使用限制条件包括时间域和软件版本,或者时间域、软件版本和设置标识,此时,在判断读取的当前时间是否超过主板的使用限制条件中的时间域之前或者之后,该方法还包括下述步骤:
判断主板当前所用的软件版本是否与主板的使用限制条件中的软件版本相符,并在判定主板当前所用的软件版本与主板的使用限制条件中的软件版本不符时,系统挂起,停止引导内核启动,以限制对主板的继续使用。为了避免用户无限制的对主板的使用限制条件中的初始时间进行修改,进一步提高对主板的保护力度,在本发明另一优选实施例中,主板的使用限制条件包括使用次数和系统时钟修改次数,或者使用次数、系统时钟修改次数和软件版本,或者使用次数、系统时钟修改次数、设置标识和软件版本,此时,在判定读取的当前时间未超过主板的使用限制条件中的时间域之后,该方法还包括下述步骤:
判断读取的当前时间是否早于主板的使用限制条件中的初始时间,如果否,采用读取的当前时间更新主板的使用限制条件中的初始时间,并将主板的使用限制条件重新写入主板的密钥空间,如果是,根据主板的使用限制条件中的系统时钟修改次数,判断对主板的系统时钟的实际修改次数是否超过预设的允许修改次数,如果是,系统挂起,终止正常引导内核启动,以限制对主板的继续使用,否则,将主板的使用限制条件重新写入主板的密钥空间。
图2示出了本发明实施提供的图1所示的步骤S103的具体实现流程,其中主板的使用限制条件包括设置标识、使用次数、时间域和软件版本,详述如下:
在步骤S201中,根据主板的使用限制条件中的设置标识,判断主板的使用限制条件是否被设置,如果是,执行步骤S203,否则,执行步骤S202。
在本发明实施例中,通过判断读取的密钥数据结构中的setted参数是否被设置来判断主板的使用限制条件是否被设置,如果是,则主板的使用限制条件已被设置,否则,主板的使用限制条件未被设置。
一般情况下,主板在出厂时,均会设置好主板的密钥空间存储的主板的使用限制条件,这种情况下,从主板的密钥空间中读取的setted参数一般为已被设置。但是客户在使用主板过程中,可能采用某种方式清除了主板的密钥空间中存储的主板的使用限制条件,此时,从主板的密钥空间中读取的setted参数一般为未被设置。
在步骤S202中,设置主板的使用限制条件。
在本发明实施例中,设置主板的使用限制条件包括但不限于设置使用次数(times)、时间域(yy-mm-dd-hh)等。其中时间域是初始时间与最长使用时间之和。在设置主板的使用限制条件时,设置该主板的初始时间,即采用CK_info结构体中的一组参数yy-mm-dd-hh保存设置的初始时间,通过将设置的主板的初始时间加上预设的最长使用时间,即得到主板的使用限制条件中的时间域。其中最长使用时间一般是主板出厂时即已设定,一般是不允许修改的。
在本发明实施例中,可以通过密钥设置函数实现,如Set_CK_Info(structCK_Info*ck_info)函数,设置主板的使用限制条件。由于主板的存储介质可能各不相同,因此密钥设置函数的具体实现方法也可能不尽相同。由于根据主板的存储介质的不同,密钥设置函数的具体实现方法属于现有技术,在此不再赘述。
在步骤S203中,判断主板当前所用的软件版本是否与主板的使用限制条件中的软件版本相符,如果是,执行步骤S204,否则执行步骤S208。
在本发明实施例中,主板厂商在向客户提供主板的同时,向客户提供适用于该主板的完整版本的软件,以使客户可以采用该完整版本的软件对主板进行测试和试用。为了对主板厂商提供的主板以及适用于该主板的完整版本的软件进行保护,在本发明实施例中,一套完整版本的软件仅适用于同一型号的主板,而且同一型号的主板也只能使用一套完整版本的软件。
在步骤S204中,根据主板的使用限制条件中的使用次数,判断主板的实际使用次数是否超过预设的允许使用次数,如果是,执行步骤S208,否则,执行步骤S205。
当主板的使用限制条件中的使用次数为主板的允许使用次数时,步骤S204的具体如下:
A、判断从主板的密钥空间中读取的使用次数(times)是否为0,即判断CK_info.times==0?,如果是,则执行步骤S208,否则,执行步骤B;
B、将从主板的密钥空间中读取的使用次数(times)减1,即设置CK_info.times=CK_info.times-1。并继续执行步骤S205。
当主板的使用限制条件中的使用次数为主板的实际累计使用次数时,步骤S204的具体步骤如下:
A’、将从主板的密钥空间中读取的使用次数(times)加1,即设置CK_info.times=CK_info.times+1;
B’、判断经步骤A’处理后的使用次数(times)是否大于预设的阈值,如果是,则执行步骤S208,否则,执行步骤S205。其中预设的阈值是预设的主板的允许使用次数,即如果预设的阈值为5,则判断CK_info.times>5?,如果是,执行步骤S208,否则,执行步骤S205。
在步骤S205中,判断主板中是否存在时间设备(也称为RTC设备),如果是,执行步骤S206,否则执行步骤S207。
在步骤S206中,从主板的时间设备中读取当前时间,并判断读取的当前时间是否超过主板的使用限制条件中的时间域,如果是,执行步骤S208,否则,执行步骤S207。
在本发明实施例中,读取的当前时间的格式一般与主板的使用限制条件中时间域的格式一致,如为yy-mm-dd-hh格式。
其中主板的使用限制条件中的时间域是主板的使用限制条件中保存的初始时间与预设的最长使用时间之和。
在步骤S207中,将主板的使用限制条件重新写入主板的密钥空间,不再执行以下步骤。
在本发明实施例中,通过上述步骤后,主板的使用限制条件发生了变化,如设置标识、使用次数等可能全部或者部分发生了改变,将改变后的主板的使用限制条件重新写入主板的密钥空间。
在步骤S208中,系统挂起,终止正常引导内核启动,以限制对主板的继续使用。
综上所述,通过图2所示的步骤,即可实现在主板的使用情况达到主板的使用限制条件时,系统挂起,以限制对主板的继续使用。
在本发明实施例中,对软件版本的判断是为了使主板得到更好的保护,该步骤在具体实现时,可以省略。另外对主板的使用限制条件是否进行设置的判断也是为了达到更好的效果而增加的,该步骤在具体实现时,也可以省略。
可以理解,判断主板的实际使用情况是否达到主板的使用限制条件时,不以图2所示的判断顺序为限,可以以任意顺序进行判断,在此不再赘述。
图3示出了本发明另一实施例提供的图1所示的步骤S103的具体实现流程,其中主板的使用限制条件包括使用次数、时间域、软件版本和系统时钟修改次数,详述如下:
在步骤S301中,判断主板的使用限制条件是否被设置,如果是,执行步骤S303,否则,执行步骤S302。
在步骤S302中,设置主板的使用限制条件。
在本发明实施例中,设置主板的使用限制条件包括但不限于设置使用次数(times)、时间域(yy-mm-dd-hh)等。其中时间域是初始时间与最长使用时间之和。在设置主板的使用限制条件时,设置该主板的初始时间,即采用CK_info结构体中的一组参数yy-mm-dd-hh保存设置的初始时间,通过将设置的主板的初始时间加上预设的最长使用时间,即得到主板的使用限制条件中的时间域。其中最长使用时间一般是主板出厂时即已设定,一般是不允许修改的。
在步骤S303中,判断主板当前所用的软件版本是否与主板的使用限制条件中的软件版本相符,如果是,执行步骤S304,否则执行步骤S3011。
在步骤S304中,根据主板的使用限制条件中的使用次数,判断主板的实际使用次数是否超过预设的允许使用次数,如果是,执行步骤S3011,否则,执行步骤S305。其具体过程如上所述,在此不再赘述。
在步骤S305中,判断主板中是否存在时间设备(也称为RTC设备),如果是,执行步骤S306,否则执行步骤S3010。
在步骤S306中,从主板的时间设备中读取当前时间,并判断读取的当前时间是否超过主板的使用限制条件中的时间域,如果是,执行步骤S3011,否则,执行步骤S307。
在步骤S307中,判断读取的当前时间是否早于主板的使用限制条件中的初始时间,如果是,执行步骤S308,否则,执行步骤S309。
在步骤S308中,根据主板的使用限制条件中的系统时钟修改次数,判断对主板的系统时钟的实际修改次数是否超过预设的允许修改次数,如果是,执行步骤S3011,否则,执行步骤S3010。
当主板的使用限制条件中的系统时钟修改次数为允许对主板的系统时钟进行修改的次数时,步骤S308的具体步骤如下:
A1、判断从主板的密钥空间中读取的系统时钟修改次数(error_count)是否为0,即判断CK_info.error_count==0?,如果是,则执行步骤82011,否则,执行步骤B1;
B1、将从主板的密钥空间中读取的系统时钟修改次数(error_count)减1,并继续执行步骤S3010。即设置CK_info.error_count=CK_info.error_count-1。
在本发明另一实施例中,当从主板的密钥空间中读取的系统时钟修改次数为系统时钟的实际累计修改次数时,步骤S308的具体步骤还可以如下:
A1’、将从主板的密钥空间中读取的系统时钟修改次数(error_count)加1,即设置CK_info.error_count=CK_info.error_count+1;
B1’、判断经步骤A1’处理后的系统时钟修改次数(error_count)是否超过预设的值(如5),即此时设置的允许修改次数为5,即判断CK_info.error_count>5?,如果是,则执行步骤S3011,否则,执行步骤S3010。
在步骤S309中,采用读取的当前时间更新主板的使用限制条件中的初始时间。
在步骤S3010中,将主板的使用限制条件重新写入主板的密钥空间。
在本发明实施例中,通过上述步骤后,主板的使用限制条件发生了变化,如设置标识、使用次数、时间域、系统时钟修改次数等可能全部或者部分发生了改变,将改变后的主板的使用限制条件重新写入主板的密钥空间。
在步骤S3011中,系统挂起,终止正常引导内核启动,以限制对主板的继续使用。
为了提示用户设置正确的系统时钟,以使用户在主板的使用限制条件中的时间域内可以正常使用主板,在本发明另一实施例中,在步骤S308中判断对主板的系统时钟的实际修改次数未超过预设的允许修改次数时,该方法还包括下述步骤:
打印信息,并提示客户有预设次启动机会来更新系统时钟。并继续执行步骤S3010。
综上所述,通过图3所示的步骤,即可实现在主板的使用情况达到主板的使用限制条件时,系统挂起,以限制对主板的继续使用。
可以理解,在本发明实施例中,对软件版本的判断是为了使主板得到更好的保护,该步骤在具体实现时,可以省略。另外对主板的使用限制条件是否进行设置的判断也是为了达到更好的效果而增加的,该步骤在具体实现时,也可以省略。
可以理解,判断主板的实际使用情况是否达到主板的使用限制条件时,不以图3所示的顺序为限,可以以任意顺序进行判断,在此不再赘述。
图4示出了本发明实施例提供的主板保护装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该主板保护装置可以是内置于计算机系统中的软件单元、硬件单元或者软硬件相结合的单元,或者作为独立的挂件集成到计算机系统或者计算机系统的应用系统中。其中:
设置于主板上不向客户开放的密钥存储单元1存储主板的使用限制条件。该密钥存储单元1可以为NORFlash、NandFlash、CF卡、SD卡、EEPROM、SPI Flash等。在本发明实施例中,将用于存放BootLoader文件的NOR Flash作为密钥存储单元1。为了避免主板的使用限制条件与BootLoader文件发生冲突,在本发明实施例中,将用于存放BootLoader文件的NOR Flash的最后一个存储扇区作为密钥存储单元1。
其中主板的使用限制条件为使用次数(times)。在本发明另一实施例中,主板的使用限制条件还包括时间域、系统时钟修改次数(error_count)、软件版本(version)中的一个或多个组合。其中使用次数为主板的允许使用次数或者主板的实际累计使用次数。时间域是指允许用户使用该主板的时间段,可以采用任意时间格式,如yy-mm-dd-hh等格式。系统时钟修改次数为允许对主板的系统时钟进行修改的次数或者系统时钟的实际累计修改次数。软件版本是指适用于该主板的软件的版本。在本发明另一实施例中,该主板的使用限制条件还包括设置标识,该设置标识用于标识主板的使用限制条件是否被设置。
密钥读取单元2在程序引导阶段,从设置于主板中的密钥存储单元1中读取主板的使用限制条件。
在本发明实施例中,可以通过密钥读取函数,如Get_CK-Info(structCK-Info*ck_info)函数,从主板的密钥空间中读取主板的使用限制条件。由于主板的存储介质可能各不相同,因此密钥读取函数的具体实现方法也可能不尽相同。由于根据主板的存储介质的不同,密钥读取函数的具体实现方法属于现有技术,在此不再赘述。
主板使用限制单元3监测主板的使用情况,并在主板的使用情况达到密钥读取单元2读取的主板的使用限制条件时,系统挂起,以限制对主板的继续使用。
图5是本发明实施例提供的图4所示的主板使用限制单元3的具体结构,为了便于说明,仅示出了与本发明实施例相关的部分。
当主板的使用限制条件为使用次数时,该主板使用限制单元3包括使用次数判断单元31、主板限制单元32和密钥更新单元33。其中:
使用次数判断单元31根据主板的使用限制条件中的使用次数,判断主板的实际使用次数是否超过预设的允许使用次数,并在判定主板的实际使用次数未超过预设的允许使用次数时,触发密钥更新单元33。
主板限制单元32在使用次数判断单元31判定主板的实际使用次数超过预设的允许使用次数时,系统挂起,终止正常引导内核启动,限制对主板的继续使用。
密钥更新单元33将主板的使用限制条件重新写入主板的密钥空间。在本发明实施例中,密钥更新单元33在将主板的使用限制条件重新写入主板的密钥空间时,仅将发生改变的主板的使用限制条件重新写入主板的密钥空间,也可以将所有主板的使用限制条件均重新写入主板的密钥空间。
在本发明实施例中,当主板的使用限制条件中的使用次数为主板的允许使用次数时,该使用次数判断单元31包括第一使用次数判断模块(图中未示出)和使用次数递减模块(图中未示出);当主板的使用限制条件中的使用次数为主板的实际累计使用次数时,该使用次数判断单元31包括第二使用次数判断模块(图中未示出)和使用次数递增模块(图中未示出)。其中:
第一使用次数判断模块判断从主板的密钥空间中读取的使用次数是否为0,并在判定从主板的密钥空间中读取的使用次数为0时,触发主板限制单元32。
使用次数递减模块在第一使用次数判断模块判定从主板的密钥空间中读取的使用次数不为0时,将从主板的密钥空间中读取的使用次数减1,并触发密钥更新单元33。
使用次数递增模块将从主板的密钥空间中读取的使用次数加1。
第二使用次数判断模块判断使用次数递增模块处理后的使用次数是否大于预设的阈值,如果是,触发主板限制单元32,否则,触发密钥更新单元33。其中预设的阈值是预设的主板的允许使用次数。
在本发明另一实施例中,当主板的使用限制条件为时间域时,该主板使用限制单元3包括时间域判断单元34和主板限制单元32。其中:
时间域判断单元34判断从主板的时间设备中读取的当前时间是否超过主板的使用限制条件中的时间域。此时,主板限制单元32在时间域判断单元34判定从主板的时间设备中读取的当前时间超过主板的使用限制条件中的时间域时,系统挂起,终止正常引导内核启动,限制对主板的继续使用。
在本发明实施例中,从主板的时间设备中读取的当前时间的格式一般与主板的使用限制条件中时间域的格式一致,如为yy-mm-dd-hh格式。
在本发明另一实施例中,当主板的使用限制条件为使用次数和时间域时,该主板使用限制单元3包括使用次数判断单元31、主板限制单元32、密钥更新单元33和时间域判断单元34。此时,主板限制单元32在使用次数判断单元31判定主板的实际使用次数超过预设的允许使用次数时,或者在时间域判断单元34判定从主板的时间设备中读取的当前时间超过主板的使用限制条件中的时间域时,系统挂起,终止正常引导内核启动,限制对主板的继续使用。
在本发明另一实施例中,当主板的使用限制条件包括时间域和系统时钟修改次数时,该主板使用限制单元3包括主板限制单元32、密钥更新单元33、时间域判断单元34、当前时间判断单元35、修改次数判断单元36和初始时间更新单元37。其中:
当前时间判断单元35判断从主板的时间设备中读取的当前时间是否早于主板的使用限制条件中保存的初始时间。
修改次数判断单元36在当前时间判断单元35判定从主板的时间设备中读取的当前时间早于主板的使用限制条件中保存的初始时间时,根据主板的使用限制条件中的系统时钟的修改次数,判断对主板的系统时钟的实际修改次数是否超过预设的允许修改次数。此时,主板限制单元32在时间域判断单元34判定从主板的时间设备中读取的当前时间超过主板的使用限制条件中的时间域时,或者在修改次数判断单元36判定对主板的系统时钟的实际修改次数超过预设的允许修改次数时,系统挂起,终止正常引导内核启动,以限制对主板的继续使用。
在本发明实施例中,当主板的使用限制条件中的系统时钟的修改次数为允许对主板的系统时钟进行修改的次数时,该修改次数判断单元36包括第一修改次数判断模块(图中未示出)和修改次数递减模块(图中未示出);当从主板的密钥空间中读取的系统时钟修改次数为系统时钟的实际累计修改次数时,该修改次数判断单元36包括第二修改次数判断模块(图中未示出)和修改次数递增模块(图中未示出)。其中:
第一修改次数判断模块判断从主板的密钥空间中读取的系统时钟修改次数是否为0,并在判定从主板的密钥空间中读取的系统时钟修改次数为0时,触发主板限制单元32。
修改次数递减模块在第一修改次数判断模块判定从主板的密钥空间中读取的系统时钟修改次数不为0时,将从主板的密钥空间中读取的系统时钟修改次数减1,并触发密钥更新单元33。
修改次数递增模块将从主板的密钥空间中读取的系统时钟修改次数加1。
第二修改次数判断模块判断修改次数递增模块处理后的系统时钟修改次数是否超过预设的允许修改次数,如果是,触发主板限制单元33,否则,触发密钥更新单元33。
初始时间更新单元37在当前时间判断单元35判定从主板的时间设备中读取的当前时间晚于或者等于主板的使用限制条件中保存的初始时间时,采用读取的当前时间更新主板的使用限制条件中的初始时间,并在更新主板的使用限制条件中的初始时间后,触发密钥更新单元33。
在本发明另一实施例中,当主板的使用限制条件包括使用次数、时间域和系统时钟修改次数时,该主板使用限制单元3包括使用次数判断单元31、主板限制单元32、密钥更新单元33、时间域判断单元34、当前时间判断单元35、修改次数判断单元36和初始时间更新单元37。此时,主板限制单元32在使用次数判断单元31判定主板的实际使用次数超过预设的允许使用次数时,或者在时间域判断单元34判定从主板的时间设备中读取的当前时间超过主板的使用限制条件中的时间域时,,或者在修改次数判断单元36判定对主板的系统时钟的实际修改次数超过预设的允许修改次数时,系统挂起,终止正常引导内核启动,以限制对主板的继续使用。
在本发明另一实施例中,当主板的使用限制条件包括设置标识、软件版本、使用次数、时间域、系统时钟修改次数时,该主板使用限制单元3还包括密钥设置判断单元38、密钥设置单元39和软件版本判断单元310,其中:密钥设置判断单元38根据主板的使用限制条件中的设置标识判断主板的使用限制条件是否被设置。
一般情况下,主板在出厂时,均会设置好密钥存储单元1中存储的主板的使用限制条件。但是客户在使用主板过程中,可能采用某种方式清除了密钥存储单元1中存储的主板的使用限制条件,此时,密钥存储单元1中存储的主板的使用限制条件一般为未被设置。
密钥设置单元39在密钥设置判断单元38判定主板的使用限制条件未被设置时,设置主板的使用限制条件。
在本发明实施例中,设置主板的使用限制条件包括但不限于设置使用次数(times)、时间域(yy-mm-dd-hh)、系统时钟修改次数(eroor_count)等。其中时间域是初始时间与最长使用时间之和。在设置主板的使用限制条件时,设置该主板的初始时间,即采用CK_info结构体中的一组参数yy-mm-dd-hh保存设置的初始时间,通过将设置的主板的初始时间加上预设的最长使用时间,即得到主板的使用限制条件中的时间域。其中最长使用时间一般是主板出厂时即已设定,一般是不允许修改的。
在本发明实施例中,可以通过密钥设置函数,如Set_CK_Info(structCK_Info*ck_info)函数,设置主板的使用限制条件。由于主板的存储介质可能各不相同,因此密钥设置函数的具体实现方法也可能不尽相同。由于根据主板的存储介质的不同,密钥设置函数的具体实现方法属于现有技术,在此不再赘述。
软件版本判断单元310判断主板当前所用的软件版本是否与主板的使用限制条件中的软件版本相符,并在判定主板当前所用的软件版本与主板的使用限制条件中的软件版本不符时,触发主板限制单元32。
在本发明实施例中,主板厂商在向客户提供主板的同时,向客户提供适用于该主板的完整版本的软件,以使客户可以采用该完整版本的软件对主板进行测试和试用。为了对主板厂商提供的主板以及适用于该主板的完整版本的软件进行保护,在本发明实施例中,一套完整版本的软件仅适用于一块主板,而且一块主板也只能使用一套完整版本的软件。
为了提示用户设置正确的系统时钟,以使用户在主板的使用限制条件中的时间域内可以正常使用主板,在本发明另一实施例中,该装置还包括信息提示单元311。该信息提示单元311在修改次数判断单元36判定对主板的系统时钟的实际修改次数没有超过预设的允许修改次数时,打印信息,并提示客户有预设次启动机会来更新系统时钟。
可以理解,由于在图5所示的主板使用限制单元中,主板的使用限制条件包括使用次数、时间域、系统时钟修改次数和软件版本,当主板的使用限制条件仅包括使用次数、时间域、系统时钟修改次数和软件版本中一种、两种或三种时,图5所示的主板使用限制单元应相应的减少与相应的主板的使用限制条件对应的单元,且其判断步骤也可以任意。
在本发明实施例中,通过预先将主板的使用限制条件存储至主板上不对客户开放的密钥空间,在程序引导阶段,从该密钥空间中读取主板的使用限制条件,并在主板的使用情况达到主板的使用限制条件时,系统挂起,以限制对主板的继续使用,从而不仅可以提供完整版本的软件给客户,以便客户对主板进行测试和试用,而且由于对主板的使用进行了限制,从而提高了主板的安全性,保证了主板厂商的利益。由于可以通过主板的使用次数、使用时限、软件版本、系统时钟修改次数等多个条件对主板的使用进行控制,从而进一步提高了主板的安全性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种主板的保护方法,其特征在于,所述方法包括下述步骤: 
A、将主板的使用限制条件存储至主板上不对客户开放的密钥空间,所述主板的使用限制条件包括设置标识、时间域、系统时钟修改次数; 
B、在程序引导阶段,从主板的密钥空间中读取主板的使用限制条件,如果根据所述主板的使用限制条件中的设置标识判定主板的使用限制条件未被设置,则设置主板的使用限制条件; 
C1’、从主板的时间设备中读取当前时间,并判断读取的当前时间是否超过主板的使用限制条件中的时间域,如果是,执行步骤C2’,如果否,执行步骤C3’; 
C2’、系统挂起,终止正常引导内核启动,限制对主板的继续使用; 
C3’、判断读取的当前时间是否早于主板的使用限制条件中的初始时间,如果是,执行步骤C4’,如果否,采用读取的当前时间更新主板的使用限制条件中的初始时间,并将主板的使用限制条件重新写入主板的密钥空间; 
C4’、根据主板的使用限制条件中的系统时钟修改次数,判断对主板的系统时钟的实际修改次数是否超过预设的允许修改次数,如果是,执行所述步骤C2’,否则,将主板的使用限制条件重新写入主板的密钥空间。 
2.如权利要求1所述的方法,其特征在于,所述主板的使用限制条件还包括使用次数,所述方法还包括: 
C1、根据主板的使用限制条件中的使用次数,判断主板的实际使用次数是否超过预设的允许使用次数,并在主板的实际使用次数超过预设的允许使用次数时,执行所述步骤C2’。 
3.如权利要求2所述的方法,其特征在于,当主板的使用限制条件中的使用次数为主板的允许使用次数时,所述步骤C1具体为: 
C11、判断从主板的密钥空间中读取的使用次数是否为0,如果是,执行所述步骤C2’,否则,执行步骤C12; 
C12、将从主板的密钥空间中读取的使用次数减1,并将主板的使用限制条件重新写入主板的密钥空间; 
当主板的使用限制条件中的使用次数为主板的实际累计使用次数时,所述步骤C1具体为: 
C13、将从主板的密钥空间中读取的使用次数加1; 
C14、判断步骤C13处理后的使用次数是否大于预设的阈值,所述预设的阈值是预设的主板的允许使用次数,如果是,执行所述步骤C2’,否则,将主板的使用限制条件重新写入主板的密钥空间。 
4.如权利要求1所述的方法,其特征在于,当主板的使用限制条件中的系统时钟修改次数为允许对主板的系统时钟进行修改的次数时,所述步骤C4’具体为: 
C41’、判断从主板的密钥空间中读取的系统时钟修改次数是否为0,如果是,执行所述步骤C2’,否则,执行步骤C42’; 
C42’、将从主板的密钥空间中读取的系统时钟修改次数减1,并将主板的使用限制条件重新写入主板的密钥空间; 
当从主板的密钥空间中读取的系统时钟修改次数为系统时钟的实际累计修改次数时,所述步骤C4’具体为: 
C43’、将从主板的密钥空间中读取的系统时钟修改次数加1; 
C44’、判断经所述步骤C43’处理后的系统时钟修改次数是否超过预设的允许修改次数,如果是,执行所述步骤C2’,否则,将主板的使用限制条件重新写入主板的密钥空间。 
5.如权利要求1至4任一权利要求所述的方法,其特征在于,所述方法还包括下述步骤: 
判断主板当前所用的软件版本是否与主板的使用限制条件中的软件版本相符,并在判定为不符时,执行所述步骤C2’ 。
6.一种主板的保护装置,其特征在于,所述装置包括: 
密钥存储单元,用于存储主板的使用限制条件,所述主板的使用限制条件包括设置标识、时间域、系统时钟修改次数,所述密钥存储单元为主板上不对客户开放的密钥空间; 
密钥读取单元,用于在程序引导阶段,从主板中的所述密钥存储单元中读取主板的使用限制条件; 
密钥设置判断单元,用于根据主板的使用限制条件中的设置标识,判断主板的使用限制条件是否被设置; 
密钥设置单元,用于在所述密钥设置判断单元判定主板的使用限制条件未被设置时,设置主板的使用限制条件; 
主板使用限制单元,用于监测主板的使用情况,并在主板的使用情况达到主板的使用限制条件时,系统挂起,限制对主板的继续使用; 
其中所述主板使用限制单元包括: 
时间域判断单元,用于从主板的时间设备中读取当前时间,并判断读取的当前时间是否超过主板的使用限制条件中的时间域; 
当前时间判断单元,用于判断读取的当前时间是否早于主板的使用限制条件中保存的初始时间; 
修改次数判断单元,用于在所述当前时间判断单元判定读取的当前时间早于主板的使用限制条件中保存的初始时间时,根据主板的使用限制条件中的系统时钟的修改次数,判断对主板的系统时钟的实际修改次数是否超过预设的允许修改次数; 
主板限制单元,用于在所述时间域判断单元判定读取的当前时间超过主板的使用限制条件中的时间域,或者在所述修改次数判断单元判定对主板的系统时钟的实际修改次数超过预设的允许修改次数时,系统挂起,终止正常引导内核启动,限制对主板的继续使用; 
密钥更新单元,用于将主板的使用限制条件重新写入主板的密钥空间。 
7.如权利要求6所述的装置,其特征在于,所述主板使用限制单元还包括 使用次数判断单元; 
所述使用次数判断单元用于根据主板的使用限制条件中的使用次数,判断主板的实际使用次数是否超过预设的允许使用次数; 
所述主板限制单元还用于在所述使用次数判断单元判定主板的实际使用次数超过预设的允许使用次数时系统挂起,终止正常引导内核启动,限制对主板的继续使用。 
8.如权利要求6或7所述的装置,其特征在于,所述主板使用限制单元还包括: 
软件版本判断单元,用于判断主板当前所用的软件版本是否与主板的使用限制条件中的软件版本相符,并在判定为不符时,触发所述主板限制单元。 
CN200910189057XA 2009-12-17 2009-12-17 一种主板的保护方法和装置 Active CN102103672B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910189057XA CN102103672B (zh) 2009-12-17 2009-12-17 一种主板的保护方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910189057XA CN102103672B (zh) 2009-12-17 2009-12-17 一种主板的保护方法和装置

Publications (2)

Publication Number Publication Date
CN102103672A CN102103672A (zh) 2011-06-22
CN102103672B true CN102103672B (zh) 2013-10-09

Family

ID=44156431

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910189057XA Active CN102103672B (zh) 2009-12-17 2009-12-17 一种主板的保护方法和装置

Country Status (1)

Country Link
CN (1) CN102103672B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1527208A (zh) * 2003-09-25 2004-09-08 联想(北京)有限公司 基于身份认证的计算机安全及加密的实现方法和装置
CN101192257A (zh) * 2006-11-20 2008-06-04 鸿富锦精密工业(深圳)有限公司 电子装置及该电子装置的开启方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1527208A (zh) * 2003-09-25 2004-09-08 联想(北京)有限公司 基于身份认证的计算机安全及加密的实现方法和装置
CN101192257A (zh) * 2006-11-20 2008-06-04 鸿富锦精密工业(深圳)有限公司 电子装置及该电子装置的开启方法

Also Published As

Publication number Publication date
CN102103672A (zh) 2011-06-22

Similar Documents

Publication Publication Date Title
JP4759059B2 (ja) メモリページをプログラムに対応付けるページカラーリング
EP2549380B1 (en) Information processing device, virtual machine generation method, and application software distribution system
US9389793B2 (en) Trusted execution and access protection for embedded memory
KR101835250B1 (ko) 트랜잭셔널 메모리를 사용한 비인가 메모리 수정 및 액세스의 검출
EP2888691B1 (en) Data processing apparatus and method using secure domain and less secure domain
EP2842041B1 (en) Data processing system and method for operating a data processing system
US9710340B2 (en) Replacement of a corrupt driver variable record
US10210349B2 (en) Data processing apparatus and method using secure domain and less secure domain
GB2501343A (en) Data processing apparatus and method using secure domain and less secure domain
EP3864555B1 (en) Verifying a stack pointer
CN110968254B (zh) 一种非易失性存储器的分区保护方法及装置
JP3563412B2 (ja) コードシーケンスを変更する方法及び関連の装置
CN103455750B (zh) 一种嵌入式设备的高安验证方法及装置
US7328323B1 (en) Heap buffer overflow exploitation prevention system and method
CN102103672B (zh) 一种主板的保护方法和装置
CN109446755B (zh) 内核钩子函数保护方法、装置、设备以及存储介质
CN101231599B (zh) 一种定位特定内存被函数非法改写的方法
CN110135197A (zh) 一种SoC芯片的可靠性实时保护方法
CN106127054A (zh) 一种面向智能设备控制指令的系统级安全防护方法
US20180004947A1 (en) Enhanced control transfer security
WO2022135686A1 (en) Method for securing a computing device from memory corruption and computing device
RU2328078C2 (ru) Система для выборочного задействования режимов работы устройства
CN107608782B (zh) 内存压缩的方法及装置、操作系统、电子设备
Degani et al. μ IPS: Software-Based Intrusion Prevention for Bare-Metal Embedded Systems
JP4423849B2 (ja) データ保護システム、データ保護プログラム及びデータ保護方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230712

Address after: 518000 1701, Yanxiang Science and Technology Building, No. 31, High-tech Middle 4th Road, Maling Community, Yuehai Street, Nanshan District, Shenzhen, Guangdong Province

Patentee after: Shenzhen Yanxiang Smart Technology Co.,Ltd.

Address before: 518057 Guangdong city of Shenzhen province Nanshan District high in the four EVOC Technology Building No. 31

Patentee before: EVOC INTELLIGENT TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right