acess

acess

V2EX 第 90927 号会员,加入于 2015-01-10 00:30:48 +08:00
今日活跃度排名 19913
acess 最近回复了
@wevsty 我感觉你似乎有点误解。我并没有问 50 元扳手攻击这种问题(虽然我的想法和 50 元扳手攻击也差不了太多了)。

但是,如果你要问我,我能保证我的电脑系统完全干净么?我没有信心回答“能”——这并不是因为我把电脑物理上随随便便给了陌生人使用,而是因为我并不是个“清教徒”式用户,很多时候我也会“从网上乱下东西”(比如 V 站一直在抵制的,盗版 /破解)。

即便我说了类似“大概可以吧”,这样的答案,也是觉得“如果不这么想,那电脑就压根不能用了,因为每时每刻都有被害妄想(笑)”。

“有人直接 [物理上] 给你在 PC 上安装监视系统怎么去防护?”
很多时候并不需要物理上进行这个动作——当然,即便不是物理上这么做,这个问题大概也还是无解,甚至是没有什么意义。
@wevsty
首先我没有假定攻击者拥有无限的资源……实际上放我自己身上,我肯定愿意用带有现代 KDF 的产品,以“输密码时卡上几秒”的代价,换取安全性显著提升(按我的理解,就是等效于密码被追加了好几个难记的随机字符,有了 KDF,我不用记忆它们也能达到一样的效果,更不用提对跨站撞库的防御),很显然是值得的。
不过,我也不知道一个现代的 KDF 在典型情况下到底能增加多少强度。

其次,我觉得“安全性”这个概念不止涉及保密性吧?可用性其实也是安全的一个范畴。比如勒索病毒把文件加密了,这很显然是安全事件,但是未必涉及泄密(虽然有些勒索黑客现在确实在用泄密作为要挟条件)。

“反过来也是一样,如果有人知道主密钥,拿不到数据库文件也没辙。”
确实是这样。但是我觉得有不少情况,比如电脑中键盘记录木马这种情况,都已经拿到主密钥了,这可能已经是整个系统被攻陷的情况(对于个人用户来说,管理员特权也许不是特别重要,就像 xkcd 1200 ),顺带着拿到整个数据库也就不是难事了。
@wevsty (稍微搜了一下,比特币官网的情况,貌似是最后一个 web 钱包被下架了,在这之后才连带删掉整个 web 钱包分类。最后一个 web 钱包是 Coin Wallet,不过下架的理由好像主要是没有告知的收费,貌似还不涉及“远程加载代码”这个问题)
@wevsty (啊,好尴尬……发完帖子才发现,其实网页钱包现在已经从比特币官网的推荐列表里删去了……不过我还不知道具体理由。稍微搜了一下,下架 btc. com 的理由貌似是 HSTS PKP 时间不够长)
@wevsty 回到楼主这个作品上……

其实网盘云备份,就不是黑箱了么?同样是黑箱不是么。要说封号,网盘同样可能封号,无非就是封号的缘由(以及几率)可能不太一样。

理论上微信小程序也许可以被腾讯篡改——这里我又要拿比特币类比了,比特币官网在推荐钱包软件时,有一个扣分项,就是“远程加载可执行代码”(案例就是类似 blockchain. info 、btc. com 之类的 web 钱包)——看上去微信小程序在这一点上就不幸中招了。
“远程加载可执行代码”为啥会成为扣分项,我觉得不难理解,应该还是因为“确认公开的源码是否对应实际执行的代码”这个问题吧,理论上网站如果被黑或者作恶,随时可以偷换成恶意代码。
但是呢,即便是讲究“去信任化”到极致的比特币,好像也没有在官网上直接“下架”这种有扣分项的钱包。虽然这确实是一个扣分项,但这个扣分项好像也并不至于那么致命吧。

最后,包括我自己在内,看到楼主这个帖子,可能很多人脑内第一个浮起来的概念是“国内 /国外”,哪怕想起“经过剪贴板可能不安全”都不是第一反应。
@wevsty
简而言之,根据我的认识,KDF 是很有意义的技术,尤其是可以防止大规模、跨网站的撞库;但并不能因此神化它(不过我并没有说你有意在神化它)。

“成千上万倍”,这种叙述可以给人直观印象;但实际上,它真的有化腐朽为神奇的、不可思议的效果么?我感觉,未必。

我之前提到“KDF 和几个随机字符效果差不多”——我的这个叙述同样是不准确的。“合法用户只需要支付一次运算代价”,这个我还是知道的。


提比特币,是基于我之前提到的一个理解:“之所以会有 KDF,根本上是因为人类很难设置、记忆熵值够高的密码”。比特币用 12 个单词的助记词,即可表示 128bit 的熵,在我看来还是很有启发意义的,虽然实际上比特币钱包还是放弃了让用户记忆这 12 个单词(本来“助记词”这个名字就是“辅助记忆”的意思,不是么),转而引导用户把它抄写下来,所以还是绕回了问题的原点、没有很好地解决这个问题。
@wevsty 我会想到这个暴论,主要是因为我看过对于比特币脑钱包的批评。
比特币的账本全部是公开透明的,就好像一个天然公开的“账户密码数据库”,而且没有加盐、没有 KDF——传统的比特币脑钱包就是把人脑想出来的密码简单地哈希一遍,然后就直接用作私钥了,接着,从私钥得到公钥、地址这个计算也没啥成本。
攻击者只要暴力穷举,找到私钥,就可以直接把币转走。

所以说,解决这个问题的对策,就是用轮次足够多的 KDF 加盐?

很显然这样就跑偏了,不是么。
如果我没理解错,KDF 对于攻守双方是平等的,想要 KDF 增加多少强度,用户自己在正常使用的时候也要付出等同的计算量代价。换句话说,引入 KDF 后,每次输入密码时,机器“卡”了多久,就代表密码被 KDF 增强了“这台机器能够在这么长的时间内,能够穷举破解出的密码”这么多的强度。

KDF 的轮次不可能无限地往上加,于是,通过 KDF 得到的强度提升也很有限。
换句话说,再怎么折腾 KDF,也不可能让本质上就不安全的脑钱包安全到哪里去。


现在比特币的钱包一般都是用一个助记词来作为随机种子生成私钥,最常见的 BIP39 助记词是 2048 个单词表里随机抽取的 12 个单词,用来编码表示 128bit ( 132bit 里有 4bit 被用作 checksum 了)的熵。

不过说实话,比特币貌似也并没有解决这个问题……而且 BIP39 助记词里也是用了 KDF 的(大概是因为除了 12 个单词本身之外,还是一个可选项 passphrase,也是人脑想出来的附加密码)。

现在主流的钱包会引导用户把助记词写到纸上,和柯克霍夫原则里的“密匙必须易于沟通和记忆,而不须写下”,也是背道而驰吧。
@wevsty KDF 这个东西,我记得在哪里看到过,本来就是因为人脑想出来的密码熵值不够高(具体熵值有多少,貌似也是根据具体情况的,取决于破解者猜测密码的能力,“会不会编字典”,好的字典能大大缩小搜索范围),现实中想让人类想出熵值够高的密码又太难,所以就有了这么个既不打扰用户,又能弥补“人脑想出的密码熵值低”这个缺陷的技术。
所以……我就有了一个暴论:如果可以直接用靠谱的办法生成随机密码,然后人脑可以直接记下它,那(从个人使用角度考虑,而不是从“宏观”的视角来看)效果和用了 KDF 也差不多。
(如果一个密码在多个地方被重复使用,那问题就很大了……不过,能想到用密码管理器的人,让他不要犯这种低级错误,貌似也不难吧)
@wevsty 我第一次看到加盐这个概念时,也非常折服,印象中大概是“即便被拖库也仍然能保证安全”,但是后来仔细想了一下,现实中好像还是蛮鸡肋的——都拖库了,可能有价值的数据本来就已经一波带走了,说不定服务器后端什么的都被注入了恶意代码,被攻击者实时视奸着呢?
打个可能不恰当的比方,就好像 WinPE 破解 Windows 登录密码一样……即便不去破解出明文的登录密码,实际上系统里有啥,绝大部分也已经都一览无余了。
不能说这样没意义,意义还是很大的(我记得 Windows 账户密码实际上也确实被用来加密凭据,包括证书私钥、浏览器登录密码之类的),但是好像没有我这个外行一开始想象得那么神奇。
@wevsty
首先,即便这个楼主开源了,可能还是有很多人不愿意信任他——恕我直言,(以我这个半吊子自己的感觉来看)我觉得这很大可能上并不是出于什么缜密的思考,而是出于某种(尤其是,很可能是经过刻意策划,宣传灌输进去的)偏见。至于受这种偏见影响会不会有害,这个其实是另外一回事(很多广告打得响的东西,说不定其实质量真不差)。这就是我为啥要提政治……我觉得几乎没人能在这方面完全免俗吧。

还有,说到开源,其实有个小细节:可重现编译( deterministic build ),这个貌似也就比特币一直在用。如果我没理解错,这个过程是:一样的代码,用同样的软件环境,经过同样过程,编译出一个字节不差的二进制代码,由此证明代码和二进制是对应的。
但是,因为有 Ken Thompson Hack 的存在,再有就是“即便开源、而且源码真的忠实地编译成了二进制,也未必能从代码中找到逻辑 bug”这个问题,好像这个概念本身还是有点鸡肋的。


后面给密码增加熵,我感觉你说的貌似是加盐?怪我表达不当。既然密码管理器就是个人用途,那我觉得好像不涉及撞库之类的问题。我只是觉得,KDF 这个概念本身应该也是可以“驱魅”的。
(我第一次看到 Argon2,是好奇折腾 Ubuntu 的 dm-crypt 、想搞全盘加密的时候。稍微搜了一下,好像设计确实考虑周全,加入了针对侧信道攻击和 GPU 破解的对策,对于后者,我感觉这可能和加密货币抗 ASIC 挖矿算法有点类似?然后说实话,我不知道这类设计到底有多有效,毕竟不少抗 ASIC 的 PoW puzzle 最后还是出现 ASIC 矿机了,效律比 SHA256 的情况差很多,但是仍然是碾压程度的高效)
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2669 人在线   最高记录 5268   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 113ms · UTC 15:45 · PVG 23:45 · LAX 07:45 · JFK 10:45
♥ Do have faith in what you're doing.