CN111753338A - 使用可移除网桥的安全存储设备 - Google Patents
使用可移除网桥的安全存储设备 Download PDFInfo
- Publication number
- CN111753338A CN111753338A CN201911218749.2A CN201911218749A CN111753338A CN 111753338 A CN111753338 A CN 111753338A CN 201911218749 A CN201911218749 A CN 201911218749A CN 111753338 A CN111753338 A CN 111753338A
- Authority
- CN
- China
- Prior art keywords
- bridge
- command
- storage
- storage device
- removable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 51
- 230000008569 process Effects 0.000 claims description 33
- 230000004044 response Effects 0.000 claims description 25
- 239000007787 solid Substances 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 10
- 238000013475 authorization Methods 0.000 claims description 7
- 238000013500 data storage Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- RVCKCEDKBVEEHL-UHFFFAOYSA-N 2,3,4,5,6-pentachlorobenzyl alcohol Chemical compound OCC1=C(Cl)C(Cl)=C(Cl)C(Cl)=C1Cl RVCKCEDKBVEEHL-UHFFFAOYSA-N 0.000 description 6
- 230000008520 organization Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000006837 decompression Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001681 protective effect Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000000696 magnetic material Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000001465 metallisation Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/80—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/34—User authentication involving the use of external additional devices, e.g. dongles or smart cards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明题为“使用可移除网桥的安全存储设备”。一种存储设备包括:存储介质,存储控制器,主机接口和网桥槽。存储控制器被配置为控制对存储介质的读取操作与写入操作,并根据存储设备制造商写入的固件进行操作。网桥槽被配置为接收可移除网桥,可移除网桥存储由不同于存储设备制造商的第三方所写入的软件。可移除网桥被配置为:拦截从主机系统发送至存储控制器的第一命令,根据存储在可移除网桥上的软件来修改第一命令,并且将第一命令传输至存储控制器。
Description
背景技术
技术领域
本公开涉及存储设备。更具体地,本公开涉及通过使用可移除网桥保障存储设备安全的系统和方法。
相关技术的描述
在某些计算系统中,可以通过某种方式对数据存储设备进行加密和/或保障数据存储设备的安全。需要解锁此类设备才可以访问存储的数据。
发明内容
某些组织需要高度安全的数据。具体地,一些组织希望直接控制为访问此类安全数据而实施的安全措施。虽然可根据此类组织的需要创建软件系统,但就存储此类数据的硬件而言,此类可定制性变得更困难。存储设备,例如,硬盘驱动器(HDD)、固态驱动器(SSD)或固态混合驱动器(SSHD),通常由制造商根据有限的一组产品系列进行制造。由于产品系列有限,制造商难以为每个特定的组织定制此类设备。此外,对产品系列的任何定制都需要由制造商来实现。对于有安全意识的组织,如果他们希望对安全实施严格保密,那么可能不希望这样做。
一种潜在的解决方案是在存储设备中使用可移除网桥。制造商可以为可移除网桥生成具有公共接口和/或认证过程的存储设备。如果该可移除网桥遵循某些约定或协议,则存储设备可被配置为识别可移除网桥并实现存储在可移除网桥上的安全访问协议。这种网桥可以实现存储驱动器的安全访问协议,但可以由与存储设备制造商不同的第三方编程。这样,购买此类存储设备的组织可以保持对安全访问实现独立控制,从而为这些组织提供额外的安全性。相同的概念可扩展到其他应用,诸如压缩、数据处理/分析等,其中上述配置为第三方贡献者以及存储设备制造商提供了定制及创新的平台。
附图说明
在附图中示出了各种实施方案,以用于示例性目的,并且绝不应理解为限制本公开的范围。此外,可组合不同的所公开实施方案的各种特征以形成另外的实施方案,这是本公开的一部分。
图1是根据一些实施方案示出实现数据存储系统的框图。
图2示出了根据一些实施方案的数据存储系统100的认证过程的数据流。
图3是根据一些实施方案示出认证过程的流程图。
图4示出了根据一些实施方案的具有可移除网桥的存储设备。
图5是根据一些实施方案示出一个拦截过程的流程图。
图6是根据一些实施方案示出另一个拦截过程的流程图。
具体实施方式
虽然描述了某些实施方案,但是这些实施方案仅作为示例呈现,并且不旨在限制保护范围。实际上,本文描述的新颖方法和系统可以各种其他形式体现。此外,在不脱离保护范围的情况下,可以对本文描述的方法和系统的形式进行各种省略、替换和改变。
本文提供的标题仅为了方便,并不一定影响权利要求的范围或含义。本文公开了与计算设备(诸如固态数据存储设备)中存储器部分的寻址信息检索有关的示例性配置和实施方案。
概述
在数据存储设备和系统中,某些处理操作可由与一个或多个存储介质通信并与主机进行通信的处理电路来执行。诸如SSD的存储介质通常由多个NAND封装组成,每个存储介质的每个封装具有1至8个NAND晶片,每个晶片由多个面、块和页组成。同时,HDD通常由一个或多个底盘组成,其中底盘表面上的磁性材料被一个或多个磁头读取。存储设备的处理电路可包括控制器,该控制器管理设备的操作,包括数据存储和访问以及该设备与主机设备之间的通信。该处理电路还可包括可移除网桥,该可移除网桥可由不同于制造商的第三方编程并被添加到该存储设备以实现该第三方特定的安全访问协议。
在一些实施方案中,可移除网桥实现授权过程以获得解锁存储设备和/或将命令发送至该存储控制器的授权。如果可移除网桥未通过授权过程,则存储控制器可保持存储设备被锁定和/或数据不可访问。
数据存储系统
图1是根据一些实施方案示出实现数据存储系统100的框图。尽管示出了一些示例性特征,但为了简洁起见并未示出各种其他特征,以免模糊本文所公开的示例性实施方式的更相关方面。为此,作为一个非限制性实例,数据存储系统100包括存储设备102(例如SSD、SSHD、HDD等)。存储设备102通过连接到存储设备上的主机接口130(例如,串行ATA(SATA)、串行连接SCSI(SAS)、非易失性内存主机控制器接口规范(NVME)等)的一条或多条数据线110(例如,连接器、总线等)与主机系统105通信。例如,数据存储系统100可以是桌面、膝上型计算机或在数据中心具有多个存储设备的服务器系统。
在一些实施方案中,各存储设备102包括印刷电路板组件(PCBA)120,印刷电路板组件120包括一个或多个部件,诸如电阻器、集成电路(IC)和/或电容器。此类部件可包括主机接口130、具有可移除网桥140的网桥槽135、具有相关联存储器147的存储控制器145(有时称为存储设备控制器、存储控制电路或控制电路)和存储介质接口150。存储介质接口150可被配置为读取/写入一个或多个存储介质160-1至160-N。
在一些实施方案中,相应的存储介质160可以是半导体晶片,或包括多个晶片的存储器模块。在一些实施方案中,每个存储介质160包括存储器控制器(有时称为存储器晶片控制器或存储控制电路)和存储器。在一些实施方案中,相应存储介质可以是一个或多个旋转磁性介质以及用于读取和/或写入该介质的相关联电路(例如,读取/写入磁头、磁头堆栈组件、磁头万向组件等)。
主机系统105可以是包括一个或多个存储设备102和/或连接到(例如,通过网络、电缆等)一个或多个单独存储设备102的计算设备,诸如个人计算机、工作站或计算机服务器。主机系统105有时被称为计算机系统。主机系统105可包括一个或多个处理器、一个或多个类型的主机存储器、以及显示器和/或其他用户界面部件,诸如键盘、触摸屏显示器、鼠标、触控板、数码相机和/或任何数量的补充设备,以用于增加功能。
此外,在一些实施方案中,主机系统105将数据线110上的一个或多个主机命令(例如,读取命令和写入命令)发送至存储设备102。该命令可由存储控制器145处理,该存储控制器随后可将数据发送回主机(例如,响应于读取命令或状态查询)。存储控制器还可被配置为执行存储设备的管理任务。存储控制器可包括被配置为执行一个或多个程序中指令的一个或多个处理单元(有时也称为CPU、处理器、硬件处理器、微处理器或微控制器)。
在一些实施方案中,网桥槽135以电子方式内嵌于主机接口130和存储控制器145之间。例如,在槽135中没有网桥140的第一配置中,该主机接口和存储控制器之间的电连接物理上断开。任何数据或信号都不能通过网桥槽。在可移除网桥140插入到网桥槽的第二配置中,可移除网桥完成主机接口和存储控制器之间的电连接,使得信号或数据可穿过网桥槽。
在一些实施方案中,可移除网桥140使用公共形状因数,诸如安全数字(SD)格式、微型SD格式、纳米SD格式等。通过使用常见的形状因数,部件可更容易获得或可重新修改,从而降低成本。另外,通过使用诸如微型SD之类的形状因数,能够从易于获得的微型SD读取器中读取该网桥,从而能够更容易地对可移除网桥进行编程。
在一个实施方案中,可移除网桥140包括控制器和存储器(例如,诸如DRAM的易失性存储器和诸如闪存存储器的非易失性存储器)。可以使用影响存储设备运行方式的定制软件(例如,固件或应用程序)对该网桥进行编程。此类定制软件可将功能扩展至存储设备。例如,该定制应用程序可以提供针对特定组织定制的加密/解密功能。由于该组织可在没有来自存储设备102制造商的参与的情况下创建定制应用程序,因此该组织可能会认为此类存储设备102更安全。在各种实施方案中,其他使用情形诸如数据处理/分析、数据完整性功能、压缩等也是可能的。可移除网桥开放了平台以供第三方以及存储设备制造商定制。该网桥的可移除性使升级更容易,并且在为不同的应用程序重新利用存储设备方面更具有灵活性。
在另一个实施方案中,可移除网桥140自身可不具有控制器,而是在存储器中存储由存储控制器145运行的定制应用程序。存储控制器145可被配置为在启动时或另一时间运行定制应用程序。在一些实施方案中,存储控制器145可以确认定制应用程序遵循某些协议/界面,或者确认定制应用程序在运行之前已被认证或验证。
在一些实施方案中,可移除网桥140拦截或者接收从主机系统105(通过主机接口130接收)到存储控制器145的信号。在一些实施方案中,可移除网桥中的电路可响应于对主机命令的分析来接收和分析所接收的主机命令并生成针对存储设备102的一个或多个电路、部件或模块的指令。例如,读取命令或写入命令可被网桥140拦截。此类命令可在将其发送至存储控制器145之前由该网桥处理。此类处理可包括加密和解密,压缩和解压缩,高速缓存等。
在一个实施方案中,网桥140对主机系统105来说是透明的。主机系统105使用将命令直接发送到存储控制器145时所使用的相同协议和格式来向存储控制器145发送命令。在一个示例性场景中,主机向存储控制器发送命令(例如,第一SATA命令),该网桥拦截该命令并处理该命令以创建经修改的命令(例如,第二SATA命令)。然后,该网桥会将修改后的命令发送到存储控制器。随后,存储控制器执行该修改后的命令并为主机系统生成响应。网桥拦截响应并对该响应执行进一步处理(如果需要),然后将已处理的响应转发到该主机接口。
在上述场景下,主机系统105和存储控制器145都“看不见”该网桥。即,命令和响应指向该主机系统和该存储控制器,而不是指向网桥。然而,虽然在一些情况下,网桥140可拦截命令,但在其他情况下,网桥140可直接向存储控制器145发送命令。例如,在认证过程中,网桥140可以将其身份告知存储控制器145,而不是对存储控制器保持透明。
存储介质接口150可被配置为加快传输存储控制器145与一个或多个存储介质160之间的信息,诸如指令、命令、控制信号和数据。在一些实施方案中,存储介质接口150包括电路和/或部件以允许存储控制器145和相应存储介质160之间的通信交换。存储介质接口150可被配置为控制读取组件或写入组件,诸如磁头和/或伺服装置。存储介质接口150可包括在存储控制器145中。另选地,存储介质接口150可包括在存储设备102中,但不包括在存储控制器145中。
在一些实施方案中,存储控制器145和/或可移除网桥140包括图1中未示出的附加电路、模块或数据结构。例如,可移除网桥140可包括处理器、存储器和/或数据接口。在一些实施方案中,两个或更多个该组件可在相同的IC中组合。例如,片上系统(SoC)可包括存储控制器145和存储介质接口150两者。
术语“控制电路”在本文的使用是基于其广义和普通含义,并且可指被配置为执行本公开的任何功能方面的存储设备102的任何电路、模块、设备或部件。例如,存储控制器145、主机接口130和/或存储介质接口150的一个或任何组合可被称为“控制电路”。
图2示出了根据一些实施方案的数据存储系统100的认证过程的数据流。当可移除网桥140插入到网桥槽135中时,当为存储设备102通电时和/或当一些动作触发该过程时,可执行该认证过程。
在步骤1中,对种子的请求从网桥140发送至存储控制器145。然后,存储控制器使用随机数生成器250来生成种子。该种子被存储控制器保留以稍后对网桥140进行认证。
在步骤2中,该种子被传输回网桥140。然后,该网桥可以将种子作为认证函数F(x)1的输入。该认证函数可以是基于哈希或基于密码学的函数。通过使用该种子,F(x)1产生第一结果。
在例示的实施方案中,F(x)是该网桥和该存储控制器两者的公共函数。在一种场景中,存储设备制造商在存储控制器和可移除网桥中实现F(x)。然后,制造商将可移除网桥提供给第三方,以在可移除网桥上安装其定制软件。如果另一方创建可移除网桥但缺少正确的认证功能,那么那些可移除网桥将与制造商的存储设备不兼容。
在其他实施方案中,制造商可对可移除网桥本身进行编程,而不依赖第三方。这些制造商制造的可移除网桥可用于定制针对特定客户或用途的存储设计。
在步骤3中,将F(x)1传输至存储控制器145。存储控制器使用其先前生成并保留的种子作为认证函数的副本F(x)2的输入。F(x)2产生第二结果。将存储控制器生成的第二结果与从该网桥传输的第一结果进行比较。如果结果匹配,那么认证函数应该相同(并且可能来自同一制造商),并且可移除网桥140认证成功。
以上描述了一个可能的认证过程。然而,显而易见的,可使用其他类型的认证方案。例如,可使用公钥密码系统(例如RSA、数字签名标准(DSS)等)来认证该可移除网桥。
图3是根据数据存储系统100的一些实施方案示出认证过程300的流程图。认证过程300可例如由数据存储系统100的控制电路执行,诸如存储控制器145和/或可移除网桥140。
在下文讨论的实施方案中,认证使用两部分过程。第一部分涉及到达存储控制器的网桥的认证。该部分验证网桥是否被授权与存储设备一起使用。例如,如果有人获取存储设备并尝试使用伪造网桥将其解锁,那么存储设备应拒绝该假网桥,因为该假网桥不具有正确的授权数据。
认证过程的第二部分涉及解锁介质访问命令。例如,SATA规范包括用于锁定存储设备的规定,其中所有输入/输出(I/O)被阻止。存储设备在解锁对存储介质的访问之前,可能需要输入密码。然而,该认证过程的其他实施方案不需要两部分过程并且可在第一部分之后完成。
在框305中,为存储设备102通电。在一个实施方案中,存储设备102在锁定状态下开始,其中存储设备不允许数据访问命令。因此,连接到该存储设备的主机系统105无法访问该存储介质。例如,存储设备102可被配置为忽略来自主机系统的读取请求或写入请求,直到存储设备102解锁。该锁定状态可包括SATA安全密码锁定状态和/或授权锁定。
在框310中,主机系统105向存储设备102请求随机数。主机接口130接收该请求。可移除网桥140随后接收该请求(例如,通过拦截发往存储控制器145的消息)。然后,可移除网桥140将该请求发送至该存储控制器。
在框315中,网桥140和存储控制器145使用该随机数来计算F(x)结果,如上文在图2的数据流中所讨论的。例如,存储控制器可生成该随机数并发送至网桥。
在框320中,网桥向存储控制器发送F(x)结果以对其自身进行认证,如上文在图2中所讨论。该存储控制器可独立地计算F(x)结果,以通过具有相同的F(x)函数来验证该网桥是否被授权。假定结果匹配,那么认为网桥被存储控制器授权,并且此时控制器将接受来自网桥的其他命令。此时,认证过程的第一部分已完成,但该介质仍被锁定。然而,在一些实施方案中,介质未被锁定,并且认证过程在第一部分之后完成。在那些实施方案中,框325和330是可选的。
在框325中,网桥140(或主机系统105)可选地向存储控制器发送安全密码解锁命令。在一些实施方案中,SATA安全性可能未实现或未处于激活状态,并且框325和框330是不必要的。
在框330中,如果密码正确,该存储控制器将解锁SATA安全性并使介质可访问。但是,如果密码不正确,介质将保持锁定且不可访问。然后,用户可再次尝试输入该密码。在一些实施方案中,存储控制器可具有在采取保护措施之前可输入的错误密码的数量阈值。例如,保护措施可涉及在设定的时间量(例如,1小时,1天等)内不接受进一步的密码尝试,或甚至删除数据。此类保护措施可由存储驱动器的所有者决定,并且可被编程到可移除网桥中作为该存储设备的组织特定设置的一部分。
图4示出了根据一些实施方案的具有可移除网桥的存储设备400。存储设备400通过底部透视图示出,示出了PCBA420的暴露表面。可移除网桥槽435连接到PCBA420。通常,其他部件(例如,存储控制器,存储器等)附接在PCBA的驱动侧表面上(未示出)。然而,为了更容易地触及可移除网桥槽435,上述实施方案中,可移除网桥槽435连接至PCBA的暴露表面而不是驱动侧表面。
在其他实施方案中,可移除网桥槽435可位于其他位置。例如,可移除槽可被放置在驱动侧表面上,其中该槽开口沿设备400的边缘放置,使得该可移除网桥可插入至网桥槽435中。在一些实施方案中,槽开口与主机接口430在同一侧上或在垂直于该侧的一侧上。通过将可移除网桥槽放置在驱动侧表面上,避免可移除网桥槽受到PCBA的损坏。
在所示的实施方案中,网桥槽435使用微型SD形状因数。然而,可以使用不同的形状因数。例如,形状因数可以是纳米SD、SD、通用闪存存储(UFS)或甚至是定制形状因数。该可移除网桥(未示出)将与网桥槽的形状因数匹配。
存储设备400具有包括SATA接口的主机接口430。该主机接口电连接至可移除网桥槽435。例如,主机接口可具有通往可移除网桥的迹线。同样,该存储控制器(未示出)可具有通往可移除网桥槽的迹线。
在一些实施方案中,来自该主机接口的迹线和来自该存储控制器的迹线在不彼此连接的同时在该可移除网桥槽处结束。即,可移除网桥和存储控制器之间存在物理间隙或断开。在一些实施方案中,通过将可移除网桥插入到网桥槽435中来桥接该物理间隙。例如,可移除网桥可具有引线,引线将来自主机接口的第一组迹线连接到来自存储控制器的第二组迹线。
图4所示的存储设备400是图1所示的存储设备102的一个实施方案。如上所述,除HDD之外的许多不同类型的存储设备,诸如SSD或SSHD,可与图1所示的存储系统100一起使用。
在一个实施方式中,存储设备102可由存储设备制造商在装运之前用插入到网桥槽435中的测试网桥进行内部测试。测试网桥用作“通过”以完成主机和存储控制器之间的电连接,并且使该设备能够被测试。一旦被测试,就取下该测试网桥,并且该存储设备可被装运并准备好接收具有如上所述的定制功能的可移除网桥。一旦该设备被部署,可能为了修复或诊断目的而重新插入测试网桥,或者可使用定制用于此类现场修复/诊断目的的单独网桥。在某些应用中,如果存储设备被重新修改为在没有定制功能的情况下运行,则测试网桥可在现场用作“通过”网桥。
图5是根据数据存储系统100的一些实施方案示出拦截过程500的流程图。拦截过程500可例如由数据存储系统100的控制电路执行,诸如存储控制器145和/或可移除网桥140。
在框505中,主机系统105经由主机接口130向存储控制器145发送命令。该命令例如可以是读取命令或写入命令。
在框510中,可移除网桥140拦截发送至存储接口的命令。如上所述,在一些实施方案中,网桥以电子方式内联在存储控制器145和主机接口130之间,并且可拦截到达或来自这两个部件的消息。在一些实施方案中,该拦截对于主机系统105和/或存储控制器是透明的。
在框515中,可移除网桥140确定命令是否需要修改。如上所述,可移除网桥140可由第三方编程。此类第三方可在网桥上安装软件(例如固件),该软件执行第三方对存储在存储设备上的数据所期望的操作。例如,第三方可以安装使用第三方的安全设计对数据进行加密或解密的定制加密软件。由于存储设备的制造商没有在可移除网桥上设计该软件,因此从第三方的角度来看,此类软件更安全,因为它们是能够对存储在驱动器上的数据进行加密或解密的唯一一方。
可在可移除网桥140上可包括其他功能,作为定制加密功能的替代或补充。例如,由第三方设计的定制压缩/解压缩软件可被编程到可移除网桥中。
在一个样本场景中,可移除网桥140接收写入命令,包括要写入到存储介质160上的写入数据。主机系统105不知道加密过程并且以未加密形式发送写入数据。可移除网桥140确定需要对写入数据进行加密。可移除网桥140然后根据其定制软件中的加密协议对数据加密。
在框520中,可移除网桥140将修改/未修改命令发送至存储控制器145。例如,如果命令是读取操作,则可移除网桥140可能不需要修改该命令并且可发送未修改的命令。然而,如果要将数据写入存储介质160,则可移除网桥140可能需要对写入数据进行加密并且可以发送修改后的命令。
在一些实施方案中,存储控制器145被配置为根据制造商开发的固件来操作。如上所述,可移除网桥的操作对于存储控制器来说可为透明的。存储控制器接收可能已被可移除网桥加密的数据,并将其视为与接收到的任何其他数据相同。例如,存储控制器可能不需要跟踪哪些数据被加密,因为解密将由可移除网桥而不是由存储控制器来处理。
在框525中,存储控制器145执行所接收的命令。例如,存储控制器可读取数据或将数据写入存储介质160。
在框530中,存储控制器可选地向主机105发送响应。例如,如果该命令是读取命令,存储控制器会发送回所请求的数据。
图6是根据数据存储系统100的一个或多个实施方案的示出另一拦截过程600的流程图。拦截过程500可例如由数据存储系统的控制电路执行,诸如存储控制器145和/或可移除网桥140。图6所示的拦截过程可在图5所示的拦截过程之后直接进行。例如,图5所示的过程可应用于到达存储控制器145的命令,而图6所示的过程适用于由存储控制器对所接收的命令作出的响应。
在框605中,存储控制器145从主机接收请求或命令。例如,请求可以是读取命令,写入命令或状态查询。
在框610中,存储控制器145向主机发送响应。例如,存储控制器可响应于读取命令并将所请求的数据发送至主机系统105。
在框615中,可移除网桥140拦截存储控制器145发送的响应。该响应可包括由主机系统105请求的读取数据。
在框620中,可移除网桥140确定是否需要修改响应。例如,如果读取的数据是加密的,则可移除网桥140将解密协议应用于读取的数据以创建经修改的未加密数据。如果需要,可移除网桥还可解压缩数据。然而,如果响应是针对状态查询,则可移除网桥140可能不需要修改响应。
在框625中,可移除网桥140向主机105发送修改/未修改的响应。例如,可移除网桥140可通过对包含在响应中的数据进行解密或解压缩来修改该响应。然而,在一些情况下,不需要修改响应,并且可移除网桥140仅通过响应。
另外的实施方案
本公开的系统和方法可用于硬盘驱动器,混合驱动器和固态存储器驱动器。如本专利申请中所使用的,“非易失性固态存储器”、“非易失性存储器”、“非易失性存储器晶片”、“NVM”、“固态存储器”、“固态数据存储器”、“半导体存储器晶片”或它们的变型可以指固态存储器诸如NAND闪存。固态存储器可包括多种技术,诸如闪存集成电路、相位变化存储器(PCM、PC-RAM或PRAM)、可编程金属化单元RAM(PMC-RAM或PMCm)、双向统一存储器(OUM)电阻RAM(RRAM)、NAND存储器、NOR存储器、EEPROM、铁电存储器(FeRAM)、磁阻RAM(MRAM)或其他分立的NVM(非易失性固态存储器)芯片。另外地或另选地,可使用其他形式的存储器(例如,电池备份易失性DRAM或SRAM设备、磁盘驱动器等)。
本领域的技术人员将会理解,在一些实施方案中,可实施其他类型的数据存储系统和/或存储器寻址方案。此外,本文所述的过程中采取的实际步骤可不同于附图中所描述或所示的那些。根据实施方案,可移除上述步骤中的某些步骤,可添加其他步骤。
虽然已经描述了某些实施方案,但是这些实施方案仅作为示例呈现,并且不旨在限制保护范围。实际上,本文描述的新颖方法和系统可以各种其他形式体现。此外,可以对本文描述的方法和系统的形式进行各种省略、替换和改变。所附权利要求书以及其等同物旨在涵盖落入保护范围和实质内的这些形式或修改。例如,图中所示的各种部件可实现为处理器、ASIC/FPGA或专用硬件上的软件和/或固件。而且,上文公开的特定实施方案的特征和属性可以不同方式组合以形成另外的实施方案,所有这些都落入本公开的范围内。尽管本公开提供了某些优选的实施方案和应用,但是对于本领域普通技术人员显而易见的其他实施方案,包括不提供本文所述的所有特征和优点的实施方案,也在本公开的范围内。因此,本公开的范围旨在仅通过参考所附权利要求书来限定。
可通过由一个或多个通用和/或专用计算机执行的软件代码模块来体现本文所描述的方法或过程,并且部分或完全地使本文描述的方法和过程自动化。词语“模块”可指包括在硬件和/或固件中的逻辑,或指以编程语言(例如C或C++)编写的可能具有进入和退出点的软件指令的集合。软件模块可被编译并链接到可执行程序中,安装在动态链接库中,或者可使用解释的编程语言诸如BASIC,Perl或Python来编写。应当理解,软件模块可从其他模块或从其自身被调用,和/或可响应于检测到的事件或中断而被调用。软件指令可嵌入固件中,诸如可擦除的可编程只读存储器(EPROM)。“模块”还可指可概念性地实现相关功能的一个或多个设备、部件、系统或子系统。还应当理解,硬件模块可由连接的逻辑单元(诸如栅极和触发器)构成,和/或可由可编程单元构成,诸如可编程门阵列、专用集成电路和/或处理器。本文所述的模块优选地实施为软件模块,但可在硬件和/或固件中表示。此外,虽然在一些实施方案中,模块可单独地编译,但在其他实施方案中,模块可表示单独编译的程序的指令子集,并且可不具有可用于其他逻辑程序单元的接口。
Claims (20)
1.一种存储设备,包括:
存储介质;
存储控制器,所述存储控制器被配置为控制对所述存储介质的读取操作和写入操作,其中所述存储控制器被配置为根据固件进行操作;
主机接口,所述主机接口被配置为从主机系统接收命令;和
网桥槽,所述网桥槽被配置为接收可移除网桥,所述可移除网桥被配置为:
拦截从所述主机系统发送至所述存储控制器的第一命令;
根据存储在可移除网桥上的软件修改所述第一命令;以及
将所述第一命令传输至所述存储控制器。
2.根据权利要求1所述的存储设备,其中所述网桥槽使用微型SD或通用闪存存储(UFS)格式。
3.根据权利要求1所述的存储设备,其中:
所述第一命令包括写入命令和写入数据;并且
修改所述第一命令包括加密所述写入数据。
4.根据权利要求1所述的存储设备,所述可移除网桥还配置为:
拦截响应于读取请求的由所述存储控制器发送至所述主机系统的数据包;
对所述数据包解密;以及
将所述解密的数据包传输至所述主机系统。
5.根据权利要求1所述的存储设备,其中所述固件由存储设备制造商写入,并且存储在所述可移除网桥上的所述软件由不同于所述存储设备制造商的第三方写入。
6.根据权利要求5所述的存储设备,其中所述可移除网桥包括:
存储器,所述存储器存储来自所述第三方的所述固件,所述固件包括用于修改被拦截命令的指令;和
控制器,所述控制器被配置为根据来自所述第三方的所述固件修改所述被拦截命令。
7.根据权利要求1所述的存储设备,其中:
所述第一命令包括写入命令和写入数据;并且
修改所述第一命令包括压缩所述写入数据。
8.根据权利要求1所述的存储设备,其中:
在第一配置中,在所述网桥槽中不具有可移除网桥的情况下,所述主机接口与所述存储控制器物理上断开连接;并且
在第二配置中,在所述网桥槽中具有可移除网桥的情况下,所述主机接口经由所述可移除网桥物理上连接到所述存储控制器。
9.根据权利要求1所述的存储设备,其中所述存储设备是硬盘驱动器(HDD),固态驱动器(SSD),和固态混合驱动器(SSHD)中的一者。
10.根据权利要求1所述的存储设备,所述存储控制器还被配置为:在允许访问存储在所述存储介质上的数据之前,认证所述可移除网桥。
11.一种用于修改由存储设备接收的命令的方法,所述存储设备包括被配置为运行固件的存储控制器和被配置为运行软件的可移除网桥,所述方法包括:
在所述存储设备的网桥槽中接收所述可移除网桥;
在所述存储设备的主机接口上接收从主机系统到所述存储控制器的第一命令;
在所述可移除网桥处拦截所述第一命令;
根据所述可移除网桥中的所述软件修改所述第一命令;以及
将所述第一命令传输到所述存储控制器。
12.根据权利要求11所述的方法,其中:
所述第一命令包括写入命令和写入数据;并且
修改所述第一命令包括加密所述写入数据。
13.根据权利要求11所述的方法,还包括:
拦截响应于读取请求的由所述存储控制器发送至所述主机系统的数据包;
对所述数据包解密;以及
将所述解密的数据包传输至所述主机系统。
14.根据权利要求11所述的方法,其中所述可移除网桥包括:
存储器,所述存储器存储所述软件,所述软件和所述固件由不同方写入,所述软件包括用于修改被拦截命令的指令;和
控制器,所述控制器被配置为根据所述软件来修改所述被拦截命令。
15.根据权利要求11所述的方法,其中:
所述第一命令包括写入命令和写入数据;并且
修改所述第一命令包括压缩所述写入数据。
16.根据权利要求11所述的方法,还包括:
在允许访问存储在所述存储设备的存储介质上的数据之前,对所述可移除网桥进行认证。
17.根据权利要求11所述的方法,还包括:
响应于在所述网桥槽中接收所述可移除网桥,运行授权过程。
18.根据权利要求17所述的方法,其中所述授权过程包括:
在所述存储控制器上使用随机生成的数字计算第一认证结果;
独立于所述存储控制器,在所述可移除网桥上使用所述随机生成的数字计算第二认证结果;以及
对所述第一认证结果和所述第二认证结果进行比较,并在此基础上授权所述可移除网桥向所述存储控制器发送解锁命令。
19.根据权利要求18所述的方法,还包括:
向所述存储控制器发送解锁命令和密码;
确定所述密码是否正确;
响应于确定所述密码是正确的,解锁所述存储设备的存储介质;以及
响应于确定所述密码是不正确的,保持所述存储介质不可访问。
20.一种存储设备,包括:
存储装置;
控制装置,所述控制装置被配置为控制对所述存储装置的读取操作和写入操作,其中所述控制装置根据固件进行操作;
接口装置,所述接口装置被配置为从主机系统接收命令;
接收装置,所述接收装置被配置为接收可移除处理装置,所述可移除处理装置被配置为:
拦截从所述主机系统发送至所述控制装置的第一命令;
根据存储在所述可移除处理上的软件修改所述第一命令;以及
将所述第一命令传输至所述控制装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/365,080 | 2019-03-26 | ||
US16/365,080 US11216209B2 (en) | 2019-03-26 | 2019-03-26 | Secure storage using a removable bridge |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111753338A true CN111753338A (zh) | 2020-10-09 |
CN111753338B CN111753338B (zh) | 2024-05-10 |
Family
ID=72607930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911218749.2A Active CN111753338B (zh) | 2019-03-26 | 2019-12-03 | 使用可移除网桥的安全存储设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11216209B2 (zh) |
CN (1) | CN111753338B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023025621A (ja) * | 2021-08-10 | 2023-02-22 | ルネサスエレクトロニクス株式会社 | 半導体装置および乱数の生成方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090100273A1 (en) * | 2007-10-16 | 2009-04-16 | Seagate Technology Llc | Prevent data storage device circuitry swap |
US20100274677A1 (en) * | 2008-09-19 | 2010-10-28 | Logomotion, S.R.O. | Electronic payment application system and payment authorization method |
US20130145451A1 (en) * | 2011-08-09 | 2013-06-06 | Qualcomm Incorporated | Apparatus and method of binding a removable module to an access terminal |
US20130332747A1 (en) * | 2005-05-03 | 2013-12-12 | Strong Bear Llc | Removable drive with data encryption |
US9195530B1 (en) * | 2011-09-06 | 2015-11-24 | Western Digital Technologies, Inc. | Systems and methods for improved data management in data storage systems |
US20170131943A1 (en) * | 2012-11-16 | 2017-05-11 | Avalanche Technology, Inc. | Management of memory array with magnetic random access memory (mram) |
US20180239912A1 (en) * | 2017-02-22 | 2018-08-23 | Ivo Icio Alexander Welch | Data security method and local device with switch(es) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748912A (en) | 1995-06-13 | 1998-05-05 | Advanced Micro Devices, Inc. | User-removable central processing unit card for an electrical device |
US6601140B1 (en) * | 1999-04-07 | 2003-07-29 | Sony Corporation | Memory unit, data processing unit, and data processing method using memory unit type |
US20080140921A1 (en) | 2004-06-10 | 2008-06-12 | Sehat Sutardja | Externally removable non-volatile semiconductor memory module for hard disk drives |
US7945788B2 (en) * | 2005-05-03 | 2011-05-17 | Strong Bear L.L.C. | Removable drive with data encryption |
US7634585B2 (en) | 2005-11-04 | 2009-12-15 | Sandisk Corporation | In-line cache using nonvolatile memory between host and disk device |
US7853745B2 (en) | 2007-02-23 | 2010-12-14 | Sony Corporation | Electronic system with removable computing device and mutable functions |
JP4867760B2 (ja) * | 2007-03-30 | 2012-02-01 | ソニー株式会社 | 情報処理装置および方法、並びに情報処理システム |
US8296564B2 (en) * | 2009-02-17 | 2012-10-23 | Microsoft Corporation | Communication channel access based on channel identifier and use policy |
US9177654B2 (en) | 2014-03-26 | 2015-11-03 | Burst Corporation | Solid-state memory device with plurality of memory cards |
US10261553B2 (en) * | 2016-08-31 | 2019-04-16 | Western Digital Technologies, Inc. | Data storage device enclosure |
US10983943B2 (en) | 2018-11-16 | 2021-04-20 | Seagate Technology Llc | Data storage system with supplemental processing bus |
-
2019
- 2019-03-26 US US16/365,080 patent/US11216209B2/en active Active
- 2019-12-03 CN CN201911218749.2A patent/CN111753338B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130332747A1 (en) * | 2005-05-03 | 2013-12-12 | Strong Bear Llc | Removable drive with data encryption |
US20090100273A1 (en) * | 2007-10-16 | 2009-04-16 | Seagate Technology Llc | Prevent data storage device circuitry swap |
US20100274677A1 (en) * | 2008-09-19 | 2010-10-28 | Logomotion, S.R.O. | Electronic payment application system and payment authorization method |
US20130145451A1 (en) * | 2011-08-09 | 2013-06-06 | Qualcomm Incorporated | Apparatus and method of binding a removable module to an access terminal |
US9195530B1 (en) * | 2011-09-06 | 2015-11-24 | Western Digital Technologies, Inc. | Systems and methods for improved data management in data storage systems |
US20170131943A1 (en) * | 2012-11-16 | 2017-05-11 | Avalanche Technology, Inc. | Management of memory array with magnetic random access memory (mram) |
US20180239912A1 (en) * | 2017-02-22 | 2018-08-23 | Ivo Icio Alexander Welch | Data security method and local device with switch(es) |
Also Published As
Publication number | Publication date |
---|---|
CN111753338B (zh) | 2024-05-10 |
US20200310678A1 (en) | 2020-10-01 |
US11216209B2 (en) | 2022-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7765373B1 (en) | System for controlling use of a solid-state storage subsystem | |
US8528096B2 (en) | Secure universal serial bus (USB) storage device and method | |
US8746578B2 (en) | System and method for updating read-only memory in smart card memory modules | |
US10503934B2 (en) | Secure subsystem | |
US9251381B1 (en) | Solid-state storage subsystem security solution | |
US8819811B1 (en) | USB secure storage apparatus and method | |
US8060744B2 (en) | Computer architecture for an electronic device providing single-level secure access to multi-level secure file system | |
US8473752B2 (en) | Apparatus, system, and method for auditing access to secure data | |
EP1775881A1 (en) | Data management method, program thereof, and program recording medium | |
US20090248966A1 (en) | Flash drive with user upgradeable capacity via removable flash | |
WO2011148224A1 (en) | Method and system of secure computing environment having auditable control of data movement | |
US20090187770A1 (en) | Data Security Including Real-Time Key Generation | |
US7596702B2 (en) | Network storage devices | |
US7441118B2 (en) | Network appliance having trusted device for providing verifiable identity and/or integrity information | |
CN114662164A (zh) | 基于加密硬盘的身份认证与访问控制系统、方法和设备 | |
CN111753338B (zh) | 使用可移除网桥的安全存储设备 | |
US10970232B2 (en) | Virtual root of trust for data storage device | |
WO2004081706A2 (en) | Method and apparatus for controlling the provision of digital content | |
JP2023136601A (ja) | ソフトウェア管理装置、ソフトウェア管理方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |