赞
踩
散列也可以叫哈希函数,MD5、SHA-1、SHA-2、、(不管叫啥,都记得是同一个东西就行)
散列的特点:
熟悉的 公钥加密,自己生成一对公钥私钥,公钥可以发布出去谁都可以知道,但是私钥只有自己知道。
- 加解密
在加解密中的公私钥中,是使用公钥加密私钥解密,私钥加密的公钥解不开,这是在加解密中是这样的。- 签名
在签名中的公私钥,是私钥签名公钥验证,公钥无法签名,只有私钥能验证持有者身份,和加解密是相反的,首先算法上就是不一样的。- 通常加解密的公私钥和签名的公私钥不一样,但是理论上是可以一样的(如果是我,我肯定两对钥匙不同,不然有一个私钥泄露了那也只崩一边不会两边都崩)
签名算法只是算法不同性导致他是使用私钥签名,公钥验证,有的人会觉得签名怎么看起来一点都不安全,其实恰恰相反,因为我们签名就是用来给别人验证的,安全性是建立在你私钥保管好了,没有人能够伪造你的签名,因为不知道你的私钥。
小结:由于这种非对称加密的出现虽然一开始觉得没有对称美,但是后来发现非对称加密才是最优雅的安全系数提升了很多的加密方式,用久了也会觉得非对称加密才是真正的对称美,实在是太优雅了!
但是由于他的缺点是加密速度非常慢,密文会变长,既然如此,那就正好了,我们散列出来的值就很小,这就是后面的数字签名,我们对散列值进行签名就是数字签名,数字签名由于是非对称的签名,签名是私钥签,公钥验证,所以其他人可以通过公钥来验证身份。
PGP就是结合了对称和非对称,就是使用随机产生的对称会话密钥加密,将会话密钥使用非对称加密->即使用私钥进行加密,那这样只有持有我的公钥的人可以拿出这个会话密钥进行解密这份数据包。很优雅的解决了非对称加密速度慢的问题。
主要是关注图中的数字签名。
先明确一下我们现在赤裸裸的进行交换公钥交换信息的话会出现什么问题
- 双方翻脸不认人,某一方可以说我的收到的信息不是长这样或者我发过去的时候不是这么写的,中间肯定有黑客截获了直接把我所有信息都替换掉了?
- 当出现上面这种争执的时候就可能双方给得打官司了,谁也不服谁。
- 你怎么知道交换公钥的时候,那个公钥是我的呢?万一早就在公钥交换的过程就被攻击了,那我们以前交流的信息其实就没有一条是可信任的了。
之前看到过一个视频讲了一个例子十分好,在我们去到新公司上班的时候如何快速和其他人打好关系建立信任,那就是需要一位德高望重的老员工带着我们去一个一个的认识和介绍。
OK,这一点的提出貌似有了点头绪,那我们为了避免交换公钥后出现的各种不安全问题,就需要一个可信任的第三方机构。那么这个机构就是我们的RA注册机构、CA证书颁发机构等等,多个机构和设施结合就是我们的PKI。
PKI最核心的就是CA,颁发证书的机构,他颁发的证书可信的是很高的,也就是说大家都相信他颁发的证书,都去他那里注册,然后这样大家就可以通过这个"老员工"相互认识和通信了,可信度也高。
注册机构,首先我们要知道RA是类似于我们去银行前台办理一系列的手续,前台就是我们的RA,所以说有时候也赖不得说线下办理麻烦,不能搞个线上吗?其实线下是为了保证你的业务安全性。
回到正题,RA注册就是一个注册你身份到PKI这个机构里面,让你可以和其他人一起玩,一起交流沟通,注册完成后就能够去CA颁发一个证书给你了。
注册一般最基本的就是提交你的公钥,你的ID名字、有效期等等,最重要的是你的公钥,线下提交的总不能被黑客劫持到了吧?!当然了,有些地区是支持你线上办理的,有一说一,你都这么谨慎去办理CA了,还不如线下来的安全,还敢线上办理?(没有贬低线上办理的意思)
(关于注册的更多细节我就不深究了)
有时候还有需要你提交你办理的业务也就是说待会颁发的证书是什么类型的。
证书颁发机构。
明确一个点:CA证书服务器也可以类比成用户,他也是有私钥和公钥的,所以说我们是相信他的私钥不会丢失且能够保管好我们的信息的这么一个机构。
这个就是等你在前台办完手续后,通过资格认证后,我们的CA证书机构就会颁发一个属于你自己的证书,然后你就可以通过这个证书来和其他人做一个安全的公钥交换。
目前还有点懵,但是我们需要知道的是,我们公钥交换不安全,需要第三方给我们一个可靠的安全公钥交换,但是和我们预期的不同的是,不是机构带着我们去做公钥交换,而是给你一个可以提供安全公钥交换的证书,交换证书就能够完成安全的公钥交换。下面开始解析具体细节。
其实上面PKI已经完成工作了,也就注册申请证书了,如果你信任他,就拿着他颁发下来的证书和其他人进行公钥交换就行,如果需要深究那就需要理解为什么这么做还有为什么就可以实现安全的交换。
多么优雅的一个图片,签名、根证书、交换等等一系列操作组合起来太优雅了!
回到正题,我们现在不用CA颁发的证书的话面临的问题就是之前提到过的,公钥交换不安全,由于可能被人截获替换了公钥,那么我们可能接下来的对话都被黑客操控者。
开始通过问题来说明这个优雅的IKE数字签名
证书发的太多会不会造成威胁?
不会,证书给谁发都行,因为你去注册后,根证书你自己已经拿到了,根证书这玩意你总不能会说伪造吧?根证书里面有CA公钥,通过CA公钥能够验证别人发过来的证书里面的机构给他的CA服务器签名得到散列哈希值,然后其他信息做一个散列哈希函数得到的值和验证签名出来的一不一样就知道证书是否有效(当然还有检查有效时间)
那你还是没解决掉别人盗用我证书的威胁啊?
别担心,不要忘记了还有一个数字签名,协商好的算法能不能验证出来就看刚刚解出来的对方申请下来的CA颁发的证书里面的公钥是不是对方的,这就无法盗用证书了。
那万一别人直接将整个证书劫持了,使用了攻击者自己申请好的证书发给我怎么办,我岂不时直接就啥都不清楚的被欺骗了?
别忘记了IKE数字签名流程里面还有你的ID号明文形式发送过去,这玩意要是篡改了,你证书总不能窜改吧,证书里面不是还有ID可以知道是不是对方吗?这两一对比你不就知道是不是对方了么。这就完美打破了你的这个"骇客"想法了。
万一证书里面的ID和我另一个人长得很像那我岂不是也会被骗到?
这个确实可以有一定概率骗到审核的人。
不过这就是你的不对了,不能赖别人,别人名字没有错,错的是你,你自己就要承担责任了,因为发送方没有任何过失,你自己这么不谨慎怪不了谁的。
最后还有一个问题不知道解决了没,那就是双方是否还可以翻脸不认人?
有了第三方权威机构后,除非你买通了权威机构,这也是不道德的行为,所以基本上你翻脸不认人是不可能的,因为你要说公钥不是对方造成我信息泄露的话,那赖不得人家,这可是安全的公钥交换,自己没有细心的检查不能怪别人。
私钥丢了呢?那也是你自己的问题,你泄露出去的,对方完全没有责任,私钥只有你自己的知道啊。我们没有协商任何的共享密钥。
密钥产生、更新、备份、恢复等等
(这里本人没有且不打算深入探究)
总结:
PKI就是帮助我们完成一个安全的公钥交换问题,解决了第三方直接伪造公钥的问题仅此而已,后面的你交流什么信息发送什么数据PKI不管的,给你颁发证书,用证书实现安全的公钥交换就行了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。