CN102033822A - 一种存储操作***与硬件***的绑定方法 - Google Patents
一种存储操作***与硬件***的绑定方法 Download PDFInfo
- Publication number
- CN102033822A CN102033822A CN 201010575656 CN201010575656A CN102033822A CN 102033822 A CN102033822 A CN 102033822A CN 201010575656 CN201010575656 CN 201010575656 CN 201010575656 A CN201010575656 A CN 201010575656A CN 102033822 A CN102033822 A CN 102033822A
- Authority
- CN
- China
- Prior art keywords
- operating system
- information
- storage operating
- hardware
- usb flash
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种存储操作***与硬件***的绑定方法,包括以下步骤:1、在U盘固件中设置一条用户自定义指令;2、在磁盘阵列上,自内存地址0xFFFF0开始,读取一定长度的信息;3、将前两步的返回值经过MD5算法处理后得到一个128bit位的信息摘要;4、在存储操作***出厂时,将信息摘要存放在U盘上某个特定文件中;5、在initrd中编写一个可执行文件,负责对硬件平台进行综合检验;6、在/init文件中执行设备的挂载操作时,先调用initrd中的可执行文件,对硬件平台进行综合检验:如果未通过则***启动失败。本发明利用硬件信息的组合对操作***进行保护、可靠性高,较早并且有效的阻止了对存储操作***的非法使用。
Description
技术领域
本发明涉及一种软硬件绑定方法,具体涉及一种将存储操作***与硬件***进行绑定的有效方法,属于计算机存储管理领域。
背景技术
现在的磁盘阵列厂商在开发磁盘阵列产品时,所开发的磁盘阵列一般由针对该磁盘阵列开发的存储操作***进行控制管理。有的存储操作***被制作成USB启动盘格式;制作好的U盘以配件形式安装在该品牌磁盘阵列的主板或控制器上,便于插拔和替换。用户每购买一台该品牌的磁盘阵列,也就等于拥有了一份该存储操作***的拷贝,进而通过该操作***,实现对磁盘阵列内数据的存储组织、访问和管理。
如果不在软件层面对存储操作***做任何处理,非法用户完全可以对***所使用的U盘,以及该品牌磁盘阵列所使用的主板或控制器进行仿制,搭建起存储操作***所应用的特定硬件环境,进而通过对***的简单拷贝,将其应用在对任意品牌磁盘阵列的管理中,这显然不利于存储操作***软件著作权的保护。
常见的保护方法中,一般是将软件***与存储介质进行绑定,比如,可以提取其存放介质——U盘的序列号等硬件信息,然后将软件***与U盘进行绑定,但这种绑定方法属于常规思路,很容易想到,加之U盘的硬件信息,很容易利用工具进行刷新,导致该方法的安全程度不高;也有的为了保护自己的软件***,将其与特定硬件平台相互绑定,比如,可以提取软件运行主机平台的主板BIOS信息,由于刷新BIOS的难度较大,该方法相对于绑定U盘等移动设备的效果要好,但BIOS内可以有效利用的信息有限,且存在蓄意伪造的可能,单独利用此信息对软件进行保护,就存在一定的局限性。
发明内容
本发明的目的在于提供一种将存储操作***与硬件***进行绑定的有效方法,以达到对U盘上自主开发的存储操作***进行保护的目的。该方法需要将操作***与U盘固件和磁盘阵列硬件平台同时进行绑定,利用两者信息的组合对软件进行保护,可以更为有效的实现对存储操作***软件著作权的保护。
本方法适用于一类特定的存储操作***,这类操作***具有以下特征:它用自主设计的U盘作为存储介质,被制作成USB启动盘格式;制作好的U盘以配件形式安装在该品牌磁盘阵列的主板或控制器上,便于插拔和替换。制作好的U盘主要包括两个文件夹:一个是boot目录,用于存放存储操作***的内核和启动引导程序;另一个是以文件形式组织的netstor目录,主要用于构建存储操作***的软件环境。该存储操作***本身是一个内核版本为2.6的Linux操作***;要实现从U盘上启动,需要在U盘上存放一个Boot Loader,来完成***的引导操作。由于U盘存储空间等条件的限制,***的Boot Loader选择syslinux,并结合initrd机制,来执行***的引导过程。initrd的全称是Boot Loader initializedRAM disk,指由Boot Loader初始化的内存盘。采用initrd机制时,在***内核启动前,Boot Loader会将存储介质中的initrd文件加载到内存,内核启动时会在访问真正的根文件***前,先访问该内存中的initrd文件***。也就是说,在Boot Loader配置了initrd的情况下,***启动被分成了两个阶段,第一阶段先执行initrd文件***中的/init文件,完成驱动模块加载等任务,第二阶段才会执行真正的根文件***中的/sbin/init进程。
如附图1所示,存储操作***启动阶段的引导流程如下:
(1)当磁盘阵列上电或复位时,CPU会将PC指针赋值为一个特定的地址0xFFFF0,并执行该地址处的指令,该地址位于BIOS中,它保存在磁盘阵列主板或控制器的Flash内;
(2)BIOS运行时,按照CMOS设置中定义的启动设备顺序来搜索处于活动状态,并且可以引导的设备,此处获得的信息是从U盘启动,于是将U盘中的Boot Loader加载到内存,加载成功后,BIOS将控制权交给Boot Loader;
(3)Boot Loader将U盘上的内核映像vmlinux和initrd文件加载到内存的特定位置;
(4)内核判断initrd文件的格式,此处为cpio格式,于是内核将initrd的内容释放到rootfs中;
(5)执行initrd中的/init文件,执行到此,内核的工作全部结束,完全交给/init文件处理;
(6)/init文件执行完毕,常规根文件***被挂载,执行常规根文件***中的/sbin/init进程。
至此,存储操作***的内核引导流程基本完成,***进入用户空间应用程序中,执行具体的功能操作。
本方法在U盘固件中设置一条用户自定义SCSI指令,利用指令执行时的返回信息来检验所使用U盘的合法性。描述SCSI指令的CDB结构如附图2所示,CDB包含了1个字节的操作码,后接5个或更多字节的特定指令参数,结尾是1个字节的控制字段。一条SCSI指令要求小于等于16个字节,而CDB的长度会根据不同的指令及其参数而改变。操作码的5-7bit称为分组码,在一条SCSI指令的CDB结构中,令其取值为6或者7,表示该条指令是厂商指定的。比如,可以为其添加一条操作码为0xF0的SCSI指令,该指令成功执行后返回字符串“TOYOU”。
结合***启动的流程特点和***存放U盘的特殊性,本发明提供了一种存储操作***与硬件***的绑定方法,如附图3所示,包括以下步骤:
步骤一在U盘固件中设置一条用户自定义SCSI指令,该指令执行时的返回信息可用来检验所使用U盘的合法性;
步骤二在***所用磁盘阵列上,自内存地址0xFFFF0开始,读取一定长度的信息,该地址位于BIOS中,此步操作实现的功能就是读取磁盘阵列的BIOS信息,获取其中的有效信息;
步骤三将步骤二获取的BIOS信息和步骤一中自定义SCSI指令的返回值,以字符串形式前后连接在一起,组成一段原始信息,作为MD5算法的输入信息,经过MD5算法处理后得到一个128bit位的信息摘要;
步骤四将得到的信息摘要,在存储操作***出厂时存放在U盘上某个特定文件中;
步骤五在initrd中编写一个可执行文件,该文件负责对存储操作***运行的硬件平台进行综合检验,如附图4所示,具体执行以下操作:
(1)在***所用磁盘阵列上,自内存地址0xFFFF0开始,读取与步骤二同等长度的BIOS有效信息;
(2)向***存放的U盘发送一条在步骤一中定义的SCSI指令,如果返回值与预期相等,则表明所用的U盘是合法的,否则中断***后继程序的执行;
(3)将前两个步骤获取的BIOS信息和SCSI指令的返回值,以字符串形式前后连接在一起,组成一段原始信息,作为MD5算法的输入信息,经过MD5算法处理后得到一个128bit位的信息摘要;
(4)将步骤(3)得到的信息摘要与步骤四中所述存放在U盘上的特定文件内容比较,依据比较结果处理如下:
如果信息摘要与该文件的内容相同,则表明存储操作***所用硬件***是合法的,后继操作可以正常执行;
如果信息摘要与该文件的内容不同,则表明存储操作***所用硬件***中存在非法硬件,即软件***被拷贝到了其他非法硬件平台上,因此中断存储操作***的启动;
步骤六在/init文件中执行设备的挂载操作时,先调用步骤五中的可执行文件,对软件***运行的硬件平台进行综合检验:如果检验通过,则后继操作可以顺利完成,***可以正常启动,否则,引导流程中断,***启动失败。
有益效果
本发明的有益效果是:
(1)绑定方法基于硬件***构建。充分考虑了存储操作***所用硬件***的特点,利用两者硬件信息的组合对操作***进行保护,避开了常规的软硬件简单绑定模式,绑定方法更加新颖、独到。
(2)验证方式巧妙。巧妙的利用了***引导流程的特点,将绑定功能存放在initrd中,在/init文件中调用执行,从而在***的引导流程中就完成了软硬件的验证任务,较早并且有效的阻止了对存储操作***的非法使用。
(3)绑定方法可靠性高。***存放U盘属于自主设计的硬件产品,固件为U盘所特有,在安全程度上高于一般U盘;磁盘阵列的BIOS信息修改难度较大,而本发明将两者进行组合,更加保证了绑定结果的安全、可靠。
附图说明
图1为本发明适用的存储操作***启动阶段引导流程图。
图2为SCSI指令的CDB结构图。
图3为存储操作***与硬件***的绑定流程图。
图4为针对存储操作***运行的硬件平台进行综合检验的流程图。
其中,1为BIOS,2为syslinux,3为vmlinux,4为/init,5为用户空间。
具体实施方式
下面结合附图,具体说明本发明的优选实施方式。
本实施方式应用的存储操作***被制作成USB启动盘格式,存储操作***所使用的U盘以配件形式安装在磁盘阵列内。为加强对软件***的保护,***使用自主设计的U盘。
存储操作***本身是一个2.6版本的Linux操作***,要实现从U盘上启动,需要在U盘上存放一个Boot Loader,来完成***的引导操作。***实现中选择了syslinux,并结合initrd机制,来执行***的引导过程。如附图1所示,存储操作***启动阶段的引导流程如下:
(1)当磁盘阵列上电或复位时,CPU会将PC指针赋值为一个特定的地址0xFFFF0,并执行该地址处的指令,该地址位于BIOS中;
(2)BIOS运行时,按照CMOS设置中定义的启动设备顺序来搜索处于活动状态,并且可以引导的设备,此处获得的信息是从U盘启动,于是将U盘中的Boot Loader加载到内存,加载成功后,BIOS将控制权交给Boot Loader;
(3)Boot Loader将U盘上的内核映像vmlinux和initrd文件加载到内存的特定位置;
(4)内核判断initrd文件的格式,此处为cpio格式,于是内核将initrd的内容释放到rootfs中;
(5)执行initrd中的/init文件,执行到此,内核的工作全部结束,完全交给/init文件处理;
(6)/init文件执行完毕,常规根文件***被挂载,执行常规根文件***中的/sbin/init进程。
描述SCSI指令的CDB结构如附图2所示,CDB结构的首个字节是操作码,操作码的5-7bit称为分组码,令其取值为6或者7,则表示该条指令是厂商指定的,依据这一规定,在U盘固件中设置一条用户自定义指令,此处为其添加一条操作码为0xF0的SCSI指令,该指令成功执行后返回字符串“TOYOU”。
结合***启动的流程特点和***存放U盘的特殊性,本实施例实现了一种将存储操作***与硬件***进行绑定的有效方法,如附图3所示,包括以下步骤:
步骤一在U盘固件中设置一条用户自定义SCSI指令,该指令执行时的返回信息可用来检验所使用U盘的合法性;
步骤二在***所用磁盘阵列上,自内存地址0xFFFF0开始,读取13个字节的信息,所用偏移地址位于BIOS中,此步操作实现的功能就是读取磁盘阵列的BIOS信息,获取主板的生产日期等信息;
步骤三将步骤二获取的BIOS信息和步骤一中自定义SCSI指令的返回值,以字符串形式前后连接在一起,组成一段原始信息,作为MD5算法的输入信息,经过MD5算法处理后得到一个128bit位的信息摘要;
步骤四将得到的信息摘要,在存储操作***出厂时存放在U盘上某个特定文件中;
步骤五在initrd中编写一个可执行文件ciphergen,该文件负责对存储操作***运行的硬件平台进行综合检验,如附图4所示,具体执行以下操作:
(1)在***所用磁盘阵列上,自内存地址0xFFFF0开始,读取与步骤二同等长度的BIOS有效信息;
(2)向***存放的U盘发送一条在步骤一中定义的SCSI指令,如果返回值与预期相等,则表明所用的U盘是合法的,否则中断***后继程序的执行;
(3)将前两个步骤获取的BIOS信息和SCSI指令的返回值,以字符串形式前后连接在一起,组成一段原始信息,作为MD5算法的输入信息,经过MD5算法处理后得到一个128bit位的信息摘要;
(4)将步骤(3)得到的信息摘要与步骤四中所述存放在U盘上的特定文件内容比较,依据比较结果处理如下:
如果信息摘要与该文件的内容相同,则表明存储操作***所用硬件***是合法的,后继操作可以正常执行;
如果信息摘要与该文件的内容不同,则表明存储操作***所用硬件***中存在非法硬件,即软件***被拷贝到了其他非法硬件平台上,因此中断存储操作***的启动;
步骤六在/init文件中执行设备的挂载操作时,先调用ciphergen,对软件***运行的硬件平台进行综合检验:如果检验通过,则后继操作可以顺利完成,***可以正常启动,否则,引导流程中断,***启动失败。
本发明不仅限于以上实施例,凡是利用本发明的设计思路,做一些简单变化的设计,都应计入本发明的保护范围之内。
Claims (1)
1.一种存储操作***与硬件***的绑定方法,包括以下步骤:
步骤一在U盘固件中设置一条用户自定义SCSI指令,该指令执行时的返回信息可用来检验所使用U盘的合法性;
步骤二在***所用磁盘阵列上,自内存地址0xFFFF0开始,读取一定长度的信息,该地址位于BIOS中,此步操作实现的功能就是读取磁盘阵列的BIOS信息,获取其中的有效信息;
步骤三将步骤二获取的BIOS信息和步骤一中自定义SCSI指令的返回值,以字符串形式前后连接在一起,组成一段原始信息,作为MD5算法的输入信息,经过MD5算法处理后得到一个128bit位的信息摘要;
步骤四将得到的信息摘要,在存储操作***出厂时存放在U盘上某个特定文件中;
步骤五在initrd中编写一个可执行文件,该文件负责对存储操作***运行的硬件平台进行综合检验,具体执行以下操作:
(1)在***所用磁盘阵列上,自内存地址0xFFFF0开始,读取与步骤二同等长度的BIOS有效信息;
(2)向***存放的U盘发送一条在步骤一中定义的SCSI指令,如果返回值与预期相等,则表明所用的U盘是合法的,否则中断***后继程序的执行;
(3)将前两个步骤获取的BIOS信息和SCSI指令的返回值,以字符串形式前后连接在一起,组成一段原始信息,作为MD5算法的输入信息,经过MD5算法处理后得到一个128bit位的信息摘要;
(4)将步骤(3)得到的信息摘要与步骤四中所述存放在U盘上的特定文件内容比较,依据比较结果处理如下:
如果信息摘要与该文件的内容相同,则表明存储操作***所用硬件***是合法的,后继操作可以正常执行;
如果信息摘要与该文件的内容不同,则表明存储操作***所用硬件***中存在非法硬件,即软件***被拷贝到了其他非法硬件平台上,因此中断存储操作***的启动;
步骤六在/init文件中执行设备的挂载操作时,先调用步骤五中的可执行文件,对软件***运行的硬件平台进行综合检验:如果检验通过,则后继操作可以顺利完成,***可以正常启动,否则,引导流程中断,***启动失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105756568A CN102033822B (zh) | 2010-12-01 | 2010-12-01 | 一种存储操作***与硬件***的绑定方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105756568A CN102033822B (zh) | 2010-12-01 | 2010-12-01 | 一种存储操作***与硬件***的绑定方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102033822A true CN102033822A (zh) | 2011-04-27 |
CN102033822B CN102033822B (zh) | 2012-07-25 |
Family
ID=43886744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105756568A Active CN102033822B (zh) | 2010-12-01 | 2010-12-01 | 一种存储操作***与硬件***的绑定方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102033822B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183381A (zh) * | 2015-09-08 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | Linux***下存储***内LUN数目自动检测方法和装置 |
CN106406895A (zh) * | 2016-09-27 | 2017-02-15 | 北京小米移动软件有限公司 | 操作***启动方法及装置 |
CN110826102A (zh) * | 2019-11-07 | 2020-02-21 | 深圳市四季宏胜科技有限公司 | 防拷贝文件管理方法、装置、设备及可读存储介质 |
CN111752577A (zh) * | 2019-03-28 | 2020-10-09 | 深圳市优必选科技有限公司 | 一种***版本的升级方法及设备 |
CN112988464A (zh) * | 2021-03-23 | 2021-06-18 | 武汉深之度科技有限公司 | 一种断电保护方法及计算设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101236532A (zh) * | 2007-07-31 | 2008-08-06 | 北京理工大学 | Windows环境下基于USB设备的硬盘加密方法 |
CN101236499A (zh) * | 2007-07-31 | 2008-08-06 | 北京理工大学 | 一种借助USB设备启动在Windows操作***中嵌入内核驱动程序的方法 |
CN101373457A (zh) * | 2007-07-31 | 2009-02-25 | 北京理工大学 | Windows环境下一种基于USB设备的硬盘写保护锁 |
CN101777018A (zh) * | 2010-02-08 | 2010-07-14 | 北京同有飞骥科技有限公司 | 一种复制与快照结合的Windows***保护方法 |
-
2010
- 2010-12-01 CN CN2010105756568A patent/CN102033822B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101236532A (zh) * | 2007-07-31 | 2008-08-06 | 北京理工大学 | Windows环境下基于USB设备的硬盘加密方法 |
CN101236499A (zh) * | 2007-07-31 | 2008-08-06 | 北京理工大学 | 一种借助USB设备启动在Windows操作***中嵌入内核驱动程序的方法 |
CN101373457A (zh) * | 2007-07-31 | 2009-02-25 | 北京理工大学 | Windows环境下一种基于USB设备的硬盘写保护锁 |
CN101777018A (zh) * | 2010-02-08 | 2010-07-14 | 北京同有飞骥科技有限公司 | 一种复制与快照结合的Windows***保护方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183381A (zh) * | 2015-09-08 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | Linux***下存储***内LUN数目自动检测方法和装置 |
CN105183381B (zh) * | 2015-09-08 | 2018-01-19 | 浪潮(北京)电子信息产业有限公司 | Linux***下存储***内LUN数目自动检测方法和装置 |
CN106406895A (zh) * | 2016-09-27 | 2017-02-15 | 北京小米移动软件有限公司 | 操作***启动方法及装置 |
CN111752577A (zh) * | 2019-03-28 | 2020-10-09 | 深圳市优必选科技有限公司 | 一种***版本的升级方法及设备 |
CN111752577B (zh) * | 2019-03-28 | 2023-07-18 | 深圳市优必选科技有限公司 | 一种***版本的升级方法及设备 |
CN110826102A (zh) * | 2019-11-07 | 2020-02-21 | 深圳市四季宏胜科技有限公司 | 防拷贝文件管理方法、装置、设备及可读存储介质 |
CN112988464A (zh) * | 2021-03-23 | 2021-06-18 | 武汉深之度科技有限公司 | 一种断电保护方法及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102033822B (zh) | 2012-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6018590B2 (ja) | ライブラリーオペレーティングシステムによるアプリケーションの互換性 | |
JP4901095B2 (ja) | 不揮発性ストレージにカスタム・ソフトウェア・イメージ・アップデートを適用するフェイルセーフな方法 | |
US9454387B2 (en) | Method and system for installing portable executable applications | |
US6298443B1 (en) | Method and system for supplying a custom software image to a computer system | |
US20060064576A1 (en) | Boot systems and methods | |
JP5276438B2 (ja) | オペレーティングシステムおよびその他のソフトウェアのインストールを制限するハッカー対策プロテクト | |
US11579893B2 (en) | Systems and methods for separate storage and use of system BIOS components | |
CN102033822B (zh) | 一种存储操作***与硬件***的绑定方法 | |
US20150227743A1 (en) | Portable media system with virus blocker and method of operation thereof | |
EP2329366B1 (en) | Performing a pre-update on a non volatile memory | |
CN101038555A (zh) | 用于对***bios本地及远程更新及配置的独立于芯片组的方法 | |
CN103718165A (zh) | Bios闪存攻击保护和通知 | |
CN107567629B (zh) | 在可信执行环境容器中的动态固件模块加载器 | |
US20130132528A1 (en) | Application distribution system, application distribution method, terminal, and program | |
CN101021797A (zh) | 一种用于嵌入式***的软件修复和升级方法 | |
CN110321170B (zh) | 开机方法 | |
US9235426B2 (en) | Multicore processor system, computer product, and notification method for updating operating system | |
CN102193804B (zh) | 一种单板驱动的加载方法和通信设备 | |
JP2005182812A (ja) | コンピュータシステムにおいてイメージファイルを格納するシステムおよび方法 | |
CN101382898A (zh) | Pre-os应用程序升级和许可控制 | |
KR100860402B1 (ko) | 2단계 부트로더를 이용한 시스템 업그레이드 장치 및 방법 | |
JP5846016B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
US20220342995A1 (en) | Secure boot runtime universal filesystem | |
US20220147343A1 (en) | Tranistionary firmware packages | |
CN101271430A (zh) | 一种对存储设备中的数据进行保护的方法和装置 |
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 |