一种基于软件实名认证的系统及其安全查证方法

文档序号:6611955阅读:223来源:国知局

专利名称::一种基于软件实名认证的系统及其安全查证方法
技术领域
:本发明涉及一种计算机软件系统及其计算机运行安全查证方法,尤其是指一种基于软件实名认证的计算机软件系统及其计算机运行安全査证方法,属于计算机安全
技术领域

背景技术
:当前,Internet上不断升级的病毒、木马、间谍软件、广告软件等的危害已对广大企业和个人用户使用网络造成了极大的不便和安全困扰。通过研究,当前绝大多数恶意代码可归为如下两类1.将合法程序进行改动,让它含有并执行某种破坏功能,如程序自毁或磁盘自毁;2.利用合法程序的功能和权限,非法获取或篡改系统资源和敏感数据,进行系统入侵。现在普遍采用的防病毒方案主要包括l.须手工启动,或者由一个自动进程启动进行。启动后,一般会在整个驱动器或系统中查找病毒,包括RAM内存和硬盘、软盘等存储设备;2.在系统后台运行的程序。它们一般在系统启动的时候初始化,然后在内存中保持激活的状态。一旦有文件访问活动时,内存驻留的扫描程序拦截对文件的调用,查看文件中是否有病毒,然后才允许文件装入内存。以上方法的缺陷在于防病毒软件只能预防该软件能检测到的病毒,对一些不能诊断或不能清除的新病毒则无能为力,因为病毒产生在先,诊治手段在后,查杀病毒的手段总是跟在一些新病毒的后面发展。用户要想能检测到新的病毒需要经常更新病毒库,必要时甚至还需要购买新版本的防病毒软件。有鉴于上述现有技术的缺陷,本发明的技术人员经过不断的实验研究,终于发明出一种基于软件实名认证的系统,该系统嵌入计算机内存中,同时发明了一种基于该系统的安全查证方法,在计算机进行软件安装之前,先进行安装认证,以判定其是否安全,能否进行安装,以此来杜绝由于错误或不小心点击安装程序进行了安装,而给计算机带来的安全隐患。
发明内容本发明的目的在于提出一种通过软件完整性保护和数字签名技术来实现软件实名SoftwareRealName(SRN)认证的系统。此间说明的是,本发明中所说的软件实名(SoftwareRealName-SRN)是指使用公钥密码数字签名技术将计算机软件和其编制者身份进行绑定,并在计算环境中实现对计算机软件的身份认证。本发明的另一目的在于提出一种基于软件实名认证的系统安全查证方法。为实现上述目的,本发明采用的技术方案如下-一种基于软件实名认证的系统,该系统包括为被授权的软件添加软件标识的软件标识器S頂、检验系统中可执行文件的软件标识是否合法的软件认证器SAM,所述的软件标识器S頂和软件认证器SAM保存在计算机磁盘中。所述的基于软件实名认证的系统,所述的软件标识器SIM以可执行文件的形式、软件认证器SAM以动态链接库文件的形式分别保存在计算机磁盘中。所述的基于软件实名认证的系统,所述的软件标识器SIM包括负责为软件制造商分发并维护将其身份与公钥信息相绑定的数字证书的证书颁发机构Al、负责审核并授权某一软件的安装和使用、将该软件的可执行代码的数字摘要以及对应软件制造商的公钥信息保存到目标系统的软件许可列表中的软件注册中心A2、软件制造商用其私钥对所编制的软件的可执行文件进行摘要签名的软件标识生成器A3、将软件标识加入到相应软件的可执行文件中的软件标识添加器A4。所述的基于软件实名认证的系统,所述的软件认证器SAM包括认证触发器Bl、负责检验软件制造商证书的合法性的证书颁发机构B2、负责提供软件注册信息和软件相应编制者的证书的软件许可列表B3、当确认软件在许可列表中之后、利用软件制造商证书中提供的公钥检查软件中的数字标识SI的合法性的软件认证器B4。所述的基于软件实名认证的系统,所述的软件认证器SAM包括静态认证和动态认证两种模式,所述的静态软件认证器保证系统中的可执行文件均经过软件标识器标识,该进程常驻内存按用户指定的时间间隔对系统硬盘和内存中的数据进行扫描;所述的动态软件认证器以动态链接库的形式存在,所述的软件认证器S扁在验证软件标识SI时,需要先定位软件标识SI所在的节从而获得软件标识SI,当软件认证器S層验证成功时,根据原入口地址参数返回,从而使得进程继续执行,所述的软件认证器SAM代码不得对目标文件进行修改,从而保证进程可以正确地继续执行。所述的基于软件实名认证的系统,所述的软件认证器SAM包括本地认证和远程认证两种模式,在进行本地认证时,用户将软件许可列表下载到本地的主机上,在进行软件安装时,直接调用本地主机中的软件许可列表进行认证;在进行远程认证时,用户通过网络实时访问远程的可信服务器,对软件许可列表进行查询,确定待认证的软件己被注册,并获取该软件可执行文件的数字摘要,以及制造商的数字证书,然后再到本机验证该软件的完整性和合法性。一种基于软件实名认证的安全查证方法,该方法主要是在Windows操作系统运行时,加载器会先处理目标文件,在目标文件的处理中,软件实名认证系统的软件认证器SAM打断Windows可执行程序加载流程,从而将控制转交给软件认证器SAM,通过软件标识器SIM、使用公钥密码数字签名技术将计算机软件和其编制者身份进行绑定,并在计算环境中由软件认证器SAM实现对计算机软件的身份认证,最后,通过验证的可执行文件进行安装使用。所述的基于软件实名认证的安全查证方法,所述的软件标识器SIM的基本原理如下St印1:制造商A在证书颁发机构CA中心申请并获得其公私密钥对P6i:,,,和将其身份与公钥绑定的证书Cew,;St印2:制造商A在软件注册中心申请并获得软件S在目标系统安装并运行的授权,将(^/(&),CeWj保存到目标系统的软件许可列表中,软件许可列表可以存放在目标系统本地,或集中存放在远程的某台可信服务器上;St印3:制造商A通过软件标识SI生成器,生成软件标识5/=(//|^))/^,并在可执行文件中添加一个新节,填入软件标识SI信息,最后得到的FS'=FSl|SI,即为带软件标识SI的软件可执行文件。所述的基于软件实名认证的安全査证方法,在进行软件认证的过程中,需要对加载器进行修改,以判断可执行代码的合法性,进而决定其有无运行资格,其具体的操作步骤如下St印l.加载器加载可执行代码s时,先对可执行文件,/,其中,可执行文件尸/不包括软件标识过程所添加软件标识SI的部分A,计算数字摘要/f(&);St印2.在本地或远程服务器的软件许可列表中查询/f(Fj所对应的表项,如果存在则进入St印3;否则说明软件未注册或已被篡改,禁止该软件运行;St印3.通过证书颁发机构CA中心的根证书以及证书撤销列表检验软件许可列表中对应Z/0^)的软件制造商证书的合法性,如果通过则进入St印4;否则说明证书无效、过期或被撤销,禁止该软件运行;St印4.获取可执行文件,/中的软件标识SI,并利用查询得到的对应软件制造商数字证书上的公钥尸M^,使用数字签名认证算法(s/》;^检验软件标识si的合法性;如果通过,则证明软件标识SI合法,加载器随即读取可执行文件头部信息,为可执行文件分配地址空间,读入可执行文件到地址空间,进行重定位,设置环境变量,并开始运行程序;否则,说明软件标识SI不合法,软件将被禁止运行。使用本发明的有益效果在于本发明可以有效地阻止未经授权的恶意代码运行,可以识别个别软件制造商的恶意行为,也可以防止恶意代码修改已被授权的可执行代码。具体分析如下1)阻止未经授权的恶意代码运行。用户可能在使用网络时,在无意中将恶意代码植入系统内。但由于恶意代码事先未被授权,即软件许可列表中不可能存在与该恶意代码的摘要相匹配的表项,因此恶意代码会及时地被静态认证或动态认证识别,得不到运行机会。2)防止恶意代码修改磁盘上己被授权的可执行代码。一些恶意代码有可能会通过篡改可执行文件从而使自身得到执行机会。但软件实名认证会在任何可执行文件运行前先进行数字摘要匹配,以保证可执行文件的完整性。3)防止恶意代码修改内存中正在运行的可执行代码。其中,1),2)可以保证系统中所有运行着的可执行代码均为已授权的且未经篡改的,这意味着不可能存在恶意进程来修改内存中正在运行的可执行代码。4)识别个别软件制造商的恶意行为。个别软件制造商,出于某种目的,可能会在自己所生产的己被授权的软件中插入恶意代码。软件实名认证可以借助系统日志或其它手段在恶意行为发生后追査到"肇事"的可执行文件,并通过SI和软件许可列表识别该软件制造商,并对其追究一定责任。该机制运行于对软件的制造商身份进行认证的PKI(PublicKeyInfrastructure)体制之上。典型的PKI通过集成下面的元素,来保护信息安全的传输和接收证书颁发机构CA;注册机构RA;证书目录;管理协议;政策和过程(协助机构应用和管理证书,规范法律责任和义务,以及实际的商务应用)。图1A为本发明中所使用的PE文件结构示意图;图1B为本发明中所使用的PE文件头部格式示意图;图2为本发明软件标识器的基本原理图;图3为本发明软件验证器的基本原理图;具体实施方式下面通过具体实施例加以附图对本发明进行详细说明。首先说明的是在现代计算机系统中,源程序经由编译器和汇编器处理,生成目标文件,多个目标文件再经由链接器合并为一个可执行文件。PortableExecutable(PE)是WindowsNT技术所采用的目标文件格式。Windows可执行文件(.exe)或动态链接库文件(.dll)都以PE格式存储,所以,本说明书中主要基于对WindowsNT技术中的PortableExecutable(PE)文件格式和加载过程的分析提出了一种面向Windows操作系统的软件实名机制实现方案,并对系统安全性进行了分析和讨论。如图1A、IB所示,执行时操作系统的加载器会处理PE文件,从而将程序的代码、数据、资源加载到内存中。因此,在Windows操作系统中实现基于软件认证的安全机制,存在的核心问题是认证触发器如何打断windows可执行程序加载流程,从而控制转交给软件认证器,所以,需要分析PE文件格式和PE文件启动运行的过程如图1A,为本发明中所使用的PE文件结构示意图;在PE文件中通常包括PE头部1、节表2、节区3以及可选项4三大部分。在可选项4中又分为COFF行号、COFF符号表、调试信息三大类。在节区3中含有很多的文件,通常包含以下几种类型的"节".text节存放编译器或汇编器生成的所有代码;.data节存放编译时己赋初始值的全局变量和静态变量等数据;.bss节存放未初始的静态和全局变量;.rsrc节存放程序所要用到的资源;.idata节存放程序要从其它DLL文件中导入的函数或数据的有关信息,每个DLL都用一个頂AGE一IMPORTJ)ESCRIPTOR结构来描述,该结构包含指针指向一个MAGE—IMPORT—BY—NAME结构的数组来说明需要导入的符号的位置;.edata节存放该PE文件可向其它模块导出的函数和数据的相关信息,通常只有.dll文件中会包含.edata节。节表2类似一张跳转表,指明了其后所有节Section的起始地址,它为每节提供了一个MAGE_SECTION_HEADER结构来说明该节的名称(Name域),该节映射到内存中的偏移地址(VirtualAddress域),该节的大小(SizeOfRawData域)等信息。而PE头部1结构如图IB所示,为本发明中所使用的PE文件头部格式示意图;PE文件的头部起始位置是一小段DOS程序DOSstub来保证Win32程序在非Win32环境中执行时能得到错误提示,之后是一个DWORD类型的签名域SignatureField,来区分PE、NE和LE文件,从而提供向后兼容的特性,IMAGE—FILE—HEADER结构位于签名域之后,用于存放一些基本信息,例如可以运行section的数目,链接器生成该PE文件的时间,COFF符号表中的符号数目等。最后也是最为关键的一部分称为IMAGE—OPTIONAL—HEADER,这个结构包含了PE文件的重要信息,包括可执行代码的入口地址AddressOfEntryPoint域,代码节的起始偏移地址和大小BaseOfCode域和SizeOfCode域,数据节的起始偏移地址和大小BaseOfData域和SizeOfData域,可执行程序在内存中将被映射的目标地址ImageBase域,该PE文件的CRC校验和Checksum域,初始线程堆栈保留空间大小SizeOfHeapReserve域和SizeOfStackReserve域,初始线程堆栈初始空间大小SizeOfStackCommit域和SizeOfStackCommit域,PE文件中重要部分如导出函数表.edata节和导入函数表.idata节等的起始偏移地址DataDirectory域。其中,目标文件PE可执行程序的启动运行过程包括以下步骤首先,读入文件的PE头部和节表;然后,确定目标地址空间是否可用,如果不可用,则分配一块区域lll;第三,根据PE头部和节表所提供的偏移地址信息,将文件中所有节映射到地址空间的适当位置上;第四,确定文件是否已经被加载到目标地址中,如果还没有,则进行重定位;第五,遍历导入节(.idata节)中的DLL列表,递归地加载尚未加载的库;第六,解析所有在导入节(.idata节)中的导入符号;第七,根据PE头部信息创建初始堆栈;最后,创建初始线程并启动该进程,从PE头部AddressOfEntryPoint域所指明的入口地址处开始执行。需要说明的是当进程调用外部动态链接库中的某个函数时,编译器在.text段产生的相应指令形式如下JMPDWORDPTR[XXXXXXX幻,这条JMP指令所要跳转的地址在.idata节中,并指向该函数在当前操作系统中的入口地址。介绍了本发明在现有技术中的应用后,下面重点介绍本发明的核心技术内容。软件实名SRN系统安全机制的核心组件包括软件标识模型SIM(SoftwareIdentificationModel)以及软件认证模型SAM(SoftwareAuthenticationModel)。SIM为被授权的软件添加软件标识SI(SoftwareIdentification),SAM则以静态和动态两种方式检验系统中可执行文件的软件标识SI是否合法,从而保证所有被运行的代码是经过授权的并且未被篡改,使得可以在新病毒造成危害之前发现并杜绝之。可以预见,在对移动、多接入等功能有重大需求的下一代互联网中,特别是在高安全需求的军事信息网络领域,软件实名认证将扮演曰益重要的角色。该系统运行于对软件的制造商身份进行认证的PKI(PublicKeyInfrastructure)体制之上。典型的PKI通过集成下面的元素,来保护信息安全的传输和接收证书颁发机构CA;注册机构RA;证书目录;管理协议;政策和过程。本发明提出的基于软件实名认证的系统,该系统包括为被授权的软件添加软件标识的软件标识器SIM、检验系统中可执行文件的软件标识是否合法的软件认证器SAM,所述的软件标识器SIM和软件认证器SAM保存在计算机磁盘中。本发明提出的基于软件实名认证的安全查证方法,该方法主要是在Windows操作系统运行时,加载器会先处理目标文件,在目标文件的处理中,软件实名认证系统的软件认证器SAM打断Windows可执行程序加载流程,从而将控制转交给软件认证器S細,通过软件标识器SIM、使用公钥密码数字签名技术将计算机软件和其编制者身份进行绑定,并在计算环境中由软件认证器SAM实现对计算机软件的身份认证,最后,通过验证的可执行文件进行安装使用。所述的软件标识器SIM以可执行文件的形式、软件认证器SAM以动态链接库文件的形式分别保存在计算机磁盘中。所述的软件标识器SIM包括负责为软件制造商分发并维护将其身份与公钥信息相绑定的数字证书的证书颁发机构Al、负责审核并授权某一软件的安装和使用、将该软件的可执行代码的数字摘要以及对应软件制造商的公钥信息保存到目标系统的软件许可列表中的软件注册中心A2、软件制造商用其私钥对所编制的软件的可执行文件进行摘要签名的软件标识生成器A3、将软件标识加入到相应软件的可执行文件中的软件标识添加器A4。所述的软件标识器SIM的基本原理如下如图2所示,St印1:制造商A在证书颁发机构CA中心申请并获得其公私密钥对(P6〖,,尸/^),和将其身份与公钥绑定的证书(Cert,);St印2:制造商A在软件注册中心申请并获得软件S在目标系统安装并运行的授权,将6F/(&),O^J保存到目标系统的软件许可列表中,软件许可列表可以存放在目标系统本地,或集中存放在远程的某台可信服务器上;St印3:制造商A通过软件标识SI生成器,生成软件标识57-(/Z(Fs))p",并在可执行文件中添加一个新节,填入软件标识SI信息,最后得到的FS'=FS||SI,即为带软件标识SI的软件可执行文件。其中,CA中心负责为软件制造商分发并维护将其身份与公钥信息相绑定的数字证书;软件注册中心负责审核并授权某一软件的安装和使用,并将该软件的可执行代码的数字摘要以及对应软件制造商的公钥信息保存到目标系统的软件许可列表中;SI生成器软件制造商通过SI生成器用其私钥对所编制的软件的可执行文件进行摘要签名,这个签名就是该软件对应的软件标识SI;SI添加器软件制造商通过SI添加器将SI加入到相应软件的可执行文件中。再结合前面对发明软件实名认证系统在目标文件中的应用的说明,介绍软件标识器SIM的实现方案St印l.为软件认证器所对应的动态链接库生成IMAGE_IMP0RT_DESCRIPT0R结构,并加入到所要标识的软件的PE文件的.idata节中;St印2.保留当前PE头部中AddressOfEntryPoint域的值,并在.text节中加入代码,使启动动态软件认证器,并将所保留的原AddressOfEntryPoint域的值作为参数传入,所加入的代码将被作为新的AddressOfEntryPoint;St印3.根据软件标识算法来计算软件标识并作为一个新节section加入到PE文件中,软件标识的计算不依赖于在标识过程中被改动的PE头部域和节表域的域值;St印4.计算改动后各节的起始偏移地址、.idata节和.text节的长度、新的入口地址AddressOfEntryPoint,以及CRC校验和,并更新PE头部和节表中的相关域。通常一个可执行文件会导入许多第三方开发的动态链接库中的函数,这些动态链接库的可执行文件也必须由其提供者进行包含以上步骤的标识过程。对于脚本程序,则对脚本文本求取数字摘要,并进行签名,步骤基本同上,不再赘述。下面,重点介绍软件认证器SAM的原理及实现方案如图3所示,所述的软件认证器SAM包括认证触发器Bl、负责检验软件制造商证书的合法性的证书颁发机构B2、负责提供软件注册信息和软件相应编制者的证书的软件许可列表B3、当确认软件在许可列表中之后、利用软件制造商证书中提供的公钥检査软件中的数字标识SI的合法性的软件认证器B4。其中,认证触发器当采用静态认证时,可通过手工运行的方式触发认证,或通过设置定时器,定时触发认证,当采用动态认证时,会在可执行文件加载器开始读取可执行文件头部信息时触发认证;CA中心负责检验软件制造商证书的合法性;软件许可列表负责提供软件注册信息和软件相应编制者的证书;软件认证器当确认软件在许可列表中之后,利用软件制造商证书中提供的公钥检査软件中的数字标识SI的合法性。所述的软件认证器SAM包括静态认证和动态认证两种模式,所述的静态软件认证器保证系统中的可执行文件均经过软件标识器标识,该进程常驻内存按用户指定的时间间隔对系统硬盘和内存中的数据进行扫描;静态验证指操作系统或用户定时或不定时地对主机磁盘上的可执行文件进行扫描和认证,以确保系统安全性,当发现硬盘上的可执行文件或内存中的可执行代码时,进行如下步骤St印l.定位软件标识所在的节。如果不存在,则报警,并隔离该文件,结束本次循环并扫描下一文件,否则进入St印2;St印2.按数字签名认证算法(S/》k检查软件标识是否合法,如果不合法,则报警,并隔离该文件,结束本次循环并扫描下一文件;否则进入St印3;St印3.找到目标文件PE头部的AddressOfEntryPoint域,査看其值是否指向动态软件认证器的入口地址,并检查PE文件的.idata节是否导入了动态软件认证器的DLL库。如果不是,则报警,并隔离该文件,结束本次循环并扫描下一文件;否则认为该文件通过扫描,结束本次循环并扫描下一文件。如果从提高认证效率的角度考虑,St印l和St印2可省略,这样的代价在于发现恶意软件的时机会被推迟至运行时。所述的动态软件认证器以动态链接库的形式存在,所述的软件认证器SAM在验证软件标识SI时,需要先定位软件标识SI所在的节从而获得软件标识SI,当软件认证器SAM验证成功时,根据原入口地址参数返回,从而使得进程继续执行,所述的软件认证器SAM代码不得对目标文件进行修改,从而保证进程可以正确地继续执行。动态验证指常驻内存的软件认证程序会在包含安装程序在内的所有进程启动之前对该进程对应的可执行文件进行实名认证,从而保证该进程是事先经过授权,并未经篡改的。软件认证基于PKI和允许软件列表实现,并分为本地认证和远程认证两种形式。在进行本地认证时,用户将软件许可列表下载到本地的主机上,或是从可信服务器上下载的镜像,在进行软件安装时,直接调用本地主机中的软件许可列表进行认证,且认证过程全部在本地完成;在进行远程认证时,用户必须通过网络实时访问远程的可信服务器,对软件许可列表进行查询,确定待认证的软件已被注册,并获取该软件可执行文件的数字摘要,以及制造商的数字证书,然后再到本机验证该软件的完整性和合法性。在军事领域中某些对保密性要求极高的应用场合,需要进行远程认证以保障系统的唯一受控性。此间说明的是,在进行软件认证的过程中,需要对加载器进行修改,以判断可执行代码的合法性,进而决定其有无运行资格,所述的软件认证器SAM具体的操作步骤如下St印l.加载器加载可执行代码S时,先对可执行文件F/,其中,可执行文件不包括软件标识过程所添加软件标识SI的部分Fs,计算数字摘要if(i^);St印2.在本地或远程服务器的软件许可列表中査询/^&)所对应的表项,如果存在则进入St印3;否则说明软件未注册或已被篡改,禁止该软件运行;St印3.通过证书颁发机构CA中心的根证书以及证书撤销列表检验软件许可列表中对应/Z(F,)的软件制造商证书的合法性,如果通过则进入Step4;否则说明证书无效、过期或被撤销,禁止该软件运行;St印4.获取可执行文件,/中的软件标识SI,并利用査询得到的对应软件制造商数字证书上的公钥使用数字签名认证算法(S/U^检验软件标识SI的合法性;如果通过,则证明软件标识SI合法,加载器随即读取可执行文件头部信息,为可执行文件分配地址空间,读入可执行文件到地址空间,进行重定位,设置环境变量,并开始运行程序;否则,说明软件标识SI不合法,软件将被禁止运行。对于脚本程序,则由相应的解释器完成上述步骤。下表是对本说明书中出现的一些符号的定义例表1,供对照参考表l<table>tableseeoriginaldocumentpage16</column></row><table>权利要求1.一种基于软件实名认证的系统,其特征在于,该系统包括为被授权的软件添加软件标识的软件标识器(SIM)、检验系统中可执行文件的软件标识是否合法的软件认证器(SAM),所述的软件标识器(SIM)和软件认证器(SAM)保存在计算机磁盘中。2.根据权利要求1所述的基于软件实名认证的系统,其特征在于,所述的软件标识器(SBO以可执行文件的形式、软件认证器(SAM)以动态链接库文件的形式分别保存在计算机磁盘中。3.根据权利要求1或2所述的基于软件实名认证的系统,其特征在于,所述的软件标识器(SIM)包括负责为软件制造商分发并维护将其身份与公钥信息相绑定的数字证书的证书颁发机构(Al)、负责审核并授权某一软件的安装和使用、将该软件的可执行代码的数字摘要以及对应软件制造商的公钥信息保存到目标系统的软件许可列表中的软件注册中心(A2)、软件制造商用其私钥对所编制的软件的可执行文件进行摘要签名的软件标识生成器(A3)、将软件标识加入到相应软件的可执行文件中的软件标识添加器(A4)。4.根据权利要求1或2所述的基于软件实名认证的系统,其特征在于,所述的软件认证器(SAM)包括认证触发器(Bl)、负责检验软件制造商证书的合法性的证书颁发机构(B2)、负责提供软件注册信息和软件相应编制者的证书的软件许可列表(B3)、当确认软件在许可列表中之后、利用软件制造商证书中提供的公钥检查软件中的数字标识SI的合法性的软件认证器(B4)。5.根据权利要求1或4所述的基于软件实名认证的系统,其特征在于,所述的软件认证器(SAM)包括静态认证和动态认证两种模式,所述的静态软件认证器保证系统中的可执行文件均经过软件标识器标识,该进程常驻内存按用户指定的时间间隔对系统硬盘和内存中的数据进行扫描;所述的动态软件认证器以动态链接库的形式存在,所述的软件认证器(SAM)在验证软件标识(SI)时,需要先定位软件标识(SI)所在的节从而获得软件标识(SI),当软件认证器(SAM)验证成功时,根据原入口地址参数返回,从而使得进程继续执行,所述的软件认证器(SAM)代码不得对目标文件进行修改,从而保证进程可以正确地继续执行。6.根据权利要求1或4所述的基于软件实名认证的系统,其特征在于,所述的软件认证器(SAM)包括本地认证和远程认证两种模式,在进行本地认证时,用户将软件许可列表下载到本地的主机上,在进行软件安装时,直接调用本地主机中的软件许可列表进行认证;在进行远程认证时,用户通过网络实时访问远程的可信服务器,对软件许可列表进行查询,确定待认证的软件已被注册,并获取该软件可执行文件的数字摘要,以及制造商的数字证书,然后再到本机验证该软件的完整性和合法性。7.—种基于软件实名认证的安全查证方法,该方法主要是在Windows操作系统运行时,加载器会先处理目标文件,其特征在于,在目标文件的处理中,软件实名认证系统的软件认证器(SAM)打断Windows可执行程序加载流程,从而将控制转交给软件认证器(SAM),通过软件标识器(SIM)、使用公钥密码数字签名技术将计算机软件和其编制者身份进行绑定,并在计算环境中由软件认证器(SAM)实现对计算机软件的身份认证,最后,通过验证的可执行文件进行安装使用。8.根据权利要求7所述的基于软件实名认证的安全查证方法,其特征在于,所述的软件标识器(SIM)的基本原理如下(图2)St印1:制造商(A)在证书颁发机构(CA)中心申请并获得其公私密钥对(尸M:"/WP,和将其身份与公钥绑定的证书(cw,);St印2:制造商(A)在软件注册中心申请并获得软件(S)在目标系统安装并运行的授权,将广/Z(《),C^tJ保存到目标系统的软件许可列表中,软件许可列表可以存放在目标系统本地,或集中存放在远程的某台可信服务器上;St印3:制造商(A)通过软件标识(SI)生成器,生成软件标识&=并在可执行文件中添加一个新节,填入软件标识(SI)信息,最后得到的FS'=FS||SI,即为带软件标识(SI)的软件可执行文件。9.根据权利要求7所述的基于软件实名认证的安全査证方法,其特征在于,在进行软件认证的过程中,需要对加载器进行修改,以判断可执行代码的合法性,进而决定其有无运行资格,其具体的操作步骤如下(图3)St印l.加载器加载可执行代码(^)时,先对可执行文件),其中,可执行文件(/V)不包括软件标识过程所添加软件标识(SI)的部分(A),计算数字摘要;St印2.在本地或远程服务器的软件许可列表中査询(i/(Fj)所对应的表项,如果存在则进入St印3;否则说明软件未注册或已被篡改,禁止该软件运行;St印3.通过证书颁发机构(CA)中心的根证书以及证书撤销列表检验软件许可列表中对应的软件制造商证书的合法性,如果通过则进入St印4;否则说明证书无效、过期或被撤销,禁止该软件运行;St印4.获取可执行文件(尸/)中的软件标识(SI),并利用査询得到的对应软件制造商数字证书上的公钥,使用数字签名认证算法(S/^^检验软件标识(SI)的合法性;如果通过,则证明软件标识(SI)合法,加载器随即读取可执行文件头部信息,为可执行文件分配地址空间,读入可执行文件到地址空间,进行重定位,设置环境变量,并开始运行程序;否则,说明软件标识(SI)不合法,软件将被禁止运行。全文摘要本发明涉及一种基于软件实名认证的系统及其安全查证方法,该系统包括为被授权的软件添加软件标识的软件标识器、检验系统中可执行文件的软件标识是否合法的软件认证器,所述的软件标识器和软件认证器保存在计算机磁盘中。该方法主要是在Windows操作系统运行时,加载器会先处理目标文件,在目标文件的处理中,软件实名认证系统的软件认证器打断Windows可执行程序加载流程,从而将控制转交给软件认证器,由软件认证器进行认证检验,最后,通过验证的可执行文件进行安装使用。本发明能阻止未经授权的恶意代码运行,防止恶意代码修改磁盘上已被授权的可执行代码,防止恶意代码修改内存中正在运行的可执行代码,识别个别软件制造商的恶意行为。文档编号G06F21/00GK101149773SQ200710147560公开日2008年3月26日申请日期2007年8月27日优先权日2007年8月27日发明者克王申请人:中国人民解放军空军电子技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1