一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

预先授权设备的注册的制作方法

2021-10-23 02:47:00 来源:中国专利 TAG:解锁 数据存储 锁定 公开 设备


1.本公开涉及可被锁定和解锁的数据存储设备。


背景技术:

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


技术实现要素:

3.本公开涉及数据存储设备,诸如但不限于能够经由usb电缆连接到主机计算机系统的块数据存储设备,使得数据存储设备向主机计算机系统的操作系统注册为大容量数据存储设备。数据存储设备被锁定,使得主机计算机系统无法访问存储在数据存储设备上的数据。然而,用户可通过使用被设置为对数据存储设备解锁的授权设备来解锁该数据存储设备。此外,本公开涉及一种机制,管理器(使用管理器设备)可通过该机制向数据存储设备预先授权用户设备。响应于预先授权的用户设备连接到数据存储设备,该数据存储设备创建授权数据,该授权数据使得预先授权的设备能够解锁数据存储设备并解密加密的用户内容数据。
4.本文公开了一种数据存储设备,该数据存储设备包括数据路径、访问控制器和非易失性数据存储库。数据路径包括:数据端口,所述数据端口被配置为在主机计算机系统和该数据存储设备之间传输数据;非易失性存储介质,所述非易失性存储介质被配置为存储加密的用户内容数据;加密引擎,所述加密引擎连接在所述数据端口和所述存储介质之间,并且被配置为响应于来自所述主机计算机系统的请求而使用加密密钥对存储在所述存储介质上的所述加密的用户内容数据进行解密。所述访问控制器被配置为从管理器设备接收公共密钥,其中所述公共密钥与存储在待授权设备上的私有密钥相关联;确定提供对所述加密密钥的访问权限的用户密钥;基于所述公共密钥来加密所述用户密钥,并且使得所述用户密钥能够基于存储在所述待授权设备上的所述私有密钥解密;以及在数据存储库上存储指示所加密的用户密钥的授权数据。
5.在一些实施方案中,响应于所述管理器设备连接到所述数据存储设备来执行接收所述公共密钥、确定所述用户密钥、加密所述用户密钥以及存储所述授权数据。
6.在一些实施方案中,所述管理器设备连接到所述数据存储设备包括恢复使得能够确定用户密钥的管理器密钥。
7.在一些实施方案中,所述管理器设备基于所述授权数据向数据存储设备注册,所述授权数据存储在所述数据存储库上并且指示基于存储在管理器设备上的私有密钥能够访问的管理器密钥。
8.在一些实施方案中,所述访问控制器被配置为响应于待授权设备的连接,执行以下步骤:基于所述授权数据确定对所述待授权设备的质询;将所述质询发送到所述待授权设备;接收基于存储在所述待授权设备上的所述私有密钥所计算的响应;使用元数据封装密钥加密所述授权数据的至少一部分;以及将所述元数据封装密钥提供给所述待授权设备。
9.在一些实施方案中,质询基于能够使用公共密钥访问的授权数据。
10.在一些实施方案中,能够使用所述公共密钥访问的所述授权数据基于所述公共密钥和存储在所述数据存储库中的私有密钥被加密。
11.在一些实施方案中,所述授权数据包括基于所述公共密钥的、用于定位所述待授权设备的所述授权数据的索引。
12.在一些实施方案中,所述访问控制器被配置为响应于将针对所述授权数据的所述索引发送到所述待授权设备,而用随机数据替换所述索引。
13.在一些实施方案中,所述访问控制器被配置为发出证书并将所述证书发送到所述待授权设备。
14.在一些实施方案中,所述证书包括元数据封装密钥,所述元数据封装密钥用以加密用于创建质询的授权数据。
15.在一些实施方案中,用于多个授权设备中的每个授权设备的授权数据指示:传输公共密钥,所述传输公共密钥用于在所述访问控制器和所述授权设备之间传输数据;和解锁公共密钥,所述解锁公共密钥用于生成对所述授权设备的所述质询。
16.在一些实施方案中,所述授权数据指示第一公共密钥和第二公共密钥;并且所述访问控制器被配置为基于所述第一公共密钥与所述第二公共密钥相同来选择性地更新所述授权数据。
17.在一些实施方案中,使用特定于多个授权设备中的每个授权设备的解锁秘密来加密加密密钥。
18.在一些实施方案中,所述访问控制器被配置为基于来自所述多个授权设备中的一个授权设备的对质询的响应来计算所述解锁秘密,所述质询基于与所述多个授权设备中的所述一个授权设备相关联的所述公共密钥而生成。
19.在一些实施方案中,所述授权数据包括通过能够从所述公共密钥导出的预先授权的元数据封装密钥加密的授权设备元数据。
20.在一些实施方案中,所述预先授权的元数据封装密钥能够使用存储在所述数据存储库中的私有密钥经由密钥导出函数从所述公共密钥导出。
21.在一些实施方案中,所述元数据封装密钥是对称密钥。
22.本文还公开了一种用于相对于数据存储设备注册用户设备的方法。所述方法包括:从管理器设备接收公共密钥,其中所述公共密钥与存储在待授权用户设备上的私有密钥相关联;确定提供对所述加密密钥的访问权限的用户密钥;基于所述公共密钥来加密所述用户密钥,并且使得所述用户密钥能够基于存储在所述待授权设备上的所述私有密钥解密;以及在数据存储库上存储指示所加密的用户密钥的授权数据。
23.本文还公开了一种数据存储设备,所述数据存储设备包括:用于从管理器设备接收公共密钥的装置,其中所述公共密钥与存储在待授权用户设备上的私有密钥相关联;用
于确定提供对所述加密密钥的访问权限的用户密钥的装置;用于基于所述公共密钥来加密所述用户密钥并且使得所述用户密钥能够基于存储在所述待授权设备上的所述私有密钥解密的装置;和用于在数据存储库上存储指示所加密的用户密钥的授权数据的装置。
附图说明
24.现在将参考以下附图描述非限制性示例:
25.图1示出了根据一个实施方案的数据存储设备;
26.图2a示出了根据一个实施方案的在授权用户设备注册之后的图1的数据存储设备的配置存储器的区段;
27.图2b示出了根据一个实施方案的在用户设备的重新注册之后的图1的数据存储设备的配置存储器的区段;
28.图3示出了根据一个实施方案的图1的授权设备和访问控制器之间的控制流;
29.图4示出了根据一个实施方案的由数据存储设备发出并由授权设备发送到数据存储设备以解锁数据存储设备的证书;并且
30.图5示出了根据一个实施方案的用于利用数据存储设备注册用户设备的方法。
具体实施方式
31.图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读取。
32.命令集
33.在一个示例中,存储介质105包括专用集成电路和/或可编程集成电路形式的加密引擎106,该加密引擎加密要存储在存储介质105上的数据并解密要从存储介质105读取的数据。在此类示例中,该存储介质可根据可信计算组(tcg)的光学规范提供小型计算机系统接口(scsi)或高级技术附件(ata)命令集。
34.存储在加密引擎106上的程序代码使得加密引擎106能够接收、解释和执行从主机计算机系统104接收的命令。例如,密码引擎106可被配置为实现标准ata或串行ata(sata)和/或ata分组接口(atapi)命令集,该命令集可从技术委员会t13获得,注意可在tcg opal、scsi和其他专有架构内实现相同的功能。命令集包括read sectors命令,命令输入为扇区的计数和起始扇区(注意,“扇区”与本文的“块”同义地使用)。因此,存在对应的写入命令。需注意,主机计算机系统104上安装有数据存储设备驱动程序。该数据存储设备驱动程序(未示出)使用该命令集向操作系统提供高级服务,诸如文件读取功能。在一些示例中,该数
据存储设备驱动程序是作为操作系统的一部分提供的通用驱动程序,而不支持设备特定的加密命令,因为加密功能对于主机计算机系统104是隐藏的并且在dsd 100内进行内部处理,如下所述。这意味着不需要安装额外的驱动程序就能使用本文所公开的全功能。
35.由加密引擎106提供给数据端口103(但不转发给主机计算机系统104)的命令集可包括来自ata security特征集的命令集。具体地讲,该命令集可包括命令security set password或来自tcg opal的对应命令,以设置用于读取用户内容数据和将用户内容数据写入存储介质105的密码。
36.在这种意义上,加密引擎106连接在数据端口103和存储介质105之间,并且被配置为响应于来自主机计算机系统104的请求而使用加密密钥来加密要存储在存储介质105上的用户内容数据和解密存储在存储介质105上的加密的用户内容数据。在一些示例中,ata security特征集仅由数据端口103使用,而不由主机104使用。即,访问控制器102为数据端口103提供必要的输入以向加密引擎106发出ata security命令。例如,访问控制器102可向数据端口103提供密钥,然后数据端口103经由security set password命令将该密钥转发到加密引擎106。访问控制器102与数据端口103之间的接口可为内置集成电路(i2c)总线,这在该总线已在现有芯片中实现的情况下特别有用。然而,可以使用许多其他通信架构,包括总线架构、点对点架构、串行架构、并行架构、基于存储器的架构和其他架构。
37.需注意,如图1所示的专用芯片中的功能的分离仅为一种可能的示例性具体实施。因此,可以进一步组合功能或拆分功能。例如,数据端口103可与访问控制器102集成到具有单个内核的单个芯片中。在其他情况下,数据端口103和访问控制器102可与加密引擎106集成到具有单个内核的单个专用芯片中。当然,所有芯片可具有多个内核。
38.在一个示例中,使用以下部件:
39.数据端口103:usb 3.1gen 2每秒10吉比特(gb/s)接口
40.访问控制器102:来自nordic semiconductor的nrf52840片上系统(soc)
41.需注意,对于本文所公开的功能,访问控制器102发挥主要作用,并且将在下文更详细地描述,再次需注意,在其他示例中,任务可被分到单独的芯片中。当参考访问控制器102的“配置”或访问控制器102被“配置”以执行某个步骤时,这应当理解为涉及存储在dsd 100中的非易失性存储器上的程序存储器(为清楚起见未示出)上并由访问控制器102执行的程序代码。
42.在其他示例中,本文所公开的一些或所有步骤可由不具有程序代码的硬件电路执行。具体地讲,出于性能和安全性原因,加密基元可由专用硬件电路实现。例如,计算要求特别高的命令(诸如椭圆曲线乘法或求幂)可由专门设计用于该计算的算术逻辑单元(alu)来实现,使得与在通用微控制器中使用顺序程序相比,该计算可在单个或更少数量的处理器周期中执行。还需注意,dsd 100中包括的芯片是微控制器,这意味着在该上下文中,它们不在提供硬件抽象层的操作系统下运行,而是程序代码直接作用于硬件电路。虽然出于计算效率和安全性的原因,在本文中将椭圆曲线加密用作示例,但需注意,可同样使用其他公共密钥密码系统,诸如rivest

shamir

adelman(rsa)密码系统。
43.返回图1,除了主机计算机系统104之外,还存在位于dsd 100外部并且在解锁dsd 100并向加密引擎106提供密钥的过程中起作用的多个设备,使得最终能够向主机计算机系统104提供明文解密数据。
44.具体地讲,存在第一管理器设备110,在大多数示例中它是移动电话。安装在管理器设备110上的应用程序(应用)执行以下步骤。这样,以下步骤可以由dsd 100的制造商在软件中实现,并且通过通常可访问的应用商店(诸如apple的应用商店或google play)分发给管理器设备110。安装在管理器设备110上的应用执行获取dsd 100的所有权的步骤,此时dsd 100上的所有数据被擦除或以其他方式变得不可访问。例如,可通过安全地删除存储在dsd 100上的所有加密密钥来加密擦除数据。
45.为了简化起见,本公开将步骤描述为简单地由管理器设备110执行,如果它们由应用实现的话。管理器设备110设置dsd 100,这意味着生成各种不同的密钥来支持本文所公开的过程。管理器设备110向dsd注册用户设备111,使得用户设备111随后被称为“授权设备”111。在大多数示例中,授权设备111也是移动电话,它安装有实现被描述为由授权设备111执行的步骤的应用。然而,其他类型的设备可用作授权设备,这将在下文关于信标和密钥卡进行解释。
46.用例
47.存在由访问控制器102结合管理器设备110和授权设备111一起管理的三个主要用例。首先,管理器设备110向数据存储设备100(具体地,访问控制器102)注册用户设备111一次,作为可能的多个授权设备之一。该步骤(“注册”或“预先授权”)通常将在dsd100持有正在操作管理器设备110的管理器时(并且因此,在dsd 100和管理器设备110彼此接近时)并且在向用户提供dsd 100之前执行。第二,在首次连接到dsd 100(具体地,访问控制器102)时,授权设备111重新注册一次以完成所涉及的密钥的生成。该步骤(“重新注册”)通常将在将dsd 100交付给用户时执行。第三,授权设备111随后连接到dsd 100(具体地,访问控制器102)以解锁dsd 100。该第三步骤(“解锁”)可发生多次,并且通常将在每次授权设备111的用户在使数据存储设备100上电之后希望访问用户内容数据时执行,诸如通过将其连接到usb或其他电源。
48.获取所有权
49.在购买、解包和上电之后,使用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还包括身份密钥,使得一旦安装了该应用,该应用就可以解码该标识符。
50.在另一个示例中,管理器设备110可读取附连到dsd 100或与该dsd集成的另一个标签或nfc芯片以获得身份密钥。然后,使用该身份密钥,管理器设备110可发起与dsd 100并且具体地讲与访问控制器102的通信,诸如以无线方式(例如,通过蓝牙)发起。
51.恢复密钥
52.在获取dsd 100的所有权时,访问控制器102生成恢复密钥并将该恢复密钥提供给管理器设备110。然后可将该恢复密钥存储在安全存储装置113上或者打印并锁好。最后,备
份管理器设备114可使用该恢复密钥来承担管理器设备110先前具有的管理者角色。
53.授权设备的注册
54.一旦在获取所有权过程期间最初配置了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执行的步骤进行编码。根据配置参数,可能需要用户在dsd 100能够被解锁之前解锁授权设备111。
55.更具体地讲,访问控制器102具有非易失性配置数据存储库(诸如配置存储器115)的访问权限,该非易失性配置数据存储库可以是访问控制器102外部的闪存存储器(但可同样集成到访问控制器102中)。配置存储器115还可存储将本文所述的步骤实现为由访问控制器102执行的程序代码。需注意,本文的一些示例被配置为假设攻击者可容易地分离并读出配置存储器115的内容,但不应能够使用该信息来解密用户内容数据。也就是说,在那些示例中,没有密钥以明文永久地存储在配置存储器115上或dsd 100中的非易失性存储器上的其他地方。
56.一旦加密密钥以明文形式提供,它们就仅存储在易失性存储器(未示出)中。这意味着dsd 100的掉电会擦除以明文存储的所有加密密钥。可提供附加电路以在掉电、上电或外部重置时重置所有剩余电荷,使得在实践中物理上不可能从易失性存储器恢复任何信息。在许多情况下,用户断开usb电缆与主机计算机系统104的连接会导致所有易失性存储器的掉电和擦除。在其他示例中,使用需要断开连接以使dsd 100掉电以删除易失性存储器的副电源。
57.质询

响应
58.配置存储器115上存储有特定于已注册的授权设备111的数据。该数据可被称为授权设备111的标识符或被称为与存储在授权设备111上的对应私有密钥相关联的公共密钥。该公共密钥可为“传输公共密钥”(tpk),并且由授权设备111在应用首次启动时通过执行椭圆曲线加密(ecc)基元ecc

pub({传输私有密钥})来生成。(回想一下,虽然出于计算效率和安全性的原因,在本文中将椭圆曲线加密用作示例,但需注意,可同样使用其他加密技术。)该对应私有密钥存储在授权设备111上。访问控制器102被配置为使用标识符(例如,传输公共密钥)或生成并存储另外的公共密钥,以生成对授权设备111的质询。此处应当注意,质询是独特的,因为每个质询是不同的,使得后续质询不同于任何先前的质询。如下所述,这通过将所存储的数据乘以随机盲因子来实现。然后,访问控制器102通过不同于数据路径的通信信道将质询发送到授权设备111。例如,数据路径可包括有线usb连接,而访问控制器102
与授权设备111之间的通信信道为无线(例如,蓝牙)连接。
59.在一个示例中,在创建授权数据并将其存储在与从管理器设备110接收的授权设备111的传输公共密钥相关联的配置存储器115上之后,响应于授权设备第一次与dsd 100连接而进行重新注册过程。在重新注册过程期间,dsd 100更新授权数据,并且如下所述,请求授权设备111生成解锁公共密钥(和对应的解锁私有密钥)。然后,授权设备111向访问控制器102提供该解锁公共密钥。访问控制器102将解锁公共密钥存储在字段212b中,从而覆盖传输公共密钥212a。
60.因此,在重新注册过程之后,授权设备111存储两个私有密钥,即传输私有密钥和解锁私有密钥。这两个私有密钥(传输私有密钥和解锁私有密钥)可单独存储在授权设备111上,并且这两个私有密钥中的每个私有密钥可具有与该密钥相关联的不同访问策略。例如,即使授权设备111被锁定(例如,通过屏幕锁定或超时),也能够在任何时间访问传输私有密钥,以便允许授权设备111和dsd 100之间的持续通信。然而,为了解锁dsd 100,解锁私有密钥的访问策略可能要求用户解锁授权设备111,输入个人识别号码(pin),提供生物特征或其他认证。
61.解锁私钥的使用与不同访问策略相关联。这样,被盗的授权设备不能解锁dsd 100。由于在dsd 100通电时仅执行一次解锁dsd 100,所以增加的安全性不会显著降低用户便利性。
62.授权设备111可计算对质询的响应,该响应不能由未向dsd注册的任何其他设备计算。更具体地讲,不具有对与存储在配置存储器115上的授权设备111的标识符对应的数据的访问权限的设备无法计算正确的响应。例如,授权设备111使用与存储在配置存储器115上的对应解锁公共密钥相关联的所存储的解锁私有密钥来计算对质询的响应。
63.访问控制器102通过通信信道从授权设备111接收对质询的响应。此处应当注意,如果访问控制器102简单地验证了对质询的响应,并且在成功时,从配置存储器115读取加密密钥,则该加密密钥将以明文存储,这是不期望的,因为这将使得攻击者能够反汇编dsd 100并从配置存储器115读取密钥来访问存储在存储介质105上的用户内容数据。
64.计算密钥
65.因此,相反,访问控制器102至少部分地基于来自授权设备111的响应来计算加密密钥。这意味着加密密钥不是响应的纯函数,而是涉及如下文更详细描述的其他值。总之,加密密钥以加密形式存储在配置存储器115上,并且基于存储在授权设备上的私有密钥的响应来启用解密该加密密钥的秘密的计算。
66.在整个本公开中,可参考密钥的“封装”,这仅仅意味着密钥由另一个密钥(即,由“秘密”)加密。在“封装”的许多情况下,加密是对称的,使得存在可以解密该加密密钥的单个秘密(密钥)(没有与该秘密相关联的公共密钥)。在一个示例中,对称加密使用高级加密标准(aes)基元。
67.最后,访问控制器102(在该示例中经由数据端口103)向加密引擎106提供加密密钥以解密存储在dsd 100的存储介质105上的加密的用户内容数据。如上所述,一旦访问控制器102已经计算出加密密钥,访问控制器102就以明文向数据端口103提供加密密钥,并且数据端口103向加密引擎106发出包括该加密密钥的security set password命令。
68.需注意,在提到“解锁”设备的情况下,这可以指上述整个过程,包括质询、对质询
的响应以及向加密引擎106发送加密密钥以允许由主机计算机系统发出的明文读取命令。在其他示例中,质询和对质询的响应被认为是单独的“连接”步骤的一部分。在以下“解锁”步骤期间,访问控制器102然后向数据端口103发送加密密钥以允许访问用户内容数据。
69.值得注意的是,除此之外,攻击者有可能窃听从访问控制器102到数据端口103然后到加密引擎106的密钥传输。然而,密钥的传输不是通过公共网络进行的,因此这种窃听将需要获得对已解锁的dsd的访问和反汇编,而无需从dsd 100移除电力。该场景可作为威胁被丢弃,因为在该场景中,用户内容数据无论如何都可在主机计算机系统104上获得。换句话讲,在连接和解锁dsd 100时,数据可供合法用户和攻击者使用。但是一旦用户将dsd与主机计算机系统104断开连接,这种窃听攻击就不再可能。因此,不会进一步考虑这种攻击。
70.为了完整起见,需注意,一旦加密引擎106已经接收到加密密钥,主机计算机系统104就可以发出普通的read segment命令并且透明地访问加密数据,而无需任何能够感知的差异来访问未加密的装置。这在加密引擎具有硬件加密模块以在存储介质105和/或数据端口103的读取和写入速度或更高速度下实现加密和解密的情况下尤其如此。然而,用户可以断开dsd 100以将其锁定。这样,dsd 100可以由用户携带经过dsd 100可能丢失或被盗的不安全位置,但是其他人很难解密存储在存储介质105上的加密的用户内容数据。如果用户持有dsd,则用户可以将其连接到第二主机计算机系统116,方便地利用用户的授权设备111(例如,电话)来解锁dsd100,并且容易访问存储在存储介质105上的加密的用户内容数据。
71.为了方便用户,数据端口103可被配置为使得如果dsd被锁定,则其向主机计算机系统104注册为不存在存储介质的大容量数据存储设备,类似于未插入卡的ssd读卡器。一旦授权设备111连接到dsd 100并且dsd100被解锁,数据端口103就切换到存在的存储介质,类似于插入了ssd卡的读卡器。此类配置将避免主机计算机系统104的操作系统生成关于数据不可访问或访问被拒绝的任何警告。相反,所有用户交互都将由安装在授权设备上的应用执行,该应用由dsd的制造商完全控制,因此可以优化用户体验。如图1所示,还可存在充当授权设备117和118的移动电话。
72.信标和密钥卡
73.再次考虑图1,可以看出,存在另外的设备,诸如信标120和密钥卡121。这些设备也可被视为“授权设备”,因为它们可与授权设备111基本上相同地操作。在由管理器设备110初始注册之前,这些设备被称为“待授权设备”。当参考本文的“用户设备”(主要描述在初始注册之前的移动电话111)时,这也适用于信标120和密钥卡121,除非另有说明,诸如在需要用户输入的情况下。信标120和密钥卡121也具有其自己安全存储的私有密钥,使得它们可响应于特定于一个信标或密钥卡的质询。然而,由于信标120和密钥卡121没有用户输入,因此通信的发起可略有不同。更具体地讲,信标120和密钥卡121可周期性地发送通告以广播它们的存在,dsd 100然后发起与信标120和/或密钥卡121的通信,这提示它们发送它们的传输公共密钥。这与授权设备111相反,该授权设备向dsd 100发送传输公共密钥以发起通信。
74.在另外的示例中,信标120在其上电并且需要由管理器设备110或授权设备111激活时处于停用状态。该激活可遵循与解锁dsd 100类似的过程。即,如本文所述,管理器设备110或授权设备111或两者利用其传输公共密钥向每个信标120注册并对质询作出响应。因此,设备可作为管理器设备或授权设备向信标102和/或密钥卡121中的一者注册,而不向
dsd100自身注册。如果对质询的响应有效,则信标120解锁dsd 100。在又一个示例中,信标120彼此注册,使得管理器设备110和/或授权设备111需要仅激活信标120中的一个信标并且剩余信标自动激活。换句话讲,只要信标在彼此的范围内,该激活就通过信标网络“传播”。
75.需注意,授权设备111、117、118、120和121向管理器设备110提供以注册的唯一信息是每个设备的一个公共密钥。换句话讲,每个设备提供其自己的公共密钥,该公共密钥对应于安全地存储在该设备上的私有密钥。因此,如果攻击者拦截设备111、117、118、120和121中的一者与管理器设备110之间的初始通信,则攻击者可获取的唯一信息是该公共密钥。顾名思义,公共密钥不是秘密,并且可以是众所周知的。因此,攻击者没有获得任何优势。此外,管理器设备110不能使用公共密钥访问与授权设备相关的任何其他东西。例如,管理器设备不能解密或解锁其他管理器设备已向其注册授权设备的任何其他数据存储设备。
76.访问控制器102从管理器设备110接收授权设备的公共密钥并生成授权数据。访问控制器102将授权数据存储在配置存储器115上,等待授权设备第一次连接。在第一次连接时,访问控制器102对授权设备执行质询

响应,并且在成功时,更新授权数据以指示授权设备现在完全注册。该第一次连接过程在本文中被称为“重新注册”,并且下文提供了生成授权数据和重新注册的细节。
77.椭圆曲线加密
78.在一个示例中,由dsd 100生成并发送到授权设备111的质询基于椭圆曲线加密。这具有较短密钥的优点,导致更有效的通信和存储。此外,当前市场上的大量电话在安全硬件模块内提供专用的椭圆曲线加密功能。安全硬件模块安全地存储用户的私有密钥并在安全硬件模块内执行加密基元而密钥不离开安全硬件模块并且不被发送到通用处理器内核,在通用处理器内核中,密钥可能受到未授权检索攻击。在一个实施方案中,安全硬件模块包括执行其自身的微内核的独立处理器,该微内核不能由操作系统或在电话上运行的任何程序直接访问。安全硬件模块还可包括用于存储256位椭圆曲线私有密钥的非易失性存储装置。在一个实施方案中,安全硬件模块是在一些apple设备上可用的secure enclave协处理器。
79.授权设备数据记录
80.图2a和图2b示出了根据一个实施方案的在不同时间的配置存储器115的区段。更具体地讲,图2a和图2b均示出了配置存储器115中的一个记录201,该记录与多个授权设备中的一个授权设备相关联并且在本文中称为“授权数据”。图2a示出了在重新注册与记录201相关联的授权设备之前的记录201。图2b示出了在重新注册与记录201相关联的授权设备之后的记录201。
81.另外的授权设备的另外的数据记录被示意性地指示为空虚线框,但不考虑它们以与记录201类似的方式操作时的细节。具体地讲,每个另外的数据记录包括授权数据,该授权数据由访问控制器102响应于从管理器设备110接收到用户设备的公共密钥而生成,然后在用户设备(此后成为“授权设备”)的第一次连接期间更新。为方便起见,配置存储器115的数据结构被称为包括一个或多个“记录”的“表”,其中每个记录涉及一个已注册的授权设备,并且每个记录具有多个字段。然而,需注意,可使用其他数据结构,诸如javascript对象表示法(json)、可扩展标记语言(xml)、二进制格式等。在一个示例中,每个条目具有固定的
长度,并且表具有固定数量的行(即,条目)。在本公开内,“记录”也可被称为“行”或“条目”。
82.记录201包括用于预先授权密钥202a的字段,该预先授权密钥响应于授权设备111第一次连接到dsd 100而使用。在该第一次连接期间,访问控制器102执行被称为“重新注册”的多个步骤,如下文更详细所述。预先授权密钥202a由授权设备111的标识符(例如,传输公共密钥)生成。例如,访问控制器102可以通过将密钥导出函数连同授权设备槽密钥一起应用于导出函数来生成预先授权密钥202a,该密钥导出函数使用传输公共密钥的x坐标作为输入参数,该授权设备槽密钥作为盐值。授权设备槽密钥可以是存储在配置存储器115上的伪随机数(例如,16字节),并且可以用于加密授权设备证书中的数据,使得只有发布的dsd 100可以恢复该信息。
83.此时,可以说存储在配置存储器115上的记录由预先授权密钥202a基于授权设备的标识符(例如,传输公共密钥)进行索引。如下文参考图4所述,在重新注册期间,记录201的索引可以作为槽编号存储在证书中。因此,在重新注册期间,形成授权数据记录索引的预先授权密钥202a可以被随机值202b替换,以使配置的dsd即使在拥有运输公共密钥的情况下也与来自工厂的新设备无法区分开。
84.记录201还包括用于元数据封装密钥(mwk)203的第一副本和预先授权元数据封装密钥(pmwk)214的字段。记录201中的一些字段被加密,其由双线框指示,其中双线框内的单个实线框指示“有效载荷”,诸如元数据封装密钥203和预先授权元数据封装密钥214。用于加密有效载荷的对应加密密钥在该双线框的底部标注。因此,例如,元数据封装密钥203由授权设备元数据密钥(admk)204加密。应当指出的是,每个加密框可包括与有效载荷数据级联的附加随机数。这保证了即使拥有加密数据(诸如授权设备的传输公共密钥)也不能将加密条目与随机数据区分开。
85.记录201还包括用于授权设备元数据(adm)205的字段,该字段是设备类型206(例如,恢复密钥、密钥卡、信标、电话、计算机、手表等)、设备207的角色(例如,管理者或用户)、设备208的名称(例如,“john的电话”)、传输公共密钥209、解锁密钥元数据210(例如,是需要指纹、pin还是不需要解锁的密钥限制)、临时公共密钥211和解锁公共密钥212b的级联。在一个实施方案中,临时公共密钥211是使用椭圆曲线加密(ecc)基元ecc

pub(euk)从随机临时私有密钥(epk)生成的椭圆曲线公共密钥。临时私有密钥未存储在配置存储器115上或授权设备111上,而是在创建临时公共密钥之后被丢弃。这意味着临时私有密钥没有存储在非易失性存储器上,而是仅存储在易失性存储器上。因此,存储器断电会导致临时私有密钥的完全而且不可恢复的丢失(例如,破坏)。解锁公共密钥212b对应于存储在授权设备111上的解锁私有密钥,并且在重新注册期间,由授权设备111生成并提供给访问控制器102。
86.授权设备元数据(与另外的随机数级联)由也在203处以加密形式存储的元数据封装密钥(mwk)213加密。将加密元数据封装密钥203存储在条目201中的主要目的是允许具有授权设备元数据密钥204的访问权限的管理器用户访问加密授权设备元数据205。如果管理器不能访问元数据封装密钥,则管理器将不能从dsd 100检索关于哪些授权设备当前被注册的任何信息。在一个示例中,授权设备元数据密钥204是用于所有授权设备的单个密钥,并且由管理器密钥加密地存储。管理器密钥可以是伪随机值(例如,32字节),并且由访问控制器102响应于存储介质105被擦除而生成。为每个配对管理器设备110/114加密并存储管理器密钥。
87.记录201还包括用于与用户密钥221和元数据封装密钥222的第二副本级联的设备角色220的第二副本的字段。需注意,角色207/220和元数据封装密钥203/222存储在相同但使用不同密钥加密的两个副本中。存储角色207/220的两个副本的目的是使得访问控制器102能够在连接期间(响应于授权设备元数据被解密)和解锁期间(响应于用户密钥221被解密)验证角色。存储元数据封装密钥203的第一副本的目的是将其提供给具有授权设备元数据密钥的访问权限的管理器设备。元数据封装密钥222的第二副本的目的是在响应于授权设备111第一次连接到dsd 100而发生的重新注册步骤期间将其提供给预先授权的设备。级联值220、221、222一起由临时解锁秘密(eus)223加密,该临时解锁秘密最初由diffie

hellman方法使用对应于临时公共密钥211和解锁公共密钥212b的临时私有密钥生成。可以使用临时公共密钥211和存储在授权设备111上并且对应于解锁公共密钥212b的相关联的解锁私有密钥来恢复临时解锁秘密223。换句话讲,临时解锁秘密223是在响应于授权设备111第一次连接到dsd 100而发生的重新注册步骤期间生成的。访问控制器102使用临时私有密钥和解锁公共密钥212b来生成临时解锁秘密223。需注意,临时私有密钥本身未被存储,但是临时解锁秘密223仍然可以如上所述恢复。这意味着用户密钥221能够基于来自授权设备的响应而解密。需注意,用户密钥221对于所有授权设备是相同的,并且可用于解密用户内容数据。这并不一定意味着用户密钥本身解密用户内容数据。还可存在用户密钥解密并且最终密钥解密用户内容数据的密钥。术语“使用密钥解密用户内容数据”和“启用用户内容数据的解密”是指经由链中的多个密钥的间接加密。相比之下,“密钥解密数据”是指利用密钥直接解密数据,诸如加密数据与密钥的模乘。这里,用户密钥221用于间接解密数据,并且可以是按顺序解密的密钥链的起点,直到最后,该链在解密用户内容数据的密钥处结束。虽然在本文所公开的大多数示例中,临时解锁秘密223解密用户密钥221,但是也可以其他方式从对质询的响应中导出加密密钥。例如,对质询的响应可以直接用作解密用户内容数据的加密密钥。
88.密钥和元数据的这种分配使得能够进行关于授权设备、管理器设备和其他方面的整个配置信息存储在dsd 100自身上的配置。然而,授权设备需要存储在相应授权设备上的密钥来解锁dsd 100。如果不具有任何密钥的访问权限的未注册用户想要访问设备的整个配置,诸如检索注册设备列表,则该未注册用户将只需要恢复密钥就能作为管理器设备注册并获得对管理器密钥的访问权限。然后,dsd 100可以使用管理器密钥向新管理器设备提供配置存储器115的全部内容。此外,可存在两个管理器设备,并且两者都可注册或移除授权设备。其他管理器设备将能够通过将其自身的记录与存储在配置存储器115上的数据同步来获得配置更新。在一些示例中,dsd 100被配置为如果使用恢复密钥来获得访问但这是策略决定,则擦除所有授权设备的记录201(但不删除用户内容数据或用户密钥221,其可以加密形式存储在配置存储器115上,与条目201和其他条目分开)。
89.图3示出了根据一个实施方案的授权设备111和访问控制器102之间的控制流300,该授权设备已经向dsd 100重新注册。首先,授权设备111通过发送301其传输公共密钥来发起连接方法。该步骤可容易地由攻击者重演。访问控制器102然后利用对证书的请求进行回复302,并且响应于该请求,授权设备111发送303先前通过重新注册过程从访问控制器102获得的证书。
90.证书
91.图4示出了根据一个实施方案的在将授权设备111重新注册到数据存储设备100期间由数据存储设备100发出至授权设备111的证书400。授权设备111向dsd 100发送证书400的副本,以在解锁步骤期间解锁dsd 100。
92.在该示例中,证书400包括多个类型

长度

值(tlv)字段,其中类型值指示作为证书的一部分的字段的种类,长度是值字段的大小(通常以字节为单位),并且值是可变大小的字节系列,其包含证书的该部分的数据。
93.证书400以tlv原子开始,该tlv原子指示随后的证书的类型。这被称为证书角色401并且具有2字节值以指示这是授权设备证书。
94.证书400属于证书链。访问控制器102使用该链来验证和认证证书400。为了指示证书400属于哪个链,证书400具有4字节的根证书标识符(id)402。证书链中的每个证书的证书标识符相同。不匹配的证书标识符指示无效证书。在一个示例中,根证书标识符指示证书链是生产还是开发认证链。在其他示例中,可以由相应的证书标识符指示其他组。
95.证书400还包括证书深度403的1字节指示符。证书的深度被定义为其与证书链内的根证书的距离。根证书被定义为具有零深度。当处理给定的证书链时,验证深度字段以确保链的完整性。
96.证书400还包括64字节证书传输公共密钥404(例如,根据美国国家标准与技术研究院(nist)p

256椭圆曲线)。每个证书经由传输公共密钥来表示/索引。每种类型的公共密钥将具有其自己的专用标签类型。也就是说,标签类型将表示用于生成传输公共密钥的密码套件,诸如p

256密码套件。
97.证书400还包括数据字段405(下文解释)并且经由签名406进行认证。访问控制器102接收证书400并在信任或使用证书的内容中的任一个之前验证签名。为了启用签名验证,64字节签名者公共密钥407作为证书的一部分而提供。签名406本身的长度为64字节,并且在证书内遇到的所有先前tlv 401

405、407上计算,而不管它们是否由具体实施识别。更具体地讲,签名406从证书数据的散列导出。签名的特定数据是证书相关的,但包含用于表示证书的所有tlv,包括未被识别的tlv。用于生成签名的密钥是逻辑身份密钥并且与签名者公共密钥407相关联。
98.数据字段405包括槽编号410,它表示记录201在配置存储器115内的索引。数据字段405还包括元数据封装密钥411的另一副本(除了图2a所示的两个副本之外)。数据字段405利用授权设备槽密钥(adsk)412加密,该adsk是存储在配置存储器115中的16字节伪随机值,并且用于加密授权设备证书中的数据,使得只有进行发布的dsd 100可以恢复信息。
99.解锁数据存储设备
100.返回图3,如果授权设备111希望解锁dsd 100,则授权设备111向访问控制器102发送303包括加密元数据封装密钥(mwk)213/411的证书400。证书400还包括槽编号410,它是记录201在配置存储器115中的索引。
101.访问控制器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连接确认消息。
102.在该阶段,授权设备111连接并且解锁过程通过授权设备111向访问控制器102发送320解锁请求而开始319。该解锁请求包括与存储在授权设备的安全硬件模块上的私有密钥相关联的解锁公共密钥。访问控制器102将所接收的解锁公共密钥与存储在授权设备元数据记录205中的解锁公共密钥212b匹配321。接下来,访问控制器102生成322新的盲值(也称为解锁盲密钥(ubk)),该新的盲值基本上是临时私有标量并且随机生成。
103.访问控制器102然后基于授权设备的标识符(例如,临时公共密钥211)乘以解锁盲密钥(ubk)来生成质询。更具体地讲,访问控制器102将临时公共密钥211乘以323解锁盲密钥,返回结果的完整x坐标和y坐标,注意在椭圆曲线上执行该操作。然后,访问控制器102将x坐标和y坐标作为质询发送到324授权设备111。此处需注意,该质询基于授权设备111的标识符,因为临时公共密钥是导出质询的乘法的一个因子。还需注意,对于每个解锁请求(即,320),生成不同的解锁盲密钥以避免中间人攻击。
104.此外,访问控制器102计算325解锁盲密钥的倒数(ubk
‑1)。访问控制器102可在等待来自授权设备111的响应时计算解锁盲密钥的倒数。
105.授权设备111通过将质询与解锁私有密钥相乘326来计算对质询的响应,该解锁私有密钥存储在授权设备的安全硬件模块中并且对应于存储在配置存储器115上的解锁公共密钥212b。这可涉及加密基元的执行,该加密基元可完全在授权设备111内的安全硬件模块内执行。授权设备111然后将该结果在响应消息中发回327。访问控制器102将返回的结果乘以328解锁盲密钥的倒数以计算临时解锁秘密(eus)223。
106.在数学符号中,p表示临时公共密钥,并且k表示在图3的步骤322处创建的解锁盲密钥。访问控制器102计算323乘积k*p并将其发送到324授权设备111。授权设备111将质询与解锁私有密钥j相乘326以计算j*k*p并将结果返回327到访问控制器102。访问控制器102将该响应与解锁盲密钥的倒数k
‑1相乘238以计算
107.k
‑1*j*k*p
108.由于椭圆曲线的交换性,其等于j*p
109.(即,k
‑1*j*k*p=k*k
‑1*j*p=j*p)。
110.访问控制器102然后使用j*p作为临时解锁秘密(即,密钥)来解密329用户密钥221。即,访问控制器102使用临时解锁秘密来将存储在dsd100上的用户密钥221解密,该用户密钥利用临时解锁秘密加密。更具体地讲,访问控制器102解密329用户密钥,该用户密钥然后解密330“用户驱动密钥”,该“用户驱动密钥”然后最终经由tcg命令发送331到加密引擎106。即,用户驱动密钥可由访问控制器102使用基于用户密钥的密钥导出函数来生成。用户驱动密钥是用于解锁dsd 100的tcg凭据,并且可以等同于本文所述的“加密密钥”。就opal而言,这是user2凭据。
111.需注意,访问控制器通过使用存储在授权设备111上的解锁私有密钥和解锁公共密钥212b从椭圆曲线diffie

hellman过程的结果导出对称密钥,在重新注册过程期间生成临时解锁秘密。所得密钥用于加密用户密钥221,但不存储在dsd 100中。相反,每当授权设备请求解锁dsd 100时,访问控制器重新生成临时解锁秘密223,如上所述。
112.在另一个示例中,在上述公式中,解锁私有密钥j可被该解锁私有密钥与从通行码导出的值的乘积替换。解锁私有密钥将仍然存储在授权设备的安全硬件模块中,但是单独的解锁私有密钥将不能解密存储在dsd 100上的用户内容数据。相反,用户需要输入通行码来计算对质询的响应并发送327该响应。这将简单地用通行码值与上面的j的乘积来替换j。dsd将忽略该改变,因为临时解锁秘密223将从访问控制器102的角度以与上文相同的方式生成。
113.注册
114.如上所述,存在三种场景:首先,管理器设备110将用户设备111注册一次,使其成为多个授权设备中的一个授权设备。第二,在与访问控制器102第一次连接时,授权设备111重新注册一次以完成所涉及的密钥的生成。第三,授权设备111随后与访问控制器102连接以解锁dsd 100。该第三种场景可多次发生。
115.在由管理器设备110发起的注册场景期间,访问控制器102从管理器设备110接收对应于存储在用户设备111上的私有密钥的公共密钥,例如传输公共密钥。作为响应,访问控制器102创建授权数据,如图2a中的数据记录201所示。
116.访问控制器102生成预先授权密钥202a,该预先授权密钥基本上是用于定位记录201的索引。预先授权密钥202a由密钥生成函数使用所接收的传输公共密钥209的x坐标和盐值来生成。盐值可以是授权设备槽密钥,它可以是在“获取所有权”过程期间生成的16字节伪随机值,存储在配置存储器115上,并且不与授权设备共享。这样,在每次“恢复出厂设置”之后,盐可以是不同的,诸如每当管理器设备获取dsd 100的所有权时。
117.创建存储在记录201中的授权数据还包括诸如通过生成16字节伪随机值生成元数据封装密钥222。访问控制器102将元数据封装密钥存储在字段222中。此外,访问控制器102生成临时解锁秘密223并利用临时解锁秘密223对角色220(例如,“授权设备”)、用户密钥221和新的元数据封装密钥222加密。然后,访问控制器102从临时解锁秘密223生成临时公共密钥211并丢弃临时解锁秘密223。
118.重新注册
119.回想一下,在由管理器设备110发起的注册场景期间,访问控制器102创建授权数据,如图2a所示。在由授权设备111发起的与dsd 100的访问控制器102第一次连接的重新注册场景期间,访问控制器102改变记录201,使得授权设备元数据(adm)205由元数据封装密钥213/222加密,该元数据封装密钥使用临时解锁秘密223加密。
120.更具体地讲,当预先授权设备首次连接时,授权设备元数据(adm)205用预先授权的元数据封装密钥216进行封装(参见图2a)。当预先授权的设备连接时,访问控制器102执行重新注册过程。作为重新注册过程的一部分,访问控制器102使用预先授权设备的传输公共密钥来完成数据存储设备的“逻辑解锁”。一旦执行了此操作,元数据封装密钥(mwk)222就能够由临时解锁秘密(eus)223封装,并且访问控制器使用元数据封装密钥(mwk)来重写记录201以加密授权设备元数据205。
121.图2a示出了在重新注册授权设备111之前的数据记录201。图2b示出了在访问控制器102已完成授权设备111的重新注册过程并且授权设备111能够解密加密的用户内容数据之后的数据记录201的状态。需注意,图2a中的字段212a保持从管理器设备110接收的传输公共密钥;然而,图2b中的字段212b保持解锁公共密钥,因为在重新注册步骤之前,尚未生成解锁公共密钥。
122.还需注意,与图2b相比,图2a中的授权设备元数据205不是由新的元数据封装密钥加密,而是由预先授权的元数据封装密钥216/214加密,因为实际的元数据封装密钥222对于授权设备111尚不可用。预先授权的元数据封装密钥214可与该阶段的预先授权密钥202a相同或单独生成。需注意,现在加密授权设备元数据205的预先授权的元数据封装密钥214可仅由访问控制器102生成,而不由授权设备111提供,因为授权设备111不具有对用于从传输公共密钥209生成预先授权的元数据封装密钥214的授权设备槽密钥的访问权限。
123.重新注册过程通过授权设备111首次与访问控制器102连接并且授权设备111将其传输公共密钥发送到访问控制器102来触发。访问控制器102使用传输公共密钥和存储的授权设备槽密钥来生成预先授权密钥202a。访问控制器102然后可搜索配置存储器115中的预先授权密钥202a以检索记录201。访问控制器102还可使用预先授权密钥作为预先授权元数据封装密钥来解密授权设备元数据205。重新注册也可以由其他事件触发或周期性地触发,以确保解锁公共密钥212b不被使用太长时间。
124.响应于从授权设备接收到传输公共密钥209,访问控制器102使用临时公共密钥211和解锁盲密钥生成质询,并且将该质询传输324到dsd100。dsd 100以响应327来响应该质询。访问控制器102然后从响应创建临时解锁秘密223。需注意,仅具有对应于传输公共密钥209的私有密钥的授权设备111可创建有效响应。这意味着即使攻击者反汇编配置存储器115并读取授权设备槽密钥以生成预先授权元数据封装密钥来解密临时公共密钥211,攻击者仍将无法生成临时解锁秘密223。
125.访问控制器102通过检查响应充当临时解锁秘密223来验证该响应,并且作为响应,更新记录201中的授权数据。更具体地,访问控制器102检查用于解锁公共密钥的字段212b是否与传输公共密钥209相同。响应于确定用于解锁公共密钥的字段212b与传输公共密钥209相同,访问控制器102从授权设备111请求新的解锁公共密钥并将返回的密钥存储为解锁公共密钥212b。
126.访问控制器进一步解密在由管理器设备110注册期间生成的元数据封装密钥222。在该阶段,访问控制器102可重新生成临时解锁秘密223、加密角色220、用户密钥221和元数据封装密钥222,重新生成并存储临时公共密钥211,并丢弃临时解锁秘密223。最后,访问控制器利用元数据封装密钥222对授权设备元数据205加密,并且利用随机位202b覆盖预先授权密钥202a,以使配置存储器115即使在持有传输公共密钥和/或解锁公共密钥的情况下也无法与随机数据区分开。这结束了存储在记录201中的授权数据的更新和重新注册过程。因此,作为多个授权设备中的一个授权设备的授权设备111现在被允许通过上述解锁步骤对加密的用户内容数据进行解密。
127.涉及存储在记录201中的授权数据的创建和更新的上述注册和重新注册过程使得多个授权设备能够在由管理器设备110注册的第一步骤期间仅使用其公共密钥来注册。这样,就不需要共享可能被拦截并用于恶意解锁用户的其他设备的秘密信息。
128.重新注册方法
129.图5示出了根据一个实施方案的用于相对于dsd 100注册用户设备111的方法500。如图5所示的方法示出了上文描述为对用户设备的注册或预先授权的内容。可遵循图5中未示出的另外的步骤,这些步骤可包括上述重新注册步骤。包括注册以及重新注册的整个过程可被称为“注册”。
130.方法500开始于dsd 100(例如,访问控制器102)从管理器设备110接收501传输公共密钥209。传输公共密钥209与存储在待授权用户设备111上的传输私有密钥相关联。然后,dsd 100确定502用户密钥221,该用户密钥提供对能够用于解密加密的用户内容数据的加密密钥的访问权限,诸如通过解密如上所述的用户驱动密钥。dsd 100还基于传输公共密钥209加密503用户密钥221,诸如通过生成临时解锁密码223作为加密用户密钥221的密钥。这样,基于存储在待授权设备111上的传输私有密钥,用户密钥221是能够解密的。
131.最后,dsd 100在配置存储器115上存储504指示所加密的用户密钥221的授权数据201。这意味着dsd 100可以直接存储所加密的用户密钥221或再次由一个或多个另外的密钥封装或以任何其他形式存储所加密的用户密钥221,这些形式使得能够基于传输私有密钥209(如存储在待授权设备111上的)检索或确定用户密钥221,诸如通过执行本文所述的质询

响应方法。
132.注册数据存储设备
133.数据端口103向主机计算机系统104注册为块数据存储设备。例如,通用串行总线(usb)设备以usb设备描述符的形式提供信息。usb设备描述符包含关于设备的相关信息。因此,在数据存储设备经由usb连接而连接到主机计算机系统的实施方案中,数据存储设备通过配置其usb设备描述符以指示数据存储设备为块数据存储设备来向主机计算机系统注册为块数据存储设备。
134.usb设备描述符提供关于usb设备的结构化信息,诸如设备类别、支持的协议、设备类型、制造商和其他配置参数。主机计算机的操作系统可通过向数据存储设备发送各种标准控制请求(例如,get_descriptor请求)来获得数据存储设备的usb设备描述符。响应于接收到这些请求,数据存储设备向主机计算机系统提供usb_device_descriptor,从而将数据存储设备向主机计算机系统注册为块数据存储设备。主机计算机解释usb_device_descriptor以确定数据存储设备的配置和能力。主机计算机系统然后可将关于数据存储设备的信息存储在主机计算机系统的操作系统的寄存器中。
135.本领域的技术人员应当理解,在不脱离本公开的广泛一般范围的情况下,可对上述实施方案作出许多变型和/或修改。本发明的实施方案因此将在所有方面被认为是示例性的而非限制性的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜