如何绝对安全与别人分享文档资料
先设计一个问题:假如你在瑞士银行开了一个账户,并存入一千万美元,你开户时设置支取款项的条件是:只要输入正确的用户名和密码,就可以通过网上银行转走资金。为了提高安全度,你特意设置了一个很长的密码。现在我问你:如何把用户名和密码告诉远在美国的儿子?
寄挂号信?打电话?发微信?发qq?发邮件?托刚好要去美国的好友带口信?这些方法太危险啦!不过现在人傻钱多的人还真不少,都是祖上留下来的不义之财!
发whatsapp?发signal?在推特上发私信?这还不错,你还知道这些东西!不过一千万美元哦,可不是几百美元的事,丢了未免太可惜了。什么?你不在乎?我靠,你这钱来路不正啊,所以不珍惜,谁见过比尔·盖茨穿过一千美元的衣服?没有吧,因为他的钱全是一分一豪靠洒汗水苦下来的啊。
把用户名和密码写在word文档中,然后加密保存,参见图1所示,最后把此word文档发邮件给儿子,并在微信里说:“儿子,打开文档的密码就是你姑姑的出生年月日。”这个方法不错,但是千万不要把文档和这句话一起通过微信发过去,老大的眼睛时时在盯着你的微信呢。
如此,对这个word文档进行加/解密采用相同的密码——儿子的姑姑的出生年月日。这样的密码称为对称密码,也就是说加密和解密采用相同的密码。
如此,对这个word文档进行加/解密采用相同的密码——儿子的姑姑的出生年月日。这样的密码称为对称密码,也就是说加密和解密采用相同的密码。
每个人或一个家庭,建议仔细斟酌设计好几个密码,并且保证很难忘记,密码长度在15个字符以上,最好包含大小写字母、数字和其他符号,比如Uh8kahd#99Klid_*就是一个好密码。对称密码在加密币行当中经常会使用,比如银行账户的密码,比如给虚拟机启动后设置的登录密码,再比如虚拟机磁盘的加密密码等。结合古诗词或《圣经》中的经文来设计对称密码是一个不错的注意,每个人都会有一些喜欢的诗词句子或经文,比如我就喜欢“飞流直下三千尺”从而设计出密码Flzx3qC,根据原则:诗句的首尾字母大写,与数字同音的字就用数字代替。再比如《圣经》经文“申冤在我,我必报应。”可设计密码SyzW&WbbY,不过里面缺少数字,呵呵。
除了对称密码,难道还有非对称密码?是的,那必须有——加密和解密的密码竟然不同!加密和解密的密码组成一对,其中一个密码称为私钥,另一个称为公钥,从私钥可以导出公钥,但从公钥导不出私钥,因此最要紧的是要保管好私钥,而公钥是对外公开的。现在假设你儿子手上有一个私钥,他把导出来的公钥告诉你,你就可以用此公钥对上文提到的word文档加密,然后就可以放心大胆地把加密后的文档发给儿子,儿子用私钥解密文档即可看到明文了——瑞士银行的用户名和密码。
但是且慢!你儿子怎么就知道这个加密的文档就是你发的?因为儿子的公钥是公开的(很多人都有他的公钥),任何人都可以使用他的公钥加密文档然后发给他。也许你会说:没有这么傻的人吧,居然冒充父母给别人家的儿子发银行账户和密码?没错,还真没有这么傻的人,但我遇到过多次,当我走在街上时,突然有人假装无意丢一个钱包在我脚前,我才不去捡呢,因为我没这么傻!他们丢钱包只是诱饵,目的想钓出我兜里的血汗钱!天上掉下来的馅饼能砸在我这个矮个子的头上,不是诱饵又是什么?
那怎么办?简单啊,你签个名就是了,呵呵,但不是手写签名,是数字签名。即用你的私钥对信息(本例就是银行用户名和密码)签名,然后把信息和签名一起用儿子的公钥加密,最后发给儿子。儿子用他自己的私钥解密,再用你的公钥(儿子是知道你的公钥的)验证签名。整个过程可用示意图2。
前提是你拥有一对公/私钥,你儿子也拥有另外一对公/私钥,而且事先双方把自己的公钥告诉对方。注意上图中钥匙的颜色。
因为私钥只掌握在你手里,所以凡是用你私钥签名的任何文件都是你签发的,你不要撒赖啊。什么?你的私钥被别人盗用了?那也是你的问题,谁叫你保管不小心,一旦发现私钥泄露了,赶快做一个新的,同时把新的公钥公布于众。不过私钥还能设一个保护密码,这样就算别人盗取了你的私钥,但是如果不知道保护密码,他还是没法使用你的私钥的。私钥的保护密码是对称密码。
针对加密和解密有一些助记语:“公钥加密私钥解密”、“公加私解”、“公家死结”。
针对签名和验证也有一些助记语:“私钥签名公钥验证”、“私签公验”、“四千公燕”。
其实记住:公加私解。而签名/验证刚好反过来——私签公验。
不过在商业界,为了增加安全性和密钥对的安保,一般“加密/解密”和“签名/验证”采用不同的公/私钥对。加密币转账交易都需要交易发起方签名,而且还支持多签——类似企业的一份采购单,同时需要财务处经理和分管副总都签名才有效。
接下来我们具体实战完成:老爸如何把银行密码安全发给儿子?
双方从https://files.gpg4win.org/gpg4win-4.0.3.exe下载加密/签名工具(gpg4win是开源的,大家尽管放心使用),并安装它,然后双击桌面上的如图3所示的图标启动程序。
先参考图4汉化它。
这样再次启动gpg4win就看到汉化的界面了,然后点击图4上的“New Key Pair”图标或者按Ctrl+n创建密钥对,出现如图5所示的画面。
爸爸创建密钥对时可以输入名字为dady001或者其他的都行,儿子那边创建时可以输入命令son0001什么的都可以。接下来要把老爸的公钥导出来并发给儿子,参考图6操作。
例如把公钥导出到桌面上的dady001_0x09BBA8EC_public.asc文件中,然后就可以把这个文件发给儿子,由于是公钥,不怕泄密,可以随便发。儿子也要把他的公钥导出并发给爸爸,比如发来的公钥文件名为son0001_0xD552B2F8_public.asc,爸爸把儿子的公钥导入gpg4win中,参考图7所示操作。
现在老爸有自己的密钥对和儿子的公钥,儿子也有他自己的密钥对和老爸的公钥,参考图8所示。
现在开始对包含银行账号和密码的那个word文档签名和加密了。点击图7上的“签名/加密...”,然后选中那个包含银行账号信息的word文档(比如“银行账号.docx”),接下来出现图9所示的界面。
要记住:用老爸的私钥签名,用儿子的公钥加密!签名和加密后的文件就是“银行账号.docx.gpg”——在源文件名后添加了“.gpg”后缀。最后把文件“银行账号.docx.gpg”发给儿子即可(不管采用什么方式发都可以,因为就算泄露给其他人,他们也是没法解密的)。由于已经加了密,任何人都没法破解。儿子接到文件后点击图7上的“解密/校验...“进行解密并验证签名。儿子解密时采用自己的私钥解密,采用老爸的公钥验证签名。
现在遗留的问题是任何人只要能访问我的电脑,就能利用gpg4win程序冒充我的身份签名,或者干脆导出私钥。所以有必要给私钥加密——设一个保护密码,参考图10所示。
这样以后导出私钥、用私钥签名时都要输入保护密码才行。导出并备份私钥可这样做:点击图10上的“Backup Secret Keys...”,然后取一个文件名(比如dady001_0x09BBA8EC_SECRET.asc),最后输入保护密码即可,参见图11。
再把文件备份到U盘,在其他电脑上允许导入此私钥。
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!