安全通信方法与流程

文档序号:21997180发布日期:2020-08-25 19:39阅读:161来源:国知局
安全通信方法与流程

本发明涉及安全通信方法的领域,尤其是在被称为“iot”(物联网)的集成已连接对象的网络中。



背景技术:

基于已连接对象的系统如今被高度使用,并且其利用应会增加。安装在已连接车辆中的传感器提供了一个示例。这些已连接的传感器例如被用来基于由传感器供应的数据来监督车辆的车队。生产系统提供了另一个示例,该生产系统包括专用于维护或安全的功能性。由例如安装在工作站或通信装备上的传感器或探头所供应的数据可以被用于预测维护或更新周期的目的,从而允许维护干预的更有效调度。

在通过一个或多个网络连接的系统中,被交换的数据的完整性和安全性仍然是主要的重点。例如,出于策略原因或出于个人数据保护的原因,对信息的机密性的保护日益得到加强。例如,在网络攻击威胁的背景下或者在与敏感技术领域相对应的安全环境中,数据完整性控制得到加强。

通信系统例如使用用于保护tls或dtls类型的数据的协议。这些协议通常由智能电话类型的已连接对象使用。实现这些协议有时需要使用机载计算机提供的大部分资源。这样的协议不适用于例如探头类型或计算能力有限的已连接对象。由于复杂的计算(例如,密码)消耗大量的能量,因此已连接对象也可能会受到其能量储备的限制。例如,当这些计算所需的计算时间或能量与操作需求不兼容时,则认为计算过于复杂。网络在资源、它们的速度或为通信管理所实现的硬件资源方面也可能会受到限制。dtls协议的实现示例例如在文献rfc5246或rfc5077中被示出。

其他方法提出了基于网络架构的解决方案,但是这些解决方案(诸如zigbee或lora)通常不提供端到端的安全性。

技术问题

因此,需要提供一种鲁棒并且易于部署的安全通信方法,该方法在已连接对象的管理中保持极大的灵活性。



技术实现要素:

为了克服这些技术问题,本发明提出了在至少一个网络中利用通信链路在至少一个第一实体与至少一个第二实体之间的安全通信方法,该方法包括:

-由第一实体使用对称加密算法、使用特定于第一实体的第一密钥对内容进行加密的步骤;

-在消息中聚合加密内容与特定于第一实体的至少一个密钥生成参数的步骤;

-由第一实体向第二实体发送消息的步骤;

-由第二实体使用特定于第一实体的所述密钥生成参数、第二实体已知的第一秘密和密钥生成函数来确定特定于第一实体的所述第一密钥的步骤;

-由第二实体使用第一密钥对接收到的消息的加密内容进行解密的步骤。

根据一个特殊性,该方法包括发送对消息的响应的附加步骤和/或擦除第二实体的存储器中的第一密钥的附加步骤,该响应由对称加密算法使用第一密钥加密。

根据另一特殊性,该方法包括对每个第二实体进行初始化的在先步骤,该步骤包括存储所述第一秘密。

根据另一特殊性,该方法包括在先步骤,即:

-由每个第一实体向管理实体发射特定于每个第一实体的密钥生成参数以便获取第二密钥的步骤;

-由管理实体使用由管理实体所拥有的所述第一秘密、特定于每个第一实体的所述密钥生成参数和所述密钥生成函数来生成特定于每个第一实体的每个第二密钥的步骤;

-向每个第一实体供应每个第一密钥的步骤;

该方法包括附加步骤,即:

-由每个第一实体通过导出函数、使用其第二密钥和至少一个导出参数来生成第一密钥的步骤,

-由每个第一实体将所述导出参数聚合到旨在用于第二实体的消息的步骤,

-由第二实体导出的步骤,以便使用第二密钥来获取第一密钥,该第二密钥是使用作为所述密钥生成函数的输入而供应的特定于第一实体的密钥生成参数和第一秘密而生成的。

根据另一特殊性,所述导出参数包括由所述第一实体生成的至少一个随机密钥。

根据另一特殊性,通过发送用于获取第二密钥的请求和对此请求的响应来执行发射用于第二密钥的生成参数和供应所述第二密钥的步骤,每个第一实体与所述网络中的管理实体处于通信链路中。

根据另一特殊性,使用由每个第一实体存储并由管理实体使用由管理实体拥有的第二秘密而重新生成的第三密钥、特定于每个第一实体的所述密钥生成参数和所述密钥生成函数来加密用于获取第二密钥的请求和对此请求的响应,该方法包括在先步骤,即:

-由每个第一实体向管理实体发射用于获取第三密钥的、特定于每个第一实体的密钥生成参数的步骤;

-由管理实体使用由管理实体拥有的所述第二秘密、特定于每个第一实体的所述密钥生成参数和所述密钥生成函数来生成特定于每个第一实体的每个第三密钥的步骤;

-将每个第三密钥供应给每个第一实体的步骤;

-在所述管理实体的存储器中擦除每个第三密钥的步骤。

根据另一特殊性,在向管理实体验证每个第一实体的同时执行由每个第一实体向管理实体发射用于获取第三密钥的、特定于每个第一实体的密钥生成参数。

根据另一特殊性,与公钥的发射一起执行由每个第一实体向管理实体发射用于获取第三密钥的、特定于每个第一实体的密钥生成参数,该公钥和对应的私钥由所述第一实体存储,因此在将第三密钥发射到所述第一实体之前,由管理实体使用该公钥对第三密钥进行加密。

根据另一特殊性,特定于第一实体的所述至少一个密钥生成参数包括该第一实体的至少一个标识符。

根据另一特殊性,特定于第一实体的所述至少一个密钥生成参数还包括由第一实体生成的密钥的到期日期。

本发明的另一个目的涉及一种用于在至少一个网络中利用通信链路在至少一个第一实体和至少一个第二实体之间交换数据的安全系统,所述第一实体和所述第二实体包括用于计算和存储的模块以及网络通信接口,其特征在于,每个第一个实体存储:

-使用第一密钥、使用对称加密算法的加密和解密程序,以及

-用于发射具有特定于第一实体的至少一个参数的聚合加密数据以允许密钥的生成的程序,

并且其特征在于,每个第二实体存储:

-用于使用特定于第一实体的所述密钥生成参数和第二实体已知的秘密来重新生成密钥的程序,以及

-使用所述第一密钥、由所述对称加密算法进行的加密和解密程序。

根据另一特殊性,该系统包括管理实体,该管理实体包括来自特定于每个第一实体的所述密钥生成参数以及来自由管理实体拥有的所述秘密的密钥生成程序。

根据另一特殊性,管理实体包括用于对每个第二实体进行初始化的程序,包括每个第二实体的第一已知秘密的初始化。

根据另一特殊性,该系统包括组织到至少一个批次的多个第二实体,以使得通过共享相同秘密的相同批次的第二实体来访问相同资源。

根据另一特殊性,每个第一实体和第二实体包括根据至少一个导出参数的密钥导出程序。

根据另一特殊性,该系统能够执行根据本发明的方法。

本发明的第一个优点在于其部署的简单性,该部署允许已连接对象简单地获取主密钥以及一个或多个辅助密钥来访问一个或多个资源。还促进了控制单元的增加以响应客户端请求的扩展。因此,根据本发明的方法在其适应性方面提供了很大的灵活性。

本发明的另一个优点在于实现了使得与数据在其上流通的网络的类型无关且端对端交换数据安全。

本发明的优点还在于管理实体中或控制实体中的主密钥和辅助密钥的计算的偏移。因此,客户端实体可以具有已连接对象的形式,这些已连接对象从低资源、有延迟和速度保持效益方面的服务中获益。此外,管理或控制实体不必存储所有客户端实体使用的所有密钥。

本发明还具有以下优点:允许由不同的客户端实体针对每一个客户端使用不同的密钥进行加密,而无需用于管理安全通信的实质性手段。

本发明还具有允许对主密钥和辅助密钥进行简单更新的优点。另外,到期日期可以与加密的消息一起作为用于加密的密钥的重新生成参数而被发射。

本发明的优点还在于,可以根据不同的频率简单地并且以若干级别对加密密钥进行改变。导出的辅助密钥例如在一天内有效,辅助密钥例如在一周内保持有效,而主密钥可以在两周内保持有效。另外,用于生成主密钥和辅助密钥的秘密永远不会被发射到客户端实体。

有利地,控制实体或管理实体不必保存由不同客户端实体使用的不同加密密钥,这使得可以节省资源并使得根据本发明的方法特别灵活并且可适用于变化的环境。

附图说明

出于参考而绝非限制的目的,参考附图将在下文的本发明的描述中清楚地显现本发明的其他特征,其中:

-图1示出了根据本发明的安全方法的示例;

-图2示出了用于特定于客户端实体的密钥初始化的数据交换的示例,该密钥允许客户端实体向管理实体寻址加密请求;

-图3示出了用于特定于客户端实体的密钥初始化的数据交换的示例,该密钥允许客户端实体向由管理实体初始化的控制实体寻址加密请求;

-图4示出了客户端实体和控制实体之间的安全交换的示例;

-图5示出了根据本发明的用于交换数据的安全系统的示例。

具体实施方式

如图5中所示,管理实体b连接到通信网络50。若干控制实体s1和s2也连接到该通信网络50。另外,该后一个网络50经由网关61、62和6m而连接到其他网络51、52和5m。客户端实体a1、a2和an因此可以与控制实体s1和s2以及与管理实体b处于通信链路中。客户端实体的数目可以变化,可以因此增加或减少控制实体的数目。控制实体例如由管理实体b创建或取消。管理实体、客户端实体和控制实体各自包括计算模块、存储模块和网络通信接口。

一个或多个控制实体s1和s2允许例如对资源的访问。也可以考虑将不同类型的控制实体分组为不同的批次以访问不同的资源。被访问的资源例如是应用、数据库、库、访问管理器、验证管理器或日志管理器类型。控制实体例如是反向代理类型。控制实体可以例如是网关类型。在同一批次中访问相同资源的控制实体的数目增加允许更大数目的客户端实体同时访问该资源。在同一批次中,可以创建新的控制实体来响应更大量的请求。例如,新的控制实体由管理实体创建,它将在同一批次中向其传送相同的辅助秘密。也可以基于现有控制实体来创建这样的新的控制实体。

每个控制实体存储辅助秘密s_s、密钥重新生成程序103、利用对称加密算法的加密和解密程序104以及密钥导出程序107。导出程序例如是hkdf类型。密钥生成程序可以例如具有秘密的导出协议的形式,诸如nist-800-108-kdf、x9.63-kdf、nist-800-56-kdf-a/b、nist-800-56-kdf-c或hkdf。

客户端实体a1、a2和an例如是智能电话、计算机、平板电脑、已连接探测器、已连接传感器、已连接执行器或其他已连接仪器。每个客户端实体存储使用对称加密算法的加密和解密程序101、具有旨在允许解密的参数的聚合加密数据传输程序102和密钥导出程序107。如图5中所示,每个客户端实体还存储用于通过非对称密钥进行加密/解密的程序110、用于生成随机密钥的程序111以及时间日期戳程序112。导出程序例如是hkdf类型。客户端实体a1还存储主密钥kb1、辅助密钥ks1和导出的辅助密钥dks1。客户端实体a2还存储主密钥kb2、辅助密钥ks2和导出的辅助密钥dks2。客户端实体an还存储主密钥kbn、辅助密钥ksn和导出的辅助密钥dksn。如下文详述,每个客户端实体都可以拥有特定于它的主密钥和辅助密钥。

管理实体b拥有主秘密以及辅助秘密。可以根据需要创建辅助秘密。管理实体存储密钥生成程序105、用于初始化控制实体的程序106。由于数据库db1,管理实体还可以执行客户端实体的验证。密钥生成程序可以例如具有秘密的导出协议的形式,诸如nist-800-108-kdf、x9.63-kdf、nist-800-56-kdf-a/b、nist-800-56-kdf-c或hkdf。

例如,如图1中所示,根据本发明的安全方法的示例包括对一个或多个控制实体(s1,s2)进行初始化的步骤stp00,包括它们的辅助秘密s_s的初始化。可以根据需要在此过程期间重复此步骤。

随后的步骤stp01包括由客户端实体a1向管理实体b发射专用于其的密钥生成参数a1_id,以用于与公钥的发射相结合地获取主密钥。可以在向管理实体进行验证期间执行此发射,也可以通过用于获取主密钥的请求来执行此发射。为密钥生成而发射的一个或多个参数例如包括客户端实体a1的标识符a1_id。密钥生成参数还可以以保证所生成的主密钥的唯一性的方式包括随机密钥、发送或接收的时间或有效日期。所有聚合的生成参数具有例如小于或等于32比特的大小,以便优化带宽和计算时间。如图2中所示,请求1还可以包括由客户端实体a1与私钥一起存储的公钥a1_kpub。用于获取主密钥的请求还可以包括时间日期戳a1_t。

在随后的步骤stp02中,管理实体b生成特定于客户端实体a1的主密钥kb1。

kb1=f(b_s,a1_id)

主密钥kb1是由密钥生成函数f使用主秘密b_s和至少一个生成参数(诸如客户端实体a1的标识符a1_id)而获取的。导出参数还可以包括随机密钥、与请求的发送或请求的到达或有效日期相对应的时间日期戳。在将生成的该密钥kb1发射到客户端实体之前,例如使用接收到的公钥a1_kpub对生成的该密钥kb1进行加密。还使用时间日期戳a1_t来计算相对于管理实体b的内部时钟的时间偏移dt。该偏移dt在对客户端实体a1的响应2中被聚合到主密钥kb1。生成的主密钥kb1例如与存储在数据库db1中的密钥的到期时间窗口相关联。当超过到期时间窗口的一段时间过去时,该密钥便被废除。这使得可以周期性地更新所使用的密钥并增加该方法的安全性。

在随后的步骤stp03中,管理实体b在其对请求1的响应2中执行主密钥kb1的发射。在发射之后,例如从管理实体b的存储器中擦除该密钥kb1。

在随后的步骤stp04中,客户端实体a1接收主密钥kb1,可选地使用其私钥对其解密,然后将其存储在存储器中。客户端实体还存储接收到的时间偏移dt,它对应于在请求的发送时间和它被接收到的时间之间计算出的时间差。客户端实体a1存储的时间差dt被用来校正客户端实体a1的时钟和管理实体b的时钟之间的偏移。

在随后的步骤stp05中,执行从客户端实体a1向管理实体b发射用于获取特定于客户端实体a1的辅助密钥ks1的特定密钥生成参数。该发射例如以使用主密钥kb1加密的请求4的形式来执行,该主密钥kb1被聚合为用于生成主密钥的一个或多个参数a1_id。然后,在仍然验证请求的起源的同时,由于主密钥kb1生成参数或供应给并特定于客户端实体a1的参数,管理实体b能够解密。考虑客户端实体a1的时钟与管理实体b的时钟之间的时间差dt的、用于发出校正后的请求tc的时间参数也被聚合到请求4。用于获取辅助密钥的请求包括:特定于第一实体a的至少一个密钥生成参数a1_id,例如,诸如客户端实体a1的标识符。也可以使用其他参数,诸如随机密钥、时间日期戳或有效日期。所有聚合的生成参数具有例如小于或等于32比特的大小,以便优化带宽和计算时间。

在随后的步骤stp06中,由管理实体b使用管理实体b所拥有的所述辅助秘密s_s、特定于客户端实体a1的一个或多个密钥生成参数a1_id以及所述密钥生成函数f,执行特定于客户端实体a1的辅助密钥ks1的生成。

ks1=f(s_s,a1_id)

管理实体b通过根据校正后的发出时间tc检查请求是否在该请求的有效时间窗口到期之前到达,来核实请求4的有效性。这样避免了“重放”类型的攻击。

管理实体此外还计算了特定于客户端实体a1的主密钥kb1,以便对请求4进行解密。所生成的辅助密钥ks1在其发射之前例如由特定于客户端实体a1的主密钥kb1加密。因此,相同的密钥kb1被用于请求中以及对该请求的响应中的加密。

kb1=f(s_b,a1_id)

在随后的步骤stp07中,在对请求4的响应6中,执行将辅助密钥ks1供应给客户端实体a1。在发射之后,从管理实体b的存储器中擦除上文生成的辅助密钥ks1和主密钥kb1。管理实体b还可以将客户端实体a1的请求的发送时间与管理实体b的接收时间之间的时间差dt的更新值聚合到响应6。

在随后的步骤stp08中,由客户端实体a1执行特定辅助密钥ks1的接收、解密和存储。解密是通过客户端实体存储的主密钥kb1来执行的。因此,管理实体b能够发送由密钥加密的消息,该密钥仅由消息所旨在用于的客户端实体a1拥有。每个客户端实体a1、a2、an与不同的密钥同时存储它们的一个或多个生成参数。例如,存储用于生成密钥的时间参数、随机密钥和/或到期日期。客户端实体a1还存储更新的时间偏移dt。

在随后的步骤stp09中,执行从辅助密钥生成导出密钥dks1并对其进行存储。使用存储的辅助密钥ks1和至少一个导出参数p1(诸如由随机密钥生成程序111生成的随机密钥)执行导出。这个或这些导出参数与密钥同时被存储。到期数据或创建日期也可以被用作导出参数。

dks1=fb(ks1,p1)

在随后的步骤stp10中,通过使用导出的辅助密钥dks1来执行对旨在用于控制实体的内容进行加密。

在随后的步骤stp11中,在消息m中执行加密内容r1与特定于第一实体a1的一个或多个辅助密钥kb1生成参数a1_id以及与一个或多个导出参数p1的聚合。发送时间tc或校正后的发送时间也可以被集成到消息m中。

在随后的步骤stp12中,由客户端实体a1执行向控制实体s1发送消息m。在接收期间,控制实体可以特别地确定请求是否在授权的时间窗口内到达它,从而防止“重放”类型的攻击。

在随后的步骤stp13中,由控制实体s1通过以下方式执行对加密密钥的确定:

使用作为密钥生成程序的输入而供应的特定于客户端实体a1的一个或多个密钥生成参数a1_id和辅助秘密s_s来生成辅助密钥ks1,然后

使用一个或多个导出参数p1和导出函数导出后一个密钥ks1,以获取用于对消息的内容r1进行加密的导出的辅助密钥dks1。

ks1=fa(s_s,a1_id)

dks1=fb(ks1,p1)

在步骤stp14中,对接收到的消息m的加密内容r1执行解密。

在步骤stp15中,执行对消息的响应的发送,该响应包括使用上述重新生成的导出的辅助密钥dks1通过对称加密算法加密的内容r2。

在步骤stp16中,执行在控制实体s1的存储器中擦除辅助密钥ks1和导出的辅助密钥dks1。

当客户端实体直接使用辅助密钥ks1来加密发送给控制实体的消息的内容时,控制实体仅使用一个或多个辅助密钥生成参数来重新生成辅助密钥ks1并且解密所接收到的消息的内容,不超出本发明的范围。

对于本领域技术人员而言应当显然的是,本发明允许其他替代实施例。因此,本实施例应当被认为是用于说明本发明。

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