内核模块的安全引导制造技术

技术编号:24949826 阅读:21 留言:0更新日期:2020-07-18 00:02
一种用于提供电子设备的安全的更新的内核模块的计算机实现的方法,其中,该方法包括以下步骤:由计算机将内核模块的变色龙散列、内核模块的内核模块私有密钥和内核模块的更新的内核模块插入变色龙散列碰撞函数中,从而获得碰撞数据,由计算机将更新的内核模块与碰撞数据进行组合,从而获得安全的更新的内核模块。另外地,还描述了一种用于安全更新电子设备的至少一个内核模块的计算机实现的方法、一种包括服务器和电子设备的系统、计算机程序和计算机可读介质。

【技术实现步骤摘要】
【国外来华专利技术】内核模块的安全引导
本专利技术属于内核模块在操作系统的内核中更新的
具体地,本专利技术与内核模块更新的认证委派有关。更具体地,本专利技术涉及用于提供安全的更新的内核模块的方法,其中,可信第三方可以在无需内核开发者的干预的情况下安全更新所述内核模块。
技术介绍
当前的电子设备实施安全引导过程,以确保设备的状态在引导时可以是可信的。这包括通过加密机制验证引导存根、固件模块和内核模块。通常,电子设备具有写入存储器的只读区域中的根公共密钥。该根公共密钥用于验证安装在电子设备中的固件模块的签名,该签名又包括附加密钥、用于对内核进行签名的内核私有密钥的公共部分。所产生的签名被写入电子设备的存储器的读写部分中。与根公共密钥相关联的私有密钥通常由原始装备制造商、OEM或设备供应商控制,并且用于对内核进行签名的私有密钥由可以是与OEM或设备供应商相同的实体或可以是与OEM或设备供应商不相同的实体的固件开发者控制。因此,在安全引导期间,验证内核签名和固件签名正确无误就足以检查设备的固件部件和内核部件未被篡改。在此背景下,对内核所做的任何修改都需要使用内核私有密钥进行签名。具体地,内核模块向设备提供了由第三方多次开发的同样需要遵守这一要求的增强的功能。该过程迫使这些第三方严格遵循内核开发者的开发周期,从而无法在需要时发布其各自模块的更新,即使这些更新修复了重要的安全问题也如此。“Group-BasedAttestation:EnhancingPrivacyandManagementinRemoteAttestation(基于组的证明:加强远程证明中的隐私和管理)”公开了一种使用远程平台的证明方法。欧洲专利申请EP2157725A1公开了一种内容保护装置和内容利用装置。“Tree-formedVerificationDataforTrustedPlatforms(用于可信平台的树形验证数据)”公开了一种用于创建树形验证数据的方法。美国专利申请US2014/0365026A1公开了一种签名生成装置和方法。文献US20110131447A1公开了一种用于在无需电子设备的用户的干预的情况下自动地更新固件的方法。由于唯一允许更新固件的一方是内核开发者,因此已经由任何第三方执行的任何更新都应当被发送至内核开发者。因此,为了提供安全的固件,仍然需要内核开发者的干预,这延迟了任何重要的安全更新的修复。因此,需要提高更新电子设备中的内核模块的效率和敏捷性的方法。
技术实现思路
本专利技术通过根据权利要求1的用于安全更新电子设备的至少一个内核模块的计算机实现的方法、根据权利要求9的用于安全更新至少一个内核模块的系统、根据权利要求10的计算机程序和根据权利要求11的计算机可读介质,提供了一种针对前述问题的替选解决方案。在从属权利要求中,限定了本专利技术的优选实施方式。在本专利技术的第一创新方面,本专利技术提供了一种用于提供电子设备的安全的更新的内核模块的计算机实现的方法,其中,电子设备包括操作系统和认证的内核结构,该认证的内核结构包括:-内核元数据,其包括:至少一个内核模块的至少一个内核模块公共密钥,其中,每个内核模块公共密钥对应于内核模块私有密钥,以作为对应的内核模块公共密钥和内核模块私有密钥的内核模块密钥对,以及内核模块根散列,其包括默克尔树的根散列,-内核数据,其包括:内核体数据,至少一个内核模块,其中,内核模块与一个内核模块密钥对相关联,-内核元数据签名,-内核体数据签名,其中,该方法包括以下步骤,i)由计算机将内核模块的变色龙散列、内核模块的内核模块私有密钥和内核模块的更新的内核模块插入变色龙散列碰撞函数中,从而获得碰撞数据,其中,碰撞数据为使得进行以下的碰撞数据:当将碰撞数据与更新的内核模块进行组合并且使用变色龙散列函数对所述组合进行散列化时,结果等于内核模块的变色龙散列,ii)由计算机将更新的内核模块与碰撞数据进行组合,从而获得安全的更新的内核模块。认证的内核结构是包括指令的内核结构,所述指令允许操作电子设备的硬件元件和软件元件。根据电子设备的类型,内核模块的数目可以变化,并且因此内核模块公共密钥的数目也可以变化。当内核结构元件的来源已经被验证时,该内核结构被认证。在整个文献中,“电子设备”将被理解为被配置成操作操作系统的任何设备,例如移动设备、计算机、服务器、智能电话、平板电脑、PDA等。电子设备包括操作系统,该操作系统被配置成管理包括在电子设备中的硬件并且管理由所述硬件使用的数据。另外地,内核模块将被理解为被配置成控制电子设备的硬件功能的计算机程序。作为任何计算机程序,内核模块可以具有其他更新或版本。因此,在整个文献中,“更新的内核模块”将被理解为内核模块的先前版本的新版本。内核元数据包括与至少一个计算机有关的公共密钥。该计算机可以是开发固件或更新内核模块的第三方。该计算机可以另外是服务器或第二电子设备,其中,内核模块的新版本被存储和/或更新并且还包括其对应的私有密钥。该至少一个计算机是与内核开发者和原始装备制造商不同的元件。每个内核模块公共密钥与包括在内核数据中的每个内核模块有关。例如,屏幕内核模块控制电子设备的屏幕的功能,并且它与仅一个内核模块公共密钥有关,即,与屏幕内核模块公共密钥有关。每个内核模块公共密钥具有对应的内核模块私有密钥,该内核模块私有密钥又与计算机有关,这被称为形成非对称密码系统的内核模块的密钥对。作为非对称密码系统,其应当被理解为以下密码系统:其中私有密钥由计算机保持私密,而公共密钥是公用的并且可以被存储在验证的内核结构中。在一个实施方式中,内核元数据包括多个内核模块公共密钥,并且内核模块公共密钥可以被引用到仅一个计算机。在该实施方式中,计算机被配置成存储和/或更新与内核模块公共密钥有关的内核模块,并且计算机具有与所述内核模块对应的内核模块的密钥对。在其他实施方式中,存在多个计算机,每个计算机可以包括多个内核模块私有密钥。由于每个内核模块私有/公共密钥与一个内核模块有关,因此每个计算机都被配置成存储和/或更新与内核模块公共密钥有关的内核模块。在一个实施方式中,计算机包括内核模块、其更新的内核模块、内核模块的变色龙散列和内核模块私有密钥,其中,作为更新的内核模块,其应当被理解为内核模块的新版本。在该实施方式中,计算机是产生内核模块的新版本的同一实体,即,计算机是内核模块的开发者。在这种情况下,计算机通常包括已经被开发出的每个版本,并且由于计算机已经从内核开发者或OEM接收到内核模块密钥对,因此它还能够计算任何变色龙散列。在其他实施方式中,计算机生成内核开发者或OEM所接受的内核模块密钥对。在其他实施方式中,该计算机实现的方法在步骤i)之前包括接收内核模块、其更新的内核模块、内核模块的变色龙散列和内核模块的私有密钥的先前步骤。内核模块根散列是默克尔树的根散列。另外地,内核模块根散列是从内核数据获得的;因此,将检测到内核模块的任何非法修改本文档来自技高网
...

【技术保护点】
1.一种计算机实现的方法(102),其用于安全更新电子设备(200)的至少一个安全的更新的内核模块(3.4”),从而避免内核开发者的干预,其中,所述电子设备(200)包括操作系统和认证的内核结构(1),所述认证的内核结构(1)包括:/n内核元数据(2),其包括:/n至少一个内核模块(3.1,3.2,3.3,3.4)的至少一个内核模块公共密钥(2.1,2.2,2.3,2.4),其中,每个内核模块公共密钥(2.1,2.2,2.3,2.4)对应于内核模块私有密钥,以作为对应的内核模块公共密钥和私有密钥的内核模块密钥对,以及/n内核模块根散列(2.5),其包括默克尔树(10)的根散列,/n内核数据(3),其包括:/n内核体数据(3'),/n至少一个内核模块(3.1,3.2,3.3,3.4),其中,内核模块(3.1,3.2,3.3,3.4)与一个内核模块密钥对相关联,/n内核元数据签名(4),/n内核体数据签名(5),/n其中,所述方法包括以下步骤:/na)由计算机(100)提供根据以下计算机实现的方法(101)生成的安全的更新的内核模块,/ni)由计算机(100)将内核模块(3.4)的变色龙散列(8.4)、所述内核模块(3.4)的内核模块私有密钥和所述内核模块(3.4)的更新的内核模块(3.4')插入(12)变色龙散列碰撞函数中,从而获得碰撞数据(13),/n其中,所述变色龙散列(8.4)是所述默克尔树(10)的叶节点,并且所述碰撞数据(13)为使得进行以下的碰撞数据:当将所述碰撞数据与所述更新的内核模块(3.4')进行组合并且使用变色龙散列函数ChamHash对所述组合进行散列化时,结果等于所述内核模块(3.4)的所述变色龙散列(8.4),/nii)由所述计算机(100)将所述更新的内核模块(3.4')与所述碰撞数据(13)进行组合(14),从而获得安全的更新的内核模块(3.4”),/nb)由所述计算机(100)将所述安全的更新的内核模块(3.4”)发送(15)至所述电子设备(200),/n由所述电子设备(200)仅在内部将所述安全的更新的内核模块(3.4”)、对应的内核模块公共密钥(2.4)以及所述内核模块(3.4)的变色龙散列(8.4)插入(18)变色龙散列验证函数中,从而获得测试散列(19),/n如果所述测试散列(19)与所述内核模块(3.4)的所述变色龙散列(8.4)不同,则向所述电子设备(200)的操作系统通知所述安全更新内核模块是无效的,/n如果所述测试散列(19)等于所述内核模块(3.4)的所述变色龙散列(8.4),则向所述电子设备(200)的所述操作系统通知(20)所述安全更新内核模块是有效的,并且继续步骤c),/nc)由所述电子设备(200)仅在内部将所述安全的更新的内核模块(3.4”)安装(16)到更新所述内核模块(3.4)的所述内核数据(3)中。/n...

【技术特征摘要】
【国外来华专利技术】20170922 EP 17382635.51.一种计算机实现的方法(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)之前的先前步骤中,所述方法包...

【专利技术属性】
技术研发人员:热苏斯·迪亚兹维科哈维尔·莫雷诺莫利纳
申请(专利权)人:西班牙毕尔巴鄂比斯开银行
类型:发明
国别省市:西班牙;ES

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

1