我想知道是否有可能即时加密和解密 USB 驱动器或使用某些微控制器或单板计算机(例如 Raspberry Pi)。
例如,我想加密我的 USB 驱动器,将其连接到电视并观看电影。我的电视不支持解密,所以我需要一个驱动器和电视之间的设备。
如果我能使用 Raspberry Pi 来实现此目的,那将非常方便。有什么建议吗?
答案1
USB 区分主机(即您的计算机)和设备(例如鼠标、USB 驱动器、网络摄像头)。这些通常不可互换(例外情况见下文)。大多数 x86 计算机仅支持在主机模式下工作。
您的用例需要两者——主机支持以连接到您的 USB 驱动器,以及设备支持以连接到您的电视。
单板计算机通常支持设备模式(如果 USB 端口可以在主机模式和设备模式之间切换,则通常标记为“USB OTG”)。
在 Raspberry 世界中,型号 A 和 Zero 似乎支持 USB OTG(https://learn.adafruit.com/turning-your-raspberry-pi-zero-into-a-usb-gadget/overview),但它们只有一个 USB 端口,因此在您的用例中无法使用它们。
其他支持设备模式并具有多个 USB 端口的 SBC 例如有 BeagleBoard(至少是“绿色”和“黑色 rev C”型号)、CubieBoard(至少是 CB 3(又名 CubieTruck),可能还有其他型号)和 Odroid C2。
另一个需要考虑的点是 SBC 是否能够足够快地加密/解密。
软件部分很简单:
安装 USB 驱动器并设置设备加密
警告:您打算如何处理加密密钥?将键盘和屏幕连接到 SBC?
将解密后的文件系统导出为 USB 块设备。Linux 内核将 USB 设备模式称为“USB gadget 模式”,并包含将文件或块设备导出为 USB 存储设备的驱动程序。