Linux桌面用户有个共识:好用的剪贴板管理器要么是用Electron写的内存怪兽,要么功能简陋到让人怀疑人生。一位开发者在Kali Linux上找了一圈,发现市面上所有选项都在踩他的红线——联网、臃肿、或者根本不安全。于是他决定自己动手,用Python写了一个零依赖的原生工具。
四个月后,DotGhostBoard v1.4.0 "Eclipse"发布了。这个版本只做一件事:把剪贴板变成加密保险箱。AES-256-GCM、60万次PBKDF2迭代、防逃逸锁屏、隐身模式、安全删除——这些功能塞进一个PyQt6应用里,体积依然轻到可以忽略不计。
加密方案:为什么选GCM而不是CBC
开发者「ghost」在代码注释里写得很直接:他想要的是"篡改即崩溃",而不是"篡改可能被发现"。AES-256-GCM(伽罗瓦/计数器模式)自带认证标签,任何密文被改动一个字节,解密时都会直接抛异常。这比传统的CBC模式+单独HMAC要干净得多,也少了一次数据遍历。
密钥派生用了PBKDF2-HMAC-SHA256,迭代次数拉到60万次。这个数字不是拍脑袋定的——OWASP 2023年推荐的最小值就是60万,专门用来对抗GPU暴力破解。密码本身从不存储,只存一个加密后的验证令牌。换句话说,连开发者自己都拿不到用户的明文密码。
盐值文件放在~/.config/dotghostboard/eclipse.salt,256位随机数,每次安装独立生成。整个加密流程的代码不到80行,没有外部依赖,除了Python的cryptography库。
锁屏设计:Escape键被物理屏蔽了
大部分应用的"锁定"是个笑话——按个Esc就能退出。Eclipse的锁屏是frameless窗口,键盘事件被底层拦截,Escape、Alt+F4、Ctrl+C全部失效。唯一解锁方式是输入主密码,或者杀掉进程(这会触发自动清除内存中的密钥)。
自动锁定支持N分钟无操作后触发,默认15分钟。这个计时器绑定的是系统空闲检测,不是简单的定时器——如果你一直在打字,它不会莫名其妙把你锁在外面。
「隐身模式」更极端:窗口从任务栏消失,Alt+Tab列表里也没有,只能通过全局热键呼出。开发者说他写这个功能是因为"有时候你在演示代码,不想让观众看到你的剪贴板历史里有什么"。
安全删除:为什么rm -rf不够
SQLite数据库删除记录后,数据其实还在文件里,只是被标记为可覆盖。Eclipse的"安全删除"做了三件事:先用随机字节覆盖原记录,再强制SQLite执行VACUUM压缩,最后对数据库文件本身做多轮覆写。
这个设计针对的是冷启动攻击和文件恢复工具。普通用户可能用不上,但如果你复制过API密钥或私钥,这功能就是保险栓。
应用过滤则是另一个实用细节:可以按进程名白名单或黑名单控制剪贴板捕获。比如你可以禁止记录来自密码管理器或终端模拟器的复制内容,减少敏感信息的暴露面。
单条目加密:秘密标记的隐藏逻辑
右键菜单里有个"标记为秘密"的选项。被标记的条目会用独立密钥二次加密,主密钥无法直接解密。这意味着即使有人拿到了你的数据库和主密码,没有二次密钥也读不了这些条目。
开发者解释这个设计的初衷:"有时候你想临时存个东西,但不想让它出现在常规历史里。"二次密钥派生时混入了条目创建时间戳,确保即使两条目内容相同,密文也不一样。
整个项目托管在GitHub,MIT协议开源。没有遥测,没有更新检查,甚至没有崩溃报告。代码结构很直白:core/crypto.py管加密,ui/目录放PyQt6界面,database.py封装SQLite操作。
「ghost」在发布帖里提了一个细节:他测试时发现KDE的剪贴板小部件会缓存系统剪贴板内容,即使DotGhostBoard已经加密存储。这是他控制不了的外部因素,但他还是在文档里加了一行警告——"如果你用KDE,建议关闭默认剪贴板小部件"。
这个警告没有解决方案,只是个事实陈述。Linux桌面的碎片化让安全工具很难做到端到端可控,但至少有人开始把这些问题摊开来说了。
热门跟贴