安全
报告安全问题
Section titled “报告安全问题”请使用 GitHub Security Advisory 的 “Report a Vulnerability” 入口。在公开之前,它一直是私密的。
你会收到一封回信说明后续如何推进,之后也会同步修复的进展。这里没有安全团队,也没有承诺的响应时限 —— 如果一周内没有收到答复,请在同一线程里再问一次。
mtty 是一个终端:它以你的权限、在你机器上运行你让它运行的程序。它不做沙箱隔离,也不打算做。 由此带来两个后果值得说明,因为在这两处,边界是刻意的设计,而不是疏漏。
控制面会在你的 shell 里执行命令
Section titled “控制面会在你的 shell 里执行命令”MTP —— mtty-cli,以及任何实现该协议的程序 —— 可以在窗格里启动命令。这本来就是它的用途,也正是
为什么会有令牌这个东西。
- 套接字是仅属主可访问的每用户端点(权限 0600;Windows 上为命名管道)。本机的其他用户连不上 ——
这一点之所以重要,正是因为
pane.run会在你的 shell 里执行命令。 - 要用 TCP 提供服务必须设置
remote-listen,而未设MTTY_MTP_TOKEN时它会拒绝启动 —— 返回 错误,而不是给个警告然后继续。启用之后每个请求都必须携带令牌,还可以用MTTY_MTP_ALLOW进一步 收窄允许的能力。
令牌泄露,是你在保管的秘密出了问题,不是 mtty 的漏洞 —— 和 SSH 私钥泄露同一性质。真正算漏洞的, 是存在一条不需要令牌就能到达控制面的路径,或者其他用户能打开的套接字。
私钥在这里只被读取,不被使用
Section titled “私钥在这里只被读取,不被使用”mtty-keys 解析 OpenSSH 与 PuTTY .ppk 两种格式的私钥,并在两者之间重新编码。它不用这些
密钥做签名或解密:整个工作区没有任何私钥运算,而 SSH 连接本身是由你自己的 OpenSSH 建立的。
密钥文件和你在其中输入的密码,都不会离开这台机器。
不在受理范围内
Section titled “不在受理范围内”| 类别 | 理由 |
|---|---|
| 你让 mtty 运行的程序自身的行为 | 它以你的身份运行 —— 终端本来就是这样 |
| 控制面令牌泄露 | 属于保管秘密的责任,见上 |
| 你自行开启并保持可达的 TCP 监听 | remote-listen 需手动开启,且未认证时拒绝启动 |
| 你连接到的远程主机上的问题 | 那是那台主机的安全,不是 mtty 的 |
Synced from oxdingzg/mtty@b65a3d1.