一位安全研究员通过利用智能灯泡存储禁书库,给智能灯泡开辟了新用途,创造出他们所称的“赛博朋克数字死信箱(即隐蔽的数字文件投放点)”。Rick Osgood在其个人博客上撰写了禁书图书馆背后的理念,并详细记录了制作可用原型的过程。同时,所有代码均为开源,可通过Codeberg获取。因此,任何感兴趣的人都可以购买搭载ESP32的智能灯泡,搭建属于自己的隐蔽禁书库。
Osgood指出,他一直在琢磨怎么让智能灯泡更有用。作为一个“对信息安全、开源软件、喜欢动手折腾、拆解东西感兴趣”的人,他从Ben Brown的短篇小说《图书馆》中获得了灵感,该小说讲述了用技术对抗企业的故事。在那个灵光一闪的时刻之后,Osgood知道自己想要制作一个小巧、廉价、赛博朋克风格的数字死信箱,设计上注重抗审查性和隐蔽性——通过重新编程智能灯泡来实现。
这位安全研究员选择了一款刷写了Tasmota固件的ESP32C3智能灯泡作为隐形库项目的起点。由于这个设备板载总共只有4MB空间,什么都要塞进去,包括操作系统,而且剩下的可用空间也没多少,Osgood花了很多时间和精力,想给它加一个microSD读卡器。然而,这番扩展折腾最后还是没成功,所以为了不把自己逼疯、图个方便,也为了保持隐蔽,他决定就接受总共4MB的容量限制算了。
奥斯古德接受了4MB的存储限制后,一个关键任务就是尽可能扩大文件系统现有的约320KB可用空间。经过一番优化和调优,他设法把总可用存储空间的大约一半留给了禁书。我们还假设用了某种文本压缩方式,好把有限的容量用到极致。
因此,当前的工作原型运行自定义的ESP32固件,搭建一个开放的Wi-Fi网络,并架设了一个服务器,智能灯泡的总容量还剩下大约一半。这意味着至关重要的LittleFS库分区可以塞进将近2MB的禁书。Osgood的示例文件使用了一些年代久远的公版书籍,通过一个CSS制作的目录页来呈现。然而,设置这些灯泡的人当然会想要添加自己的电子书。关于这方面的指导,以及更新管理设置等更多信息,都可以在链接的博客和Codeberg页面上找到。
禁书图书馆支持OTA(空中下载)更新。另外值得一提的是,无需云服务,也无需在设备上保存敏感凭证。请务必注意,修改智能灯泡固件可能会导致其“变砖”,因此请按照链接中的指南操作,风险由自己承担。最后,出国旅行时携带塞满禁书的智能灯泡也要当心。
热门跟贴