CN105069377A - 安全硬盘 - Google Patents
安全硬盘 Download PDFInfo
- Publication number
- CN105069377A CN105069377A CN201510518298.XA CN201510518298A CN105069377A CN 105069377 A CN105069377 A CN 105069377A CN 201510518298 A CN201510518298 A CN 201510518298A CN 105069377 A CN105069377 A CN 105069377A
- Authority
- CN
- China
- Prior art keywords
- user
- session
- hard disk
- read
- write requests
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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/79—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 semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2117—User registration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种安全硬盘,其包括新用户注册模块、会话建立模块、访问控制模块和会话终止模块,通过扩充普通硬盘的接口协议,保障在整个运行期间用户在硬盘中的受保护数据不被其他未授权用户访问。本发明具有多用户的数据隔离、细粒度的访问控制、高安全的接口协议和最小化的可信安全基等特点,可提高硬盘中存储数据的安全性。
Description
技术领域
本发明涉及计算机存储技术领域,尤其涉及一种数据安全性能高的安全硬盘。
背景技术
硬盘是一种广泛使用的存储介质,比如机械硬盘和固态硬盘,它们通常通过某种行业标准的物理接口(如PATA,SATA,SAS和ParallelSCSI等)与主机连接。硬盘,作为一种与主机直连(Directlyattached)的存储设备,一般不具备数据保护的功能,数据安全主要依赖主机上的软件。但最常见的两种基于软件的数据保护手段——访问控制和数据加密——各有不足。访问控制,通常由系统软件实施,其安全性依赖于代码的安全性和健壮性。随着系统越来越庞大复杂,很难保证不存在软件错误或安全缺陷,因此系统软件访问控制的安全性有限。另一种常见做法是数据加密。基于密码学的方法虽然具有较高的安全性,但数据加密解密的计算开销较大,而且加密虽能保护数据的私密性,但不能防止数据被恶意清除。可见,仅靠主机上的软件来保护硬盘数据是不足的。
同样意识到上面的问题,存储行业推出了一些基于硬盘本身的安全解决方案,如全盘加密(Full-diskencryption)和ATA标准的安全特性集(Securityfeatureset)。全盘加密是一种对硬盘上所有数据、且对用户透明的加密技术。全盘加密的硬盘在启动时会要求用户输入密码,密码匹配后,后续的读/写操作都以用户密码对应的密钥解密/加密硬盘中的数据。这样,若硬盘本身不慎丢失或被恶意窃取,硬盘中的数据由于已加密就不会泄露。除了在存储中做数据加密,存储接口标准也可以增强安全性。广泛使用的存储接口标准ATA有可选的安全特性集,能够锁住存储设备(拒绝任何读写请求),直到用户用密码解除锁定。前述的全盘加密或ATA安全特性集都有助于提升硬盘的安全性,它仍然有明显不足。这是因为,这两种硬盘保护方法在用户输入完密码之后就在安全性方面与普通硬盘无异了,入侵者或恶意程序可以在用户输入密码之后(通常就是开机之后),窃取、篡改或删除硬盘中数据。
综上所述,硬盘应增强其自身的安全机制,在整个运行期间持续保障其内数据的安全性,包括机密性、完整性和可用性等等。除了安全方面的考虑,增加的硬盘安全机制应对硬盘性能影响尽可能的小,同时应与现有软硬件兼容,以便于实际采用。基于上述分析,亟需一种数据安全性能高的安全硬盘。
发明内容
本发明旨在提供一种数据安全性能高的安全硬盘。在整个运行期间,用户在所述安全硬盘中的受保护数据不会被其它未授权的用户访问。
本发明的技术方案如下:
一种安全硬盘,包括:
新用户注册模块,设置为响应用户发送的注册命令返回对应所述用户的用户身份标识,所述注册命令包括利用根密钥加密的用户密钥;
会话建立模块,设置为验证所述用户的身份的合法性;在确定所述用户的身份合法时建立会话,并将确定的对应所述会话的会话标识和会话密钥存储在会话信息表中;
访问控制模块,设置为接收所述用户发送的读/写请求,并在确定所述读/写请求所属的会话有效、确定所述读/写请求涉及的参数完整且确定所述用户有权访问所述读/写请求涉及的存储空间时,允许所述读/写请求;
会话终止模块,设置为在满足设定的终止条件时,终止所述会话。
优选的是,所述会话建立模块具体设置为:利用挑战-应答机制验证所述用户的身份的合法性。
优选的是,所述访问控制模块包括:
接收单元,设置为接收所述读/写请求,所述读/写请求包括用户身份标识、基本参数和验证参数;
第一验证单元,设置为根据所述验证参数和所述会话信息表,确定所述读/写请求所属的会话的有效性以及所述基本参数的完整性;
第二验证单元,设置为根据所述用户身份标识、所述验证参数和权限信息表,确定所述用户是否有权访问所述读/写请求涉及的存储空间;
访问控制单元,设置为在所述第一验证单元确定所述会话有效且所述基本参数完整,所述第二验证单元确定所述用户有权访问所述存储空间时,允许所述读/写请求。
优选的是,所述验证参数包括会话标识和消息验证码;所述第一验证单元包括:
有效性验证子单元,设置为在判断出所述会话信息表中包括所述会话标识时,确定所述读/写请求所属的会话有效;
完整性验证子单元,设置为在利用所述消息验证码和所述会话信息表中存储的对应所述会话的会话密钥判断出所述基本参数未被篡改时,确定所述基本参数完整。
优选的是,所述第二验证单元包括第一验证子单元,设置为依次对构成所述存储空间的每个存储扇区,验证所述用户是否有权访问所述存储扇区;在确定所述用户有权访问构成所述存储空间的所有存储扇区时,确定所述用户有权访问所述存储空间。
优选的是,所述第二验证单元还包括第二验证子单元,设置为依次对所述第一验证子单元确定的所述用户无权访问的每个存储扇区,根据所述权限信息表中存储的对应所述存储扇区的权限标识,确定所述存储扇区是否可被访问;在确定所述第一验证子单元确定的所述用户无权访问的所有存储扇区均可被访问时,确定所述用户有权访问所述存储空间。
优选的是,所述终止条件包括以下条件中的一种或几种:
所述会话持续预定的时间阈值;
在所述会话有效期间,所述用户进行操作的累计次数大于设定的第一次数阈值;
接收到所述用户发送的登出命令;以及
判断出拒绝所述读/写请求的次数大于设定的第二次数阈值。
优选的是,所述安全硬盘为固态硬盘。
与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:
本发明所述的安全硬盘增强了其自身的安全访问机制,在整个运行期间持续保障其内数据的安全性。主要表现在:
(1)多用户的数据隔离:支持多个用户安全地共享一个硬盘,并保证一个用户的受保护数据不被其他用户非法访问;
(2)细粒度的访问控制:将存储扇区作为访问控制的最小单元,以在数据保护上达到最大的灵活性;
(3)高安全的接口协议:硬盘接口协议的安全性仅依赖于客户端和安全硬盘,不依赖于主机上的系统软件(如操作系统),可以抵御各种软件层面的攻击;
(4)最小化的可信安全基(TrustedComputingBase):访问控制机制是在硬盘固件上实现,其代码量远小于复杂庞大的系统软件,因此更难出现因软件缺陷而导致的安全问题。
除了以上安全性方面的优点,由于安全硬盘的访问控制所需的密码学计算较少,因此产生的运行时的额外开销较低;同时,安全硬盘的访问控制与普通硬盘兼容,因此所需的软硬件改动较少。
本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1示出了本发明实施例安全硬盘的结构示意图;
图2示出了本实施例安全硬盘的访问控制方法的流程示意图;
图3示出了本实施例的安全硬盘在固态硬盘上的实现的示意图;
图4示出了基于上述安全硬盘的Hadoop分布式文件系统的示意图。
具体实施方式
普通硬盘允许主机对其随意读写。这是因为,传统上认为硬盘是从属于主机的外设,受控于主机,并且认为主机是可信的,因此可以接受主机的任何命令,包括对存储设备最重要的命令——读/写命令。硬盘的读出命令和写入命令分别可以被抽象为data←Read(offset,len)和Write(offset,len,data),其中offset表示读/写操作的起点,len表示读/写的数据长度,二者的单位通常都是一个存储扇区(512字节),data是读出/写入的二进制数据。通常来讲,硬盘会无条件接受主机发送的任何读/写命令,访问硬盘上的任何位置。这样,一旦主机被入侵者控制或运行有恶意程序,那么硬盘中的数据就可能被窃取、篡改或删除。可见,硬盘这种现有的读写接口是不安全的,应当加以改进。
为处于I/O栈最底层的硬盘,设计更安全的读写接口,增加额外的安全机制,有助于保护其中的数据,但这也有很大挑战。首先,攻击者可能监听主机和硬盘之间的所有交互,重放攻击(Replayattack)、伪装攻击(Impersonationattack)和中间人攻击(Man-in-the-middleattack)等各种攻击都是可能的,这使得接口命令和协议的设计必须很小心。其次,硬盘每秒钟处理的I/O操作数可以高达10,000,而其内部的计算资源有限,因此引入安全机制所产生的额外运行开销分摊到每个I/O操作必须很小,否则会影响性能。最后,安全增强的硬盘接口和协议必须与原有的软硬件兼容,使得对现有软硬件的改动尽可能的小,利于厂商开发和用户采用。
本发明实施例提供一种能够满足上述要求的安全硬盘。在正式介绍这些实施例之前,还需提前定义并澄清本说明书中将用到的一些概念以及记号。
在本说明书中,“安全硬盘”区别于“普通硬盘”。这里,用“硬盘”泛指所有硬盘,其包括“安全硬盘”和“普通硬盘”。
在本说明书中,如无上下文的其他限定,“用户”指的是安全硬盘的用户。通常在实际系统中,一台机器包括其上的硬盘,是由多个实体共享的。实体,即在一个系统中用以区分权限的对象,比如操作系统中的用户、用户组、文件或进程,数据库管理系统中的数据库、表或用户,网站系统中的用户等等。本实施例的安全硬盘的设计,旨在保护一个实体在硬盘中的受保护数据不被共用这个硬盘的其他实体非法访问。为此,硬盘中需要有跟实体对应的对象,此对象即为安全硬盘的用户。在安全硬盘中登记实体信息的过程,称为用户注册。一个用户的最基本信息包括用户身份标识和用户密钥。
在本说明书中,“操作”或“命令”指用户发给硬盘或安全硬盘的请求。不同的操作或命令对应不同的名称、参数、作用和返回值,为简明扼要的表示操作/命令的输入和输出,我们用记号retval1,retval2,…,retvalK←CmdName(arg1,arg2,…,argN[,opt1,opt2,…,optM])来表示一个名为CmdName的命令/操作,其包括有N个必要参数、M个可选参数和K个返回值。
在本说明书中,“会话”指的是用户和安全硬盘之间、在一定时间段内的受保护的交互。一般来讲,会话以用户登录为开始、用户登出为结束,期间包括来自这一用户的多个请求以及主机返回的响应。会话使得安全硬盘可以判断一个接收到的操作是否来自某个合法用户,并能验证该操作的合法性。
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
图1示出了本发明实施例安全硬盘的结构示意图。本实施例的安全硬盘主要包括新用户注册模块101、会话建立模块102、访问控制模块103和会话终止模块104。下面结合图2(本实施例安全硬盘的访问控制方法的流程示意图)分别详细地阐述各个模块的工作原理。
第一,新用户注册模块101,其对应图2中的新用户注册步骤201。新用户注册模块101用于响应用户发送的注册命令,并返回对应用户的用户身份标识。这里,注册命令包括利用根密钥加密的用户密钥。使用根密钥对用户密钥进行加密保证了新用户注册的安全性。
具体地,根密钥是硬盘在出厂时由厂商初始化或硬盘交付客户时由客户首次设置的。作为后续所有安全机制的信任链的基础,硬盘根密钥必须是安全的,只有客户授权的人员知道,比如管理员。将根密钥记为rkey。管理员(新用户)可以向硬盘发送用户注册命令,用户注册命令的参数为利用根密钥加密后的用户密钥,返回的是新注册用户的用户身份标识(ID)。可将用户注册命令定义为:uid←Register(Encryptrkey(ukey)),其中uid是用户身份标识,ukey是用户密钥,Encryptrkey是以rkey作为密钥的加密函数,该加密函数是一种密码学操作。该命令对应图2中的“用户注册命令(参数:利用根密钥加密的用户密钥)”和返回的“用户身份标识”。硬盘在接收到用户注册命令后,利用存储的根密钥解密出用户密钥,并为新用户分配一个用户身份标识,记录这个用户身份标识和用户密钥的匹配关系。为此,硬盘中维护一个用户信息表,字段是UID和UKEY,分别对应于用户身份标识和用户密钥。在接收到用户注册命令后,硬盘会在用户信息表中插入一条新的记录,对应于注册的新用户。
第二,会话建立模块102,其对应图2中的会话建立步骤202。会话建立模块102设置为验证用户的身份的合法性;在确定用户的身份合法时建立会话,并将确定的对应会话的会话标识和会话密钥存储在会话信息表中。优选地,会话建立模块102具体设置为利用挑战-应答机制验证用户的身份的合法性。
具体地,挑战-应答机制就是通过让用户使用其用户密钥加密一个随机数来证明它拥有这个用户密钥的事实,从而让服务方(安全硬盘)可以认证用户的身份。挑战-应答机制(也称为挑战-应答协议)保证了用户身份验证的安全性。这是因为:1)用户密钥没有被明文传输,不会被泄露;2)每次用户认证的应答由随机数决定,不受重放攻击影响;3)会话密钥是加密的,并只有用户和安全硬盘可以解密。这样,基于挑战-应答协议的会话建立完成时,只有用户和安全硬盘知晓会话密钥,保证了后续读/写操作可以用会话密钥进行验证。为了实现基于挑战-应答协议的会话建立,安全硬盘增加了两个新命令:挑战命令和应答命令。挑战命令定义为sid,rnd←Challenge(uid),其中uid是请求建立会话的用户身份标识,sid是即将建立的会话的会话标识,rnd是一个随机数,即所谓的“挑战”。该命令对应图2中的“挑战命令(参数:用户身份标识)”和返回的“会话标识,随机数”。应答命令定义为Response(sid,resp),其中sid是即将建立的会话的会话标识,resp是对随机数rnd的应答。该命令对应图2中的“应答命令(参数:会话标识,利用用户密钥加密的由随机数和会话密钥构成的字符串)”。只有当应答命令发送的响应resp匹配挑战命令收到的随机数rnd时,用户的身份才能得到验证,会话才能建立。这里,响应resp的合法值是Encryptukey(rnd|skey),其中rnd是挑战命令返回的随机数,skey是用户为即将建立的会话随机选定的一个会话密钥。安全硬盘收到响应resp后,利用用户密钥ukey对resp进行解密,得到返回的随机数rnd和会话密钥skey,若resp返回的随机数与挑战命令返回的随机数相等,那么用户的身份认证通过,建立标识为sid的会话,这个新建会话的会话密钥为skey;否则会话建立失败。为了保存当前所有合法会话的信息,安全硬盘中维护一个会话信息表,包括SID,UID和SKEY等字段,分别表示会话标识、会话发起者的用户身份标识和会话密钥。会话建立成功,则向会话信息表插入一条相应的新记录。
第三,访问控制模块103,其对应图2中的访问控制步骤203。访问控制模块103设置为接收用户发送的读/写请求,并在确定读/写请求所属的会话有效、确定读/写请求涉及的参数完整且确定用户有权访问读/写请求涉及的存储空间时,允许读/写请求。
进一步地,访问控制模块103包括接收单元、第一验证单元、第二验证单元和访问控制单元。
接收单元设置为接收读/写请求,读/写请求包括用户身份标识、基本参数和验证参数。第一验证单元设置为根据验证参数和会话信息表,确定读/写请求所属的会话的有效性以及基本参数的完整性。第二验证单元,设置为根据用户身份标识、验证参数和权限信息表,确定用户是否有权访问读/写请求涉及的存储空间。访问控制单元,设置为在第一验证单元确定会话有效且基本参数完整,第二验证单元确定用户有权访问存储空间时,允许读/写请求。
具体地,参照图2,用户向安全硬盘发送读/写请求,安全硬盘接收该读/写请求,并利用访问控制模块103决定这些读/写请求是否可以被授权:如果是,则执行读/写操作;否则拒绝执行。更具体来说,安全硬盘的访问控制检查包括两步:第一步,验证命令的数据完整性以及会话有效性;第二步,检查操作是否有权访问涉及到的扇区。
详细地,所谓验证数据完整性,就是确保读/写请求的参数是真实的,没有被篡改;会话有效性,就是确认读/写请求确实属于一个有效的会话,也就是检查这个操作是否由一个合法用户发起。在安全硬盘中,引入读出请求(读命令)data←SafeRead(offset,len,sid,token)和写入请求(写命令)SafeWrite(offset,len,data,sid,token)。其中,offset、len和data是基本参数,各基本参数的意义与普通读/写命令相同,sid和token是新增加的验证参数,与访问控制有关。sid参数是读/写操作所属会话的会话,使用会话信息表可以由sid查出该命令发起者的用户身份标识,以及会话密钥skey。token参数是每条读/写命令特有的操作令牌,可以验证该命令参数的完整性。上述读出请求对应图2中的“读出命令(参数:起始点,长度,会话标识,令牌)”及返回的“读出数据”。上述写入请求对应图2中的“写入命令(参数:起始点,长度,写入数据,会话标识,令牌)”。一种可能的做法是令token为MACskey(offset|len|sid),即该命令所有其他参数的消息验证码(MessageAuthenticationCode,MAC),这样安全硬盘可以通过token验证所有基本参数都是正当的、未被篡改的。为了避免重放攻击,更安全的做法是为每个会话引入操作序号seq,一个会话相继发出的命令的操作序号是递增的,客户端和安全硬盘同时维护会话的操作序号,这样可令token为MACskey(seq|offset|len|sid)。最后,还可以把写入数据data包括到消息验证码计算的输入中,以消除写入数据data被篡改的可能性;当然,这样也增加了计算token的开销。操作令牌token被验证通过,当且仅当操作发出者拥有该会话标识sid对应的会话密钥skey,且读/写请求的全部基本参数未被篡改,也就是说满足数据完整性;又因为token被验证通过说明sid和skey是对应的,因此该会话是有效的。
读/写请求要访问一些扇区,扇区是读/写的最小访问单元,因此也是我们对硬盘访问控制的最小单元。对于每个扇区,硬盘都需要维护它的访问控制信息,这个数据结构被称作权限信息表,其字段包括LBA、UID和RW,其中LBA是逻辑块地址,也就是扇区编号,UID是拥有这个扇区的用户身份标识,RW是扇区的读写权限。权限信息表的每条记录保存了一个扇区的拥有者,以及非拥有者用户的读写权限。权限信息表决定了一个读/写操作是否被允许访问该操作涉及到某个扇区。当一个扇区的拥有者UID为0时(权限信息表中条目的初始值),这个扇区可以被任何通过了第一步检查的读写操作访问。当一个扇区的拥有者UID不为0时,说明这个扇区由某个用户拥有的,是受保护的。这时,读/写操作的访问规则会复杂一些,根据扇区的拥有者是否与命令的发起者相同分为两种情况。第一种情况,扇区的拥有者和命令的发起者相同,此种情况下,该扇区允许任何通过第一步检查的读/写操作访问。第二种情况,扇区的拥有者和命令的发起者不相同,此时需根据该扇区的读写权限字段RW决定是否允许该命令。这里,RW字段由两个比特组成,高位表示是否允许读,更确切地说是,是否允许任何非扇区拥有者的用户读该扇区;类似地,低位表示是否允许写,更确切地说是,是否允许任何非扇区拥有者的用户对该扇区进行写操作。例如,默认的RW值为00,表示任何非扇区拥有者的用户都不能读或写该扇区。只有当一个操作涉及到所有的扇区都允许该操作访问时,这个操作才能被授权;反之,若该操作涉及到的扇区中有任意一个拒绝被该操作访问,则该操作被拒绝。而一个被授权了的写操作会更新权限信息表,把涉及到的扇区所对应的条目的拥有者UID字段更新为命令发起者的用户身份标识。
通过以上两步访问控制检查的读/写操作被允许进行真正的数据读写,并最终把结果返回给用户。
第四,会话终止模块104,其对应图2中的会话终止步骤204。会话终止模块104设置为在满足设定的终止条件时,终止会话。终止条件包括自动终止、手动终止和非法终止。自动终止是当一个会话的持续时间超过一个预先设定的阈值,或一个会话的累计操作次数超过了一个预先设定的阈值。手动终止,即当用户发出登出命令(终止命令)Cease(sid,token),根据sid和token可以验证登出命令是否合法。该登出命令对应图2中的“终止命令(参数:会话标识,令牌)”。非法终止是当第三步中的访问控制检查失败次数累计超过一个预先设定的阈值时发生,这可以防范对操作令牌token的暴力破解。一旦会话结束,该会话的信息从会话信息表中移除,会话标识以及会话密钥失效。
上面介绍的实施例主要是关于所属硬盘访问控制方法在硬盘接口方面的设计。接下来讨论实现安全硬盘这种增强接口的关键技术点。
硬盘的物理接口、协议和命令集等已经形成了若干既定的行业标准,如果硬盘访问控制方法无法与现有标准兼容,那么必然会提高生产商的成本,增加客户采纳的难度,最终难以推广。幸运的是,新增命令可以通过在现有硬盘接口标准之上扩展而达到,保持与已有标准兼容。当今使用最广泛的硬盘接口标准,如SATA和SAS等,都是基于SCSI命令集,而SCSI标准在设计之初就已经考虑到日后扩展的问题,这使得添加新命令变得相对简单。SCSI支持最多255种固定长度命令,以及最多255种变长命令,而标准已定义的命令不超过100种,因此足够我们增加若干访问控制相关的新命令作为厂商特定的功能(Vendor-specificfeature),包括前面实施例中提到的Challenge、Response、SafeRead、SafeWrite和Cease等。SCSI命令用被称为命令描述符块(CommandDescriptorBlock,CDB)的结构来描述,CDB定义了一个命令每个字段的含义和长度。根据SCSI的CDB格式,我们可以分别为Challenge、Response和Cease等定义新的定长命令,而为SafeRead和SafeWrite定义新的变长命令(因为参数较多)。任何了解SCSI标准的普通技术人员都可以完成扩展,这里不赘述。
如图3所示,是本实施例的安全硬盘在固态硬盘上的实现的示意图。
具体地,近些年,固态硬盘,因其延迟低、吞吐量大、能耗低、噪音小,正在得到越来越广泛的应用,预计未来将逐渐取代传统的机械硬盘,成为主流的硬盘技术。因此,本实施例以固态硬盘为讨论对象,而在机械硬盘上的实现与此类似。固态硬盘中包括CPU、内存、闪存以及各种控制器,就像一台迷你计算机;而其内部的核心控制逻辑是固件程序(Firmware),就像计算机的操作系统。固态硬盘中的数据是持久化在闪存芯片中的,闪存芯片具有读写不对称的特性:读写操作很快,且是以页为单位(一个页包含多个扇区);但写操作必须在空白页上写,非空白页必须擦除之后再写;擦除操作比读写操作慢得多,且是以块为单位(一个块包含多个页)。为了在硬盘接口层面掩盖闪存技术的读写不对称,固态硬盘引入了闪存转换层(FlashTranslationLayer)302,它以最高效的方式把对逻辑扇区的读写操作转换成对物理页的读写和物理块的擦除,涉及到的逻辑页到物理页的隐射关系被存储在页映射表314中。普通硬盘的闪存转换层无条件地接受和处理来自硬盘接口(这里假设是SATA模块300)的命令;而安全硬盘增加了额外的访问控制,因此为其引入了访问控制层301,介于SATA模块300和闪存转换层302之间。对于来自SATA模块300的用户命令,访问控制层301根据访问控制信息决定是接收、还是拒绝该命令,如果接收则传给闪存转换层302继续处理。访问控制层301的访问控制信息主要包含三个数据结构:在闪存中持久化存储的用户信息表312和权限信息表313,以及在内存中临时存储的会话信息表311。这三个表被用于硬盘访问控制方法的用户注册、会话建立、操作授权和或会话结束等四个步骤,与前面实施例中的描述一致。
本实施例介绍对操作系统的必要修改。硬件升级的好处必须得有操作系统的支持才能被应用程序享受到,对安全硬盘也是如此。安全硬盘的SafeWrite不同于普通硬盘的Write,每次调用需要传递sid、token等验证参数。而操作系统(以Linux为例)的写文件的系统调用(Systemcall)是longsys_write(unsignedintfd,constchar*buf,size_tcount),这样操作系统的现有编程接口不足以满足SafeWrite传递额外参数的需要。因此,需要为操作系统增加新的系统调用longsys_write_safe(unsignedintfd,constchar*buf,size_tcount,longsid,longlongtoken,intrw)。安全硬盘的SafeRead也可以做类似处理。不仅要为安全读/写增加新的系统调用,还需要把sid和token等新的验证参数从操作系统的接口传递到安全硬盘,这必须经过操作系统的整个I/O栈,包括虚拟文件系统、直接I/O(DirectI/O)、通用块设备层(GenericBlockLayer)、I/O调度层以及硬盘驱动程序层;如果安全硬盘是用SATA模块300与主机相连,那么硬盘驱动程序层又包含SCSI层、ATA层和AHCI等三层组成。虽然改动涉及的层面较多,但因为只是在现有的软件框架下增加参数或命令,因此改动的代码量不大。除了SafeWrite和SafeRead命令,Challege、Response等命令也需要操作系统层面的支持,这可以通过为sys_ioctl系统调用增加对CMD_CHALLENGE和CMD_RESPONSE等子命令的支持来实现,无需增加新的系统调用。
需要特别指出的是,安全读/写sys_write_safe和sys_read_safe是以直接I/O模式读写文件,不经过操作系统的高速磁盘缓存。操作系统的高速磁盘缓存所缓存的页可以被多个不同的进程共享复用,省去很多不必要的磁盘I/O。但高速磁盘缓存的这个优点对于安全硬盘的数据访问控制却是安全隐患,因为非安全硬盘授权的用户有可能从操作系统的磁盘缓存读取到属于其他用户的数据。以直接I/O模式读写文件,跳过了操作系统的磁盘缓存,可以避免上述问题。还要补充的是,直接I/O模式常用于自主管理磁盘缓存、无需操作系统缓存的数据密集型程序,比如数据库系统。而我们认为正是这种数据密集型应用更有可能利用安全硬盘的额外数据保护功能。
下面参照图4以HDFS(HadoopDistributedFileSystem,Hadoop分布式文件系统)为例简要介绍安全硬盘如何提高大数据系统的数据安全性。
HDFS的现有安全机制需要名字节点420和数据节点400协作保证。名字节点420首先验证HDFS客户端410发来的文件操作(比如读操作)是否来自一个权限足够的用户。核实用户身份的凭证是其提供的代理令牌(Delegationtoken)。如果用户合法且权限足够,则名字节点420把操作所访问的块的块令牌返回给客户端,这个块令牌是加密过的,无法伪造,且过期即失效。随后客户端向数据节点400调用块操作时,会把块令牌也发送给数据节点400,后者检查块令牌的合法性。如果合法,才授权客户端的块操作。以上就是HDFS访问控制的基本原理。
但上面的访问控制是有不足的。数据节点400上的HDFS块是以文件形式存放的。这意味数据节点400的内部管理员或获得特权的外部攻击者,可以绕开上述的HDFS访问控制机制,直接读取块所在的文件。安全硬盘可以防止这种情况发生。用户的密钥可以存储在名字节点420(认为是可信的)中,当用户需要读写受安全硬盘保护的HDFS块时,只要按照硬盘访问控制方法,先建立会话(比如基于挑战-应答协议),然后在这个会话中进行授权的读写操作即可。即使是拥有数据节点特权的攻击者,没有用户的用户密钥,也无法从安全硬盘中非法读写数据。
综上所述,本发明实施例所述的安全硬盘增强了其自身的安全访问机制,在整个运行期间持续保障其内数据的安全性。主要表现在:
(1)多用户的数据隔离:支持多个用户安全地共享一个硬盘,并保证一个用户的受保护数据不被其他用户非法访问;
(2)细粒度的访问控制:将存储扇区作为访问控制的最小单元,以在数据保护上达到最大的灵活性;
(3)高安全的接口协议:硬盘接口协议的安全性仅依赖于客户端和安全硬盘,不依赖于主机上的系统软件(如操作系统),可以抵御各种软件层面的攻击;
(4)最小化的可信安全基(TrustedComputingBase):访问控制机制是在硬盘固件上实现,其代码量远小于复杂庞大的系统软件,因此更难出现因软件缺陷而导致的安全问题。
除了以上安全性方面的优点,由于安全硬盘的访问控制所需的密码学计算较少,因此产生的运行时的额外开销较低;同时,安全硬盘的访问控制与普通硬盘兼容,因此所需的软硬件改动较少。
虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (8)
1.一种安全硬盘,其特征在于,包括:
新用户注册模块,设置为响应用户发送的注册命令,返回对应所述用户的用户身份标识,所述注册命令包括利用根密钥加密的用户密钥;
会话建立模块,设置为验证所述用户的身份的合法性;在确定所述用户的身份合法时建立会话,并将确定的对应所述会话的会话标识和会话密钥存储在会话信息表中;
访问控制模块,设置为接收所述用户发送的读/写请求,并在确定所述读/写请求所属的会话有效、确定所述读/写请求涉及的参数完整且确定所述用户有权访问所述读/写请求涉及的存储空间时,允许所述读/写请求;
会话终止模块,设置为在满足设定的终止条件时,终止所述会话。
2.根据权利要求1所述的安全硬盘,其特征在于,所述会话建立模块具体设置为:利用挑战-应答机制验证所述用户的身份的合法性。
3.根据权利要求1或2所述的安全硬盘,其特征在于,所述访问控制模块包括:
接收单元,设置为接收所述读/写请求,所述读/写请求包括用户身份标识、基本参数和验证参数;
第一验证单元,设置为根据所述验证参数和所述会话信息表,确定所述读/写请求所属的会话的有效性以及所述基本参数的完整性;
第二验证单元,设置为根据所述用户身份标识、所述验证参数和权限信息表,确定所述用户是否有权访问所述读/写请求涉及的存储空间;
访问控制单元,设置为在所述第一验证单元确定所述会话有效且所述基本参数完整,所述第二验证单元确定所述用户有权访问所述存储空间时,允许所述读/写请求。
4.根据权利要求3所述的安全硬盘,其特征在于,所述验证参数包括会话标识和消息验证码;所述第一验证单元包括:
有效性验证子单元,设置为在判断出所述会话信息表中包括所述会话标识时,确定所述读/写请求所属的会话有效;
完整性验证子单元,设置为在利用所述消息验证码和所述会话信息表中存储的对应所述会话的会话密钥判断出所述基本参数未被篡改时,确定所述基本参数完整。
5.根据权利要求3所述的安全硬盘,其特征在于,所述第二验证单元包括第一验证子单元,设置为依次对构成所述存储空间的每个存储扇区,验证所述用户是否有权访问所述存储扇区;在确定所述用户有权访问构成所述存储空间的所有存储扇区时,确定所述用户有权访问所述存储空间。
6.根据权利要求5所述的安全硬盘,其特征在于,所述第二验证单元还包括第二验证子单元,设置为依次对所述第一验证子单元确定的所述用户无权访问的每个存储扇区,根据所述权限信息表中存储的对应所述存储扇区的权限标识,确定所述存储扇区是否可被访问;在确定所述第一验证子单元确定的所述用户无权访问的所有存储扇区均可被访问时,确定所述用户有权访问所述存储空间。
7.根据权利要求1所述的安全硬盘,其特征在于,所述终止条件包括以下条件中的一种或几种:
所述会话持续预定的时间阈值;
在所述会话有效期间,所述用户进行操作的累计次数大于设定的第一次数阈值;
接收到所述用户发送的登出命令;以及
判断出拒绝所述读/写请求的次数大于设定的第二次数阈值。
8.根据权利要求1至7中任一项所述的安全硬盘,其特征在于,所述安全硬盘为固态硬盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510518298.XA CN105069377A (zh) | 2015-08-21 | 2015-08-21 | 安全硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510518298.XA CN105069377A (zh) | 2015-08-21 | 2015-08-21 | 安全硬盘 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105069377A true CN105069377A (zh) | 2015-11-18 |
Family
ID=54498740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510518298.XA Pending CN105069377A (zh) | 2015-08-21 | 2015-08-21 | 安全硬盘 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105069377A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107547198A (zh) * | 2016-06-28 | 2018-01-05 | 西部数据技术公司 | 保护存储设备中的数据 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070168292A1 (en) * | 2004-12-21 | 2007-07-19 | Fabrice Jogand-Coulomb | Memory system with versatile content control |
CN101120353A (zh) * | 2004-12-21 | 2008-02-06 | 桑迪士克股份有限公司 | 具有分区的通用内容控制 |
CN104063641A (zh) * | 2014-06-23 | 2014-09-24 | 华为技术有限公司 | 硬盘安全访问控制方法和硬盘 |
-
2015
- 2015-08-21 CN CN201510518298.XA patent/CN105069377A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070168292A1 (en) * | 2004-12-21 | 2007-07-19 | Fabrice Jogand-Coulomb | Memory system with versatile content control |
CN101120353A (zh) * | 2004-12-21 | 2008-02-06 | 桑迪士克股份有限公司 | 具有分区的通用内容控制 |
CN104063641A (zh) * | 2014-06-23 | 2014-09-24 | 华为技术有限公司 | 硬盘安全访问控制方法和硬盘 |
Non-Patent Citations (2)
Title |
---|
唐四薪: "《电子商务安全》", 31 May 2013 * |
田洪亮等: "可信固态硬盘:大数据安全的新基础", 《计算机学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107547198A (zh) * | 2016-06-28 | 2018-01-05 | 西部数据技术公司 | 保护存储设备中的数据 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9875368B1 (en) | Remote authorization of usage of protected data in trusted execution environments | |
CN107908574B (zh) | 固态盘数据存储的安全保护方法 | |
US8966580B2 (en) | System and method for copying protected data from one secured storage device to another via a third party | |
WO2020192406A1 (zh) | 数据存储、验证方法及装置 | |
US8555075B2 (en) | Methods and system for storing and retrieving identity mapping information | |
CN101588245B (zh) | 一种身份认证的方法、系统及存储设备 | |
CN109412812B (zh) | 数据安全处理系统、方法、装置和存储介质 | |
CN101661599B (zh) | 一种对设备系统自带的软件进行合法性认证的方法 | |
US10965474B1 (en) | Modifying security state with highly secured devices | |
US20040098591A1 (en) | Secure hardware device authentication method | |
US20090276474A1 (en) | Method for copying protected data from one secured storage device to another via a third party | |
KR101019354B1 (ko) | 반도체 메모리 장치를 통해 데이터 보안 기억 및 알고리즘기억을 실현하기 위한 방법 | |
US9071581B2 (en) | Secure storage with SCSI storage devices | |
CN101788959A (zh) | 一种固态硬盘安全加密系统 | |
JP2008524755A5 (zh) | ||
CN104956620B (zh) | 用于验证和密钥交换的方法、装置和计算机可读存储媒体 | |
CN107911221B (zh) | 固态盘数据安全存储的密钥管理方法 | |
CN106992978B (zh) | 网络安全管理方法及服务器 | |
CN106357700A (zh) | 一种云环境下密码设备虚拟化方法 | |
US9076002B2 (en) | Stored authorization status for cryptographic operations | |
CN102346716A (zh) | 硬盘存储设备的加密方法和解密方法及其加解密系统 | |
US20130145145A1 (en) | System and method of securing data using a server-resident key | |
US20080189794A1 (en) | Secure Host Interface | |
CN108390892B (zh) | 一种远程存储系统安全访问的控制方法和装置 | |
CN105069377A (zh) | 安全硬盘 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151118 |
|
WD01 | Invention patent application deemed withdrawn after publication |