CN102033822B - 一种存储操作系统与硬件系统的绑定方法 - Google Patents
一种存储操作系统与硬件系统的绑定方法 Download PDFInfo
- Publication number
- CN102033822B CN102033822B CN2010105756568A CN201010575656A CN102033822B CN 102033822 B CN102033822 B CN 102033822B CN 2010105756568 A CN2010105756568 A CN 2010105756568A CN 201010575656 A CN201010575656 A CN 201010575656A CN 102033822 B CN102033822 B CN 102033822B
- Authority
- CN
- China
- Prior art keywords
- operating system
- storage operating
- hardware
- information
- 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.)
- Active
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)将步骤(1)获取的BIOS有效信息和步骤(2)获取的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 CN102033822A (zh) | 2011-04-27 |
CN102033822B true 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) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183381B (zh) * | 2015-09-08 | 2018-01-19 | 浪潮(北京)电子信息产业有限公司 | Linux系统下存储系统内LUN数目自动检测方法和装置 |
CN106406895A (zh) * | 2016-09-27 | 2017-02-15 | 北京小米移动软件有限公司 | 操作系统启动方法及装置 |
CN111752577B (zh) * | 2019-03-28 | 2023-07-18 | 深圳市优必选科技有限公司 | 一种系统版本的升级方法及设备 |
CN110826102A (zh) * | 2019-11-07 | 2020-02-21 | 深圳市四季宏胜科技有限公司 | 防拷贝文件管理方法、装置、设备及可读存储介质 |
CN112988464A (zh) * | 2021-03-23 | 2021-06-18 | 武汉深之度科技有限公司 | 一种断电保护方法及计算设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101236499A (zh) * | 2007-07-31 | 2008-08-06 | 北京理工大学 | 一种借助USB设备启动在Windows操作系统中嵌入内核驱动程序的方法 |
CN101236532A (zh) * | 2007-07-31 | 2008-08-06 | 北京理工大学 | Windows环境下基于USB设备的硬盘加密方法 |
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 |
---|---|---|---|---|
CN101236499A (zh) * | 2007-07-31 | 2008-08-06 | 北京理工大学 | 一种借助USB设备启动在Windows操作系统中嵌入内核驱动程序的方法 |
CN101236532A (zh) * | 2007-07-31 | 2008-08-06 | 北京理工大学 | Windows环境下基于USB设备的硬盘加密方法 |
CN101373457A (zh) * | 2007-07-31 | 2009-02-25 | 北京理工大学 | Windows环境下一种基于USB设备的硬盘写保护锁 |
CN101777018A (zh) * | 2010-02-08 | 2010-07-14 | 北京同有飞骥科技有限公司 | 一种复制与快照结合的Windows系统保护方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102033822A (zh) | 2011-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8745277B2 (en) | Command portal for securely communicating and executing non-standard storage subsystem commands | |
US9026683B1 (en) | Command portal for executing non-standard storage subsystem commands | |
JP6018590B2 (ja) | ライブラリーオペレーティングシステムによるアプリケーションの互換性 | |
US6298443B1 (en) | Method and system for supplying a custom software image to a computer system | |
US8286158B2 (en) | Method and system for installing portable executable applications | |
US20060064576A1 (en) | Boot systems and methods | |
CN102033822B (zh) | 一种存储操作系统与硬件系统的绑定方法 | |
US11579893B2 (en) | Systems and methods for separate storage and use of system BIOS components | |
US20070113067A1 (en) | Method and apparatus for booting a microprocessor system using boot code stored on a serial flash memory array having a random-access interface | |
EP2329366B1 (en) | Performing a pre-update on a non volatile memory | |
US20150227743A1 (en) | Portable media system with virus blocker and method of operation thereof | |
JP2005196747A (ja) | 不揮発性ストレージにカスタム・ソフトウェア・イメージ・アップデートを適用するフェイルセーフな方法 | |
CN107567629B (zh) | 在可信执行环境容器中的动态固件模块加载器 | |
CN101038555A (zh) | 用于对系统bios本地及远程更新及配置的独立于芯片组的方法 | |
CN101021797A (zh) | 一种用于嵌入式系统的软件修复和升级方法 | |
CN110321170B (zh) | 开机方法 | |
CN102841802A (zh) | 移动终端的软件升级方法 | |
CN102193804B (zh) | 一种单板驱动的加载方法和通信设备 | |
CN114756290A (zh) | 一种操作系统安装方法、设备及可读存储介质 | |
EP2329367B1 (en) | Performing an in-place update of an operating storage device | |
KR20130068630A (ko) | 임베디드 디바이스의 초기화 방법 및 장치 | |
JP2005182812A (ja) | コンピュータシステムにおいてイメージファイルを格納するシステムおよび方法 | |
CN100476745C (zh) | 在Linux操作系统引导过程中实现映象文件自动容错的方法 | |
JP5846016B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
CN100504787C (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 |