本帖最后由 Essence 于 2019-6-5 17:51 编辑
在金士顿KC2000的产品标签上,有一行PSID物理安全标识,代表着它能够支持全盘自加密功能。与使用软件进行的硬盘加密相比,开启硬件自加密不影响硬盘性能,并且具备良好的数据安全性。
为什么需要Opal自加密:
传统的ATA加密将密钥直接存储在硬盘当中,所以PC3000等一些底层硬盘工具有机会直接偷到密钥来解锁硬盘,这样的加密方式是不安全的。
为了保障密钥的安全,Opal自加密硬盘的密钥(Media Encryption Key,MEK媒体加密密钥)本身也以加密的形式进行存储。即便拆掉硬盘中闪存直接读取其中的信息,也无法获得真正的加密密钥,无法解密其中数据。MEK由硬盘主控自行随机生成,并且始终只在硬盘内使用、无法被外部操作系统直接读取。
用来加密MEK的是名为Key Encryption Key(KEK,密钥加密密钥)的另一组密码,它是由用户输入的密码经过处理产生的。开机时通过KEK解密MEK,得到的真实数据加密密钥,完成硬盘解锁。MEK只存储在易失性存储器(如DRAM缓存、SRAM缓存)当中,一旦电脑关机、硬盘断电,MEK也就随之消失。所以Opal加密后的硬盘会随着关机而重新进入锁定状态。
使用sedutil设置自加密系统盘:
在获得MEK解锁硬盘之前,整个硬盘的数据都处于被加密状态,所以开机时需要通过一个“影子MBR”来接受用户输入密码,再通过用户密码产生KEK,通过KEK解密出MEK,完成硬盘解锁。
接下来下载sedutil工具,选择RESCUE64img.gz,通过WinRAR等压缩软件将其中的img文件解压出来。
使用Win32DiskImager将img镜像文件写入到优盘当中。接下来的过程会比较繁琐,但是只要仔细认真,一切都会比较顺利。
使用这张制作好的管理U盘引导开机,在提示DriveTrust login:时,输入root并回车。
- Starting logging:OK
- Initializing random number generator… done.
- Starting network:OK
- ****************************
- *DTA sedutil rescue image RESCUE64-1.15.1.img
- *
- *Login as root,there is no password
- *****************************
- DriveTrust login:root
复制代码
输入并执行sedutil-cli –scan,会自动扫描电脑内安装的硬盘,在/dev/nvme0后方出现的2代表KC2000支持Opal 2标准。如果硬盘不支持Opal加密,这里显示的结果为NO。
- #sedutil-cli --scan
- Scanning for Opal compliant disks
- /dev/nvme0 2 KINGSTON SKC2000M81000G S2681101
- /dev/sda No
- No more disks present ending scan
复制代码
输入命令linuxpba并用debug作为密码来测试PBA,验证结果是否为OPAL NOT LOCKED:
- #linuxpba
- DTA LINUX Pre Boot Authorization
- Please enter pass-phrase to unlock OPAL drives: *****
- Scanning....
- Drive /dev/nvme0 KINGSTON SKC2000M81000G is OPAL NOT LOCKED
复制代码
接下来输入sedutil-cli –initialsetup debug /dev/nvme0启用锁定和PBA:
- #sedutil-cli –-initialsetup debug /dev/nvme0
- takeOwnership complete
- Locking SP Activate Complete
- LockingRange0 disabled
- LockingRange0 set to RW
- MBRDone set on
- MBRDone set on
- MBREnable set on
- Initial setup of TPer complete on /dev/nvme0
复制代码
输入并执行下面多个命令:
- #sedutil-cli --enablelockingrange 0 debug /dev/nvme0
- LockingRange0 enabled ReadLocking,WriteLocking
- #sedutil-cli --setlockingrange 0 lk debug /dev/nvme0
- LockingRange0 set to LK
- #sedutil-cli --setmbrdone off debug /dev/nvme0
- MBRDone set off
- #gunzip /usr/sedutil/UEFI64-1.15.1.img.gz
- #sedutil-cli --loadpbaimage debug /usr/sedutil/UEFI64-1.15.1.img /dev/nvme0
- Writing PBA to /dev/nvme0
- 33554432 of 33554432 100% blk=20382
- PBA image /usr/sedutil/UEFI64-1.15.1.img written to /dev/nvme0
复制代码
测试PBA:密码使用debug。验证PBA是否解锁了驱动器,正常结果应为OPAL Unlocked。
- #linuxpba
- DTA LINUX Pre Boot Authorization
- Please enter pass-phrase to unlock OPAL drives: *****
- Scanning....
- Drive /dev/nvme0 KINGSTON SKC2000M81000G is OPAL Unlocked
复制代码
实装真正的密码:
包括SID和ADMIN1密码,两个密码可以不一致。下面的zhimakaimen请用自己的密码代替,这里只用作演示用。不建议使用这个弱密码。
- #sedutil-cli --setsidpassword debug zhimakaimen /dev/sdc
- #sedutil-cli --setadmin1pwd debug zhimakaimen /dev/sdc
- Admin1 password changed
复制代码
通过下面的命令来验证没有输错密码。
- #sedutil-cli --setmbrdone on zhimakaimen /dev/nvme0
- MBRDone set on
复制代码
输入poweroff回车,让电脑关机。硬盘将使用OPAL锁定。重新启动系统时它将启动PBA。
再次开机时从NVMe SSD引导,系统将提示:
- DTA LINUX Pre Boot Authorization
- Please enter pass-phrase to unlock OPAL drivers:
复制代码
输入之前设定的密码zhimakaimen回车即可解锁硬盘并自动重启。在电脑关机前,硬盘会保持解锁状态。重启不受影响,大家可以先从KC2000引导,然后重启选择Windows系统安装盘开始系统安装。
性能测试:
系统安装完毕后进行一些简单的性能测试,可以看到加密未对KC2000的性能产生影响,这是硬件加密的一个优势:实时加密解密过程不需要消耗电脑CPU资源。
未加密时作为系统盘PCMark 7存储测试评分:6128
开启加密后作为系统盘PCMark 7存储测试评分:6129
彻底解锁并停用Opal加密:
- #sedutil-cli -–disableLockingRange 0 zhimakaimen /dev/nvme0
- LockingRange0 disabled
- #sedutil-cli –-setMBREnable off zhimakaimen /dev/nvme0
- MBRDone set on
- MBREnable set off
复制代码
解锁后硬盘内文件正常保留。更多sedutil使用方法可参考https://github.com/Drive-Trust-A ... crypting-your-drive
|