密钥管理方法及其系统与流程

文档序号:11959472阅读:1393来源:国知局
密钥管理方法及其系统与流程

本发明涉及一种对用于加密云服务数据和重要证书(credential)的服务密钥以及对用于加密服务密钥的主密钥进行管理的方法及其装置。



背景技术:

利用加密密钥(encryption key)来对需要保护的许多数据或重要证书进行加密。但是,在加密密钥以纯文本(plain text)存储在数据库(database)中的情况下,具有如下危险:已存储的加密密钥有可能因数据库管理者(DataBase Administration,DBA)或内部人员而流失。在利用硬件安全模块(Hardware Security Module)对加密密钥进行加密的情况下,具有硬件安全模块的供应商知道对加密密钥进行加密的主密钥的局限性。此外,在利用同态算法(homomorphic algorithm)等对加密密钥进行加密的情况下,具有如下问题:如果丢失对加密密钥进行加密的主密钥,则无法再恢复加密的数据。因此,需要一种能够同时确保加密密钥的机密性和可用性的解决方案。

现有技术文献

韩国公开专利第2003-0077065号(2003年10月01日公开)



技术实现要素:

本发明所要解决的技术问题是提供一种在用专门的主密钥来对能够加解密云服务数据和重要证书的服务密钥进行加密之后,通过生成仅在特定条件下能够重构主密钥的密钥块并将该密钥块分散存储在多个服务器中的方法及其装置。

本发明的技术问题并不限定于以上所提及的技术问题,本领域技术人员能够从下面的记载中明确理解没有提及的其它技术问题。

为了解决上述技术问题,本发明的一方面(Aspect)的密钥管理方法可包括以下步骤:利用主密钥对由云服务的第一使用者的实例使用的服务密钥进行加密;生成用于重构所述主密钥的两个以上的密钥块;将所述密钥块分散存储在用于提供所述云服务的主机组中所包括的两个以上的主机服务器中;从所述第一使用者的实例接收所述服务密钥的提供请求;从所述两个以上的主机服务器接收多个所述密钥块,并以接收到的密钥块为基础重构所述主密钥;以及利用重构的主密钥来对加密后的服务密钥进行解密。

为了解决上述技术问题,本发明的另一方面的密钥管理系统可包括:密钥访问服务器,在利用主密钥对由云服务的第一使用者的实例使用的服务密钥进行加密之后,生成用于重构所述主密钥的两个以上的密钥块并分散存储,并且在从所述第一使用者的实例接收到服务密钥提供请求的情况下,以分散存储的密钥块为基础重构主密钥来对加密后的服务密钥进行解密;以及主机服务器,从所述密钥访问服务器接收所述密钥块并存储,并且在从所述密钥访问服务器接收到密钥块提供请求的情况下,传送所述密钥块。

为了解决上述技术问题,根据本发明的又一方面,可提供一种为了与计算装置相结合来执行以下步骤而存储在存储介质中的计算机程序:利用主密钥对由云服务的第一使用者的实例使用的服务密钥进行加密;生成用于重构所述主密钥的两个以上的密钥块;将所述密钥块分散存储在用于提供所述云服务的主机组中所包括的两个以上的主机服务器中;从所述第一使用者的实例接收服务密钥提供请求;从所述两个以上的主机服务器接收多个所述密钥块,并以接收到的密钥块为基础重构所述主密钥;以及利用重构的主密钥来对加密后的服务密钥进行解密。

根据如上所述的本发明,通过生成仅在特定条件下能够重构主密钥的密钥块并分散存储在多个服务器中,在任何服务器或装置中都没有存储主密钥,从而能够确保主密钥的机密性。此外,即使丢失分散存储的密钥块的一部分也能够重构主密钥,从而能够确保主密钥的可用性。进一步,具有如下效果:即使流失密钥块,也无法仅用流失的密钥块来重构主密钥。

附图说明

图1至图3是本发明的几种实施例的云服务系统的示意图。

图4是用于说明本发明一实施例的主密钥分散存储方法的顺序图。

图5是用于说明本发明一实施例的主密钥重构方法的顺序图。

图6是用于说明本发明另一实施例的主密钥分散存储方法的信号流程图。

图7是用于说明本发明另一实施例的主密钥重构方法的信号流程图。

图8是本发明一实施例的密钥访问服务器的方框图。

图9是本发明一实施例的密钥访问服务器的硬件结构图。

具体实施方式

参照附图的同时参照详细地后述的实施例,本发明的优点及特性以及实现这些的方法将会明确。但是,本发明并不限定于以下所公开的实施例,而是可以以彼此不同的多种方式实现,本实施例仅仅用于完整地公开本发明,并且为了向本发明所属技术领域的技术人员完整地告知本发明的范围而提供的,本发明仅由权利要求的范围定义。在说明书全文中相同的附图标记指相同的结构要素。

在关于本说明书的说明之前,对本说明书中所使用的几种用语进行说明。

云服务(Cloud service)是本地计算装置将各种数据存储在与网络相连接的外部服务器中,并在必要时可从外部服务器下载来利用的服务。更具体来讲,本地计算装置的实例(instance)可将数据存储在不是内部存储空间的、与网络相连接的外部服务器中。并且,本地计算装置的实例在需要存储在外部服务器中的数据的情况下,可通过从外部服务器下载数据来利用。特别是,本发明一实施例的云服务可以是能够向本地计算装置提供虚拟化的基础设施环境的基础设施即服务(Infrastructure as a Service,Iaas)或软件即服务(Software as a Service),但并不限定于此。

服务密钥(Service key)是通过云服务执行的实例为了对数据进行加解密而使用的密钥。这种服务密钥可根据云服务的使用者(Tenant)、通过云服务提供的服务或通过云服务提供的服务应用等而被设置为具有彼此不同的值。此外,服务密钥可根据云服务的使用者、通过云服务提供的服务或通过云服务提供的服务应用等而具有彼此不同的大小或类型,但并不限定于此。

主密钥(Master key)是为了对服务密钥进行加解密而使用的密钥。这种主密钥可根据云服务的使用者、通过云服务提供的服务或与云服务关联的业务等而被生成为具有彼此不同的值,但并不限定于此。

此外,本说明书中所使用的用语用于说明实施例,并不限制本发明。在本说明书中,单数形式只要在句子中未特别提及就也包括复数形式。在说明书中使用的“包括(comprises)”和/或“由……构成(made of)”并不排除提及的结构要素、步骤、动作和/或元素之外的一个以上的其它结构要素、步骤、动作和/或元素的存在或附加。

下面,根据附图对本发明进行更详细说明。

图1至图3是本发明的几种实施例的云服务系统的示意图。图1至图3中所公开的云服务系统的各结构要素表示按功能区分的功能要素,任一种以上的结构要素可通过在实际物理环境中彼此合并而实现。

参照图1,本发明一实施例的云服务系统可包括密钥管理系统10和多个服务装置400。并且,密钥管理系统10可包括密钥访问服务器100、多个主机服务器200和密钥管理数据库300。下面,对本发明一实施例的云服务系统的各结构要素进行具体说明。

密钥访问服务器100为可分散管理能够对由云服务的实例使用的服务密钥进行加解密的主密钥的服务器。特别是,本发明一实施例的密钥访问服务器100可在利用主密钥来对服务密钥进行加密之后,生成仅在特定条件下能够重构主密钥的多个密钥块,并将生成的密钥块分散存储在多个主机服务器200中。此外,密钥访问服务器100可以以从多个主机服务器200接收的密钥块为基础重构主密钥,并利用重构的主密钥来对服务密钥进行解密。关于这种密钥访问服务器100,稍后参照图2至图9来进行具体说明。

接着,多个主机服务器200为可从密钥访问服务器100接收密钥块并存储的服务器。更具体来讲,多个主机服务器200为用于提供云服务的同种或异种服务器中设置有用于管理密钥的代理(Key management agent)的服务器。例如,在多个主机服务器200中可包括设置有用于管理密钥的代理的、使用者管理服务器、服务器协调装置、数据分析服务器、事件管理服务器或大数据存储服务器等,但并不限定于此,也可以包括仅用于管理密钥的专用服务器。这种多个主机服务器200可形成主机组20。

主机组20中所包括的多个主机服务器200可从密钥访问服务器100接收密钥块并存储。并且,多个主机服务器200可响应于密钥访问服务器100的请求,提取已存储的密钥块并传送给密钥访问服务器100。

主机组20中所包括的多个主机服务器200可在利用加密密钥(encryption key)来对密钥块进行加密之后,将加密后的密钥块传送给密钥访问服务器100。在此,加密密钥可预先设置(preset)成每个主机服务器200各不相同,但并不限定于此,也可以通过实时指定临时密钥(temporary key)来与密钥访问服务器100共享。

主机组20中所包括的多个主机服务器200可利用用于验证密钥访问服务器100所公开的密钥块的数据来判断密钥访问服务器100是否为恶意(malicious)服务器。

主机组20中所包括的多个主机服务器200可在从密钥访问服务器100接收密钥块之后,计算接收到的密钥块的哈希值(Hash value)并传送给密钥访问服务器100。

并且,主机组20中所包括的多个主机服务器200可根据密钥访问服务器100的请求,生成用于保障随机且唯一的主密钥的生成的随机种子(seed)并传送给密钥访问服务器100。

接着,密钥管理数据库300为可存储利用主密钥来加密后的服务密钥的数据库。更具体来讲,密钥管理数据库300可存储从密钥访问服务器100接收的加密后的服务密钥。此外,密钥管理数据库300可包括并存储主密钥表和服务密钥表。

在此,在主密钥表中可包含有主密钥的标识符(identification)、云服务使用者的标识符、服务密钥的标识符、主密钥的生成日期和时间、主密钥的哈希值或分散存储有主密钥的密钥块的主机服务器200的标识符等,但并不限定于此。

并且,在服务密钥表中可包含有服务密钥的标识符、云服务使用者的标识符和服务密钥使用履历等,但并不限定于此。

这种密钥管理数据库300可以是与密钥访问服务器100独立的结构要素,但并不限定于此,也可以是构成密钥访问服务器100的一个结构要素,这对本领域技术人员来说是显而易见的。进一步,密钥管理数据库300可以是在主密钥表和服务密钥表等之间存在规定关系(relation)的关系型数据库(Relational DataBase,RDB),但并不限定于此。

接着,服务装置400为提供云服务的服务器。更具体来讲,服务装置400可通过管理程序(Hypervisor)被虚拟化(virtualization)。在此,管理程序为分配服务装置400的资源和其它资源,并提供用于资源管理和监测的界面的平台。并且,服务装置400可通过虚拟化的虚拟机(virtual machine),执行用于云服务的应用或应用实例。

服务装置400的实例可利用服务密钥来对云服务数据进行加密。服务装置400可通过将服务密钥传送给密钥访问服务器100来请求保护。此外,在需要云服务数据的情况下,服务装置400可从密钥访问服务器100接收服务密钥之后,利用接收到的服务密钥来对云服务数据进行解密。

并且,服务装置400可利用密钥管理互操作性协议(Key Management Interoperability Protocol,KMIP)来与密钥访问服务器100进行数据收发。此外,服务装置400可利用安全套接层/传输层安全协议(Secure Sockets Layer/Transport Layer Security Protocol,SSL/TLS Protocol)来与密钥访问服务器100进行数据收发。

参照图2,本发明另一实施例的云服务系统进一步可包括网关500和数据总线装置600。下面,对根据本发明另一实施例进一步包含在云服务系统中的结构要素进行具体说明。

网关500可控制服务装置400与密钥管理系统10之间的访问。更具体来讲,网关500可限制服务装置400对包含在密钥管理系统10内的服务器的访问。此外,网关500可限制包含在密钥管理系统10内的服务器对服务装置400的访问。

并且,网关500可向服务装置400提供根据表述性状态转移(REpresentational State Transfer,REST)体系结构的应用程序设计接口(Application Programming Interface,API)。此外,网关500可将根据从服务装置400接收的数据的事件传送给数据总线装置600。

接着,数据总线装置600可控制包含在密钥管理系统10中的服务器之间的数据传送。更具体来讲,数据总线装置600可将从网关500接收的事件传送给密钥访问服务器100或主机服务器200等。此外,数据总线装置600可控制密钥访问服务器100或主机服务器200之间的数据传送。

但是,即使在密钥管理系统10中包括数据总线装置600,密钥访问服务器100也可以不利用数据总线装置600,而是与主机服务器200直接收发密钥块。

参照图3,本发明又一实施例的云服务系统可通过对多个密钥访问服务器100进行聚类(clustering)而被构建。下面,对根据本发明又一实施例进一步包含在云服务系统中的结构要素进行具体说明。

为了提高密钥访问服务器100对主密钥的访问速度,基于存储器的数据库700可将密钥访问服务器100反复利用的主密钥存储在存储器中。更具体来讲,基于存储器的数据库700可接收由密钥访问服务器100重构的主密钥。基于存储器的数据库700可将重构的主密钥存储在存储器中(in-memory)。基于存储器的数据库700可从密钥访问服务器100接收主密钥提供请求。基于存储器的数据库700可响应于主密钥提供请求,将存储在存储器中的主密钥传送给密钥访问服务器100。

下面,对本发明一实施例的密钥访问服务器100的主密钥分散存储方法及主密钥重构方法进行具体说明。

图4是用于说明本发明一实施例的主密钥分散存储方法的顺序图。

参照图4,密钥访问服务器100从服务装置400的实例接收服务密钥(S105)。在此,服务密钥为由云服务使用者的实例为了对数据进行加解密而使用的密钥。这种服务密钥可根据云服务的使用者、通过云服务提供的服务或通过云服务提供的服务应用等而具有彼此不同的大小或类型,但并不限定于此。此外,密钥访问服务器100可利用密钥管理互操作性协议(KMIP)来从服务装置400的实例接收服务密钥,但并不限定于此。

进一步,密钥访问服务器100可在从服务装置400的实例接收服务密钥之前,从服务装置400的实例接收云服务使用者的标识符及服务密钥的标识符,并利用接收到的服务使用者的标识符和服务密钥的标识符来认证实例,但并不限定于此。

接着,密钥访问服务器100生成用于加密接收到的服务密钥的主密钥(S110)。具体来讲,密钥访问服务器100向主机服务器200请求随机种子(seed)。密钥访问服务器100以从主机服务器200接收到的随机种子为基础,根据已指定的随机生成机制来生成主密钥。因此,由密钥访问服务器100生成的主密钥可根据云服务的使用者(tenant)、通过云服务提供的服务或与云服务关联的业务等而具有随机且唯一的值。此外,密钥访问服务器100在需要新的主密钥的时刻从稳定连接的主机服务器200接收随机种子,并以接收到的随机种子为基础生成主密钥,由此能够降低预测已生成的主密钥值的可能性。

接着,密钥访问服务器100利用生成的主密钥来对服务密钥进行加密(S115)。并且,密钥访问服务器100将加密后的服务密钥存储在密钥管理数据库300中(S120)。

接着,密钥访问服务器100生成用于重构主密钥的两个以上的密钥块(S125)。具体来讲,密钥访问服务器100可生成仅在存在临界数(threshold)以上的情况下能够重构主密钥的密钥块。下面,对密钥访问服务器100的密钥块生成方法进行更具体说明。

假设密钥访问服务器100为了重构主密钥而至少需要的密钥块的临界数为k。例如,临界数k可以是3,但并不限定于此。密钥访问服务器100生成k-1个随机数(random number)。假设密钥访问服务器100所生成的各个随机数为ak-1、ak-2、…、a1。并且,密钥访问服务器100将a0设定为主密钥。

密钥访问服务器100生成1至k-1次项系数为ak-1、ak-2、…、a1,0次项系数为a0的k次多项式f(x)。密钥访问服务器100所生成的多项式f(x)如以下数学式1所示。

[数学式1]

f(x)=ak-1xk-1+ak-2xk-2+…+a1x+a0

在此,f(0)为主密钥。

密钥访问服务器100以关于想要分散存储密钥块的n个主机服务器200的标识符的多项式f(x)的函数值为基础,生成n个密钥块。在此,1<k≤n。

因此,本发明一实施例的密钥管理系统10可生成与主密钥完全不同的形式的n个密钥块。

此外,密钥访问服务器100也可以将多项式f(x)的函数值除以主密钥可具有的最大大小的余数(mod)作为密钥块来生成。此时,生成的密钥块大小可均相同。

因此,本发明一实施例的密钥管理系统10以所有密钥块的大小相同的方式生成密钥块,由此即使密钥块的一部分流失到外部或内部也难以以流失的密钥块的大小为基础预测主密钥。

接着,密钥访问服务器100利用每个主机服务器200各不相同的加密密钥来对生成的n个密钥块进行加密(S130)。在此,加密密钥可以已指定成每个主机服务器200各不相同。这种加密密钥可在对主机服务器200安装用于管理密钥的代理时被设定到密钥访问服务器100中,但是并不限定于此,也可以从主机服务器200实时接收指定的临时密钥(temporary key)。

因此,本发明一实施例的密钥管理系统10利用每个主机服务器200各不相同的加密密钥来对密钥块进行加密,由此即使第一主机服务器200的加密后的密钥块流失到第二主机服务器200,无法知道第一主机服务器200的加密密钥的第二主机服务器200也不可能对加密后的密钥块进行解密。

接着,密钥访问服务器100将n个加密后的密钥块分散存储在n个主机服务器200中(S135)。更具体来讲,密钥访问服务器100可利用密钥分散协议(key sharing protocol)来将密钥块传送给主机服务器200。在此,密钥分散协议为以不允许主机组20中所包括的主机服务器200之间进行数据收发的方式定义的固有协议。此外,密钥分散协议为以仅在数据收发的一侧为密钥访问服务器100的情况下允许数据收发的方式定义的协议。

此外,密钥访问服务器100在主机组20中所包括的主机服务器200中选择想要存储密钥块的主机服务器200时,可选择与同作为密钥块的基础的主密钥相关的使用者的云服务不关联的主机服务器200。即,密钥访问服务器100可将关于第一使用者的主密钥分散存储在与提供给第一使用者的云服务不关联的主机服务器200中。

因此,本发明一实施例的密钥管理系统10通过将关于第一使用者的主密钥分散存储在与提供给第一使用者的云服务不关联的主机服务器200中,与第一使用者具有密切关系的人无法从与第一使用者的云服务关联的主机服务器200中收集密钥块。

接着,密钥访问服务器100从分散存储有密钥块的n个主机服务器200分别接收哈希值(S140)。并且,密钥访问服务器100通过对接收到的哈希值和生成的密钥块的哈希值进行比较来判断是否彼此相同(S145)。判断结果,在从n个主机服务器200分别接收的哈希值和以主密钥为基础生成的各个密钥块的哈希值中存在不同的哈希值的情况下,密钥访问服务器100可向相应的主机服务器200重新传送加密后的密钥块。

判断结果,在从n个主机服务器200分别接收到的哈希值和以主密钥为基础生成的各个密钥块的哈希值均相同的情况下,密钥访问服务器100将各个密钥块的哈希值存储在密钥管理数据库300中。并且,在存储器或贮存器中存储有主密钥的情况下,密钥访问服务器100删除存储的主密钥(S150)。

因此,本发明一实施例的密钥管理系统10通过在用专门的主密钥对云服务中所使用的服务密钥进行加密之后,生成并分散存储仅在存在临界数以上的情况下能够重构主密钥的密钥块,并且在任何服务器或装置中也不会存储主密钥,能够确保主密钥的机密性。

图5是用于说明本发明一实施例的主密钥重构方法的顺序图。

参照图5,密钥访问服务器100从服务装置400的实例接收服务密钥的提供请求(S205)。密钥访问服务器100可利用安全套接层/传输层安全协议(SSL/TLS Protocol)来从服务装置400的实例接收服务密钥的提供请求,但并不限定于此。

进一步,密钥访问服务器100可在从服务装置400的实例接收服务密钥的提供请求之前,从服务装置400的实例接收云服务使用者的标识符和服务密钥的标识符,并利用接收到的服务使用者的标识符和服务密钥的标识符来认证实例,但并不限定于此。

接着,密钥访问服务器100判断在密钥访问服务器100的存储器或基于存储器的数据库700中是否存在关于请求提供服务密钥的实例的主密钥(S210)。

判断结果,在密钥访问服务器100的存储器和基于存储器的数据库700中不存在相应的主密钥的情况下,从分散存储有密钥块的n个主机服务器200中识别大于或等于主密钥重构中所需要的密钥块的临界数k的数目的主机服务器200。并且,密钥访问服务器100利用关于识别出的各个主机服务器200的加密密钥来对密钥块请求消息分别进行加密(S215)。

接着,密钥访问服务器100向识别出的各个主机服务器200传送加密后的密钥块请求消息(S220)。在此,密钥访问服务器100可不向分散存储有密钥块的所有n个主机服务器200传送加密后的密钥块请求消息,而是仅对分散存储有密钥块的n个主机服务器200中的、大于或等于主密钥重构中所需要的密钥块的临界数k的数目的主机服务器200传送加密后的密钥块请求消息。

此外,密钥访问服务器100可利用密钥分散协议来传送加密后的密钥块请求消息。在此,密钥分散协议为以不允许主机组20中所包括的主机服务器200之间进行数据收发的方式定义的固有协议。此外,密钥分散协议为以仅在数据收发的一侧为密钥访问服务器100的情况下允许数据收发的方式定义的协议。

接着,密钥访问服务器100从传送密钥块请求消息的各个主机服务器200接收加密后的密钥块(S225)。密钥访问服务器100可利用密钥分散协议来接收加密后的密钥块。并且,密钥访问服务器100利用关于传送密钥块请求消息的主机服务器200的加密密钥来对加密后的各个密钥块进行解密(S230)。

接着,密钥访问服务器100通过对解密后的各个密钥块的哈希值和分别存储在密钥管理数据库300中的哈希值进行比较,来判断是否彼此相同(S235)。判断结果,在解密后的各个密钥块的哈希值和分别存储在密钥管理数据库300中的哈希值中存在不同的哈希值的情况下,密钥访问服务器100可向相应的主机服务器200重新传送加密后的密钥传送请求消息。

判断结果,在解密后的各个密钥块的哈希值和分别存储在密钥管理数据库300中的哈希值均相同的情况下,密钥访问服务器100以密钥块为基础重构主密钥(S240)。具体来讲,密钥访问服务器100可利用拉格朗日差值法(Lagrange interpolation)来重构主密钥。下面,对密钥访问服务器100的主密钥重构方法进行具体说明。

假设为了重构主密钥而所需要的密钥块的临界数为k,关于主机服务器200i的密钥块为yi。密钥访问服务器100可利用以下数学式2来计算主密钥f(0)。

[数学式2]

<mrow> <mi>f</mi> <mrow> <mo>(</mo> <mn>0</mn> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>k</mi> </munderover> <msub> <mi>y</mi> <msub> <mi>i</mi> <mi>j</mi> </msub> </msub> <munder> <mo>&Pi;</mo> <mrow> <mn>1</mn> <mo>&le;</mo> <mi>l</mi> <mo>&le;</mo> <mi>k</mi> <mo>,</mo> <mi>l</mi> <mo>&NotEqual;</mo> <mi>j</mi> </mrow> </munder> <mfrac> <msub> <mi>x</mi> <msub> <mi>i</mi> <mi>l</mi> </msub> </msub> <mrow> <msub> <mi>x</mi> <msub> <mi>i</mi> <mi>l</mi> </msub> </msub> <mo>-</mo> <msub> <mi>x</mi> <msub> <mi>i</mi> <mi>j</mi> </msub> </msub> </mrow> </mfrac> </mrow>

因此,本发明一实施例的密钥管理系统10在分散存储在n个主机服务器200中的n个密钥块中存在少于临界数k的数目的密钥块的情况下无法重构主密钥,仅在存在大于或等于临界数k的数目的密钥块的情况下能够重构主密钥。

接着,密钥访问服务器100可将重构的主密钥存储在基于存储器的数据库700中(S245)。在本发明一实施例的密钥管理系统10中不包括基于存储器的数据库700的情况下,可省略本步骤来执行,这对本领域技术人员来说是显而易见的。

接着,密钥访问服务器100从密钥管理数据库300中提取与实例的请求关联的加密后的服务密钥(S250)。密钥访问服务器100利用主密钥来对加密后的服务密钥进行解密(S255)。并且,密钥访问服务器100将解密后的服务密钥传送给服务装置400的实例(S260)。

因此,本发明一实施例的密钥管理系统10即使丢失分散存储的密钥块的一部分也能够重构主密钥,从而能够确保主密钥的可用性。此外,即使流失为了生成主密钥而所需要的临界数以上的密钥块,也因多个密钥块各自以不同的加密密钥被加密从而仅用流失的密钥块无法重构主密钥。

下面,对本发明另一实施例的主密钥分散存储方法及主密钥重构方法进行具体说明。

图6是用于说明本发明另一实施例的主密钥分散存储方法的信号流程图。

参照图6,服务装置400的实例在用服务密钥对云服务的数据进行加密之后,将服务密钥传送给密钥访问服务器100(S305)。具体来讲,服务装置400的实例可利用密钥管理互操作性协议(KMIP)来将服务密钥传送给密钥访问服务器100,但并不限定于此。

密钥访问服务器100生成用于加密接收到的服务密钥的主密钥(S310)。密钥访问服务器100利用生成的主密钥来对接收到的服务密钥进行加密(S315)。并且,密钥访问服务器100将加密后的服务密钥传送给密钥管理数据库300(S320)。

密钥管理数据库300响应于加密后的服务密钥的接收,存储加密后的服务密钥(S325)。

密钥访问服务器100生成用于重构主密钥的两个以上的密钥块(S330)。具体来讲,密钥访问服务器100可生成仅在存在临界数以上的情况下能够重构主密钥的密钥块。由于关于密钥访问服务器100的密钥块生成方法的更具体说明与参照图4来进行详细说明的相同,因此不再重复说明。

密钥访问服务器100利用每个主机服务器200各不相同的加密密钥来对密钥块分别进行加密(S335)。在此,加密密钥可在对主机服务器200安装用于管理密钥的代理时被设定到密钥访问服务器100中,但并不限定于此,也可以从主机服务器200实时接收指定的临时密钥。

密钥访问服务器100将加密后的各个密钥块传送给多个主机服务器200(S340)。密钥访问服务器100可利用密钥分散协议来将密钥块传送给多个主机服务器200。

多个主机服务器200利用各个加密密钥来对接收到的密钥块进行解密(S345)。多个主机服务器200生成解密后的密钥块的哈希值(S350)。多个主机服务器200存储解密后的密钥块(S355)。并且,多个主机服务器200将生成的哈希值传送给密钥访问服务器100。

密钥访问服务器100通过将从主机服务器200接收到的哈希值和以主密钥为基础生成的密钥块的哈希值进行比较,来判断是否彼此相同(S365)。判断结果,在从主机服务器200接收到的哈希值和以主密钥为基础生成的密钥块的哈希值中存在不同的哈希值的情况下,密钥访问服务器100可向相应的主机服务器200重新再传送加密后的密钥块。

判断结果,在从主机服务器200接收到的哈希值和以主密钥为基础生成的密钥块的哈希值均相同的情况下,密钥访问服务器100删除存储在存储器或贮存器中的主密钥(S370)。

图7是用于说明本发明另一实施例的主密钥重构方法的信号流程图。下面,假设在密钥访问服务器100的存储器和基于存储器的数据库700中不存在主密钥。

参照图7,为了对云服务数据进行解密,服务装置400的实例将服务密钥的提供请求传送给密钥访问服务器100(S405)。具体来讲,服务装置400的实例可利用安全套接层/传输层安全协议(SSL/TLS Protocol)来向密钥访问服务器100传送服务密钥的提供请求,但并不限定于此。

密钥访问服务器100响应于接收到服务密钥的提供请求,识别分散存储有用于解密服务密钥的主密钥的密钥块的多个主机服务器200。密钥访问服务器100利用关于识别出的各个主机服务器200的加密密钥来对密钥块请求消息分别进行加密(S410)。并且,密钥访问服务器100向识别出的各个主机服务器200传送加密后的密钥块请求消息(S415)。

多个主机服务器200用各自的加密密钥对加密后的密钥块请求消息进行解密。并且,多个主机服务器200验证密钥访问服务器100是否为恶意(malicious)服务器(S420)。下面,对费尔德曼(Feldman)所建议的利用离散对数的主机服务器200的验证方法进行更具体说明。

假设密钥访问服务器100对多个主机服务器200公开了生成密钥块的函数的系数t的加密后的值E(a)、E(a1)、…、E(at-1)。在以下数学式3不成立的情况下,主机服务器200i可判断为密钥访问服务器100是恶意服务器。

[数学式3]

E(f(i))≡E(a0)+(E(a1)×E(i1))+…+(E(at-1)×E(it-1))

但是,多个主机服务器200并不限定于费尔德曼所建议的验证方法,也可以利用佩德森(Pederson)所建议的验证方法来验证密钥访问服务器100。

在密钥访问服务器100并不是恶意服务器的情况下,多个主机服务器200提取各自存储的密钥块,并用各自的加密密钥对提取出的密钥块进行加密(S425)。并且,多个主机服务器200将加密后的密钥块传送给密钥访问服务器100(S430)。

密钥访问服务器100利用关于传送密钥块的各个主机服务器200的加密密钥,来对加密后的密钥块进行解密(S435)。并且,密钥访问服务器100向密钥管理数据库300传送密钥块的哈希值提供请求(S440)。

密钥管理数据库300响应于密钥块的哈希值提供请求,提取密钥块的哈希值(S445)。并且,密钥管理数据库300将提取出的哈希值传送给密钥访问服务器100(S450)。

密钥访问服务器100通过对解密后的密钥块的哈希值和从密钥管理数据库300接收到的哈希值进行比较,来判断是否彼此相同(S455)。判断结果,在解密后的密钥块的哈希值和从密钥管理数据库300接收到的哈希值中存在不同的哈希值的情况下,密钥访问服务器100可向相应的主机服务器200重新传送加密后的密钥块请求消息。

判断结果,在解密后的密钥块的哈希值和从密钥管理数据库300接收到的哈希值均相同的情况下,密钥访问服务器100以密钥块为基础重构主密钥(S460)。具体来讲,密钥访问服务器100可利用拉格朗日差值法来重构主密钥。由于关于密钥访问服务器100的主密钥重构方法的更具体说明与参照图5来进行详细说明的相同,因此不再重复说明。

密钥访问服务器100向密钥管理数据库300传送加密后的服务密钥提供请求(S465)。

密钥管理数据库300响应于加密后的服务密钥提供请求,提取加密后的服务密钥(S470)。并且,密钥管理数据库300将提取出的加密后的服务密钥传送给密钥访问服务器100(S475)。

密钥访问服务器100利用重构的主密钥来对加密后的服务密钥进行解密(S480)。并且,密钥访问服务器100将解密后的服务密钥传送给服务装置400的实例(S485)。

目前为止,参照图4至图7来进行说明的本发明实施例的方法可通过执行以计算机可读代码实现的计算机程序来执行。计算机程序可通过互联网等网络从第一计算装置被传送到第二计算装置并被安装在第二计算装置中,由此能够在第二计算装置中使用。在此,第一计算装置和第二计算装置均可包括如台式机(Desktop)、服务器(Server)或工作站(Workstation)等的固定式计算装置;如智能手机(Smart phone)、平板电脑(Tablet)、平板手机(Phablet)或膝上型电脑(Laptop)等的移动计算装置;以及如智能手表(Smart Watch)、智能眼镜(Smart Glasses)或智能腕带(Smart Band)等的可穿戴式(Wearable)计算装置。

下面,参照图8和图9,对本发明一实施例的密钥访问服务器100的逻辑结构进行具体说明。

图8是本发明一实施例的密钥访问服务器100的方框图。参照图8,密钥访问服务器100可包括通信部105、存储部110、主密钥生成部115、服务密钥加解密部120、主密钥分散存储部125和主密钥重构部130。

对各个结构进行说明,通信部105可利用密钥分散协议来与主机服务器200进行数据收发。通信部105可通过制作用于请求数据提供的查询(query)来与密钥管理数据库300进行数据收发。此外,通信部105也可以利用密钥管理互操作性协议(KMIP)或安全套接层/传输层安全协议(SSL/TLS Protocol)来与服务装置400进行数据收发。

存储部110可存储密钥访问服务器100的操作中所需要的数据。特别是,在因服务装置400的实例反复请求服务密钥而密钥访问服务器100反复利用用于特定服务的主密钥的情况下,为了提高对主密钥的访问速度,存储部110在基于存储器的存储区中进一步可包括并存储有主密钥135。

主密钥生成部115可生成用于加密服务密钥的主密钥。具体来讲,主密钥生成部115通过通信部105向主机服务器200传送随机种子(seed)。主密钥生成部115通过通信部105从主机服务器200接收随机种子。主密钥生成部115以随机种子为基础,并根据已指定的随机生成机制来生成主密钥。因此,主密钥生成部115所生成的主密钥可根据云服务的使用者(tenant)、通过云服务提供的服务或与云服务关联的业务等而具有随机且唯一的值。此外,主密钥生成部115通过在需要新的主密钥的时刻从稳定连接的主机服务器200接收随机种子,并以接收到的随机种子为基础生成主密钥,能够降低预测所生成的主密钥值的可能性。

服务密钥加解密部120在通过通信部105接收到服务密钥的情况下,可以以通过主密钥生成部115生成的主密钥为基础,对服务密钥进行加密。此外,服务密钥加解密部120在通过主密钥重构部130重构主密钥的情况下,可对加密后的服务密钥进行解密。

主密钥分散存储部125可生成用于重构主密钥的两个以上的密钥块,并通过通信部105传送生成的密钥块。具体来讲,主密钥分散存储部125可生成仅在存在临界数以上的情况下能够重构主密钥的密钥块。由于关于主密钥分散存储部125的密钥块生成方法的更具体说明与参照图4详细说明的相同,因此不再重复说明。

并且,主密钥分散存储部125可利用每个主机服务器200各不相同的加密密钥来对密钥块分别进行加密。主密钥分散存储部125可通过通信部105将加密后的各个密钥块传送给多个主机服务器200。主密钥分散存储部125可通过通信部105接收哈希值。并且,主密钥分散存储部125可通过对接收到的哈希值和密钥块的哈希值进行比较来判断是否彼此相同。

主密钥重构部130可利用两个以上的密钥块来重构主密钥。具体来讲,主密钥重构部130可通过通信部105接收加密后的密钥块。主密钥重构部130可利用关于传送密钥块的各个主机服务器200的加密密钥来对加密后的密钥块进行解密。主密钥重构部130可通过通信部105从密钥管理数据库300接收哈希值。主密钥重构部130可通过对解密后的密钥块的哈希值和从密钥管理数据库300接收的哈希值进行比较,来判断是否彼此相同。

并且,主密钥重构部130可以以解密后的密钥块为基础重构主密钥。具体来讲,主密钥重构部130可利用拉格朗日差值法来重构主密钥。由于关于主密钥重构部130的主密钥重构方法的更具体说明与参照图5来进行详细说明的相同,因此不再重复说明。

目前为止,图8的各结构要素可指软件(Software),或者如现场可编程门阵列(Field-Programmable Gate Array,FPGA)或专用集成电路(Application-Specific Integrated Circuit,ASIC)等的硬件(hardware)。但是,所述结构要素并不限定于软件或硬件,而是可以构成为位于可寻址(addressing)的存储介质中,还可以构成为运行一个或更多个处理器。在所述结构要素内提供的功能可由进一步细分的结构要素来实现,还可以以将多个结构要素相加来执行特定的功能的一个结构要素来实现。

图9是本发明一实施例的密钥访问服务器100的硬件结构图。参照图9,密钥访问服务器100可包括处理器155、存储器160、网络接口165、数据总线170和贮存器175。

存储器160中可驻留有实现密钥管理方法的计算机程序数据180a。此外,在密钥访问服务器100反复利用主密钥的情况下,存储器160可进一步包括并存储主密钥135。

网络接口165可与主机服务器200、密钥管理数据库300进行数据收发。此外,网络接口165也可以与服务装置400进行数据收发。

数据总线170为与处理器155、存储器160、网络接口165和贮存器175相连接从而在各结构要素之间传递数据的移动通道。

并且,贮存器175可存储为了执行计算机程序而所需要的应用程序设计接口(API)、库(Library)或资源(Resource)文件等。此外,贮存器175可存储用于实现密钥管理方法的计算机程序数据180b。

更具体来讲,贮存器175中可存储有包括如下指令的计算机程序:利用主密钥来对由云服务的第一使用者的实例使用的服务密钥进行加密的指令(Instruction);生成用于重构主密钥的两个以上的密钥块的指令;通过网络接口,将密钥块分散存储在用于提供云服务的主机组中所包括的两个以上的主机服务器中的指令;通过网络接口,从第一使用者的实例接收服务密钥的提供请求的指令;通过网络接口,从两个以上的主机服务器接收密钥块,并以接收到的密钥块为基础重构主密钥的指令;以及利用主密钥对加密后的服务密钥进行解密的指令。

以上参照附图对本发明的实施例进行了说明,但本发明所属技术领域的技术人员应能理解,本发明可不变更本发明的技术思想或必要特征而以其它具体方式实施。因此,应理解为以上所述的实施例在所有方面为示例性的并非限定性的。

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