CN107292172B - 用于相对于参考计算机文件自动验证目标计算机文件的方法 - Google Patents
用于相对于参考计算机文件自动验证目标计算机文件的方法 Download PDFInfo
- Publication number
- CN107292172B CN107292172B CN201710073137.3A CN201710073137A CN107292172B CN 107292172 B CN107292172 B CN 107292172B CN 201710073137 A CN201710073137 A CN 201710073137A CN 107292172 B CN107292172 B CN 107292172B
- Authority
- CN
- China
- Prior art keywords
- tested
- computer file
- area
- digital
- target computer
- 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
Images
Classifications
-
- 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/3236—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 using cryptographic hash functions
-
- 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
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
- G06F16/152—File search processing using file content signatures, e.g. hash values
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Virology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Bioethics (AREA)
- Library & Information Science (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
Abstract
一种用于相对于参考计算机文件自动验证目标计算机文件的方法,该方法包括以下步骤:a)获取参考计算机文件和要测试的计算机文件;b)获取至少一个随机变量;c)作为该至少一个随机变量的函数,定义:限定参考文件一部分为第一区域;以及限定参考文件一部分为第二区域,第二区域与第一区域同一尺寸、并且在目标文件内相对于目标文件的原点位于与第一区域相对于参考文件的原点相同的相对位置;d)通过将散列函数施加至第一区域之内的部分,计算第一数字印记;e)通过将同一散列函数施加至第二区域之内的部分,计算第二数字印记;f)自动比较第一和第二数字印记,如果相同则认为目标文件被验证,如果不同则认为目标文件未被验证。
Description
技术领域
本发明涉及用于相对于参考计算机文件验证目标计算机文件的方法。本发明还涉及用于实现该方法的数据记录介质和电子计算机。最后,本发明涉及包括该电子计算机的测试工具。
背景技术
已知用于相对于参考计算机文件自动验证目标计算机文件的方法。例如,在存储器中包含内嵌软件的电子设备的制造期间,已知自动验证存储器内容以确保内嵌软件与该软件的参考版本一致。具体地,验证在制造处理期间攻击者没有将篡改软件欺诈替代所安装的内嵌软件是重要的。这样的替代如果未被检测到,则可能对于设备的操作造成严重后果。然而,在工业制造处理的过程中,由于大量被测试的设备以及制造和/或测试序列的相当快的节奏,不可能一直对于这样的验证操作花费大量时间。因此,专用于执行对于每个项目的测试操作的时间减少。典型地,不期望在所分配的时间内读取所有内嵌软件并逐字节与参考版本比较或计算其签名。为了节约时间,已知如何在CRC或“循环冗余校验”功能的辅助下自动计算内嵌软件的校验和,并将对于内嵌软件计算的校验和与以同样方式对于软件的参考版本计算的校验和比较。如果所计算的两个和示出不同值,则这表明内嵌软件相对于所安装的参考版本已经被修改。与内嵌软件的完整比较相比,这样的校验和的计算花费少得多的时间,这使得其有利地用于对于设备的工业制造处理的环境中。
然而,这样的校验和没有担负起令人满意的安全性。实际上,在典型地使用的CRC功能的情况下,攻击者可以依赖于在对于该功能的输入处提供的数据提前预测将返回的值。因此可以用特殊修改的欺诈软件替代所安装的内嵌软件,使得所计算的校验和将生成预期的值。因此,这样的修改不能被检测到,并且所制造的设备可能为生产线留下软件的篡改版本,这是不可接受的。
更具体地,本发明要弥补这些缺陷,其提出了用于相对于参考计算机文件自动验证目标计算机文件的方法,其在具有快速执行速度的同时对于安全性攻击具有提高的抵抗性。
发明内容
因此,本发明涉及一种用于相对于参考计算机文件自动验证目标计算机文件的方法,该方法特征在于,其包括以下步骤:
a)获取参考计算机文件和要测试的计算机文件;
b)获取至少一个随机变量;
c)作为所获取的所述至少一个随机变量的函数,定义:
限定参考文件的一部分的要测试的第一区域;以及
限定目标文件的一部分的要测试的第二区域,该要测试的第二区域展现与要测试的第一区域同一尺寸、并且在目标文件内相对于该目标文件的原点位于与第一测试区域相对于参考文件的原点相同的相对位置;
d)通过将散列函数仅仅施加至参考文件(REF)的被包含在要测试的第一区域之内的那部分,计算第一数字印记;
e)通过将相同的散列函数仅仅施加至目标文件的被包含在要测试的第二区域之内的那部分,计算第二数字印记;
f)自动比较第一和第二数字印记,如果第一和第二数字印记相同则认为目标文件被验证,如果第一和第二数字印记不同,则认为目标文件未被验证。
由于本发明,通过随机选择要测试的第一和第二区域的尺寸和位置,攻击者不可能提前得知目标文件的哪部分将是验证的主体。因此,提前修改目标文件使得散列函数返回第二数字印记的预期值(如同它们在利用现有技术的校验和将能够做到的那样)是物理上不可能的。因此,不可能以此方式隐藏目标文件的篡改。实际上,在验证处理期间其具有更大的机会被检测到。因此,该验证方法提供了提高的有效性和高安全级别。此外,因为不需要将目标文件的整体与参考文件比较,所以该验证的方法可以在更短时间内执行。因此,其与工业生产线的通常节奏相兼容。
根据本发明的有利的但并不必须的方面,这样的自动验证的方法可以包括以任何技术上可允许的组合来使用的以下特征中的一个或多个:
要测试的第一区域具有等于或大于参考文件的总长度的10%的长度。
该方法还包括:
b’)获取至少一个额外的随机变量;
c’)作为所获取的所述至少一个额外的随机变量的函数,定义:
要测试的第三区域,该第三区域与要测试的第一区域不同并限定参考文件的额外部分;以及
要测试的第四区域,该第四区域与要测试的第二区域不同并限定目标文件的额外部分,该要测试的第四区域具有与要测试的第三区域相同的尺寸,并且在目标文件内相对于该目标文件的原点位于与要测试的第三区域相对于参考文件的原点相同的相对位置;
d’)通过将散列函数仅仅施加至参考文件的被包含在要测试的第三区域之内的那部分,计算第三数字印记;
e’)通过将相同的散列函数仅仅施加至目标文件的被包含在要测试的第四区域内的那部分,计算第四数字印记;
f’)自动比较第三和第四数字印记,仅当此外第三和第四数字印记相同的情况下认为目标文件被验证。
要测试的第三和第四区域分别占据参考文件和目标文件的整个长度。
要测试的第三区域与要测试的第一区域分开。
要测试的第三区域和要测试的第一区域的联合占据参考文件的整个长度。
步骤a)还包括验证所获取的参考文件的可靠性,该可靠性的验证借助于数字签名完成。
由测试工具自动执行步骤a)、b)、c)、d)和f),其特征在于,诸如内嵌软件的目标文件存储在要测试的设备的存储器中,并且其特征在于,由要测试的设备自动完成第二数字印记的计算,步骤e)因而包括由测试工具自动获取第二数字印记。
用于计算第一和第二数字印记的散列函数是密码散列函数,诸如族SHA-2或SHA-3的散列函数,优选地散列函数SHA-256。
根据另一方面,本发明涉及一种记录介质,其特征在于,其包含这样的指令:当所述指令被电子计算机运行时,用以执行根据前述方法中的任一所述的验证的方法。
根据另一方面,本发明涉及一种电子计算机,该电子计算机被编程为:
a)获取参考计算机文件和要测试的计算机文件;
b)获取至少一个随机变量;
c)作为所获取的所述至少一个随机变量的函数,定义:
限定参考文件的一部分的要测试的第一区域;以及
限定目标文件的一部分的要测试的第二区域,该要测试的第二区域展现与要测试的第一区域同一尺寸、并且在目标文件内相对于该目标文件的原点位于与第一测试区域相对于参考文件的原点相同的相对位置;
d)通过将散列函数仅仅施加至参考文件的被包含在要测试的第一区域之内的那部分,计算第一数字印记;
e)通过将相同的散列函数仅仅施加至目标文件的被包含在要测试的第二区域之内的那部分,计算第二数字印记;
f)自动比较第一和第二数字印记,如果第一和第二数字印记相同则认为目标文件被验证,如果第一和第二数字印记不同,则认为目标文件未被验证。
根据另一方面,本发明涉及一种测试工具,用以相对于参考计算机文件自动验证存储在要测试的设备的存储器中的诸如内嵌软件的目标计算机文件,该测试工具包括电子计算机和用于与要测试的设备的存储器交换数据的通信接口,该测试工具的特征在于,该电子计算机是根据前述方法所述的。
附图说明
根据仅作为示例并参考附图给出的、用于自动验证的方法的一个实施例的以下描述,将更好地理解本发明,并且本发明的其他优点将表现得更加清楚,附图中:
图1是包括用于实现根据本发明的验证计算机文件的方法的测试工具的、用于测试设备的工业设施的示意表示;
图2是通过图1的工具、用于根据本发明验证目标计算机文件的方法的示例的流程图;
图3是在图2的验证方法的过程期间实现的参考文件的认证步骤的流程图;
图4是如在图2的方法的过程中定义的、计算机文件的要测试的区域的示意表示。
具体实施方式
图1示出包括测试工具2和一系列3a要测试的电子设备3的测试设施1。
每个设备3包括可编程电子计算机30,可编程电子计算机30在此包括算术计算单元301、存储器302和通信接口303,其通过未图示的数据总线连结在一起。计算机30被具体编程为确保设备3的操作。在该示例中,设备3是电子可控断路器。
计算单元301是微处理器或可编程微控制器。存储器302在此是非易失性存储器,诸如闪存或EEPROM技术的存储器模块。接口303使得能够在计算机30与工具2之间交换数据。
存储器302包含内嵌软件T,其在此承担操作系统的任务以使得设备3能够工作。在本说明书的剩余部分中,该内嵌软件T被指定为“目标计算机软件”。例如,在此,目标文件T在已经在设备3的先前制造步骤期间记录在存储器302中之后,存储在存储器302内部。
作为图示示例,通信接口303在此是有线型,并包括连接器。作为变型,其可以是无线接口。
布局1具有测试设备3以便验证存储在存储器302内部的目标文件T实际上对应于在此被指定为REF的“参考计算机文件”的目的。该参考文件REF是例如已经在设备3的制造期间安装在存储器302内部的软件。因此,布局1具有检测安装在存储器302中的软件是否自从其安装起已经经历未授权的修改的目的,该目的要防止设备3在装配内嵌软件的篡改版本的情况下被递送至客户。
为此目的,测试工具2在此包括可编程电子计算机20、连接器21、用户接口22和随机变量发生器23。
电子计算机20包括算术计算单元201、数据记录介质202和通信接口203,其通过未图示的数据总线连结在一起。算术单元201是微处理器或可编程微控制器。介质202在此包括非易失性存储器,诸如闪存或EEPROM技术的存储器模块或硬盘。
介质202包含用于运行根据图2的方法验证目标文件T的方法的指令。单元201读取并运行介质202中包含的指令,以便执行图2的方法。在此,接口203通过与接口303兼容的连接器21,授权计算机30和工具2之间的数据的交换,以便形成数据链路210。
接口203此外授权工具2与包含参考文件REF的数据库24之间的数据交换。例如,数据库24是工具2的远程计算机服务器的一部分,工具2通过局域计算机网络访问该部分。
用户接口22在此是人机接口,并且其包括显示屏以及数据输入模块。
随机数发生器23能够以随机数或伪随机数的形式生成随机变量。在此,发生器23通过计算机20以生成伪随机数的软件形式实现。作为变型,随机数发生器23是用于产生随机数的专用设备,也已知为“硬件随机数发生器”。作为变型,随机数发生器23可以位于工具2之外,例如,其可以实现在远程计算机服务器中。
下面参照图2的流程图并借助于图1、3和4描述测试工具2的操作的示例。
最初,从一系列3a要测试的设备采样要测试的设备3,然后将设备3连接至测试工具2。在实践中,连接器21连接至接口303,并且在设备3与工具2之间建立数据链路210。
首先,在步骤100期间,在该示例中从数据库24自动获取参考文件REF。
有利地,作为设备3的属性的函数从数据库24选择文件REF。实际上,测试设施1可以被设计为测试可以是不同性质的大量设备,每个设备包含不同内嵌软件。数据库24因此包含多个文件,每个文件承担对于设备3的特定型号或特定版本的参考文件的任务。在此,每个设备3例如在其存储器302中包含预定标识符,例如字母数字字符串形式的标识符,其标识对应于目标文件T的软件版本。标识符在此是该软件的版本号。
为此目的,步骤100包括获取文件T的版本的标识符的操作。例如,计算机20通过数据链路210发送用于计算机30自动返回其包含的标识符的请求至计算机30。当接收到此标识符时,计算机20借助于对应关系的预定表格,发送用于在数据库24中自动选择对应文件REF的该标识符的请求。
在此示例中,例如在来自该系列3a的第一设备3的验证期间,对于整个系列3a仅执行该步骤100一次。有利地,只要布局1的操作没有被中断或来自除了该系列3a以外的一系列要测试的设备的设备在布局1上测试,则对于该系列3a的每个设备3不重复该步骤100,。
作为变型,对于同一系列3a可以执行步骤100若干次。优选地,在步骤102期间,如图3所示,验证所获取的文件REF的可靠性。这里,通过数字签名进行该验证。
在该示例中,通过也已知为非对称密码的公钥密码的数字签名方法预先获得数字签名。例如,在参考文件REF安装在数据库24中之前对参考文件REF施加散列函数F1,以便提供该参考文件REF的数字印记或“散列”。例如,散列函数F1是属于密码函数SHA-2或SHA-3的族的密码函数。在该示例中,散列函数F1是已知为的SHA-256(“安全散列算法”)的函数。众所周知,数字印记是理想地以唯一方式与参考文件REF关联的数值。然而,在实践中,发生同一数值可以与两个不同文件关联,虽然这种发生的概率低。
然后,通过私有密码密钥对如此获得的数字印记加密以生成数字签名,例如,通过具有长度为4096比特的私有密码密钥的加密算法RSA来加密。所生成的数字签名以及与私有密码密钥相关联的公有密码密钥都由已知为“公钥架构”的管理架构系统来生成,在此,该管理架构系统安装在远程服务器上。
在步骤102的操作1000期间,例如从远程服务器由计算机20自动获取数字签名和公钥。
接下来,在操作1002期间,借助于在操作1000期间获取的公有密码密钥并利用兼容的解密算法,由测试工具2自动解密所获取的数字签名,以便获得数字印记的初始生成的值。将该数字印记视为被解密。
然后,在操作1004期间,测试工具2施加相同散列函数F1至在步骤100期间获取的参考文件REF,以便获得所计算的数字印记。
此后,在操作1006期间,自动比较所计算的数字印记与解密的数字印记。如果所计算的数字印记与所解密的数字印记不同,则这意味着在步骤100期间获取的计算机文件REF在其数字签名之后已经以未授权方式被修改,这导致主要的安全性问题。因此,在操作1008期间,测试工具2经由用户接口22发送表明所获取的参考文件REF的认证失败的信号。该参考文件REF不能被用于验证目标文件T。因而,验证目标文件T的方法中断。
如果所计算的数字印记等于所解密的数字印记,则在操作1010期间,将所获取的参考文件REF视为认证通过。步骤102结束,并且验证目标文件T的方法继续。
作为变型,省略步骤102。根据另一变型,省略散列函数F1。因此,从参考文件REF直接生成签名,并且省略操作1004。
此后,在步骤103期间,如图2所示,测试工具2自动获取随机变量,诸如两个随机或伪随机数。例如,测试工具2命令发生器23生成两个伪随机数。作为变型,仅仅获取一个随机数。
接下来,在步骤104期间,计算机20定义作为所获取的随机变量的函数的限制获取的参考文件REF的一部分的要测试的第一区域202、以及限制目标文件T的一部分的要测试的第二区域。
图4图示所述要测试的第一区域的示例。
如所知,当计算机文件被存储在存储器或数据记录介质内部时,形成所述文件的数据与表明该数据在计算机文件中的位置的存储器地址相关联。
在该示例中,参考文件REF在存储器区200中的存储器地址A与B之间连续延伸。存储器地址以数值形式表示,并且与参考地址O相关地定义。参考文件REF的总长度L等于存储器地址B与A之间的差。例如,总长度L等于一个兆字节。
要测试的第一区域占据参考文件REF的一部分,在此对应于区200的区域202。区域202在此从存储器地址C延伸至存储器地址D,并具有尺寸或长度L’,其被定义为等于存储器地址D与C之间的差。该长度L’严格小于总长度L。
有利地,区域202具有等于或大于总长度L的10%、优选地等于或大于该总长度L的20%、甚至更优选地等于或大于该总长度L的30%的长度。例如,长度L’等于256千字节,优选地,其等于512千字节。
要测试的第一区域的长度L’源自计算机30的安全性要求和处理能力之间的妥协。实际上,要测试的区域的长度越大,攻击者越难隐藏目标文件T的未授权的修改,但是缺陷在于,关于该要测试的区域的进一步的计算操作将要求相当大的计算资源。
在该示例中,目标文件T具有与参考文件REF相同的长度。如果目标文件T具有与参考文件REF不同的长度,则这通常表明目标文件T已经被修改。
因此要测试的第一区域202的特征一方面在于其尺寸或长度L’,并且另一方面在于其相对于参考文件占据的相对位置,该位置由存储器地址C与A之间的差而量化。
要测试的第二区域具有与要测试的第一区域的长度相同的长度,即,等于长度L’,并且其位于目标文件T的内部,在相对于该目标文件T的原点的、与要测试的第一区域相对于参考文件REF的原点在参考文件REF内相同的相对位置处。该相对位置由存储器地址C与A之间的差给出。该相对位置标注为“C-A”。
因此,要测试的第二区域的属性通常与要测试的第一区域的属性相同。实际上,第二参考区域由第一参考区域的长度L’的值和相对位置C-A直接定义。
在该示例中,计算机20作为在步骤103期间获取的统计随机性的函数,自动生成对应于要测试的区域的原点以及要测试的该区域的长度L’的地址值C。例如,两个随机数中的一个用于计算地址C的值,并且使用所获取的第二随机数来计算长度L’。
例如,如果第二随机数导致不可接受的长度值L’的判定,例如因为其过大或过小,即,大于长度L或小于长度L的5%,则不接受该随机数,并且获取新随机数。可以重复该操作,直至获得长度L’的令人满意的值。这对于第一随机数也是相同的,例如,如果其导致存储器地址C在参考文件之外的判定,即,不属于区域202的存储器地址。
作为变型,当仅获取一个随机数时,可以通过将长度L’设置为等于预定值并基于所生成的随机变量随机选择相对位置C-A的值,计算要测试的区域。
替代地,其是基于生成的随机变量随机选择的长度L’和设置在预定值的相对位置C-A。
接下来,在步骤106期间,如图2所示,计算机20通过将散列函数F2仅仅施加至参考文件REF的被包含在要测试的第一区域之内的该部分,即,在存储器地址C与D之间的部分,自动计算第一数字印记。例如,第一数字印记是具有至少256比特的大小的数值的形式。
在步骤108期间,例如,与步骤106同时,设备3的计算机30通过将相同的散列函数F2仅仅施加至目标文件T的被包含在要测试的第二区域之内的部分,自动计算第二数字印记。
例如,计算机20通过链路210将用于该目的的请求自动发送至计算机30。该请求具体包含要测试的第二区域的属性,如在步骤104期间定义的,尤其是要测试的区域的相对位置“C-A”的值以及其在目标文件T内的长度L’。因此,不需要将目标文件T全部传送至计算机20,这将花费太多时间。例如,通过记录在计算机30的存储器302中的专用可执行应用进行第二数字印记的计算。该计算因此对要测试的设备3执行。
在此,散列函数F2是属于密码函数SHA-2或SHA-3的族的密码函数。在该示例中,散列函数F2是已知为SHA-256的函数。
散列函数F2不必与步骤102期间使用的散列函数F1相同。然而,在实践中,散列函数F1和F2是相同的,以便限制计算机20的复杂度。
作为变型,当计算机30具有降低的性能时,优选使用需要较少计算资源的散列函数F2,诸如用于“循环冗余校验”或校验和的类型CRC-16的散列函数。这防止第二数字印记的计算花费太多时间,并干扰对测试设施1的其他测试操作的过程。
计算机30因此作为要测试的第二区域的特性的函数,对要测试的文件T执行第二数字印记的该计算,该特性已经由计算机20发送至计算机30。
一旦计算机30已经完成第二数字印记的该计算,计算机30就向计算机20自动中继如由计算机30计算的第二数字印记的值。
接下来,在步骤110期间,计算机20自动比较计算的第一和第二数字印记的值。
如果第一和第二数字印记不同,则这表明目标文件T与参考计算机文件不同。因此,认为验证已经失败。认为目标文件T未被验证。然后,在步骤112期间,计算机20将表明失败的信号自动发送至例如用户接口22。有利地,由测试工具2自动记录被测试的设备3的序列号。
然后,例如通过中断数据链路210并断开接口303的连接器21,将设备3从测试工具2断开。然后,继而由测试工具2对该系列3a的另一设备3采样以测试。
在该示例中,如果第一和第二数字印记被检测为相等,则在接下来的步骤114期间执行验证的额外步骤。
在该步骤114期间,分别对于参考文件REF和目标文件T的要测试的第三和第四区域分别计算第三和第四数字印记。该要测试的第三和第四区域分别与要测试的第一和第二区域不同。
在该示例中,要测试的第三区域在参考文件REF的整体之上延伸,即,在存储器地址A与B之间延伸。以类似方式,要测试的第四区域在目标文件T的整体之上延伸。
作为变型,要测试的第三和第四区域可以仅在参考文件REF和目标文件T的一部分上延伸。例如,要测试的第三区域与要测试的第一区域分开。作为变型,要测试的第三区域和要测试的第一区域的联合占据参考文件的整个长度。为此目的,步骤114涉及要测试的第三和第四区域的定义和随机变量的获取的补充步骤,这些步骤分别与对于要测试的第一和第二区域在步骤103和104期间执行的步骤类似。例如,计算机30通过将散列函数F3施加至参考文件REF的整体自动计算第三数字印记。该散列函数F3在此等于散列函数F2,虽然不一定是该情况。该计算例如以与在前述步骤106期间对于第一数字印记使用的方式类似的方式而进行。
在额外的比较步骤116期间,由计算机20自动比较第三和第四数字印记的值。如果该第三和第四数字印记彼此不同,则这表明目标文件T与参考计算机文件REF不同,即使比较110不反映第一和第二数字印记之间的任何差别。然后执行前述步骤112。
否则,如果第三和第四数字印记被确定为彼此相等,则认为目标文件T对应于参考文件,并将其视为被验证。因此,在此,仅在第一和第二数字印记彼此相等并且第三和第四数字印记彼此相等的情况下将目标文件T视为被验证。
接下来,在步骤118期间,计算机20生成表明该目标文件T的验证已经成功结束的信号。例如,将消息自动发送至接口22。
通过随机选择要测试的第一和第二区域的大小和位置,想要欺诈修改目标文件T的攻击者不可能提前得知目标文件T的哪部分将是验证的主体。实际上修改目标文件T使得散列函数F2对于要测试的第一区域的所有可能配置返回第二数字印记的预期值是物理上不可能的,因为存在如此多的值。因此,不可能以此方式隐藏目标文件T的修改。通过对于要测试的第三和第四区域添加额外验证,当基于要测试的第一和第二区域不可能检测该修改时的罕见情况下检测到该修改的可能性进一步提高。除此之外,验证方法保持足够快到在工业设置中实现,而不损害工业制造和/或测试处理的适当运行和效率。
许多其他实施例是可能的。
例如,省略额外验证的步骤114和额外比较的步骤116。在此情况下,在比较110的结束时,如果第一和第二数字印记彼此相等,则直接执行步骤118。
步骤114和116可以重复若干次,以便对于参考文件REF和目标文件T定义与要测试的第一、第二、第三和第四区域不同的额外的要测试的区域。
图2的验证方法可以独立于测试设施1使用,以便验证内嵌软件以外的目标文件。例如,目标文件T是数字图像或多媒体内容。
上述变型和实施例可以彼此组合以形成本发明的新实施例。
Claims (16)
1.一种用于相对于参考计算机文件(REF)自动验证目标计算机文件(T)的方法,该方法特征在于,其包括以下步骤:
a)获取参考计算机文件(REF)和要测试的目标计算机文件(T);
b)获取至少一个随机变量;
c)作为所获取的所述至少一个随机变量的函数,定义:
限定参考计算机文件的一部分的要测试的第一区域;以及
限定目标计算机文件的一部分的要测试的第二区域,所述要测试的第二区域展现与要测试的第一区域同一尺寸(L’)、并且在目标计算机文件内相对于该目标计算机文件的原点位于与第一测试区域相对于参考计算机文件的原点(A)相同的相对位置(C-A);
d)通过将散列函数(F2)仅仅施加至参考计算机文件(REF)的被包含在要测试的第一区域之内的那部分,计算第一数字印记;
e)通过将相同的散列函数仅仅施加至目标计算机文件(T)的被包含在要测试的第二区域之内的那部分,计算第二数字印记;
f)自动比较第一和第二数字印记,如果第一和第二数字印记相同则认为目标计算机文件被验证,如果第一和第二数字印记不同则认为目标计算机文件未被验证;
g)响应于第一数字印记和第二数字印记相等且目标计算机文件(T)被验证,获取至少一个额外的随机变量;和
h)响应于第一数字印记和第二数字印记相等且目标计算机文件(T)被验证,作为所获取的所述至少一个额外的随机变量的函数,定义要测试的第三区域,所述第三区域与要测试的第一区域不同并限定参考计算机文件(REF)的额外部分。
2.根据权利要求1所述的方法,其特征在于,要测试的第一区域具有等于或大于参考计算机文件的整个尺寸(L)的10%的尺寸(L’)。
3.根据前述权利要求中的任一个所述的方法,其特征在于,其还包括:
i)作为所获取的所述至少一个额外的随机变量的函数,定义:
要测试的第四区域,该第四区域与要测试的第二区域不同并限定目标计算机文件(T)的额外部分,该要测试的第四区域具有与要测试的第三区域相同的尺寸,并且在目标计算机文件内相对于该目标计算机文件的原点位于与要测试的第三区域相对于参考计算机文件的原点相同的相对位置;
j)通过将散列函数仅仅施加至参考计算机文件的被包含在要测试的第三区域之内的那部分,计算第三数字印记;
k)通过将相同的散列函数仅仅施加至目标计算机文件的被包含在要测试的第四区域内的那部分,计算第四数字印记;
l)自动比较第三和第四数字印记,仅当第三和第四数字印记相同的情况下认为目标计算机文件被验证。
4.根据权利要求3所述的方法,其特征在于,要测试的第三和第四区域分别占据参考计算机文件(REF)和目标计算机文件(T)的整个尺寸(L)。
5.根据权利要求3所述的方法,其特征在于,要测试的第三区域与要测试的第一区域分开。
6.根据权利要求3所述的方法,其特征在于,要测试的第三区域和要测试的第一区域的联合占据参考计算机文件(REF)的整个尺寸。
7.根据权利要求1所述的方法,其特征在于,步骤a)还包括对所获取的参考计算机文件(REF)的可靠性的验证,该可靠性的验证借助于数字签名完成。
8.根据权利要求1所述的方法,其特征在于,由测试工具(2)自动执行步骤a)、b)、c)、d)和f),其特征在于,目标计算机文件(T)存储在要测试的设备(3)的存储器中,并且其特征在于,由要测试的设备(3)自动完成第二数字印记的计算,因而步骤e)包括由测试工具(2)自动获取第二数字印记。
9.根据权利要求8所述的方法,其特征在于,所述目标计算机文件(T)是内嵌软件。
10.根据权利要求1所述的方法,其特征在于,用于计算第一和第二数字印记的散列函数是密码散列函数。
11.根据权利要求10所述的方法,其特征在于,所述密码散列函数是族SHA-2或SHA-3的散列函数。
12.根据权利要求10所述的方法,其特征在于,所述密码散列函数是散列函数SHA-256。
13.一种数据记录介质,其特征在于,其包含这样的指令:当所述指令被电子计算机(20)运行时,用以执行根据前述权利要求中的任一个所述的方法。
14.一种电子计算机(20),用于实现根据权利要求1至12中的任一个所述的方法,其特征在于,该电子计算机(20)被编程为:
a)获取参考计算机文件(REF)和要测试的目标计算机文件(T);
b)获取至少一个随机变量;
c)作为所获取的所述至少一个随机变量的函数,定义:
限定参考计算机文件(REF)的一部分的要测试的第一区域;以及
限定目标计算机文件(T)的一部分的要测试的第二区域,该要测试的第二区域展现与要测试的第一区域同一尺寸、并且在目标计算机文件(T)内相对于该目标计算机文件的原点位于与第一测试区域相对于参考计算机文件的原点(A)相同的相对位置(C-A);
d)通过将散列函数仅仅施加至参考计算机文件(REF)的被包含在要测试的第一区域之内的那部分,计算第一数字印记;
e)通过将相同的散列函数仅仅施加至目标计算机文件(T)的被包含在要测试的第二区域之内的那部分,计算第二数字印记;
f)自动比较第一和第二数字印记,如果第一和第二数字印记相同则认为目标计算机文件(T)被验证,如果第一和第二数字印记不同则认为目标计算机文件未被验证;
g)响应于第一数字印记和第二数字印记相等且目标计算机文件(T)被验证,获取至少一个额外的随机变量;和
h)响应于第一数字印记和第二数字印记相等且目标计算机文件(T)被验证,作为所获取的所述至少一个额外的随机变量的函数,定义要测试的第三区域,所述第三区域与要测试的第一区域不同并限定参考计算机文件(REF)的额外部分。
15.一种测试工具(2),用以相对于参考计算机文件(REF)自动验证存储在要测试的设备(3)的存储器(302)中的目标计算机文件(T),该测试工具(2)包括电子计算机(20)和用于与要测试的设备(3)的存储器(302)交换数据的连接器(21),该测试工具(2)的特征在于,所述电子计算机(20)是根据权利要求14所述的。
16.根据权利要求15所述的测试工具(2),其特征在于,所述目标计算机文件是内嵌软件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1653165A FR3050044B1 (fr) | 2016-04-11 | 2016-04-11 | Procede de verification automatique d'un fichier informatique cible par rapport a un fichier informatique de reference |
FR1653165 | 2016-04-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107292172A CN107292172A (zh) | 2017-10-24 |
CN107292172B true CN107292172B (zh) | 2022-07-01 |
Family
ID=56322100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710073137.3A Active CN107292172B (zh) | 2016-04-11 | 2017-02-10 | 用于相对于参考计算机文件自动验证目标计算机文件的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10425233B2 (zh) |
EP (1) | EP3232365A1 (zh) |
CN (1) | CN107292172B (zh) |
FR (1) | FR3050044B1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11386235B1 (en) * | 2021-11-12 | 2022-07-12 | Illuscio, Inc. | Systems and methods for dynamic checksum generation and validation with customizable levels of integrity verification |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5454000A (en) * | 1992-07-13 | 1995-09-26 | International Business Machines Corporation | Method and system for authenticating files |
US7287164B2 (en) * | 2002-09-12 | 2007-10-23 | International Business Machines Corporation | Method and system for encoding signatures to authenticate files |
US7841010B2 (en) * | 2007-01-08 | 2010-11-23 | Apple Inc. | Software or other information integrity verification using variable block length and selection |
CN102509049B (zh) * | 2011-11-14 | 2014-11-26 | 任子行网络技术股份有限公司 | 一种程序合法性验证方法和系统 |
US9256765B2 (en) * | 2012-06-29 | 2016-02-09 | Kip Sign P1 Lp | System and method for identifying software changes |
US8966274B2 (en) * | 2012-12-21 | 2015-02-24 | Ca, Inc. | File tamper detection |
CN104134021B (zh) * | 2013-06-20 | 2016-03-02 | 腾讯科技(深圳)有限公司 | 软件的防篡改验证方法及装置 |
US10032029B2 (en) * | 2014-07-14 | 2018-07-24 | Lenovo (Singapore) Pte. Ltd. | Verifying integrity of backup file in a multiple operating system environment |
-
2016
- 2016-04-11 FR FR1653165A patent/FR3050044B1/fr active Active
-
2017
- 2017-01-06 US US15/400,443 patent/US10425233B2/en active Active
- 2017-02-10 CN CN201710073137.3A patent/CN107292172B/zh active Active
- 2017-04-07 EP EP17165455.1A patent/EP3232365A1/fr not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
CN107292172A (zh) | 2017-10-24 |
FR3050044B1 (fr) | 2019-06-21 |
US20170295020A1 (en) | 2017-10-12 |
FR3050044A1 (fr) | 2017-10-13 |
US10425233B2 (en) | 2019-09-24 |
EP3232365A1 (fr) | 2017-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110493197B (zh) | 一种登录处理方法及相关设备 | |
US9641491B2 (en) | Secure memory interface with cumulative authentication | |
TWI557589B (zh) | 用於產品驗證和啟動的安全軟體產品識別器 | |
CN110401615B (zh) | 一种身份认证方法、装置、设备、系统及可读存储介质 | |
CN102419804B (zh) | 具有冗余安全性的可靠的软件产品验证和激活 | |
US20180204004A1 (en) | Authentication method and apparatus for reinforced software | |
JP6190404B2 (ja) | 受信ノード、メッセージ受信方法およびコンピュータプログラム | |
CN103269271A (zh) | 一种备份电子签名令牌中私钥的方法和系统 | |
JP6387908B2 (ja) | 認証システム | |
CN111177693B (zh) | 一种验证终端根证书的方法、装置、设备和介质 | |
CN107133512B (zh) | Pos终端控制方法和装置 | |
CN112907375A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN106372523B (zh) | 一种modem文件安全保护方法及系统 | |
CN107292172B (zh) | 用于相对于参考计算机文件自动验证目标计算机文件的方法 | |
US10949527B2 (en) | Semiconductor device, authentication system, and authentication method | |
CN108376212B (zh) | 执行代码安全保护方法、装置及电子装置 | |
CN115766192A (zh) | 基于ukey的离线安全认证方法、装置、设备及介质 | |
CN108259471B (zh) | 专有信息的加密方法、解密方法、装置及处理设备 | |
CN113676326A (zh) | Tddi芯片 | |
CN105554033B (zh) | 一种图像输入设备的可信认证方法及其图像输入设备 | |
CN114245183B (zh) | 推流数据鉴权方法及装置 | |
CN114095175B (zh) | 一种可灰度校验的数据保密方法、装置及存储介质 | |
CN117113437B (zh) | 一种文件篡改检测方法、装置、计算机设备及存储介质 | |
CN109347639B (zh) | 一种序列号的生成方法及装置 | |
CN115174063A (zh) | 软件许可生成、验证方法及装置 |
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 |