安全硬盘的制作方法_2

文档序号:9350304阅读:来源:国知局
制或运行有恶意程序,那么硬盘中的数据就可能被窃取、篡改或删除。可见,硬盘这种现有的读写接口是不安全的,应当加以改进。
[0043]为处于I/O栈最底层的硬盘,设计更安全的读写接口,增加额外的安全机制,有助于保护其中的数据,但这也有很大挑战。首先,攻击者可能监听主机和硬盘之间的所有交互,重放攻击(Replay attack)、伪装攻击(Impersonat1n attack)和中间人攻击(Man-1n-the-middle attack)等各种攻击都是可能的,这使得接口命令和协议的设计必须很小心。其次,硬盘每秒钟处理的1/0操作数可以高达10,000,而其内部的计算资源有限,因此引入安全机制所产生的额外运行开销分摊到每个I/O操作必须很小,否则会影响性能。最后,安全增强的硬盘接口和协议必须与原有的软硬件兼容,使得对现有软硬件的改动尽可能的小,利于厂商开发和用户采用。
[0044]本发明实施例提供一种能够满足上述要求的安全硬盘。在正式介绍这些实施例之前,还需提前定义并澄清本说明书中将用到的一些概念以及记号。
[0045]在本说明书中,“安全硬盘”区别于“普通硬盘”。这里,用“硬盘”泛指所有硬盘,其包括“安全硬盘”和“普通硬盘”。
[0046]在本说明书中,如无上下文的其他限定,“用户”指的是安全硬盘的用户。通常在实际系统中,一台机器包括其上的硬盘,是由多个实体共享的。实体,即在一个系统中用以区分权限的对象,比如操作系统中的用户、用户组、文件或进程,数据库管理系统中的数据库、表或用户,网站系统中的用户等等。本实施例的安全硬盘的设计,旨在保护一个实体在硬盘中的受保护数据不被共用这个硬盘的其他实体非法访问。为此,硬盘中需要有跟实体对应的对象,此对象即为安全硬盘的用户。在安全硬盘中登记实体信息的过程,称为用户注册。一个用户的最基本信息包括用户身份标识和用户密钥。
[0047]在本说明书中,“操作”或“命令”指用户发给硬盘或安全硬盘的请求。不同的操作或命令对应不同的名称、参数、作用和返回值,为简明扼要的表示操作/命令的输入和输出,我们用记号Tetval1, retval2,…,retvalK一CmdName Carg1, arg2,…,argN[,Opt1, opt2,…,optM])来表示一个名为CmdName的命令/操作,其包括有N个必要参数、M个可选参数和K个返回值。
[0048]在本说明书中,“会话”指的是用户和安全硬盘之间、在一定时间段内的受保护的交互。一般来讲,会话以用户登录为开始、用户登出为结束,期间包括来自这一用户的多个请求以及主机返回的响应。会话使得安全硬盘可以判断一个接收到的操作是否来自某个合法用户,并能验证该操作的合法性。
[0049]以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
[0050]图1示出了本发明实施例安全硬盘的结构示意图。本实施例的安全硬盘主要包括新用户注册模块101、会话建立模块102、访问控制模块103和会话终止模块104。下面结合图2(本实施例安全硬盘的访问控制方法的流程示意图)分别详细地阐述各个模块的工作原理。
[0051]第一,新用户注册模块101,其对应图2中的新用户注册步骤201。新用户注册模块101用于响应用户发送的注册命令,并返回对应用户的用户身份标识。这里,注册命令包括利用根密钥加密的用户密钥。使用根密钥对用户密钥进行加密保证了新用户注册的安全性。
[0052]具体地,根密钥是硬盘在出厂时由厂商初始化或硬盘交付客户时由客户首次设置的。作为后续所有安全机制的信任链的基础,硬盘根密钥必须是安全的,只有客户授权的人员知道,比如管理员。将根密钥记为rkey。管理员(新用户)可以向硬盘发送用户注册命令,用户注册命令的参数为利用根密钥加密后的用户密钥,返回的是新注册用户的用户身份标识(ID)。可将用户注册命令定义为:uid — Register (Encryptrkey (ukey)),其中uid是用户身份标识,ukey是用户密钥,Encryptriiey是以rkey作为密钥的加密函数,该加密函数是一种密码学操作。该命令对应图2中的“用户注册命令(参数:利用根密钥加密的用户密钥)”和返回的“用户身份标识”。硬盘在接收到用户注册命令后,利用存储的根密钥解密出用户密钥,并为新用户分配一个用户身份标识,记录这个用户身份标识和用户密钥的匹配关系。为此,硬盘中维护一个用户信息表,字段是UID和UKEY,分别对应于用户身份标识和用户密钥。在接收到用户注册命令后,硬盘会在用户信息表中插入一条新的记录,对应于注册的新用户。
[0053]第二,会话建立模块102,其对应图2中的会话建立步骤202。会话建立模块102设置为验证用户的身份的合法性;在确定用户的身份合法时建立会话,并将确定的对应会话的会话标识和会话密钥存储在会话信息表中。优选地,会话建立模块102具体设置为利用挑战-应答机制验证用户的身份的合法性。
[0054]具体地,挑战-应答机制就是通过让用户使用其用户密钥加密一个随机数来证明它拥有这个用户密钥的事实,从而让服务方(安全硬盘)可以认证用户的身份。挑战-应答机制(也称为挑战-应答协议)保证了用户身份验证的安全性。这是因为:1)用户密钥没有被明文传输,不会被泄露;2)每次用户认证的应答由随机数决定,不受重放攻击影响;3)会话密钥是加密的,并只有用户和安全硬盘可以解密。这样,基于挑战-应答协议的会话建立完成时,只有用户和安全硬盘知晓会话密钥,保证了后续读/写操作可以用会话密钥进行验证。为了实现基于挑战-应答协议的会话建立,安全硬盘增加了两个新命令:挑战命令和应答命令。挑战命令定义为sid, rnd — Challenge (uid),其中uid是请求建立会话的用户身份标识,sid是即将建立的会话的会话标识,rnd是一个随机数,即所谓的“挑战”。该命令对应图2中的“挑战命令(参数:用户身份标识)”和返回的“会话标识,随机数”。应答命令定义为Response (sid, resp),其中sid是即将建立的会话的会话标识,resp是对随机数rnd的应答。该命令对应图2中的“应答命令(参数:会话标识,利用用户密钥加密的由随机数和会话密钥构成的字符串)”。只有当应答命令发送的响应resp匹配挑战命令收到的随机数rnd时,用户的身份才能得到验证,会话才能建立。这里,响应resp的合法值是Encryptukey (rndI skey),其中rnd是挑战命令返回的随机数,skey是用户为即将建立的会话随机选定的一个会话密钥。安全硬盘收到响应resp后,利用用户密钥ukey对resp进行解密,得到返回的随机数rnd和会话密钥skey,若resp返回的随机数与挑战命令返回的随机数相等,那么用户的身份认证通过,建立标识为sid的会话,这个新建会话的会话密钥为skey ;否则会话建立失败。为了保存当前所有合法会话的信息,安全硬盘中维护一个会话信息表,包括SID,UID和SKEY等字段,分别表示会话标识、会话发起者的用户身份标识和会话密钥。会话建立成功,则向会话信息表插入一条相应的新记录。
[0055]第三,访问控制模块103,其对应图2中的访问控制步骤203。访问控制模块103设置为接收用户发送的读/写请求,并在确定读/写请求所属的会话有效、确定读/写请求涉及的参数完整且确定用户有权访问读/写请求涉及的存储空间时,允许读/写请求。
[0056]进一步地,访问控制模块103包括接收单元、第一验证单元、第二验证单元和访问控制单元。
[0057]接收单元设置为接收读/写请求,读/写请求包括用户身份标识、基本参数和验证参数。第一验证单元设置为根据验证参数和会话信息表,确定读/写请求所属的会话的有效性以及基本参数的完整性。第二验证单元,设置为根据用户身份标识、验证参数和权限信息表,确定用户是否有权访问读/写请求涉及的存储空间。访问控制单元,设置为在第一验证单元确定会话有效且基本参数完整,第二验证单元确定用户有权访问存储空间时,允许读/写请求。
[0058]具体地,参照图2,用户向安全硬盘发送读/写请求,安全硬盘接收该读/写请求,并利用访问控制模块103决定这些读/写请求是否可以被授权:如果是,则执行读/写操作;否则拒绝执行。更具体来说,安全硬盘的访问控制检查包括两步:第一步,验证命令的数据完整性以及会话有效性;第二步,检查操作是否有权访问涉及到的扇区。
[0059]详细地,所谓验证数据完整性,
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1