在信息技术系统的至少一个系统组件中实现和使用加密材料的方法与流程

文档序号:37671274发布日期:2024-04-18 20:44阅读:22来源:国知局
在信息技术系统的至少一个系统组件中实现和使用加密材料的方法与流程

本发明涉及一种根据权利要求1的前序部分详细定义类型的一种在信息技术系统的至少一个系统组件中实现和使用加密材料的方法。


背景技术:

1、实现和使用加密材料的方法主要涉及这样一个事实,即在装有加密材料的信息技术系统的系统组件的生命周期的不同阶段,必须使用与相应系统组件或系统组件的子模块的当前安全级别相对应的加密材料。这尤其适用于车辆的carit安全领域,但并非完全如此。

2、现代车辆和其他系统的特点是越来越多的联网。车辆不仅连接到一般可访问的系统,如互联网,而且还连接到由车辆制造商或oem操作的专用系统,例如制造商自己的应用程序和制造商自己的服务器,通常也称为后端服务器。这些都是由制造商专门为自己的车队开发、销售和运营的。所有这些加在一起也被称为车辆生态系统。

3、在实践中,这样一个车辆生态系统中的各个系统组件之间的各种通信关系产生了大量新的接口和应用程序,所有这些接口和应用程序都必须通过适当的密码方法,如机制、协议等来保护。这些基本上从现有技术中已知的密码方法需要各种加密材料,例如非对称密钥对、对称密钥、证书、随机数、哈希值等。所有这些加密材料都是相互协调的,并且通常在车辆生态系统中的所有参与系统组件中被引入,并且必须由其使用,以便在其启动之前交换加密材料,甚至在运行期间也是如此。例如,加密材料的提供,即所谓的供应/配置,是在制造过程中进行的,但也可以在系统组件的操作期间进行。系统组件特别包括安装在车辆中的控制设备,但也包括其他组件,例如安装在车辆中的应用程序、智能手机上可用的oem应用程序、车辆外部设备等。

4、为了可靠地防止对受保护通信的干扰,必须区分开发阶段使用的加密材料和生产阶段使用的加密材料,即成品的实际使用。开发阶段的加密材料,以下也称为测试加密材料。在开发阶段,只要是机密加密材料,就只能使用此类测试加密材料。生产加密材料,特别是机密生产加密材料,必须在系统组件的整个生命周期中防止未经授权的访问。在理想情况下,应通过遵守特定的安全流程和在各自的开发部门和生产设施中使用特定的保护机制来确保这种保护。然而,在开发阶段,这通常是不够的,因为信息技术系统的各种组成部分通常没有或尚未在这一开发阶段实施或实现。

5、例如,所需的加密材料的安全生成还不能完全实施或测试。在某些情况下,尚未确保将加密材料从生成服务器(即所谓的加密材料服务器)安全地传输到系统制造商,例如供应商。将加密材料安全地引入系统组件尚未实施或尚未最终实施。此系统组件中加密材料的安全存储可能尚未实施,因为例如,目标系统尚未安装硬件安全模块(hardwaresecurity module;hsm),尽管这将在稍后阶段安装。在某些情况下,系统中加密材料的安全使用尚未实施,例如,因为测试和调试所需的开发接口是可用的,这些接口具有对整个系统的读写访问,因此特别允许在开发阶段访问安装的加密材料。然而,其在开发过程中必然存在,并且通常对参与开发过程的所有人员和/或公司开放。

6、因此,这意味着无法确保在开发阶段使用的加密材料不会被篡改或读取。然而,这种测试加密材料的结构和形式与后来使用的生产性加密材料相同。因此,其也适用于后期操作,即相应系统组件的生产阶段。因此,特别重要的是,测试加密材料在生产系统中不被滥用,而测试加密材料的安全性相对较差,因此极有可能被损坏。当生产加密材料到达处于开发阶段的系统组件时,情况就更加严重了。这种具有非常高的保护要求的材料也可以被篡改或全部或部分读取。因此,其不再是机密,不能使用。如果错误没有被注意到或被故意掩盖,则稍后进入生产阶段的系统组件将失去保护。

7、在实践中,安全法规和指导方针由在各个阶段处理系统组件的人员实施。因此,不能排除错误、疏忽和蓄意篡改的可能性。因此,原则上总是存在这样一种风险,即测试加密材料将留在已经切换到生产阶段的系统组件中,或者生产加密材料将部署在仍处于开发阶段的系统组件上。由于许多开放的接口等,在开发阶段故意或意外使用的任何加密材料都极有可能被损坏。这些危险最终导致安全风险增加。这是现有方法的一个严重缺点。

8、一种用于安全使用加密材料的方法已经从de 10 2020 003 072 b3中已知。联网系统的几个系统组件都配备了加密材料。加密材料具有标记,该标记将加密材料标记为开发或生产材料。各个系统组件具有一个二进制状态标志,该标志指示相应的系统组件在其生命周期阶段是处于开发阶段还是处于生产阶段。然后,将加密材料的标记与相应系统组件的二进制状态标志进行比较。如果标记和标志一致,例如,如果加密材料被标记为开发材料,并且系统组件处于开发阶段,则相应的加密材料由系统组件使用。但是,如果标记和二进制状态标志不一致,则采取保险措施。对加密材料的标记和二进制状态标志之间的一致性的检查是在加密材料的各自使用之前进行的,或者是对系统组件中的整个加密材料进行一次检查。例如,可以在启动系统组件时或在提供加密材料时进行一致性检查。作为保险措施,可以发出警告消息、取消或阻止加密材料的提供和/或根据需要删除已经引入到系统组件中的加密材料。

9、然而,缺点是,为了区分是否允许在系统组件上使用加密材料,只区分相应系统组件的两个生命周期阶段和加密材料的两个不同属性(测试或生产)。在实际使用中,仅仅区分两组是不够的,因为不同的加密材料和系统组件安全使用加密材料的条件差别太大。例如,如果机密直接在硬件安全模块中生成和保存,并且从不离开,那么在开发阶段就可以安全地使用加密材料。然而,这方面的先决条件是,硬件安全模块在开发阶段不具有或使用允许读取机密的特殊诊断接口。另一方面,包含在软件中的机密是程序代码的一部分,因此可以通过各种接口相对容易地读取或重建。在系统组件的后期生产阶段安全地使用这样的机密是不可能的。


技术实现思路

1、本发明的目的在于给出一种在信息技术系统的至少一个系统组件中实现和使用加密材料的改进方法,其允许在不同的系统组件中特别灵活地安全地实现和使用不同方式的加密材料,同时确保在系统组件本身或至少一个子模块以不安全模式操作的情况下,系统组件或至少子模块使用适合于不安全操作的加密材料,在系统组件本身或至少一个子模块以安全模式操作的情况下,系统组件或至少子模块使用适合于安全操作的加密材料。

2、根据本发明,该目的通过一种在具有权利要求1的特征的信息技术系统的至少一个系统组件中实现和使用加密材料的方法来实现。有利的设计方案和改进方案在从属权利要求中给出。

3、在用于在上述类型的信息技术系统的至少一个系统组件中实现和使用加密材料的方法中,加密材料具有根据本发明由至少一个条件、至少一个角色和/或至少一个目标组件身份形成的附加数据。

4、本发明的方法允许在最多样化的系统组件和/或其子模块中特别灵活地安全地实现和使用加密材料。因此,不同的系统组件,如控制设备、云服务器、移动设备上运行的应用程序、车辆或外部设备,需要在不同的时间点使用各种加密材料,如对称或非对称密钥、证书、随机数、哈希值等。因此,要使用加密材料的特定目标系统组件也可能需要在不同状态下使用不同的加密材料。借助于至少一个变量描述相应系统组件的状态。相应的系统组件可以采用多种不同的状态,因此也具有两个以上的状态,例如处于生命周期的开发阶段或生产阶段。系统组件的各个子模块也可以处于不同的生命周期阶段或状态。例如,网络接口可以处于第一不安全状态,系统组件的存储元件可以处于第二安全状态。一个相应的信息技术系统可以是联网的,也可以是孤立的。

5、加密材料通常由专用系统,例如加密材料-服务器生成,并作为特殊数据包的一部分传输到目标系统,即目标系统组件。在此,根据本发明,用附加数据补充加密材料。相应的条件定义了在何种情况下允许或不允许使用来自系统组件的加密材料。相应的条件可能是多种多样的。例如,可以要求相应的系统组件处于产品生命周期的特定部分,或者系统组件具有硬件安全模块,并且该硬件安全模块处于安全状态,以便硬件安全模块能够以安全的方式接收和存储加密材料。加密材料也可以包括几个条件。这允许在更多不同的使用场景中控制不同系统组件中加密材料的实现和使用。

6、设置用于系统组件的加密材料在其中发挥着一定的作用。如果同一系统组件使用多个相同类型的加密材料,例如多个4096位rsa公钥,则系统组件本身无法区分新的加密材料应该扮演什么角色,例如如何和在系统组件中的哪里安装以及如何使用。与加密材料的角色有关的信息可以以角色的形式附加到加密材料中。角色与条件的不同之处在于,角色不对系统组件的当前状态设置任何条件。

7、为了特别有效地区分在哪个系统组件中可以使用加密材料,可以用目标组件身份补充加密材料。目标组件身份包括允许使用相应加密材料的系统组件的唯一标识。如果将相应的加密材料应用于目标组件身份中不包括的系统组件,则禁止在该系统组件上使用该加密材料。这使得特别容易和快速地确定哪些系统组件可以使用哪些加密材料、哪些不能使用。

8、目标组件身份既可以针对全部类别的系统、系统组件和/或其子模块,例如类别“头部单元”、“发动机控制设备”、“闪存”等,也可以针对特定的系统组件,例如序列号为“ghns-1934952”的硬件安全模块。因此,借助于至少一个条件、至少一个角色和/或至少一个目标组件身份,可以非常有效和灵活地控制哪些加密材料可以被哪个系统组件和/或其子模块在哪些场景中使用、哪些不使用。

9、加密材料通常形成为加密材料(数据)包,并在系统或系统组件之间交换或引入。在这种情况下,加密材料包至少包括本来的加密材料,例如非对称密钥对,以及形式为附加到加密材料的附加数据的相应的条件、角色和/或目标组件身份。为此,附加数据可以例如与加密材料串接。此外,加密材料包可以包含其他数据。为了简单起见,本文只涉及加密材料。

10、本发明的方法的有利的改进方案规定,加密材料包括至少一个目标组件特定的角色。当同一加密材料被发送到不同的系统组件时,其也可以在不同的系统组件上执行不同的角色。因此,可以在加密材料中引入目标组件特定的角色,这些角色告诉加密材料其应该在哪个系统组件上使用、以及如何使用。因此,可以更广泛和灵活地控制加密材料如何在不同的系统组件上实现和使用。

11、根据本发明的方法的另一有利的设计方案,所有条件由系统组件的外部创建者定义,并且由在系统组件的环境中运行的至少一个评估者进行评估,其中,创建者和评估者共同确定创建者可以在定义中使用哪些变量。为此,创建者和评估者可以使用一组固定的可能变量,并根据条件选择合适的变量。创建者为每个条件选择合适的变量。同样,条件的数量和类型由创建者决定。然后由创建者和评估者共同确定每个变量使用的名称和允许的值范围,评估者确定允许创建者使用的名称和值范围。但是,创建者自己决定最终使用哪些名称和值范围。

12、例如,创建者是前面提到的加密材料服务器。评估者可以由硬件和软件形成,也可以由一个人形成。评估者可以包括在系统组件中,也可以在系统组件的外部执行,但在与系统组件相同的环境中。这允许评估者获取系统组件的底层变量,并描述系统组件的相应状态。系统组件外部评估者允许在尚未启动的系统组件的情况下检查通过加密材料提供给系统组件的条件。因此,例如,在不预先启动相应系统组件的情况下,可以在系统组件的存储器中存储相应的经过检查的加密材料。

13、特别是,评估者能够在任何预定的时间点检查相应系统组件的可能条件是否得到满足。通过创建者和评估者就一组共同的相关变量达成一致,可以确保评估特定条件所需的变量实际上可以被评估者获取。这增加了本发明的方法的应用的可靠性。

14、该方法的另一有利的设计方案还提供,至少一个变量具有以下值范围之一:

15、-boolean/布尔量;

16、-integer/整数;或

17、-string/字符。

18、在此,所有变量都可以具有相同的值范围,即boolean、integer或string类型,或者各个变量也可以具有不同的值范围。通过使用不同的值范围或类型,可以使用不同的变量来定义和随后检查条件。

19、相应地,boolean类型的变量取值true或false。借助于integer和string值范围,可以更详细或更多层次地描述状态。例如,可以借助于数字和/或字符串来描述特定的状态。

20、例如,值范围可以从1到10。例如,用于定义状态的变量可以是向量的形式。向量可以包括例如boolean类型的第一变量和integer类型的第二变量。这个变量向量是时间相关的。例如,在特定时间,第一变量可以取值true,第二变量可以取值24。因此,每个系统组件的条件可以由其环境在特定时间t处于由变量的当前值描述的唯一状态的评估者评估,即检查变量在时间t是否满足定义的条件。相应的变量向量可以包含至少一个空元素。例如,当评估者无法获取特定变量时,就会出现这种情况。也可以使用通配符代替空元素,如数字“0”、“9999”或字符串“nan”。

21、同样,变量可以是结构化类型,例如,变量可以是:

22、-array或

23、-record,

24、其中,结构化类型既可以由非结构化类型形成,也可以由结构化类型形成。

25、根据本方法的另一有利的设计方案,至少一个条件被定义为目标组件特定的和/或操作特定的。因此,加密材料可用于执行各种操作,例如安装软件、加密或解密特定数据、创建或检查签名等和/或由不同的系统组件使用。为了使创建者能够将条件标记为操作特定,即仅对特定操作有效,必须将系统组件中已知的一组操作通知创建者,类似于一组可用状态变量,以便创建者能够在定义条件时使用这些操作。这组操作可以是通用的,即对所有目标组件有效,也可以是目标组件特定。

26、为了在不同的系统组件上和/或在执行不同的操作时满足特定条件,对于至少两个不同的系统组件和/或操作,可能会出现这样的情况:特定变量必须具有不同的值,即一次为true和一次为false,或者一次为0和一次为256。

27、根据本发明的方法的另一有利设计方案进一步规定,对于目标组件特定和/或操作特定的条件,在不同的目标组件上和/或在不同的操作中使用至少一个不同的变量。因此,不仅为了满足不同系统组件上的条件和/或执行不同的操作,特定变量可能具有不同的值,而且可能需要不同的变量。特别是,与条件相关的变量的数量和/或类型以及允许的值范围的大小可以在不同的系统组件和/或操作之间不同。例如,为了满足第一系统组件上的条件,变量1和2必须取值0和true,而第二系统组件上的变量1、2和3必须取值0、true和false。在第三系统组件上,为了满足相同的条件,变量1、2、3、4、5和6必须取值true、[0..100]、[-100..100]、0、“engaged”和false。通常,至少可以有两个boolean值表达式以“或”连接,这将在下文中讨论。

28、根据本方法的另一有利的设计方案,评估者通过评估函数检查条件,其中,至少两个不同的评估者使用不同的评估函数,特别是操作特定的评估函数。通常,所有评估者都可以使用相同的评估函数。然而,通过提供不同的评估函数,在执行本发明的方法以控制在何种条件下使用系统组件的加密材料方面增加了灵活性。

29、因此,通常也可以使用通用评估函数,由此允许通过仅提供一个函数来评估所有加密材料或加密材料所包含的条件。然而,评估函数也可以特定于不同的加密材料,例如根据加密材料的作用来执行。特别是,对于不同操作的不同评估函数,将再次进行区分。

30、根据本发明的方法的另一有利设计方案进一步规定,至少一个条件以可机器处理的定义语言来定义,其中使用可由解释器解释的可执行语言或以下形式逻辑之一:

31、-命题逻辑;

32、-具有关系的命题逻辑;或

33、-具有关系和函数的命题逻辑。

34、在可机器处理的定义语言中定义条件允许使用现有语言来执行本发明的方法。使用可评估的定义语言,可以制定关于描述系统组件状态的有效变量的条件,例如,作为使用定义语言定义和可处理的boolean值表达式。如果加密材料具有多个条件,则与相应条件相关的变量集也可以包含不同的变量。在此,相应的变量集的所有变量可以具有相同的类型,即boolean、integer或string,或者与特定条件相关的变量集的至少两个变量的类型不同。另外,对于加密材料所包含的各种条件,可以混合使用相同或不同的可机器处理的定义语言。

35、在已知的命题逻辑中,与特定条件相关的所有变量都具有boolean值范围。因此,各个变量只能取值true或false。逻辑公式是借助于已知的命题逻辑连接符,即“∧”、“∨”、或类似的,以及括号“(“”)”来形成的。命题逻辑公式的示例有:

36、-变量1;

37、-变量2∧true;

38、-(变量1∧(变量2∨变量3))。

39、对于具有关系的命题逻辑,与特定条件相关的变量可以具有不同的值范围。存在一有限量的关系,其中,每个关系被分配一个固定的位数,并且每个关系和位置被分配一个固定的值范围。然后,通过将关系应用于与位数相对应的具有适当的值范围的常量和/或变量,得到关系项。当对于该项中出现的变量的预定的值评估关系项时,总是得到一个布尔值,即true或false。例如,两位数关系的一个示例是较小的等式关系“≤”,其要求两位数的integer作为值范围,基于该关系的关系项如下:

40、-变量1≤变量2;

41、-7≤变量3。

42、逻辑公式借助boolean常数、boolean变量、关系项和已知命题逻辑连接符∧、∨、等,以及括号“(“和”)”来确定求值顺序。使用二位关系“≤”和“=”的具有关系的命题逻辑公式的示例是:

43、-(变量1∧((变量2≤变量3)∨(变量3=变量4)))。

44、对于具有关系和函数的命题逻辑,另外使用有限数量的函数,每个函数分配一个固定的位数,每个函数和每个位数分配一个固定的值范围。此外,还为每个函数定义了结果的值范围。然后将函数应用于具有适当值范围的相应位数的常量、变量和/或函数,并从预定的结果值范围返回值。例如,两位数函数的一个示例是加法“+”,其要求integer作为两位数的值范围,并提供一个integer值作为结果。与命题逻辑一样,逻辑公式是用关系形成的,不同之处在于关系项不仅可以通过对常数和/或变量应用关系来形成,而且还可以通过对常数/变量应用具有相应结果值范围的函数来形成。具有关系和函数的命题逻辑公式的示例是:

45、-(变量1∧((变量2≤(变量3+变量7))∨(((变量3-变量8)+变量2)=变量4)))。

46、特别是,使用可由解释器解释的可执行语言提供了优势。这样的语言因为可执行性而非常“给力”。因此,在执行相应的程序代码之前,不需要事先翻译/编译,或转换为公式树和插入变量值。例如,可解释的可执行语言可以是像python这样的脚本语言。

47、根据本发明的方法的另一有利设计方案,至少两个条件是用不同的定义语言制定的,特别是两个目标组件特定的条件以不同的定义语言制定。如果第一系统组件使用第一语言,而第二系统组件使用不同于第一语言的第二语言,则通过提供用不同定义语言制定的两个条件,确保两个系统组件也能够评估与其相关的条件。因此,与条件相关的变量也用各自的定义语言制定。也有可能用不同的定义语言制定对同一系统组件有效的两个条件。因此,使用特定的定义语言来制定特定的条件可能是有利的。例如,如果只能用特定的定义语言获取和/或处理某些变量,或者如果这是由于各种边界条件而预定的,就会出现这种情况。

48、本发明的方法的另一有利设计方案进一步规定,加密材料包括至少两个条件,并且必须满足所有条件,以便系统组件使用加密材料。回到形式逻辑的使用,这意味着所使用的条件是“和”连接的。因此,必须满足系统组件使用加密材料的所有条件。因此,满足来自系统组件的加密材料的应用的单个条件是必要的,但不一定是足够的,因为至少需要满足另一个条件。

49、根据方法的另一有利的设计方案,如果系统组件要使用其目标组件特定的条件不包括相应系统组件的类别的加密材料,如果通过使用加密材料执行不由操作特定的条件包括的操作,或者如果评估者无法获取检查状态所需的变量,则评估者默认为相应的条件提供以下响应:

50、-true;

51、-false;或

52、-作为默认响应附加到加密材料上的响应。

53、这确保了本发明的方法的更可靠的实现。因此,通常,要使用某些加密材料的系统组件或系统组件的类别不能包含在目标组件特定的条件中。在默认情况下,在检查目标组件特定的条件后,将输出值true,以便仍然可以由相应的系统组件应用加密材料。如果要在这种情况下阻止加密材料的应用,则默认情况下输出值false。为了增加本发明的方法的灵活性,默认响应也可以以true或false的形式附加到加密材料上。这降低了在默认响应设置为true的系统组件上使用加密材料的风险,而实际上不应使用加密材料。在这种情况下,默认响应以false的形式附加到加密材料上。

54、上述公式相应地适用于操作特定的条件,也适用于评估者无法获取检查特定条件所需的变量的情况。

55、本发明的方法的另一有利设计方案进一步规定,加密材料所包含的所有附加数据被加密保护以防止破坏,特别是使用至少一个数字签名和/或对称完整性保护机制。具体地说,密钥散列消息认证码(hmac)可以用作对称完整性保护机制。保护加密材料不被破坏,在执行本发明的方法时进一步增加了保护。因此,除了加密材料之外,附加到加密材料包的附加数据受到保护,防止未经授权的篡改。例如,包括附加数据在内的加密材料可以由创建者使用其非对称私钥进行数字签名。特别是,使用安全的方法和安全的系统进行签名。然后将公钥或包含公钥的证书分发给所有受影响的评估者。在相应的系统中,相应的公钥或证书以防篡改的方式引入。例如,公钥或证书存储在只读存储器(rom)或只写存储器(worm)中。因此,加密材料包包括这样的数字签名。因此,只有当借助于所引入的公钥或证书对附加到加密材料上的签名进行检查时,系统组件才使用加密材料。

56、根据本发明的方法的另一有利的设计方案,至少两个不同的行为者获得对加密材料进行数字签名的授权,其中,所有被授权签名的行为者获得分配给他们的属于公共的证书体系的单独页证书及相应配属的私钥。因此,当多个行为者创建加密材料时,给予多个行为者数字签名的授权是特别有意义的。然后,执行签名的系统用属于其页证书的私钥对相应的加密材料进行签名。然后,不仅生成的签名,而且整个证书链都被添加到加密材料中。然后,附加到加密材料的证书链由相应的评估者或包括评估者的系统使用,以检查由签名系统生成的签名的正确性。

57、如果加密材料已经是数字证书,则从一开始就对其进行签名。如果在证书中包含附加数据,即至少一个条件、角色和/或目标组件身份,则证书的创建者将对其进行签名。因此,附加数据,甚至仅部分数据,可以作为一个或多个证书扩展包含在相应的证书中,并因此进行签名。如果所有附加数据都包括在证书中,则可以省略对加密材料进行数字签名的专门创建。

58、为了提供尽可能好的保护,本发明的方法应尽早用于相应系统组件的开发。由于评估者对条件的检查依赖于变量,因此必须尽可能保护这些变量不被篡改,因为损坏的变量可以假装存在一个实际不存在的状态。因此,用于评估条件的常量优选地存储在一次性可写存储器中,例如worm存储器。条件所依赖的变量的值最好在信息技术系统或单个系统组件的整个生命周期中系统地适应当前系统的状态。

59、车辆生态系统被优先用作信息技术系统。一般而言,本发明的方法可用于各种联网或非联网信息技术系统中的各种系统组件。如果信息技术系统是一个车辆生态系统,则使用效率特别高,因为在这种情况下,与许多参与合作伙伴进行复杂开发的相关要求往往使遵守安全准则在实践中变得非常困难。通过执行本发明的方法,从而通过各自的系统组件进行自我检查,潜在的安全漏洞的危险可以大大降低到最小。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1