用管理器设备初始化数据存储设备

文档序号:157484 发布日期:2021-10-26 浏览:14次 >En<

阅读说明:本技术 用管理器设备初始化数据存储设备 (Initializing data storage devices with manager devices ) 是由 B·E·马斯滕布鲁克 D·R·阿诺德 于 2020-06-24 设计创作,主要内容包括:本文公开了一种数据存储设备。数据端口在主机计算机系统和该数据存储设备之间传输数据。非易失性存储介质存储加密的用户内容数据,并且加密引擎响应于来自该主机计算机系统的请求而使用加密密钥对存储在该存储介质上的该加密的用户内容数据进行解密。访问控制器从管理器设备接收初始化该数据存储设备的请求。该控制器生成该加密密钥,生成被配置为提供对该管理器设备的管理器访问权限并且提供对该加密密钥的访问权限的管理器密钥,并且将指示该管理器密钥并且能够基于存储在该管理器设备上的私有密钥而访问的授权数据存储在数据存储库上。(A data storage device is disclosed herein. The data port transfers data between the host computer system and the data storage device. A non-volatile storage medium stores encrypted user content data, and an encryption engine decrypts the encrypted user content data stored on the storage medium using an encryption key in response to a request from the host computer system. The access controller receives a request from the manager device to initialize the data storage device. The controller generates the encryption key, generates a manager key configured to provide manager access to the manager device and to provide access to the encryption key, and stores authorization data on a data store indicating the manager key and accessible based on a private key stored on the manager device.)

用管理器设备初始化数据存储设备

技术领域

本公开涉及初始化数据存储设备。

背景技术

数据加密使得能够在数据存储设备上,诸如能够经由通用串行总线(USB)电缆连接的块数据存储设备上相对安全地进行存储。然而,用户体验通常令人失望,因为密码、密钥等的设置对于技术上不熟练的用户来说是麻烦而且复杂的。如果使用加密,则密钥和密码的存储经常是不安全的。因此,许多用户并没有有效地使用现有的加密技术,从而导致机密数据暴露。

此外,如果定义了多个角色,诸如具有受限访问权限的用户角色和具有完全访问权限的管理者角色,则数据存储设备的管理会更有效而且更安全。然而,操作系统中使用的常见解决方案,诸如基于登录凭据的访问控制列表,对于在不同主机计算机系统之间移动的数据存储设备是不切实际的。希望在不使用外部操作系统和访问控制列表的情况下在数据存储设备内部定义多个角色。此外,在数据存储设备恢复出厂设置之后,难以第一次授权对数据存储设备的访问权限。

发明内容

本公开涉及数据存储设备和“获取所有权”过程,在此期间,用户设备诸如移动电话向数据存储设备注册以获得具有完全许可的管理器访问权限,该完全许可包括改变数据存储设备的配置的许可和解密用户内容数据的许可。在一些实施方案中,获取所有权过程包括加密擦除用户内容数据。这意味着用于加密用户内容数据的加密密钥被新的加密密钥删除或覆盖。

本文公开了一种数据存储设备,该数据存储设备包括数据路径、访问控制器和非易失性数据存储库。数据路径包括:数据端口,该数据端口被配置为在主机计算机系统和该数据存储设备之间传输数据;非易失性存储介质,该非易失性存储介质被配置为存储加密的用户内容数据;和加密引擎,该加密引擎连接在数据端口和存储介质之间,并且被配置为响应于来自主机计算机系统的请求而使用加密密钥对存储在存储介质上的加密的用户内容数据进行解密。访问控制器被配置为从管理器设备接收初始化数据存储设备的请求;生成加密密钥;生成管理器密钥,该管理器密钥被配置为提供对管理器设备的管理器访问权限并且提供对加密密钥的访问权限;以及将指示管理器密钥并且能够基于存储在管理器设备上的私有密钥而访问的授权数据存储在数据存储库上。

在一些实施方案中,访问控制器被进一步配置为从管理器密钥导出用户密钥;以及使用用户密钥加密该加密密钥。

在一些实施方案中,访问控制器被进一步配置为加密管理器密钥;并且授权数据包括所加密的管理器密钥。

在一些实施方案中,所加密的管理器密钥能够基于存储在管理器设备上的解锁私有密钥而解密。

在一些实施方案中,所加密的管理器密钥能够基于来自管理器设备的对由访问控制器生成的质询的响应而解密;并且,该响应由管理器设备基于存储在管理器设备上的解锁私有密钥而计算。

在一些实施方案中,该质询基于授权数据。

在一些实施方案中,访问控制器被进一步配置为生成临时私有密钥;基于该临时私有密钥来计算临时解锁秘密;以及使用该临时解锁秘密加密管理器密钥。

在一些实施方案中,临时解锁秘密基于对应于存储在管理器设备上的解锁私有密钥的解锁公共密钥。

在一些实施方案中,临时解锁秘密和解锁私有密钥基于椭圆曲线加密。

在一些实施方案中,访问控制器被进一步配置为计算对应于临时私有密钥的临时公共密钥;以及使用元数据封装密钥加密临时公共密钥。

在一些实施方案中,访问控制器被进一步配置为生成元数据封装密钥。

在一些实施方案中,访问控制器被进一步配置为向管理器设备提供元数据封装密钥。

在一些实施方案中,访问控制器被进一步配置为创建用于管理器设备的证书,其中该证书包括元数据封装密钥;对该证书进行签名;以及将所签名的证书发送到管理器设备。

在一些实施方案中,证书包括发送到访问控制器并且对应于存储在管理器设备上的传输私有密钥的传输公共密钥。

在一些实施方案中,从管理器设备接收初始化数据存储设备的请求包括建立安全通信信道。

在一些实施方案中,建立安全通信信道基于提供在数据存储设备上并且能够由管理器设备带外读取的身份密钥。

在一些实施方案中,建立安全通信信道包括生成证书;对该证书进行签名;以及将所签名的证书发送到管理器设备。

在一些实施方案中,访问控制器被进一步配置为移除对除管理器设备之外的设备的访问权限。

本文还公开了一种用于初始化数据存储设备的方法。该方法包括:从管理器设备接收初始化数据存储设备的请求;生成加密密钥,该加密密钥被配置为解密存储在数据存储设备的存储介质上的加密的用户内容数据;生成管理器密钥,该管理器密钥被配置为提供对管理器设备的管理器访问权限并且提供对加密密钥的访问权限;以及将指示管理器密钥并且能够基于存储在管理器设备上的私有密钥而访问的授权数据存储在数据存储设备的非易失性数据存储库上。

本文还公开了一种数据存储设备,该数据存储设备包括:用于从管理器设备接收初始化数据存储设备的请求的装置;用于生成加密密钥的装置,该加密密钥被配置为解密存储在数据存储设备的存储介质上的加密的用户内容数据;用于生成管理器密钥的装置,该管理器密钥被配置为提供对管理器设备的管理器访问权限并且提供对加密密钥的访问权限;以及用于将授权数据存储在数据存储设备的非易失性数据存储库上的装置,该授权数据指示管理器密钥并且能够基于存储在管理器设备上的私有密钥而访问。

附图说明

现在将参考以下附图描述非限制性示例:

图1示出了根据一个实施方案的数据存储设备。

图2示出了根据一个实施方案的图1的数据存储设备的配置存储器的截面。

图3示出了根据一个实施方案的图1的授权设备和访问控制器之间的控制流。

图4示出了根据一个实施方案的由数据存储设备发出并由授权设备发送到数据存储设备以解锁数据存储设备的证书。

图5示出了根据一个实施方案的用于初始化数据存储设备的方法。

具体实施方式

图1示出了根据一个实施方案的包括数据路径101和访问控制器102的数据存储设备(DSD)100。数据路径101包括有线数据端口103,其在图1中由USB桥提供,用于在主机计算机系统104和DSD 100之间传输数据。在其他实施方案中,数据路径101包括用于在主机计算机系统104和DSD100之间无线传输数据的无线数据端口(未示出)。DSD 100向主机计算机系统104注册,作为向块数据存储设备的主机计算机系统104的操作系统提供功能的大容量数据存储设备。DSD 100还包括用于存储加密的用户内容数据的非暂态存储介质105,注意用户内容数据是用户通常想要存储在DSD上的数据,诸如包括图像文件、文档、视频文件等的文件。该存储介质可以是固态驱动器(SSD)、具有旋转磁盘的硬盘驱动器(HDD)或其他非易失性存储介质。此外,该存储介质可以是块数据存储设备,这意味着用户内容数据以块的形式写入存储介质105并以块的形式从存储介质105读取。

命令集

在一个示例中,存储介质105包括专用集成电路和/或可编程集成电路形式的加密引擎106,该加密引擎加密要存储在存储介质105上的数据并解密要从存储介质105读取的数据。在此类示例中,该存储介质可根据可信计算组(TCG)的光学规范提供小型计算机系统接口(SCSI)或高级技术附件(ATA)命令集。

存储在加密引擎106上的程序代码使得加密引擎106能够接收、解释和执行从主机计算机系统104接收的命令。例如,密码引擎106可被配置为实现标准ATA或串行ATA(SATA)和/或ATA分组接口(ATAPI)命令集,该命令集可从技术委员会T13获得,注意可在TCG Opal、SCSI和其他专有架构内实现相同的功能。命令集包括READ SECTORS命令,命令输入为扇区的计数和起始扇区(注意,“扇区”与本文的“块”同义地使用)。因此,存在对应的写入命令。需注意,主机计算机系统104上安装有数据存储设备驱动程序。该数据存储设备驱动程序(未示出)使用该命令集向操作系统提供高级服务,诸如文件读取功能。在一些示例中,该数据存储设备驱动程序是作为操作系统的一部分提供的通用驱动程序,而不支持设备特定的加密命令,因为加密功能对于主机计算机系统104是隐藏的并且在DSD 100内进行内部处理,如下所述。这意味着不需要安装额外的驱动程序就能使用本文所公开的全功能。

由加密引擎106提供给数据端口103(但不转发给主机计算机系统104)的命令集可包括来自ATA SECURITY特征集的命令集。具体地讲,该命令集可包括命令SECURITY SETPASSWORD或来自TCG Opal的对应命令,以设置用于读取用户内容数据和将用户内容数据写入存储介质105的密码。

在这种意义上,加密引擎106连接在数据端口103和存储介质105之间,并且被配置为响应于来自主机计算机系统104的请求而使用加密密钥来加密要存储在存储介质105上的用户内容数据和解密存储在存储介质105上的加密的用户内容数据。在一些示例中,ATASECURITY特征集仅由数据端口103使用,而不由主机104使用。即,访问控制器102为数据端口103提供必要的输入以向加密引擎106发出ATA SECURITY命令。例如,访问控制器102可向数据端口103提供密钥,然后数据端口103经由SECURITY SET PASSWORD命令将该密钥转发到加密引擎106。访问控制器102与数据端口103之间的接口可为内置集成电路(I2C)总线,这在该总线已在现有芯片中实现的情况下特别有用。然而,可以使用许多其他通信架构,包括总线架构、点对点架构、串行架构、并行架构、基于存储器的架构和其他架构。

需注意,如图1所示的专用芯片中的功能的分离仅为一种可能的示例性具体实施。因此,可以进一步组合功能或拆分功能。例如,数据端口103可与访问控制器102集成到具有单个内核的单个芯片中。在其他情况下,数据端口103和访问控制器102可与加密引擎106集成到具有单个内核的单个专用芯片中。当然,所有芯片可具有多个内核。

在一个示例中,使用以下部件:

数据端口103:USB 3.1Gen 2每秒10吉比特(Gb/s)接口访问控制器102:来自Nordic Semiconductor的nRF52840片上系统(SoC)

需注意,对于本文所公开的功能,访问控制器102发挥主要作用,并且将在下文更详细地描述,再次需注意,在其他示例中,任务可被分到单独的芯片中。当参考访问控制器102的“配置”或访问控制器102被“配置”以执行某个步骤时,这应当理解为涉及存储在DSD100中的非易失性存储器上的程序存储器(为清楚起见未示出)上并由访问控制器102执行的程序代码。

在其他示例中,本文所公开的一些或所有步骤可由不具有程序代码的硬件电路执行。具体地讲,出于性能和安全性原因,加密基元可由专用硬件电路实现。例如,计算要求特别高的命令(诸如椭圆曲线乘法或求幂)可由专门设计用于该计算的算术逻辑单元(ALU)来实现,使得与在通用微控制器中使用顺序程序相比,该计算可在单个或更少数量的处理器周期中执行。还需注意,DSD 100中包括的芯片是微控制器,这意味着在该上下文中,它们不在提供硬件抽象层的操作系统下运行,而是程序代码直接作用于硬件电路。虽然出于计算效率和安全性的原因,在本文中将椭圆曲线加密用作示例,但需注意,可同样使用其他公共密钥密码系统,诸如Rivest-Shamir-Adelman(RSA)密码系统。

返回图1,除了主机计算机系统104之外,还存在位于DSD 100外部并且在解锁DSD100并向加密引擎106提供密钥的过程中起作用的多个设备,使得最终能够向主机计算机系统104提供明文解密数据。

具体地讲,存在第一管理器设备110,在大多数示例中它是移动电话。安装在管理器设备110上的应用程序(应用)执行以下步骤。这样,以下步骤可以由DSD 100的制造商在软件中实现,并且通过通常可访问的应用商店(诸如Apple的应用商店或Google Play)分发给管理器设备110。安装在管理器设备110上的应用执行获取DSD 100的所有权的步骤,此时DSD 100上的所有数据被擦除或以其他方式变得不可访问。例如,可通过安全地删除存储在DSD 100上的所有加密密钥来加密擦除数据。

为了简化起见,本公开将步骤描述为简单地由管理器设备110执行,如果它们由应用实现的话。管理器设备110设置DSD 100,这意味着生成各种不同的密钥来支持本文所公开的过程。管理器设备110向DSD注册用户设备111,使得用户设备111随后被称为“授权设备”111。在大多数示例中,授权设备111也是移动电话,它安装有实现被描述为由授权设备111执行的步骤的应用。然而,其他类型的设备可用作授权设备,这将在下文关于信标和密钥卡进行解释。

获取所有权

在购买、解包和上电之后,使用DSD 100的第一步是在管理器设备110上安装应用并将设备注册为管理器设备110。对于该过程,管理器设备110从DSD获得DSD的唯一标识符。该唯一标识符被称为身份密钥(IDK)。在图1所示的示例中,身份密钥被编码为快速响应(QR)码112,该码附连到DSD 100的外表面。安装在管理器设备110上的应用具有对相机的访问权限并且具有从QR码112的图像提取编码信息的软件模块。管理器设备110使用相机捕获QR码112的图像,并且从该QR码解码DSD 100的身份密钥。在一个示例中,QR码对统一资源定位符(URL)进行编码。在这种情况下,通用应用可捕获QR码,该QR码随后自动将电话引导至可下载该应用的应用程序商店。URL还包括身份密钥,使得一旦安装了该应用,该应用就可以解码该标识符。

在另一个示例中,管理器设备110可读取与DSD 100附连或集成的另一个标签或NFC芯片以获得身份密钥。然后,使用该身份密钥,管理器设备110可发起与DSD 100并且具体地讲与访问控制器102的通信,诸如以无线方式(例如,通过蓝牙)发起。

恢复密钥

在获取DSD 100的所有权时,访问控制器102生成恢复密钥并将该恢复密钥提供给管理器设备110。然后可将该恢复密钥存储在安全存储装置113上或者打印并锁好。最后,备份管理器设备114可使用该恢复密钥来承担管理器设备110先前具有的管理者角色。

授权设备的注册

一旦在获取所有权过程期间最初配置了DSD 100,管理器设备110就注册授权设备111。通常,可存在向单个DSD 100注册的多个授权设备,因此管理器设备110将授权设备注册为多个授权设备中的一个授权设备。更具体地讲,访问控制器102从管理器设备110接收与存储在用户设备111上的私有密钥相关联的公共密钥。管理器设备110本身可能已经通过电子邮件、通过扫描在用户设备111上显示的QR码或任何其他方式从用户设备111接收了该公共密钥。此时,设备111尚未被授权,因此被简称为“用户设备111”。一旦用户设备111被授权,就被称为“授权设备111”。访问控制器102创建授权数据,该授权数据指示用户设备111是授权设备(如下所述)并且将与该公共密钥相关联的授权数据存储在配置存储器115上以将用户设备111注册为多个授权设备中的一个授权设备。这意味着如下所述创建和存储与授权设备111相关联的密钥和其他数据。然后,用户只需将授权设备111置于无线通信范围内(例如蓝牙范围内),就可使用授权设备111来解锁DSD 100。同样,在安装在授权设备111上的应用中对由授权设备111执行的步骤进行编码。根据配置参数,可能需要用户在DSD100能够被解锁之前解锁授权设备111。

更具体地讲,访问控制器102具有非易失性配置数据存储库(诸如配置存储器115)的访问权限,该非易失性配置数据存储库可以是访问控制器102外部的闪存存储器(但可同样集成到访问控制器102中)。配置存储器115还可存储将本文所述的步骤实现为由访问控制器102执行的程序代码。需注意,本文的一些示例被配置为假设攻击者可容易地分离并读出配置存储器115的内容,但不应能够使用该信息来解密用户内容数据。也就是说,在那些示例中,没有密钥以明文永久地存储在配置存储器115上或DSD 100中的非易失性存储器上的其他地方。

一旦密码密钥以明文形式提供,它们就仅存储在易失性存储器(未示出)中。这意味着DSD 100的掉电会擦除以明文存储的所有加密密钥。可提供附加电路以在掉电、上电或外部重置时重置所有剩余电荷,使得在实践中物理上不可能从易失性存储器恢复任何信息。在许多情况下,用户断开USB电缆与主机计算机系统104的连接会导致所有易失性存储器的掉电和擦除。在其他示例中,使用需要断开连接以使DSD 100掉电以删除易失性存储器的副电源。

质询-响应

配置存储器115上存储有特定于已注册的授权设备111的数据。该数据可被称为授权设备111的标识符或被称为与存储在授权设备111上的对应私有密钥相关联的公共密钥。该公共密钥可为“传输公共密钥”(TPK),并且由授权设备111在应用首次启动时通过执行椭圆曲线加密(ECC)基元ECC-Pub({传输私有密钥})来生成。(回想一下,虽然出于计算效率和安全性的原因,在本文中将椭圆曲线加密用作示例,但需注意,可同样使用其他加密技术。)该对应私有密钥存储在授权设备111上。访问控制器102被配置为使用标识符(例如,传输公共密钥)或生成并存储另外的公共密钥,以生成对授权设备111的质询。此处应当注意,质询是独特的,因为每个质询是不同的,使得后续质询不同于任何先前的质询。如下所述,这通过将所存储的数据乘以随机盲因子来实现。然后,访问控制器102通过不同于数据路径的通信信道将质询发送到授权设备111。例如,数据路径可包括有线USB连接,而访问控制器102与授权设备111之间的通信信道为无线(例如,蓝牙)连接。

在一个示例中,在创建授权数据并将其存储在与从管理器设备110接收的授权设备111的公共密钥相关联的配置存储器115上之后,响应于授权设备第一次与DSD 100连接而进行重新注册过程。在重新注册过程期间,DSD 100更新授权数据,并且如下所述,可请求授权设备111除传输该公共密钥之外还生成解锁公共密钥(和对应的解锁私有密钥)。然后,授权设备111向访问控制器102提供该解锁公共密钥。

这具有以下优点:两个对应的私有密钥(传输私有密钥和解锁私有密钥)可单独存储在授权设备上,并且这两个密钥可具有不同的访问策略。例如,即使授权设备111被锁定(例如,通过屏幕锁定或超时),也可以在任何时间访问传输公共密钥,以便允许授权设备111和DSD 100之间的持续通信。然而,为了解锁DSD 100,解锁私有密钥的访问策略可能要求用户解锁授权设备111,输入个人识别号码(PIN),提供生物特征或其他认证。这样,被盗的授权设备不能解锁DSD 100。由于在DSD 100通电时仅执行一次解锁DSD 100,所以增加的安全性不会显著降低用户便利性。

授权设备111可计算对质询的响应,该响应不能由未向DSD注册的任何其他设备计算。更具体地讲,不具有对对应于存储在配置存储器115上的标识符的数据的访问权限的设备不能计算正确的响应。例如,授权设备111使用与存储在配置存储器115上的对应解锁公共密钥相关联的所存储的解锁私有密钥来计算对质询的响应。

访问控制器102通过通信信道从授权设备111接收对质询的响应。此处应当注意,如果访问控制器102简单地验证了对质询的响应,并且在成功时,从配置存储器115读取加密密钥,则该加密密钥将以明文存储,这是不期望的,因为这将使得攻击者能够反汇编DSD100并从配置存储器115读取密钥来访问存储在存储介质105上的用户内容数据。

计算密钥

因此,相反,访问控制器102至少部分地基于来自授权设备111的响应来计算加密密钥。这意味着加密密钥不是响应的纯函数,而是涉及如下文更详细描述的其他值。总之,加密密钥以加密形式存储在配置存储器115上,并且基于存储在授权设备上的私有密钥的响应来启用解密该加密密钥的秘密的计算。

在整个本公开中,可参考密钥的“封装”,这仅仅意味着密钥由另一个密钥(即,由“秘密”)加密。在“封装”的许多情况下,加密是对称的,使得存在可以解密该加密密钥的单个秘密(密钥)(没有与该秘密相关联的公共密钥)。在一个示例中,对称加密使用高级加密标准(AES)基元。

最后,访问控制器102(在该示例中经由数据端口103)向加密引擎106提供加密密钥以解密存储在DSD 100的存储介质105上的加密的用户内容数据。如上所述,一旦访问控制器102已经计算出加密密钥,访问控制器102就以明文向数据端口103提供加密密钥,并且数据端口103向加密引擎106发出包括该加密密钥的SECURITY SET PASSWORD命令。

需注意,在提到“解锁”设备的情况下,这可以指上述整个过程,包括质询、对质询的响应以及向加密引擎106发送加密密钥以允许由主机计算机系统发出的明文读取命令。在其他示例中,质询和对质询的响应被认为是单独的“连接”步骤的一部分。在以下“解锁”步骤期间,访问控制器102然后向数据端口103发送加密密钥以允许访问用户内容数据。

值得注意的是,除此之外,攻击者有可能窃听从访问控制器102到数据端口103然后到加密引擎106的密钥传输。然而,密钥的传输不是通过公共网络进行的,因此这种窃听将需要获得对已解锁的DSD的访问和反汇编,而无需从DSD 100移除电力。该场景可作为威胁被丢弃,因为在该场景中,用户内容数据无论如何都可在主机计算机系统104上获得。换句话讲,在连接和解锁DSD 100时,数据可供合法用户和攻击者使用。但是一旦用户将DSD与主机计算机系统104断开连接,这种窃听攻击就不再可能。因此,不会进一步考虑这种攻击。

为了完整起见,需注意,一旦加密引擎106已经接收到加密密钥,主机计算机系统104就可以发出普通的READ SEGMENT命令并且透明地访问加密数据,而无需任何能够感知的差异来访问未加密的装置。这在加密引擎具有硬件加密模块以在存储介质105和/或数据端口103的读取和写入速度或更高速度下实现加密和解密的情况下尤其如此。然而,用户可以断开DSD 100以将其锁定。这样,DSD 100可以由用户携带经过DSD 100可能丢失或被盗的不安全位置,但是其他人很难解密存储在存储介质105上的加密的用户内容数据。如果用户持有DSD,则用户可以将其连接到第二主机计算机系统116,方便地利用用户的授权设备111(例如,电话)来解锁DSD 100,并且容易访问存储在存储介质105上的加密的用户内容数据。

为了方便用户,数据端口103可被配置为使得如果DSD被锁定,则其向主机计算机系统104注册为不存在存储介质的大容量数据存储设备,类似于未插入卡的SSD读卡器。一旦授权设备111连接到DSD 100并且DSD 100被解锁,数据端口103就切换到存在的存储介质,类似于插入了SSD卡的读卡器。此类配置将避免主机计算机系统104的操作系统生成关于数据不可访问或访问被拒绝的任何警告。相反,所有用户交互都将由安装在授权设备上的应用执行,该应用由DSD的制造商完全控制,因此可以优化用户体验。如图1所示,还可存在充当授权设备117和118的移动电话。

信标和密钥卡

再次考虑图1,可以看出,存在另外的设备,诸如信标120和密钥卡121。这些设备也可被视为“授权设备”,因为它们可与授权设备111基本上相同地操作。在由管理器设备110初始注册之前,这些设备被称为“待授权设备”。当参考本文的“用户设备”(主要描述在初始注册之前的移动电话111)时,这也适用于信标120和密钥卡121,除非另有说明,诸如在需要用户输入的情况下。信标120和密钥卡121也具有其自己安全存储的私有密钥,使得它们可响应于特定于一个信标或密钥卡的质询。然而,由于信标120和密钥卡121没有用户输入,因此通信的发起可略有不同。更具体地讲,信标120和密钥卡121可周期性地发送通告以广播它们的存在,DSD 100然后发起与信标120和/或密钥卡121的通信,这提示它们发送它们的传输公共密钥。这与授权设备111相反,该授权设备向DSD 100发送传输公共密钥以发起通信。

在另外的示例中,信标120在其上电并且需要由管理器设备110或授权设备111激活时处于停用状态。该激活可遵循与解锁DSD 100类似的过程。即,如本文所述,管理器设备110或授权设备111或两者利用其传输公共密钥向每个信标120注册并对质询作出响应。因此,设备可作为管理器设备或授权设备向信标102和/或密钥卡121中的一者注册,而不向DSD 100自身注册。如果对质询的响应有效,则信标120解锁DSD 100。在又一个示例中,信标120彼此注册,使得管理器设备110和/或授权设备111需要仅激活信标120中的一个信标并且剩余信标自动激活。换句话讲,只要信标在彼此的范围内,该激活就通过信标网络“传播”。

需注意,授权设备111、117、118、120和121向管理器设备110提供以注册的唯一信息是每个设备的一个公共密钥。换句话讲,每个设备提供其自己的公共密钥,该公共密钥对应于安全地存储在该设备上的私有密钥。因此,如果攻击者拦截设备111、117、118、120和121中的一者与管理器设备110之间的初始通信,则攻击者可获取的唯一信息是该公共密钥。顾名思义,公共密钥不是秘密,并且可以是众所周知的。因此,攻击者没有获得任何优势。此外,管理器设备110不能使用公共密钥访问与授权设备相关的任何其他东西。例如,管理器设备不能解密或解锁其他管理器设备已向其注册授权设备的任何其他数据存储设备。

访问控制器102从管理器设备110接收授权设备的公共密钥并生成授权数据。访问控制器102将授权数据存储在配置存储器115上,等待授权设备第一次连接。在第一次连接时,访问控制器102对授权设备执行质询-响应,并且在成功时,更新授权数据以指示授权设备现在完全注册。该第一次连接过程在本文中被称为“重新注册”,并且下文提供了生成授权数据和重新注册的细节。

椭圆曲线加密

在一个示例中,由DSD 100生成并发送到授权设备111的质询基于椭圆曲线加密。这具有较短密钥的优点,导致更有效的通信和存储。此外,当前市场上的大量电话在安全硬件模块内提供专用的椭圆曲线加密功能。安全硬件模块安全地存储用户的私有密钥并在安全硬件模块内执行加密基元而密钥不离开安全硬件模块并且不被发送到通用处理器内核,在通用处理器内核中,密钥可能受到未授权检索攻击。在一个实施方案中,安全硬件模块包括执行其自身的微内核的独立处理器,该微内核不能由操作系统或在电话上运行的任何程序直接访问。安全硬件模块还可包括用于存储256位椭圆曲线私有密钥的非易失性存储装置。在一个实施方案中,安全硬件模块是在一些Apple设备上可用的Secure Enclave协处理器。

授权设备数据记录

图2示出了根据一个实施方案的配置存储器115的截面。更具体地讲,图2示出了配置存储器115中的一个记录201,该记录与多个授权设备中的一个授权设备相关联并且在本文中称为“授权数据”。另外的授权设备的另外的数据记录被示意性地指示为空虚线框,但不考虑它们以与记录201类似的方式操作时的细节。具体地讲,每个另外的数据记录包括授权数据,该授权数据由访问控制器102响应于从管理器设备110接收到用户设备的公共密钥而生成,然后在用户设备(此后成为“授权设备”)的第一次连接期间更新。为方便起见,配置存储器115的数据结构被称为包括一个或多个“记录”的“表”,其中每个记录涉及一个已注册的授权设备,并且每个记录具有多个字段。然而,需注意,可使用其他数据结构,诸如JavaScript对象表示法(JSON)、可扩展标记语言(XML)、二进制格式等。在一个示例中,每个条目具有固定的长度,并且表具有固定数量的行(即,条目)。在本公开内,“记录”也可被称为“行”或“条目”。

记录201包括用于预先授权密钥202的字段,该预先授权密钥响应于授权设备111第一次连接到DSD 100而使用。在该第一次连接期间,访问控制器102执行被称为“重新注册”的多个步骤,如下文更详细所述。预先授权密钥202由授权设备111的标识符(例如,传输公共密钥)生成。例如,访问控制器102可以通过将密钥导出函数连同授权设备槽密钥一起应用于导出函数来生成预先授权密钥202,该密钥导出函数使用传输公共密钥的x坐标作为输入参数,该授权设备槽密钥作为盐(salt)值。授权设备槽密钥可以是存储在配置存储器115上的伪随机数(例如,16字节),并且可以用于加密授权设备证书中的数据,使得只有发布的DSD 100可以恢复该信息。

此时,可以说存储在配置存储器115上的记录由预先授权密钥202基于授权设备的标识符(例如,传输公共密钥)进行索引。如下面参考图4所述,在重新注册期间,记录201的索引可以作为槽编号存储在证书中,并且此时可以用随机值替换预先授权密钥202,以使所配置的DSD即使拥有传输公共密钥也与出厂的新设备不可区分。

记录201还包括用于元数据封装密钥(MWK)203的第一副本和预先授权元数据封装密钥(PMWK)214的字段。记录201中的一些字段被加密,其由双线框指示,其中双线框内的单个实线框指示“有效载荷”,诸如元数据封装密钥203和预先授权元数据封装密钥214。用于加密有效载荷的对应加密密钥在该双线框的底部标注。因此,例如,元数据封装密钥203由授权设备元数据密钥(ADMK)204加密。应当指出的是,每个加密框可包括与有效载荷数据级联的附加随机数。这保证了即使拥有加密数据(诸如授权设备的传输公共密钥)也不能将加密条目与随机数据区分开。

记录201还包括用于授权设备元数据(ADM)205的字段,该字段是设备类型206(例如,恢复密钥、密钥卡、信标、电话、计算机、手表等)、设备207的角色(例如,管理者或用户)、设备208的名称(例如,“John的电话”)、传输公共密钥209、解锁密钥元数据210(例如,是需要指纹、PIN还是不需要解锁的密钥限制)、临时公共密钥211和解锁公共密钥212的级联。在一个实施方案中,临时公共密钥211是使用椭圆曲线加密(ECC)基元ECC-Pub(EUK)从随机临时私有密钥(EPK)生成的椭圆曲线公共密钥。临时私有密钥未存储在配置存储器115上或授权设备111上,而是在创建临时公共密钥之后被丢弃。这意味着临时私有密钥没有存储在非易失性存储器上,而是仅存储在易失性存储器上。因此,存储器断电会导致临时私有密钥的完全而且不可恢复的丢失(例如,破坏)。解锁公共密钥212对应于存储在授权设备111上的解锁私有密钥,并且由授权设备111生成并提供给访问控制器102。

授权设备元数据(与另外的随机数级联)由也在203处以加密形式存储的元数据封装密钥(MWK)213加密。将加密元数据封装密钥203存储在条目201中的主要目的是允许具有授权设备元数据密钥204的访问权限的管理器用户访问加密授权设备元数据205。如果管理器不能访问元数据封装密钥,则管理器将不能从DSD 100检索关于哪些授权设备当前被注册的任何信息。在一个示例中,授权设备元数据密钥204是用于所有授权设备的单个密钥,并且由管理器密钥加密地存储。管理器密钥可以是伪随机值(例如,32字节),并且由访问控制器102响应于存储介质105被擦除而生成。为每个配对管理器设备110/114加密并存储管理器密钥。

记录201还包括用于与用户密钥221和元数据封装密钥222的第二副本级联的设备角色220的第二副本的字段。需注意,角色207/220和元数据封装密钥203/222存储在相同但使用不同密钥加密的两个副本中。存储角色207/220的两个副本的目的是使得访问控制器102能够在连接期间(响应于授权设备元数据被解密)和解锁期间(响应于用户密钥221被解密)验证角色。存储元数据封装密钥203的第一副本的目的是将其提供给具有授权设备元数据密钥的访问权限的管理器设备。元数据封装密钥222的第二副本的目的是在第一次连接期间将其提供给预先授权的设备。级联值220、221、222一起由临时解锁秘密(EUS)223加密,该临时解锁秘密最初由Diffie-Hellman方法使用对应于临时公共密钥211和解锁公共密钥212的临时私有密钥生成。可以使用临时公共密钥211和存储在授权设备111上并且对应于解锁公共密钥212的相关联的解锁私有密钥来恢复临时解锁秘密223。换句话讲,可以使用临时私有密钥和解锁公共密钥212在授权设备111初次连接到DSD 100时生成临时解锁秘密223。需注意,临时私有密钥本身未被存储,但是临时解锁秘密223仍然可以如上所述恢复。这意味着用户密钥221能够基于来自授权设备的响应而解密。需注意,用户密钥221对于所有授权设备是相同的,并且可用于解密用户内容数据。这并不一定意味着用户密钥本身解密用户内容数据。还可存在用户密钥解密并且最终密钥解密用户内容数据的密钥。术语“使用密钥解密用户内容数据”和“启用用户内容数据的解密”是指经由链中的多个密钥的间接加密。相比之下,“密钥解密数据”是指利用密钥直接解密数据,诸如加密数据与密钥的模乘。这里,用户密钥221用于间接解密数据,并且可以是按顺序解密的密钥链的起点,直到最后,该链在解密用户内容数据的密钥处结束。虽然在本文所公开的大多数示例中,临时解锁秘密223解密用户密钥221,但是也可以其他方式从对质询的响应中导出加密密钥。例如,对质询的响应可以直接用作解密用户内容数据的加密密钥。

密钥和元数据的这种分配使得能够进行关于授权设备、管理器设备和其他方面的整个配置信息存储在DSD 100自身上的配置。然而,授权设备需要存储在相应授权设备上的密钥来解锁DSD 100。如果不具有任何密钥的访问权限的未注册用户想要访问设备的整个配置,诸如检索注册设备列表,则该未注册用户将只需要恢复密钥就能作为管理器设备注册并获得对管理器密钥的访问权限。然后,DSD 100可以使用管理器密钥向新管理器设备提供配置存储器115的全部内容。此外,可存在两个管理器设备,并且两者都可注册或移除授权设备。其他管理器设备将能够通过将其自身的记录与存储在配置存储器115上的数据同步来获得配置更新。在一些示例中,DSD 100被配置为如果使用恢复密钥来获得访问但这是策略决定,则擦除所有授权设备的记录201(但不删除用户内容数据或用户密钥221,其可以加密形式存储在配置存储器115上,与条目201和其他条目分开)。

图3示出了根据一个实施方案的授权设备111和访问控制器102之间的控制流300。首先,授权设备111通过发送301其传输公共密钥来发起连接方法。该步骤可容易地由攻击者重演。访问控制器102然后利用对证书的请求进行回复302,并且响应于该请求,授权设备111发送303先前通过重新注册过程从访问控制器102获得的证书。

证书

图4示出了根据一个实施方案的由数据存储设备100发出并由授权设备111发送到数据存储设备以解锁数据存储设备的证书400。在该示例中,证书400包括多个类型-长度-值(TLV)字段,其中类型值指示作为证书的一部分的字段的种类,长度是值字段的大小(通常以字节为单位),并且值是可变大小的字节系列,其包含证书的该部分的数据。

证书400以TLV原子开始,该TLV原子指示随后的证书的类型。这被称为证书角色401并且具有2字节值以指示这是授权设备证书。

证书400属于证书链。访问控制器102使用该链来验证和认证证书400。为了指示证书400属于哪个链,证书400具有4字节的根证书标识符(ID)402。证书链中的每个证书的证书标识符相同。不匹配的证书标识符指示无效证书。在一个示例中,根证书标识符指示证书链是生产还是开发认证链。在其他示例中,可以由相应的证书标识符指示其他组。

证书400还包括证书深度403的1字节指示符。证书的深度被定义为其与证书链内的根证书的距离。根证书被定义为具有零深度。当处理给定的证书链时,验证深度字段以确保链的完整性。

证书400还包括64字节证书传输公共密钥404(例如,根据美国国家标准与技术研究院(NIST)P-256椭圆曲线)。每个证书经由传输公共密钥来表示/索引。每种类型的公共密钥将具有其自己的专用标签类型。也就是说,标签类型将表示用于生成传输公共密钥的密码套件,诸如P-256密码套件。

证书400还包括数据字段405(下文解释)并且经由签名406进行认证。访问控制器102接收证书400并在信任或使用证书的内容中的任一个之前验证签名。为了启用签名验证,64字节签名者公共密钥407作为证书的一部分而提供。签名406本身的长度为64字节,并且在证书内遇到的所有先前TLV 401-405、407上计算,而不管它们是否由具体实施识别。更具体地讲,签名406从证书数据的散列导出。签名的特定数据是证书相关的,但包含用于表示证书的所有TLV,包括未被识别的TLV。用于生成签名的密钥是逻辑身份密钥并且与签名者公共密钥407相关联。

数据字段405包括槽编号410,它表示记录201在配置存储器115内的索引。数据字段405还包括元数据封装密钥411的另一副本(除了图2所示的两个副本之外)。数据字段405利用授权设备槽密钥(ADSK)412加密,该ADSK是存储在配置存储器115中的16字节伪随机值,并且用于加密授权设备证书中的数据,使得只有进行发布的DSD 100可以恢复信息。

解锁数据存储设备

返回图3,如果授权设备111希望解锁DSD 100,则授权设备111向访问控制器102发送303包括加密元数据封装密钥(MWK)213/411的证书400。证书400还包括槽编号410,它是记录201在配置存储器115中的索引。

访问控制器102使用存储在配置存储器115中的授权设备槽密钥来解密304数据字段405,并提取槽编号和元数据封装密钥。访问控制器102然后查询配置存储器115以从配置存储器115读取305适当的记录201,并使用元数据封装密钥来解密306授权设备元数据205。这产生临时公共密钥211,该临时公共密钥也可被称为授权设备的标识符,它唯一地识别授权设备,因为临时公共密钥211与仅存储在授权设备111上的解锁私有密钥加密地相关联。访问控制器102可以执行附加检查307,诸如验证包括在授权设备元数据205中的传输公共密钥209与证书400中提供的传输公共密钥404匹配。此外,访问控制器102对照有效值集合验证角色401,并且将角色与连接相关联。这意味着访问控制器102在连接的持续时间期间知道当前角色(授权设备或管理器设备)。例如,访问控制器102在易失性存储器上存储指示证书中提供的角色401的参数值。如果前述检查中的任一项未通过,则认为授权设备被撤销,并且发出关于该结果的错误。否则,连接尝试成功,并且访问控制器102向授权设备111发送308连接确认消息。

在该阶段,授权设备111连接并且解锁过程通过授权设备111向访问控制器102发送320解锁请求而开始319。该解锁请求包括与存储在授权设备的安全硬件模块上的私有密钥相关联的解锁公共密钥。访问控制器102将所接收的解锁公共密钥与存储在授权设备元数据记录205中的解锁公共密钥212匹配321。接下来,访问控制器102生成322新的盲值(也称为解锁盲密钥(UBK)),该新的盲值基本上是临时私有标量并且随机生成。

访问控制器102然后基于授权设备的标识符(例如,临时公共密钥211)乘以解锁盲密钥(UBK)来生成质询。更具体地讲,访问控制器102将临时公共密钥211乘以323解锁盲密钥,返回结果的完整X坐标和Y坐标,注意在椭圆曲线上执行该操作。然后,访问控制器102将X坐标和Y坐标作为质询发送到324授权设备111。此处需注意,该质询基于授权设备111的标识符,因为临时公共密钥是导出质询的乘法的一个因子。还需注意,对于每个解锁请求(即,320),生成不同的解锁盲密钥以避免中间人攻击。

此外,访问控制器102计算325解锁盲密钥的倒数(UBK-1)。访问控制器102可在等待来自授权设备111的响应时计算解锁盲密钥的倒数。

授权设备111通过将质询与解锁私有密钥相乘326来计算对质询的响应,该解锁私有密钥存储在授权设备的安全硬件模块中并且对应于存储在配置存储器115上的解锁公共密钥212。这可涉及加密基元的执行,该加密基元可完全在授权设备111内的安全硬件模块内执行。授权设备111然后将该结果在响应消息中发回327。访问控制器102将返回的结果乘以328解锁盲密钥的倒数以计算临时解锁秘密(EUS)223。

在数学符号中,P表示临时公共密钥,并且k表示在图3的步骤322处创建的解锁盲密钥。访问控制器102计算323乘积k*P并将其发送到324授权设备111。授权设备111将质询与解锁私有密钥j相乘326以计算j*k*P并将结果返回327到访问控制器102。访问控制器102将该响应与解锁盲密钥的倒数k-1相乘238以计算

k-1*j*k*P

由于椭圆曲线的交换性,其等于j*P

(即,k-1*j*k*P=k*k-1*j*P=j*P)。

访问控制器102然后使用j*P作为临时解锁秘密(即,密钥)来解密329用户密钥221。即,访问控制器102使用临时解锁秘密来将存储在DSD100上的用户密钥221解密,该用户密钥利用临时解锁秘密加密。更具体地讲,访问控制器102解密329用户密钥,该用户密钥然后解密330“用户驱动密钥”,该“用户驱动密钥”然后最终经由TCG命令发送331到加密引擎106。即,用户驱动密钥可由访问控制器102使用基于用户密钥的密钥导出函数来生成。用户驱动密钥是用于解锁DSD 100的TCG凭据,并且可以等同于本文所述的“加密密钥”。就Opal而言,这是User2凭据。

需注意,通过使用存储在授权设备111上的解锁私有密钥和解锁公共密钥212从椭圆曲线Diffie-Hellman过程的结果导出对称密钥,在重新注册过程期间生成临时解锁秘密。所得密钥用于加密用户密钥221,但不存储在DSD 100中。相反,每当授权设备请求解锁DSD 100时,重新生成该密钥,如上所述。

在另一个示例中,在上述公式中,解锁私有密钥j可被该解锁私有密钥与从通行码导出的值的乘积替换。解锁私有密钥将仍然存储在授权设备的安全硬件模块中,但是单独的解锁私有密钥将不能解密存储在DSD 100上的用户内容数据。相反,用户需要输入通行码来计算对质询的响应并发送327该响应。这将简单地用通行码值与上面的j的乘积来替换j。DSD将忽略该改变,因为临时解锁秘密223将从访问控制器102的角度以与上文相同的方式生成。

注册和重新注册

需注意,图2所示的数据记录201在授权设备111已完成重新注册过程之后示出,并且被允许解密加密的用户内容数据。同样,总体上有三个步骤:首先,管理器设备110将用户设备111注册一次,使其成为多个授权设备中的一个授权设备。第二,在与访问控制器102第一次连接时,授权设备111重新注册一次以完成所涉及的密钥的生成。第三,授权设备111随后与访问控制器102连接以解锁DSD 100。该第三步骤可多次发生。

在由管理器设备110发起的(初始)注册步骤期间,访问控制器102从管理器设备110接收对应于存储在用户设备111上的私有密钥的公共密钥。作为响应,访问控制器102创建授权数据,该授权数据类似于图2中的数据记录201,不同之处在于解锁公共密钥212字段保持传输公共密钥209(如从管理器设备110接收的那样),因为解锁公共密钥尚未生成。访问控制器102生成预先授权密钥202,该预先授权密钥基本上是用于定位记录201的索引。预先授权密钥由密钥生成函数使用所接收的传输公共密钥209的x坐标和盐值来生成。盐值可以是授权设备槽密钥,它可以是在“获取所有权”过程期间生成的16字节伪随机值,存储在配置存储器115上,并且不与授权设备共享。这样,在每次“恢复出厂设置”之后,盐可以是不同的,诸如每当管理器设备获取DSD 100的所有权时。

创建存储在记录201中的授权数据还包括诸如通过生成16字节伪随机值生成元数据封装密钥222。访问控制器102将元数据封装密钥存储在字段222中。此外,访问控制器102生成临时解锁秘密223并利用临时解锁秘密223对角色220(例如,授权设备)、用户密钥221和新的元数据封装密钥222加密。然后,访问控制器102从临时解锁秘密223生成临时公共密钥211并丢弃临时解锁秘密223。

回想一下,在由管理器设备110发起的(初始)注册步骤期间,访问控制器102创建类似于图2中的数据记录201的授权数据。与图2相比,授权设备元数据205不是由新的元数据封装密钥加密,而是由预先授权的元数据封装密钥加密,因为实际的元数据封装密钥222对于授权设备111尚不可用。预先授权的元数据封装密钥可与该阶段的预先授权密钥202相同或单独生成。需注意,现在加密授权设备元数据205的预先授权的元数据封装密钥可仅由访问控制器102生成,而不由授权设备111提供,因为授权设备111不具有对用于生成预先授权的元数据封装密钥的授权设备槽密钥的访问权限。

因此,响应于授权设备111首先与访问控制器102连接,授权设备111向访问控制器102发送其传输公共密钥。访问控制器102使用传输公共密钥和存储的授权设备槽密钥来生成预先授权密钥202。访问控制器102然后可搜索配置存储器115中的预先授权密钥202以检索记录201。访问控制器102还可使用预先授权密钥作为预先授权元数据封装密钥来解密授权设备元数据205。

如上所述,访问控制器102使用临时公共密钥211和解锁盲密钥来生成质询。访问控制器102然后从响应创建临时解锁秘密223。需注意,仅具有对应于传输公共密钥209的私有密钥的授权设备111可创建有效响应。这意味着即使攻击者反汇编配置存储器115并读取授权设备槽密钥以生成预先授权元数据封装密钥来解密临时公共密钥211,攻击者仍将无法生成临时解锁秘密223。

访问控制器102通过检查响应充当临时解锁秘密223来验证该响应,并且作为响应,更新记录201中的授权数据。更具体地,访问控制器102检查用于解锁公共密钥的字段212是否与传输公共密钥209相同。响应于两者相同(如上所述),访问控制器102从授权设备111请求新的解锁公共密钥并将返回的密钥存储为解锁公共密钥212。

访问控制器进一步解密在由管理器设备110注册期间生成的元数据封装密钥222。在该阶段,访问控制器102可重新生成临时解锁秘密223、加密角色220、用户密钥221和元数据封装密钥222,重新生成并存储临时公共密钥211,并丢弃临时解锁密钥223。最后,访问控制器利用元数据封装密钥222对授权设备元数据205加密,并且利用随机值覆盖预先授权密钥202,以使配置存储器115即使在持有传输公共密钥和/或解锁公共密钥的情况下也无法与随机数据区分开。这结束了存储在记录201中的授权数据的更新和注册过程。因此,作为多个授权设备中的一个授权设备的授权设备111现在被允许通过上述解锁步骤对加密的用户内容数据进行解密。

涉及授权数据的创建和更新的上述过程使得多个授权设备能够在由管理器设备110注册的第一步骤期间仅使用其公共密钥来注册。这样,就不需要共享可能被拦截并用于恶意解锁用户的其他设备的秘密信息。

多个角色

返回图2,配置存储器115存储多个条目,其中仅示出了两个条目(第一条目201和第二条目250)。在大多数情况下,每个注册设备都有一个条目。每个“注册”设备可以是管理器设备110或授权设备111、117、118、120、121。可存在附加条目,诸如用于恢复密钥(未示出)。

第一条目201与授权设备111相关联,如上文详细解释的。再次注意,第一条目存储由临时解锁秘密223加密的用户密钥221,可使用临时公共密钥ECC-Pub(EUK)211根据对质询的响应来计算该用户密钥。

第二条目250与管理器设备110相关联。第二条目250中的大多数字段具有与第一条目201中相同的功能并且如上所述。总之,预先授权密钥252使得能够在管理器设备110与DSD 100的第一连接处定位第二条目250,注意管理器设备110可能已经由最初执行获取所有权过程的另一管理器设备注册。该注册以与上述授权设备的注册相同的方式进行(包括重新注册和使用证书来提供条目索引和元数据封装密钥)。同样,元数据封装密钥253的副本和预先授权的元数据封装密钥264由授权设备元数据密钥加密存储,以使得管理器能够访问由元数据封装密钥263加密的授权设备元数据255。元数据封装密钥263由管理器设备110在证书中提供,以解密包括设备类型256和角色257的授权设备元数据255。角色257现在不同于角色207,因为角色257保持指示管理者角色的值,而角色207保持指示用户角色的值。需注意,第一条目201的元数据封装密钥203/213/222不同于第二条目250的元数据封装密钥253/263/272。

同样,类似于第一条目201,授权设备元数据255包括管理器设备110的名称258、传输公共密钥259、解锁密钥元数据260、临时公共密钥261和解锁公共密钥262。这些功能类似于它们在第一条目201中的对应功能,并且如上所述。管理器设备110还在安全硬件模块上存储传输私有密钥和解锁私有密钥。此外,访问控制器102基于临时公共密钥261生成质询,并且基于来自管理器设备110的响应计算临时解锁秘密273,该临时解锁秘密解密角色270的第二副本和元数据封装密钥272的第二副本。与用户密钥221被解密的第一条目201相比,临时解锁秘密273现在对提供管理器访问权限的管理器密钥271进行解密。

在一些示例中,用户密钥221可直接从管理器密钥271导出,这意味着管理器密钥是计算用户密钥所需的唯一秘密信息。导出可以是单向的,这意味着不能从用户密钥导出管理器密钥。导出可基于散列函数,诸如根据因特网工程任务组(IETF)的评论请求(RFC)5869的基于散列的消息认证码(HMAC),使用具有512位的安全散列算法2(SHA-2)(还可参见美国国家标准与技术研究院特殊出版物(SP)800-56C)来进行。需注意,管理器密钥对于所有管理器设备条目是相同的,因此,用户密钥对于所有授权设备条目也是相同的。

具有可导出的用户密钥还意味着一旦管理器密钥271可用,就总是能够计算用户密钥。因此,响应于管理器设备110提供对质询的正确响应,访问控制器102可使用从管理器密钥271导出的用户密钥来解密用户内容数据,该管理器密钥是基于该响应解密的。因此,管理器设备被称为具有管理器访问权限,该管理器访问权限包括对用户内容数据的访问权限和对存储在配置存储器115上的授权数据的访问权限。因此,管理器设备110可请求可由访问控制器102提供的注册设备的列表。因此,管理器设备110可将列表本地存储在管理器设备110上并将列表显示在图形用户界面上。检索注册设备的所有条目的过程可由位图数据对象支持,该位图数据对象包括用于每个可能的数据条目的一个位,诸如用于256个可能的注册设备的256个位。访问控制器102响应于写入多个条目中的一个条目而将位设置为“1”。这样,访问控制器102可确定哪些条目有效并且不尝试解密无效条目。

与管理器设备110相比,授权设备111不具有对管理器密钥271的访问权限,而是仅具有对用户密钥221的访问权限,这不能够解密其他设备的元数据。因此,据说与其他注册设备相关联的授权数据的读取对于授权设备是受限的(无法访问管理器密钥271)。

此处应当注意,每个条目201/250和未示出的每个另外的条目包括由不同的元数据封装密钥加密的元数据。因此,响应于提供管理器访问权限,访问控制器102针对每个条目确定单独的元数据封装密钥。更具体地,在管理器密钥271可用的情况下,访问控制器102计算授权的设备元数据密钥254(其对于所有条目都是相同的)并使用该密钥对每个特定于条目的元数据封装密钥203/253进行解密,这继而使访问控制器102能够对每个授权设备元数据255进行解密。还需注意,管理器访问权限不允许从授权设备条目解密用户密钥221,因为计算临时解锁秘密223需要保留在每个授权设备的存储器中的解锁秘密密钥。然而,用户密钥221可从管理器密钥271导出,因此管理器设备110从授权设备条目201解密用户密钥221没有益处。

概括地说,条目201和250存储用户密钥221或管理器密钥271,这使得访问控制器能够选择性地提供对多个注册设备的用户访问权限或管理器访问权限。

初始化

如上所述,在没有任何用户设备111先前已向DSD 100注册的情况下,从工厂装运DSD 100。此外,恢复出厂设置可以将DSD 100设置为相同状态。没有注册设备并且没有用户内容数据的这种状态被称为“新生状态”。这可能意味着用户内容数据仍然存储在存储介质105上,但密钥已被破坏,因此用户内容数据与随机数据不可区分。在该新生状态下,管理器设备110(其尚未如此注册)可以执行如上所述的“获取所有权”方法,以将其自身作为管理器设备向DSD 100注册。还可以在DSD 100的任何状态下执行“获取所有权”,但是这导致用户内容数据和关于注册设备的信息的完全丢失,因为存储介质105和配置存储器115是加密擦除的(例如,密钥被删除或覆盖)。

由于访问控制器102和管理器设备110(其尚未如此注册)在获取所有权过程之前尚未共享任何信息,因此这两者首先建立安全通信信道。为此,访问控制器102和管理器设备110执行安全协议,该安全协议基于身份密钥的通过QR码或NFC芯片112从访问控制器102到管理器设备110的带外通信。身份密钥然后可用于保护通信信道,并且然后可由访问控制器102使用链接到可由管理器设备110访问的根证书的证书来认证。因此,管理器设备110和访问控制器102不需要共享任何私人信息,直到访问控制器102被认证给管理器设备110。

在建立连接之前,访问控制器102生成随机值并且使用身份密钥和该随机值来计算消息认证码(MAC)。访问控制器102利用MAC在无线通信信道(例如,蓝牙广播)上广播随机值作为周期性广播分组的一部分。管理器设备110扫描QR码112以获得身份密钥(或从NFC芯片读取身份密钥)。这使得管理器设备能够监听来自DSD 100的广播分组。更具体地讲,管理器设备110接收包括随机值的广播分组,并且基于随机值和带外获得的身份密钥来重新计算MAC。管理器设备110然后将来自广播分组的MAC与重新计算的MAC匹配,并且丢弃MAC不匹配的所有分组。对于MAC匹配的分组,访问控制器102可以假设这些分组实际上源自获得身份密钥的DSD 100。

在访问控制器102或管理器设备110不必在无线通信信道上向彼此提供任何私人信息的情况下,这种初始认证是可能的。这改善了“配对”过程的隐私性。由于MAC是使用身份密钥计算的,因此只有在附近并且可以扫描QR码(或读取NFC芯片)的设备才可以重新计算MAC。因此,具有身份密钥是拥有数据存储设备100的证据。因此,只有具有身份密钥的用户设备111能够识别哪些广播分组源自DSD 100。对于所有其他设备,通告分组看起来是随机的。在多个访问控制器102发送来自多个DSD 100的通告分组和多个身份密钥可用的情况下,管理器设备110可以尝试每个可用的身份密钥并尝试重新计算MAC。如果结果匹配,则管理器设备110已经确定匹配身份密钥用于具有匹配的MAC的设备。

管理器设备110现在可发送连接请求。管理器设备110可使用随机值或MAC或两者作为通信地址,并且可使用身份密钥加密连接请求中的数据。访问控制器102访问存储在配置存储器115上的数据存储设备证书(不同于图4中的证书400)。数据存储设备证书加密地链接到可由管理器设备110访问的根证书(未示出)。例如,根证书可存储在web服务器或云存储设备上,或者可与应用程序的程序代码一起提供。访问控制器102计算由数据存储设备证书验证的签名,并将数据存储设备证书和该签名发送到管理器设备110。管理器设备110通过安装在管理器设备110上的应用程序从以加密地与根证书相关联的已认证提供方访问根证书,该已认证提供方诸如为DSD 100的制造商保存证书的应用商店。这样,管理器设备110可以验证身份密钥已由数据存储设备的制造商而非中间人发布。

响应于验证从访问控制器102接收的证书,管理器设备110向访问控制器102发送传输公共密钥259以用于解锁DSD 100。然而,管理器设备110尚未注册,因此访问控制器102检查授权设备的记录以寻找匹配的预授权密钥202/252。响应于确定不存在匹配记录,访问控制器102向管理器设备110发送对应的消息。安装在管理器设备110上的应用程序然后在图形用户界面上呈现两个选项:

·请求远程审批人访问,同时保存用户内容数据和加密该用户内容数据的加密密钥;或者

·获取所有权,同时通过重新生成加密用户内容数据的加密密钥加密擦除该用户内容数据。

响应于用户选择用于获取所有权的第二选项,管理器设备110向访问控制器102发送获取所有权的请求。作为响应,访问控制器102格式化存储介质105,诸如通过将空文件结构重新写入到存储介质105上。此外,访问控制器102在配置存储器115中生成新记录250,并生成新的用户驱动密钥(未示出)和新的管理器密钥271。

访问控制器102然后生成新的临时私有密钥(作为随机值),从临时私有密钥导出临时解锁秘密273和临时公共密钥261,生成新的元数据封装密钥272,并且用临时解锁秘密273对角色270、管理器密钥271和元数据封装密钥272加密。然后,访问控制器102丢弃临时私有密钥。

对于元数据255,访问控制器102从管理器设备110请求新的解锁公共密钥262和名称258。访问控制器102还将设备类型256设置为“用户设备”(而非“信标”、“密钥卡”或“恢复密钥”)并将角色257设置为“管理者”。最后,访问控制器102加密所得的元数据,该所得的元数据包括设备类型256、角色257、名称258、传输公共密钥259(第一发送的公共密钥)、解锁密钥元数据260、临时公共密钥261,以及利用新生成的元数据封装密钥263解锁公共密钥262(第二发送的公共密钥)。此外,访问控制器102使用从管理器密钥271导出的授权设备元数据密钥254来加密元数据封装密钥253和预授权元数据封装密钥264的另一副本。最后,访问控制器102将所得的数据存储在配置存储器115上,如图2所示,注意到授权设备记录201现在由于用户密钥221已改变而无效,因此相关联的授权设备201不再能够解密用户内容数据。访问控制器102可以使用每记录一位的位图来指示记录201现在是无效的。访问控制器102可用随机数据覆盖记录201。访问控制器102还向管理器设备110发出证书400。

一旦管理器设备110注册了对管理器密钥271的访问权限,管理器设备110就可以请求访问控制器102向其他用户设备注册“管理者”或“用户”的角色,诸如通过存储管理器密钥271或用户密钥221的其他加密版本,如图2所示。在一个示例中,访问控制器102要求管理器设备110在注册之后在提供管理器访问权限之前解锁DSD 100。这意味着管理器设备110和访问控制器102执行参考图3所述的步骤。即,管理器设备提供证书400,访问控制器102重试时隙编号410和元数据封装密钥411,并解密授权设备元数据255。访问控制器102然后基于临时公共密钥261来生成质询,基于响应来计算临时解锁秘密,并且最终解密管理器密钥271并导出用户密钥221。

用于初始化数据存储设备的方法

图5示出了根据一个实施方案的用于初始化数据存储设备100的方法500。首先,访问控制器102从管理器设备110(其尚未如此注册)接收501初始化数据存储设备的请求,如上所述。当数据存储设备100处于出厂的“全新”或“新生”状态时,或者当DSD 100将在完全失去数据的情况下被重新利用时,可能发生这种情况。响应于接收到请求,访问控制器102生成502新的加密密钥(上文的“用户驱动密钥”)以解密存储在数据存储设备110的存储介质105上的所述加密的用户内容数据。访问控制器102还生成503管理器密钥271,该管理器密钥为管理器设备110提供管理器访问权限,诸如通过启用授权设备111的注册并启用现有授权设备记录201和日志数据的读取。由于用户密钥221可直接从管理器密钥271导出,并且用户密钥221解密用户驱动密钥(即,“加密密钥”),因此管理器密钥还提供对加密密钥的访问权限。最后,访问控制器102在数据存储设备100的非易失性数据存储库(配置存储器115)上存储504授权数据250,该授权数据指示管理器密钥271并且能够基于存储在管理器设备上的私有密钥而访问。

注册数据存储设备

数据端口103向主机计算机系统104注册为块数据存储设备。例如,通用串行总线(USB)设备以USB设备描述符的形式提供信息。USB设备描述符包含关于设备的相关信息。因此,在数据存储设备经由USB连接而连接到主机计算机系统的实施方案中,数据存储设备通过配置其USB设备描述符以指示数据存储设备为块数据存储设备来向主机计算机系统注册为块数据存储设备。

USB设备描述符提供关于USB设备的结构化信息,诸如设备类别、支持的协议、设备类型、制造商和其他配置参数。主机计算机的操作系统可通过向数据存储设备发送各种标准控制请求(例如,GET_DESCRIPTOR请求)来获得数据存储设备的USB设备描述符。响应于接收到这些请求,数据存储设备向主机计算机系统提供USB_DEVICE_DESCRIPTOR,从而将数据存储设备向主机计算机系统注册为块数据存储设备。主机计算机解释USB_DEVICE_DESCRIPTOR以确定数据存储设备的配置和能力。主机计算机系统然后可将关于数据存储设备的信息存储在主机计算机系统的操作系统的寄存器中。

本领域的技术人员应当理解,在不脱离本公开的广泛一般范围的情况下,可对上述实施方案作出许多变型和/或修改。本发明的实施方案因此将在所有方面被认为是示例性的而非限制性的。

25页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数据管理装置、数据管理系统、数据管理方法及程序

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!