保护密钥库内容的使用的制作方法

文档序号:18095398发布日期:2019-07-06 11:00阅读:144来源:国知局
保护密钥库内容的使用的制作方法

本公开涉及用于保护最终用户的用户装置处的密钥库内容的使用的系统,例如,涉及依赖于使用密钥材料来实现数据安全的数据安全系统。此外,本公开还涉及保护最终用户的用户装置处的密钥库内容的使用的方法。此外,本公开还涉及包括其上存储有计算机可读指令的非暂态计算机可读存储介质的计算机程序产品,所述计算机可读指令能够由包括处理硬件的计算机化装置执行以执行上述方法。



背景技术:

对在用户装置上存储用户敏感数据的需求经常出现,因为目前存在的各种服务和功能被设计为在用户装置上作为软件应用程序运行,例如用于进行支付的软件应用程序。作为第一示例,目前存在用于银行和支付服务的多个应用程序,其中所述多个应用程序需要安全布置以用于在使用银行和支付服务时对客户维持强有力的保护,以便旨在避免恶意第三方侵入此类服务来窃取金钱。作为第二示例,用户可能需要存储秘密或私有密钥来访问受保护的电子邮件。出于这些和许多其它原因,非常希望提供一种用于处理与密钥材料有关的密钥库的稳健解决方案。

存在许多安全服务提供商能够经由多个“生态系统”平台来访问,所述平台的密钥库是基于软件的。例如,androidtm生态系统平台目前备受公众关注,因为全球有大量使用androidtm生态系统平台的移动装置,例如平板状计算装置。参考谷歌文档,androidtm密钥库系统将密码密钥存储在容器中以使得从给定安卓兼容装置提取更加困难。androidtm密钥库系统在当前可用的密钥库系统当中在安全问题上是最先进的,但仍然遗憾的是,缺乏在市场上大量销售的当代装置中提供高效安全解决方案所需要的非常重要的功能性。androidtm密钥库提供了一套基本完整的安全算法,诸如密码、密钥生成器、密钥工厂、密钥对生成器、mac和签名。所有这些服务均在由密钥库系统支持的硬件内部运行以使得使用高效且方便,但是没有考虑到真实世界的密码要求。

此外,仅在几年时间里,移动电话的使用量就有了巨大增长,而且多家厂商拥有不同的装置型号,由不同的生态系统提供动力,诸如androidtmiostm等等。从安全角度来看出现的问题是,每个生态系统具有其自己的安全解决方案以保护基于硬件或基于软件的密钥库中的用户敏感数据。这使得应用程序开发者即使在理论上也很难理解安全相关实施,尽管这是在基本层面上理解。几乎每个生态系统都具有其自己的密钥库解决方案,但从当前迫切需要来看,希望把重点放在移动平台上,因为几乎每个人都将很快拥有某种智能电话和大量不同应用程序,这些应用程序需要恰当实施的密钥库来将用户敏感密钥材料保存在其中。理论上,密钥库几乎满足任何已知安全问题,但实际上,其软件实施并不能满足片上系统(soc)硬件设计的可靠解决方案。

首先,androidtm密钥库的设计不是为了导入数千或数百万个秘密密钥(即,密钥材料),而是设计为仅维持几个秘密密钥。androidtm密钥库是针对相同密钥被一次又一次地用于加密目的的场景来设计的。其次,androidtm密钥库支持一次仅导入一个纯原始密钥,这可能会暴露给恶意方。这是因为androidtm密钥库的安全是基于不对称加密,这是非常缓慢的计算过程。

此外,还有一些常规上已知的基于软件的密钥库解决方案,其中“充气城堡”(别名“bc”)是最知名的提供商。与基于硬件的androidtm密钥库相比,bc支持用于呈抽象语法标记一(asn.1)格式的受保护密钥材料的密钥库导入功能性,其可以一次将一个以上的密钥安全地导入到密钥库中。bc的主要问题是,密钥材料没有完全防止提取,因为密钥材料是从密钥库外部请求的并且被提供给另一个接着使用密钥材料的软件应用程序。这使得恶意第三方有可能从密钥库中检索与经过认证的请求相关的密钥材料。明确地说,在给定bc密钥库中没有对密钥材料加索引,这可能会迫使向恶意方泄露敏感的密钥材料。



技术实现要素:

本公开旨在旨在提供一种用于保护最终用户的给定用户装置处的密钥库内容的使用的改进系统。

此外,本公开旨在提供一种保护最终用户的给定用户装置处的密钥库内容的使用的改进方法。

本公开的另一个目的是至少部分克服如上所讨论的现有技术的至少一些问题。

在第一方面,本公开的实施方式提供一种保护最终用户的给定用户装置处的密钥库内容的使用的方法,其特征在于,该方法包括以下步骤:

(i)在给定用户装置处接收密钥库内容,所述密钥库内容包括使用与给定用户装置兼容的加密凭证进行加密的密钥材料,密钥库内容由密钥服务提供商以与给定用户装置兼容的格式创建并从密钥服务提供商接收;

(ii)将密钥库内容的经加密的密钥材料导入到给定用户装置的受保护密钥库,并且将密钥材料以加密形式存储在受保护密钥库处,其中密钥库内容的所有密钥材料被一次性导入,并且其中密钥库内容以密钥材料不能从密钥库导出的方式存储在密钥库处;以及

(iii)在给定用户装置的受保护密钥库内部,允许给定用户装置的一个或多个密钥库集成服务仅经由密钥引用来访问不可导出的密钥材料以供使用。

本公开的实施方式的优势在于,通过采用从密钥服务提供商到最终用户的给定用户装置的完整端到端过程,来促进密钥库内容抵御未授权访问的完整保护,其中密钥库内容的密钥材料在该过程的任何步骤处都不会被暴露或不安全地处理,一旦存储在给定用户装置的受保护密钥库处就不可导出,并且能够仅经由密钥引用而被与受保护密钥库集成的服务访问以供使用。

在第二方面,本公开的实施方式提供一种计算机程序产品,包括其上存储有计算机可读指令的非暂态计算机可读存储介质,计算机可读指令能够由包括处理硬件的计算机化装置执行以执行根据前述第一方面的方法。

在第三方面,本公开的实施方式提供一种用于保护最终用户的给定用户装置处的密钥库内容的使用的系统,其特征在于,系统能够操作以:

(i)在给定用户装置处接收密钥库内容,密钥库内容包括使用与给定用户装置兼容的加密凭证进行加密的密钥材料,密钥库内容由密钥服务提供商以与给定用户装置兼容的格式创建并从密钥服务提供商接收;

(ii)将密钥库内容的经加密的密钥材料导入到给定用户装置的受保护密钥库,并且将密钥材料以加密形式存储在受保护密钥库处,其中密钥库内容的所有密钥材料被一次性导入,并且其中密钥库内容以密钥材料不能从密钥库导出的方式存储在密钥库处;以及

(iii)在给定用户装置的受保护密钥库内部,允许给定用户装置的一个或多个密钥库集成服务仅经由密钥引用来访问不可导出的密钥材料以供使用。

从附图以及结合所附权利要求书解释的说明性实施方式的详细描述中,本公开的其它方面、优点、特征和目的将变得显而易见。

应领会,在不脱离由所附权利要求书所限定的本公开的范围的情况下,本公开的特征易于以各种组合进行组合。

附图说明

当结合附图阅读时更好地理解以上发明内容以及下面对说明性实施方式的详细描述。为了说明本公开,在附图中示出了本公开的示例性构造。然而,本公开不限于本文所公开的特定方法和设备。此外,本领域的技术人员将理解附图不是按比例绘制的。在任何可能之处,相同的元件已经由相同的标号指示。

现在将参考以下各图仅以举例方式描述本公开的实施方式,其中:

图1a是根据本公开的实施方式的用于保护最终用户的给定用户装置处的密钥库内容的使用的系统的示意图;

图1b是根据本公开的实施方式的保护给定用户装置处的密钥库内容的使用的完整端到端过程流程的示意图;

图1c是根据本公开的实施方式的如何将密钥库内容导入并加载到给定用户装置的受保护密钥库的示意图;以及

图2是描绘根据本公开的实施方式的保护最终用户的给定用户装置处的密钥库内容的使用的方法的步骤的流程图。

在附图中,带下划线数字用于表示带下划线数字上方的项目或带下划线数字邻近的项目。当数字不带下划线而是附有相关联箭头时,所述不带下划线数字用于标识箭头所指向的总体项目。

具体实施方式

以下详细描述说明了本公开的实施方式及其可实施的方案。虽然已经公开了实行本公开的一些模式,但是本领域的技术人员将认识到,用于实现或实践本公开的其它实施例也是可能的。

在第一方面,本公开的实施方式提供保护最终用户的给定用户装置处的密钥库内容的使用的方法,其特征在于,该方法包括以下步骤:

(i)在给定用户装置处接收密钥库内容,所述密钥库内容包括使用与给定用户装置兼容的加密凭证进行加密的密钥材料,密钥库内容由密钥服务提供商以与给定用户装置兼容的格式创建并从密钥服务提供商接收;

(ii)将密钥库内容的经加密的密钥材料导入到给定用户装置的受保护密钥库,并且将密钥材料以加密形式存储在受保护密钥库处,其中密钥库内容的所有密钥材料被一次性导入,并且其中密钥库内容以密钥材料不能从密钥库导出的方式存储在密钥库处;以及

(iii)在给定用户装置的受保护密钥库内部,允许给定用户装置的一个或多个密钥库集成服务仅经由密钥引用来访问不可导出的密钥材料以供使用。

任选地,除了密钥材料之外,受保护密钥库还包括关于被授权以使用存储在受保护密钥库处的密钥材料的最终用户和/或最终用户群组的信息。额外地或替代地,任选地,受保护密钥库包括与密钥材料的使用相关的其它信息。

贯穿本公开,术语“最终用户”涵盖人类用户以及机器。作为示例,最终用户可以是注册的中继机器。这对于使用上述方法来辨识并验证执行机器到机器通信的服务器的情况特别有利。

将了解,保护密钥库以仅供最终用户使用,即防止除了经授权的最终用户之外的任何人进行未授权使用,并且此类对密钥库的保护与被导入的密钥材料的加密无关。换句话说,使用一个或多个不同秘密密钥(诸如一个或多个预共享密钥)对密钥材料进行加密。

任选地,在步骤(i)处以对称加密形式接收密钥材料。任选地,在这点上,使用对称密钥对密钥材料进行加密。

任选地,所述方法包括在给定用户装置的受保护密钥库内部,对一个或多个密钥材料进行解密以由给定用户装置的一个或多个密钥库集成服务使用。

贯穿本公开,术语“密钥引用”大体上指的是指代并识别存储在受保护密钥库处的给定密钥材料的给定引用。换句话说,通过给定密钥引用,知道将使用哪个密钥材料(例如,密钥或证书),并且任选地,待使用的密钥材料位于受保护密钥库的哪个位置。根据本公开的实施例,决不从密钥库提取密钥材料本身。

根据实施方式,借助于密钥材料的索引来实施密钥引用。任选地,索引是按出现次序排列的密钥材料的序数。任选地,该方法包括在密钥库内容内接收待用于经由密钥引用来引用密钥材料的索引。替代地,任选地,该方法包括在给定用户装置处生成待用于经由密钥引用来引用密钥材料的索引。作为示例,索引可以以与在密钥库内容中包括密钥材料的次序对应的连续方式来生成。例如,可以在给定用户装置向密钥服务提供商进行初始注册时或者在对密钥材料进行解密期间生成索引。

根据另一实施例,通过偏移量来实施密钥引用,将基于该偏移量来识别密钥材料。将了解,给定偏移量指代并识别存储在受保护密钥库处的给定密钥材料。出于说明目的,稍后提供偏移量的一些示例。

根据本公开的实施例,通过采用从密钥服务提供商到最终用户的给定用户装置的完整端到端过程来促进对密钥库内容的完整保护以抵御未授权访问,其中密钥库内容的密钥材料在该过程的任何步骤处都不会被暴露或不安全地处理。以加密形式创建密钥库内容并将其传递到给定用户装置。这有可能防止第三方窃听。在给定用户装置处,密钥库内容被一次性导入到给定用户装置的密钥库。

任选地,作为包含所有密钥材料的单个列表(仅出于方便起见,下文称为“密钥代码列表”)来接收密钥库内容。替代地,任选地,作为多个密钥代码列表来接收密钥库内容。将了解,可以同时导入多个密钥代码列表。不管对不同密钥代码列表(即,密钥材料)进行加密的形式如何,所有密钥材料都是被一次性导入。

任选地,在步骤(ii)处,作为单个数据文件将密钥库内容导入到给定用户装置。将了解,密钥库内容中所包括的密钥材料的数目可以多达数千,有可能数百万。在此类情况下,与常规密钥库技术相比,作为单个数据文件导入密钥库内容具有若干优点。

仅出于说明目的,现在将考虑上述系统的示例实施,其采用gurulogicmicrosystemoy的专有产品在此类实施中,一旦在给定用户装置处接收到密钥库内容,则使用由产品的密钥库提供的“加载”功能来将所有密钥材料一次性导入到密钥库。任选地,“加载”功能还在密钥库内安全地对密钥材料进行解密以实现其快速使用。将了解,“加载”功能可以用于一次性导入所有密钥材料,即使在密钥库内容中包括有数百万个密钥材料时。

上述同时导入大量密钥材料是通过不同实施方案来实现的,诸如以下选项:

选项a:

密钥代码列表包括八个不同128位密钥;这个密钥代码列表消耗128字节的存储空间。因为最小单位大小是一个字节,其代表八个位,所以128位密钥消耗16字节的存储空间。将了解,密钥通常表示最大可能的熵,从而加强了由此获得的保护,并且因此这些密钥不能用传统压缩技术来压缩。

可以如下表示示例的密钥代码列表:

keycodelista:uint8的数组[0..15]中的数组[0..7]=

(0x4b,0xda,0x72,0x44,0xb3,0x12,0x07,0x43,0x6f,0x65,0x83,0x8c,0xf5,0x3f,0xf1,0x08,//密钥1

0xca,0x1e,0x7f,0xdf,0x5c,0x7f,0x78,0x0c,0x55,0x88,0x96,0x0b,0xa9,0xd9,0x22,0x6f,//密钥2

0xb6,0x43,0x73,0x84,0x57,0x86,0x66,0xf8,0x79,0xb0,0xcc,0xa0,0x16,0x13,0x42,0xdf,//密钥3

0xf0,0x6b,0x2b,0xf8,0x68,0x5a,0x31,0xcf,0x9a,0x65,0xf1,0xc7,0x94,0x62,0xdd,0x9b,//密钥4

0xb1,0x28,0x68,0xee,0x1b,0x4d,0x43,0x07,0xe4,0x97,0xff,0x00,0x01,0xff,0x00,0xe0,//密钥5

0xee,0x1f,0xfd,0xa9,0x69,0xe5,0xff,0x00,0xdf,0x67,0x67,0xf70xb0,0xb9,0xaa,0x77,//密钥6

0x9e,0x55,0xac,0xe3,0xfe,0x16,0x27,0xd9,0xed,0xe1,0x2b,0xff0x00,0x13,0xff,0x00,//密钥7

0xb5,0xe2,0x28,0x56,0x2d,0xbf,0xe9,0x39,0x1f,0xf0,0x74,0x9f,0x95,0x19,0x05,0x07,//密钥8);

其中16个字节的连续序列各自代表密钥。在这个示例中,密钥是基于密钥偏移量来生成的,即通过将偏移量增加密钥的大小(在这个示例中为16个字节)来生成。

任选地,一次性导入是通过“压缩”待传递的密钥来完成的。存在至少两种不同方式(即,选项1)“b”和“c”,以及2)“d”)来实施这一点:

选项b:

仅出于说明目的,现在将相对于同一示例密钥代码列表来描述选项“b”。任选地,通过基于字节偏移量而不是密钥偏移量来选择密钥,从同一密钥代码列表生成128个密钥(=8×16)。作为示例,前三个密钥可以如下生成:

keycodelistb:uint8的数组[0..127]=

(0x4b,0xda,0x72,0x44,0xb3,0x12,0x07,0x43,0x6f,0x65,0x83,0x8c,0xf5,0x3f,0xf1,0x08,//来自字节偏移量“0”的密钥1

(0xda,0x72,0x44,0xb3,0x12,0x07,0x43,0x6f,0x65,0x83,0x8c,0xf5,0x3f,0xf1,0x08,0xca//来自字节偏移量“1”的密钥2

(0x72,0x44,0xb3,0x12,0x07,0x43,0x6f,0x65,0x83,0x8c,0xf5,0x3f,0xf1,0x08,0xca,0x1e,//来自字节偏移量“2”的密钥3

将了解,可以通过以任何预定义次序选择偏移量来生成密钥,并且不一定总是通过将偏移量增加1来生成密钥,如在选项“a”中提供的示例密钥代码列表的上述示例中所说明。

选项c:

使用同一密钥代码列表,有可能通过基于位偏移量而不是密钥和字节偏移量选择密钥来生成1024个密钥(=8×16×8个密钥)而不是上述八(8)个和128个密钥。例如,前三个16字节密钥(在选项“b”中生成)可以如下转换为位:

0100101111011010011100100100010010110011000100100000011101000011

0110111101100101100000111000110011110101001111111111000100001000

1101101001110010010001001011001100010010000001110100001101101111

0110010110000011100011001111010100111111111100010000100011001010

0111001001000100101100110001001000000111010000110110111101100101

1000001110001100111101010011111111110001000010001100101000011110

因此,来自位偏移量“0”的第一128位密钥是:

0100101111011010011100100100010010110011000100100000011101000011

0110111101100101100000111000110011110101001111111111000100001000

并且来自位偏移量“1”的第二128位密钥是:

1001011110110100111001001000100101100110001001000000111010000110

1101111011001011000001110001100111101010011111111110001000010001

并且来自位偏移量“2”的第三128位密钥是:

0010111101101001110010010001001011001100010010000001110100001101

1011110110010110000011100011001111010100111111111100010000100011

换句话说,与原始密钥相比,这种技术能够使用相同数量的密钥材料生成128倍密钥。

将了解,代替使用前述密钥偏移量、前述字节偏移量或前述位偏移量,还可以使用其它类型的偏移量,诸如字偏移量,取决于是增大处理速度还是生成更大量密钥更重要。

选项d:

根据实施例,在给定用户装置的装置存储器中扩展65535个密钥,例如如下:

(a)将128位密钥扩展为(例如)352位密钥;

(b)将192位密钥扩展为(例如)432位密钥;以及

(c)将256位密钥扩展为(例如)512位密钥。

接着可以相对于密钥库集成服务使用这些密钥,例如,使用诸如aes、salsa20和chacha20等算法,但不限于此。

密钥材料可以用于各种目的,诸如密码学、数据保护(例如,加密和解密)、签名、完整性、验证、认证、授权等。有利的是,使得密钥材料能够在受保护密钥库内部被密钥库集成服务访问以供使用,所述密钥库集成服务仅经由密钥引用来访问密钥材料以供使用。换句话说,软件应用程序或生态系统进程不能从密钥库外部访问密钥材料。

如果恶意方试图使用密钥引用来访问、评估或调试其对应密钥材料,则任选地引起异常。作为示例,如果密钥库是在androidtm上实施的并且技术接口是使用java构建的,其中在sun的java与googleandroidtm的java之间混合安全解决方案的技术实施,则密钥库应当支持googleandroidtm开发者参考文献中所定义的完全所需接口,使得可以使用已经存在的java应用编程接口(api)来进行技术实施。然而,密钥库的技术实施不允许访问、评估或调试给定密钥引用所引用的密钥材料。

在本公开的实施例中,密钥库内容由密钥服务提供商以前述格式创建,即以与给定用户装置兼容的格式创建,以便符合给定用户装置的密钥库的导入功能。这显著加快了给定用户装置处的步骤(ii)的导入过程。任选地,密钥库内容由密钥服务提供商以符合广泛用户装置的密钥库导入功能的格式创建;例如,用户装置采用以硬件实施的各种类型的专有安全密钥库,诸如前述tee,并且采用软件支持的接口来向由密钥服务提供商发送的所接收的加密密钥库内容文件提供由安全密钥库呈现的标准化功能性的入口。任选地,在这点上,在密钥服务提供商处,密钥库内容被单独定制以与各种不同类型的用户装置兼容。

此类用户装置的示例包括但不限于移动电话、智能电话、移动互联网装置(mid)、平板计算机、超移动个人计算机(umpc)、平板手机计算机、个人数字助理(pda)、连网板、个人计算机(pc)、手持式pc、膝上型计算机、台式计算机和交互式娱乐装置,诸如游戏机、电视(tv)机和机顶盒(stb)。

此外,将了解,给定用户装置的密钥库可以是基于硬件的或基于软件的,例如如在tee(“可信执行环境”)中使用硬件来实施,其防止在将密钥库内容初始导入并加载到给定用户装置的受保护密钥库之后从其导出数据。

根据本公开的实施方式,密钥库是基于硬件的。任选地,在此类情况下,步骤(ii)处的导入包括将存储在基于硬件的密钥库处的密钥材料绑定到给定用户装置的处理硬件的安全区域。随后,在使用中,存储在密钥库中的密钥材料经由使用其引用来访问以供使用,但是不能从密钥库导出。任选地,指针用于传送密钥材料的密钥引用以由密钥库集成服务使用。

一个或多个可信软件应用程序(例如,需要使用密钥库中的密钥材料的加密算法和/或解密算法)在操作中受到给定用户装置的内核层的保护。例如,给定用户装置的内核层以硬件与软件的混合来实施,并且通常是给定用户装置专有的,例如是给定用户装置的制造商专有的。可信软件应用程序介接到给定用户装置上的、在操作中支持的其它软件层中所支持的其它软件应用程序。有利的是,一个或多个可信软件应用程序以加密形式从可信软件服务提供商下载。任选地,密钥服务提供商和可信软件服务提供商是同一方。替代地,任选地,密钥服务提供商和可信软件服务提供商是相互不同的两方。

因此,将了解,在包括硬件实施的密钥库的给定用户装置中,还存在托管于所述装置中的内核层和一个或多个软件层。可以导入软件应用程序并且接着在一个或多个软件层中执行。此外,由可信软件服务提供商提供的其它可信软件应用程序可以在内核层中执行,在该情况下可信软件应用程序受到内核层的安全防范的保护,所述安全防范通常比一个或多个软件层更安全;出于本公开的目的,受内核层的安全防范保护的软件应用程序被称为“密钥库集成服务”。在操作中,在一个或多个软件层中所支持的应用程序与内核层中所托管的“密钥库集成服务”之间发生各种数据交换。

任选地,处理硬件的安全区域借助于专用硬件来实施,所述专用硬件被配置为不允许外部加载的软件应用程序或程序(即,在上述一个或多个软件层中)在专用硬件上进行操作。将了解,此类外部加载的软件应用程序或程序可能由敌对第三方恶意加载。更任选地,处理硬件的安全区域借助于可信执行环境(tee;参见参考文献[1])来实施,例如如上所述。

以这种方式,方法促进给定用户装置的软件与安全硬件之间的坚实且牢固的集成。

根据本公开的实施例,“密钥材料”包括以下至少一者:

(a)用于对称数据加密的秘密密钥,

(b)用于公钥基础设施(pki)等效用法的私有密钥和公开密钥,

(c)待用于密码学、签名、完整性、验证、认证、授权等的证书,

(d)用于生成密钥的一个或多个密钥生成器。

任选地,在这点上,一个或多个密钥生成器用于可再现地生成密钥。换句话说,在每次使用相同输入时,给定密钥生成器都生成相同密钥。

任选地,使用额外加密来单独保护一个或多个密钥材料。这对于某些安全应用特别有利。

将了解,即使pki本身使用不对称加密,密钥材料仍然可以使用对称加密来导入。

此外,任选地,密钥材料包括一次性密钥,所述一次性密钥将仅使用一次并且将在使用之后丢弃。例如,此类一次性密钥可以用于登录到给定服务。额外地或替代地,任选地,至少一些密钥是可重复使用的加密密钥。

此外,任选地,密钥库能够充当密钥生成器,并且能够可再现地生成新密钥。

此外,根据本公开的实施方式,方法包括将被授权以使用给定用户装置的密钥库的托管在给定用户装置处的一个或多个可信软件应用程序或生态系统进程与密钥库集成。如上所述,贯穿本公开,此类集成软件应用程序或生态系统进程被称为“密钥库集成服务”。密钥库集成服务的示例包括但不限于数据传递服务、内容传递服务、银行服务和金融交易服务;此类服务通常涉及使用一个或多个密钥对数据进行加密和/或解密。

任选地,在这点上,方法包括从可信软件服务提供商导入用于提供密钥库集成服务的一个或多个可信软件应用程序,其中当在给定用户装置处执行时,所述一个或多个可信软件应用程序可操作以提供一个或多个密钥库集成服务,并且被提供来自给定用户装置的内核的保护。

此外,任选地,当密钥库是基于硬件时,使用符合基于硬件的密钥库的对称加密来对密钥材料进行加密。任选地,在这点上,方法包括在密钥服务提供商处通过采用对称高级加密标准(aes;参见参考文献[2])加密来对密钥材料进行加密,例如,使用128位密钥或256位密钥。

替代地,任选地,当密钥库是基于软件时,使用符合基于软件的密钥库的不对称加密来对密钥库内容进行加密。

此处将了解,为了使给定用户装置能够对加密密钥库内容进行解密,给定用户装置必须知道在加密期间所使用的加密凭证。将了解,在本公开的实施例中,使用哪种加密算法或哪种加密凭证来对密钥库内容进行加密是不相关的,因为不同装置供应商和生态系统提供商可以实施多个不同安全解决方案,所述安全解决方案接着可以由多个不同安全服务提供商在具有其自己的基于硬件或基于软件的密钥库的不同平台上实施。

此外,如先前提到,用于对密钥材料进行加密的加密凭证与给定用户装置兼容。此类兼容的加密凭证可以由给定用户装置或密钥服务提供商提供。任选地,在这点上,方法包括在密钥服务提供商处使用由给定用户装置或密钥服务提供商提供的加密密钥数据来对密钥库内容进行加密。

根据本公开的实施方式,方法包括在给定用户装置处使用最终用户的生物凭证的令牌(token)来保护密钥库。任选地,在这点上,最终用户的生物凭证包括以下中的至少一者:最终用户的指纹、最终用户的面部特征、最终用户的dna图谱、最终用户的虹膜辨识、最终用户的行走方式、最终用户的书写方式、最终用户的心跳模式。将了解,用于保护密钥库的最终用户的生物凭证是借助于最终用户装置的基于硬件的功能性来提供的。这些基于硬件的功能性例如可以借助于tee来实施。作为示例,可以使用最终用户装置的相机捕获最终用户的面部特征,并且使用图像相关性或使用神经网络算法对照参考模板进行验证。将了解,最终用户的生物凭证可以替代地对应于将来可行的任何其它类型的生物统计验证。

根据本公开的另一实施方式,方法包括在给定用户装置处使用与最终用户相关联的个人识别码(pin)来保护密钥库。将了解,pin是借助于最终用户装置的基于硬件的功能性来提供的。

根据本公开的又一实施方式,方法包括在给定用户装置处使用应用特定标识(id)来保护密钥库。任选地,应用特定id是借助于最终用户装置的基于硬件的功能性来提供的。替代地,任选地,应用特定id是借助于基于平台的功能性来提供的。任选地,在此类情况下,应用特定id是示例标识符(即,示例id)。

此外,根据本公开的一个实施方式,在步骤(i)处经由不安全的传输来接收密钥库内容。作为示例,可以经由不安全的公共因特网连接来传送加密密钥库内容,因为当受到适当保护时,经加密的密钥库内容不会泄露任何用户敏感数据。这是可能的,因为使用加密来保护密钥材料,并且因此,不必保护密钥材料的传输。

在第二方面,本公开的实施方式提供一种计算机程序产品,其包括其上存储有计算机可读指令的非暂态计算机可读存储介质,该计算机可读指令能够由包括处理硬件的计算机化装置执行以执行根据前述第一方面的方法。

任选地,计算机可读指令能够从软件应用程序商店(例如,从“应用商店”)下载到计算机化装置。

在第三方面,本公开的实施方式提供一种用于保护最终用户的给定用户装置处的密钥库内容的使用的系统,其特征在于,该系统可操作以:

(i)在给定用户装置处接收密钥库内容,所述密钥库内容包括使用与给定用户装置兼容的加密凭证进行加密的密钥材料,密钥库内容由密钥服务提供商以与给定用户装置兼容的格式创建并从其接收;

(ii)将密钥库内容的加密密钥材料导入到给定用户装置的受保护密钥库并且将密钥材料以加密形式存储在受保护密钥库处,其中密钥库内容的所有密钥材料被一次性导入,并且其中密钥库内容以密钥材料不能从密钥库导出的方式存储在密钥库处;以及

(iii)在给定用户装置的受保护密钥库内部,允许给定用户装置的一个或多个密钥库集成服务仅经由密钥引用来访问不可导出的密钥材料以供使用。

任选地,除了密钥材料之外,受保护密钥库还包括关于被授权以使用存储在受保护密钥库处的密钥材料的最终用户和/或最终用户群组的信息。额外地或替代地,任选地,受保护密钥库包括与密钥材料的使用相关的其它信息。

任选地,在(i)处以对称加密形式接收密钥材料。

任选地,该系统可操作以在给定用户装置的受保护密钥库内部,对待由给定用户装置的一个或多个密钥库集成服务使用的一个或多个密钥材料进行解密。

根据一个实施方式,借助于密钥材料的索引来实施密钥引用。任选地,所述系统可操作为在密钥库内容内接收待用于经由密钥引用来引用密钥材料的索引。替代地,任选地,所述系统可操作为在给定用户装置处,生成待用于经由密钥引用来引用密钥材料的索引。作为示例,可以以与在密钥库内容中包括密钥材料的次序对应的连续方式生成索引。例如,可以在给定用户装置向密钥服务提供商进行初始注册时或者在对密钥材料进行解密期间生成索引。

根据另一个实施方式,借助于偏移量来实施密钥引用,将基于偏移量来识别密钥材料。

任选地,当在(ii)处导入时,系统可操作为作为单个数据文件将密钥库内容导入到给定用户装置。

此处将了解,本公开的实施例适合于各种不同类型的用户装置。此类用户装置的示例包括但不限于移动电话、智能电话、mid、平板计算机、umpc、平板手机计算机、pda、连网板、pc、手持式pc、膝上型计算机、台式计算机和交互式娱乐装置,诸如游戏机、电视机和stb。

根据本公开的一个实施方式,密钥库是基于硬件的。任选地,在此类情况下,当在(ii)处导入时,系统可操作为将存储在基于硬件的密钥库处的密钥材料绑定到给定用户装置的处理硬件的安全区域。

任选地,借助于专用硬件来实施处理硬件的安全区域,所述专用硬件被配置为不允许外部加载的软件应用程序或程序在专用硬件上进行操作;例如,外部加载的软件应用程序可操作为经由受最终用户装置的内核层保护的、由可信软件应用程序提供的密钥库集成服务来介接,其中密钥库集成服务使密钥库免受外部加载的软件应用程序直接访问。将了解,此类外部加载的软件应用程序或程序可能由敌对第三方恶意加载。然而,将了解,如上所述,密钥库集成服务是使用从可信软件服务提供商提供的可信软件应用程序来实施的。更任选地,借助于tee(参见参考文献[1])来实施处理硬件的安全区域。

根据本公开的一个实施方式,“密钥材料”包括以下中的至少一者:

(a)用于对称数据加密的秘密密钥,

(b)用于pki等效使用的私有密钥和公开密钥,

(c)待用于密码学、签名、完整性、验证、认证、授权等的证书,

(d)用于生成密钥的一个或多个密钥生成器。

此外,根据本公开的一个实施方式,所述系统可操作为将被授权以使用给定用户装置的密钥库的、在给定用户装置处被托管的一个或多个可信软件应用程序或生态系统进程与密钥库集成。此类密钥库集成服务的示例包括但不限于数据传递服务、内容传递服务、银行服务和金融交易服务。

任选地,在这点上,所述系统可操作为从可信软件服务提供商导入用于提供密钥库集成服务的一个或多个可信软件应用程序,其中当在给定用户装置处执行时,所述一个或多个可信软件应用程序能够操作为提供一个或多个密钥库集成服务并且被提供来自给定用户装置的内核的保护。

此外,根据本公开的一个实施方式,密钥服务提供商能够操作为使用由给定用户装置或密钥服务提供商提供的加密密钥数据,来对密钥库内容进行加密。

根据本公开的一个实施方式,在给定用户装置处使用最终用户的生物凭证的令牌来保护密钥库。任选地,在这点上,最终用户的生物凭证包括以下中的至少一者:最终用户的指纹、最终用户的面部特征、最终用户的dna图谱、最终用户的虹膜辨识、最终用户的行走方式、最终用户的书写方式、最终用户的心跳模式。将了解,最终用户的生物凭证可以替代地对应于将来可行的任何其它类型的生物统计验证。

根据本公开的另一实施方式,在给定用户装置处使用与最终用户相关联的pin来保护密钥库。

根据本公开的又一实施方式,在给定用户装置处使用应用特定id来保护密钥库。

任选地,密钥服务提供商能够操作为通过采用对称aes加密(参见参考文献[2])来对密钥材料进行加密,例如,使用128位密钥或256位密钥。

此外,根据本公开的一个实施方式,当在(i)处接收时,所述系统能够操作为经由不安全的传输来接收密钥库内容。

接下来,将参考附图描述本公开的实施方式。

参考图1a,提供了根据本公开的一个实施方式的用于保护密钥库内容102的使用的系统100的示意图。系统100包括密钥服务提供商104和最终用户的给定用户装置106,其中密钥服务提供商104和给定用户装置106经由数据通信布置通信地耦合。

密钥服务提供商104以与给定用户装置106兼容的格式创建密钥库内容102,对密钥库内容102中所包括的密钥材料进行加密,并且将密钥库内容102发送到给定用户装置106。任选地,密钥库内容102能够作为单个数据文件导入到给定用户装置106的受保护密钥库108。

在给定用户装置106处,密钥库内容102(即,所有密钥材料)一次性导入到给定用户装置106的受保护密钥库108,其中密钥材料以加密形式存储并以密钥材料不能从受保护密钥库108导出的方式来存储,并且能够由密钥库集成服务仅经由密钥引用来访问以供使用。

如前所述,可以借助于索引或偏移量来实施密钥引用。任选地,在密钥库内容102中接收索引;替代地,任选地,在给定用户装置106处生成索引,例如以与密钥库内容102中包括密钥材料的次序对应的连续方式生成索引。

可信软件服务提供商120提供以加密形式导入到给定用户装置106的受保护密钥库108的一个或多个可信软件应用程序122,其中一个或多个可信软件应用程序122能够在给定用户装置106上以受给定用户装置106的内核124(例如,内核层)保护的方式执行。一个或多个可信软件应用程序122能够操作为使用密钥引用来访问密钥库108的密钥材料以用于各种目的,例如加密、解密、验证、认证,但是被防止将密钥材料泄露给给定用户装置106的一个或多个软件层中所支持的其它软件应用程序。由于以加密形式存储密钥材料,因此在使用之前需要对密钥材料进行解密。任选地,当将密钥材料加载到密钥库108时,在密钥库108内安全地对经加密的密钥材料进行解密。

任选地,可信软件服务提供商120是与密钥服务提供商104相同的一方。替代地,任选地,可信软件服务提供商120是与密钥服务提供商104相互不同的一方。

在图1b中,提供了根据本公开的一个实施方式的保护给定用户装置106处的密钥库内容102的使用的完整端到端过程流程的示意图。

步骤1:密钥服务提供商104以与给定用户装置106兼容的格式创建密钥库内容102。

步骤2:密钥服务提供商104对密钥库内容102中所包括的密钥材料进行加密。

步骤3:给定用户装置106从密钥服务提供商104接收密钥库内容102。

步骤4:将经加密的密钥材料导入到给定用户装置106的受保护密钥库108。任选地,使用来自最终用户的加密凭证来保护密钥库108。

步骤5:将密钥材料加载到密钥库,其中在密钥库中安全地对密钥材料进行解密,以便能够容易并且快速地使用。

步骤6:密钥库集成服务122在受保护密钥库内部仅经由密钥引用来访问密钥材料。

禁止步骤7:密钥材料是不可导出的,并且无法从密钥库108导出。

此外,在图1c中,提供了根据本公开的一个实施方式的如何将密钥库内容102导入并加载到受保护密钥库108的示意图。

在从密钥服务提供商104接收到密钥库内容102后,即刻将其中所包括的、经加密的密钥材料一次性导入到用户装置106的受保护密钥库108。

值得注意的是,密钥材料可以被提供为单个密钥代码列表或作为多个不同密钥代码列表。将了解,可以同时导入不同密钥代码列表。不管不同密钥代码列表(即,密钥材料)以哪种形式加密,都会一次性导入所有密钥材料。

当在密钥库108处加载密钥材料时,接着在密钥库108内安全地对经加密的密钥材料进行解密。

图1a、图1b和图1c仅仅是示例,其不应过度限制本文的权利要求书的范围。应当理解,系统100的特定命名是作为示例来提供的,并且不应被解释为将系统100限制于服务提供商和用户装置的特定数目、类型或布置;具体地说,仅仅为了简单起见,示出了单个用户装置。本领域的技术人员将认识到本公开的实施方式的许多变化、替代和修改。

将了解,即使图1b和图1c示出了密钥材料的索引,密钥引用也不一定总是借助于此类索引来实施。值得注意的是,在替代实施方式中,密钥引用可以使用偏移量来实施,如前所述。

接下来参考图2,提供了描绘根据本公开的实施方式的保护最终用户的给定用户装置处的密钥库内容的使用的方法的步骤的流程图。所述方法被描绘为逻辑流程图中的步骤集合,所述逻辑流程图表示能够以硬件、软件或其组合实施的步骤序列,例如如上所述。

在步骤202处,在给定用户装置处接收密钥库内容。根据步骤202,密钥库内容包括使用与给定用户装置兼容的加密凭证进行加密的密钥材料。密钥库内容由密钥服务提供商以与给定用户装置兼容的格式创建并从其接收。

在步骤204处,将密钥库内容的经加密的密钥材料一次性导入到给定用户装置的受保护密钥库,并且将密钥材料以加密形式存储在受保护密钥库处。根据步骤204,将密钥库内容以密钥材料不能从密钥库导出的方式存储在受保护密钥库处。

在步骤206处,在给定用户装置的受保护密钥库内部,允许给定用户装置的一个或多个密钥库集成服务仅经由密钥引用来访问不可导出的密钥材料以供使用。如上所述,此类集成服务由在给定用户装置的内核层(例如,内核结构)的保护下运行的可执行软件提供。任选地,内核结构包括硬件,用于实现增强的安全度。

步骤202至206仅是说明性的,并且还可以提供其它替代方案,其中在不脱离本文权利要求书的范围的情况下添加一个或多个步骤。

在不脱离由所附权利要求书限定的本公开的范围的情况下可以对前文中所描述的本公开的实施方式做出修改。诸如“包括”、“包含”、“并入”、“由……组成”、“具有”、“是”等用于描述和要求保护本发明的表达旨在以非排他性方式解释,即允许没有明确描述的项目、部件或元件也存在。对单数的引用还应被理解为与复数相关;作为一个示例,“至少一个”在一个示例中指示“一个”,并且在另一个示例中指示“多个”;此外,“两个”和类似的“一个或多个”将以类似方式解释。所附权利要求书中的包括在括号内的数字旨在帮助理解权利要求,而不应以任何方式解释为限制这些权利要求所要求保护的主题。

短语“在一个实施方式中”、“根据一个实施方式”等通常意味着跟随所述短语之后的特定特征、结构或特性包括在本公开的至少一个实施方式中,并且可以包括在本公开的一个以上实施方式中。重要的是,此类短语不一定指的是同一实施方式。

参考文献

[1]trustedexecutionenvironment-维基百科,免费的百科全书(2016年11月28日访问);url:https://en.wikipedia.org/wiki/trusted_execution_environment

[2]advancedencryptionstandard-维基百科,免费的百科全书(2016年11月28日访问);url:https://en.wikipedia.org/wiki/advanced_encryption_standard

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