CN110472443A - 一种数据安全方法和带开关的本地设备 - Google Patents
一种数据安全方法和带开关的本地设备 Download PDFInfo
- Publication number
- CN110472443A CN110472443A CN201810447663.6A CN201810447663A CN110472443A CN 110472443 A CN110472443 A CN 110472443A CN 201810447663 A CN201810447663 A CN 201810447663A CN 110472443 A CN110472443 A CN 110472443A
- Authority
- CN
- China
- Prior art keywords
- equipment
- row
- computer
- subregion
- subregions
- 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.)
- Pending
Links
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种带开关的,用于启用或禁用附加保护以确保本地数据存储安全的硬件设备。该设备可以是与本地数据存储器不同的自成一体的设备,也可以是一体化的本地数据存储器。自成一体的设备版本由一个独立的“桥梁”硬件设备组成,此设备可以限制主机访问标准的本地数据存储设备的权限。一体化的设备版本将起桥梁作用的硬件设备结合到改进的本地数据存储设备本身中。本发明装置上的开关可以是手动操作或控制,或是由第二台计算机通过连线来操作或控制。第二台计算机不同于连接到要保护的本地数据存储器的主计算机。在保护模式下,本发明设备和主机上安装的固件会限制本地数据存储器的可访问性或功能。
Description
材料主体受版权保护的公告
本专利文档中材料部分是受版权法保护的。当其出现在专利局公开提供的文件或记录时,版权所有者不反对任何人传真复制本专利文本或本专利内容,否则将保留所有版权的权利。特此,版权所有者不放弃任何使该专利文档保持保密状态的权利。
技术领域
本技术公开总体上适用于保护网络服务器上的信息免受远程数据窃取,尤其是通过数据存储器的外部硬件开关/多个开关来增强数据防窃控制,所述外部硬件开关/多个开关限制访问数据存储的部分内容,而本技术公开通过固件软件设置来启用硬件发明。
背景技术
互联网上的安全性代表了成本和功能之间的权衡。所面临的问题是提供既简单又便宜的部署和维护计算机安全的解决方案,并在存在潜在恶意入侵者的情况下提供足够的功能来完成所需的通信。最近得到高度宣传的大规模入侵事件,例如针对Target,eBay,PFChang's,JP Morgan和其他许多实体的大规模入侵已经证明了以合理成本实现和维护受保护的计算机系统的困难。即使计算机的仔细管理本来可以阻止这些入侵,但是这样的努力显然具有过高的维护成本或人力开销,尽管这些实体是具有充足信息技术资源和高级管理员的大型公司。那么这些问题在小公司中尤其令人震惊就不足为奇了。小型公司的普通的系统管理员往往难以招架持续的警惕、维护、及安全的必要性。
现代系统的安全困境由于现代操作系统的复杂性而变得更加难以解决。典型的微软的Windows操作系统,苹果OSX操作系统,或Linux操作系统含有5千万行(Windows Server2003)至4亿行(Debian 7)的代码。最近发布的Linux仅内核就已经包含大约16,000个文件中的约一千六百万行代码。然而,复杂性只是许多因素中的一个,因为即使是源代码较短的程序(特别是与安全有关的复杂和“聪明”的代码),也不能完全避免出现可能危害现有维护良好的计算机的编码错误,例如“heart-bleed”漏洞。暂时的人为错误,例如2016年的美国民主党全国委员会(DNC)电子邮件入侵事件,同样具有灾难性后果。人们普遍认为高复杂度是导致计算机安全脆弱性的重要因素。最终,强大的安全解决方案只有在合理的低复杂度下才能实现。它必须简单,否则最终将会失败。
加密通常用于帮助解决安全问题,但是至少有两个原因证明这是一个在许多情况下糟糕的解决方案。首先,入侵者可以拦截加密密钥。其次,用户可能会忘记加密密钥和密码,从而失去对自己记录的访问权限。如果不同的文件具有不同的加密密钥以进一步提高安全性,那么对操作人员的记忆能力的要求可能会急剧增加。完全失去访问权限的风险和检索密钥的不便可能太大而不允许使用加密,特别是在每个文件的基础上的加密。此外,加密密钥保护的设备可能不易备份,因为它可能需要协调保留加密密钥
鉴于上述情况,我们需要一种机制来防止远程攻击者通过互联网大规模盗取数据,这种方式需要是既经济实用,又复杂度低,并且只需要简单维护,甚至可以由相对不那么富有经验的服务器管理员来完成。因此,在此披露的发明描述了一种新颖的计算机组件,此设备可以用作解决方案的一部分,以克服现有的确保连接互联网的计算机上的数据安全的方法的缺点。此发明所公开的技术可以以低成本和低复杂度来实际的实施。而且只需要少量的软件更改就能使用这种新的计算机组件。
截至2016年,SATA仍然是物理存储接口的行业标准,它和它的变体占了个人计算机和服务器计算机安装中的大多数存储设备。因此,本技术公开基于SATA进行描述。SATA在硬件连接和软件协议方面都是标准化的。现代操作系统通常通过AHCI软件协议与SATA设备通信,例如在广泛提供的众多OS开发者手册中所描述,例如其中一个手册http://wiki.osdev.org/AHCI。本技术公开同样适用于SATA的后继者,诸如SATA硬件形式后继者,如SATA Express,PCIe扩展卡,U.2或M.2。同样地,虽然AHCI是当前主要的接口协议标准,本发明同样适用于AHCI的后继,例如NVMe。
主机操作系统使用AHCI等软件协议与SATA存储设备进行通信。AHCI使用一个命令块。该块具有许多的输入/输出功能,以便于诸如读取可用块的数量,设备初始化,错误处理,状态报告等的功能。对于本技术公开最直接相关的元素是:(a)请求是读还是写(或其他)的信息;(b)存储设备上的逻辑块地址(LBA),符合AHCI协议的48位宽,并识别在存储设备上的具体要在其上操作的块;(c)用于在存储设备和主计算机之间交换数据的直接存储器地址(DMA)。
通常,计算机主机操作系统设置逻辑块地址索引(在命令块中),指向其内存的一部分(用于DMA访问),要求控制器完成操作,并最终获得结果(返回的成功或错误代码,和DMA传输)。此公开的技术在下面示例中以C程序的形式用一个概括的抽象的界面来描述。以下范例中的所有访问均假定为只有一个块,但此公开的技术很容易推广到处理短于或长于一个块的请求。以下阐述是为了说明本技术的一个实施方案,而不就此设定限制.
为了说明,以下代码片段显示了SATA存储设备和计算机接口如何连接的抽象概念。括号(包括括号)中的行号并不是代码的一部分:
sata-interface.h:
(Line 1)typedef long long LBA;
(Line 2)#define BLOCKLENGTH 16384
(Line 3)typedef char BLOCK[BLOCKLENGTH];
(Line 4)#define MAXREALLBA0x0FFFFFF
(Line 5)typedef enum{RWRITE=1,RREAD=2}REQ;
(Line 6)//abstracted standard computer to controller request
(Line 7)int computer_receivefrom(REQ*Requesttype,LBA*LBAindex,BLOCK*dblock);
(Line 8)int computer_signalerror(char*errortext);
(Line 9)//abstracted interface between controller and storage
(Line 10)int disk_readfrom(LBA LBAindex,BLOCK*dblock);
(Line 11)int disk_writeto(LBA LBAindex,BLOCK dblock);
(Line 12)//abstracted interface to pass through requests without unusualaction
(Line 13)int computer_disk_passthrough(REQ requesttype,LBA LBAindex,BLOCK*dblock);
第1行将LBA(逻辑块地址)定义为足够大以容纳LBA范围(通常为48位,可保存在64位长整数中)的长整数。第2行至第3行定义了驱动器上每个块的长度,这里是16KB。第4行定义了实际存在的最高LBA,在本例中为0x0FFFFFF。因此,此SATA设备的基本存储容量为BLOCKLENGTH×MAXREALLBA=256GB。第5行的代码是用于识别来自主计算机的请求是读取还是写入。在实际实施中还会有其他可能的请求,例如获取驱动器状态的请求。上级主机和SATA驱动器控制器之间的通信功能以“computer_*”为前缀(第7行和第8行),而SATA驱动器控制器和下级存储器控制器之间的通信功能以“disk_*”为前缀(第10行和第11行)。第13行中的“直通”功能可以被认为是当此技术公开的设备确定它不需要介入计算机与驱动器通信时将计算机主机的请求传递给普通驱动器控制器的设置。
发明内容
本文所描述的技术通过一个低成本的受保护的存储设备提供安全保护。此安全保护可以通过两种方式来实现。一种是通过一个独立的“桥梁”般的硬件设备来允许主计算机对本地数据存储设备进行有限的访问(独立设备版本)。另一种是通过对本地数据存储设备本身的修改来达到保护(一体化设备版本)。作为一个重新思考的计算机体系结构的一部分,这个独立版设备或一体化版设备都是旨在成为主计算机上更复杂的安全解决方案中的一个组成部分,并在本文中统称为“此发明设备”。
采用独立设备版本来实现此技术公开需要四个组成部分。
(1)一个现有的被称为“驱动器”的本地数据存储组件。此组件可以是一个固态驱动器(SSD)或是一个硬盘驱动器(HDD)。该驱动器通常通过本地接口(例如但不限于SATA,PCI,USB或Thunderbolt桥)连接到主计算机。此驱动器可以是常见的磁盘设备,例如由IBM,希捷,三星,Marvell,Sandforce,东芝,LSI,Indilinx,Intel,JMicron等原始设备制造商制造的驱动器。在内部,此驱动器包括控制器(固件)和接口芯片以及记录信息的媒体或固态存储器。该驱动器有时本身可以由多个驱动器组件构成,例如,以加速某些操作。
(2)此发明设备连接到主计算机。所述主计算机被增强以识别和操作此发明设备。上述驱动器连接到此发明设备,而不再直接连接到主计算机。
(3)此发明设备本身有一个或多个“硬件模式”开关。所述开关可以由操作人员手动操作,或者可以通过连接电缆由非主计算机的不同的计算机控制。所述开关不允许被主计算机控制。此发明设备上安装的固件可以读取所述开关当前的模式/状态和/或任何变化。
(4)通过对此发明设备上安装的软件(“固件”)的特定更改来允许实现本文中具体描述的功能。
在一体化设备版本中,此发明设备是通过修改驱动器的固件,并增加所需的开关(图1)来实现。在独立设备版本中,此发明设备是连接在主计算机(主板)和驱动器之间(图2)。
此发明设备上的硬件模式开关允许在“非保护”(裸露)的设置和“受保护”(安全)的设置之间进行选择。
1.非保护设置:在本发明的独立设备版本中,此发明设备和该模式下的驱动器像未修改过的通用的数据存储驱动器一样操作。从其操作系统主机的角度来看,此发明设备和所述驱动器的组合是一个普通的外围存储设备。在这种模式下,计算机操作系统通常使用逻辑块地址(LBA)发送或接收数据。此逻辑块地址(LBA)本身是一个大整数,而此发明设备寻求在没有进一步限制的情况下满足这些操作要求。在非保护模式下,本发明并不能提供比普通的存储设备更多的优点。一体化设备版本中的设备也是如此。
受保护设置:在此模式下,此发明设备上的各个具体的块范围(称为“分区”)具有不同的访问权限。在本技术公开中讨论的示例中,此发明设备记录了多达五个特定的限制:(1)在第一分区中,访问被限制为只读模式;(2)在第二个分区中,访问不受限制;(3)在第三个分区中,访问被限制为一次写入(从不覆盖)模式;(4)在第四个分区中,不再允许逻辑块地址访问,而需要一个秘密代码;(5)在第五个分区中,访问是不可能的。并非所有限制都必须同时执行。该技术的不同实施方式可以通过允许更多分区和访问限制种类来增强灵活性。
本发明要求于一种具有保护模式和非保护模式的计算机设备。此发明设备的物理要求本身是司空见惯的。所述设备或者是一个具有嵌入式固件和可能用于连接一个或多个开关的引脚的硬盘驱动器,要么是一个具有一个或多个开关的交接控制设备。
尽管此发明设备可能对非互联网连接的计算机有用,但是其主要用途是保护连接到互联网的计算机不受远程入侵。
附图说明
通过参考以下附图能够更加全面地理解所公开技术,所述附图仅具有说明性目的。
图1为根据本发明的独立设备版本的一种实施方式,此发明设备连接在主板和存储设备之间。
图2为根据本发明的一体化设备版本的一种实施方式,此发明设备包含其开关和存储驱动器。
具体实施方式
本发明中数据安全保护系统被称之为“此发明设备”。所叙设备既可以是安装在数据存储硬盘驱动器和操作系统(主计算机主板)之间的独立设备,也可以是一体化的数据存储硬盘驱动器。
在图1中,此发明设备是独立于数据存储驱动器。具有其SATA端口(2)的存储驱动器(1)通过SATA电缆(3,4,5)直接连接到此发明设备上的等效SATA端口(7)。(如此处所示,SATA端口和电缆包含电源。)此发明设备本身包含一个基于微处理器的控制器,所述控制器可以与数据存储驱动器和计算机主板进行通信。因此,该设备具有第二个SATA端口(8),并通过第二条SATA电缆(6)连接到计算机主板。此外,该设备还有一个外部开关,在此附图中是在设备前侧的机械手动开关(11)。还有一个可选扬声器(9)和LED(10)用于与用户进一步通讯交流。
在图2中,此发明设备是一个一体化的数据存储设备1。该设备可以安装标准的2.5英寸外形尺寸的驱动器,带有数据连接器2和电源连接器3。此发明设备本身则有一根导线4连接到可插拔开关6。取决于此发明设备处于哪个状态,所述开关可点亮显示“不安全”或“安全”,可能有不同的颜色或闪烁警报组合来表达。通过导线7连接到此发明设备的扬声器8可以在此设备切换到不安全状态时进一步提醒用户。
在这两个附图中,开关本身不受物理保护或锁定。在某些情况下,不允许没有专门钥匙的普通人员操作它会更合适。这种安全性可以通过特殊的开关硬件连接器和/或需要从主计算机发送给此发明设备一个秘密解锁密钥来实现。所述开关也可以通过连接电缆由不同于主计算机的一个独立的计算机控制。
此发明设备可以被认为是在主计算机操作系统和数据存储设备之间同时提供硬件和软件的中间层。它的固件不能在主机上运行,因为在安全模式下它不能由主机更改。相反的,当此发明设备与数据存储器分离时,其固件必须在此发明设备自己的控制器上运行,或者当此发明设备是一个一体化的数据存储硬盘驱动器时,其固件必须在所叙一体化设备的控制器上运行。控制器固件接收来自主计算机操作系统的对于此发明设备的访问请求,检查所述请求,然后要么将请求传递到标准数据存储控制器(在独立设备版本中),要么启动不同的行为。
在此发明技术的这个实施方式中,数据存储驱动器上有五个分区,其中包括四个受限分区。所述分区的基本定义如下:
storage.h:
(Line 14)#define NPARTS 5
(Line 15)typedef enum{RO=0,RW=1,WO=2,SC=3,NA=4,END=5}PTYPE;
(Line 16)LBA blockends[NPARTS+1];//storage
(Line 17)//Write-once(WO)partition-related definitions
(Line 18)LBA WOlast;//lba storage pointer,>=(blockends[RW]+1),<=blockends[WO]
(Line 19)//secretcode(SC)partition-related definitions
(Line 20)#define SECRETCODESTART 0
(Line 21)#define SECRETCODELENGTH 512
(Line 22)typedef char SECRETBLOCK[SECRETCODELENGTH-SECRETCODESTART];
(Line 23)//pseudo LBA requests to signal secretcode operation
(Line 24)typedef enum{NEW=LONG_MAX-10,RPLC,READ,DEL}PSEUDOLBA;
在这个示例中,第14行定义了五个不同的区域。磁盘上五个分区的顺序是固定的。第15行定义了这些分区的功能:(1)RO:第一个分区(块范围)通常包含许多现代操作系统(和UEFI规范)中的启动分区,可以是只读的;(2)RW:第二分区可以在此发明设备的任何模式下不受限制并始终可访问;(3)WO:第三分区可以是一次写入;(4)SC:第四个分区可以提供秘密代码访问而不是逻辑块地址访问;(5)NA:第五个和最后一个分区在保护模式下可以无法访问,当超出SC区块块端之外,并处于保护模式下,逻辑块地址访问请求会导致错误。超出NA区块块端之外,逻辑块地址访问请求仅对伪请求(在下文定义)有意义。为便于编程,第15行上有一个“结束”指针,表示逻辑块地址范围的结束。
在此示例中,第一个分区是假定从LBA 0开始,而其余分区从前一个分区结束的位置开始。因此,我们只需要每个分区的单个LBA(逻辑块地址)值(第16行)来定义驱动器的哪个部分分配了哪个限制。预想中,当此发明设备处于非保护模式时,分区的位置和限制都是可以修改的。
另外,定义一个WOlast的逻辑块地址可以方便编写代码。所述WOlast逻辑块地址存储了一次写入分区上的下一个空闲块的地址(第17行和第18行)。预想中在一个实施方式下,主计算机可以决定哪些块有足够的价值值得复制到该分区。在另一个实施方式下,此发明设备本身可以实施一个规则,要求所有在预定时间内没有被覆盖的块写入请求(以避免不必要地记录临时文件)被写入WO分区。数据去重复功能集成到此发明设备中可以进一步保存该分区上的有限空间,而不会影响安全性。
从第19行开始,其余的代码行涉及第四个“SC”分区,在保护模式下,该分区只允许通过秘密代码访问,而不是通过LBA(逻辑块地址)访问。让我们考虑一种情况,其中主计算机操作系统希望表示由秘密代码来读取块。秘密代码字符串通常比64位长。普通协议(如AHCI)可能不会促成如此长的基于“字符串标识符”的请求(只能满足48位整数的逻辑块地址)。因此普通协议必须扩展以适应长秘密代码访问方法。(在另一个实施方式中,AHCI/NVMe协议本身可以被完全替换。在又一个实施方式中,多个逻辑块地址请求可以用来发出秘密代码。)
为了简化所述实施方式,直接内存访问(DMA)有效载荷被改变以将秘密代码从主计算机发送到此发明设备。从主计算机操作系统的角度来看,所有秘密代码请求(无论它们是读取还是写入)都会作为AHCI写入请求发送到预定义的不存在的“伪”逻辑块地址(LBA),而实际的秘密代码和有效载荷都在直接内存访问(DMA)中。
当主计算机发出读取存储请求时,相关的DMA块有效载荷只是秘密代码。其余的从主计算机操作系统传递的DMA块有效载荷将被忽略,并且将被此发明设备返回的存储内容覆盖。当主计算机发出写入存储请求时,相关块有效载荷包含秘密代码和剩余的负载。
对于从数据存储器读取的请求,此发明设备首先从计算机DMA读取数据,检查有效载荷中的秘密代码,并扫描其“SC”分区进行匹配。如果来自主计算机的秘密代码与所述分区上的秘密代码相对应,此发明设备读取由该秘密代码标识的块上的数据,然后再次使用DMA将数据从此发明设备发送回主计算机操作系统。如果“SC”分区上没有相应的秘密代码,此发明设备可以向操作系统发出一个(写入)错误信号。
在所述实施方式中,秘密代码在每个16KB数据有效载荷块中占据前512个字节(第20行和第21行)。一个典型的秘密代码可以是用户密码或随机字符串,并且可以放入特定的存储区(第22行)。
本发明的这个特定实施方式懂得用于SC分区的四个秘密代码指令。它们被编码为伪逻辑块地址(LBA)写入请求,写入到不存在的扇区(第23行)。因此,它们向存储设备发出新命令,而不是写入这些(不存在的)逻辑块地址的请求。这四个伪逻辑块地址请求在第24行中定义,并缩写为:NEW写入数据但不允许覆盖;RPLC取代数据;READ读取数据;DEL删除数据。在另一个实施方式中,这些命令请求可以在DMA中传递(例如,在秘密代码的第一个字节中)。
此发明设备还需要能够了解开关是否设置为允许或限制访问:
externalswitch.h:
(Line 25)int externalswitch_readstate();
(Line 26)#define NONSECURE 0
(Line 27)#define SECURE 1
在此示例中,操作员(或第二台计算机)可以在“非保护”(裸露)的状态(第26行)和“受保护”(安全)的状态(第27行)之间切换此发明设备的模式(第25行)。在一个不同的实施方式中,非保护模式可以超时,或者在无限制状态下操作一段时间之后超时,这样可以防止无意中将此发明设备置于非保护模式。同时推荐的是,当此发明设备处于非保护模式时,建议让此设备发出警告声音(以提醒用户返回保护模式)。类似地,当发生非法访问尝试时,此发明设备可以或应该发出(不同的)警告声音。在另一种实施方式中,切换到非保护模式不仅需要开关操作,还需要主计算机上的密码。
此发明设备本身运行一个永久循环(第28行),用于监视来自主计算机操作系统的请求或等待中断请求,然后完成所述请求。为了说明的目的,一个实施方式示范如下:
eternalloop.c:
在第31行中,此发明设备从主计算机收到请求并检查这个请求。如果逻辑块地址超出了允许的最大地址,无论是处于保护模式还是非保护模式,此发明设备都会将其识别为伪逻辑块地址请求。这些请求立即被交给第32行的秘密代码请求处理程序。该处理程序的细节将在下文中进一步讨论。一旦满足,这个永恒循环将在第35行重新开始。
接下来,此发明设备确定开关是否处于非保护模式-即允许所有操作的裸露模式(第37行和第38行)-在非保护模式下,所述设备将请求传递给底层存储设备(第39行)并重新开始循环(第40行)。
程序现在处于发送的请求不是伪请求(秘密代码请求)的情况下,以及开关将此发明设备定于保护模式的位置。此发明设备现在必须查找请求所针对的分区(第42行,第43行和第44行)。在不同的实施方式中,例如,分区可以由主计算机指定而不是隐含在逻辑块地址中,那么此发明设备可以直接在它所指向的分区内检索逻辑块地址。
如果在保护模式下,逻辑块地址请求是针对不受限制的读写分区内的块(第46行),它将被传递到存储子系统(第47行),然后循环重新开始(第48行)。
如果在保护模式下,逻辑块地址请求是针对只读分区内的块(第49行),那么不是READ(读取)的请求会导致错误消息(第50行)。如果此请求是读取请求,则它将被传递到存储子系统(第51行)。循环从第52行重新开始。
如果在保护模式下,逻辑块地址请求是针对一次写入分区内的块(第53行),此写入请求(第54行)会在最后一个有写入数据的块之后追加数据块。使用WOlast逻辑块地址(第55行)信息,对这个分区的写入访问从上一次访问结束的地方继续写入。接下来的步骤(第56行和第57行)确保存在一次写入的存储并且一次写入的存储尚未填满。然后,写入请求执行完成(第59行)并且循环可以重新开始(第61行)。
必须确保的是WOlast逻辑块地址的信息在突然断电的情况下能够保留。因此第60行将此逻辑块地址的信息保存到非易失性存储器。此非易失性存储器最好是非常快速的并在此发明设备本身上而非存储子系统上。在此实施方式中,对一次写入分区的读取访问总是被允许的(第60行),但在其他的实施方式中,此读取访问可以被禁止。
在这个实施方式中,一次写入操作请求是由主计算机发出。在一个不同的实施方式中,此发明设备可以自动记录所有写入请求,或者在一定期限内未被覆盖的所有写入请求,以减少写入临时文件或缓存文件的空间需求。
在这个实施方式中,在保护模式下,如果针对于SC(受秘密代码保护)分区的请求(第62行)是基于此分区的逻辑块地址,则会导致错误信息(第63行),因为只能通过秘密代码才能访问此分区。
在此实施方式中,在受保护模式下,如果逻辑块地址请求是针对于不可访问分区内的块(第64行),此请求会导致错误信息(第65行)。
如果主循环确定数据请求不是通过逻辑块地址,而是通过秘密代码,来针对秘密代码保护分区内的块,它则调用秘密代码处理程序,如以下所示范。
secretcodehandler.c:
此秘密代码处理程序检查DMA数据块含有秘密代码的部分(第74行和第75行)。此处理程序可以忽略其余的有效载荷。为了表述清晰,秘密代码块数据本身被拆分开(第76行)。处理程序首先查找SC分区内任何块上是否存在这个秘密代码(第77行-第78行)。然后它查找伪逻辑块地址请求要求的内容(第79行)。如果请求是RPLC命令(第80行)并且存在具有此秘密代码的块(第81行),则不需要在SC分区上分配新的块,当前查到的块将被覆盖,此请求要求的操作完成(第82行)。如果查找的秘密代码不存在,则RPLC操作就像是NEW写入请求一样进行(第83行)。对于NEW请求,如果SC分区内有一个块含有请求内特定的秘密代码,则不允许覆盖请求,并且返回一个错误信息(第84行和第85行)。如果SC分区内没有一个块含有NEW请求内特定的秘密代码,此处理程序首先在SC分区内找到一个空的逻辑块地址块(第86行),如果没有可用的块则中止(第87行和第88行),然后将整个数据写入可用块(第89行)。对于READ请求(第90行),如果请求中的秘密代码未在SC分区中找到(第91行和第92行),此处理程序返回一个错误信息,如果在SC分区上找到含有此秘密代码的块(第93行),此处理程序则返回这个块的内容。对于DEL请求(第94行),如果SC分区中没有找到请求中的秘密代码(第95行和第96行),此处理程序返回一个错误信息,如果在SC分区上找到含有此秘密代码的块,此处理程序则清除此块的内容(第97行)。最后,其他请求(第98行)引发错误信息(第99行)。
为了完整起见,下面是秘密代码对应逻辑块地址的软件的一个非常低效的范例。此范例和更高效的技术是广泛理解的。
map.c:
此示例显示秘密代码可在受保护的块范围中搜索(第103行至第111行),可通过对整个块进行调零将其删除(第112行至第117行),并且可通过搜索完全空白的块来分配新的块(第118行至第127行)。但是,此示例在实际应用中并不合适。在实践中,此发明设备应该建立一个内部查找表格(secretcode!LBA)来更快速地响应秘密代码请求。所述表格会将每个秘密代码映射到此发明设备受保护范围内的一个逻辑块。在这种情况下,读取请求不再需要对每个块按顺序访问而导致速度缓慢。实际的实施方案将取决于内存的存储容量,设备控制器的速度,以及必须搜索的秘密代码数据量。
此秘密代码分区可以有很多种实施方式。
例如,在SC分区中,可以通过用随机字符串预先格式化(初始化)受保护区域来提高存储速度。在这个例子中,NEW和RPLC请求不会附带秘密代码,而是会返回预定的秘密代码。这个预定的密钥则变成以后检索有效载荷所需的秘密代码。然而,这里存在一个权衡的问题。这种方法可以加快访问速度,因为此发明设备和secretcode-LBA(秘密代码-逻辑块地址)映射可以被预先优化。它还可以提供更多的保护,因为密钥的随机生成降低了密钥被猜测的可能性。但是编码的复杂度也大大的提高了。
在另一个实施方式中,秘密代码可以由用户提供(例如,基于用户的个人信息和密码来生成代码)。
不正确的秘密代码访问请求可能导致访问速度降低,以试图减缓穷举法式的攻击。更明智的是,不正确的访问尝试能触发听得见或可见的警报,而此警报在保护模式下需要手动操作关闭。此发明设备也可以在错误尝试超过预先确定次数时自动关闭并锁定为限制访问权限。
本发明旨在成为有助于保护数据存储免受入侵的存储体系结构的一部分。在所展示的实施方式中,此发明设备具有不同功能的多个分区。
1)第一个分区是在保护模式下的只读区域。该分区还包括启动块和启动区域。在受保护的模式下只可读取的限制使它可以防止病毒,恶意软件,哨兵软件等对操作系统进行未经授权的更改。
2)第二个分区是在保护模式下的标准读写区域,应视为不安全区。这个分区中的文件可以使用特定于文件的加密密钥单独进行保护,而这些密钥存储在分开的受秘密代码保护的分区中。在很多情况下,将这个分区标记为noexec(即不允许执行代码)是有道理的,并不仅适用于二进制文件,还可以通过操作系统和语言的修改来防止解释型语言的使用(比如sh,perl,php,java等)。
3)第三个分区是在保护模式下的一次写入区域。它旨在帮助抵御勒索软件攻击。此类攻击会对用户的存储信息进行加密,然后勒索所有者付费以获取解密密码。操作系统会记录对此发明设备的写入操作。它也可以用来提供不可更改的审计线索。这是日志文件和备份的明显的目的地。
4)第四个分区是在保护模式下的仅秘密代码可访问的区域。本技术公开详细描述了该区域。它可以用于,例如为其他块范围内的文件存储特定的加密密钥,而这些密钥只能在紧急情况下通过将此发明设备切换到非保护(裸露)模式才能被检索。它还可以在保护模式下提供只写和不可读的目的地(例如,用于信用卡交易)。或者它是一个只写和可读的分区。秘密代码相对于现有加密技术的关键优势是它的加密密钥不会被无法挽回地遗忘。为了保证安全性,建议此设备的用户不要在同一台计算机上切换到非保护模式,而是移动此发明设备并仅在非联网的电脑上使用它。这可以通过将面向互联网的计算机上的开关锁定在“受保护”(安全)的位置来强制用户在进入非保护模式之前必须从此面向互联网的计算机上移除此发明设备。
5)第五个分区在保护模式下不可访问。
此外,只有当保护开关关闭时,主计算机操作系统才能获得此发明设备的某些访问权限:
1)更新此发明设备的固件;
2)重新初始化此发明设备,或重置此发明设备上的分区大小分配;
3)更改某些行为,例如当此发明设备处于非保护模式时,或存在非法访问尝试的情况下,此设备发出的音频警告的类型。
硬件开关本身可以被设计成静态切换开关,即在整个操作过程中需要由用户一直握住的开关,或者是在超过一定时限之后自动转回到“保护”模式的开关。它可能是一个物理开关需要人工操作来打开或关闭,或由一组电线将此发明设备连接到第二台可以操作开关的计算机(与主计算机不同,最好不连接到互联网)。当此发明设备处于非保护模式时建议用低音信号来提醒用户。
利用本发明技术,可以修改普通操作系统(比如linux)以使此发明设备能够正常启动和运行(就像CD-ROM可以在Linux下启动并运行一样),并且还可以添加更多的受保护的储存设施。
此发明的一个重要方面是其代码复杂度低,无论是在主机操作系统上,还是在此发明设备上。所需的代码库以数百行计算机代码(可审计)来进行度量,而不是以数百万行计算机代码来度量。当安全代码与通用计算机系统代码一样复杂时,无意中的代码漏洞通常会导致安全问题。任何高度复杂的设备本身都可能成为另一个脆弱点,就像网络上的通用计算机可能变得易受攻击一样。此发明设备的特殊用途固定功能控制器的性质赋予其安全性。
本发明的一个非常重要和实用的方面是它不需要加密密钥,而加密密钥可能丢失并且使存储器中的数据永远不可用。系统管理员可以随时获得对密钥和密钥值的完整访问权限。
Claims (3)
1.一种用于确保通过面向互联网的主计算机访问的数据存储器的安全的设备,此设备具有多个实施方式:
(a)一个实施方式是一个与受保护的数据存储器分离的独立的设备,所述设备具有一个或多个开关,所述开关可以手动操作或可以通过连接电缆由第二台计算机控制,并且所述设备同时连接到数据存储器和面向互联网的主计算机;
(b)另一个实施方式是一个一体化设备,所述设备是增加了一个或多个开关的数据存储驱动器,所述开关可以手动操作或可以通过连接电缆由第二台计算机控制;
(c)其他利用所公开技术的实施方式。
2.根据权利要求1所述的设备,其特征在于,在所述数据存储器上存在多个分区,所述多个分区在保护模式下具有不同的可访问性或能力:
(a)在保护模式下,一个或多个分区不可以通过逻辑块地址来访问,可通过秘密代码访问;
(b)在保护模式下,一个或多个分区只能写入一次;
(c)在保护模式下,一个或多个分区完全不可访问;
(d)在保护模式下,一个或多个分区只能读取;
(e)在保护模式下,一个或多个分区可以不受限制;
(f)在保护模式下,一个或多个分区可以有不同于(a)至(e)所述的其他限制。
3.根据权利要求1所述的设备,其特征在于,安装在所述设备和主计算机上的软件的特定改变允许所述设备如所描述的那样起作用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810447663.6A CN110472443A (zh) | 2018-05-11 | 2018-05-11 | 一种数据安全方法和带开关的本地设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810447663.6A CN110472443A (zh) | 2018-05-11 | 2018-05-11 | 一种数据安全方法和带开关的本地设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110472443A true CN110472443A (zh) | 2019-11-19 |
Family
ID=68504158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810447663.6A Pending CN110472443A (zh) | 2018-05-11 | 2018-05-11 | 一种数据安全方法和带开关的本地设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110472443A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114080782A (zh) * | 2019-11-27 | 2022-02-22 | 株式会社树软件 | 阻止勒索软件或网络钓鱼攻击的方法及系统 |
CN115135504A (zh) * | 2020-03-09 | 2022-09-30 | 惠普发展公司,有限责任合伙企业 | 计算设备的功率控制 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050235364A1 (en) * | 2004-04-15 | 2005-10-20 | Wilson Christopher S | Authentication mechanism permitting access to data stored in a data processing device |
CN1795439A (zh) * | 2003-03-28 | 2006-06-28 | 安全系统有限公司 | 计算机操作系统的安全系统与方法 |
US20070006280A1 (en) * | 2005-01-11 | 2007-01-04 | Kabushiki Kaisha Toshiba | Security management apparatus for office appliance, security management method for office appliance and security management program for office appliance |
-
2018
- 2018-05-11 CN CN201810447663.6A patent/CN110472443A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1795439A (zh) * | 2003-03-28 | 2006-06-28 | 安全系统有限公司 | 计算机操作系统的安全系统与方法 |
US20050235364A1 (en) * | 2004-04-15 | 2005-10-20 | Wilson Christopher S | Authentication mechanism permitting access to data stored in a data processing device |
US20070006280A1 (en) * | 2005-01-11 | 2007-01-04 | Kabushiki Kaisha Toshiba | Security management apparatus for office appliance, security management method for office appliance and security management program for office appliance |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114080782A (zh) * | 2019-11-27 | 2022-02-22 | 株式会社树软件 | 阻止勒索软件或网络钓鱼攻击的方法及系统 |
CN114080782B (zh) * | 2019-11-27 | 2024-04-26 | 株式会社树软件 | 阻止勒索软件或网络钓鱼攻击的方法及系统 |
CN115135504A (zh) * | 2020-03-09 | 2022-09-30 | 惠普发展公司,有限责任合伙企业 | 计算设备的功率控制 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5657473A (en) | Method and apparatus for controlling access to and corruption of information in computer systems | |
US20080046997A1 (en) | Data safe box enforced by a storage device controller on a per-region basis for improved computer security | |
EP1989653B1 (en) | Universal serial bus (usb) storage device and access control method thereof | |
RU2321055C2 (ru) | Устройство защиты информации от несанкционированного доступа для компьютеров информационно-вычислительных систем | |
US7689733B2 (en) | Method and apparatus for policy-based direct memory access control | |
CN100389408C (zh) | 硬盘数据加密备份及还原方法 | |
KR100596135B1 (ko) | 가상 디스크를 이용한 응용 프로그램 별 접근통제시스템과 그 통제방법 | |
EP2652666B1 (en) | Storage drive based antimalware methods and apparatuses | |
US20050193182A1 (en) | Method and apparatus for preventing un-authorized computer data access | |
CN107092495A (zh) | 平台固件铠装技术 | |
EP3074907B1 (en) | Controlled storage device access | |
JP6695885B2 (ja) | ハッキング耐性のあるコンピュータ設計 | |
US20130283381A1 (en) | Systems and methods for providing anti-malware protection on storage devices | |
US6832320B1 (en) | Ownership tag on power-up screen | |
CN102053925A (zh) | 硬盘数据加密实现方法 | |
KR20210090505A (ko) | 메모리 컨트롤러, 및 이를 포함하는 스토리지 장치 | |
US9881142B2 (en) | Method and apparatus for preventing and investigating software piracy | |
JP2008146642A (ja) | マルチオペレーティングシステム環境下でハードディスクを保護するための装置、システム、および方法 | |
Chubachi et al. | Hypervisor-based prevention of persistent rootkits | |
CN113254949A (zh) | 对存储器区域的访问权限 | |
US20180239912A1 (en) | Data security method and local device with switch(es) | |
US20150074820A1 (en) | Security enhancement apparatus | |
CN110472443A (zh) | 一种数据安全方法和带开关的本地设备 | |
US11829454B2 (en) | Method and apparatus for preventing and investigating software piracy | |
EP4006758B1 (en) | Data storage apparatus with variable computer file system |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20191119 |