在不信任的机器上使用和敏感机器相同的公钥安全吗?
- 0次
- 2021-06-12 02:17:37
- idczone
以前买了很多小商家的 VPS,想用同一个公钥连接 SSH 比较方便。想问下美国服务器如果系统被商家做过手脚,使用同一个公钥有安全风险吗?
云环境下,即使没有私钥匙,云提供商一样能访问你的系统。
不信任的机器我肯定不会存放敏感数据,想问的是如果机器系统被动过手脚,有没可能通过我连接时发出的验证数据和公钥还原出什么隐私数据(包括但不限于连接发起者信息 / 私钥的部分信息)。
不会,公钥的设计就是可以公开,外观是“SSH 公钥”还是“GPG 公钥”还是你访问银行网站银行给你的“https 证书”是没有(原理上)区别的。
有能用公钥还原私钥的技术还开什么 vps,直接去银行提钱不爽么
现实应用中,公钥是可以公开给所有人的。
因为公钥是公开的,所以一般不会用私钥来加密数据,只用来解密数据。所以公钥公开是安全的。
估计 ssh 也有类似的动作,不会用私钥加密数据,所以应该是安全的 ..... 吧
能想到的风险就是使用同一个公钥可以关联同一个使用者。如果有匿名需求的话,最好不要使用公开过的公钥。
可以了解下非对称加密的基本原理
你 https 访问 google 就能拿到 google https 给你加密用的公钥,全球公开。公钥本来就是公开的,没有问题,以现在的算力也没人能从公钥反向出私钥的信息
然后 lz 既然都以 vps 的系统被动手脚为前提了,那作手脚的人哪还需要这么拐弯抹角。。。。。
感谢大家的回复,我知道公钥是无法还原私钥的,但是我想知道 SSH 连接过程中我发送的验证数据是否有可能泄露我的隐私呢?
@BeautifulSoap
如果服务器被做了手脚的话,服务器可以:
1. 知道操作的人是你
2. 知道你的所有操作
还有就是确保你连接服务器的时候如果对方的公钥(就是第一次链接某个服务器的时候让你 yes 的那个东西)改变了那么不要接受就行了
假如接受了,理论上可以做一些更多的攻击?但那个就不熟悉了,只要不接受就好
你都以系统被做手机为前提了那肯定能啊
我有一个问题,你会使用 github 上面其它人提供的一键脚本吗?
如果你会毫不犹豫的使用,仅仅是因为其它人都在用,也没人发现有安全问题,那么我觉得你大可对这些运营商放心,都是一个道理
敏感机器从来不用,测试机器也会先检查再用。
顺便感觉我刚才跑题了
你的原问题是“在不信任的机器上使用和敏感机器相同的公钥安全吗?”
那么只要确保不信任的机器的 fingerprint (就是刚才说的 ssh 要输 yes 的东西)没有问题,那么是安全的。
“不信任的机器”只能知道“你是你”,而无法在敏感的机器面前伪装是你
公钥等信息元素,就像任何信息元素一样,是可以被用作形成一个用户画像的。泄露的信息越多,用户画像越准确
但你总是要泄露的 不是么,就像你去商店买鞋子都是在泄露你的脚的尺码给商店人员
如果机器是不被信任的(比如公用机器)放一个公钥上去确实是安全的,你甚至可以 curl https://github.com/${username}.keys 拿到大家在 github 上设置的 ssh pubkey
ssh 上去也_往往_是安全的。但是注意要在 ssh 配置里面设置 ForwardAgent no,因为 ForwardAgent 可以用来偷东西。以及记住不要再不受信任的机器上放私钥 /输密码,因为你不知道目标计算机被动了什么手脚。
顺带提一句,ForwardAgent 不是可以直接偷走私钥,但是可以用你的私钥认证别的机器。但是这一点也足够棘手了,比如 ssh -T [email&看看你在 github 的用户名然后顺着搞破坏之类的。
ssh -v 看一眼好吗,发了什么数据都写着呢,你使用的客户端的信息,支持的加密方法,你的所有公钥,你的 ip 地址等等信息都会被发送
ForwardAgent 默认是 no
安全,公钥就是用来公开的。而且你还应该尽可能广的公开,多种渠道相互印证,避免中间人攻击。
github 可以直接下载登记的 ssh 公钥。
有个公字表示这个公开的密钥
安全
密钥交换过程不泄漏多余信息是基础啊,D-H 交换就已经可以做到各自秘密了
这不是公钥的问题,这是密钥交换问题,通常不会全部走非对称的,太慢了,SSH 也好,TLS 也好,都是现场交换一个足够强的对称密钥。
没有物理隔离没法谈安全,最坏的情况就是运营商在 VPS 的软硬件上动了手脚,那你的任何安全措施将没有意义。
除非 VPS 上仅走密文,比如 VPS 上做 TCP 转发 HTTPS 的流量,加密是在你本地的设备上进行的,解密是在远程网站服务器上进行的,VPS 仅走密文且没有解密能力。
或者障眼法,用非主流技术,让运营商看不懂来你在做啥。
不过另一个角度来看,你得评估你的隐私信息对外人来说有多高的价值,以及运营商专门做坏事的成本以及对自己品牌造成的风险(被发现后以后还做不做生意了),综合衡量得出一个运营商做坏事的几率,如果几率较高不能接受就不用,但如果几率较低可以考虑忽略风险。