隐私
为什么 Kamo 从不记录你的键盘
一款读取按键的录屏软件,离键盘记录器只差一项配置。这篇讲讲为什么 Kamo 只监听鼠标,以及我们如何确保它一直如此。
· 阅读约 3 分钟 · 作者:Doug Siqueira
有些录屏软件会在屏幕上显示你按下的键:一个小浮层,写着 ⌘K 或 Ctrl+S。对教程来说,这是个不错的点缀。Kamo 不做这个,以后也不会做。原因如下。
录屏软件什么都看得见
要显示你的快捷键,应用就必须在 整个系统范围 内监听你的键盘,在每一个应用里,在录制的全过程中。这意味着它也能看到你的密码、你的消息,以及你在另一个窗口里输入的任何内容。浮层也许只显示快捷键,但应用收到的是全部。
一款读取键盘的录屏软件,离变成键盘记录器只差一个 bug,或者一次糟糕的更新。开发者一眼就能看出这一点,他们的担心完全正确。我们很早就决定:Kamo 要靠“根本做不到”来赢得信任。
Kamo 监听的是什么
自动缩放只需要鼠标:它往哪儿移、你什么时候点击、什么时候滚动。所以 Kamo 只记录这些,写在每个项目里一个叫 events.jsonl 的文件中。你可以打开它自己看。
在 Windows 上,Kamo 的捕获助手安装的是一个 只监听鼠标 的钩子。整个应用里没有任何键盘钩子。
我们如何保证它一直如此
写在 README 里的承诺,很容易一不小心就被打破。所以这条规则由代码强制执行:
- CI 中的守卫。 Kamo 的每一次改动都会运行一项检查,只要在代码里发现系统级的键盘 API,构建就会失败。
- 被禁用的库。 一个很流行的 Electron 输入库被排除了,因为它在安装鼠标钩子的同时也会安装键盘钩子。
- 严格的文件格式。 读取
events.jsonl的代码会拒绝任何包含未知字段的行,所以键盘字段以后也没法偷偷混进来。
Kamo 唯一会在全局响应的按键是停止快捷键 Ctrl+Shift+2,而且只在你录制时注册,这样你在任何应用里都能停止。你在 Kamo 自己窗口里按的键(空格播放、Esc 取消)只是应用的界面操作,不是捕获。
这对你意味着什么
- Kamo 不可能泄露你输入的内容,因为它从来就没拿到过。
- 屏幕上看得见的东西 仍然会出现在视频里。按下录制前,把机密内容、密码管理器和私密聊天都关掉。
- 代码是开放的。这一切你都可以亲自核实。
隐私不是我们事后加上的功能。它是一份 Kamo 不会做的事的清单。
