从脑钱包谈个人密码管理

gknows
gknows
2014-11-21 · 4852 次浏览

密码管理工具可以生成随机密码并进行管理,一定程度上增强了在线帐号的安全性。可这埋下了一个更大的隐患,当主密码和数据文件失窃,末日就到了。Malware’s new target: your password manager’s password

下面从脑钱包开始谈谈一个简单安全的个人密码管理方法。不是什么新东西,但是还是很有意思的,背后还是有很多可以思考和展开的,欢迎一起讨论。


  • 从脑钱包我们能学到什么

我们总希望把秘密的东西存在自己脑子里,因为记忆是相对绝对安全的存储,这里的安全指的是被窃取的可能性,不考虑心情不好脑子短路记忆丢失等情况。在比特币的世界里,私钥是每个人唯一的秘密,我们想尽方法去保护它,自然这其中一条路就是不做物理存储,而用脑子去记住它。

唐僧:来,猴子,记一个试试
悟空:5JandZhFfEPFn7vfb7GFfeRdRDf11VmndprQ7Lv65uYT44DKy48
唐僧:我擦,牛逼啊,来,我这还有十个私钥,这个是上次卖肾的,这个是卖血的,这个是卖腿的...
悟空:腿?师傅,你的两条腿都在啊,难道...师傅,你没币可以跟我说呀,我给你转啊
唐僧:别误会,我卖的是八戒的
悟空:师傅,我有事先走一步

当我们发现记不住的时候,脑钱包出现了,你不需要去记住原本一大串诡异的字符,你只需要记住类似“bkjsynhxdccbtbjlsq”这样非常容易的信息,然后就可以得到你的私钥了。

悟空:特喵的我一走你就逗人玩呢,这啥玩意儿,你能记住?
唐僧:“币科技是业内核心的纯粹比特币交流社区”。必须记住啊!
悟空:...

取每一个字首字母,然后你就记住了。这就是关键点:规则。利用规则你可以记住原本繁杂的字符串。脑钱包同样定义了它自己的规则,如果没有兴趣,你可以不去纠缠细节。但结果是你记住了,虽然是间接的。我们再来看一下这个过程。

关键词 + 脑钱包规则 = 私钥

原本你是要记住私钥,这个太难。实际你需要记住的是:
1. 关键词,为了安全你可能需要选择一个复杂的关键词,这个时候你可以定义你的规则去记,比如一句话等。
2. 脑钱包规则,你需要知道你的这个关键词是需要经过这个规则运算的。

这个就简单多了。
那么,从脑钱包我们学到了什么:利用规则


  • 为密码添加规则

说了半天,这和密码管理有啥关系呢。先说一下密码安全几个最基本的原则。

  1. 不能过于简单,位数不能太少(悟空:特喵的这道理八戒都知道)
  2. 不要在不同平台使用相同的密码(悟空:师傅,我记不住啊)
  3. 最好可以用脑子记住你的密码,而不是用存储器(悟空:...)

唐僧:来,猴子,师傅告诉你我是怎么记住紧箍咒的
悟空:师傅,我有事先走一步

规则,你只需要一个合理的规则,这所有问题都迎刃而解。

这样的规则有很多,这里简单分享一个,以用户“唐僧”在“币科技”的密码为例
1. 打开brainwallet,在Passphrase中输入tangseng@bikeji
2. 于是出现了

Secret Exponent:b8196ab6ff93f198f4fa6b7c4c02a72b29b9089a0ffe5f2ca5f6b72b2450b913
Private Key:5KDN9h2dqwY9XkUANPDWQFsQtgDi1yzimSHr6WioPxX2TiedpPQ
Address:1P4gxqWC3jGUJb5af5vxr393NWr53KAupA
HASH160:f2055fd27e814c3abfc2b345881fd5d999245338

3. 随你高兴,你可以选择其中任何一段做为你的密码,比如我选Secret Exponent结果的前13个字符,于是我的密码是“b8196ab6ff93f”

我们再来看看这个过程。
关键词 + 密码规则 = 密码

关键词:tangseng@
密码规则:
1. 加"平台名",保证了不同平台使用不同密码
2. 在brainwallet中得到的Secret Exponent取前13个字符

这里只是举一个例子,你可以选择自己的规则,比如为了方便你可以选择通用常见的算法,比如MD5、SHA-256等。你可以定义自己的运算,比如再加个前缀“#!fb8196ab6ff93f”。其思路是一致的,于是你记住了所有平台的不同密码。

悟空:师傅,别人旧瓶装新酒,你这是新瓶装旧酒啊,啰嗦了半天,这特喵的是我在石头里就知道的东西
唐僧:阿弥陀佛,为了人气我也是拼了,台阶有木有
悟空:师傅,你知道百度密码最多14个字符么,你知道我的默认规则是16个字符么,特喵的不能通用啊
唐僧:擦,我看你笔记里写了个“百度密码:14”,你是不是就取了14个字符
悟空:额...这是暴露了么,可是你不知道我的关键词和其他规则
唐僧:来,猴子,师傅告诉你我是怎么记住紧箍咒的
悟空:师傅,你看白龙马刚刚在泥地里打了个滚,现在又跑去拉马粪了

(全文完)

bi te bi
比特币#1 楼4 年前

脑钱包(或冷存储)只能用一次,那平台是怎样把币存进去又取出来而保证不泄露私钥的呢?

gknows
gknows#2 楼4 年前

原来主题是可以编辑的,可是回复好像不能编辑@daqing

wang hai bo
汪海波#3 楼4 年前

@比特币 把钱包地址中的币花掉,只会暴露公钥,不会暴露私钥

wang hai bo
汪海波#4 楼4 年前

脑钱包是挺方便的,但是实质上是把密码降维了。不过,安全和易用本来就是相互矛盾的。

gknows
gknows#5 楼4 年前

@比特币 接@汪海波 补充,存币就更不会涉及到存入账户的私钥了

gknows
gknows#6 楼4 年前

@汪海波 嗯,这里不论脑钱包的安全性问题,对于脑钱包可能降低了安全性,但是借助这个方法可以提高个人在线密码的一个安全性

bi te bi
比特币#7 楼4 年前

@汪海波 @gknows 我还是不明白。 http://video.8btc.com/video/14217 这个视频是纸钱包的,但都是冷存储。从2:45开始看。

gknows
gknows#8 楼4 年前

@比特币 这里说的从纸钱包转出应该是导入私钥到联网的机子上进行签名交易,如果使用离线签名,然后把签名后的数据通过其他方式拿到网络上广播,应该是不会有私钥暴露的问题的。个人理解

wang hai bo
汪海波#9 楼4 年前

@比特币
1. 我讲的“暴露”是指公钥出现在blockchain上,因为比特币网络需要使用公钥来验证有你签发出的交易。

  1. 我认为视频中所说的“暴露”其实是指存储有私钥的计算机连接了网络。如果没有一次性的把钱包中的币花掉,那么存储在计算机上的私钥有可能被黑客恶意拷贝,并使用它将钱包中剩余的币转移到自己的钱包中。

  2. 视频中生成纸钱包的方式并不是最优的。当生成钱包的计算机再次联网时,私钥仍有可能被盗走。
    a. 找一台没有联机过的计算机
    b. 使用干净安全的存储器从其他计算机拷贝一份可信的钱包生成程序
    c. 使用程序生成私钥和钱包地址,将它们备份多份(打印、U盘存储等)
    d. 需要动用钱包时,将计算机再次联网,一次将地址中全部bitcoin转移

wang hai bo
汪海波#10 楼4 年前

格式有问题……

bi te bi
比特币#11 楼4 年前

@汪海波 @gknows 谢谢两位!大概懂了。

xiong xiao er
熊小二#12 楼4 年前

我收藏了,还点了一次赞。打赏功能出来过后,会打赏这篇帖子。

xing kong
星空#13 楼4 年前

@汪海波 markdown 格式,可能需要熟悉一下。

daqing medium avatar
daqing#14 楼4 年前

@gknows 重复的回复已经删除了

gknows
gknows#15 楼4 年前

@币科技熊小二 O_o~~

gknows
gknows#16 楼4 年前

@daqing 辛苦

Ryan XxOo
Ryan_XxOo#17 楼4 年前

理论上只要建立起映射集,可以使用记住一张图片的方式来恢复私钥。

imcoddy medium avatar
imcoddy#18 楼4 年前

脑钱包本质是通过建立记忆到私钥的映射,不过由于人类的词汇库有限,如果简单地使用一些自定义的加密规则,在被进行社会学攻击时还是挺容易沦陷的。

因此,个人觉得更好一些的方法是,自己只记得脑钱包暗语的生成规则和关键词,但具体的暗语自己也记不住。例如我某个私钥系列用的是某个 Git Repo 的 commit,坏处是没联上网我自己也不记得 XD

想起之前翻译的 Gavin 对脑钱包看法的帖子,顺便粘在这供参考:http://8btc.com/thread-2783-1-1.html

gknows
gknows#19 楼4 年前

@Ryan_XxOo 嗯,最终都是一串数据到另一串数据的转换

gknows
gknows#20 楼4 年前

@imcoddy

cndx
cndx#21 楼3 年前

@汪海波

脑钱包是挺方便的,但是实质上是把密码降维了。不过,安全和易用本来就是相互矛盾的。

关键是看使用脑钱包工具的人怎么使用,假设脑口零的长度和复杂度比私钥还高,那就不会“降维”。
怎么实现呢?
很简单,可以将某个简单脑口令脑钱包的私钥,经过编辑后作为脑口令。

楼主给的脑钱包链接打不开了。
看一个汉化并优化的版本
http://BTCnqb.com