保护计算机输入输出端口的方法

文档序号:2617090阅读:157来源:国知局
专利名称:保护计算机输入输出端口的方法
技术领域
本发明涉及一种保护计算机安全的方法,特别涉及一种保护计算机端口访问安全的方法。
技术背景随着个人计算机(Personal Computer,PC)的快速发展,计算机的安全性已经越来越受到人们的关注。
计算机输入输出(Input & Output,IO)端口的迅速发展给计算机的安全性带来了极大的挑战。这些IO端口主要包括通用串行总线(Universal Serial Bus,USB)端口、读卡器(Card Reader)端口、尤盘驱动器(Optic Disk Driver,ODD)端口、软盘驱动器(Floppy)端口以及网络(Network)端口。
由于计算机中存储了大量的信息及数据,通过这些IO端口可以将计算机中存储的信息及数据拷贝到外部的存储设备。如果计算机的用户离开自己已经打开的计算机,他人就很容易通过这些IO端口来拷贝计算机上的信息及数据。一旦用户的计算机中的资料被盗取,可能给用户带来巨大的损失。
目前,多数计算机的操作系统(Operating System,OS)都可以在一定程度上解决这个问题。这些OS通常可以设定一个密码机制,当用户持续一段时间不操作计算机时,计算机将进入一个密码保护环境,用户需要输入正确的密码才可以重新操作计算机。这样可以在一定程度减少资料被盗取的机会。
但是,目前的计算机OS所提供的这些密码保护机制,仍然不足够安全。因为,需要用户设定一个时间段,当用户持续该段时间不操作计算机时,计算机才进入密码保护环境。他人仍然可以在该段时间之内来盗取计算机的资料。

发明内容鉴于以上内容,有必要提供一种更加安全的保护计算机输入输出(Input & Output,IO)端口的方法。
以下列举较佳实施例进行说明一种保护计算机输入输出端口的方法,其对计算机IO端口的访问权限设定密码保护。该方法包括如下步骤根据需要保护的计算机输入输出端口的全球唯一标识符搜索计算机系统注册表,获取该计算机输入输出端口在计算机系统注册表中所记录的识别码;在系统硬件库中寻找实际的识别码与计算机系统注册表中所记录的识别码相同的计算机输入输出端口;设定一参数用于控制该计算机输入输出端口的访问权限,该参数可被设定为激活状态或者禁用状态;设定并保存一密码,输入正确的密码才可将该参数设定为激活状态。
相较于现有技术,本发明之保护计算机输入输出端口的方法提供更加安全的密码保护机制。其当用户(或者其他任何人)在任何时候启用某个计算机IO端口之前都必须输入正确的密码,否则用户无法启用该计算机IO端口。

图1是本发明保护计算机输入输出(Input & Output,IO)端口方法的较佳实施例的主流程图。
图2是本发明保护计算机网络端口的方法的较佳实施例的详细实施步骤流程图。
具体实施方式

如图1所示,是本发明保护计算机输入输出(Input & Output,IO)端口方法的较佳实施例的主流程图。本发明所应用的计算机可以是IBM架构的个人计算机(IBM Personal Computer,IBM PC),也可以是Apple公司的Mac PC,还可以是任意其它适用的计算机。
在该计算机上需要安装至少一个操作系统(OperatingSystem),用于管理和控制计算机的硬件及软件,计算机硬件包括计算机IO端口,例如通用串行总线(Universal Serial Bus,USB)端口、读卡器(Card Reader)端口、光盘驱动器(Optic DiskDriver,ODD)端口、软盘驱动器(Floppy)端口以及网络(Network)端口。计算机可以选择安装各种不同的操作系统,例如早期的磁盘操作系统(Disk Operating System,DOS)、微软公司推出的视窗操作系统(Windows Operating System)、Unix操作系统以及Linux操作系统。计算机也通常会安装一些软件,本发明的方法可以由一安装在计算机上的软件来执行。
在步骤S10中,选择需要保护的计算机IO端口,并且映射出该计算机IO端口的全球唯一标识符(Global Unique Identifier,GUID)。
GUID是一个字母数字标识符,用于标识计算机输入输出端口的唯一性。GUID的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个x是0-9或a-f范围内的一个十六进制的数字。例如6F9619FF-8B86-D011-B42D-00C04FC964FF即为有效的GUID值。世界上的任何两台计算机都不会生成重复的GUID值。GUID主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。在视窗操作系统平台上,GUID应用非常广泛注册表、类及接口标识、数据库、甚至自动生成的机器名、目录名等。
在本发明中,由于事先将每个计算机IO端口与其各自对应的GUID进行映射,即只需要选择一计算机IO端口便可以自动映射出对应的GUID。
在步骤S12中,根据所选择的计算机IO端口的GUID搜索计算机系统注册表,获取该计算机IO端口在计算机系统注册表中所记录的识别码。
计算机的操作系统通常都会有一个计算机系统注册表,用于管理计算机的硬件及软件。计算机系统注册表记录经操作系统注册过的硬件及软件的信息,包括所有硬件的识别码。识别码是计算机硬件厂商赋予计算机硬件的识别信息。
在步骤S14中,访问系统硬件库,获取系统硬件库中的硬件实际的识别码,找到实际的识别码与计算机系统注册表中所记录的识别码相同的计算机输入输出端口。
此一步骤是根据在步骤S12中从计算机系统注册表中找到的识别码记录,在系统硬件库中找到实际对应的硬件。
在步骤S16中,设定一参数用于控制所找到的该计算机输入输出端口的访问权限,该参数可被设定为激活状态或者禁用状态。当该参数被设定为激活状态时,该计算机输入输出端口可以被访问,当该参数被设定为禁用状态时,该计算机输入输出端口被禁用。
在步骤S18中,设定并保存一密码,输入正确的密码才可将该参数设定为激活状态。本发明的其他实施例中,将该参数设定为禁用状态时候也需要输入正确的密码。
在本发明一较佳实施例中,所应用的计算机为IBM PC,安装有微软的视窗操作系统以及可执行本发明方法的软件,并结合图2以保护计算机网络(Network)端口为例介绍本发明方法的详细实施步骤流程。其中,计算机网络端口的GUID为4D36E972-E325-11CE-BFC1-08002BE10318。
在步骤S200中,根据计算机网络端口的GUID搜索计算机系统注册表,获取计算机网络端口的识别码值。在微软的视窗操作系统中,计算机网络端口在计算机系统注册表中的路径是HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class{4D36E972-E325-11CE-BFC1-08002BE10318}\0000,找到计算机网络端口的识别码ComponentId的值为pci\ven_8086&dev_1229&subsys_b1340e11。
在步骤S202中,调用微软公司的驱动开发工具包(DriversDeveloping Kit,DDK)中的SetupDiGetClassDevs函数访问计算机的系统硬件库。
在本发明的其他实施例中,例如计算机安装了其它操作系统(比如Linux操作系统或者Unix操作系统),则可不必调用本实施例中涉及到的DDK的函数,可以通过编写具有相应功能的其他函数代替,本领域的一般技术人员不必付出创造性劳动即可完成这些替代函数的编写。
在步骤S204中,调用DDK中的SetupDiEnumDeviceInfo函数,枚举硬件并获得硬件接口。
在步骤S206中,调用DDK中的SetupDiGetDeviceRegistryProperty函数,通过在步骤S204所获得的硬件接口获取该硬件的信息,包括其识别码ComponentId的值。此一步骤所获得的识别码的值是实际在硬件上获取的。
在步骤S208中,比较在步骤S206中所获得的ComponentId与在步骤S200中所找到的计算机网络端口的ComponentId,并判断二者是否相等。如果二者不相等,则返回步骤S206;如果二者相等,则执行步骤S210。
在步骤S210中,定义SP_PROPCHANGE_PARAMS类型的变量。该变量下有一StateChange参数可以用于控制该计算机网络端口的访问权限,该StateChange参数可被设定为激活状态(Enable)或者禁用状态(Disable),当该StateChange参数被设定为Enable时,该计算机网络端口可以被访问,当该StateChange参数被设定为Disable时,该计算机网络端口被禁用。
在步骤S212中,由用户设定并保存一密码,用于控制对于StateChange参数的修改权限。当用户第一次利用本发明保护计算机网络端口时候,才需要设定并保存密码,以后每次修改StateChange参数之前都只需要输入正确的密码就可以。
在步骤S214中,判断所输入的密码是否正确。第一次设定密码时候,则不需要执行此步骤。如果所输入的密码不正确,则返回步骤S212重新输入密码;如果所输入的密码正确,则执行步骤S216。
在步骤S216中,设定SP_PROPCHANGE_PARAMS变量下的StateChange参数的值,可以设定为Enable或者Disable。
在步骤S218中,判断StateChange参数的值是否被设定为Disable。如果StateChange参数的值是被设定为Disable,则执行步骤S220;如果StateChange参数的值是被设定为Enalbe,则执行步骤S222。
在步骤S220中,调用SetupDiSetClassInstallParams函数禁用该计算机网络端口。
在步骤S222中,调用SetupDiSetClassInstallParams函数启用该计算机网络端口。
权利要求
1.一种保护计算机输入输出端口的方法,其对计算机输入输出端口的访问权限设定密码保护,其特征在于,该方法包括如下步骤根据需要保护的计算机输入输出端口的全球唯一标识符搜索计算机系统注册表,获取该计算机输入输出端口在计算机系统注册表中所记录的识别码;在系统硬件库中寻找实际的识别码与计算机系统注册表中所记录的识别码相同的计算机输入输出端口;设定一参数用于控制该计算机输入输出端口的访问权限,该参数可被设定为激活状态或者禁用状态;设定并保存一密码,输入正确的密码才可将该参数设定为激活状态。
2.如权利要求1所述的保护计算机输入输出端口的方法,其特征在于所述的全球唯一标识符是一个字母数字标识符,用于标识计算机输入输出端口的唯一性。
3.如权利要求1所述的保护计算机输入输出端口的方法,其特征在于当所述的参数被设定为激活状态时,则调用一启用函数启用所述的计算机输入输出端口。
4.如权利要求1或3所述的保护计算机输入输出端口的方法,其特征在于当所述的参数被设定为禁用状态时,则调用一禁用函数禁用所述的计算机输入输出端口。
5.如权利要求1或2所述的保护计算机输入输出端口的方法,其特征在于,该方法还包括步骤选择需要保护的计算机输入输出端口,映射出该计算机输入输出端口的全球唯一标识符。
6.如权利要求1或2所述的保护计算机输入输出端口的方法,其特征在于,其中在系统硬件库中寻找实际的识别码与计算机系统注册表中所记录的识别码相同的计算机输入输出端口的步骤包括以下步骤访问系统硬件库;获取系统硬件库中的一硬件的实际的识别码;比较所获取的实际的识别码与计算机系统注册表中所记录的识别码是否相同;如果所获取的实际的识别码与计算机系统注册表中所记录的识别码相同,则具有该实际的识别码的硬件为所述的需要保护的计算机输入输出端口;如果所获取的实际的识别码与计算机系统注册表中所记录的识别码不相同,则从系统硬件库中获取另一硬件的实际的识别码,并与计算机系统注册表中所记录的识别码比较是否相同。
全文摘要
一种保护计算机输入输出(Input & Output,IO)端口的方法,其对计算机IO端口的访问权限设定密码保护。该方法包括如下步骤根据需要保护的计算机输入输出端口的全球唯一标识符搜索计算机系统注册表,获取该计算机输入输出端口在计算机系统注册表中所记录的识别码;在系统硬件库中寻找实际的识别码与计算机系统注册表中所记录的识别码相同的计算机输入输出端口;设定一参数用于控制该计算机输入输出端口的访问权限,该参数可被设定为激活状态或者禁用状态;设定并保存一密码,输入正确的密码才可将该参数设定为激活状态。本发明提供更加安全的密码保护机制保护计算机输入输出端口。
文档编号G06F1/00GK1928767SQ2005100371
公开日2007年3月14日 申请日期2005年9月7日 优先权日2005年9月7日
发明者黄肇振, 林有旭, 翁意钦, 彭正全 申请人:鸿富锦精密工业(深圳)有限公司, 鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1