概要
由于近期在开发Sed自加密硬盘,因此记录一下走过来的坑。首先是先学习TCGstorageapi这个项目,但是这个项目只是模拟了一个mock环境,并没有和底层接触就完成了测试,其次随着学习的深入找到了TCGstorageapi项目的分支里有前辈完善了底层代码,部署完发现该项目需要硬盘和主板都支持TCG协议才能正常通信,为了避开主板支持TCG这个限制,又找到SedUtil,该项目可以避开限制与Sed硬盘交互。另外,Sedutil这个项目在github上可以直接下载二进制文件,下载完成就可以直接调用
整体架构流程
技术名词解释
硬件自加密这个概念比较冷门,一般用于企业当中,用于保护数据的安全
- SED(Self-Encrypting Drive):一种具备硬件加密功能的存储设备。SED在写入数据时自动加密,在读取数据时自动解密,这些操作都是由驱动器内部的加密引擎完成的,不需要操作系统或应用程序的干预。
- TCG(Trusted Computing Group):一个行业标准组织,致力于开发和推广硬件和软件安全标准。TCG 制定了一系列与数据安全相关的标准,其中包括 Opal 和 Enterprise 标准。
- Opal 1:加密协议最初的版本,定义了基本的加密和管理功能。它包括用户身份验证、加密密钥管理和访问控制等功能。
- Opal 2:Opal 2 是 Opal 1 的增强版,增加了更多的功能和灵活性。Opal 2 支持更复杂的访问控制策略、多个用户和角色、以及更强大的管理功能。
- Enterprise:Enterprise标准是TCG为企业级存储设备制定的另一个标准,主要针对大规模存储系统和企业环境的需求。与 Opal 标准相比,Enterprise 标准侧重于拓展性与集成度。
技术细节
Sedutil命令指南
指令类型 | 用途 |
---|---|
scan | 判断现有磁盘有哪些支持自加密模式 |
isValidSED < device > | 判断device支持哪种模式(Opal1,Opal2,Enterprise,No) |
query < device > | 显示设备的Discovery 0响应,包括硬盘的基本信息,TPer属性和TPer与Locking功能 |
listLockingRange <0…n> < password > < device > | 列出所有锁定范围,0 = GLobal 1…n = LRn |
rekeyLockingRange <0…n> < password > < device > | 重新设定锁定范围,0 = GLobal 1…n = LRn |
setBandsEnabled | 为所有锁定范围设置为启用 |
setBandEnabled <0…n> < password > < device > | 为部分锁定范围设置为启用 |
eraseLockingRange <0…n> < password > < device > | 清除锁定范围 |
setupLockingRange <0…n> < RangeStart > < RangeLength > < password > < device > | 设置新的锁定范围 |
initialSetup < SIDpassword > < device > | 为设备设置SID和Admin1的密码 |
setSIDPassword < SIDpassword > < newSIDpassword > < device > | 为SID更改密码 |
setAdmin1Pwd < Admin1password > < newAdmin1password > < device > | 为Admin1更改密码 |
setPassword <oldpassword, “” for MSID> < userid > < newpassword > < device > | 为使用者更改密码 |
setLockingRange <0…n> <RW\RO\LK> < Admin1password > < device > | 设置锁定范围的状态 |
enableLockingRange <0…n> < Admin1password > < device > | 使能一个锁存范围 |
disableLockingRange <0…n> < Admin1password > < device > | 关闭一个锁存范围 |
setMBREnable <on\off> < Admin1password > < device > | 启用\禁用 MBR shadow |
setMBRDone <on\off> < Admin1password > < device > | 启用\禁用 MBR Done |
loadPBAimage < Admin1password > < file > < device > | 将文件写入MBR Shadow area |
revertTPer < SIDpassword > < device > | 将设备设置回出厂默认值 |
revertNoErase < Admin1password > < device > | 停用锁定SP,不擦除数据 |
yesIreallywanttoERASEALLmydatausingthePSID < PSID > < device > | 使用PSID擦除所有数据来恢复设备 |
printDefaultPassword < device > | 打印MSID |
小结
今天刚布置完测试环境,简单测试了sedutil工具自带的几种指令,后续会带来更多的经验,未完待续!