47 条回复  ·  4944 次点击
ryd994 小成 5 小时前
“只计算大小写英文+数字,组合就有 62 的 16 次方” 我不信你能记住任意 16 位纯随机密码。人能记住的信息量是有限的。你的 16 位密码大概率是包含了方便记忆的单词或者数字(比如日期),这些都会被优先穷举。 记不住怎么办?大部分人都会偷偷用笔记下来或者记在手机里,这就非常不安全。这一点对于多人访问的项目来说非常重要,因为你不能指望所有人都和你一样记性好。 ssh 密钥文件存在电脑里的话,那和 ssh 密码写下来一样不安全。但是 ssh 密钥还可以放到硬件密钥里,无法读取,只能用于握手。这就安全了百倍。 其次,密钥认证可以防止蜜罐。如果你有一台服务器被植入病毒。病毒完全可以修改 ssh 登入程序,偷偷记录密码,然后到你其他服务器上使用。但是密钥认证全程不传输密钥本身。密钥只是用来签名握手数据。 总之,密钥认证不仅更安全,还更方便。我反正是不可能背 64 位纯随机密码的。你爱背你背。
NonResistance 初学 5 小时前
op 认为 16<4096
allplay 小成 4 小时前
前面有人提到了密钥交换过程,怕楼主还没明白,再解释一下: 比如服务器是一个 http 协议的网页,你在上面输密码,密码明文传输过去,那这整个过程所有人都能看见。 为了保护这个输密码的过程,以及所有的数据传输,现在都用 HTTPS ,这个 HTTPS 本来就是公钥私钥体体制的呀。 这道理明白吧。 不仅登录要认证,传输内容也要加密。 ssh 同理,是先建立公钥交换的加密隧道,然后才给你输入密码的机会。你第一次登录服务器的时候,在输入密码之前,是不是有个问你是否信任服务器指纹的选项? yes no ?这就是服务器的公钥! 所以公钥机制你是回避不了的。
GeruzoniAnsasu 小成 4 小时前
密码:你先告诉我秘密以便证明身份 非对称加密体系: 我**不需要告知任何秘密**就能证明我的身份
allplay 小成 4 小时前
我理解公钥私钥只是一个更加复杂的密码 - 你这个理解从根本上是错误的。 公钥私钥的本意是解决加密通信密钥传输问题的。你登录服务器时,如果没有公钥首先建立加密通道(用户无感,所以你不知道)的话,那么你输入密码这个过程,本身就立马暴露了。
allplay 小成 4 小时前
如果没有公钥,你输入的密码必须明文传输给服务器,那么这时候,从你家出去,在几百公里的线路上,经过 n 个交换机路由器,任何人都可以大摇大摆地窃听你传的那一段你以为很强的!多位的明文是什么。可笑不。 从历史上,在公钥体系建立起起之前,商业信函的很大一部分是在分发密钥,纸质打印的密码。这样才能安全地(彻底安全吗?)把密码告诉对方。
szdosar 小成 3 小时前
密码难不难猜,只是是否 [安全] 的衡量标准其中之一。同时还有管理便捷和易实现性,也是很重要的安全考量指标之一。每换一个密码,成本太高,要公告所有应该知道密码的人
aulayli 小成 3 小时前
那我问你,你用复杂的长密码你记的住吗?如果记不住你是不是要把密码保存哪里?复杂的长密码你能保证每次都手动输入不用复制粘贴吗?密码验证的原理还需要把密码发送到服务器进行验证,这些环节是不是增加了很多泄露的风险。 使用密钥就没有这些烦恼了,密钥有公钥和私钥,只有公钥需要上传到服务器,就算你把公钥公开到全网也没关系,因为私钥文件永远存放在你本地,密钥也不会上传到远程服务器,只是用来加密消息,你的公钥加密的信息只有你的私钥能解开,你的私钥加密的信息也只有你的公钥能验证是否来自于你本人,跟密码相比这样是不是更方便更安全。
12345
返回顶部