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