专利名称:一种控制信息安全设备访问权限的方法和系统的利记博彩app
技术领域:
本发明涉及控制设备访问权限领域,特别涉及一种控制信息安全设备访问权限的方法和 系统。
背景技术:
由于目前被广泛应用的Windows操作系统是一个支持多用户、多任务的操作系统,因此, 用户使用时的安全问题成为了非常关键的问题,因此Window操作系统需要对用户进行权限设 置,所谓权限是指用户对系统资源的访问权利。权限的设置是基于用户和进程而言的,不同 的用户访问计算机具有不同的权限。Windows的用户被分成许多组,常见的用户组有以下几 种
Administrator:管理员组;System:拥有和Administrator—样的,甚至比其还高的 权限;Power User:高级用户组,在权限设置中,这个组的权限是仅次于Administrator的; User:普通用户组,这个组的用户无法对计算机系统进行改动;Guest:来宾组,来宾帐户的 限制要比普通User帐号更多。并且,通常习惯称Administrator, System和Power User为 超级用户,User和Guest为非超级用户。
计算机中的注册表是一个庞大的数据库,用来存储计算机软硬件的各种配置数据,它包 含Windows在运行期间不断引用的信息,例如,每个用户的配置文件、计算机上安装的应用 程序以及每个应用程序可以创建的文档类型、文件夹和应用程序图标的属性表设置、系统上 存在哪些硬件以及正在使用哪些端口,并且注册表取代了 Windows 3. x和MS-DOS配置文件 (例如,Autoexec.bat和Config. sys)中使用的绝大多数基于文本的.ini文件。虽然几 个Windows操作系统都有注册表,但这些操作系统的注册表有一些区别。
由于,注册表中记录了用户安装在计算机上的软件和每个程序的相关信息,用户可以通 过注册表调整软件的运行性能,检测和恢复系统错误,定制桌面等。用户修改配置,只需要 通过注册表编辑器,单击鼠标,即可轻松完成。系统管理员还可以通过注册表来完成系统远 程管理。因而用户掌握了注册表,即掌握了对计算机配置的控制权,用户只需要通过注册表 即可将自己计算机的工作状态调整到最佳。
信息安全设备(简称设备,如USB (Universal Serial BUS,通用串行总线)key等) 是一种带有处理器和存储器的小型硬件装置,它通过计算机的数据通讯接口与计算机连接。 现有信息安全设备的通讯可以通过SCSI (Small Computer System Interface-小型计算机系 统接口)命令的方式来实现,SCSI是计算机连接外接设备的一种接口标准,能够提供更快的 数据传输率。SCSI为方便开发者使用预留了扩展命令,为完成信息安全设备的SCSI通讯, 开发者将SCSI扩展命令设计成信息安全设备的命令,以完成信息安全设备的功能,但是在 Windows 2000及以上操作系统下,普通用户没有权限使用SCSI扩展命令,这就给SCSI设备 的使用带来了很多的不便。按照SCSI协议标准,符合USB-SCSI接口标准的设备其描述符的 特征是在接口描述符中,字节0是描述符的字节长度,值为09h;字节l是描述符类型,
值为04h;字节4是支持的终端号;字节5是类代码,值为08h;字节6为子类代码,值为
OOh;字节7是协议代码,值为50h。在类型描述符中,字节0是描述符的字节长度,字节2 是SCSI规范的版本号。符合SCSI接口标准的设备的其它描述符中的字节,如设备描述符、 配置描述符中的字节以及上述接口描述符和类型描述符中的其它字节仍按照USB协议中的规
定设置。
其中,自动运行功能(Autorun)是USB-SCSI类设备所自带的一个功能,它使得对光盘、 硬盘和海量存储等设备进行的操作变得更容易, 一般习惯称此种能够自动运行起来的程序为 自动运行程序。由于自动运行程序中包含了需要自动运行的命令,如改变驱动器图标、运行 程序文件、可选快捷菜单等内容,所以当带有自动运行程序的光盘或海量存储等设备连接到 计算机上时,自动运行程序会装载相应文件,例如GIF、 JPEG、 HTML文件、PDF文件,实现 自动运行功能,自动运行程序还可以显示启动界面等。
发明人在实现本发明时,经过分析后发现由于在Windows 2000及以上操作系统下,普 通用户没有权限使用SCSI扩展命令,这就给SCSI设备的使用带来了很多的不便,因此信息 安全设备在Windows操作系统下受用户权限限制。
发明内容
为了使信息安全设备能够在Windows操作系统下不受用户权限限制,并且解决如何修改 信息安全设备权限等各种问题,本发明提供了一种控制信息安全设备访问权限的方法和系统。 一方面,提供了一种控制信息安全设备访问权限的方法,所述方法包括 信息安全设备与计算机建立连接后,所述信息安全设备启动自动运行程序; 所述自动运行程序提升自身的权限;所述自动运行程序在所述计算机的注册表中的光盘设备类的Properties键下,创建安全
Security项;并获取安全描述符的值;
所述自动运行程序将所述Security项的值设置为所述安全描述符号的值; 所述计算机根据所述Security项的值修改所述计算机的光盘设备类的访问权限; 所述计算机中的应用程序向所述信息安全设备发送操作指令,所述信息安全设备执行所
述操作指令,完成所述计算机与所述信息安全设备的数据通讯。
其中,所述自动运行程序提升所述信息安全设备的访问权限的步骤,之前还包括 所述自动运行程序判断所述计算机的注册表的状态,如果所述注册表未被修改,则执行
后续步骤;
相应地,如果所述注册表被修改为期望状态,则执行所述计算机中的应用程序向所述信 息安全设备发送操作指令;
其中,所述期望状态具体为所述计算机中的应用程序向所述信息安全设备发送操作指令 之前,所述注册表的相应状态。。
其中,所述自动运行程序提升所述信息安全设备的访问权限的步骤,具体包括
所述自动运行程序启动自定义的Windows服务;
在所述Windows服务入口函数中打开所述注册表中的光盘设备类的Properties键; 或,
所述自动运行程序获取系统服务进程的安全令牌; 获取所述安全令牌的安全描述符; 获取所述安全令牌的安全描述符的自由访问控制列表; 在所述自由访问控制列表中添加当前登录用户的完全控制访问权限; 所述安全令牌具有所述当前登录用户的所有权限后,获取当前进程的安全令牌; 所述自动运行程序调用ImpersonateLoggedOnllser函数,使所述当前进程具有系统服务 进程的权限; 或,
所述自动运行程序通过调用函数GetNamedSecuritylnfo,获取注册表中光盘设备类的
Properties键的自由访问控制列表;
调用函数BuildExplicitAccessWithName创建一个任何用户都可控制的访问控制实体; 将所述访问控制实体添加到所述自由访问控制列表中后,调用SetNamedSecuritylnfo函
数更新所述光盘设备类的Properties键的自由访问列表。
其中,所述自动运行程序启动自定义的Windows服务的步骤还包括
所述自动运行程序判断所述自定义的Windows服务是否存在,若存在,则所述自动运行 程序打开所述服务,若不存在,则所述自动运行程序创建一个自定义的Windows服务; 启动所述服务。
其中,所述自动运行程序获取安全描述符的值的步骤,具体包括
所述自动运行程序使用预先定义的安全描述符值,或,所述自动运行程序使用计算得出 的安全描述符的值。
其中,所述计算获取的安全描述符的值的步骤,具体包括 所述自动运行程序构造一个安全描述符;
设置所述安全描述符中的访问对象的标识、权限,所述访问对象具体为用户和组; 获取所述安全描述符的二进制值。
其中,所述自动运行程序构造安全描述符的方法如下
所述自动运行程序创建一个新的安全描述符;
或,
所述自动运行程序获取系统服务进程的安全令牌的安全描述符; 或,
所述自动运行程序获取注册表中的光盘设备类的安全描述符。
其中,所述设置所述安全描述符中的访问对象的标识、权限的步骤,具体包括 设置所述安全描述符中的允许访问的访问对象的标识、权限,或,设置所述安全描述符
中的拒绝访问的访问对象的标识、权限。
进一步地,所述获取所述安全描述符的二进制值的步骤之前,还包括 判断所述安全描述符的格式,如果所述安全描述符是绝对格式,则执行后续步骤;如果
所述安全描述符是相对格式,则将所述相对格式转换为所述绝对格式后,执行后续步骤。 当所述计算机的操作系统的版本是Vista及Vista以上的操作系统,则所述设置所述安
全描述符中的访问对象的标识、权限的步骤之后,还包括 设置所述安全描述符的强制性标签mandatory label 。 进一步地,所述信息安全设备与计算机建立连接的步骤之后,还包括 所述信息安全设备通过向所述计算机报告设备描述符为小型计算机系统接口光盘设备描
述符,向所述计算机声明所述信息安全设备自身为光盘设备类型;
相应地,所述计算机中的应用程序向所述信息安全设备发送操作指令的步骤,具体包括:
所述计算机中的应用程序向所述信息安全设备发送光盘设备类型操作指令。 进一步地,所述计算机中的应用程序向所述信息安全设备发送操作指令的步骤,之前还 包括
计算机提示用户输入身份认证信息;
所述信息安全设备验证用户输入的身份认证信息是否合法,如果是,则所述信息安全设 备允许所述用户使用所述信息安全设备,否则,信息安全设备拒绝所述用户使用所述信息安 全设备。
其中,所述应用程序具体为
预先在所述计算机保存的应用程序,或,通过所述信息安全设备的自动运行程序安装而 获取的应用程序。
另一方面,提供了一种控制信息安全设备访问权限的系统,所述系统包括信息安全设 备与计算机,所述信息安全设备包括接口模块、自动运行模块和通信模块; 所述接口模块,用于与所述计算机建立连接;
所述自动运行模块,用于当所述信息安全设备和计算机的连接后,将所述自动运行程序 发送给所述计算机,所述自动运行程序运行在所述计算机上;
所述通信模块,用于接收所述计算机发送的操作指令,执行所述操作指令,完成所述计 算机与所述信息安全设备的数据通讯;
所述计算机包括接口模块、修改模块和通信模块;
所述接口模块,用于与所述信息安全设备建立连接;
所述修改模块,用于当所述计算机与所述信息安全设备建立连接后,根据所述自动运行
程序设置的Security项的值,修改所述计算机的光盘设备类的访问权限;
所述通信模块,用于实现计算机中的应用程序向所述信息安全设备发送操作指令。 所述自动运行程序提升自身的权限,并在所述计算机的注册表中的光盘设备类的
Properties键下创建安全Security项,再获取安全描述符的值,所述自动运行程序将所述
Security项的值设置为所述安全描述符的值;
所述计算机根据所述Security项的值,修改所述计算机的光盘设备类的访问权限; 所述计算机中的应用程序向所述信息安全设备发送操作指令,所述信息安全设备执行所
述操作指令,完成所述计算机与所述信息安全设备的数据通讯。
与现有技术相比,本发明的有益效果在于 一方面,本发明提供的一种通过修改注册表
来控制信息安全设备访问权限的系统与方法,可以使所述信息安全设备的使用不会受到用户 权限的限制,解决了信息安全设备无法在普通用户下使用的问题,另一方面,本发明提供的 方法与系统解决了如何修改信息安全设备权限等各种问题,并且所述信息安全设备为无需安 装驱动程序和应用程序的设备,使产品更有竞争力,应用更广泛。
图1是本发明实施例1提供的控制信息安全设备访问权限的方法流程图; 图2是本发明实施例2提供的控制信息安全设备访问权限的方法流程图; 图3是本发明实施例3提供的控制信息安全设备访问权限的方法流程图; 图4是本发明实施例4提供的控制信息安全设备访问权限的系统示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进 一步地详细描述。
为了使信息安全设备能够在Windows操作系统下不受用户权限限制,并提高信息安全设 备权限和指定用户权限,本发明提供了一种控制信息安全设备访问权限的方法,该方法内容 如下信息安全设备与计算机建立连接后,信息安全设备启动自动运行程序;自动运行程序 提升自身的访问权限;自动运行程序在计算机的注册表中的光盘设备类的Properties键下, 创建安全Security项,并获取安全描述符的值;自动运行程序将Security项的值设置为安 全描述符号的值;计算机根据Security项的安全描述符号的值,修改计算机的光盘设备类的 访问权限;计算机中的应用程序向信息安全设备发送操作指令,信息安全设备执行操作指令, 完成计算机与信息安全设备的数据通讯。
其中,在自动运行程序提升信息安全设备的访问权限的步骤之前,本发明实施例提供的 方法还包括
自动运行程序判断计算机的注册表的状态,如果注册表未被修改,则执行后续步骤; 相应地,如果注册表被修改为期望状态,则执行计算机中的应用程序向信息安全设备发
送操作指令。其中,该期望状态即为上述计算机中的应用程序向信息安全设备发送操作指令
之前,注册表的相应状态。
参见如下各实施例,对上述控制信息安全设备访问权限的方法进行详细说明,具体内容
详见如下
实施例1
参见图1,本发明实施例提供了一种控制信息安全设备访问权限的方法,本发明实施例 提供的方法适用于Windows2000及以上的操作系统平台,为了便于说明本发明实施例以所述 的信息安全设备具体为USB Key为例,具体内容参见如下
步骤IOI、 USB Key与计算机建立连接;
其中,通过将USB Key通过USB接口插入计算机的形式,建立起该USB Key与该计算机 的连接关系。
步骤102、计算机向USB Key发送获取设备类型的请求; 步骤103、 USB Key接收计算机的请求,并声明自身为光盘设备类型; 其中,在本实施例步骤103中,信息安全设备USB Key通过向计算机报告设备描述符为 光盘设备描述符,从而实现声明该USB Key自身为光盘设备类型。 步骤104、 USB Key启动自动运行程序;
其中,在本实施例步骤104中,自动运行程序由USB Key生产商预先编写,并存储在该 USB Key中;
步骤105、自动运行程序判断计算机中的注册表状态,如果计算机中的注册表未被按照 期望状态进行修改,则执行步骤106;如果计算机中的注册表已经被按期望状态进行了修改, 则执行步骤114;
步骤106、自动运行程序判断自定义的Windows服务是否存在,若不存在,则执行步骤 107;存在,则执行步骤108;
步骤107、自动运行程序创建一个自定义的Windows服务; 步骤108、启动上述自定义的Windows服务;
步骤109、在该Windows服务的入口函数中打开计算机的光盘设备类的"Pr叩erties"
键;
步骤IIO、自动运行程序在打开的"Properties"键下面创建一个"Security"项; 步骤lll、自动运行程序获取安全描述符的值;
其中,在本实施例步骤lll中,上述安全描述符是用于指定安全对象所有者,以及用于 指定安全对象允许(或拒绝)哪些用户和组进行访问及其访问权限;
在本实施例步骤111中,获取所述安全描述符的值的方法包括如下两种直接使用预先 定义的安全描述符的值和计算所述安全描述符的值,下面分别进行说明
1、直接使用预先定义的安全描述符的值
其中,在本实施中,预先定义的安全描述符的值可以有很多种,如
当static const. BYTE everyone一sd[]=
〃\x01\x00\x04\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00〃 〃\xl4\x00\x00\x00\x02\x00\xlC\x00\x01\x00\x00\x00\x00\x00\xl4\x00" "\xFF\x01\xlF\xl0\x01\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00〃;
代表任何人都有完全控制的权限,不包括guest用户及针对vista系统下的IE7保护模式;
当static const BYTE everyone一sd[]=
〃\x01\xOO\x04\xOO\xOO\xOO\xOO\xOO\xOO\xOO\xOO\xOO\xOO\xOO\xOO\xOO〃 〃\x00\x00\x00\x00〃;
代表任何人都有完全控制的权限,包括guest和针对vista系统下的IE7保护模式。
2、计算所述安全描述符的值;
在本实施例中,还可以计算安全描述符的值,具体步骤如下 首先、自动运行程序构造一个安全描述符;
然后、设置安全描述符中允许(或拒绝)访问的用户和组的标识和权限; 其中,进一步地,若计算机所运行操作的系统是Vista及之上的系统,则设置安全描述 符的mandatory label,否则,则不用设置安全描述符的mandatory label;其中,当需要设 置安全描述符的mandatory label时,在本实施例所述的mandatory label可以设置为 "S: (ML;;丽;;;LW) 〃,该〃S: (ML; ;NW;; ;LW) 〃代表一个表示"对完整性级别为低low的对象设 置为NO一WRITE一UP机制的系统访问控制列表"的强制性标签mandatory label。
其次,判断安全描述符是相对格式(self-relative)还是绝对格式(absolute),若是 相对格式,则将相对格式转化为绝对格式;
再次,获取安全描述符的二进制值,则该获取的二进制值即为安全描述符的值; 其中,在本实施例中的计算安全描述符的值的步骤中,自动运行程序构造安全描述符的 方法如下
自动运行程序创建一个新的安全描述符; 或,
自动运行程序获取系统服务进程的安全令牌的安全描述符; 或,
自动运行程序获取注册表中的光盘设备类的安全描述符。
步骤112、自动运行程序将"Security"项的值设置为指定权限对应的安全描述符的值; 其中,根据上述步骤111获取的安全描述符的值,将上述步骤110创建的"Security" 项的值设置为该安全描述符的值。
步骤113、计算机根据设置后的注册表的"Security"项的值,改变光盘设备类的所有
权限;
其中,该步骤中计算机根据设置后的注册表的"Security"项的值,改变光盘设备类的 所有权限,所谓光盘设备类是指系统中的所有光盘设备,系统在驱动安装时,每一种设备都 进行归类,每一类设备由相同的驱动安装,并由相同的GUID(Globally Unique Ientifier, 全局唯一标识符)来标识。例如该计算机存在多个光盘设备,如USB Key、软盘、硬盘、光
盘等等。
步骤114、计算机提示用户输入身份认证信息;
步骤115、信息安全设备内部验证用户输入的身份认证信息是否合法,若身份认证信息
不合法,则执行步骤116;若身份认证信息合法,则执行步骤117;
步骤116、信息安全设备通过计算机提示出错信息或者要求用户重新输入身份认证信息; 步骤in、信息安全设备允许用户使用信息安全设备;
步骤118、计算机中的应用程序向信息安全设备发送光盘设备类型操作指令,与信息安 全设备进行数据通信,信息安全设备执行该操作指令;
其中,在本实施例步骤118中,计算机中的应用程序可以是计算机中预先存在的,也可 以是通过信息安全设备中的自动运行程序安装上的。
综上所述,本发明实施例提供了一种控制信息安全设备访问权限的方法,本发明实施例 提供的方法适用于Windows2000及以上的操作系统平台,通过本发明实施例提供的方法实现 了信息安全设备能够在Windows操作系统下不受用户权限限制,以及如何提高信息安全设备 权限和指定用户权限等各种问题。
在实现本发明实施例提供的控制信息安全设备访问权限的方法时,本发明实施例1是通 过创建Windows服务的方式实现提升访问权限的,其中,还可以通过安全令牌的方式实现提 升访问权限,详见下述实施例2。
实施例2
参见图2,本发明实施例提供了一种控制信息安全设备访问权限的方法,本发明实施例 在提升访问权限时,是通过安全令牌的方式实现,本发明实施例提供的方法适用于 Windows2000/XP/2003操作系统,仍以信息安全设备具体为USB Key为例进行说明,具体内 容如下
步骤201、 USB Key与计算机建立连接;
步骤202、计算机向USB Key发送获取设备类型的请求; 步骤203、 USB Key接收计算机的请求,并声明自身为光盘设备类型; 在本实施例步骤203中,信息安全设备USB Key通过向计算机报告设备描述符为光盘设 备描述符,实现声明自身为光盘设备类型。 步骤204、 USB Key启动自动运行程序;
在本实施例步骤204中,自动运行程序由USB Key生产商预先编写,并存储在USB Key
中;
步骤205、自动运行程序判断计算机中的注册表状态,如果计算机中的注册表未被按照 期望状态进行修改,则执行步骤206;如果计算机中的注册表已经被按期望状态进行了修改, 则执行步骤216;
步骤206、自动运行程序获取系统服务进程的安全令牌;
其中,本步骤206中自动运行程序在获取系统服务进程的安全令牌时,可以通过指定某 个系统服务进程的安全令牌方式实现,还可以通过选择任意一个系统服务进程的安全令牌方 式实现,本发明实施例不限制该步骤自动运行程序获取系统服务进程的安全令牌的具体实现 方式和方法。
步骤207、自动运行程序获取上述安全令牌的安全描述符;
其中,在本实施例步骤207中,安全描述符是用于指定安全对象所有者,以及用于指定 安全对象允许或拒绝哪些用户和组进行访问及其访问权限。
步骤208、自动运行程序获取上述安全描述符的自由访问控制列表;
步骤209、自动运行程序在该自由访问控制列表中添加当前登录用户的完全控制访问权 限,使安全令牌具有当前登录用户的所有权限;
步骤210、自动运行程序获取当前进程的安全令牌;
步骤211、自动运行程序调用ImpersonateLoggedOnUser函数,使当前进程具有系统服 务进程的权限;
步骤212、自动运行程序打开计算机的注册表的光盘设备类的"Properties"键,并在 "Properties"键下面仓'J建一个"Security"项; 步骤213、自动运行程序获取安全描述符的值;
其中,在本实施例步骤213中,获取所述安全描述符的值的方法包括如下两种直接使 用预先定义的安全描述符的值和计算所述安全描述符的值,具体内容如下 1、预先定义的安全描述符的值可以有很多种,如
当static const BYTE everyone_sd[]=
〃\x01\x00\x04\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00〃 〃\xl4\x00\x00\x00\x02\x00\xlC\x00\x01\x00\x00\x00\x00\x00\xl4\x00〃 〃\xFF\x01\xlF\xl0\x01\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00";
代表任何人都有完全控制的权限,不包括guest用户;
当static const BYTE everyone—sd[]=
〃\x01\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00〃 〃\x00\x00\x00\x00〃;
代表任何人都有完全控制的权限,包括guest用户;
2、计算安全描述符的值,具体步骤如下-
首先、自动运行程序构造一个安全描述符;
然后、设置安全描述符中允许或拒绝访问的用户和组的标识和权限;
其次、判断安全描述符是相对格式(self-relative)还是绝对格式(absolute),若是
相对格式,则将相对格式转化为绝对格式;
最后、获取安全描述符的二进制值,则该二进制值即为安全描述符的值;
其中,在本实施例中的计算安全描述符的值的步骤中,自动运行程序构造安全描述符的
方法如下
自动运行程序创建一个新的安全描述符; 或,
自动运行程序获取系统服务进程的安全令牌的安全描述符; 或,
自动运行程序获取注册表中的光盘设备类的安全描述符。
步骤214、自动运行程序将"Security"项的值设置为指定权限对应的安全描述符的值; 步骤215、计算机根据设置后的注册表的"Security"项的值,改变光盘设备类的所有 权限;
步骤216、计算机提示用户输入身份认证信息;
步骤217、信息安全设备内部验证用户输入的身份认证信息是否合法,若身份认证信息 不合法,则执行步骤218,若身份认证信息合法,则执行步骤219;
步骤218、信息安全设备通过计算机提示出错信息或者要求用户重新输入身份认证信息; 步骤219、信息安全设备允许用户使用信息安全设备;
步骤220、计算机中的应用程序向信息安全设备发送光盘设备类型操作指令,与信息安 全设备进行数据通信,信息安全设备执行该操作指令;
其中,在本实施例步骤220中,计算机中的应用程序可以是计算机中预先存在的,也可 以是通过信息安全设备中的自动运行程序安装上的。
综上所述,本发明实施例提供了一种控制信息安全设备访问权限的方法,本发明实施例 提供的方法适用于Windows2000/XP/2003操作系统平台,通过本发明实施例提供的方法实现 了信息安全设备能够在Windows操作系统下不受用户权限限制,以及如何提高信息安全设备 权限和指定用户权限等各种问题。
在实现本发明实施例提供的控制信息安全设备访问权限的方法时,针对 Windows2000/XP/2003操作系统平台而言,本发明实施例2是通过安全令牌的方式实现提升 访问权限,其中,还可以通过使用函数获取光盘设备类的"Properties"键的自由访问列表 的方式实现,详见下述实施例3。
实施例3
参见图3,本发明实施例提供了一种控制信息安全设备访问权限的方法,本发明实施例 在提升访问权限时,是通过使用函数获取光盘设备类的"Properties"键的自由访问列表的 方式实现,本发明实施例提供的方法适用于Windows2000/XP/2003操作系统,仍以信息安全 设备具体为USB Key为例进行说明,具体内容如下 步骤30K USB Key与计算机建立连接; 步骤302、计算机向USB Key发送获取设备类型的请求; 步骤303、 USB Key接收计算机的请求并声明自身为光盘设备类型; 在本实施例步骤303中,信息安全设备通过向计算机报告设备描述符为光盘设备描述符, 实现声明自身为光盘设备类型。
步骤304、 USB Key启动自动运行程序;
在本实施例步骤304中,自动运行程序由USB Key生产商预先编写,并存储在USB Key
中;
步骤305、自动运行程序判断计算机中的注册表状态,如果计算机中的注册表未被按照 期望状态进行修改,则执行步骤306;如果计算机中的注册表已经被按期望状态进行了修改, 则执行步骤314;
步骤306 、自动运行程序使用函数GetNamedSecuritylnfo获取光盘设备类的
"Properties "键的自由访问列表;
步骤307、自动运行程序使用函数BuildExplicitAccessWithName创建一个任何人都可
以控制的访问控制实体;
步骤308、自动运行程序将该访问控制实体加入到访问控制列表中;
步骤309、自动运行程序使用SetNamedSecuritylnfo函数,更新光盘设备类的 "Properties"键的自由访问列表;
歩骤310、自动运行程序打开光盘设备类的"Properties"键,并在"Properties"子 键下面创建一个"Security"项;
步骤311、自动运行程序获取安全描述符的值;
其中,在本实施例步骤310中,安全描述符是用于指定安全对象所有者,以及用于指定 安全对象允许或拒绝哪些用户和组进行访问及其访问权限;
在本实施例步骤311中,获取所述安全描述符的值的方法包括如下两种直接使用预先 定义的安全描述符的值和计算所述安全描述符的值;具体内容如下
1、 直接使用预先定义的安全描述符的值
在本实施中,预先定义的安全描述符的值可以有很多种,如
当static const BYTE everyone一sd[]=
"\x01\x00\x04\x90\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\xl4\x00\x00\x00\x02\x00\xlC\x00\x01\x00\x00\x00\x00\x00\xl4\x00〃 〃\xFF\x01\xlF\xl0\x01\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00〃;
代表任何人都有完全控制的权限,不包括guest用户;
当static const BYTE everyone一sd[]=
"\x01\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00〃 〃\x00\x00\x00\x00〃;
代表任何人都有完全控制的权限,包括guest用户;
2、 计算安全描述符的值,具体步骤如下 首先、自动运行程序构造一个安全描述符;
然后、设置安全描述符中允许或拒绝访问的用户和组的标识和权限; 其次、判断安全描述符是相对格式(self-relative)还是绝对格式(absolute),若是 相对格式,则将相对格式转化为绝对格式;
最后、获取安全描述符的二进制值,则该二进制值即为安全描述符的值;
其中,在本实施例中的计算安全描述符的值的步骤中,自动运行程序构造安全描述符的 方法如下
自动运行程序创建一个新的安全描述符;
或,
自动运行程序获取系统服务进程的安全令牌的安全描述符; 或,
自动运行程序获取注册表中的光盘设备类的安全描述符。
步骤312、自动运行程序将"Security"项的值设置为指定权限对应的安全描述符的值; 步骤313、计算机根据设置后的注册表的"Security"项的值来改变光盘设备类的所有 权限;
步骤314、计算机提示用户输入身份认证信息;
步骤315、信息安全设备内部验证用户输入的身份认证信息是否合法,若身份认证信息 不合法,则执行步骤316;若身份认证信息合法,则执行步骤317;
歩骤316、信息安全设备通过计算机提示出错信息或者要求用户重新输入身份认证信息; 步骤317、信息安全设备允许用户使用信息安全设备;
步骤318、计算机中的应用程序向信息安全设备发送光盘设备类型操作指令,与信息安 全设备进行数据通信,信息安全设备执行这个操作指令;
在本实施例步骤318中,计算机中的应用程序可以是计算机中预先存在的,也可以是通 过信息安全设备中的自动运行程序安装上的。
综上所述,本发明实施例提供了一种控制信息安全设备访问权限的方法,本发明实施例 提供的方法适用于Windows2000/XP/2003操作系统平台,通过本发明实施例提供的方法实现 了信息安全设备能够在Windows操作系统下不受用户权限限制,以及如何提高信息安全设备 权限和指定用户权限等各种问题。
实施例4
参见图4,本发朋实施例提供了一种控制信息安全设备访问权限的系统,系统包括信 息安全设备400与计算机500,其中,信息安全设备400包括接口模块401、自动运行模块 402和通信模块403;
接口模块401,用于与计算机500建立连接;
自动运行模块402,用于当信息安全设备400和计算机500建立连接后,将自动运行程 序发送给计算机500,自动运行程序运行在计算机500上;
通信模块403,用于接收计算机500发送的操作指令,执行该操作指令,完成计算机500 与信息安全设备400的数据通讯;
其中计算机500包括接口模块501、修改模块502和通信模块503;
接口模块501,用于与信息安全设备400建立连接;
修改模块502,用于当计算机500与信息安全设备400建立连接后,根据自动运行程序
设置的Security项的值,修改计算机500的光盘设备类的访问权限;
通信模块503,用于实现计算机500中的应用程序向信息安全设备400发送操作指令。 自动运行程序提升自身的权限,并在计算机500的注册表中的光盘设备类的Pr叩erties
键下创建安全Security项,再获取安全描述符的值,自动运行程序将Security项的值设置
为安全描述符的值;
计算机500根据Security项的值,修改计算机500的光盘设备类的访问权限;
计算机500中的应用程序向信息安全设备400发送操作指令,信息安全设备400执行操 作指令,完成计算机500与信息安全设备400的数据通讯。
综上所述,本发明实施例提供了一种控制信息安全设备访问权限的系统,通过本发明实 施例提供的系统实现了信息安全设备能够在Windows操作系统下不受用户权限限制,以及如 何修改信息安全设备权限等各种问题。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之 内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种控制信息安全设备访问权限的方法,其特征在于,所述方法包括信息安全设备与计算机建立连接后,所述信息安全设备启动自动运行程序;所述自动运行程序提升自身的权限;所述自动运行程序在所述计算机的注册表中的光盘设备类的Properties键下,创建安全Security项;并获取安全描述符的值;所述自动运行程序将所述Security项的值设置为所述安全描述符号的值;所述计算机根据所述Security项的值,修改所述计算机的光盘设备类的访问权限;所述计算机中的应用程序向所述信息安全设备发送操作指令,所述信息安全设备执行所述操作指令,完成所述计算机与所述信息安全设备的数据通讯。
2、 如权利要求l所述的方法,其特征在于,所述自动运行程序提升所述信息安全设备的 访问权限的步骤,之前还包括所述自动运行程序判断所述计算机的注册表的状态,如果所述注册表未被修改,则执行 后续步骤;相应地,如果所述注册表被修改为期望状态,则执行所述计算机中的应用程序向所述信 息安全设备发送操作指令。
3、 如权利要求2所述的方法,其特征在于,所述期望状态具体为所述计算机中的应用程 序向所述信息安全设备发送操作指令之前,所述注册表的相应状态。
4、 如权利要求l所述的方法,其特征在于,所述自动运行程序提升所述信息安全设备的 访问权限的步骤,具体包括所述自动运行程序启动自定义的Windows服务;在所述Windows服务入口函数中打开所述注册表中的光盘设备类的Properties键; 或,所述自动运行程序获取系统服务进程的安全令牌; 获取所述安全令牌的安全描述符; 获取所述安全令牌的安全描述符的自由访问控制列表;在所述自由访问控制列表中添加当前登录用户的完全控制访问权限; 所述安全令牌具有所述当前登录用户的所有权限后,获取当前进程的安全令牌; 所述自动运行程序调用I即ersonateLoggedOnUser函数,使所述当前进程具有系统服务 进程的权限; 或,所述自动运行程序通过调用函数GetNamedSecuritylnfo,获取注册表中光盘设备类的Properties键的自由访问控制列表;调用函数BuildExplicitAccessWithName创建一个任何用户都可控制的访问控制实体; 将所述访问控制实体添加到所述自由访问控制列表中后,调用SetNamedSecuritylnfo函数更新所述光盘设备类的Properties键的自由访问列表。
5、 如权利要求4所述的方法,其特征在于,所述自动运行程序启动自定义的Windows服 务的步骤还包括所述自动运行程序判断所述自定义的Windows服务是否存在,若存在,则所述自动运行 程序打开所述服务,若不存在,则所述自动运行程序创建一个自定义的Windows服务; 启动所述服务。
6、 如权利要求l所述的方法,其特征在于,所述自动运行程序获取安全描述符的值的步骤,具体包括所述自动运行程序使用预先定义的安全描述符值,或,所述自动运行程序使用计算出的 安全描述符的值。
7、 如权利要求6所述的方法,其特征在于,所述计算安全描述符的值的步骤,具体包括: 所述自动运行程序构造一个安全描述符;设置所述安全描述符中的访问对象的标识、权限,所述访问对象具体为用户和组; 获取所述安全描述符的二进制值。
8、 如权利要求7所述的方法,其特征在于,所述构造安全描述符的方法如下 所述自动运行程序创建一个新的安全描述符;或,所述自动运行程序获取系统服务进程的安全令牌的安全描述符;或,所述自动运行程序获取注册表中的光盘设备类的安全描述符。
9、 如权利要求7所述的方法,其特征在于,所述设置所述安全描述符中的访问对象的标识、权限的歩骤,具体包括设置所述安全描述符中的允许访问的访问对象的标识、权限,或,设置所述安全描述符 中的拒绝访问的访问对象的标识、权限。
10、 如权利要求7所述的方法,其特征在于,所述获取所述安全描述符的二进制值的步骤之前,还包括-判断所述安全描述符的格式,如果所述安全描述符是绝对格式,则执行后续步骤;如果 所述安全描述符是相对格式,则将所述相对格式转换为所述绝对格式后,执行后续步骤。
11、 如权利要求7所述的方法,其特征在于,当所述计算机的操作系统的版本是Vista 及Vista以上的操作系统,则设置所述安全描述符中的访问对象的标识、权限的步骤之后,还包括设置所述安全描述符的强制性标签mandatory label 。
12、 如权利要求1所述的方法,其特征在于,所述信息安全设备与计算机建立连接的步 骤之后,还包括所述信息安全设备通过向所述计算机报告设备描述符为小型计算机系统接口光盘设备描 述符,向所述计算机声明所述信息安全设备自身为光盘设备类型;相应地,所述计算机中的应用程序向所述信息安全设备发送操作指令的步骤,具体包括 所述计算机中的应用程序向所述信息安全设备发送光盘设备类型操作指令。
13、 如权利要求l所述的方法,其特征在于,所述计算机中的应用程序向所述信息安全 设备发送操作指令的步骤,之前还包括所述计算机提示用户输入身份认证信息;所述信息安全设备验证用户输入的身份认证信息是否合法,如果是,则所述信息安全设 备允许所述用户使用所述信息安全设备,否则,所述信息安全设备拒绝所述用户使用所述信 息安全设备。
14、 如权利要求l所述的方法,其特征在于,所述应用程序具体为预先在所述计算机中保存的应用程序,或,通过所述信息安全设备的自动运行程序安装 到所述计算机中的应用程序。
15、 一种控制信息安全设备访问权限的系统,其特征在于,所述系统包括信息安全设 备与计算机,所述信息安全设备包括接口模块、自动运行模块和通信模块;所述接口模块,用于与所述计算机建立连接;所述自动运行模块,用于当所述信息安全设备与所述计算机建立连接后,将所述自动运 行程序发送给所述计算机,所述自动运行程序运行在所述计算机中;所述通信模块,用于接收所述计算机发送的操作指令,执行所述操作指令,完成所述计 算机与所述信息安全设备的数据通讯;所述计算机包括接口模块、修改模块和通信模块;所述接口模块,用于与所述信息安全设备建立连接;所述修改模块,用于当所述计算机与所述信息安全设备建立连接后,根据所述自动运行程序设置的Security项的值,修改所述计算机的光盘设备类的访问权限;所述通信模块,用于实现所述计算机中的应用程序向所述信息安全设备发送操作指令; 所述自动运行程序提升自身的权限,并在所述计算机的注册表中的光盘设备类的Properties键下创建安全Security项,再获取安全描述符的值,所述自动运行程序把所述Security项的值设置为所述安全描述符的值;所述计算机根据所述Security项的值,修改所述计算机的光盘设备类的访问权限; 所述计算机中的应用程序向所述信息安全设备发送操作指令,所述信息安全设备执行所述操作指令,完成所述计算机与所述信息安全设备的数据通讯。
全文摘要
本发明公开了一种控制信息安全设备访问权限的方法和系统,属于控制设备访问权限领域。方法包括信息安全设备启动自动运行程序;提升自动运行程序的权限,在计算机的注册表中的光盘设备类的Properties键下创建安全Security项;并获取安全描述符的值;把安全描述符号的值设置为Security项的值;计算机根据Security项的值修改计算机的光盘设备类的访问权限;计算机中的应用程序向信息安全设备发送操作指令,完成计算机与信息安全设备的数据通讯。系统包括信息安全设备与计算机,通过本发明使得信息安全设备能够在Windows操作系统下不受用户权限限制,并且解决了如何修改信息安全设备权限等各种问题。
文档编号G06F21/00GK101369302SQ200810222758
公开日2009年2月18日 申请日期2008年9月24日 优先权日2008年9月24日
发明者于华章, 舟 陆 申请人:北京飞天诚信科技有限公司