[0039] 下面根据附图对本发明进行详细说明。本发明的流程如附图图1所示,具体步骤如下:
[0040] 一种实时动态认证的固态硬盘,内部设置有控制器,且安装有安全分区操作系统。安全分区操作系统设置在固态硬盘具有只读属性的系统分区中。固态硬盘的内部存储有合法用户信息、硬盘公钥和硬盘私钥。
[0041] 安全分区操作系统包括BIOS身份认证模块、随机数生成模块、双向动态认证模块和定时双向验证模块。BIOS身份认证模块用于配合主机进行主机BIOS认证。随机数生成模块用于通过随机数生成算法来生成随机数,用以作为密钥或校验信息使用。控制器能够与主机通信发送或接受密钥或加密信息。双向动态认证模块用于在固态硬盘完成身份认证后,向主机发送作为校验码的随机数和硬盘唯一码,接收主机发回的校验码和LICENSE信息;双向动态认证模块和主机各自将接收到信息和自身存储的信息进行比对,实现动态的双向认证。
[0042] 定时双向验证模块用于主机读取固态硬盘安全分区前以及读取的过程中,定时进行主机发送作为密钥的随机数,接收主机发出的主机端消息摘要,并检验主机端消息摘要是否正确;主机端消息摘要是主机保存的经加密的用户名和密码。
[0043] 能够与该固态硬盘相互动态认证的主机中存储有主机公钥和主机私钥。主机中安装有可信用户认证模块。可信用户认证模块用于实施对固态硬盘的身份进行认证。
[0044] 如图1所示,使用前述固态硬盘的一种多用户的硬盘实时动态认证方法,具体如下:
[0045] 步骤1:固态硬盘进行开机BIOS认证。本步骤通过在固态硬盘安全分区操作系统启动前,引入主板与固态硬盘间的固态硬盘开机BIOS(Basic Input Output System,基本输入输出系统)认证保护机制,确保主板BIOS引导的是授权的固态硬盘上的安全分区操作系统;该流程如附图2所示,具体如下:
[0046] 1‑1.主机BIOS开机自检及初始化完成后,BIOS读取固态硬盘的具有只读属性的系统分区中的安全分区操作系统,并在其上运行BIOS身份认证模块。
[0047] 1‑2.固态硬盘开机BIOS认证模块启动后,用户向固态硬盘输入用户认证信息;能够通过固态硬盘开机BIOS认证的合法用户信息已事先创建。合法用户包括管理员和普通用户两种,设置不同的固态硬盘开机BIOS认证密码,拥有不同的存储空间物理分区的访问权限。
[0048] 1‑3.固态硬盘接收用户认证信息,并判断信息的正确性;若输入的用户认证信息错误,则拒绝用户对内部存储空间的访问;若输入的用户认证信息正确,引导安全分区操作系统执行,该操作系统加载进主机并接管系统控制权。
[0049] 步骤2:用户输入密码,系统判断密码是否正确,并根据结果执行相应操作,如果密码正确,则打开对应安全分区,否则系统停机。
[0050] 本步骤中,主机与固态硬盘动态双向认证是主机操作系统和固态硬盘建立可信互连的过程。在认证过程没有完成或失败时,固态硬盘上的存储资源对操作系统是封闭的,只有当认证通过后,具有访问权限的用户才能激活和访问安全分区。主机操作系统与固态硬盘的双向动态认证是操作系统与固态硬盘进行相互确认的过程,固态硬盘对主机操作系统的动态认证是为了确保固态硬盘上安装的是可信的安全分区操作系统,防止通过非法安装操作系统达到非授权访问的目的。主机操作系统对固态硬盘的动态认证是为了确保操作系统运行于安全固态硬盘之上,防止非授权存储设备随意接入。该流程如附图3所示,具体过程如下:
[0051] 2‑1.主机操作系统向固态硬盘中的控制器发出认证请求。
[0052] 2‑2.固态硬盘中的控制器接收到认证请求后,向主机操作系统发送硬盘公钥。
[0053] 2‑3.主机操作系统接收到硬盘公钥后,向固态硬盘中的控制器发送主机公钥。
[0054] 2‑4.固态硬盘中的随机数生成模块产生并保存一个第一随机数;之后固态硬盘使用主机公钥对该第一随机数和硬盘唯一码进行加密,得到第一加密信息,并将第一加密信息发送给主机操作系统。
[0055] 2‑5.主机操作系统用主机私钥对第一加密信息进行解密,获得固态硬盘的硬盘唯一码和生成的第一随机数。主机操作系统利用硬盘唯一码对主机操作系统的LICENSE(许可证)进行激活认证;激活成功则实现固态硬盘与主机操作系统的软硬件绑定;其它正常启动过程中利用接收到的硬盘唯一码与主机操作系统本地存储的硬盘唯一码进行校验认证;若认证失败,则主机操作系统停止对固态硬盘的读取;若认证成功,则主机操作系统用硬盘公钥对接收到的第一随机数、LICENSE信息加密成第二加密信息,并将第二加密信息发送到固态硬盘内的安全分区操作系统。
[0056] 2‑6.固态硬盘内的安全分区操作系统用硬盘私钥对第二加密信息进行解密,对解密出的第一随机数、LICENSE信息与本地存储的第一随机数、LICENSE信息进行校验认证;若认证失败,则退出,拒绝用户访问固态硬盘的内部空间;若认证成功,则主机操作系统对固态硬盘双向动态认证成功;固态硬盘将认证结果发送给操作系统;操作系统接收认证结果,继续后续操作。
[0057] 步骤3:操作系统与固态硬盘定时进行双向验证,如果验证通过,则启动可信用户实时认证服务,否则停机。
[0058] 本步骤中,在主机操作系统启动的同时,启动一个作为操作系统服务程序的固态硬盘可信用户认证模块。在用户读写固态硬盘的安全分区前,需要进行安全固态硬盘授权用户的认证,实时动态地对当前用户的真实性进行认证,防止非授权用户对固态硬盘的访问。由于在认证过程中用户身份信息基本上是不变的,很容易被恶意软件侦测和破解,造成用户身份和安全分区数据泄露的危险,因此,需要对认证过程中的身份信息进行动态加密保护。对于每次的认证过程,作为加密密钥的随机数是动态生成的。经过随机数加密的用户名和密码每次都不相同,有效避免被重放攻击等恶意破解的风险,提高存储系统的安全性。该流程如附图4所示,具体如下:
[0059] 3‑1.主机内的可信用户认证模块获取用户名和密码,同时向固态硬盘中的控制器发出认证请求。
[0060] 3‑2.固态硬盘接收认证请求,并产生第二随机数,发送给主机内的可信用户认证软件,同时保存该第二随机数于寄存器中,并启动一个计时器,用于记录请求的时间间隔。
[0061] 3‑3.主机内的可信用户认证软件将接收到的第二随机数作为密钥,对用户名和密码进行加密,生成主机端消息摘要,并发送给固态硬盘中的控制器。
[0062] 3‑4.固态硬盘使用第二随机数作为密钥对本地存储的用户名和密码进行加密,生成硬盘端消息摘要,并将硬盘端消息摘要与接收到的主机端消息摘要进行对比校验。若校验一致,则用户认证成功,固态硬盘内的安全分区操作系统打开该用户对应的安全分区;若校验不一致,则用户认证失败,固态硬盘内的安全分区操作系统隐藏所有内部存储空间,并将认证结果发送给可信用户认证软件。
[0063] 3‑5.启动心跳包,按照步骤3‑1至3‑4中的方法,以预设的时间间隔进行定时进行信息验证。当出现认证失败的情况时,固态硬盘内的安全分区操作系统隐藏所有内部存储空间,并将认证结果发送给可信用户认证软件。