确认动态可连接可执行镜像的可靠性的方法技术

技术编号:2875337 阅读:219 留言:0更新日期:2012-04-11 18:40
验证可执行镜像完整性的系统和方法。该系统包括实时确认程序,它使用除去需要由程序装载程序修补的可执行段的数字签名的内容,确定参考数字签名。在装载可执行镜像之后,实时确认程序确定真实数字签名的完整性来验证可执行镜像没有被不正确地修改。而且,实时确认程序确保在可执行镜像中的每个指针没有被不正确地重定向。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及计算机系统。特别是涉及一种验证动态的、可连接的、可执行的镜像(image)的可靠性的系统和方法。值得注意的是,在装载之后,过程镜像与磁盘镜像不同。因此,即使过程镜像没有被不正确地篡改过,作出的关于磁盘镜像的检查和将不再与过程镜像的检查和匹配。因而,这里需要一种系统,能够确定在动态装载环境下的应用软件的标识。特别地,系统应当能够确定在执行应用软件之后,被动态地连接到其它的数据对象的应用软件是否被篡改。本专利技术的另一实施例,包括一种用于确定可执行镜像的可靠性的系统,该系统包括具有一个或多个指针的可执行镜像,其中,可执行镜像包括表明每个指针是否引用可执行镜像之内的位置的信息,和能够确定每个指针是否引用可执行镜像之内的各自位置的确认程序。本专利技术的另一实施例,包括一种用于确定可执行镜像的可靠性的系统,该系统包括第一可执行镜像、包括引用第一可执行镜像内位置的指针的第二可执行镜像、和能够确定指针是否引用第一可执行镜像之内位置的确认程序。本专利技术的另一实施例,包括一种能够确认可执行镜像的可靠性的系统,该系统包括第一可执行镜像、第二可执行镜像,其包括导入表,它含有第一可执行镜像的标识和一个或多个外部指针,每个外部指针引用一个在第一可执行镜像内的位置,和代码段,它包含机器码和一个或多个导入指针,每个导入指针引用在导入表内的位置,和确认程序,能够根据可执行镜像的所选的内容在第一时间点上生成参考数字签名,其中所选的内容除去每个导入指针和外部指针,其中,确认程序根据除去一个或多个指针的每一个指针的可执行镜像的所选的内容,在第二时间点上生成真实数字签名,其中,确认程序确定参考数字签名是否匹配真实数字签名,其中,确认程序确定每个导入指针所指的位置是否在第一可执行镜像之内,并且其中,确认程序确定导入指针所指位置是否在第一可执行镜像之内。附图说明图1是表示本专利技术的、用于从一个或多个源接收可执行镜像的计算机的总体方块图。图2是表示能够确定一个或多个位于图1中的计算机上的可执行镜像的可靠性的确认程序的方块图。图3是表示图2中的可执行镜像的内部结构的方块图。图4是表示在装载过程之后,图2的两个可执行镜像被连接的方块图。图5是表示在如图2所示的一个可执行镜像的可靠性检查期间,由图2的确认程序执行的一个过程的流程图。图6是表示在如图2所示的一个可执行镜像的可靠性检查期间,由图2的确认程序执行的另一个过程的流程图。具体实施例方式下面的详细描述贯注于本专利技术的某个特定的实施例。然而,本专利技术可以如权利要求定义和覆盖的那样,以在许多不同的方式实现。系统总览图1是描述计算机90的总体方框图。计算机90启动对一个或更多在计算机90上执行的可执行镜像的可靠性检查。计算机90使用常规的通用单片或多片微处理器,如Pentium处理器、PentiumPro处理器、8051处理器、MPS处理器、Power PC处理器、或ALPHA处理器,而且,计算机90可以使用常规的专用微处理器,例如数字信号处理器或图象处理器。计算机90包括操作系统95和存储器108。操作系统可以由任何一个操作系统厂商提供,其可以包括UNIX、LINUX、DOS、OS/2、Windows 3.x、Windows 95、Windows 98和Windows NT。为了便于描述,在下面本专利技术的实施例将采用Windows 95。计算机90与一个或多个给计算机90提供可执行镜像100的可执行镜像源107相连,如图1所示,典型的可执行镜像提供者包括服务器110、因特网114、数据库118、网络122、硬件设备126、和/或移动存储设备130。可执行镜像100是一个可由自己或与其它可执行镜像,一个或多个应用软件定义的数据对象。应用软件可以包括,例如文字处理器、数据库、数字产权管理系统、个人财务工具、图形工具、因特网浏览器、计算机游戏、通信程序、权限程序、电子钱包、多媒体播放器或合同管理。而且,可执行镜像100与其它可执行镜像是动态可连接的。例如,本专利技术的实施例是在Windows95环境下开发的,可执行镜像是一个动态链接库(DLL)。因特网114包括不同网络类型,如公用因特网、专用因特网、保密因特网、专用网络、公用网络、附加值网络、企业内部网等类似网络。网络122可以包括任何电连接的计算机组的类型,网络包括例如,下列网络企业内部网、局域网(LAN)、广域网(WAN)。而且,与网络的连接,可以是,例如,远程调制解调器、以太网(IEEE 802.3)、令牌环网(IEEE802.5)、光纤分布式数据接口(FDDI)或异步传输模式(ATM)。需要注意注意的是,计算设备可以是台式机、服务器、便携机、手持设备、机顶盒、或其它要求的类型的配置。硬件设备126可以是逻辑芯片、ROM、RAM、智能卡、或中央处理单元。可移动媒介存储器130可以是软盘、压缩盘、硬盘、磁带驱动器、ROM、或其它持久存储介质。图2是描述确认程序204的方块图。在本专利技术的一个实施例中,确认程序204是可执行镜像,与可执行镜像100的格式相同。在本专利技术的另一个实施例中,确认程序204与可执行镜像100集成在一起。在本专利技术的另一个实施例中,确认程序204与程序装载程序208集成在一起。程序装载程序208的一个功能是从存储设备105(图1)中把可执行镜像100复制到存储器108,并在执行可执行镜像100之前,将代码和数据指针绑定到的合适地址。为了便于描述,下面的描述假定确认程序204是与可执行镜像100和程序装载程序208区不同的独立程序。确认程序204在下面进一步详细叙述的选择条件下,确认可执行镜像100的可靠性。可以被本领域的技术人员接受的是,确认程序204和程序装载程序208包括不同的子程序、过程、定义声明、和宏,它们一般被分开编译并连接到单个可执行程序。因而,下面的描述可以方便地用于描述这些对象的功能。确认程序204和程序装载程序208(图1)可以使用任意的编程语言编写,例如,C、C++、BASIC、Pascal、Java、和FORTRAN。C、C++、BASIC、Pascal、Java、和FORTRAN是工业标准编程语言,对于每种语言,有许多商业版本编译器和解释器可以用来创建可执行代码。图2是描述在被连接到可执行镜像200后的可执行镜像100。应当注意的是,可执行镜像200可以包括与上面描述的可执行镜像100有关的相同类型的数据对象。确认程序204的一个功能是在可执行镜像被装入存储器1 08之后,确认可执行镜像,例如可执行镜像100和可执行镜像200的可靠性。用于确认可执行镜像的可靠性的过程将在下面参照图5和图6详细给出。然而,简短地说,确认程序204在可执行镜像100装入存储器108之前,分析可执行镜像100,并生成与可执行镜像100相关的参考数字签名。在可执行镜像100被装载之后,确认程序204生成真实数字签名,以保证可执行镜像100没有被篡改过。而且,确认程序204检查可执行镜像100和可执行镜像200之间的绑定,以保证在可执行镜像100之间的绑定没有被不正确地重定向到其它的可执行镜像。图3是详细描述可执行镜像100的实施例的内部结构的方块图,其中可执行镜像被创建成动态链接库,并存储在存储单元105中(图1本文档来自技高网...

【技术保护点】
一种用于确定可执行镜像的可靠性的系统,该系统包括: 可执行镜像,具有零个或多个指针;及 确认程序,能够根据除去每个指针的可执行镜像的所选的内容,在第一时间点上生成参考数字签名,其中,确认程序根据除去每个指针的可执行镜像的所选的内容在第二时间点上生成真实数字签名,并且其中确认程序确定参考数字签名是否匹配真实数字签名。

【技术特征摘要】
【国外来华专利技术】

【专利技术属性】
技术研发人员:迪米特里博德罗夫
申请(专利权)人:麦克罗维西恩公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1