CN111433771A - 内核模块的安全引导 - Google Patents
内核模块的安全引导 Download PDFInfo
- Publication number
- CN111433771A CN111433771A CN201880074889.4A CN201880074889A CN111433771A CN 111433771 A CN111433771 A CN 111433771A CN 201880074889 A CN201880074889 A CN 201880074889A CN 111433771 A CN111433771 A CN 111433771A
- Authority
- CN
- China
- Prior art keywords
- kernel module
- kernel
- computer
- electronic device
- module
- 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
- 241000122205 Chamaeleonidae Species 0.000 claims abstract description 121
- 238000000034 method Methods 0.000 claims abstract description 83
- 238000004590 computer program Methods 0.000 claims abstract description 11
- 238000012360 testing method Methods 0.000 claims description 20
- 238000012795 verification Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 51
- 230000008569 process Effects 0.000 description 12
- 230000001965 increasing effect Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000015654 memory Effects 0.000 description 4
- 239000004744 fabric Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
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/575—Secure boot
-
- 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/44—Program or device authentication
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
- H04L9/0833—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
- H04L9/0836—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- 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
-
- 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
- H04L9/3242—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 involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
- Hardware Redundancy (AREA)
- Retry When Errors Occur (AREA)
- Storage Device Security (AREA)
Abstract
一种用于提供电子设备的安全的更新的内核模块的计算机实现的方法,其中,该方法包括以下步骤:由计算机将内核模块的变色龙散列、内核模块的内核模块私有密钥和内核模块的更新的内核模块插入变色龙散列碰撞函数中,从而获得碰撞数据,由计算机将更新的内核模块与碰撞数据进行组合,从而获得安全的更新的内核模块。另外地,还描述了一种用于安全更新电子设备的至少一个内核模块的计算机实现的方法、一种包括服务器和电子设备的系统、计算机程序和计算机可读介质。
Description
技术领域
本发明属于内核模块在操作系统的内核中更新的技术领域。具体地,本发明与内核模块更新的认证委派有关。更具体地,本发明涉及用于提供安全的更新的内核模块的方法,其中,可信第三方可以在无需内核开发者的干预的情况下安全更新所述内核模块。
背景技术
当前的电子设备实施安全引导过程,以确保设备的状态在引导时可以是可信的。这包括通过加密机制验证引导存根、固件模块和内核模块。
通常,电子设备具有写入存储器的只读区域中的根公共密钥。该根公共密钥用于验证安装在电子设备中的固件模块的签名,该签名又包括附加密钥、用于对内核进行签名的内核私有密钥的公共部分。所产生的签名被写入电子设备的存储器的读写部分中。
与根公共密钥相关联的私有密钥通常由原始装备制造商、OEM或设备供应商控制,并且用于对内核进行签名的私有密钥由可以是与OEM或设备供应商相同的实体或可以是与OEM或设备供应商不相同的实体的固件开发者控制。因此,在安全引导期间,验证内核签名和固件签名正确无误就足以检查设备的固件部件和内核部件未被篡改。
在此背景下,对内核所做的任何修改都需要使用内核私有密钥进行签名。具体地,内核模块向设备提供了由第三方多次开发的同样需要遵守这一要求的增强的功能。该过程迫使这些第三方严格遵循内核开发者的开发周期,从而无法在需要时发布其各自模块的更新,即使这些更新修复了重要的安全问题也如此。
“Group-Based Attestation:Enhancing Privacy and Management in RemoteAttestation(基于组的证明:加强远程证明中的隐私和管理)”公开了一种使用远程平台的证明方法。欧洲专利申请EP 2157725A1公开了一种内容保护装置和内容利用装置。“Tree-formed Verification Data for Trusted Platforms(用于可信平台的树形验证数据)”公开了一种用于创建树形验证数据的方法。美国专利申请US 2014/0365026A1公开了一种签名生成装置和方法。
文献US 20110131447A1公开了一种用于在无需电子设备的用户的干预的情况下自动地更新固件的方法。由于唯一允许更新固件的一方是内核开发者,因此已经由任何第三方执行的任何更新都应当被发送至内核开发者。因此,为了提供安全的固件,仍然需要内核开发者的干预,这延迟了任何重要的安全更新的修复。
因此,需要提高更新电子设备中的内核模块的效率和敏捷性的方法。
发明内容
本发明通过根据权利要求1的用于安全更新电子设备的至少一个内核模块的计算机实现的方法、根据权利要求9的用于安全更新至少一个内核模块的系统、根据权利要求10的计算机程序和根据权利要求11的计算机可读介质,提供了一种针对前述问题的替选解决方案。在从属权利要求中,限定了本发明的优选实施方式。
在本发明的第一创新方面,本发明提供了一种用于提供电子设备的安全的更新的内核模块的计算机实现的方法,其中,电子设备包括操作系统和认证的内核结构,该认证的内核结构包括:
-内核元数据,其包括:
至少一个内核模块的至少一个内核模块公共密钥,其中,每个内核模块公共密钥对应于内核模块私有密钥,以作为对应的内核模块公共密钥和内核模块私有密钥的内核模块密钥对,以及
内核模块根散列,其包括默克尔树的根散列,
-内核数据,其包括:
内核体数据,
至少一个内核模块,其中,内核模块与一个内核模块密钥对相关联,
-内核元数据签名,
-内核体数据签名,
其中,该方法包括以下步骤,
i)由计算机将内核模块的变色龙散列、内核模块的内核模块私有密钥和内核模块的更新的内核模块插入变色龙散列碰撞函数中,从而获得碰撞数据,
其中,碰撞数据为使得进行以下的碰撞数据:当将碰撞数据与更新的内核模块进行组合并且使用变色龙散列函数对所述组合进行散列化时,结果等于内核模块的变色龙散列,
ii)由计算机将更新的内核模块与碰撞数据进行组合,从而获得安全的更新的内核模块。
认证的内核结构是包括指令的内核结构,所述指令允许操作电子设备的硬件元件和软件元件。根据电子设备的类型,内核模块的数目可以变化,并且因此内核模块公共密钥的数目也可以变化。当内核结构元件的来源已经被验证时,该内核结构被认证。
在整个文献中,“电子设备”将被理解为被配置成操作操作系统的任何设备,例如移动设备、计算机、服务器、智能电话、平板电脑、PDA等。电子设备包括操作系统,该操作系统被配置成管理包括在电子设备中的硬件并且管理由所述硬件使用的数据。另外地,内核模块将被理解为被配置成控制电子设备的硬件功能的计算机程序。
作为任何计算机程序,内核模块可以具有其他更新或版本。因此,在整个文献中,“更新的内核模块”将被理解为内核模块的先前版本的新版本。
内核元数据包括与至少一个计算机有关的公共密钥。该计算机可以是开发固件或更新内核模块的第三方。该计算机可以另外是服务器或第二电子设备,其中,内核模块的新版本被存储和/或更新并且还包括其对应的私有密钥。该至少一个计算机是与内核开发者和原始装备制造商不同的元件。
每个内核模块公共密钥与包括在内核数据中的每个内核模块有关。例如,屏幕内核模块控制电子设备的屏幕的功能,并且它与仅一个内核模块公共密钥有关,即,与屏幕内核模块公共密钥有关。每个内核模块公共密钥具有对应的内核模块私有密钥,该内核模块私有密钥又与计算机有关,这被称为形成非对称密码系统的内核模块的密钥对。作为非对称密码系统,其应当被理解为以下密码系统:其中私有密钥由计算机保持私密,而公共密钥是公用的并且可以被存储在验证的内核结构中。
在一个实施方式中,内核元数据包括多个内核模块公共密钥,并且内核模块公共密钥可以被引用到仅一个计算机。在该实施方式中,计算机被配置成存储和/或更新与内核模块公共密钥有关的内核模块,并且计算机具有与所述内核模块对应的内核模块的密钥对。在其他实施方式中,存在多个计算机,每个计算机可以包括多个内核模块私有密钥。由于每个内核模块私有/公共密钥与一个内核模块有关,因此每个计算机都被配置成存储和/或更新与内核模块公共密钥有关的内核模块。
在一个实施方式中,计算机包括内核模块、其更新的内核模块、内核模块的变色龙散列和内核模块私有密钥,其中,作为更新的内核模块,其应当被理解为内核模块的新版本。在该实施方式中,计算机是产生内核模块的新版本的同一实体,即,计算机是内核模块的开发者。在这种情况下,计算机通常包括已经被开发出的每个版本,并且由于计算机已经从内核开发者或OEM接收到内核模块密钥对,因此它还能够计算任何变色龙散列。在其他实施方式中,计算机生成内核开发者或OEM所接受的内核模块密钥对。
在其他实施方式中,该计算机实现的方法在步骤i)之前包括接收内核模块、其更新的内核模块、内核模块的变色龙散列和内核模块的私有密钥的先前步骤。
内核模块根散列是默克尔树的根散列。另外地,内核模块根散列是从内核数据获得的;因此,将检测到内核模块的任何非法修改,由于密码散列函数的特性和默克尔树的构造,因此该修改将使内核签名无效。因此,每个变色龙散列都是默克尔树的叶节点。
首先,计算机实现的方法将更新的内核模块、内核模块的先前版本的变色龙散列以及与所述内核模块对应的内核模块私有密钥插入变色龙散列碰撞函数中。更新的内核模块是内核数据的内核模块的新版本。该新版本可以修复安全漏洞或者可以增强电子设备的某些功能。
变色龙散列碰撞函数被配置成发现碰撞数据。在本发明的上下文中,密码散列是将任意长度的数据确定性地转换成固定长度的随机消息的密码函数。密码散列函数是一种方法,即,仅当给定将散列函数应用在该参数上的结果时,恢复在散列函数的执行中所使用的参数,这在计算上是很难处理。发现产生相同结果的两个不同的参数,这在计算上也是很难处理的。碰撞数据是当两个或更多个不同的数据被用作到加密散列函数的输入时,产生相同的散列结果。
在变色龙散列系统中,每个实体具有公共和私有密钥对。应当理解,参与更新内核模块的过程的任何计算机或一方作为实体。变色龙散列始终与内核模块的密钥对相关联。给定公共密钥,任何人可以计算可以在该公共密钥下被验证为有效的变色龙散列。对应私有密钥的所有者可以计算已经利用其公共密钥计算出的任何散列的任意的碰撞,而与其是否曾经实际计算过该散列无关。
有利地,由于变色龙散列特性,因此密码散列函数与公共-私有密钥对相关联。任何有权访问公共密钥的实体都可以发布和验证变色龙散列。给定私有密钥下的消息的变色龙散列,只有私有密钥的所有者才能发现消息的任意的碰撞。
因此,当计算机将更新的模块内核数据、接收到的内核模块的变色龙散列以及与模块数据对应的私有密钥插入变色龙散列碰撞函数中时,变色龙散列碰撞函数计算碰撞数据。当将碰撞数据与更新的模块内核数据进行组合并且使用变色龙散列函数对所述组合进行散列化时,结果等于内核模块的变色龙散列,即与使用所述变色龙散列函数对内核模块和对应的内核模块公共密钥进行散列化的结果对应的变色龙散列。因此,两个不同的数据,更新的模块内核数据和模块内核数据,产生相同的散列结果。由于这个,内核签名和固件签名不会改变,并且可以在无需内核开发者的任何干预的情况下安装内核模块。
最后,将碰撞数据与更新的模块内核数据进行组合,从而获得安全的更新的内核模块。该组合在步骤ii)中提供包括内核模块的新版本和碰撞数据的元件、安全的更新的内核模块。在一个实施方式中,根据由变色龙散列系统限定的碰撞发现算法,通过合并更新的模块内核数据和碰撞数据来执行该组合。
本发明避免了内核开发者的干预,从而维持内核模块的更新过程的安全性。
有利地,合法的第三方固件开发公司,即该方法的计算机可以遵循它们自己的过程来更新其在电子设备中的固件模块。这可以导致更加敏捷的过程,该过程使得以更快的速度提供每个固件模块的最新版本。从安全角度来看,这是相关的,因为这些更新多次修复了重要的安全漏洞。而且,该方法减少了可以安全地且模块化地委派这些任务的原始装备制造商的负担。此外,如果原始装备制造商认为第三方虽被授权但未应用满足原始装备制造商的要求的过程,则原始装备制造商可以通过从验证的内核结构删除所述第三方的公共密钥而随时取消这些能力。
从上面的段落可以清楚地看出,本发明的方法的步骤i)和ii)仅在电子设备内部执行,即离线执行而无需在所述设备外部执行任何通信。
在特定实施方式中,变色龙散列碰撞函数包括无密钥泄露的变色龙散列函数。
在特定实施方式中,计算机包括一个内核模块密钥对。
在本发明的第二创新方面,本发明提供一种用于安全更新电子设备的至少一个内核模块的计算机实现的方法,其中,电子设备包括操作系统和认证的内核结构。认证的内核结构包括在第一创新方面中描述的相同元件。
该用于安全更新电子设备的至少一个内核模块的计算机实现的方法包括以下步骤:
a)由计算机提供根据本发明的第一方面的实施方式中的任一个的计算机实现的方法生成的安全的更新的内核模块,
b)由计算机将该安全的更新的内核模块发送至电子设备,
c)由电子设备将该安全的更新的内核模块安装到更新内核模块的内核数据中。
根据本发明的第一方面的实施方式中的任一个的计算机实现的方法提供安全的更新的内核模块。由于所使用的变色龙碰撞函数的特性以及包括在安全的更新的内核模块中的碰撞数据,因此安全的更新的内核模块的安装将不会改变内核模块根散列。有利地,提高了内核数据的更新率,从而增加了内核结构的安全性,这是因为快速地修复了任何安全漏洞。如上面所指示的,每个变色龙散列都是默克尔树的叶节点。
在特定实施方式中,在步骤a)之前的先前步骤中,该方法包括以下步骤:
-由计算机生成至少一个内核模块密钥对,
-由计算机将至少一个内核模块公共密钥发送至电子设备,
-由计算机将至少一个内核模块私有密钥发送至至少一个外部实体,以及
-由至少一个外部实体接收并且存储至少一个内核模块私有密钥,
-由电子设备接收并且存储至少一个内核模块公共密钥。
有利地,该实施方式允许计算机将向电子设备提供安全更新的能力委派给其他外部实体,从而减少了原始装备制造商的负担。
在特定实施方式中,在步骤a)之前的先前步骤中,该方法包括以下步骤:
-由外部实体生成至少一个内核模块密钥对,
-由外部实体将至少一个内核模块公共密钥发送至电子设备,
-由外部实体将至少一个内核模块私有密钥发送至计算机,以及
-由计算机接收并且存储至少一个内核模块公共密钥,
-由计算机接收并且存储至少一个内核模块私有密钥。
有利地,这些实施方式允许将可信的外部实体的分配委派给被允许更新至少一个内核模块的可信元件。在一个实施方式中,可信元件是计算机,该计算机具有与内核模块公共密钥对应的内核模块私有密钥。在其他实施方式中,可信元件是外部实体,例如内核开发者或原始装备制造商。因此,在紧急情况下,即当必须修复安全漏洞时,可信元件能够将任务委派或分发至另一外部实体,从而增强了修复所述安全漏洞的能力,减少了响应时间,并且因此增加了内核数据的安全性。
在特定实施方式中,计算机与电子设备之间的任何发送是通过电信网络(TN)执行的,并且其中,任何发送优选地使用传输层安全性TLS进行加密。应当理解,先前实施方式的涉及任何实体例如计算机、外部实体或电子设备之间的数据的发送的任何步骤作为任何发送。有利地,该实施方式增加了本发明的方法的安全性。
在特定实施方式中,在电子设备中计算内核模块根散列,执行以下步骤来计算内核模块根散列:
-将每个内核模块及其对应的内核模块公共密钥插入变色龙散列函数中,从而获得每个内核模块的变色龙散列,
-对每个所获得的变色龙散列成对地进行散列化,从而获得每个散列的散列,
-对他们之间的散列进行散列化,直到获得内核模块根散列为止。
有利地,在电子设备中计算内核模块根散列的生成,从而增加了内核数据的安全性。
在一个实施方式中,该方法还包括在步骤b)与步骤c)之间的以下步骤,
-由电子设备将安全的更新的内核模块、对应的内核模块公共密钥以及内核模块的变色龙散列插入变色龙散列验证函数中,从而获得测试散列,
-如果测试散列与内核模块的变色龙散列不同,则向电子设备的操作系统通知对内核模块的安全更新是无效的,
-如果测试散列等于内核模块的变色龙散列,则向电子设备的操作系统通知对内核模块的安全更新是有效的,并且继续步骤c)。
有利地,该方法允许检查任何接收到的安全的更新的内核模块是否被篡改或是有效的。
在一个实施方式中,如果测试散列与对应的变色龙散列不同,则该方法还包括删除安全的更新的内核模块。有利地,当检测到安全的内核模块已经被篡改时,该实施方式提供了进一步的动作,从而避免了进一步的安全风险并且增加了内核数据的安全性。
第二创新方面的上面两个前述实施方式仅在电子设备内部执行,即离线执行而无需在所述电子设备外部执行任何通信。因此,上面两个实施方式可以被认为是用于安全地更新并且安全地且仅在内部验证电子设备的至少一个安全的更新的内核模块的计算机实现的方法。有利地,所述实施方式避免了来自OEM或内核开发者的新的数字签名的发出,从而允许验证过程是离线的并且不需要特殊的硬件或在线连接,这对于使更新过程更加敏捷例如用于解决安全漏洞可能是至关重要的。
另外地,内核模块的变色龙散列是默克尔树的叶节点,因此他们能够发现碰撞,从而能够维持固定的根散列,该固定的根散列可以用于唯一表示所有内核模块。这允许减少在验证过程中使用的存储器的数目,这有利地允许在具有有限的只读存储器或ROM的电子设备中实现该解决方案。
在本发明的第三创新方面,本发明提供了用于安全更新至少一个内核模块的系统,其包括:
-服务器,其被配置成当根据本发明的第二方面的实施方式中的任一个的方法步骤被引用到计算机时执行根据本发明的第二方面的实施方式中的任一个的方法的方法步骤,
-通过电信网络(TN)与服务器通信的电子设备,电子设备被配置成当根据本发明的第二方面的实施方式中的任一个的方法步骤中的任一个被引用到电子设备时执行根据本发明的第二方面的实施方式中的任一个的方法步骤中的任一个。
在本发明的第四创新方面,本发明提供了一种计算机程序,该计算机程序用于提供电子设备的安全的更新的内核模块,该计算机程序包括指令,所述指令当程序由计算机执行时使计算机执行本发明的第一方面的实施方式中的任一个的计算机实现的方法的步骤。
在本发明的第五创新方面,本发明提供了一种计算机程序,该计算机程序用于安全更新电子设备的至少一个内核模块,该计算机程序包括指令,所述指令当程序由计算机和电子设备执行时使计算机和电子设备执行本发明的第二方面的实施方式中的任一个的计算机实现的方法的步骤。
在本发明的第六创新方面,本发明提供了一种计算机可读介质,
-包括指令,所述指令当由计算机执行时使计算机执行本发明的第一方面的实施方式中的任一个的方法的步骤,以及/或者
-包括指令,所述指令当由计算机和电子设备执行时使计算机和电子设备执行本发明的第二方面的实施方式中的任一个的方法的步骤。
除了这些相互排斥的特征和/或步骤的组合以外,本说明书(包括权利要求、说明书和附图)中描述的所有特征和/或所描述的方法中的所有步骤可以以任何组合的方式进行组合。
附图说明
参照附图,鉴于对本发明的详细描述,将清楚地理解本发明的这些特征和优点以及其他特征和优点,根据仅作为示例给出而不限于此的本发明的优选实施方式,本发明的详细描述变得明显。
图1示出了用于提供电子设备的安全的更新的内核模块的计算机实现的方法的实施方式。
图2示出了在本发明的方法中所使用的电子设备的认证的内核结构的实施方式。
图3示出了包括在认证的内核结构上的四个内核模块的变色龙散列的计算的实施方式。
图4、图4a和图4b这些图示出了用于电子设备的至少一个安全更新的内核模块的安全更新的计算机实现的方法的实施方式。
图5示出了用于电子设备的至少一个安全更新的内核模块的安全更新的计算机实现的方法的实施方式,其中安全的更新的内核模块被验证。
图6a至图6d这些图示出了变色龙默克尔树的生成的实施方式。
具体实施方式
图1、图4、图4a、图4b、图5、图6a至图6d描述了本发明的实施方式。特别地,在图1中,图1说明了用于提供电子设备(200)的安全的更新的内核模块(3.4”)的计算机实现的方法(101)的实施方式。
电子设备(200)包括操作系统和认证的内核结构(1)。图2示出了认证的内核结构(1)的实施方式。在该实施方式中,电子设备(200)是智能电话,并且认证的内核结构(1)包括内核元数据(2)、内核数据(3)、内核元数据签名(4)和内核数据签名(5)。内核元数据签名(4)和内核数据签名(5)的十六进制值分别为“0x028E”和“0xF341”。
在该实施方式中,电子设备(200)包括由写入内核数据(3)中的相应模块控制的四个硬件元件。特别地,硬件元件是全球定位系统或GPS、加速度计、屏幕和键盘。
内核元数据(2)包括四个内核模块公共密钥“pk”(2.1、2.2、2.3、2.4)和内核模块根散列(2.5)。内核模块公共密钥(2.1、2.2、2.3、2.4)对应于由内核数据(3)控制的每个硬件元件。在该实施方式中,四个内核模块公共密钥是用于GPS的内核模块公共密钥(2.1,pkGPS)、用于加速度计的内核模块公共密钥(2.2,pkACC)、用于屏幕的内核模块公共密钥(2.3,pkSCR)和用于键盘的内核模块公共密钥(2.4,pkKBR)。另外地,内核模块根散列(2.5)的十六进制值为“0x3333”。
内核数据(3)包括被配置成控制电子设备(200)的硬件功能的计算机程序。特别地,内核数据(3)包括内核体数据(3.5),该内核体数据(3.5)的十六进制值为“0x7D62”。内核体数据(3.5)包括由制造商签名的模块以及由制造商、操作系统和非外包驱动器支持的全部功能。另外地,内核数据(3)包括四个内核模块数据,所述四个内核模块数据对应于电子设备(200)的每个硬件元件。在该实施方式中,四个内核模块数据密钥为:
-针对GPS的内核模块(3.1)或GPS内核模块,其中,其十六进制值为“0x2746”。
-针对加速度计的内核模块(3.2)或加速度计内核模块,其中,其十六进制值为“0x628A”。
-针对屏幕的内核模块(3.3)或屏幕内核模块,其中,其十六进制值为“0x628A”。
-针对键盘的内核模块(3.4)或键盘内核模块,其中,其十六进制值为“0x8D2C”。
用于提供电子设备(200)的安全的更新的内核模块的方法(图1)。
在该实施方式中,要更新的内核模块是键盘内核模块(3.4)。在该实施方式中,计算机(100)首先接收(11)键盘内核模块(3.4)和键盘内核模块(3.4)的新版本(即更新的键盘内核模块(3.4'))和内核模块的私有密钥(skKBR)。在其他实施方式中,计算机(100)包括所述接收的元件。
其次,通过将更新的键盘内核模块(3.4')、键盘内核模块(3.4)的变色龙散列(8.4)和键盘的内核模块私有密钥(2.4)(skKBR)插入变色龙散列碰撞函数中来计算碰撞数据(13)。最后,将碰撞数据(13)与更新的键盘内核模块(3.4')进行组合(14),从而获得安全的更新的内核模块(3.4”)。
在图3中示出了所有内核模块数据(3.1、3.2、3.3、3.4)的所有变色龙散列(8.1、8.2、8.3、8.4)的计算的实施方式。通过将内核模块(3.1、3.2、3.3、3.4)以及其对应的内核模块公共密钥(2.1、2.2、2.3、2.4)插入变色龙散列函数(ChamHash)中来计算出变色龙散列(8.1、8.2、8.3、8.4)。在该图中,GPS内核模块(3.1)的变色龙散列(8.1)的十六进制值为“0x0123”,加速度计内核模块(3.2)的变色龙散列(8.2)的十六进制值为“0x4567”,屏幕内核模块(3.3)的变色龙散列(8.3)的十六进制值为“0x89AB”,以及键盘内核模块(3.4)的变色龙散列(8.4)的十六进制值为“0xCDEF”。在一个实施方式中,可以在电子设备(200)中执行这种计算。
在图1的实施方式中,仅允许计算机(100)提供键盘内核模块(3.4)的更新,因此计算机(100)仅接收了键盘内核模块私有密钥(skKBR)。由于已经使用键盘内核模块私有密钥(skKBR)和键盘内核模块(3.4)的变色龙散列(8.4)计算出碰撞数据(13),因此安全的更新的内核模块(3.4”)仅在使用变色龙散列函数(ChamHash)和键盘内核模块公共密钥(2.4)(pkKBR)计算时才会提供相同的变色龙散列(8.4)“0xCDEF”。
用于电子设备(200)的至少一个内核模块的安全的更新的方法(102)(图4、图4a、
图4b)。
图4、图4a和图4b示出了电子设备(200)的至少一个安全的更新的内核模块(3.4”)的安全更新的计算机实现的方法(102)的实施方式。在该实施方式中,安全的更新的内核模块(3.4”)对应于键盘内核模块(3.4)的新版本。
首先,提供了如图1的实施方式中所公开的安全的更新的键盘内核模块(3.4”)。可以理解的是,图4的左边部分类似于图1的实施方式。一旦提供了安全的更新的键盘内核模块(3.4”),计算机(100)就将该安全的更新的键盘内核模块(3.4”)发送(15)至电子设备(200)。最后,一旦电子设备(200)接收到安全的更新的键盘内核模块(3.4”),电子设备(200)就将该安全的更新的键盘内核模块(3.4”)安装在认证的内核结构(1)中。
图4a和图4b示出了用于更新安全的更新的键盘内核模块(3.4”)的方法的详细过程。在图4a中,可以认识到键盘内核模块(3.4)的先前版本具有“0x8D2C”的十六进制值以及安全的更新的键盘内核模块(3.4”)的新版本是如何被提供的。如在图1的实施方式中所说明的那样,将具有“0x6A10”的十六进制值的更新的内核模块(3.4')、具有“0xCDEF”的十六进制值的键盘内核模块(3.4)的先前版本的变色龙散列以及键盘内核模块私有密钥(skKBR)插入(12)至变色龙散列碰撞函数,从而获得碰撞数据(13)。然后,将该碰撞数据(13)与更新的内核模块(3.4')进行组合(14),从而获得具有“0x6250”的十六进制值的安全的更新的键盘内核模块(3.4”)。
在图4b中,可以认识到计算机(100)如何将安全的更新的键盘内核模块(3.4”)发送(15)至电子设备(200)以及安全的更新的键盘内核模块(3.4”)如何被安装在认证的内核结构(1)中。现在,内核模块的新的十六进制值为:
-针对GPS内核模块(3.1)的第一版本,十六进制值为0x2746,
-针对加速度计内核模块(3.2)的第一版本,十六进制值为0x628A,
-针对屏幕内核模块(3.3)的第一版本,十六进制值为0xD10C,以及
-针对键盘内核模块(3.4”)的第二版本,十六进制值为0x6250。
第一实施方式:验证电子设备(200)的安全的更新的内核模块(3.4”)(图5)
在图5中,图5说明了用于在所述安全的更新的内核模块(3.4”)的更新期间(103)在电子设备(200)中执行的验证安全的更新的内核模块(3.4”)的实施方式。在该实施方式中,要验证的安全的更新的内核模块(3.4”)对应于键盘。
特别地,图5描述了实施方式(103),其中在第一步中,由已经使用图1中描述的实施方式提供安全的更新的键盘内核模块(3.4”)的计算机(100)发送(15)安全的更新的键盘内核模块(3.4”)。在发送(15)之后,完成方法中的步骤a)和步骤b)的电子设备(200)接收到(15')安全的更新的键盘内核模块(3.4”)。
一旦接收到(15')安全的更新的键盘内核模块(3.4”),电子设备就将安全的更新的内核模块(3.4”)、对应的内核模块公共密钥(2.4)以及内核模块(3.4)的变色龙散列(8.4)插入(18)变色龙散列验证函数中,从而获得测试散列(19)。如果测试散列(19)与内核模块(3.4)的变色龙散列(8.4)不同,则电子设备(200)向电子设备(200)的操作系统通知对内核模块进行的安全的更新是无效的并且删除(21)该无效的内核模块。否则,电子设备(200)向电子设备(200)的操作系统通知(20)对内核模块进行的安全更新有效,并且该方法继续进行安装(16)经验证的并且安全的更新的内核模块(3.4”)的步骤c)。
第二实施方式:内核模块根散列(2.5)的计算(图6a至图6d)
在该实施方式中,该方法还被配置成如在图6a至图6d中所描述的那样计算内核模块根散列(2.5)。在所述图中,所述图示出了默克尔树(10)的结构。在该实施方式中,由于电子设备包括四个内核模块(3.1、3.2、3.3、3.4),因此默克尔树(10)包括其中使用四个变色龙散列函数(ChamHash)对四个内核模块(3.1、3.2、3.3、3.4)进行散列化的第一级,该四个变色龙散列函数之间是相似的,并且在较高的级中使用类似的256位的散列函数(SHA256)对结果(8.1、8.2、8.3、8.4、9.1、9.2)成对地进行散列化,直到获得作为内核模块根散列(2.5)或默克尔树(10)的根散列的一个散列为止。在其他实施方式中,可以使用其他类型的散列函数(例如,散列函数SHA-2的任何其他变型)来构建默克尔树。
图6a示出了计算内核模块根散列(2.5)的第一步骤。特别地,内核模块(3.1、3.2、3.3、3.4)以及其对应的内核模块公共密钥(2.1、2.2、2.3、2.4)被插入每个变色龙散列函数(ChamHash)中。在该实施方式中,针对GPS内核模块(3.1)的内核模块的十六进制值为0x2746,针对加速度计内核模块(3.2)的十六进制值为0x628A,针对屏幕内核模块(3.3)的十六进制值为0xD10C,以及针对安全的更新的键盘内核模块(3.4”)的十六进制值为0x6250。即使键盘内核模块的值为0x8D2C,该值对应于键盘内核模块(3.4)的第一版本,由于图1的实施方式的更新过程,内核模块根散列(2.5)也将是相同的。
图6b示出了对内核模块的十六进制值应用变色龙散列函数(ChamHash)的结果,从而获得以下变色龙散列(8.1、8.2、8.3、8.4)的十六进制值:
-针对GPS内核模块(3.1)的变色龙散列(8.1),十六进制值为0x0123,
-针对加速度计内核模块(3.2)的变色龙散列(8.2),十六进制值为0x4567。
-针对屏幕内核模块(3.3)的变色龙散列(8.3),十六进制值为0x89AB,以及
-针对安全的更新的键盘内核模块(3.4”)的变色龙散列(8.4),十六进制值为0xCDEF。即使键盘内核模块的值为0x8D2C,该值对应于键盘内核模块(3.4)的第一版本,由于图1的实施方式的安全的更新过程,变色龙散列(8.4)的值也将保持相似。
在图6c中,图6c示出了计算内核模块根散列(2.5)的第二步骤,特别地,对每个获得的变色龙散列(8.1、8.2、8.3、8.4)成对地进行散列。在该实施方式中,GPS内核模块(3.1)的变色龙散列(8.1)与加速计内核模块(3.2)的变色龙散列(8.2)一起进行散列化,并且屏幕内核模块(3.3)的变色龙散列(8.3)与安全更新的键盘内核模块(3.4”)的变色龙散列(8.4)一起进行散列化。所使用的散列函数是256位的散列函数(SHA256),从而获得第一散列和第二散列(9.1、9.2),其中,第一散列和第二散列各自的十六进制值为“0x1111”和“0x2222”。
最后,如图6d中所示的,对第一散列和第二散列(9.1、9.2)进行散列化,从而获得内核模块根散列(2.5),其中,内核模块根散列(2.5)的十六进制值为“0x3333”。在这种情况下,所使用的散列函数是同样的256位的散列函数(SHA256)。
在存在奇数个散列或变色龙散列的情况下,对散列或变色龙散列成对地进行散列化,并且在接下来的步骤中将对剩余的散列进行散列化,直到散列的数目为一,在这种情况下该散列为内核模块根散列(2.5)。
在AM04变色龙散列系统中计算变色龙散列、碰撞数据(13)和测试散列(19)
变色龙散列、碰撞数据(13)和测试散列(19)的计算取决于所使用的变色龙散列函数(chameleonHash)的类型。在一些实施方式中,可以使用IACR密码学云打印存档(ePrintArchive)2004:243(2004)的Giuseppe Ateniese,Breno de Medeiros:On the KeyExposure Problem in Chameleon Hashes文档中描述的变色龙散列。在以下段落中,描述了在AM04变色龙散列系统中计算变色龙散列、碰撞数据(13)和测试散列(19)的实施方式。
变色龙散列的计算
在该示例中,变色龙散列函数(chameleonHash)的输入是要被散列化的屏幕内核模块公共密钥(2.3,pkscr)和屏幕内核模块(3.3)。关于通过变色龙散列函数(chameleonHash)获得的输出,它们将是屏幕内核模块(3.3)的变色龙散列(8.3)ch和数据结构“aux”。“aux”包括将用于验证变色龙散列(并且在发现碰撞时更新)的附加辅助信息,特别地aux包括:
·aux.r:随机数。
·aux.s:随机数。
在该示例中,屏幕内核模块公共密钥(2.3,pkscr)是数据结构,该数据结构包括:
·pk.y:数字。
·pk.g:数字。
·pk.q:素数。
·pk.p:素数。
因此,变色龙散列被计算如下:
-生成aux.r:在0与pk.q减1之间的随机数。
-生成aux.s:在0与pk.q减1之间的随机数。
-使用以下变色龙散列函数(chameleonHash)来计算屏幕内核模块(3.4)的变色龙散列(8.3)ch(即“ch”):
ch=r-(pk.y散列(data||aux.r)*pk.gaux.s mod pk.p)mod pk.q,
其中:
“data”是内核模块,在该示例中为屏幕内核模块(3.3),
“数据||r”是:与r级连的数据,并且
mod是获得一个数字除以另一个数字后的余数的取模运算。
碰撞数据(13)的计算
在变色龙散列的计算的示例之后,使用变色龙散列碰撞函数来计算碰撞数据(13),其中变色龙散列碰撞函数的输入为:
·sk:与用于计算变色龙散列的公共密钥对应的私有密钥,在这种情况下为屏幕内核模块私有密钥。
·ch:屏幕内核模块(3.3)的变色龙散列(8.3)的变色龙散列。
·data':将获得与“ch”相关的碰撞的“新”数据,在这种情况下为屏幕内核模块(3.3)的更新的内核模块。
变色龙散列碰撞函数的输出是碰撞数据(13)或aux'。aux'是可替选的辅助数据结构,使“ch”为用于data'的有效变色龙散列,aux'包括:
·aux'.r:与aux.r不同的随机数。
·aux'.s:与aux.s不同的随机数。
因此,碰撞数据(13)被计算如下:
-生成在1与pk.q减1之间的随机数k
-使用以下变色龙散列碰撞函数来计算碰撞数据(13)、aux'.r、aux'.s:
aux'.r=ch+(pk.gk mod pk.p)mod pk.q
aux'.s=k-散列(data'||r)sk mod pk.q
因此,一旦data'和aux'进行组合,就获得了屏幕内核模块(3.3)的安全的更新的内核模块。
测试散列(19)的计算
使用变色龙散列验证函数来计算测试散列(19),其中,变色龙散列验证函数的输入为:
·pk:用于发布变色龙散列的公共密钥,在该示例中为屏幕内核模块公共密钥(2.3,pkscr)。
·ch:屏幕内核模块(3.3)的变色龙散列(8.3)的变色龙散列。
·屏幕内核模块(3.3)的安全的更新的内核模块,包括:
οd:用于验证的数据,在该示例中,为data',即屏幕内核模块(3.3)的更新的内核模块。
οauxiliary:与碰撞数据(13)相关联的辅助数据的实例,在该示例中为aux'。
用变色龙散列验证函数计算测试散列(19),如下:
测试散列=auxiliary.r-(pk.y散列(d||auxiliary.r)pk.gauxiliary.s mod pk.p)mod pk.q
其中,auxiliary.r是aux'.r,并且auxiliary.s是aux'.s,d是data'。
最后,如果测试散列(19)等于变色龙散列(8.3)ch,则意味着屏幕内核模块(3.3)的安全的更新的内核模块的变色龙散列(即从data'和aux'获得的测试散列)与屏幕内核模块(3.3)的变色龙散列(8.3)ch相同,因此,屏幕内核模块(3.3)的安全的更新的内核模块的变色龙散列是有效的,并且因此,可以对屏幕内核模块(3.3)的更新的内核模块的新版本进行安装。同样,如果测试散列(19)与变色龙散列(8.3)ch不同,则屏幕内核模块(3.3)的安全的更新的内核模块的变色龙散列是无效的。
Claims (11)
1.一种计算机实现的方法(102),其用于安全更新电子设备(200)的至少一个安全的更新的内核模块(3.4”),从而避免内核开发者的干预,其中,所述电子设备(200)包括操作系统和认证的内核结构(1),所述认证的内核结构(1)包括:
内核元数据(2),其包括:
至少一个内核模块(3.1,3.2,3.3,3.4)的至少一个内核模块公共密钥(2.1,2.2,2.3,2.4),其中,每个内核模块公共密钥(2.1,2.2,2.3,2.4)对应于内核模块私有密钥,以作为对应的内核模块公共密钥和私有密钥的内核模块密钥对,以及
内核模块根散列(2.5),其包括默克尔树(10)的根散列,
内核数据(3),其包括:
内核体数据(3'),
至少一个内核模块(3.1,3.2,3.3,3.4),其中,内核模块(3.1,3.2,3.3,3.4)与一个内核模块密钥对相关联,
内核元数据签名(4),
内核体数据签名(5),
其中,所述方法包括以下步骤:
a)由计算机(100)提供根据以下计算机实现的方法(101)生成的安全的更新的内核模块,
i)由计算机(100)将内核模块(3.4)的变色龙散列(8.4)、所述内核模块(3.4)的内核模块私有密钥和所述内核模块(3.4)的更新的内核模块(3.4')插入(12)变色龙散列碰撞函数中,从而获得碰撞数据(13),
其中,所述变色龙散列(8.4)是所述默克尔树(10)的叶节点,并且所述碰撞数据(13)为使得进行以下的碰撞数据:当将所述碰撞数据与所述更新的内核模块(3.4')进行组合并且使用变色龙散列函数ChamHash对所述组合进行散列化时,结果等于所述内核模块(3.4)的所述变色龙散列(8.4),
ii)由所述计算机(100)将所述更新的内核模块(3.4')与所述碰撞数据(13)进行组合(14),从而获得安全的更新的内核模块(3.4”),
b)由所述计算机(100)将所述安全的更新的内核模块(3.4”)发送(15)至所述电子设备(200),
由所述电子设备(200)仅在内部将所述安全的更新的内核模块(3.4”)、对应的内核模块公共密钥(2.4)以及所述内核模块(3.4)的变色龙散列(8.4)插入(18)变色龙散列验证函数中,从而获得测试散列(19),
如果所述测试散列(19)与所述内核模块(3.4)的所述变色龙散列(8.4)不同,则向所述电子设备(200)的操作系统通知所述安全更新内核模块是无效的,
如果所述测试散列(19)等于所述内核模块(3.4)的所述变色龙散列(8.4),则向所述电子设备(200)的所述操作系统通知(20)所述安全更新内核模块是有效的,并且继续步骤c),
c)由所述电子设备(200)仅在内部将所述安全的更新的内核模块(3.4”)安装(16)到更新所述内核模块(3.4)的所述内核数据(3)中。
2.根据权利要求1所述的计算机实现的方法,其中,所述变色龙散列碰撞函数包括无密钥泄露的变色龙散列函数。
3.根据前述权利要求中任一项所述的计算机实现的方法,其中,所述计算机(100)包括一个内核模块密钥对。
4.根据前述权利要求中任一项所述的计算机实现的方法,其中,在步骤a)之前的先前步骤中,所述方法包括以下步骤:
由所述计算机(100)生成至少一个内核模块密钥对,
由所述计算机(100)将所述至少一个内核模块公共密钥(2.1,2.2,2.3,2.4)发送至所述电子设备(200),
由所述计算机(100)将所述至少一个内核模块私有密钥发送至至少一个外部实体,以及
由所述至少一个外部实体接收并且存储所述至少一个内核模块私有密钥,
由所述电子设备(200)接收并且存储所述至少一个内核模块公共密钥(2.1,2.2,2.3,2.4)。
5.根据前述权利要求1至3中任一项所述的计算机实现的方法,其中,在步骤a)之前的先前步骤中,所述方法包括以下步骤:
由外部实体生成至少一个内核模块密钥对,
由所述外部实体将所述至少一个内核模块公共密钥(2.1,2.2,2.3,2.4)发送至所述电子设备(200),
由所述外部实体将所述至少一个内核模块私有密钥发送至所述计算机(100),
由所述计算机(100)接收并且存储所述至少一个内核模块公共密钥(2.1,2.2,2.3,2.4),
由所述计算机(100)接收并且存储所述至少一个内核模块私有密钥。
6.根据前述权利要求中任一项所述的计算机实现的方法,其中,通过电信网络TN执行任何发送,并且其中,优选地使用传输层安全性TLS来加密任何发送。
7.根据前述权利要求中任一项所述的计算机实现的方法,其中,执行以下步骤来在所述电子设备(200)中计算所述内核模块根散列(2.5):
将每个内核模块(3.1,3.2,3.3,3.4)及其对应的内核模块公共密钥(2.1,2.2,2.3,2.4)插入所述变色龙散列函数ChamHash中,从而获得每个内核模块(3.1,3.2,3.3,3.4)的变色龙散列(8.1,8.2,8.3,8.4),
对每个所获得的变色龙散列(8.1,8.2,8.3,8.4)成对地进行散列化,从而获得每个散列化的散列(9.1,9.2),
对所述散列(9.1,9.2)成对地进行散列化,直到获得所述内核模块根散列(2.5)为止。
8.根据前述权利要求中任一项所述的计算机实现的方法,其中,如果所述测试散列与所述内核模块(3.4)的所述变色龙散列(8.4)不同,则所述方法还包括删除(21)所述安全的更新的内核模块(3.4”)。
9.一种用于安全更新至少一个内核模块的系统,所述系统包括:
服务器,其被配置成当根据前述权利要求中任一项所述的方法中的方法步骤被引用到计算机(100)时执行所述方法中的所述方法步骤,
通过电信网络TN与所述服务器通信的电子设备(200),所述电子设备(200)被配置成当根据前述权利要求中所述的方法步骤被引用到所述电子设备(200)时执行任一所述方法步骤。
10.一种计算机程序,所述计算机程序用于安全更新电子设备(200)的至少一个内核模块,所述计算机程序包括指令,当计算机(100)和电子设备(200)执行所述程序时所述指令使所述计算机(100)和所述电子设备(200)执行前述权利要求1至8中任一项的计算机实现的方法中的步骤。
11.一种计算机可读介质,其包括指令,所述指令在由计算机(100)和电子设备(200)执行时使所述计算机(100)和所述电子设备(200)执行前述权利要求1至8的方法中的步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP17382635.5 | 2017-09-22 | ||
EP17382635.5A EP3460700A1 (en) | 2017-09-22 | 2017-09-22 | Authentication of software update modules using chameleon hashing. |
PCT/EP2018/075447 WO2019057810A1 (en) | 2017-09-22 | 2018-09-20 | SECURE LAUNCH OF CORE MODULES |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111433771A true CN111433771A (zh) | 2020-07-17 |
Family
ID=60009564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880074889.4A Pending CN111433771A (zh) | 2017-09-22 | 2018-09-20 | 内核模块的安全引导 |
Country Status (10)
Country | Link |
---|---|
US (1) | US11514170B2 (zh) |
EP (2) | EP3460700A1 (zh) |
CN (1) | CN111433771A (zh) |
AR (1) | AR113125A1 (zh) |
CO (1) | CO2020004069A2 (zh) |
ES (1) | ES2890399T3 (zh) |
MX (1) | MX2020003253A (zh) |
PE (1) | PE20210546A1 (zh) |
UY (1) | UY37887A (zh) |
WO (1) | WO2019057810A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112292678A (zh) * | 2019-01-04 | 2021-01-29 | 百度时代网络技术(北京)有限公司 | 用于验证将要由主机系统的数据处理加速器执行的内核对象的方法与系统 |
CN110086631B (zh) * | 2019-04-29 | 2021-06-08 | 电子科技大学 | 一种可更新变色龙哈希函数的方法 |
WO2020231418A1 (en) | 2019-05-15 | 2020-11-19 | Hewlett-Packard Development Company, L.P. | Update signals |
US20230224165A1 (en) * | 2020-06-02 | 2023-07-13 | Nec Corporation | Signature verification system, signature apparatus, signature verification method, and program |
WO2021245806A1 (ja) * | 2020-06-02 | 2021-12-09 | 日本電気株式会社 | 署名検証システム、署名検証方法、およびプログラム |
CN112565479B (zh) * | 2020-12-07 | 2023-07-11 | 北京明略昭辉科技有限公司 | 设备id的动态生成方法、系统、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6108783A (en) * | 1998-02-11 | 2000-08-22 | International Business Machines Corporation | Chameleon hashing and signatures |
CN101038545A (zh) * | 2006-11-10 | 2007-09-19 | 清华大学 | 操作系统内核构件跨域运行的方法 |
CN107077567A (zh) * | 2014-10-13 | 2017-08-18 | 微软技术许可有限责任公司 | 标识计算设备上的安全边界 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5471444B2 (ja) * | 2007-08-29 | 2014-04-16 | 日本電気株式会社 | コンテンツの公開システム及び該システムにおける公開コンテンツの保証方法 |
JP2010050760A (ja) * | 2008-08-22 | 2010-03-04 | Hitachi Ltd | コンテンツ保護装置、および、コンテンツ利用装置 |
US8589302B2 (en) | 2009-11-30 | 2013-11-19 | Intel Corporation | Automated modular and secure boot firmware update |
US9369867B2 (en) | 2012-06-29 | 2016-06-14 | Intel Corporation | Mobile platform software update with secure authentication |
JP2014241465A (ja) * | 2013-06-11 | 2014-12-25 | 株式会社東芝 | 署名生成装置、署名生成方法、署名生成プログラム、及び電力使用量計算システム |
KR102139546B1 (ko) * | 2014-03-11 | 2020-07-30 | 삼성전자주식회사 | 펌웨어 검증 기능을 갖는 모바일 시스템 그리고 그것의 펌웨어 업데이트 방법 |
US10326753B2 (en) * | 2016-06-23 | 2019-06-18 | International Business Machines Corporation | Authentication via revocable signatures |
-
2017
- 2017-09-22 EP EP17382635.5A patent/EP3460700A1/en not_active Withdrawn
-
2018
- 2018-09-19 UY UY0001037887A patent/UY37887A/es not_active Application Discontinuation
- 2018-09-20 AR ARP180102700A patent/AR113125A1/es active IP Right Grant
- 2018-09-20 MX MX2020003253A patent/MX2020003253A/es unknown
- 2018-09-20 PE PE2020000604A patent/PE20210546A1/es unknown
- 2018-09-20 CN CN201880074889.4A patent/CN111433771A/zh active Pending
- 2018-09-20 ES ES18769211T patent/ES2890399T3/es active Active
- 2018-09-20 EP EP18769211.6A patent/EP3685290B1/en active Active
- 2018-09-20 US US16/648,411 patent/US11514170B2/en active Active
- 2018-09-20 WO PCT/EP2018/075447 patent/WO2019057810A1/en active Application Filing
-
2020
- 2020-03-31 CO CONC2020/0004069A patent/CO2020004069A2/es unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6108783A (en) * | 1998-02-11 | 2000-08-22 | International Business Machines Corporation | Chameleon hashing and signatures |
CN101038545A (zh) * | 2006-11-10 | 2007-09-19 | 清华大学 | 操作系统内核构件跨域运行的方法 |
CN107077567A (zh) * | 2014-10-13 | 2017-08-18 | 微软技术许可有限责任公司 | 标识计算设备上的安全边界 |
Also Published As
Publication number | Publication date |
---|---|
EP3685290B1 (en) | 2021-07-21 |
CO2020004069A2 (es) | 2020-06-19 |
AR113125A1 (es) | 2020-01-29 |
WO2019057810A1 (en) | 2019-03-28 |
US20200265141A1 (en) | 2020-08-20 |
EP3685290A1 (en) | 2020-07-29 |
US11514170B2 (en) | 2022-11-29 |
PE20210546A1 (es) | 2021-03-17 |
ES2890399T3 (es) | 2022-01-19 |
UY37887A (es) | 2019-04-30 |
MX2020003253A (es) | 2020-09-18 |
EP3460700A1 (en) | 2019-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111433771A (zh) | 内核模块的安全引导 | |
EP3458999B1 (en) | Self-contained cryptographic boot policy validation | |
EP3382933B1 (en) | Using a trusted execution environment as a trusted third party providing privacy for attestation | |
EP3637297A1 (en) | Securing firmware | |
JP6371919B2 (ja) | セキュアなソフトウェアの認証と検証 | |
US9405912B2 (en) | Hardware rooted attestation | |
JP7113123B2 (ja) | デバイス、及び方法 | |
US10853472B2 (en) | System, apparatus and method for independently recovering a credential | |
CN101657792A (zh) | 可信部件更新系统和方法 | |
CN110287654A (zh) | 使用硬件信任根的媒体客户端装置鉴权 | |
CN112784278A (zh) | 一种计算机系统的可信启动方法、装置及设备 | |
US20170046513A1 (en) | Firmware authentication | |
US20220209946A1 (en) | Key revocation for edge devices | |
EP3020159A1 (en) | Electronic signature system | |
Nyström et al. | UEFI NETWORKING AND PRE-OS SECURITY. | |
US20240126886A1 (en) | Trusted Computing for Digital Devices | |
CN118591803A (zh) | 使用经授权子密钥进行安全启动的装置和方法 | |
JP2024501395A (ja) | 車両の安全始動方法、安全始動装置、電子制御ユニット及び記憶媒体 | |
KR20200073103A (ko) | 클라이언트 장치, 발급 장치 및 서버의 통신 방법 | |
CN118537017B (zh) | 一种基于指定验证方非交互零知识证明的交易验证方法 | |
JP7559841B2 (ja) | 情報処理装置、プログラム実行システム、情報処理方法、及びプログラム | |
KR102721695B1 (ko) | 데이터 처리 | |
CN118259947A (zh) | Ota升级包保护方法、装置、设备及可读存储介质 | |
CN116527240A (zh) | 用于灵活的后量子信任布建和更新的系统和方法 | |
CN115398856A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200717 |
|
WD01 | Invention patent application deemed withdrawn after publication |