CN117751361A - 用于保护软件的使用的方法 - Google Patents
用于保护软件的使用的方法 Download PDFInfo
- Publication number
- CN117751361A CN117751361A CN202280048455.3A CN202280048455A CN117751361A CN 117751361 A CN117751361 A CN 117751361A CN 202280048455 A CN202280048455 A CN 202280048455A CN 117751361 A CN117751361 A CN 117751361A
- Authority
- CN
- China
- Prior art keywords
- register
- software
- modification
- associated information
- information item
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012986 modification Methods 0.000 claims abstract description 49
- 230000004048 modification Effects 0.000 claims abstract description 49
- 238000004891 communication Methods 0.000 claims abstract description 16
- 238000004590 computer program Methods 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 238000002156 mixing Methods 0.000 claims description 2
- 230000015654 memory Effects 0.000 description 18
- 238000009434 installation Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000005259 measurement Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 238000000053 physical method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012795 verification Methods 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- 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
Abstract
一种用于保护旨在由单元的电子处理器执行的软件的使用的方法,所述电子处理器包括或至少能够访问:‑第一寄存器,所述第一寄存器包括至少一个相关联信息项,所述至少一个相关联信息项是先前生成的,并且是访问由所述软件使用的数据、和/或加密或解密旨在用于所述软件或从所述软件得到的与另一单元的通信数据所需的,以及‑第二寄存器,所述第二寄存器包含所述软件的至少一个文件,和/或识别或加密所述软件的文件所需的数据、尤其是散列,在所述方法中,在对所述第二寄存器进行任何修改或对修改所述第二寄存器进行任何请求时,重新初始化所述第一寄存器或以预定方式修改所述第一寄存器的所述至少一个相关联信息项。
Description
技术领域
本发明涉及用于保护旨在由单元的电子处理器执行的软件的使用的方法和计算机程序产品。
背景技术
电子处理器在通电时执行启动软件,该启动软件位于只读存储器或永久存储器中,但该存储器的内容可以被修改。这为处理器的供应商提供了能够随时间更新启动软件的可能性,如尤其在专利US 5944821中所解释的。这也允许处理器的供应商或零售商能够通过加载不同的启动软件来调节所述处理器的可能用途。
然而,这种灵活性确实为非法软件替换开辟了道路,可能导致处理器故障,甚至处理器可以访问的数据被盗或损坏。这影响到任何类型的软件,尤其是启动软件,但也影响到尤其用于检查软件签名的软件。因此,区分和/或防止所谓的非法安装或修改是重要的,非法安装或修改不是对应于软件的第一次安装的合法安装,也不是由已经安装的软件的版本或由合法安装的其他软件批准的已经安装的修改。
这些攻击风险有时会受到添加另一个与启动进程相关的处理器的限制,该处理器会检查软件发行商是否合法。这种检查也可以由受保护的处理器本身来完成,该受保护的处理器将在启动时执行用于检查第二启动软件的发行商的软件,然后只有在第一软件允许的情况下才执行第二启动软件,该许可是在检查第二软件的发行商的身份之后给出的。
然而,这些检查通常是通过检查被检查软件的签名来完成的,所述软件的签名通常包括软件的秘密字或散列,该散列被加密,使得只有合法的发行商才能使散列被检查软件解密。
用于检查启动软件的另一种方法在于,除了启动软件检查软件之外,还具有寄存器,在该寄存器中存储有合法散列,在下次启动启动软件时将通过该合法散列来检查该启动软件;该合法散列能够例如通过包括在初始启动软件中的函数来更新。
然而,如果可以通过设计创建具有与合法软件相同散列的软件,则这些技术都可以被规避,如申请US2010/0185845中所公开的。遗憾的是,这种措施是可能的,已知的加密方法MD5和Sha1能够被伪造。
此外,量子计算机的出现也使伪造加密字成为可能,从而使这些软件检查甚至更容易被规避。
对软件的非法修改对在其他单元或处理器注册的电子处理器、尤其是在网络或安装基地中的电子处理器特别有害,如果电子处理器的软件被非法软件取代,则其注册将失效。
发明内容
需要改进电子处理器的安全和保护或其使用,以便特别提供一种能够克服已知方法的缺点的方法。
发明概述
方法
本发明的目的是解决这一需求,并且根据本发明的一个方面,本发明通过一种用于保护旨在由单元的电子处理器执行的软件的使用的方法来实现该目的,所述电子处理器包括或至少可以访问:
-第一寄存器,在所述第一寄存器上存在至少一个相关联信息项,所述至少一个相关联信息项是先前生成的,并且是访问由所述软件使用的数据、和/或加密或解密旨在用于所述软件或从所述软件得到的与另一单元的通信数据所需的,以及
-第二寄存器,所述第二寄存器包含所述软件的至少一个文件,和/或识别或加密所述软件的文件所需的数据、尤其是散列,
在所述方法中,在对所述第二寄存器进行任何修改或对修改所述第二寄存器进行任何请求时,重新初始化所述第一寄存器或以预定方式修改所述第一寄存器的所述至少一个相关联信息项,使得为了访问由所述软件使用和/或从所述软件得到的数据,在该重新初始化或该第一修改之后,通过已经发起对所述第二寄存器的修改的软件的指令或通过先前确定的授权软件来对所述第一寄存器的后续修改进行授权。
因此,通过本发明保护软件的使用:一方面,如果所述软件本身没有发起其自身的更改或已经得到授权软件的批准,则由所述软件为电子处理器管理的源自或旨在用于另一单元的通信不再能够用与另一单元交换的密钥进行加密;另一方面,如果软件本身没有发起其自身的更改或由授权软件授权更改,则由存在于被称为安全寄存器的所述第一寄存器上的所述相关联信息项加密的数据不再是所述软件可访问的,所述信息已经被擦除或修改。
术语“先前确定的授权软件”应理解为是指所述电子处理器和/或所述单元认可的授权软件。
在本发明的一个优选实施方式中,所述方法使用并入或连接到所述电子处理器的电子电路,所述电子电路被配置为至少检测对被称为可执行寄存器的所述第二寄存器的任何修改,或对修改所述第二寄存器的任何请求,并且在该检测之后,重新初始化所述第一寄存器或以预定方式修改所述第一寄存器的所述至少一个相关联信息项。
在一个变型中,根据本发明的方法通过由一个或多个处理器执行的代码指令自动执行。
优选地,在对所述第二寄存器进行任何修改或对修改所述第二寄存器进行任何请求时,将所述第一寄存器重置为零。在一个变型中,所述第一寄存器被重置为不同于零的预定值。
尤其是在更新或安装所述软件时,可以删除和/或重新生成所述第一寄存器的所述至少一个相关联信息项。
所述第一寄存器的所述至少一个相关联信息项可以通过由所述单元的所述电子处理器已知的或生成的值、或者通过传输到所述单元的值、或者通过先前已知的和/或传输到服务器或传输到所述单元在其中移动的网络的另一单元的值来修改。
要保护的软件
在下文中,使用术语“软件”,但是本发明也可以应用于旨在由电子处理器执行的应用程序。
所述软件优选地是电子处理器的启动软件。
所述处理器的启动软件可以存储在寄存器的永久存储器中。术语“永久存储器”应理解为是指,与随机存取或只读存储器不同,所述寄存器是可修改的,但即使不再通过电流供电,也会保留信息。
在变型或组合中,所述软件是管理软件,其确保对一个或多个其他第三方软件系列的管理,并且尤其被配置为在单元中列出所述一个或多个其他第三方软件系列,用新版本替换它们,保护它们与其他单元的通信或者对文档进行签名或加密。在这种情况下,如果以其他方式修改管理软件,则删除这些操作所需的秘密数据。
然后,该单元的电子处理器包括或者有利地可以访问切换寄存器,该切换寄存器针对这些其他第三方软件系列中的每一个至少包含这些软件系列中的每一个的被称为安全寄存器的第一寄存器和被称为可执行寄存器的第二寄存器的标识符。授权管理软件有利地被配置为检查要安装的软件的版本,和/或被配置为更新以修改与要更新的软件相关联的被称为可执行寄存器的所述第二寄存器,然后更新被称为安全寄存器的第一寄存器,并在检查了与被更新的软件相关联的安全寄存器和可执行寄存器的准确性之后更新切换寄存器。
如果被更新的软件包含与外部电子设备安全通信的功能,则用于所安装版本的新密钥优选地由执行更新的软件传送,因此可能地在更新之前或更新期间由所谓的管理软件进行传送;这些秘密数据有利地在安装新版本时被传送。
旨在由单元的电子处理器执行的所述软件可以发起其自身的更新,从而使其自身的另一版本可用于该单元。在这种情况下,所述软件优选地检查所述另一版本的有效性,例如如果它知道软件的发行商的真实密钥则通过检查所述软件的例如存储在第一寄存器(所谓的安全寄存器)中电子签名来检查所述有效性,或者通过随机散列方法来检查所述有效性,散列的混合数和加密密钥例如是在所述第一寄存器更新之前在所述第一寄存器上输入的一次性密钥。可以在微处理器上安装专用电子电路来执行这些检查,而无需将包含在安全寄存器中的相关联秘密信息、尤其是随机散列过程所使用的一次性密钥以及混合数传输到处理器或处理器的其他部分。
相关联信息
第一寄存器的所述至少一个相关联信息项可以至少包括一个或多个加密密钥,尤其是对称密钥、非对称密钥、公共密钥、私有密钥、一次性密钥、或一系列一次性密钥。在一个变型中,所述至少一个相关联信息项至少包括随机生成的一个或多个数,尤其是如随机散列专利中所述的被称为“混合数”的随机数。
除其他事项外,这种相关联信息用于保护与其他单元的通信,或者用于加密、解密或检查所述软件所使用的数据的真实性。
所述相关联信息可以包含其他信息,尤其是软件的文件在单元上的修改或归档的日期和时间,和/或使得能够识别所述文件的新版本和旧版本的标识符、所述文件的新版本和旧版本的创建日期、所述文件的新版本和旧版本的名称、所述文件的新版本和旧版本的发行商、所述文件的新版本和旧版本的散列和其发行商发布的签名以及用于所述签名的发行商的公钥。
一个或多个相关联信息项优选地被保护,以便不能在与其相关联的软件文件的更新和归档过程之外被修改。
一个或多个相关联信息项优选地被保护,以便仅由与寄存器相关联的软件或管理软件使用。
一个或多个相关联信息项优选地被保护,以便仅由允许加密、解密和检查签名的电子电路使用,而不将所述安全寄存器的内容透露给电子电路的其余部分或其他电子电路。
在私有加密密钥的情况下,一个或多个相关联信息项可以由软件本身在其自身更新之前以其旧版本生成。
在公共密钥或一次性加密密钥的情况下,这些密钥可以源自于所述单元在所述软件更新之前使用所述软件与之通信的远程电子设备,或者可以由该单元自身创建以与它们通信。然而,在所述单元或与其相关联的软件的请求下,可以访问其他信息项。最后,其他信息,例如,保持可公开访问的文件的修改日期,优选地作为相关联信息被输入到可执行寄存器上。
对第二寄存器的修改或写入可以导致或必须对输入到第一寄存器上的相关联信息进行归零或修改。
所述设备优选地包括对称、非对称和一次性加密密钥的生成器,使得能够将这些密钥存储在安全寄存器上,优选地不以其他方式将一对非对称密钥中的私钥传送到处理器的其余部分或任何其他电子电路(视情况而定),而仅以加密方式并且通过使用存在于与同一软件的现有版本相关联的或者与管理软件相关联的安全寄存器上的密钥传送其他密钥,尤其是对称加密密钥和一次性加密密钥。
寄存器
在本发明的一个实施方式中,第二寄存器包含软件的至少一个文件。
在一个变型中,软件的文件以加密形式存储在第三寄存器上,第二寄存器至少包括用于解密和/或检查被加密的文件的签名的一个或多个加密密钥,尤其是对称或非对称密钥。
优选地,只有管理软件或其文件被包含在第二寄存器中或其签名被输入在第二寄存器上的软件可以被授权来修改或能够修改所述第二寄存器。
在一个变型中,只有管理软件或执行其自身更新的软件被授权来修改切换寄存器,并且优选地,当检查可执行寄存器时,能够禁止在可执行寄存器上的写入,直到对应于所述软件的切换寄存器已被更新。
在一个变型中,软件的文件被存储在第三寄存器上,第一寄存器包括至少一个加密密钥和随机秘密数,该随机秘密数已经与存储在第三寄存器中的软件的文件混合或串接,并且第二寄存器还包括由混合或串接产生的文件的至少一个散列字,称为“散列”,其通过包含在第一寄存器中的所述加密密钥加密。这提供了非常高的安全水平来检查其文件在第三寄存器上并且已经产生了第二寄存器的数据的软件是否确实是初始提交的软件,尤其是如果解密测试的数量在时间上受到限制,唯一的解决方案是尝试使用所有可能的随机数来伪造文件的话。
优选地,每个软件系列在处理器或独立的虚拟处理器上执行。
网络内的识别
第一寄存器的所述至少一个相关联信息项可能是在单元移动的网络中识别所述处理器所需的。
第一寄存器的所述至少一个相关联信息项可能是与网络的一个或多个服务器和/或网络的一个或多个其它单元进行通信所需的。
在软件被修改并且第二寄存器被修改或必须被修改从而导致第一寄存器被修改的情况下,只有当在修改之前最后一次使用软件时,该单元能够将信息传送到网络的其他单元时,才能够识别该单元与其他单元,其中这些单元在网络内移动,所述信息将允许其他单元在该单元重新启动时与修改后的软件进行通信。然后,该单元可以使用最近被修改的第一寄存器以被识别;所述第一寄存器是使用所述软件和识别所述单元所需的。
第一寄存器可以根据第二寄存器的第一修改而改变,这种改变使得通过网络、尤其是一个或多个服务器识别软件的重要功能不起作用。因此,在第一寄存器将停止被第二寄存器上的写入所改变之后,但在重新启动之前,该单元将在必要时重新填充该第一寄存器,并通知服务器或其他单元或其可以与之通信的该单元的其他功能。
设备
此外,本发明的主题是一种用于保护旨在由单元的电子处理器执行的软件的使用的设备,尤其是用于实施根据本发明的方法的设备,该设备被并入所述电子处理器中或可以访问所述电子处理器,并且包括或至少可以访问第一寄存器和第二寄存器,在该第一寄存器上存在至少一个相关联信息项,该至少一个相关联信息项是先前生成的,并且是访问由所述软件使用的数据、和/或加密或解密旨在用于所述软件或从所述软件得到的与另一单元的通信数据所需的,所述第二寄存器包含软件的文件,和/或识别或加密所述软件的文件所需的数据、尤其是散列,所述设备包括至少一个电子电路,所述电子电路被配置为使得在对所述第二寄存器进行任何修改或对修改所述第二寄存器进行任何请求时,重新初始化所述第一寄存器或以预定方式修改所述第一寄存器的所述至少一个相关联信息项,使得为了访问由所述软件使用和/或从所述软件得到的数据,在该重新初始化或该第一修改之后,通过已经发起对所述第二寄存器的修改的软件的指令来对所述第一寄存器的后续修改进行授权。
该电子电路有利地被配置为检测指示对第二寄存器的修改或修改请求的第一预定电压在电子电路的预定点处的施加,并且在该检测之后在电子电路的另一预定点处施加第二预定电压,所述第二预定电压的施加激起所述第一寄存器的重新初始化或者以预定方式修改所述第一寄存器的所述至少一个相关联信息项。
该电子电路优选地被配置为使得只有当第一寄存器的所有位都等于零时才允许修改第二寄存器,该条件通过在先读取第一寄存器以及记录所读取的、尤其是在设备包括的或设备可以访问的第三寄存器上记录或计算的位的最大值来证明,如果在读取第一寄存器之后所记录的值等于1,则阻止对第二寄存器的修改。
根据本发明的设备包括:
·如前所述的被称为安全寄存器的第一存储器寄存器和被称为可执行寄存器的第二存储器寄存器,以及优选地:
·确保对其进行保护的每个软件系列的存储器寄存器,
以及优选地,
·允许在被指定为可用之前对其进行输入和检查的附加的可执行寄存器和附加的安全寄存器、以及称为切换寄存器的寄存器,
·被配置为生成随机数、对称密钥和一次性密钥的模块,和/或
·被配置为生成成对的非对称密钥的模块,和/或
·被配置为计算散列的模块,
·被配置为计算和/或检查电子签名,尤其是使用对称、非对称密钥或随机散列来检查电子签名的模块,
·被配置为通过使用对称、一次性或非对称密钥进行加密和解密的模块,以及
·被配置为检查电路和电子部件的物理完整性的模块。
有利地,将故障或者软件或硬件错误编码在存储器上,该故障或者软件或硬件错误可能导致可执行文件、可执行寄存器或安全寄存器中的一者以及由单元及其相关联的安全寄存器保护的至少一个软件系列、尤其是使得能够安装其他软件及其相关联信息的至少一个软件系列损坏,该存储器优选地是不可擦除的,尤其是ROM类型的,并且优选地是处理器不可访问的,但是可复制在可执行寄存器和安全寄存器之一上。因此,这使得可以建立与服务器的安全连接,然后服务器可以命令所述软件的更新和其他软件的可能安装。
根据本发明的设备还优选地包括物理保护装置,该物理保护装置用于使单元的一些存储器寄存器、尤其是第一寄存器(所谓的安全寄存器)的内容即使使用复杂的观察装置(例如,电子显微镜)或通过某些电子电路的短路也无法被观察到,而不需要这种动作所需的访问权触发所述寄存器的擦除。
为了避免一个或多个处理器以及其使用的存储器被其他处理器和存储器替换以及访问安全寄存器的功能,安全寄存器以及链接到单元和所述处理器使用的存储器的一个或者多个处理器优选地被布置为使得,对所述处理器的任何物理修改或者对存储器的任何物理修改,或者任何电干扰被检测并导致被称为安全寄存器的第一寄存器的擦除。
根据本发明的设备可以使电流在所述处理器和存储器寄存器周围的微电路中(并且优选地当微电路通电时)循环,并且测量所述电流的强度和/或这些电路中的每一个的电感和/或在这些电路中每一个或一些电路之间的电容、和/或电信号流过一个或多个电路所花费的时间。这些测量值中的一个的任何变化或相对于参考状态的任何变化都可以指示物理修改,可能是为了访问处理器或存储器的电路。该设备还可以包括电池或纽扣电池,其被配置为在电路未通电时执行这些检查。
有利地,在传送消息的情况下实施根据本发明的方法时,设备可以输入软件的身份,尤其是名称、发行商和版本,尤其是如果这样的信息被输入在第二寄存器上的话;该输入可以通过向所传送的消息添加报头来完成,于是该报头有利地形成与加密或电子签名相关的消息的一部分。
上述针对方法所描述的特征也适用于设备,反之亦然。
计算机程序产品
此外,本发明的一个主题是一种用于保护旨在由电子处理器执行的软件的使用的计算机程序产品,所述电子处理器包括或优选地可以访问需要存储在被称为安全寄存器的第一寄存器上的数字密钥的电子签名的加密和/或解密和/或验证的功能,所述第一寄存器在被称为可执行寄存器的第二寄存器的任何修改时被擦除,其中,在所述第二寄存器上输入被保护软件的代码,或者使用在被称为可执行寄存器的第二寄存器上存在的散列或随机散列(可能被加密)来在所述软件执行之前或执行期间检查所述软件的真实性。
此外,本发明的一个主题是一种计算机程序产品,用于实现根据本发明的用于保护旨在由单元的电子处理器执行的软件的使用的方法,所述电子处理器包括或至少可以访问第一寄存器和第二寄存器,在所述第一寄存器上存在至少一个相关联信息项,所述至少一个相关联信息项是先前生成的,并且是访问由所述软件使用的数据、和/或加密或解密旨在用于所述软件或从所述软件得到的与另一单元的通信数据所需的;所述第二寄存器包含所述软件的至少一个文件,和/或识别或加密所述软件的文件所需的数据、尤其是散列,
所述计算机程序产品包括介质和存储在所述介质上的处理器可读指令,使得当所述处理器可读指令被执行时,在对所述第二寄存器进行任何修改或对修改所述第二寄存器进行任何请求时,重新初始化所述第一寄存器或以预定方式修改所述第一寄存器的所述至少一个相关联信息项,使得为了访问由所述软件使用和/或从所述软件得到的数据,在该重新初始化或该第一修改之后,通过已经发起对所述第二寄存器的修改的软件的指令或通过先前确定的授权软件来对所述第一寄存器的后续修改进行授权。
以上针对方法和设备描述的特征也适用于计算机程序产品。
本发明还涉及一种计算机可读信息介质,包括允许实现上述功能的计算机程序产品的指令。
本发明的单元和应用
所述单元可以是包括至少一个电子处理器的任何电子单元。
优选地,通过使用根据本发明的方法来启动由该单元执行的所有软件。如果软件被授权执行而无需根据所述方法启动,则这种可以访问安全设备的软件优选地被安装在处理器的虚拟部分中,该虚拟部分在存储器读取模式和写入模式下都受到保护,不受未由所述安全设备启动的软件的可能动作的影响。
由所述单元执行的其他软件的标识符,尤其是由所述单元启动的这种软件的标识符也有利地通过任何通信来传输,可能地与其散列或随机散列一起传输;于是远程设备能够在必要时检查所有这样的软件是否已经被检查为不构成任何安全问题。
该设备尤其可以用于:
·保护与远程数据服务器的信息交换,
·传递数据并与连接到同一服务器或连接在一起的服务器的其他类似单元交换数据,
·进行测量,然后将其传送到远程服务器,这些测量可以是例如:
○压力、温度、热量、尺寸等的物理测量,
○计量测量,如大气温度、风速和风向、降雨量或波高,
○消耗量的测量,如通过电缆的电量、或加热管中的热量、或水管中的水量,
○机器中零件或机器本身的使用测量,
○地理位置测量,
○运动学测量,如车辆的速度或加速度以及方向,
·保护去往服务器和来自服务器的数据传输,
·将视频图像或声音重新传输到服务器,
·向服务器重新传输通过其“视野”的RFID芯片的身份,或
·从服务器或连接到所述服务器的另一对象控制门锁或窗锁,
·保护网络路由器的固件,
·保护芯片卡的固件,
·保护芯片卡读取器或多个读取器的固件,无论是否接触。
附图说明
通过阅读本发明的示例性非限制性实现方式的以下详细描述以及通过研究附图,将能够更好地理解本发明,附图中:
[图1]图1表示根据本发明的用于保护软件的使用的设备的示例,
[图2]图2表示根据本发明的用于保护软件的使用的变型设备,
[图3]图3表示根据本发明的切换寄存器的内容的示例,
[图4]图4表示根据本发明的设备的使用步骤的一示例,以及
[图5]图5表示根据本发明的设备的使用步骤的另一示例。
具体实施方式
图1示出了根据本发明的设备的示例,该设备用于保护旨在由单元的电子处理器P执行的软件的更新。
在该示例中,该软件是处理器P的启动软件,并且该软件的文件、其签名、用于解密以加密形式存储的所述软件的文件的加密密钥被存储在电子处理器P可以访问的第二寄存器(所谓的可执行寄存器)R2中。电子处理器P还可以访问密码模块MC,该密码模块MC可以读取第一寄存器(所谓的安全寄存器)R1,在该第一寄存器R1上存在至少一个相关联信息项,该至少一个相关联信息项是先前生成的,并且是访问由所述软件使用的数据、和/或加密或解密旨在用于所述软件或从所述软件得到的与另一单元的通信数据所需的。处理器P也可以以直接写入模式访问安全寄存器,但不能以直接读取模式访问。
施加到写入端子B1使得可以在可执行寄存器R2上进行写入的电压导致在安全寄存器R1的擦除端子B2上施加电压。
加载在处理器中并与服务器通信的软件为了执行其自身的更新,可以:
·下载新版本及其签名;
·通过在密码模块中复制新版本来检查所述新版本,以针对所述新版本:
○通过使用安全寄存器中输入的发行商的公钥来对签名进行解密,
○计算软件的散列,
○比较散列和解密的签名,
·下载用于在更新后与服务器通信的新的加密密钥、以及软件发行商的可能的新公钥;
·通过在密码模块中复制加密密钥的新版本来检查加密密钥的新版本,以针对加密密钥的新版本:
○通过使用安全寄存器中输入的服务器的公钥来对签名进行解密,
○计算加密密钥的散列,
○比较散列和解密的签名,
·将下载的软件复制到可执行寄存器R2上;
·如有必要,将新签名复制到安全寄存器R1上;
·将用于与服务器通信的新的加密密钥复制到安全寄存器R1上;
·初始化处理器的重新启动。
处理器启动
处理器P通过加载存在于可执行寄存器R2中的软件来启动。
与服务器通信
为了向服务器发送受保护的数据,处理器P将未受保护的数据发送到密码模块,该密码模块将经保护的(即,例如经加密的和经签名的)数据返回给处理器P,然后处理器通过诸如因特网的数据网络将受保护的数据发送到服务器。
为了从服务器接收受保护的数据,处理器将其通过诸如因特网的数据网络接收到的受保护的数据发送到密码模块,该密码模块在检查了这些数据的可能的签名后将经解密的数据返回给处理器。
在图2所示的第二示例中,为了避免单元在第一寄存器(安全寄存器)R1的擦除和修改的有效数据在其上的写入之间停止时不再能够操作,根据本发明的设备还可以访问称为“可执行A”寄存器的第三寄存器R3,其上可以存储软件的文件或使得能够解密和/或检查其签名的密钥,以及还可以访问称为“安全A”寄存器的第四寄存器R4,其相关联信息在第二寄存器R2的任何更新时被修改,以及还可以访问触发器和切换寄存器R5,其指示选择可执行寄存器R2还是R3以及选择安全寄存器R1还是R4,即所述信息应当源自哪个寄存器,以相应地启动软件或通知密码模块安全寄存器中保留的密码密钥和其他值。
处理器可以选择切换触发器以读取寄存器R1和R4或者寄存器R2和R3。所述触发器的切换是不变的,也就是说,即使处理器停止或电路断电,一对或另一对寄存器的选择也不会改变。只有来自处理器的指令才能更改该选择。优选地,触发器还可以通知处理器它被定位在哪个选择上。
处理器启动
处理器通过读取源于两个可执行寄存器之一的、由触发器提供的代码来启动。
处理器更新:
处理器:
·下载软件的新版本及其电子签名和新密钥,以便在更新后与服务器通信。
·将新软件和电子签名传递到加密模块。
·加密模块分别使用对称密钥和公钥对软件和新的加密密钥及其签名进行解密,对称密钥和公钥由所述软件的发行者为所述软件和由服务器为加密数据发行,并存在于允许触发器与其通信的安全寄存器上。
·解密模块返回被解密并被检查已由公钥在安全寄存器上的发行商签名的软件、以及同样被解密并被检查其来源的加密数据。
·然后,处理器在未使用的可执行寄存器和未使用的安全寄存器上输入软件的新版本、以及软件的新版本的新加密数据和散列。
·处理器检查前一步骤中进行的输入是否不包括任何写入错误。
·处理器致动触发器。
·处理器重新启动。
处理器与服务器通信:
为了向服务器发送受保护的数据,处理器将未受保护的数据返回到密码模块,该密码模块返回经保护的(即,例如经加密的和经签名的)数据,然后处理器通过诸如因特网的数据网络将受保护的数据发送到服务器。
为了从服务器接收受保护的数据,处理器将其通过诸如因特网的数据网络接收到的受保护的数据发送到密码模块,该密码模块在检查了这些数据的可能的签名后返回经解密的数据。
密码模块询问其通过触发器链接到的安全寄存器,以知道要用于加密、解密和认证操作的密钥和其他参数。
在图3所示的实施方式中,独立处理器P0管理安全设备的输入/输出,密码模块P1、P2、…、Pi对各种密码任务的分配,并确保可执行寄存器和安全寄存器的管理;该设备具有可以同时工作的多个密码模块,如图5所示。
特别地,该设备包括以表格的形式组织的三个寄存器Ra、Rb、Rc,寄存器Ra和Rb是永久的,并且如果在电力中断的任一侧上已经执行了密码处理,则寄存器Rc是永久的。
寄存器Ra与软件相关联,一方面与寄存器Rb的其可执行寄存器和安全寄存器所在的行号相关联,另一方面与为所述软件处理数据的密码模块的列表相关联。寄存器Rc列出当前正在进行的密码处理任务,并针对每个任务指示进行计算的密码模块的编号。因此,表格Ra和表格Rc的交叉引用使得能够检索已经发起每个密码任务的软件的标识符。
图4示出了由处理器管理可执行寄存器和安全寄存器的示例,该处理器由外部主处理器委托负责将软件存储在设备中。
在步骤101中,通过要求用处理器P0中保留的密钥解密随机数,来检查请求安装的软件是否确实是从表格Ra和表格Rb的可执行寄存器之一启动的软件系列中的一个,表格Ra和表格Rb是在软件启动时生成并传送给该软件的;因为软件具有在设备中输入新软件或修改其存储的版本的权利。存储在第一可执行寄存器上的软件例如可以是唯一被授权修改或安装其他软件的软件。在步骤102中,设备在Rb中搜索空闲行。在步骤103中,设备在寄存器Rb的空闲行上写入软件的代码和安全数据。在步骤104中,再次将该信息发送到寄存器Rb以进行检查。在步骤105中,所使用的寄存器的行号被输入到寄存器Ra的列Nob中,用于对应于软件的记录,或者,如果软件还没有被列在其中,则将该行号输入到寄存器Ra的空闲行上,并且软件的标识符也将被输入到该空闲行中。如果被更新的软件在此更新过程中被执行,则会重新启动该软件。替选地,只有当被更新的软件当前没有被执行时,才执行包括更新寄存器Ra的这个最后步骤,然后只有当所述软件被关闭时,才进行所述寄存器Ra的更新。
如果只有软件的签名或散列,或者与秘密数混合的软件的散列,而不是软件的文件,被输入到可执行寄存器中,则优选地在所述软件启动之前系统地检查存储在所述可执行寄存器中的所述签名或散列的适用性。所述软件的签名的发行商的公钥可以在更新软件和放置输入到可执行寄存器中的软件文件时已经存储在安全寄存器中,如果必要,还可以存储秘密混合数。为了避免处理器多次尝试通过使用偶然随机数来规避检查,检查测试的数量优选在时间上受到限制。
图5表示方法的各个步骤,通过该方法,设备通过执行密码操作来响应由所述设备保护的软件的请求。
Claims (14)
1.一种用于保护旨在由单元的电子处理器执行的软件的使用的方法,所述电子处理器包括或至少能够访问:
-第一寄存器(R1),在所述第一寄存器上存在至少一个相关联信息项,所述至少一个相关联信息项是先前生成的,并且是访问由所述软件使用的数据、和/或加密或解密旨在用于所述软件或从所述软件得到的与另一单元的通信数据所需的,以及
-第二寄存器(R2),所述第二寄存器包含所述软件的至少一个文件,和/或识别或加密所述软件的文件所需的数据、尤其是散列,
在所述方法中,在对所述第二寄存器(R2)进行任何修改或对修改所述第二寄存器进行任何请求时,重新初始化所述第一寄存器(R1)或以预定方式修改所述第一寄存器的所述至少一个相关联信息项,使得为了访问由所述软件使用和/或从所述软件得到的数据,在所述重新初始化或该第一修改之后,通过已经发起对所述第二寄存器(R2)的修改的软件的指令或通过先前确定的授权软件来对所述第一寄存器(R1)的后续修改进行授权,
所述方法使用并入或连接到所述电子处理器的电子电路,所述电子电路被配置为至少检测对所述第二寄存器(R2)的任何修改或对修改所述第二寄存器的任何请求,并且在所述检测之后,重新初始化所述第一寄存器(R1)或以预定方式修改所述第一寄存器的所述至少一个相关联信息项。
2.根据权利要求1所述的方法,其中,在对所述第二寄存器(R2)进行任何修改或对修改所述第二寄存器进行任何请求时,将所述第一寄存器(R1)重置为零。
3.根据前述权利要求中任一项所述的方法,其中,所述第一寄存器(R1)的所述至少一个相关联信息项通过由所述单元的所述电子处理器已知的或生成的值、或者通过传输到所述单元的值、或者通过先前已知的和/或传输到服务器或传输到所述单元在其中移动的网络的另一单元的值来修改。
4.根据前述权利要求中任一项所述的方法,其中,所述第一寄存器(R1)的所述至少一个相关联信息项至少包括一个或多个加密密钥,尤其是对称密钥、非对称密钥、公共密钥、私有密钥、或一系列一次性密钥,或者至少包括随机生成的一个或多个数。
5.根据前述权利要求中任一项所述的方法,其中,所述软件是所述电子处理器的启动软件。
6.根据前述权利要求中任一项所述的方法,其中,所述软件的文件以加密形式存储在第三寄存器(R3)上,所述第二寄存器(R2)至少包括用于解密和/或检查被加密的所述文件的签名的一个或多个加密密钥、尤其是对称密钥或非对称密钥。
7.根据前述权利要求中任一项所述的方法,其中,只有管理软件或其文件被包含在所述第二寄存器(R2)或第三寄存器(R3)中的软件被授权来修改或能够修改所述第二寄存器(R2)。
8.根据权利要求1至5中任一项所述的方法,其中,只有其文件被包含在所述第二寄存器(R2)中或其签名被输入在所述第二寄存器上的软件被授权来修改或能够修改所述第二寄存器(R2)。
9.根据权利要求1至5中任一项所述的方法,其中,所述软件的文件被存储在第三寄存器上,所述第一寄存器(R1)包括至少一个加密密钥和随机秘密数,所述随机秘密数已经与存储在所述第三寄存器中的所述软件的文件混合或串接,并且所述第二寄存器还包括由所述混合或串接产生的所述文件的至少一个散列字,所述散列字通过包含在所述第一寄存器中的所述加密密钥加密。
10.根据前述权利要求中任一项所述的方法,其中,所述软件是管理软件,所述管理软件确保对一个或多个其他第三方软件系列的管理,所述单元的所述电子处理器包括或者能够访问切换寄存器(R5),所述切换寄存器针对这些其他第三方软件系列中的每一个至少包含这些软件系列中的每一个的所述第一寄存器和所述第二寄存器的标识符。
11.根据前述权利要求中任一项所述的方法,其中,所述第一寄存器的所述至少一个相关联信息项用于识别所述单元在其中移动的网络中的所述处理器。
12.一种用于保护旨在由单元的电子处理器执行的软件的使用的设备,尤其是用于实施根据前述权利要求中任一项所述的方法的设备,所述设备被并入所述电子处理器中或能够访问所述电子处理器,并且包括或至少能够访问第一寄存器(R1)和第二寄存器(R2),在所述第一寄存器上存在至少一个相关联信息项,所述至少一个相关联信息项是先前生成的,并且是访问由所述软件使用的数据、和/或加密或解密旨在用于所述软件或从所述软件得到的与另一单元的通信数据所需的,所述第二寄存器包含所述软件的文件,和/或识别或加密所述软件的文件所需的数据、尤其是散列,
所述设备包括至少一个电子电路,所述电子电路被配置为使得在对所述第二寄存器(R2)进行任何修改或对修改所述第二寄存器进行任何请求时,重新初始化所述第一寄存器(R1)或以预定方式修改所述第一寄存器的所述至少一个相关联信息项,使得为了访问由所述软件使用和/或从所述软件得到的数据,在所述重新初始化或该第一修改之后,通过已经发起对所述第二寄存器(R2)的修改的软件的指令或通过先前确定的授权软件来对所述第一寄存器(R1)的后续修改进行授权,
所述电子电路并入或连接到所述电子处理器,并且被配置为至少检测对所述第二寄存器(R2)的任何修改,或对修改所述第二寄存器的任何请求,并且在所述检测之后,重新初始化所述第一寄存器(R1)或以预定方式修改所述第一寄存器的所述至少一个相关联信息项。
13.根据前一项权利要求所述的设备,其中,所述电子电路被配置为检测指示对所述第二寄存器(R2)的修改或修改请求的第一预定电压在所述电子电路的预定点处的施加,并且在该检测之后在所述电子电路的另一预定点处施加第二预定电压,所述第二预定电压的施加激起所述第一寄存器的重新初始化或者以预定方式修改所述第一寄存器的所述至少一个相关联信息项。
14.一种计算机程序产品,用于实现根据权利要求1至11中任一项所述的用于保护旨在由单元的电子处理器执行的软件的使用的方法,所述电子处理器包括或至少能够访问第一寄存器(R1)和第二寄存器(R2),在所述第一寄存器上存在至少一个相关联信息项,所述至少一个相关联信息项是先前生成的,并且是访问由所述软件使用的数据、和/或加密或解密旨在用于所述软件或从所述软件得到的与另一单元的通信数据所需的,所述第二寄存器包含所述软件的至少一个文件,和/或识别或加密所述软件的文件所需的数据、尤其是散列,
所述计算机程序产品包括介质和存储在所述介质上的处理器可读指令,使得当所述处理器可读指令被执行时,在对所述第二寄存器(R2)进行任何修改或对修改所述第二寄存器进行任何请求时,重新初始化所述第一寄存器(R1)或以预定方式修改所述第一寄存器的所述至少一个相关联信息项,使得为了访问由所述软件使用和/或从所述软件得到的数据,在所述重新初始化或该第一修改之后,通过已经发起对所述第二寄存器(R2)的修改的软件的指令或通过先前确定的授权软件来对所述第一寄存器(R1)的后续修改进行授权。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FRFR2104932 | 2021-05-10 | ||
FR2104932A FR3122749B1 (fr) | 2021-05-10 | 2021-05-10 | Procédé pour sécuriser l’utilisation d’un logiciel |
PCT/EP2022/062406 WO2022238288A1 (fr) | 2021-05-10 | 2022-05-09 | Procédé pour sécuriser l'utilisation d'un logiciel |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117751361A true CN117751361A (zh) | 2024-03-22 |
CN117751361A8 CN117751361A8 (zh) | 2024-04-12 |
Family
ID=76730769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280048455.3A Pending CN117751361A (zh) | 2021-05-10 | 2022-05-09 | 用于保护软件的使用的方法 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP4338079A1 (zh) |
KR (1) | KR20240006658A (zh) |
CN (1) | CN117751361A (zh) |
FR (1) | FR3122749B1 (zh) |
WO (1) | WO2022238288A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5944821A (en) | 1996-07-11 | 1999-08-31 | Compaq Computer Corporation | Secure software registration and integrity assessment in a computer system |
WO2009044533A1 (ja) | 2007-10-05 | 2009-04-09 | Panasonic Corporation | セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路 |
US8677150B2 (en) * | 2012-02-01 | 2014-03-18 | Intel Mobile Communications GmbH | Low-power multi-standard cryptography processing units with common flip-flop/register banks |
CN107077568B (zh) * | 2014-11-17 | 2020-08-25 | 英特尔公司 | 对称密钥和信任链 |
US9712153B1 (en) * | 2016-03-03 | 2017-07-18 | Nxp Usa, Inc. | Method and device for reset modification based on system state |
-
2021
- 2021-05-10 FR FR2104932A patent/FR3122749B1/fr active Active
-
2022
- 2022-05-09 EP EP22728189.6A patent/EP4338079A1/fr active Pending
- 2022-05-09 KR KR1020237042675A patent/KR20240006658A/ko unknown
- 2022-05-09 WO PCT/EP2022/062406 patent/WO2022238288A1/fr active Application Filing
- 2022-05-09 CN CN202280048455.3A patent/CN117751361A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN117751361A8 (zh) | 2024-04-12 |
EP4338079A1 (fr) | 2024-03-20 |
FR3122749B1 (fr) | 2023-10-27 |
FR3122749A1 (fr) | 2022-11-11 |
WO2022238288A1 (fr) | 2022-11-17 |
KR20240006658A (ko) | 2024-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109937419B (zh) | 安全功能强化的设备的初始化方法及设备的固件更新方法 | |
CN109313690B (zh) | 自包含的加密引导策略验证 | |
US8898477B2 (en) | System and method for secure firmware update of a secure token having a flash memory controller and a smart card | |
US8660964B2 (en) | Secure device licensing | |
JP4278327B2 (ja) | コンピュータ・プラットフォームおよびその運用方法 | |
CN107004083B (zh) | 设备密钥保护 | |
US20110289294A1 (en) | Information processing apparatus | |
US20050021968A1 (en) | Method for performing a trusted firmware/bios update | |
TW201732669A (zh) | 受控的安全碼鑑認 | |
JP6720581B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
US20110093693A1 (en) | Binding a cryptographic module to a platform | |
EP3031001A1 (en) | Secure data storage | |
WO2007138488A2 (en) | A method of patching applications on small resource-contrained secure devices | |
US20090287917A1 (en) | Secure software distribution | |
US20110040961A1 (en) | Binding data to a computing platform through use of a cryptographic module | |
JP2003507784A (ja) | 記憶されたデータの使用に対する強制的な制限 | |
CN113190880B (zh) | 基于对安全协处理器的背书信息的分析确定是否对计算设备执行动作 | |
JP2010182070A (ja) | 情報処理装置及び情報処理方法及びプログラム | |
CN116566613A (zh) | 使用平台密钥保护与安全处理器的通信 | |
CN113094720A (zh) | 安全地管理密钥的设备和方法 | |
KR101711024B1 (ko) | 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치 | |
CN117751361A (zh) | 用于保护软件的使用的方法 | |
CN116724309A (zh) | 设备和通信方法 | |
CN114491682A (zh) | 虚拟订户识别模块和虚拟智能卡 | |
JP5278520B2 (ja) | 情報処理装置、情報保護方法 |
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 | ||
CI02 | Correction of invention patent application | ||
CI02 | Correction of invention patent application |
Correction item: Inventor Correct: Bruno Sangler Ferrero False: Bruno Sanger Le Ferrere Number: 12-02 Page: The title page Volume: 40 Correction item: Inventor Correct: Bruno Sangler Ferrero False: Bruno Sanger Le Ferrere Number: 12-02 Volume: 40 |