去年,在工做中接触了一些新的技术名词:
数字签名
、数字证书
、Oauth2认证
、SSL/TLS
、XOR异或加密
、RSA算法
、单钥加密
、公钥加密
、三方认证
等。这些名词单独来看就是一个个技术点,相关技术文档也看了不少,但一直没法作到了然于心,运用自如的地步。直到阅读了《图解密码技术》这本图书,发现原来这些东东都属于密码学的范畴,理清关系以后并无想象中的那么繁琐。 本文打算从三个部分捋一捋这些关系:第一部分介绍信息传递过程当中存在的问题,凡事都是先抛出问题,再谈解决方案;第二部分就介绍解决这些问题的方法了,就像学习数学同样,公式啊、定理啊啥的前人已经帮咱们作了,咱们要作的只是了解它,认识它,因此这部分并不会很难;第三部分为探索阶段,那些 hacker 们是怎么拦截消息的,如何篡改消息内容,又是如何假装它人身份,这些我很感兴趣,但因为底子薄,探索周期可能会有点长,权当自娱自乐吧.............算法
目录: 1、消息传递的特性 —— 存在哪些安全问题 1. 机密性 —— 不想让窃听者知道消息的内容,因此就进行加密 2. 完整性 —— 消息传递过程当中有没有被修改过内容 3. 认证 —— 是不是不怀好意的人假装你的朋友发送的邮件 4. 不能否认性 —— 借了钱要打欠条防止抵赖,信息如何防止抵赖 2、密码学工具箱 —— 解决消息传递过程存在的问题 1. 对称加密 2. 公钥加密 3. 单向散列函数 4. 消息认证码 5. 数字签名 6. 数字证书 7. 随机数生成器 3、探索阶段 1. 怎么拦截 http 请求内容 2. 怎么篡改 http 内容 3. 怎么假装身份获取权限
读书的时候喜欢在课堂和好朋友上递小纸条,这过程存在被老师发现的可能性,若是小纸条的内容涉及到说老师的坏话,那被发现少不了一顿批评教育。假若能对小纸条的内容进行 加密
,只有你和你的朋友知道如何 解密
获得正确的内容,这样即便被老师发现,也能够胡邹一些可有可无的话糊弄过去。安全
你能够和小伙伴提早商量好 加密
方式,好比:先将汉字写成拼音,再将每一个字母日后平移三个字母,像下面这样。微信
明文:老师今天好丑
;网络
明文转拼音:lao shi jin tian hao chou
;函数
拼音转密文(每一个字母日后平移三个字母):dor vkl mlq wldq kdr fkrx
;工具
这样即使老师发现了大家的小纸条也不知道大家在说啥,你的朋友在接收到小纸条时先往前平移 3 个字母再将拼音转换为汉字便可获得明文信息。学习
并非全部的消息都须要加密,若是你不想你的“秘密”被别人知道,那就加密消息吧。加密
在下载一些免费软件的时候,咱们很难保证咱们下载的软件与做者发布的软件是如出一辙的,这中间会不会被一些不怀好意的人植入了病毒,等着咱们掉进陷阱。这里被植入病毒就改变了软件的完整性,而这个过程一般是 病毒做者 在 软件做者 (消息发布者) 和 下载软件的用户(消息接受者) 绝不知情的状况下进行的篡改。code
软件做者发布软件比如发送消息,用户下载软件比如接受消息,病毒做者对软件植入病毒就比如在消息传输过程修改了消息的本来内容。文档
咱们想要的是消息保持完整性,现实生活中能够给朋友打个电话询问收到的信件内容是否完整,但在网络世界或其它不少场景是没法作到这种询问的,这须要特定的技术来保证这一点。
不知道大家会不会收到许久不联系的老同窗发来的短信:“老同窗,借两千块钱”。
我每次收到这种消息,第一反应老是会想 这是否是他本人 ,接着问一些只有我和他才知道的秘密来验证他的身份,或者直接打个电话进行确认,毕竟在当今这个社会,社交帐号被盗取是很正常的一件事情。
花道相约晴子妹子出来玩,无奈人晴子只中意阿枫,花道不得已就假装成阿枫的语气给晴子写信,晴子一看这是 “阿枫” 的信就会立马出来,而后才发现本身被骗了...........
因而可知,消息也存在 伪造发送人身份 这一特性,而 认证 就是一种特殊的手段来判别发送人究竟是 本人 仍是 不怀好意 的人。
朋友刚来上海这边身无分文,找我借了 ¥5000.00 租房子,由于他和我离得比较远,没办法直接给我写借条,就想着经过电子邮件给我来电一封,记录借款事项。
几个月过去了,我想着他也有了钱能够还我了就去找他要钱,结果他狗日的给我耍赖,说本身并无给我写过信,顿时感受古人的伟大,知道写完欠条要按个指纹,想赖帐还能够根据指纹判断确实你这我的写的。(其实一直有个疑惑,古人没有指纹鉴别仪器,是怎么根据指纹判断人的惟一性??)
消息的传递存在 诋毁,不认可 的特性,尤为是在互联网上,文字都是印刷版的冷冰冰的。若是须要签定合同都是打印出纸质版本,盖上公司章再邮寄给他人。
不能否认性 又是经过特定手段将消息发送者的身份和消息绑定在必定,现实生活中很方便,好比签字、按指纹、盖章等,网络中出现此问题,也衍生了对应的解决方案。
消息的特性:
这些特性在平常生活中也会出现,但有时咱们并不在意它。
咱们与他人的平常交流就不须要时时刻刻加密对话内容;咱们收到朋友发的微信也不必打个电话询问内容是否完整;和朋友之间周转个千儿八百的也没打欠条的习惯。
这是由于这些事儿的重要性都不够高,即使存在这些安全性问题也不会对咱们形成太大的损失。可是像一些大型公司、银行,若是不注重信息的安全性,就会让那些不会好意的人有隙可乘,结果也许会很糟糕。
未完待续.................
下一篇介绍密码工具箱,即解决本文提出的四个消息传递存在的问题。