SSD 如何实现与主机唯一对应,当定制 SSD 被插入非法主机时自动销毁数据 最近,实现了来自两个客户的真实需求,出于安全考虑,客户要求 SSD 与主机唯一对应,也就是说 SSD 只能在本机使用,当 SSD 被插入非法主机时,自动启动销毁程序,同时,主机必须可以正常使用其他任何一家公司的非定制化 SSD 。
一、项目需求描述
1) 主机接口: SATA 6Gbps
2) 尺寸: 2.5"
3) 容量: 4TB
4) 存储介质: MLC
5) 环境温度: -40°C ~ +85°C
6) SSD 只能识别唯一的主机 ;
7) 当 SSD 插入到其他主机时, SSD 启动自毁功能,将数据销毁;
8) 主机必须可以正常使用其他厂商的非定制化 SSD 。
二、总体架构设计
1) 主控使用瑞耐斯自主可控芯片,型号: RS3502-IT , SATA 6Gb 接口,单颗主控支持容量 2TB ,使用 2 颗主控组 RAID0 ;
2) 使用 Xilinx FPGA 做 RAID0 芯片,支持 Trim 功能;
(市场上的 RAID 芯片具备下面两个缺陷: a 、不能满足工业级温度需求; 2 、不带 TRIM 功能,会导致在 SSD 数据写满时才固态硬盘才开始做垃圾回收,在垃圾回收过程中,写入性能会大幅下降甚至会掉到 0MB ,此时,可能导致关键应用场景的应用失效)
3) 自毁功能:数据销毁可以实现物理烧毁和逻辑销毁(任选或全选)两种方式;
4) 逻辑销毁功能可以实现 10 秒内的快速销毁,销毁后 SSD 可以继续在 “ 初始化 ” 操作后继续使用(数据全部丢失)或者 SSD 无法继续使用,必须返厂维修才可继续使用,但所有数据无法恢复;
5) 物理烧毁,是指在 SSD 被插入非法主机后,所有存储芯片被高压一一击穿,所有存储介质物理性损坏,任何手段都将无法恢复数据。
三、功能实现具体描述
1) 主机与 SSD 唯一对应的实现方式:
客户端主机 SATA 接口管脚定义不做任何更改,以确保其他普通 SSD 插入后可以正常工作。
硬盘增加一颗 FPGA 芯片(或单片机)利用 sata 空余 pin 脚实现硬盘和主板特征码的握手通讯,如果在 3 秒内(时间可以自由设定)握手不成功,则触发数据销毁功能。
对于普通硬盘由于空余 pin 脚没有定义,则不会与主板特征码进行握手,可以正常使用。
2) 一键自毁销毁的实现和结果
安全删除是由 IO 拓展芯片的 GPIO 动作,传送给主控芯片实施。信号下拉 3 秒安全删除功能被触发,无论是通过硬件或软件。控制器将擦除命令发送到闪存启动安全删除。
瑞耐斯可以对硬盘实现两种销毁方式:逻辑销毁和物理销毁。
2.1 逻辑销毁
逻辑销毁是指通过软件的方式将固态硬盘的数据进行删除、覆盖等操作,包括对加密 key 、固件、映射表等进行删除操作,逻辑销毁不会损坏存储介质。
快速删除的要求一般有如下几种,每种做法的固件实现方法不同:
2.1.1 删除后仍然可以在 OS 下看到盘符,格式化后仍然可以进行正常的读写操作,只是删除后的状态用 winhex 检查全部为 0xFF ;
这种删除方法必须要考虑的事项是:在执行删除过程中,如果 SSD 再次接收写命令,或者 SDRAM 中仍有未写入 Nand 的数据,在执行删除后,会继续向 SSD 中写入数据,用 winhex 查看会看到数据不全是 0xFF 。
解决办法可以有两种:一是在执行数据销毁前,先清空 SDRAM 中的数据,避免缓存数据在执行安全删除之后写入 Nand Flash ;二是,在执行销毁时,开启写保护功能,直到 SSD 第二次上电为止,这样就可以避免执行销毁之后接收到的写命令将数据写入到 SSD 。
2.1.2 删除后 SSD 无法被系统识别,当然,也无法用软件来查看 SSD 内部数据状态。
2.2 物理销毁
执行物理销毁 SSD 上的闪存颗粒将完全被烧穿:
2.2.1 瑞耐斯独特的设计思路,确保 45 秒以内可以烧毁所有的闪存芯片,,不存在个别芯片无法销毁的情况。
2.2.2 闪存被烧毁是彻底摧毁每个颗粒中的所有的 Die ,而不是仅仅烧毁 IO 接口,如果仅仅烧毁 IO 接口,那么,仍然可以通过芯片打磨,将存储数据的 Die 重新布线后读取数据。
2.2.3 在执行销毁的过程中如果被拔掉电源,重新上电后,仍然继续执行未完成的烧毁,而不会终止。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69997038/viewspace-2765598/ ,如需转载,请注明出处,否则将追究法律责任。