密钥基础结构的制作方法

文档序号:9872705阅读:868来源:国知局
密钥基础结构的制作方法
【专利说明】密钥基础结构
[0001 ] 背景
[0002]密码密钥经常被设备用于保护机密或敏感信息,验证设备没有被损坏,利用硬件元件或执行各种其他操作。在一些实例中,未授权方可能获得对密钥的访问并且中断设备的操作或获取对受保护或敏感信息的访问。由于数量日益增加的设备寻求保护信息、验证真实性和/或利用硬件元件,因此存在对保护密码密钥免受未授权访问的日益增长的需求。
[0003]概述
[0004]本公开描述了一种旨在生成和/或管理密码密钥的密钥基础结构。密码密钥可以包括在证明过程期间使用的身份密钥,在所述证明过程中设备与另一个设备通信以标识该设备和/或验证特定应用状态(例如未受损坏的安全状态)。密码密钥可包括被用于保护机密和/或敏感信息的加密密钥。密码密钥还可以包括其他密钥。
[0005]在一些实施例中,密钥基础结构生成身份、加密或其他类型的密钥的密钥分级结构,所述密钥分级结构具有密钥推导函数(KDF)或其他单向函数。密钥分级结构可以包括设备的引导加载器可访问的密钥、可信执行环境(TrEE)的特定组件可访问的密钥等等。另外或替换地,密钥分级结构可以包括一密钥序列,其中该序列中的每个密钥用基于该序列中的在前密钥的KDF来导出。一旦导出密钥,在前密钥可以被删除以避免对该密钥的未授权访问。在一些实例中,密钥分级结构可以包括与对TrEE的组件的安全配置的更新相关联的密钥。而且,所述密钥分级结构可以包括基于正被实现的平台类型、设备的调试状态和/或各种其他信息的密钥。
[0006]提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的必要特征,也不旨在用于限制所要求保护的主题的范围。
[0007]附图简述
[0008]参考附图阐述【具体实施方式】。在附图中,附图标记最左边的数字标识该附图标记首次出现的附图。在不同附图中使用同一附图标记指示相似或相同的项或特征。
[0009]图1示出其中可实现在此描述的各技术的示例环境。
[0010]图2示出包括一应用密钥序列的示例密钥分级结构。
[0011]图3示出基于设备的安全配置的示例密钥分级结构。
[0012]图4示出生成包括一应用密钥序列的密钥分级结构的示例过程。
[0013]图5示出生成密钥分级结构的示例过程。
[0014]详细描述
[0015]本公开描述了一种旨在生成和/或管理密码密钥的密钥基础结构。密码密钥可以包括身份密钥、加密密钥和/或各种其他类型的密钥。密码密钥可以通过密钥推导函数(KDF)或其他单向函数来推导或创建。密码密钥可以包括引导加载器可访问的密钥、可信执行环境(TrEE)的特定组件可访问的密钥等等。
[0016]在各种实施例中,密钥基础结构可以生成由身份和/或加密密钥(统称为“应用密钥”)的序列构成的密钥分级结构。每当诸如应用之类的组件在设备上被加载和/或执行时,应用密钥可以用KDF或其他单向函数导出。应用密钥可以基于在应用密钥序列中的先前应用密钥和被加载和/或执行的组件来导出。一旦导出应用密钥,先前的应用密钥可以被删除以避免对该先前的应用密钥的未授权访问。可以利用在应用密钥的序列中保留的应用密钥来验证设备的应用状态、加密数据和/或执行其他操作。
[0017]在各种实施例中,密钥基础结构生成加密密钥分级结构的密钥,该密钥与对设备的安全配置的更新相关联。例如,当TrEE加载器的安全配置被更新时,可以基于与TrEE加载器的经更新的安全配置相关联的随机值来导出TrEE加载器可访问的新的加密密钥。而且,当TrEE核心的安全配置被更新时,可以基于TrEE核心的经更新的安全配置的安全版本号来导出TrEE核心可访问的新的加密密钥。而且,在各种实施例中,密钥基础结构可以生成基于在设备上实现的平台的类型、指示启用或禁用调试和/或已经启用或禁用调试的次数的调试状态和/或各种其他信息的密钥。
[0018]在许多实例中,在此所述的密钥基础结构可以提高对密码密钥免受未授权访问的保护。在一个示例中,通过用KDF导出各种身份和/或加密密钥,所述密钥可以较不易于未经授权使用。而且,在当密钥序列中的在前密钥被删除的实例中,例如当密钥序列中的在后密钥的导出之际,可以使得在前密钥不可访问。另外,通过为设备的不同组件提供不同密钥,设备可以进一步保护所述密钥免受未授权访问,并且在单个组件受到损坏的任何时候都可以避免为每个组件重新生成密钥。而且,还可通过包括与对TrEE加载器和/或TrEE核心的安全配置的更新相关联的密钥来避免对密钥的未授权访问。
[0019]该简要介绍是为方便读者理解而提供的,且并不旨在限制权利要求以及以上各节的范围。此外,下文详细描述的技术可以用多种方式且在多种上下文中实现。如下文更详细描述的,参考以下附图提供了示例实现和上下文。然而,将领会以下实现和上下文仅仅是许多示例中的一些示例。
[0020]示例环境
[0021]图1示出可用于实现与在此所述的密钥基础结构相关联的系统和/或过程的示例环境100。环境100包括具有密钥基础结构104的计算设备102(此后为“计算设备102”),所述密钥基础结构104生成和/或管理一个或多个密码密钥106(此后为“密钥106”)。环境100还包括服务提供者108以向计算设备102提供一个或多个服务。服务提供者108可帮助生成和/或管理密钥106。例如,服务提供者108可存储一个或多个密钥106以标识计算设备102和/或验证计算设备102的特定应用状态。在各种实施例中,计算设备102可以通过一个或多个网络110,例如因特网、移动电话网络(MTN)或其他各种通信技术,与服务提供者108通信。
[0022]计算设备102可以包括,但不限于,各种计算设备的任何一种,诸如智能电话、移动手机、个人数字助理(PDA)、电子书设备、膝上型计算机、台式计算机、平板计算机、便携式计算机、游戏设备、个人媒体播放器、服务器计算机或任何其他电子设备。
[0023]计算设备102可包括一个或多个处理器112(此后为“处理器112”)和存储器114。处理器112可以是单个处理单元或多个单元,它们每个可包括多个不同处理单元。处理器112可以包括一个或多个微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元(CPU)、图形处理单元(GPU)、安全处理器(例如安全密码处理器),和/或其他处理器。作为替换或补充,本文所述的一些或全部技术可至少部分地由一个或多个硬件逻辑组件来执行。例如,但非限制,可被使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、状态机、复杂可编程逻辑器件(CPLD)、其他逻辑电路、片上系统(SOC)和/或基于软件和/或硬件编码指令执行操作的任何其他设备。在诸多能力中,处理器112尤其可被配置成取回和/或执行存储在存储器114中的计算机可读指令。
[0024]存储器112可以包括计算机可读介质之一或其组合。如此处所使用的,“计算机可读介质”包括计算机存储介质和通信介质。
[0025]计算机存储介质包括以存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,相变存储器(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(R0M)、电可擦除可编程ROM(EEPROM)、闪存或其他存储器技术、光盘ROM(CD-ROM)、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或可用于存储由计算设备访问的信息的任何其他介质。
[0026]相反,通信介质包括在诸如载波的已调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据。如本文所定义的,计算机存储介质不包括通信介质。
[0027]在一些实例中,处理器112和/或存储器114可包括一个或多个熔丝以存储诸如一个或多个密钥106之类的信息或其他信息。一个熔丝通常包括可以以永久非易失性方式(例如一旦一个值被存储,所述值就不能被盖写)来存储信息的硬件组件。一个熔丝可以包括可通过使得阈值量的电流流过一条电线而将其“烧坏”的电线。“烧坏”的熔丝可以与断开的导通路径相关联。单个熔丝可以存储一个比特的信息。这样,多个熔丝可以被用于存储单个密码密钥。在一个示例中,熔丝值对于在安全处理器之外读取和/或写入来说是不可访问的,并且仅能被用于在引导时(例如作为到密钥导出函数的输入时)“播种(seed)”安全处理的密钥导出函数。
[0028]密钥基础结构104可包括硬件和/或软件组件。例如,密钥基础结构104可以由存储在存储器114中的一个或多个模块和/或处理器112的一个或多个组件来实现。这样,密钥基础结构104在图1中被示为将处理器112和存储器114重叠。如本文所使用的,出于讨论的目的,术语“模块”旨在代表软件和/或固件的示例划分,不旨在代表任何类型的需求,或所需方法、方式或组织。因此,当讨论各种“模块”时,它们的功能和/或类似功能可被不同地安排(例如,组合成更少数量的模块,打破为更多数量的模块等)。此外,尽管特定功能在此被描述为由在处理器上执行的软件模块来实现,但是在其他实施例中,所述功能中的任何或全部功能都可以完全或部分地由硬件逻辑组件(例如FPGA、ASIC、ASSP、状态机、CPLD、其他逻辑电路、SoC等)来实现。
[0029]密钥基础结构104可以包括一个或多个引导加载器116(此后为“引导加载器116”)和可信执行环境(TrEE)118。引导加载器116可以包括引导加载器的一个或多个阶段,例如加载次引导加载器(SBL)的主引导加载器(PBL)。引导加载器116通常可以是在引导计算设备102时执行的初始组件之一,并且可以加载应用、操作系统、TrEE 118、另一运行时环境等等。在一个示例中,引导加载器116可以根据一个或多个阶段来引导计算设备102,其中每个阶段引导下一阶段。引导过程中的每个阶段可以与加载和/或执行一个组件(例如应用或其他数据)相关联,并执行在此所述的其他处理。同时,TrEE 118可以提供一个隔离环境以处理、存储和以其他方式保护机密和/或敏感信息。TrEE 118可以驻留在处理器112中和/或作为存储器114中的一个或多个模块,并且可以提供比例如通用操作系统更高的对攻击的保护等级。在一个示例中,TrEE 118可以被实现为ARM处理器的“可信区”。
[0030]TrEE 118可包括TrEE加载器120以加载或引导TrEE核122并执行其他功能。一旦加载或引导TrEE核122,TrEE加载器120可以返回到非执行状态。在一些实例中,TrEE核122可以以类似于操作系统的内核的方式工作。TrEE核122通常可以在运行时实现TrEE 1180TrEE核122可以加载和/或执行一个或多个TrEE应用124,所述TrEE应用124在TrEE 118内执行。出于说明目的且并非限制,TrEE应用可以包括执行银行交易的银行应用、通过支付短语购买物品的购买应用、更新操作系统的应用等等。TrEE核122可以利用密钥106来加密/解密数据和/或为一个或多个TrEE应用124验证计算设
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1