CN111538971B - 用于验证文件的数字签名的系统和方法 - Google Patents
用于验证文件的数字签名的系统和方法 Download PDFInfo
- Publication number
- CN111538971B CN111538971B CN201911378296.XA CN201911378296A CN111538971B CN 111538971 B CN111538971 B CN 111538971B CN 201911378296 A CN201911378296 A CN 201911378296A CN 111538971 B CN111538971 B CN 111538971B
- Authority
- CN
- China
- Prior art keywords
- certificate
- file
- trusted
- data
- valid
- 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
- 238000000034 method Methods 0.000 title claims abstract description 38
- 239000008186 active pharmaceutical agent Substances 0.000 claims abstract description 223
- 238000007689 inspection Methods 0.000 claims abstract description 60
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 10
- 230000002155 anti-virotic effect Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000010348 incorporation Methods 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000007630 basic procedure Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/565—Static detection by checking file integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3265—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- Bioethics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了一种用于验证文件的数字签名的系统和方法。检查工具可以通过检查DS证书具有所需的完整性并通过验证颁发中心数据来确定DS证书是有效的,以及通过检查文件具有适当的完整性并且DS证书有效来确定数字签名是有效的,如果DS证书是有效的,则通过查找与DS证书数据相关的可信证书数据来确定DS证书是可信的,以及在数字签名是有效的且DS证书是可信的时将至少一个文件分类为可信的。
Description
相关申请的交叉引用
本申请要求于2018年12月28日提交的俄罗斯联邦专利申请RU2018147246号的权益,其全部内容通过引用并入本文。本申请进一步涉及于2019年9月6日提交的、题为“用于验证数字签名中的攻击复原的系统和方法(System and Method for Attack Resiliencyin Verifying Digital Signatures)”的16/563,207号美国申请,其全部内容也通过引用并入本文。
技术领域
实施例通常涉及计算机化的数字签名,并且更具体地,涉及检查数字签名和数字签名文件证书。
背景技术
随着恶意应用的日益普及,需要旨在保护用户数据和用户设备免遭未经授权的访问和使用的改进的防病毒技术。在不断寻求防病毒应用程序的改进的竞赛中,开发人员面临着重要的任务,即减少检测恶意文件中的两种类型的错误。I类错误(误报)是将非恶意文件识别为恶意的。II类错误是未能将恶意文件识别为恶意的。
为了减少I类错误的数量,防病毒应用程序的开发人员使用了各种技术,以便不会删除或隔离被(例如,使用启发式分析)识别为恶意的文件。这种技术之一包括使用可信文件的数据库检查文件。这样的检查会在可信文件的数据库中搜索被识别为恶意的该文件的ID(例如,MD5或SHA-1校验和),如果在该文件中找到了相同的ID,则将文件识别为恶意文件的决定取消。减少I类错误的另一种方法是检查被识别为恶意的文件的电子数字签名(“DS”或简称为“数字签名”)。
为了检查数字签名,防病毒应用程序通常使用操作系统(“OS”)中内置的DS检查工具,例如CryptoAPI。例如,美国专利申请公开第2017/0257361A1号描述了一种基于对包含代码的文件的DS的检查结果来验证可执行代码的方法。但是,这种方法具有许多缺点,例如DS检查的速度相对较低,并且容易受到违法者的攻击。
因此,需要努力可靠且有效地检查数字签名的有效性或可信赖性以减少I类和II类错误。
发明内容
本申请的实施例基本上满足了行业的前述需求。特别地,本文描述的实施例提供了用于比现有系统更有效和更准确地评估数字签名和数字签名证书的有效性和可信赖性的系统和方法。
在一个实施例中,一种用于验证至少一个文件的数字签名的系统包括:证书数据库,被配置为存储多个证书;可信证书数据库,被配置为存储可信证书数据;以及数据传输设备,包括:至少一个处理器的计算硬件和可操作地耦合到所述至少一个处理器的存储器;以及指令,当该指令在计算平台上执行时,使所述计算平台实现:检查工具,配置为:获得至少一个文件,至少一个文件具有数字签名,并且该数字签名包括具有颁发中心数据和DS证书数据的DS证书,通过检查DS证书具有所需的DS证书完整性并通过使用证书数据库验证颁发中心证书来确定DS证书是有效的,通过检查至少一个文件具有所需的文件完整性且DS证书有效来确定数字签名是有效的,如果DS证书是有效的,则通过查找与DS证书数据相关的可信证书数据来确定DS证书是可信的,以及当数字签名有效且DS证书可信时将至少一个文件分类为可信的。
在一个实施例中,一种用于验证至少一个文件的数字签名的方法,包括:获得至少一个文件,所述至少一个文件具有数字签名,并且所述数字签名包括具有颁发中心数据和DS证书数据的DS证书;通过检查DS证书具有所需的DS证书完整性并通过验证颁发中心证书来确定DS证书是有效的;通过检查至少一个文件具有所需的文件完整性并且DS证书有效来确定数字签名是有效的;如果DS证书是有效的,则通过在可信证书数据库中查找与该DS证书数据相关的可信证书数据,确定该DS证书是可信的;以及当数字签名是有效的且DS证书是可信的时,将至少一个文件分类为可信的。
在一个实施例中,一种计算设备包括:至少一个处理器和可操作地耦合到至少一个处理器的存储器;以及指令,当该指令在处理器上执行时,使处理器实现:检查工具,其配置为:获得至少一个文件,所述至少一个文件具有数字签名,并且所述数字签名包括具有颁发中心数据和DS证书数据的DS证书,通过检查DS证书具有所需的DS证书完整性并通过验证颁发中心证书来确定DS证书是有效的,通过检查至少一个文件具有所需的文件完整性并且DS证书有效来确定数字签名是有效的,如果DS证书是有效的,则通过在可信证书数据库中查找与DS证书数据相关的可信证书数据来确定DS证书是可信的,并当数字签名是有效的且DS证书是可信的时将至少一个文件分类为可信的。
上面的概述并非旨在描述本主题的每个所示实施例或每个实施方式。随后的附图和详细描述更具体地举例说明了各种实施例。
附图说明
考虑以下结合附图对各种实施例的详细描述,可以更完全地理解本发明的主题,其中:
图1是根据一个实施例的用于验证文件的数字签名的系统的框图。
图2是根据另一实施例的用于验证文件的数字签名的系统的框图。
图3是根据一个实施例的用于验证文件的数字签名的方法的流程图。
图4是根据一个实施例的用于响应对计算设备的攻击的方法的流程图。
图5是被配置为实现实施例的计算机系统的框图。
尽管各种实施例可以进行各种修改和替代形式,但是其细节已经通过示例在附图中示出并且将被详细描述。然而,应当理解,其目的不是将要求保护的发明限于所描述的特定实施例。相反,本发明旨在覆盖落入由权利要求书限定的主题的精神和范围内的所有修改、等同形式和替代形式。
具体实施方式
在整个具体实施方式的描述中使用以下定义和概念。
例如,在一个实施例中,恶意的应用程序可以是能够损害计算机或计算机用户数据(换句话说,计算机系统)的应用程序;例如,网络蠕虫、键盘间谍或计算机病毒。危害可能包括未经授权访问计算机资源(包括存储在计算机中的数据),出于盗窃目的以及滥用资源(例如未经授权存储数据或执行计算等)。
在一个实施例中,可信的应用程序可以是不损害计算机或其用户的应用程序。如果应用程序是由可信的软件开发人员开发的,或者该应用程序是从可信的源(例如,可信的站点的数据库中包含的站点)下载的,或者该应用程序的ID(或允许绝对标识应用程序的其他数据-例如,应用程序文件的哈希和)被存储在可信的应用程序数据库中,则该应用程序可以被视为是可信的。制造商ID(例如数字证书)也可以存储在可信的应用程序数据库中。
在一个实施例中,不可信的应用程序可以是不可信的但未被识别为恶意的应用程序。例如,可以通过防病毒应用程序进行这种可信度或恶意度评估。不可信的应用程序随后可以被识别为恶意的;例如,使用防病毒检查。
在一个实施例中,恶意的文件可以是作为恶意的应用程序的组件并且包含程序代码(例如,可执行代码或解释代码)的文件。
在一个实施例中,不可信的文件可以是作为不可信的应用程序的组件并且包含程序代码(例如,可执行代码或解释代码)的文件。
在一个实施例中,可信的文件可以是作为可信的应用程序的组件的文件。
在一个实施例中,可以通过检查正在被检查的确切文件是否由附接到DS的证书的所有者签名来定义对文件的DS的检查。在检查的第一阶段,将来自文件的DS的解密文件校验和与使用DS证书中指定的算法获得的文件校验和进行比较。使用DS证书中指定的开放密钥(open key)检查来自DS文件的校验和。如果校验和匹配,则确认文件的完整性。检查的下一阶段是确认DS证书的有效性,其方法是相同的:实施例检查文件DS的证书的完整性以及颁发文件的DS的证书的相关认证中心的证书的有效性(此过程可以继续进行直到根证书)。如果已确认完整性,并且颁发证书的认证中心的证书也有效,则认为该证书是有效的。否则,证书无效。如果DS证书被认为是有效的并且该文件被认为具有所需的完整性,则该DS被认为是有效的。在其他实施例中,如果DS证书被认为是有效的并且该文件在签名后没有被修改,则该DS被认为是有效的。否则,该DS被视为无效。在某些实施例中,DS证书由附加到文件的DS上的证书(“叶子证书”)定义,该证书允许检查文件的DS的有效性。在某些实施例中,证书是指符合X.509标准的证书。
在一个实施例中,本发明中用于检查文件的DS的系统的工具是使用硬件(诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA))或者软件和硬件的组合(例如微处理器系统和一组程序指令,以及神经突触芯片)设计的实际设备、系统、组件和组件组。上述系统工具的功能可以仅由硬件提供,也可以作为组合,其中系统工具的功能部分由软件、部分由硬件提供。在一些实施例中,可以使用计算机化设备的处理器(例如,图5所示的计算机化设备)来实现一些或全部工具。同样,可以在单台计算机内设计系统的组件,也可以在多台链接的计算机之间分布系统的组件。
在一个实施例中,DS检查系统包括检查工具和证书数据库。在另一个实施例中,该系统包括安全保证工具。
参考图1,示出了根据一个实施例的用于验证文件的数字签名的系统的框图。在一个实施例中,该系统包括检查工具和一个或更多个数据库。在一个实施例中,检查工具120位于数据传输设备135上,计算设备被设计为将数据(例如,来自网络的数据)发送到用户计算机140。在一个实施例中,被发送到用户计算机140的数据可以是文件110。数据传输设备135可以是路由器或任何其他计算设备,例如代理服务器。在一个实施例中,数据传输设备135可以是被设计为存储数据以便随后分发的计算设备。例如,数据传输设备135可以包括更新服务器,该更新服务器接收用于公司网络的多台计算机的更新文件,以便随后将文件传输到公司雇员的计算机。
在一个实施例中,该系统还包括安全保证工具125。如图1所示,安全保证工具125也位于数据传输设备135上。
在一个实施例中,该系统进一步包括证书数据库130和可信证书数据库131,每个被配置为可操作地与检查工具120耦合。数据库130和数据库131可以位于设备135上或位于使用网络与设备135链接(例如,通过网络)的远程服务器上。
文件110可以包括具有DS的文件。例如,文件110可以是可执行文件或脚本文件。在另一个实施例中,可执行文件是来自以下系列的操作系统的可执行文件:Windows或Unix家族,尤其是Windows OS、Ubuntu Linux OS、MacOS等。
参照图2,示出了根据另一实施例的用于验证文件的数字签名的系统的框图。具体而言,图2描绘了检查系统的替代实施例,其中安全保证工具125和检查工具120位于用户计算设备140上。此外,与检查工具120链接的证书数据库130和可信证书数据库131可以位于计算设备140上或位于使用网络与计算设备140链接的远程服务器上。
再次参考图1和图2两者,证书数据库130被配置为存储证书。在一个实施例中,证书数据库130还存储针对每个证书的信息,该信息指示该证书是否被撤销。在某些实施例中,证书数据库130存储用于多个(至少两个)操作系统(例如,Windows和Unix家族,例如:Windows,Ubuntu Linux或MacOS)的证书(以及,相应地,关于证书的信息)。因此,证书数据库130可以存储用于各种操作系统的证书,如果像传统系统那样单独使用每个操作系统的DS检查系统工具,则这是不可能的。此外,在一个实施例中,证书数据库130仅存储根证书和认证中心的证书。
可信证书数据库131被配置为存储可信证书。在替代实施例中,可信证书数据库131不存储证书本身,而是它们的ID(例如,SHA-1校验和)。在特定实施例中,类似于证书数据库130,可信证书数据库131被配置为存储关于用于多个OS的证书的信息。
在本公开的上下文中,“用于OS的证书”(或简称为“OS证书”)是指可以存在于一个OS(或一个OS家族)的证书的系统存储中并且不存在于另一个家族的OS的系统存储中的证书。由于多种原因,这种情况是可能的。
例如,OS开发人员可能不会存储其完整性是使用开发人员认为不是加密强的加密算法确定的证书。在一个特定的示例中,Windows OS开发人员计划在检查Windows 10OS中DS的有效性时停止使用SHA-1加密算法(以及相应的指定此算法的证书)。
在另一个示例中,OS开发人员可以不添加或延迟添加用于检查DS的有效性的具有加密强的加密算法的证书的系统存储中的支持。Windows 7OS提供了一个这样的示例,其中最初仅支持SHA-1加密算法,而仅在SP1更新中添加了SHA-256支持。
在另一个示例中,OS开发人员可能不会将颁发给与某些子系统相关的软件开发人员的证书添加到系统存储中。例如,Windows 7OS证书的系统存储中不存在用于检查Metro应用程序的DS的根证书(仅出现在Windows8OS中)。
在另一个示例中,MacOS的开发人员不向Mac系统存储添加用于检查Windows可执行文件的DS的证书(特别是根证书)(反之亦然)。换句话说,一个OS的系统存储中可能不包含用于检查其他OS的可执行文件的证书(特别是根证书)。
存在证书(例如,根证书)从系统存储中排除的许多其他原因,因为本文提供的示例不是限制性的。
如上所述,在某些实施例中,证书的系统存储可以包括包含证书的数据库,并且由DS检查系统工具用来检查DS(诸如文件DS)。在上面的示例中,“OS开发人员”的含义包括确定证书的系统存储的内容的信息技术专家以及使用证书的系统存储检查DS的方法(具体来说,是用于检查DS和证书的有效性的加密算法)。此外,在某些实施例中,可以由这种信息技术专家来添加、修改和删除存储在数据库130和数据库131中的数据。
再次参照图1和图2,检查工具120被设计为检查文件110的DS以便将DS识别为有效,并且检查文件的DS 110的证书以便将证书识别为有效以及可信。DS的有效性分两个阶段进行检查,可以并行执行并且彼此独立执行。
第一阶段检查文件110的完整性。为此,工具120将来自文件110的DS中的文件110的解密的校验和与使用DS的证书中指定的算法而获得的文件110的校验和进行比较。使用DS的证书中指定的开放密钥来检查来自文件110的DS中的校验和。如果校验和匹配,则检查工具120确认文件的完整性,即,确定文件110未被修改。
文件110的DS检查的第二阶段检查DS的证书的有效性。在一个实施例中,检查工具120通过构建证书链(例如从证书数据库130中可用的证书直至根证书)来检查证书的有效性。如果文件110的DS的证书具有适当的完整性(证书的完整性的检查类似于上述文件的完整性的检查),并且颁发文件110的DS的证书的认证中心的证书也有效,则文件110的DS的证书(以及任何其他证书)被识别为有效。在一个实施例中,用于检查文件110的DS的证书的所有证书都被存储在证书数据库130中。对证书的有效性的顺序检查包括证书链的建立。例如,如果检查工具120在检查文件110的DS的证书时可以建立直至存储在证书数据库130中的根证书的证书链,即该链中的每个证书具有适当的完整性并且该链中的最后一个证书是根证书,则文件110的DS的证书被识别为有效。否则,文件110的DS的证书不被识别为有效(例如,被识别为无效)。在一个实施例中,如果文件110的DS的证书是无效的,则检查工具120将该文件识别为不可信。
如果文件110的DS的证书是有效的,那么检查工具120可以将文件110的DS的证书识别为可信,如果满足以下条件:DS的证书(或此类证书的ID,例如,SHA-1或SHA-256校验和,或者肯定标识该证书的值的向量)存在于可信证书数据库131中,或者颁发证书的认证中心的证书是可信的。在一个实施例中,必须满足附加条件,DS的证书才能被识别为可信。特别地,证书数据库130必须不包含证书被撤销的信息。在又一个实施例中,必须满足附加条件,DS的证书才能被识别为可信。特别是,DS的证书一定不能过期(证书本身中指定的持续时间尚未结束)。
在一个实施例中,对于要被识别为有效的证书,证书数据库131包含关于证书的信息(例如,证书ID)是足够的。在这种情况下,文件110的DS的证书的识别不作为单独的阶段来执行。而是,在检查文件110的DS的证书的有效性的阶段来确认DS的证书是否可信。
在一个实施例中,检查工具120还被配置为确定文件110的类别(或将文件分类为类别;换句话说,将文件识别为属于类别)。如果文件的DS是有效的并且该DS的证书是可信的,则工具120可以将文件110识别为可信(确定文件110属于可信文件的类别,换句话说,将文件110分类为可信文件的类别)。
通过使用数据库130而不是DS检查系统工具来检查DS的证书的有效性,并因此检查文件110的DS的有效性,检查工具120具有优于传统系统的优点。例如,不同于作为OS的一部分且仅存储用于与该OS相对应的某些类型的文件的签名的证书(例如,Windows OS的证书的系统存储不存储用于检查Unix类型系统的可执行文件的DS的证书,包括根证书)的证书的系统存储,数据库130可以包含用于与任何操作系统相对应的文件的签名的证书。在一个实施例中,如果文件是OS的可执行文件,则该文件对应于OS。这样通过确定文件110的DS的证书被识别为有效,并因此确定文件110的DS被识别为有效,并且基于DS的检查和文件110的DS的证书的检查确定文件110的类别,从而确保准确性,尤其是减少I类错误。
安全保证工具125被配置为保护设备140免于不可信的文件。在一个实施例中,保护包括禁止执行不可信的文件或禁止打开此类文件。在又一个实施例中,安全保证工具125防止将不可信的文件传输到计算设备140。例如,安全保证工具125可以阻止文件110向计算设备140的传输。在另一个实施例中,安全保证工具125删除或隔离不可信的文件,以使不可信的文件永远不会到达计算设备140。
在一个实施例中,安全保证工具125还被配置为检测针对用户计算设备140上的DS检查系统工具执行的攻击。DS检查系统工具可以是与操作系统一起提供的软件工具,并且被设计为检查DS证书和/或DS本身。例如,Wintrust.dll库充当针对Windows OS的此类工具,而Keychain或网守(GateKeeper)软件组件充当针对Mac OS操作系统的此类工具。在一个实施例中,对DS检查系统工具的攻击可能意味着修改或替换检查DS证书的一个或更多个系统程序模块。在这种情况下,通过检测到对DS证书检查工具的攻击,安全保证工具125还被配置为将检查DS证书的一个或更多个系统程序模块确定为是恶意的。
如本文所述,并且已经注意到,由于可用于DS证书检查系统工具的证书的有限集合(例如,Windows证书存储中的或MacOS的Keychain证书存储中的证书的有限集合),用于使用系统工具检查DS的证书的某些功能可能受到限制。
参考图3,示出了根据一个实施例的用于验证文件的数字签名的方法的流程图。例如,图3中的方法可以由图1的系统来实现。
在301处,检查工具120定位或拦截旨在进一步传输的文件,例如文件110。在这种情况下,文件110通过包含检查工具120的数据传输设备135在网络上传输到用户计算设备140。在一个实施例中,拦截文件110包括接收来自文件110的数据或接收与文件110相关的数据(例如,其字节码)。在另一个实施例中,拦截文件110还包括中止(使用安全保证工具125)文件110到计算设备140的传输,直到例如文件110被识别为可信。
随后,执行文件的DS的检查。特别地,在302处,检查工具120检查文件110的DS的证书。如果DS的证书具有适当的完整性并且如果颁发了该DS的证书的认证中心的证书是有效的,则该DS的证书将识别为有效。可以使用证书数据库130来检查证书的有效性,证书数据库130可以包含认证中心的证书,并带有每个证书是否可信的指示。因此,来自证书数据库130的可信的证书可以被认为是有效的。检查证书链有效性的过程可以持续到证书链中的第一个可信的证书或根证书。
在303处,如果DS证书是有效的并且如果文件110具有适当的完整性,则检查工具120确定文件的DS有效。接下来,在304处,如果文件的DS的证书是有效的并且如果证书数据库130包含该DS证书可信的信息或者如果颁发该DS证书的认证中心的证书是可信的,则该文件的DS的证书将被识别为可信。303和304的执行彼此独立,并且可以任何顺序执行。
如果DS证书是可信的并且如果DS是有效的,则在305处,文件110被识别为可信。换句话说,对文件110进行了分类–确定该文件属于可信文件类别。否则,在306处,文件110被分类为不可信。
响应于该分类,如果文件110未被识别为可信,则安全保证工具125可以停止向用户计算设备140的任何进一步的传输,删除与文件110相关的所有数据(例如位于数据传输设备135上),或者隔离文件110。
与基于系统工具的证书检查解决方案相比,此系统实现的方法具有多个优点。例如,因为证书数据库130包含用于各种操作系统的证书,所以与仅检查单个操作系统家族的证书的类似系统相比,实施例在确定文件110的类别时具有较少的错误响应。更具体地说,具有针对Mac OS有效(和可信)证书的可执行文件将不会仅使用Windows OS证书存储被识别为可信文件。因此,实施例解决了这个问题。也就是说,当通过存储各种OS家族的证书来确定文件类别时,减少I型错误(误报)的数量。通过检查工具120位于公司网络的路由器或代理服务器上的情况可以清楚地看出该解决方案的重要性,其中公司网络可以包括具有各种操作系统的许多用户计算设备140,并且其中数据传输设备135传输具有属于不同操作系统的DS证书的文件110。检查工具120和安全保证工具125可以“过滤”从网络下载的文件(例如,阻止将文件传输到公司网络中包含的计算设备140)。
在又一个实施例中,工具120和125位于用户计算设备上。当确定用DS签名并打算在安装在设备140上的虚拟机上启动的文件110的类别时,本方法允许减少错误响应的数量,其中OS不同于控制用户计算设备140的操作系统。通过以下事实实现了优点,即检查工具可以针对与控制用户计算设备140的操作系统不同的OS正确地检查可执行文件的证书,因为数据库130和数据库131包含有关各种操作系统的证书的信息。
参考图4,描绘了根据一个实施例的用于响应对计算设备的攻击的方法的流程图。例如,图4中的方法可以由图2的系统来实现。
在400处,安全保证工具125检测针对一个或更多个用于检查文件的DS的系统工具对用户计算设备140的攻击。接下来,在401处,安全保证工具125找到未分类的文件110。例如,安全保证工具125被配置为在文件数据库(图中未示出)中搜索文件110的ID(例如,SHA-1或MD5校验和)。文件数据库可以包括指示文件110所属的文件类别的数据,例如:可信的文件或不可信的文件。如果安全工具125无法使用发送到文件数据库的请求来确定文件110的类别,则执行后续方法处理。在这种情况下,文件110可以是计算设备140上的任何新的或修改的文件。例如,文件可以是已经从网络下载的、在该计算设备上创建的、或者通过修改已经存在于计算设备140上的文件而获得的新的或修改的文件。
接下来,执行文件的DS检查。在402处,检查工具120检查文件110的DS的证书。如果DS的证书具有适当的完整性,并且如果颁发DS的证书的认证中心的证书是有效的,则将DS的证书识别为有效。可以使用证书数据库130来检查证书的有效性,该证书数据库130可以包含认证中心的证书,其具有每个证书是否可信的指示。因此,来自证书数据库130的可信的证书被认为是有效的。检查证书链有效性的过程可以直至该证书链中的第一个有效证书或直至根证书。
在403处,如果DS证书是有效的并且如果文件110具有所需的完整性,则检查工具120将文件的DS识别为有效。接下来,在404处,如果文件的DS的证书是有效的并且如果证书数据库130包含DS证书可信的信息或者如果颁发该DS证书的认证中心的证书是可信的,则将该文件的DS的证书识别为可信。在实施例中,403和404彼此独立并且可以以任何顺序执行。
如果DS证书是可信的并且如果DS是有效的,则在405处,文件110被识别为可信。换句话说,对文件110进行了分类–确定该文件属于可信文件类别。否则,在406处,文件110被分类为不可信。
响应于该分类,如果文件110未被识别为可信,则安全保证工具125可以删除与位于用户计算设备140上的文件110相关的数据(例如,文件的数据)或隔离文件110。
图4中描述的方法与基于系统工具的证书检查解决方案相比具有一些优点。例如,在对DS检查系统工具的攻击中,DS检查系统工具将无法正确检查文件DS的证书,这使得无法根据DS是否有效以及证书是否可信准确确定具有DS签名的文件的类别,因为DS检查系统工具的各个组件可能会被替换或损坏,并且可能无法正常运行。此类攻击的一个示例是替换了DS检查系统工具的组件,因此,安全保证工具(特别是防病毒应用程序)将根据DS有效性上的信息以及无效的DS检查系统工具提供的DS证书有效性确定恶意文件的类别,从而将恶意文件识别为可信文件。本文描述的实施例通过检测对DS检查系统工具的攻击来解决上述问题,并且,如果检测到这种攻击,则使用证书数据库130确定文件110的类别,该证书数据库130提供关于证书是有效的和可信的真实信息。
在一个实施例中,对DS检查系统工具的攻击可以是更复杂的攻击的一部分;例如,高级持续威胁(Advanced Persistent Threat)。在这种情况下,安全保证工具125保护计算设备140免受此类攻击至关重要。因此,安全保证工具125可以发起确定在对DS检查系统工具的攻击期间出现在设备140上的所有文件的类别的过程。例如,持续时间可以在攻击发生后的24小时之内(而不是检测到攻击发生的日期)。例如,可以通过修改DS检查系统工具组件的日期来确定攻击日期。在这种情况下,作为安全保证工具125发起的检查的一部分,使用检查工具120未被识别为可信的文件被工具125识别为潜在恶意。可以将这些文件发送到远程服务器以进行更详细的分析,例如,使用分类算法或神经元网络,或由信息安全专家进行分析。因此,工具125从远程服务器接收到识别每个这样的文件的决定,并且,如果文件被识别为恶意,则安全保证工具125检测高级持续威胁并针对被识别为恶意的文件采取必要步骤(例如删除或隔离)。
在另一个实施例中,本文描述的系统和方法不仅在DS检查系统工具受到攻击时具有优势,而且在由于任何原因根本不能使用DS检查系统工具时具有优势:例如此类DS检查系统工具的组件被加载到RAM中(例如,当Windows OS启动且Wintrust.dll尚未加载到RAM时)之前。
除了具有上述优点之外,使用检查工具120来检查文件110的DS的有效性(减少由于系统存储不具有针对多个OS的文件的证书,当将有效DS识别为无效时的I类错误的数量),还可以提高有效性检查的速度。
使用工具120进行DS有效性检查的速度更快的原因之一是因为DS检查系统工具(尤其是Windows OS工具)会加载已撤销证书的列表,以便检查证书的有效性并确定证书是否被撤销。在这些传统方法中,将对整个撤销证书列表进行分析,以检查是否存在证书。相反,检查工具120通过简单地调用证书数据库130来检查证书是否被撤销,其中每个证书可以被标记为已撤销。因此,检查工具120比DS检查系统工具更快地检查文件110的DS的有效性。
使用检查工具120进行DS有效性检查的速度更快的另一个原因是因为数据库130不存储证书的副本。例如,在传统的DS检查系统工具(例如Windows OS工具)中,当将证书的副本添加到Windows证书存储时,将使用相同的开放密钥重新颁发该证书。相反,防止了针对文件110的DS的单个证书建立和检查多个证书链。
使用检查工具120进行DS有效性检查的速度更快的另一个原因是因为DS检查系统工具可以扩展。例如,在Windows OS中,外部应用程序可以使用CryptoAPI接口,该外部应用程序通过执行自己的检查来补充DS证书有效性的逻辑,从而减慢了关于DS的有效性的决策的速度。
参考图5,描绘了更详细地示出计算机系统500的图,在该计算机系统500上可以根据各种实施例来实现如本文所述的本发明的方面。
计算机系统500可以包括计算设备,诸如个人计算机520,其包括一个或更多个处理单元521、系统存储器522和系统总线523,其包含各种系统组件,包括与一个或更多个处理单元521连接的存储器。在各个实施例中,处理单元521可以包括能够处理存储在计算机可读介质上的信息的多个逻辑核心。系统总线523被实现为在相关技术水平上已知的任何总线结构,依次包含总线存储器或总线存储器控制器、外围总线和本地总线,其能够与任何其他总线架构进行交互。系统存储器可以包括非易失性存储器(诸如只读存储器(ROM)524)或易失性存储器(诸如随机存取存储器(RAM)525)。基本输入/输出系统(BIOS)526包含确保在个人计算机520的元件之间(例如,在使用ROM 524的操作系统启动期间)传递信息的基本过程。
个人计算机520又具有用于数据读取和写入的硬盘驱动器527,用于在可移除磁盘529上读取和写入的磁盘驱动器528以及用于在可移除光盘531上读取和写入的光盘驱动器530,例如CD-ROM、DVD-ROM和其他光学介质。硬盘驱动器527、磁盘驱动器528和光盘驱动器530分别通过硬盘驱动器接口532、磁盘驱动器接口533和光盘驱动器接口534与系统总线523连接。驱动器和相应的计算机信息介质表示独立于能量的装置,用于在个人计算机520上存储计算机指令、数据结构、程序模块和其他数据。
所描绘的系统包括硬盘驱动器527、可移除磁盘驱动器528和可移除光盘驱动器530,但是应该理解,可以使用其他类型的计算机介质,它们能够以计算机可读形式(固态驱动器、闪存卡、数字磁盘、随机存取存储器(RAM)等)存储数据,通过控制器555连接到系统总线523。
计算机520包括存储所记录的操作系统535的文件系统536,以及附加程序应用537、其他程序引擎538和程序数据539。用户可以使用输入设备(键盘540、鼠标542)将命令和信息输入到个人计算机520中。也可以使用其他输入设备(未示出),例如:麦克风、操纵杆、游戏机、扫描仪等。这些输入设备通常通过串行端口546连接到计算机系统520,其又连接到系统总线,但是它们也可以以其他方式连接-例如,使用并行端口、游戏端口或通用串行总线(USB)。监视器547或另一种类型的显示设备也通过接口(诸如视频适配器548)连接到系统总线523。除了监视器547之外,个人计算机520还可以配备有其他外围输出设备(未示出),例如扬声器、打印机等。
个人计算机520能够在网络环境中工作;在这种情况下,它使用与一台或几台其他远程计算机549的网络连接。远程计算机549是类似的个人计算机或服务器,具有大多数或所有上述元素,前面在描述图5中示出的个人计算机520的内容时已指出。计算网络还可以具有其他设备,例如路由器、网站、对等设备或其他网络节点。
网络连接可以构成局域网(LAN)550和广域网(WAN)。这样的网络用于公司计算机网络或公司内部网中,并且通常可以访问互联网。在LAN或WAN网络中,个人计算机520通过网络适配器或网络接口551连接到局域网550。使用网络时,个人计算机520可以使用调制解调器554或其他方式连接到广域网,例如互联网。调制解调器554是内部设备或外部设备,它通过串行端口546连接到系统总线523。应该说明的是,这些网络连接仅是示例,并不一定反映确切的网络配置,即实际上还有其他使用计算机之间的通信技术手段建立连接的手段。
本文已经描述了系统、设备和方法的各种实施例。这些实施例仅通过示例的方式给出,并不旨在限制要求保护的发明的范围。此外,应当理解的是,已经描述的实施例的各种特征可以以各种方式组合以产生许多另外的实施例。此外,尽管已经描述了各种材料、尺寸、形状、构造和位置等以用于所公开的实施例,但是在不超出所要求保护的发明范围的前提下,可以利用除了所公开的那些之外的其他材料。
相关领域的普通技术人员将认识到,本文的主题可以包括比上述任何单个实施例中示出的特征更少的特征。本文描述的实施例并不意味着是可以组合本文的主题的各种特征的方式的详尽描述。因此,实施例不是特征的互斥组合;相反,各种实施例可以包括从不同的单个实施例中选择的不同的单个特征的组合,如本领域普通技术人员所理解的。而且,即使没有在这样的实施例中描述,关于一个实施例描述的元件也可以在其他实施例中实现,除非另有说明。
尽管从属权利要求在权利要求中可以指与一个或更多个其他权利要求的特定组合,但是其他实施例也可以包括从属权利要求与每个其他从属权利要求的主题的组合,一个或更多个特征与其他从属权利要求或独立权利要求的组合。除非指出没有特定的组合,否则本文提出了这种组合。
限制了通过引用以上文件的任意并入,使得不存在与本文的明确公开相反的被并入的主题。进一步限制了通过引用以上文件的任意并入,使得不存在包括在这些文件中的权利要求通过引用并入本文。又进一步限制了通过引用以上文件的任意并入,使得除非明确地包括在本文中,否则这些文件中提供的任何定义不通过引用并入本文。
为了解释权利要求书的目的,除非在权利要求中记载了特定术语“用于……的手段”或“用于……的步骤”,否则明确地意在不援引美国法典第35篇§112(f)的规定。
Claims (19)
1.一种用于验证至少一个文件的数字签名的系统,所述系统包括:
证书数据库,被配置为存储多个证书,其中所述证书数据库中的所述多个证书包括针对第一操作系统的第一证书和针对第二操作系统的第二证书,其中所述第一操作系统和所述第二操作系统是不同的;
可信证书数据库,被配置为存储可信证书数据;以及
数据传输设备,包括:
至少一个处理器的计算硬件和可操作地耦合到所述至少一个处理器的存储器;以及
指令,当所述指令在计算硬件上执行时,使所述计算硬件实现:
检查工具,其配置为:
获取所述至少一个文件,所述至少一个文件具有数字签名,以及所述数字签名包括具有颁发中心证书数据和DS证书数据的DS证书,
通过检查所述DS证书具有所需的DS证书完整性以及通过利用所述证书数据库验证所述颁发中心证书数据,确定所述DS证书是有效的,
通过检查所述至少一个文件具有所需的文件完整性以及所述DS证书是有效的,确定所述数字签名是有效的,
如果所述DS证书是有效的,则通过查找与所述DS证书数据相关的所述可信证书数据来确定所述DS证书是可信的,以及
当所述数字签名是有效的且所述DS证书是可信的时,将所述至少一个文件分类为可信的。
2.根据权利要求1所述的系统,其中,所述检查工具还被配置为:当所述数字签名是无效的或者所述DS证书是无效的或不可信的时,将所述至少一个文件分类为不可信的;以及
其中,所述数据传输设备还包括指令,当所述指令在所述计算硬件上执行时,使所述计算硬件实现安全保证工具,所述安全保证工具被配置为:当所述至少一个文件被所述检查工具分类为不可信时,则限制用户计算设备对所述至少一个文件的访问。
3.根据权利要求1所述的系统,其中,所述可信证书数据库中的所述可信证书数据包括针对至少两个操作系统的数据。
4.根据权利要求1所述的系统,其中,所述检查工具被配置为利用第一处理器进程确定所述数字签名是有效的,并且所述检查工具被配置为利用第二处理器进程确定所述DS证书是有效的,所述第一处理器进程与所述第二处理器进程并行执行以及所述第一处理器进程独立于所述第二处理器进程执行。
5.根据权利要求2所述的系统,其中,所述安全保证工具被配置为通过以下至少之一来限制所述用户计算设备的访问:
禁止将所述至少一个文件传输到所述用户计算设备,
禁止在所述用户计算设备上执行所述至少一个文件,
禁止在所述用户计算设备上打开所述至少一个文件,
删除所述至少一个文件,或
隔离所述至少一个文件。
6.根据权利要求5所述的系统,其中,当所述检查工具获得所述至少一个文件时,所述安全保证工具还被配置为中止所述至少一个文件到所述用户计算设备的传输,直到所述至少一个文件被分类为可信的或不可信的为止。
7.根据权利要求1所述的系统,其中,检查所述至少一个文件具有所需的文件完整性包括:
从所述数字签名获取解密的数字签名校验和;
从所述DS证书获取校验和算法;
使用所述校验和算法计算所述至少一个文件的文件校验和;
使用所述DS证书中的公钥将所述数字签名校验和与所述文件校验和进行比较;以及
如果所述数字签名校验和与所述文件校验和匹配,则确定所述至少一个文件具有所述所需的文件完整性。
8.根据权利要求1所述的系统,其中,验证所述颁发中心证书数据包括:
从所述多个证书构建证书链;
检查所述证书链中的所述多个证书中的每个证书具有所需的证书完整性;
检查所述证书链中的所述多个证书之一与所述颁发中心证书数据相关;
检查根证书是所述证书链中的最后一个证书;以及
如果所述证书链中的所述多个证书中的每个证书具有所述所需的证书完整性,所述证书链中的所述多个证书之一与所述颁发中心证书数据相关,并且所述根证书是所述证书链中的最后一个证书,则确定所述颁发中心证书数据是有效的。
9.根据权利要求1所述的系统,其中,查找与所述DS证书数据相关的所述可信证书数据包括:
在所述可信证书数据中标识所述DS证书数据,其中,所述DS证书数据包括所述DS证书、所述DS证书的ID或标识所述DS证书的值的向量中的至少一个;或者
从在所述可信证书数据中颁发所述DS证书的认证中心中识别认证中心证书。
10.根据权利要求9所述的系统,其中,所述证书数据库还被配置为存储关于所述多个证书的吊销数据,并且其中确定所述DS证书是可信的还包括:
比较所述DS证书和所述吊销数据以确定所述DS证书尚未过期。
11.根据权利要求1所述的系统,其中,存储在证书数据库中的所述多个证书仅包括根证书和认证中心的证书。
12.根据权利要求1所述的系统,其中,所述可信证书数据包括多个可信证书或所述多个可信证书的ID。
13.一种用于验证至少一个文件的数字签名的方法,该方法包括:
提供证书数据库,证书数据库被配置为存储多个证书,其中所述证书数据库中的所述多个证书包括针对第一操作系统的第一证书和针对第二操作系统的第二证书,其中所述第一操作系统和所述第二操作系统是不同的;
获取所述至少一个文件,所述至少一个文件具有数字签名,以及所述数字签名包括具有颁发中心证书数据和DS证书数据的DS证书;
通过检查所述DS证书具有所需的DS证书完整性并通过验证颁发中心证书数据来确定所述DS证书是有效的;
通过检查所述至少一个文件具有所需的文件完整性以及所述DS证书是有效的来确定所述数字签名是有效的;
如果所述DS证书是有效的,则通过在可信证书数据库中查找与所述DS证书数据相关的可信证书数据来确定所述DS证书是可信的;以及
当所述数字签名是有效的且所述DS证书是可信的时,将所述至少一个文件分类为可信的。
14.根据权利要求13所述的方法,还包括:
当所述数字签名是无效的或所述DS证书是无效的或不可信的时,将所述至少一个文件分类为不可信的;以及
当所述至少一个文件被分类为不可信的时,则限制用户计算设备对所述至少一个文件的访问。
15.根据权利要求14所述的方法,其中,限制所述用户计算设备对所述文件的访问包括以下至少一项:
禁止将所述至少一个文件传输到所述用户计算设备,
禁止在所述用户计算设备上执行所述至少一个文件,
禁止在所述用户计算设备上打开所述至少一个文件,
删除所述至少一个文件,或
隔离所述至少一个文件。
16.根据权利要求14所述的方法,还包括:当获得所述至少一个文件时,暂停所述至少一个文件到所述用户计算设备的传输,直到所述至少一个文件被分类为可信的或不可信的。
17.一种计算设备,包括:
至少一个处理器和可操作地耦合到所述至少一个处理器的存储器;以及
指令,当所述指令在所述处理器上执行时,使所述处理器实现:
检查工具,其配置为:
获取至少一个文件,所述至少一个文件具有数字签名,以及所述数字签名包括具有颁发中心证书数据和DS证书数据的DS证书,
通过检查所述DS证书具有所需的DS证书完整性并通过针对存储在证书数据库中的多个证书验证颁发中心证书数据来确定所述DS证书是有效的,其中所述证书数据库中的所述多个证书包括针对第一操作系统的第一证书和针对第二操作系统的第二证书,其中所述第一操作系统和所述第二操作系统是不同的,
通过检查所述至少一个文件具有所需的文件完整性以及所述DS证书是有效的来确定所述数字签名是有效的,
如果所述DS证书是有效的,则通过在可信证书数据库中查找与所述DS证书数据相关的可信证书数据来确定所述DS证书是可信的,以及
当所述数字签名是有效的且所述DS证书是可信的时,将所述至少一个文件分类为可信的。
18.根据权利要求17所述的计算设备,其中,所述检查工具还被配置为:当所述数字签名是无效的或所述DS证书是无效的或不可信的时,将所述至少一个文件分类为不可信的;以及
其中,所述计算设备还包括指令,当所述指令在所述处理器上执行时,使所述处理器实现安全保证工具,所述安全保证工具配置为:当所述至少一个文件被所述检查工具分类为不可信的时,限制用户计算设备对所述至少一个文件的访问。
19.根据权利要求17所述的计算设备,还包括:
计算设备操作系统(OS);以及
指令,当所述指令在所述处理器上执行时,使所述处理器实现虚拟机,所述虚拟机包括虚拟机OS,所述虚拟机OS与所述计算设备OS不同,并且其中所述至少一个文件仅在所述虚拟机OS上是可执行的。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2018147246 | 2018-12-28 | ||
RU2018147246A RU2706873C1 (ru) | 2018-12-28 | 2018-12-28 | Система и способ проверки ЭЦП файла |
US16/563,107 US20200210574A1 (en) | 2018-12-28 | 2019-09-06 | System and method for verifying digital signatures of files |
US16/563,107 | 2019-09-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111538971A CN111538971A (zh) | 2020-08-14 |
CN111538971B true CN111538971B (zh) | 2024-05-07 |
Family
ID=68652935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911378296.XA Active CN111538971B (zh) | 2018-12-28 | 2019-12-27 | 用于验证文件的数字签名的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20200210574A1 (zh) |
JP (1) | JP2020113253A (zh) |
CN (1) | CN111538971B (zh) |
RU (1) | RU2706873C1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2608477A1 (en) * | 2011-12-23 | 2013-06-26 | Research In Motion Limited | Trusted certificate authority to create certificates based on capabilities of processes |
CN105653951A (zh) * | 2014-12-02 | 2016-06-08 | 卡巴斯基实验室股份制公司 | 基于数字证书的信任等级来反病毒检查文件的系统和方法 |
CN107766716A (zh) * | 2016-08-16 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 证书检测方法及装置、电子设备 |
CN107871080A (zh) * | 2017-12-04 | 2018-04-03 | 杭州安恒信息技术有限公司 | 大数据混合式Android恶意代码检测方法及装置 |
US10162967B1 (en) * | 2016-08-17 | 2018-12-25 | Trend Micro Incorporated | Methods and systems for identifying legitimate computer files |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7010683B2 (en) * | 2000-01-14 | 2006-03-07 | Howlett-Packard Development Company, L.P. | Public key validation service |
US7340600B1 (en) * | 2000-01-14 | 2008-03-04 | Hewlett-Packard Development Company, L.P. | Authorization infrastructure based on public key cryptography |
EP2306259B1 (en) * | 2000-09-21 | 2015-05-27 | BlackBerry Limited | Software code signing system and method |
US20020078347A1 (en) * | 2000-12-20 | 2002-06-20 | International Business Machines Corporation | Method and system for using with confidence certificates issued from certificate authorities |
US7496757B2 (en) * | 2002-01-14 | 2009-02-24 | International Business Machines Corporation | Software verification system, method and computer program element |
WO2007124091A1 (en) * | 2006-04-21 | 2007-11-01 | Interdigital Technology Corporation | Apparatus and methods for performing trusted computing integrity measurement reporting |
US7809955B2 (en) * | 2006-10-17 | 2010-10-05 | Blue Ridge Networks, Inc. | Trustable communities for a computer system |
TWI340332B (en) * | 2007-02-02 | 2011-04-11 | Ind Tech Res Inst | Computerized apparatus and method for version control and management |
US8700903B2 (en) * | 2010-07-28 | 2014-04-15 | Symantec Corporation | Streamlined CSR generation, certificate enrollment, and certificate delivery |
JP5575071B2 (ja) * | 2011-08-26 | 2014-08-20 | 株式会社東芝 | 情報処理装置、情報処理方法、およびプログラム |
US8914639B2 (en) * | 2012-04-27 | 2014-12-16 | Adobe Systems Incorporated | Method and apparatus for one-step signature trust for digitally-signed documents |
US9232339B2 (en) * | 2013-02-07 | 2016-01-05 | Oracle International Corporation | Mobile push notification |
RU2571381C1 (ru) * | 2014-10-17 | 2015-12-20 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ пополнения базы данных доверенных сертификатов, использующейся при антивирусной проверке |
RU2571382C1 (ru) * | 2014-10-17 | 2015-12-20 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ антивирусной проверки в зависимости от уровня доверия сертификата |
EP3026558A1 (en) * | 2014-11-28 | 2016-06-01 | Thomson Licensing | Method and device for providing verifying application integrity |
US10181036B2 (en) * | 2015-06-24 | 2019-01-15 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Automatic discovery and installation of secure boot certificates |
US10642976B2 (en) * | 2015-06-27 | 2020-05-05 | Mcafee, Llc | Malware detection using a digital certificate |
GB2547921B (en) * | 2016-03-03 | 2019-05-29 | F Secure Corp | Authenticating or controlling software application on end user device |
-
2018
- 2018-12-28 RU RU2018147246A patent/RU2706873C1/ru active
-
2019
- 2019-09-06 US US16/563,107 patent/US20200210574A1/en not_active Abandoned
- 2019-11-21 JP JP2019210133A patent/JP2020113253A/ja active Pending
- 2019-12-27 CN CN201911378296.XA patent/CN111538971B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2608477A1 (en) * | 2011-12-23 | 2013-06-26 | Research In Motion Limited | Trusted certificate authority to create certificates based on capabilities of processes |
CN105653951A (zh) * | 2014-12-02 | 2016-06-08 | 卡巴斯基实验室股份制公司 | 基于数字证书的信任等级来反病毒检查文件的系统和方法 |
CN107766716A (zh) * | 2016-08-16 | 2018-03-06 | 阿里巴巴集团控股有限公司 | 证书检测方法及装置、电子设备 |
US10162967B1 (en) * | 2016-08-17 | 2018-12-25 | Trend Micro Incorporated | Methods and systems for identifying legitimate computer files |
CN107871080A (zh) * | 2017-12-04 | 2018-04-03 | 杭州安恒信息技术有限公司 | 大数据混合式Android恶意代码检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20200210574A1 (en) | 2020-07-02 |
JP2020113253A (ja) | 2020-07-27 |
RU2706873C1 (ru) | 2019-11-21 |
CN111538971A (zh) | 2020-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7084778B2 (ja) | 標的型攻撃をクラウド型検出、探索および除去するシステムおよび方法 | |
KR101247022B1 (ko) | 실행가능 파일의 신뢰를 검증하는 시스템 및 방법 | |
KR101804996B1 (ko) | 집중형 동작 관리 | |
US7657941B1 (en) | Hardware-based anti-virus system | |
US8261344B2 (en) | Method and system for classification of software using characteristics and combinations of such characteristics | |
US9147073B2 (en) | System and method for automatic generation of heuristic algorithms for malicious object identification | |
US8656494B2 (en) | System and method for optimization of antivirus processing of disk files | |
JP4934860B2 (ja) | 情報システム構成要素解析から算出したトラストスコアに基づいて複数のネットワークエンドポイント間のアクセスを制御する方法 | |
CN111538972B (zh) | 用于验证文件的数字签名中的攻击复原的系统和方法 | |
KR20210092745A (ko) | 보안 통신 방법 및 그 시스템 | |
RU101233U1 (ru) | Система ограничения прав доступа к ресурсам на основе расчета рейтинга опасности | |
RU2750628C2 (ru) | Система и способ определения уровня доверия файла | |
CN111538971B (zh) | 用于验证文件的数字签名的系统和方法 | |
EP3758330B1 (en) | System and method of determining a trust level of a file | |
EP3674945B1 (en) | System and method for verifying digital signatures of files | |
EP3674944B1 (en) | System and method for attack resiliency in verifying digital signatures of files | |
KR102367756B1 (ko) | 폐쇄형 내부망으로의 입력 소프트웨어 보안시스템과 보안방법 | |
RU2739832C1 (ru) | Система и способ выявления измененных системных файлов для проверки на вредоносность в облачном сервисе | |
Mancoridis | Software analysis for security | |
Motara | File Integrity Checking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |