一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于利用至少一个导出密钥配置安全模块的方法与流程

2021-11-15 17:19:00 来源:中国专利 TAG:

用于利用至少一个导出密钥配置安全模块的方法


背景技术:

1.现代数据处理系统为了密码操作、如加密数据或系统或(软件)模块彼此间的验证需要所谓的信任锚(trust anchor)。信任锚或信任点形成用于保护设备、例如iot(物联网)设备或现场设备或数据处理系统、诸如嵌入式系统或控制计算机的基础。能够借助信任锚保证在系统启动时和/或在持续运行期间信任数据处理系统的不妥协的运行。信任锚可以包括密码密钥,所述密码密钥例如能够被用于安全引导过程或用于认证数据处理系统或用于使用数据处理系统的密钥文件或用于确认数据处理系统的运行状态或用于检查更新文件(固件更新(firmware update))。因此,术语“锚”(德语:anker)基于:数据处理系统的安全或信任机构概念使用信任锚作为基础,并且在此假定或必须假定信任锚本身是安全的和不妥协的。
2.已知的信任锚例如是由iso/iec 11889在2009年详细说明的可信平台模块(tpm),该可信平台模块存在于每个现代pc中并且由现代操作系统假定对于确定的密码操作是强制性的。例如,广泛使用的操作系统“windows”的硬盘加密“bitlocker”基于tpm。然而,可以设想信任锚的各式各样的其他实现方案、例如密码控制器、认证模块或集成到cpu中的安全元件(secure element)。
3.可能的是运行具有n≥2个密钥的安全模块。对于所有1<i≤n,第i代的密钥可以迭代地从第i

1代的密钥导出,并且存储在存储区段i中。因此可以执行按类别排序的密码操作,其中第k个类别的密码操作利用存储在第k个存储区段中的密钥来执行,其中1≤k≤n。
4.其他密钥可以例如借助密钥导出函数(key derivation function,kdf)从所存储的密钥中导出。密钥的导出基于静态属性。例如,密钥导出根据软件二进制文件、文件系统中的固定标签或固件中的硬编码的导出值进行。如果攻击者例如通过利用软件弱点获得对系统的一部分的控制,则导出的密钥没有得到充分保护。尤其,由另外的软件组件使用的密钥可能在任何时刻由攻击者重建(导出)。


技术实现要素:

5.因此,本发明的任务是,说明一种用于处理密钥的方法,该方法相对于开头提到的方法具有防攻击者的改进的保护。
6.本发明的任务是相对于上面提到的现有技术改进方法和装置或设施或设备。
7.该任务通过在独立权利要求中说明的特征来解决。在从属权利要求中呈现了本发明的有利的改进方案。
8.本发明要求保护一种用于利用至少一个导出密钥配置安全模块的方法,具有以下步骤:
‑ꢀ
提供密钥;
‑ꢀ
从所提供的密钥或从事先从所提供的密钥导出的密钥导出其他密钥,其特征在于,可改变的或可变的数字指纹作为密钥导出参数进入导出中或将可改变的或可变的数字指纹作为密钥导出参数考虑到导出中,所述数字指纹根据与安全模块通
信的运行时环境的可测量的当前的运行时配置形成。
9.在此,在运行安全模块的运行时环境的运行时期间进行安全模块的配置。由此根据实际的当前的运行时配置重新配置安全模块。这可以一次性地、优选地但是重复地在运行时环境的运行时期间进行。优选地,在执行密钥导出时确定运行时环境的分别当前的指纹,并且据此进行密钥导出。在此,优选地同样在执行密钥导出时进行用于确定指纹的测量。测量可以通过运行时环境本身进行并提供给安全模块。为此,优选地在运行时环境中除了另外的进程之外执行特定指纹测量进程(或指纹测量进程任务)。测量进程可以例如通过管理程序与另外的进程隔离。然而,测量可以在多核运行时环境的单独的计算核(core)上、在单独的测量装置、例如单独的微控制器上或通过安全模块本身进行。
10.安全模块可以是设备的一部分。所提供的密钥可以是主密钥或初始密钥或从其导出。在本发明的设计方案中,可以实施初始密钥,使得任何另外的访问都被阻止或在物理上是不可能的。
11.运行时环境例如通过cpu或计算设施形成,所述cpu或计算设施响应或控制安全模块或与安全模块通信,其中通过根据本发明的方法来配置安全模块。
12.可以检测常规的、运转的运行时环境的运行时属性并用作密钥导出的输入参数。可测量的或可监控的当前的运行时配置提供在系统被操纵时发生变化的指纹。操纵例如是附加进程的启动或运行数据的完整性信息。指纹在运行时动态地确定,并作为密钥导出参数进入密钥导出函数中或作为密钥形成参数进入密钥生成函数中。这具有以下优点:在运行时完整性信息被改变的情况下不能确定未被操纵的状态的密码密钥。
13.上面提到的导出其他密钥的步骤可以(迭代地)重复一次或多次。可以借助所导出的其他密钥来执行至少一个密码操作。密钥变更事件例如可以是用于密钥更新的特定命令或上级数据处理系统到另一个(运行)状态的变更。密码操作的执行也可以用作密钥变更事件,这允许实施密钥以仅仅一次性地用于操作(例如用于数据的加密),其中这些密钥紧接着还可以可供另外的操作(例如解密或验证)使用。
14.可测量的运行时配置可以包括运行时环境的至少一个可确定的状态或运行时环境的至少一个由可监控的事件发生所触发的状态。在这种情况下,运行时环境的状态和/或事件发生是运行时环境在确定的时刻的可测量的运行时属性。该运行时配置可以形成确保完整性的可变的指纹(运行时完整性指纹(runtime integrity fingerprint))。在确定的时刻可测量例如hw计数器、实时时钟、元信息(关于正在进行的进程或关于文件系统、文件属性、专用文件、状态确定的安全机制、静态数据、文件内容、进程名称、进程编号、进程优先级、看门狗、基准函数、外围设备的状态、电能消耗简档、电磁辐射的简档(profil)等。
15.有利地,单向函数被用于密钥导出。单向函数是如下函数,在所述函数的情况下只能以(关于计算能力和存储器的)非常高的耗费从导出密钥中推断出基础密钥。
16.可监控的或可测量的运行时属性既是静态属性(例如只读文件系统的校验和),也是动态属性(例如自上电复位(por)起系统的当前运行时)。因此,相同的密钥的重复导出与运行时环境的状态相关联。如果或者由于运行阶段的所设置的变更或者由于因攻击引起的变化,该状态发生变化,则导出另外的密钥。侧信道信息也可以作为指纹来测量,例如时间行为(例如缓存时序)或电能消耗简档。
17.攻击(在运行时出现的变化,例如在利用软件弱点之后启动有害进程)可能导致运
行时环境的运行时属性的改变。如果这些在密钥导出中予以考虑,则这种攻击自动地导致不再能够导出与在设备的完整状态中相同的密钥,并且因此关键数据(例如加密文件)更好地被保护以防攻击者。
18.本发明此外涉及安全模块、设备以及计算机程序产品。
19.所要求保护的安全模块能够利用至少一个导出密钥来配置,该安全模块具有:
‑ꢀ
用于所提供的密钥的接收单元;
‑ꢀ
用于从所提供的或从事先从所提供的密钥导出的密钥导出其他密钥的导出单元,其特征在于产生单元,该产生单元被设计为借助与安全模块通信的运行时环境的可测量的当前的运行时配置来形成可改变的或可变的指纹,所述指纹作为密钥导出参数进入导出中。
20.具有运行时环境的设备具有这种安全模块,其特征在于
‑ꢀ
用于提供密钥的提供单元,以及
‑ꢀ
用于测量当前的运行时配置的测量单元,借助所述运行时配置形成可变的指纹,所述指纹作为密钥导出参数进入其他密钥从所提供的密钥或从事先从所提供的密钥导出的密钥的导出中。
21.包括计算机可执行的指令的计算机程序产品,所述指令在加载到设备(例如计算机)中时被设计为执行根据上面所提到的类型和实施方式的方法。
22.此外,提供一种包括程序代码的计算机程序(产品),所述程序代码能够由至少一个处理器执行并且所述程序代码引起所述至少一个处理器执行根据本发明的(运行)方法和其实施方式。计算机程序可以在上面提到的类型的设备/模块或装置上运行或作为计算机程序产品存储在计算机可读介质上。
23.装置、设施或设备、模块和计算机程序(产品)可以根据前面提到的方法的改进方案/实施方式和其改进方案/实施方式来构成,反之亦然。
附图说明
24.本发明的上面所描述的特性、特征和优点以及如何实现这些特性、特征和优点的方式和方法结合实施例的以下描述而变得更清楚且更明白可理解,所述实施例结合图更详细地予以解释。在此,以示意图示出:唯一的图示出设备d的示意图。应指出的是,结合设备对本发明的解释纯粹示例性地并且在不将本发明限制于这种设备的情况下进行。
具体实施方式
25.在该图中示出设备d。示出运行时环境r的运行时属性、划分为n个不同系统状态s1至sn以及借助主密钥mk导出相应的密钥之间的关系。基础功能通过运行时测量密钥导出函数(runtime measurement key derivation function)rm

kdf实现,该运行时测量密钥导出函数集成在安全模块sd中,所述安全模块集成到设备d中或与设备d耦合。基础功能也可以分布式地实现,即运行时测量密钥导出函数rm

kdf的第一部分可以集成在安全模块上,运行时测量密钥导出函数rm

kdf的第二部分可以与安全模块耦合。
26.系统或运行时状态1至n在一个或多个组件的运行时属性、例如在密钥导出的时刻运行的进程p、文件系统属性fs和硬件状态hw、诸如硬件计数器的值方面不同。如果应导出密钥,则从运行时环境r中得到rm

kdf测量值(例如文件的单向值或哈希值)。应测量运行时环境的哪些部分在此通过测量规则系统 mp(measurement policy(测量策略))预给定。测量值m的全部(该全部例如可以利用连续的哈希值记录)紧接着与主密钥mk一起用作密钥导出函数kdf的输入参数,例如基于hmac

sha256。如果所测量的运行时组件的状态由于攻击、例如由于攻击者启动未在该状态中设置的进程而不再对应于预期状态,则也改变导出密钥。因此,利用密钥保护的对象只能在运行时环境的被定义为有效的状态中访问。
27.状态1至n隐含地通过测量策略(测量规则)mp和所测量的运行时组件的状态来定义。测量策略mp可以针对每个状态是不同的或针对多个状态是相同的。因此可以在设备d上使用多个rm

kdf,所述rm

kdf使用不同的测量策略、导出函数kdf和/或主密钥测量策略mp、用于测量值m的全部的测量功能、和密钥导出函数kdf原则上可以在软件或硬件组件中实现。在此,被用于导出的主密钥mk可以存储在硬件中(例如基于硬件的信任锚)或以软件(例如作为混淆例程的一部分)实施。
28.在下文中示出用于可测量的运行时属性的多个可能性。这些可能性可以任意地被组合为测量策略mp。
29.•
自例如借助硬件计数器或实时时钟(realtime clock)的复位起设备d的直到现在的运行时。这里也可以使用软件、例如 linux内核(/proc/uptime)的直到现在的运行时。
30.•ꢀ
性能运行时数据(例如cpu负载、内存利用率、输入/输出接口、例如网络接口的利用率、dma传输、中断频率)。
31.•ꢀ
电能消耗简档、电磁辐射的简档(例如时间变化、频谱)。
32.•ꢀ
关于正在运行的进程p的元信息,例如用户(进程在该用户下运行),哪个进程已启动该进程(进程树/进程的父子关系/“进程链”)、进程优先级,进程编号,进程的selinux域、名称空间和进程运行的cgroups。
33.•ꢀ
当前附加的文件系统及其属性(例如只读)。因此,也可以根据现有的可替换的外围设备模块(诸如usb加密狗)导出密钥。
34.•ꢀ
反映当前系统的完整性的专用文件。例如,安全关键事件可以通过基于主机的入侵检测系统(hids)被写入特定文件中,所述文件在密钥导出的过程中被一起测量。另一可能性是将限制(或甚至完全阻止)登录到系统的配置数据一起包括到测量中:在改变配置使得登录再次可能(尤其以便能够在运行时“从内部”观测系统)的攻击的情况下,于是仅还导出错误的密钥。
35.•ꢀ
确定的安全机制的状态可以被一起包括。因此,在基于linux的系统上,只有当一个或多个安全机制处于确定的状态中(例如selinux处于“强制”模式中)时,才能够导出对于应用程序而言正确的密钥。
36.•ꢀ
可以一起测量静态数据、诸如硬件id或文件系统中的配置文件。如果运行时测量密钥导出函数rm

kdf在另一环境中被执行(另外的硬件和因此硬件id、另外的配置),或者如果被假定为静态的文件被操纵,则因此导出另外的密钥。
37.•ꢀ
可以检查确定的文件内容的存在,所述文件内容例如应该从设备的提供阶段(provisioning

phase)就存在。
38.•ꢀ
文件系统的元信息,例如确定的部分的大小、访问或改变时间、权限、用户/所有者、符号链接的目标等。
39.•ꢀ
可以一起包括如何使用或调用运行时测量密钥导出函数rm

kdf。因此该运行时测量密钥导出函数可以例如一起包括从所调用的组件开始直至进程树的根的进程链。在此,在进程链中包含的进程的名称可以例如连续地被散列并被用作密钥导出参数的一部分。因此可以确保正确的密钥只能在所设置的调用的过程中导出。
40.•ꢀ
可以一起包括看门狗(硬件或软件功能),其监控运行时环境的完整性。
41.可以测量专门设置的基准函数的执行时间,并将该执行时间(以针对正常测量方差的一定的余量)一起包括到导出中。如果这种函数的执行例如需要250ms,标准偏差(sigma)为10ms,则在具有5

sigma可靠性的未被操纵的设备上(整数)除以100ms的情况下得出值2。而使攻击者在所模拟或所仿真的环境中复制导出密钥变得困难,因为现在附加地还必须足够准确地(在示例中: /

20%)模仿设备的性能。
42.应用程序(其中应用程序在该图中例如用ap表示)可以在运行时借助库来导出密钥,以便借助导出密钥执行密码操作。这种操作能够保护和访问安全关键对象、例如加密的文件系统或用于tls连接的私钥。如果应导出密钥,则运行时测量密钥导出函数 rm

kdf使用测量功能和测量策略mp,以便在一个或多个确定的时刻测量或确定运行时环境的其中所规定的部分或所规定的事件并且规定为运行时配置。通过测量功能在使用专用内核接口的情况下,将关于当前附加的文件系统(mounts(加载的文件系统))、某些外围设备模块的状态(例如fpga、gpio、mac地址)、操作系统的直到现在的运行时(uptime(正常运行时间))、来自文件系统(filesystem)的静态内容和调用者的进程链中的进程的名称的信息聚合正在运行的哈希值中。紧接着,将聚合值用作具有主密钥mk的密钥导出函数的密钥导出参数。导出密钥k1至kn视进行调用的应用程序而定是不同的,因为这些密钥属于不同的进程链。
43.由运行时配置形成的可变的指纹fp和作为密钥导出参数的考虑可以视为安全模块的配置。应用程序可以将这些导出密钥例如用于访问私有文件系统。如果攻击者尝试借助其他进程同样借助于运行时测量密钥导出函数rm

kdf导出密钥,则该密钥将是不同的。不仅离线攻击而且在线攻击通常改变运行时环境的动态属性(例如配置文件、附加的文件系统的选项)。因此,使从有效状态访问密钥变得非常困难。
44.本发明具有以下优点:对密钥的访问可以与运行时环境的静态和尤其动态属性的当前状态相关联。在干预运行时环境(物理攻击、远程攻击)的情况下,密钥导出可能受到影响,并且因此不再能够在不可信的环境中导出有效密钥。此外,状态相关性可以有意地被用于以软件在不同运行时阶段提供不同的密钥。这特别具有以下优点:在妥协的(kompromittiert)运行时阶段的情况下,不能导出当前阶段以及另外的阶段的密钥。
45.尽管详细地通过优选实施例更详细地图示和描述了本发明,但本发明并不受所公开的示例所限制并且另外的变型方案可以由本领域技术人员由此导出,而不离开本发明的保护范围。
46.上面所描述的进程或方法流程的实施可以根据指令进行,所述指令存在于计算机可读的存储介质上或易失性计算机存储器中(在下文中概括地称为计算机可读的存储器)。计算机可读的存储器例如是易失性存储器、如缓存、缓冲器或ram以及非易失性存储器、如可换载体(wechseldatentr
ä
ger)、硬盘等。
47.上面所描述的功能或步骤在此可以以至少一个指令集的形式存在于计算机可读的存储器中/上。功能或步骤在此并不与确定的指令集或指令集的确定的形式或确定的存储介质或确定的处理器或确定的执行方案相关联,而是可以通过软件、固件、微代码、硬件、处理器、集成电路等单独地或以任意的组合执行。在此,可以使用极大不同的处理策略,例如通过单个处理器的串行处理或多处理或多任务或并行处理等。
48.所述指令可以存放在本地存储器中,但是也可能的是,将指令存放在远程系统上并且经由网络访问所述远程系统。
49.设备d可以具有一个或多个处理器。术语“处理器”、“中央信号处理装置”、“控制单元”或“数据评估装置”包括最广义的处理装置,即例如服务器、通用处理器、图形处理器、数字信号处理器、专用集成电路(asic)、可编程逻辑电路、如fpga、分立模拟或数字电路和其任意组合,包括所有另外的为本领域技术人员已知的或在未来开发的处理装置。处理器在此可以由一个或多个装置或设施或单元组成。如果处理器由多个装置组成,则这些装置可以被设计或配置为并行地或顺序地处理或执行指令。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献