国王国王的秘密:如何保护你的主密码 | Linux 中国( 三 )


后事如何?
retrieved_secret == secret
TRUE
数学这个魔术的优美之处就在于它每一次都是那么靠谱 , 无一例外 。 国王的孩子们 , 曾经的孩童 , 而今已是壮年 , 足以理解先王的初衷 , 并以先王的锦囊妙计保卫了国家 , 并继之以繁荣昌盛!
关于 Shamir 秘密共享算法的现代故事
现代 , 很多人都对类似的大秘密苦不堪言:密码管理器的主密码!几乎没有谁能有足够信任的人去完全托付自己最深的秘密 , 好消息是 , 找到至少有三个不会串通起来搞鬼的五人组不是个太困难的事 。
同样是在现代 , 比较幸运的是 , 我们不必再像国王那样自己动手分割要守护的秘密 。 拜现代 开源 技术所赐 , 这都可以使用现成的软件完成 。
假设你有五个不敢完全信任 , 但还可以有点信任的人:张三、李四、王五、赵六和钱大麻子 。
安装并运行ssss分割密钥:
$ echo "long legs travel fast" | ssss-split -t 3 -n 5
Generating shares using a (3,5) scheme with dynamic security level.
Enter the secret, at most 128 ASCII characters: Using a 168 bit security level.
1-797842b76d80771f04972feb31c66f3927e7183609
2-947925f2fbc23dc9bca950ef613da7a4e42dc1c296
3-14647bdfc4e6596e0dbb0aa6ab839b195c9d15906d
4-97c77a805cd3d3a30bff7841f3158ea841cd41a611
5-17da24ad63f7b704baed220839abb215f97d95f4f8
这确实是个非常牛的主密码:long legs travel fast , 绝不能把它完整的托付给任何人!那就把五个片段分别交给还比较可靠的伙伴 , 张三、李四、王五、赵六和钱大麻子 。
1给张三 。
2给李四 。
3给王五 。
4给赵六 。
5给钱大麻子 。
然后 , 你开启你的惬意之旅 , 整整一个月 , 流连于海边温暖的沙滩 , 整整一个月 , 没碰过任何电子设备 。 没用多久 , 把自己的主密码忘到了九霄云外 。
李四和王五也在和你一起旅行 , 你托付给他们保管的密钥片段保存的好好的 , 在他们各自的密码管理器中 , 但不幸的是 , 他们和你一样 , 也忘了自己的 主密码 。
没关系 。
联系张三 , 他保管的密钥片段是1-797842b76d80771f04972feb31c66f3927e7183609;赵六 , 一直替你的班 , 很高兴你能尽快重返岗位 , 把自己掌握的片段给了你 , 4-97c77a805cd3d3a30bff7841f3158ea841cd41a611;钱大麻子 , 收到你给的跑腿费才将自己保管的片段翻出来发给你 , 5-17da24ad63f7b704baed220839abb215f97d95f4f8
有了这三个密钥片段 , 运行:
$ ssss-combine -t 3
Enter 3 shares separated by newlines:
Share [1/3]: 1-797842b76d80771f04972feb31c66f3927e7183609
Share [2/3]: 4-97c77a805cd3d3a30bff7841f3158ea841cd41a611
Share [3/3]: 5-17da24ad63f7b704baed220839abb215f97d95f4f8
Resulting secret: long legs travel fast
就这么简单 , 有了 开源 技术加持 , 你也可以活的像国王一样滋润!
自己的安全不是自己一个人的事
密码管理是当今网络生活必备技能 , 当然要选择复杂的密码 , 来保证安全性 , 但这不是全部 。 来用 Shamir 秘密共享算法 , 和他人共同安全的存储你的密码吧 。