制作一个自毁式 U盘
BALI @ 2023.12.12 , 07:04 上午我们都知道,保护数据最安全的方式就是把它炸掉,对吧?
当然,对于大多数人来说,真正的答案是加密。但是,请考虑以下情况:在某些国家,做一名记者是危险的。现在假设你正在调查其中一个国家的政治腐败;在这种情况下,如果你被发现持有加密驱动器,可能就不安全了。
我的想法是制作一个 USB 驱动器 (U盘),它在外观和功能上都与普通 USB 没有任何区别。但有一个不同之处:如果你正常插入它,它不会产生任何数据。
那么,一个理智的人在插入普通闪存驱动器之前绝不会做什么?舔手指。
没错,这个驱动器将配备隐藏的电极,用于测量插入手指的电阻。手指的电阻约为 1.5MΩ,而湿手指的电阻约为 500kΩ。当设备启动时,如果电极对之间的电阻高于阈值,驱动器将显示空白。这不是最漂亮的设计,但它在可笑性和实用性之间取得了很好的平衡。那些有洁癖的人可以将手指放在水龙头下冲洗。
设计
闪存驱动器在电气上是一个相对简单的设计。对于第一个版本,我将瞄准 USB2.0 速度。
典型的闪存驱动器由连接到 NAND 闪存芯片(红色)的 USB 控制器(蓝色)组成。闪存芯片存储所有数据,而控制器则包含 USB 前端和与闪存芯片交互的逻辑。为了实现我想要的功能,我将使用一个带有小型微控制器的 USB 控制器,在必要时读取电极并抑制闪存芯片。
设计硬件时,了解组件经济学至关重要。闪存芯片是通用的,可以用在任何东西上:智能电视、电脑 BIOS、汽车,等等。然而,USB 控制器是针对闪存驱动器的特定应用组件。
当市场巨大且你需要压缩利润时,就会出现特定应用的集成电路。全球可能只有几十家闪存驱动器公司,而且工程技术已经停滞不前。大部分销量来自几家拥有极低利润率的巨型工厂。没有哪个炙手可热的闪存驱动器初创公司会颠覆这个市场。Digikey 或 Mouser 不是寻找特定应用组件的地方。
我遍历了互联网上关于闪存驱动器拆解的文章,搜索了芯片上的文本,并找到了一座金矿:一个闪存驱动器数据库,列出了几个 USB 控制器 IC 的零件号。然后,我检查是否可以获得数据表和供应商 - 我最终选择了 SM3257EN。
这个芯片看起来应该可以胜任这项任务;数据表写得很好,信息也很充分。我在 Kicad 中创建了零件,并将其与 NAND 闪存芯片和 USB 插座一起导入。
现在,我必须让设备在用户不舔手指的情况下隐藏数据。
USB 控制器的芯片使能 (CE) 信号旨在直接连接到闪存芯片。当该信号为低电平时,闪存芯片将被使能。我将使用带有我的控制信号的 “或非门” 来强制关闭内存。
当我的抑制信号为高电平时,无论 CE 的状态如何,都没有关系。门的输出将为高电平,这将禁用闪存。
至于控制抑制信号本身,我将使用 ATTINY24 和连接到电极的跨导放大器。
使命
我试图构建可以解决问题并建立社区的硬件。如果你认为你可能需要本文中提到的硬件或想提供帮助,我非常乐意听取你的意见。(所有代码都在 Github 上)
本文译自 Interrupt Labs,由 BALI 编辑发布。