环保网站设计规划书,沈阳建设工程信息网查询,ui手机app界面设计,wordpress制作在线云课堂目录
一、HTTPS
1.加密与解密
2.我们为什么要加密#xff1f;
3.常见加密方式
①对称加密
②非对称加密
4.数据摘要
5.数字签名
二、HTTPS的加密方案
1.只是用对称加密
2.只使用非对称加密
3.双方都使用非对称加密
4.非对称加密#xff0b;对称加密
中间人攻…目录
一、HTTPS
1.加密与解密
2.我们为什么要加密
3.常见加密方式
①对称加密
②非对称加密
4.数据摘要
5.数字签名
二、HTTPS的加密方案
1.只是用对称加密
2.只使用非对称加密
3.双方都使用非对称加密
4.非对称加密对称加密
中间人攻击
证书
CA认证
理解数据签名
5.非对称加密对称加密证书认证
完整流程
查看浏览器所信任的证书发布机构 中间人有没有可能篡改该证书
中间人是否可以掉包整个证书呢
如何成为中间人
总结 一、HTTPS 上一篇博客详细讲述了HTTP协议超文本传输协议的一些细节在最后我们提到无论如何HTTP 协议内容都是按照⽂本的⽅式明⽂传输的这就导致在传输过程中出现⼀些被篡改的情况所以当今的网站都是用的是HTTPS 协议HTTPS 也是⼀个应⽤层协议. 是在 HTTP 协议的基础上引⼊了⼀个加密层。 1.加密与解密 什么是加密就是将明文转换为密文。 什么是解密就是将密文转换为明文。 在这两个过程中通常要密钥来辅佐。密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。
例子 通过密钥我们可以将密文转换为明文反之亦然。
2.我们为什么要加密 我们都会经历过这样一个现象。明明下载的是我们想要的软件却弹出另一个软件的下载。 这就是臭名昭著的运营商的劫持。关于运营商劫持我们要到后面才会讲到。 如图我们发送HTTP请求运营商接收到这个请求之后发现请求为www.baidu.com运营商就会将HTTP响应替换为新浪的官网。 因为http的内容是明⽂传输的明⽂数据会经过路由器、wifi热点、通信服务运营商、代理服务 器等多个物理节点如果信息在传输过程中被劫持传输的内容就完全暴露了。劫持者还可以篡改传 输的信息且不被双⽅察觉这就是中间人攻击 所以我们才需要对信息进⾏加密。 所以针对防止中间人攻击我们要对数据进行加密下文会讲述到“道与魔之间的对抗”我们呢拼尽全力抵抗数据被截取中间人总用方法来获取信息。可谓“道高一丈魔高一尺”。
3.常见加密方式
①对称加密 采⽤单钥密码系统的加密⽅法同⼀个密钥可以同时⽤作信息的加密和解密这种加密⽅法称为对称加密也称为单密钥加密特征加密和解密所⽤的密钥是相同的。 常⻅对称加密算法DES、3DES、AES、TDEA、Blowfish、RC2等 特点算法公开、计算量⼩、加密速度快、加密效率⾼
例如 ②非对称加密 需要两个密钥来进⾏加密和解密这两个密钥是公开密钥public key简称公钥和私有密钥 private key简称私钥。 常⻅非对称加密算法(了解)RSADSAECDSA 特点算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂⽽使得加密解密速度没有对 称加密解密的速度快。 非对称加密要⽤到两个密钥, ⼀个叫做 公钥, ⼀个叫做 私钥. 公钥和私钥是配对的. 最⼤的缺点就是运算速度⾮常慢⽐对称加密要慢很多. 通过公钥对明⽂加密, 变成密⽂ 通过私钥对密⽂解密, 变成明⽂
或者 通过私钥对明⽂加密, 变成密⽂ 通过公钥对密⽂解密, 变成明⽂
4.数据摘要 数据摘要数据指纹这是通过利用单向散列函数Hash函数对信息进行运算生成一段固定长度的数据摘要。 摘要常见算法有MD5、SHA1、SHA256、SHA512等。 摘要特征和加密算法的区别是摘要严格意义不是加密因为没有解密只不过从摘要很难反推 原信息通常⽤来进⾏数据对⽐。 这个摘要就像这个资源的身份证号一样相同的几率微乎其微我们可以通过数据摘要来比对判断不同资源是否相同。因为更改一个标点符号就会导致前后数据摘要不一样。 例如当我上传电影时会发现这个资源有时会瞬间就会被告知上传成功但是有时需要很长时间几兆几兆的上传。只是因为上传的软件会将电影等资源利用单向散列函数形成数据摘要将数据摘要与服务器中的资源的数据摘要进行对比如若有数据摘要与当前上传的文件的数据摘要相同就证明服务器中有我们上传的这份资源此时就不需要我们上传了所以会被告知上传完毕。 注意不可能通过数据摘要反向推出资源来因为是使用单向散列函数来运算的。
5.数字签名 数字摘要通过加密就得到了数字签名。
二、HTTPS的加密方案
1.只是用对称加密 哇这样不错诶黑客中间人拿到的只是密文看不到我的明文内容这样多安全。 但事情绝没有这么简单服务端同时给很多客户端提供服务它们的密钥之间必是不同的如果是相同的就容易扩散黑客很容易拿到。所以密钥之间是不同的。所以需要服务端来维护每个客户端和服务端之间的密钥关系也是一个麻烦的工程。 较为理想的情况为在每次服务端和客户端建立关系之前就协商好密钥是什么。 但是这个密钥在网络传输协商中是不是也要加密啊不加密又要被黑客获取但是加密又要使用密钥这就是“先有鸡还是先有蛋”的问题了所以这个方法行不通。
2.只使用非对称加密 这样很是不错因为中间人只能获得我的公钥和密文但是获得不了私钥所以解密不了但是这有很大隐患只能由客户端发信息而不能由服务端发信息。 因为客户端只有公钥所以服务端只能用私钥加密发送信息 这时中间人截取信息通过先前截取的公钥就可以获得信息。那如果服务端通过公钥加密那客户端没有私钥就不能解密。 只使用非对称加密是行不通的。
3.双方都使用非对称加密 上个方案只是客户端有公钥服务端有私钥保证单方面的保密可行。这一次客户端和服务端都具有独有的公钥与私钥然后互换公钥。 这种方法可行但是非对称加密速度与对称加密相比慢得多会产生效率问题并且还会有安全问题。
4.非对称加密对称加密 服务器具有非对称公钥1和私钥1。 客户端发起Http请求获取公钥1。 客户端形成对称密钥2通过公钥1将对称密钥2发给服务端中间人因为没有私钥1所以获取之后解密不了服务端获取密文通过私钥1解密之后获得对称密钥2. 之后客户端和服务端都使用对称密钥2来加密解密快捷可靠。 中间人攻击 这几个方案都逃不过中间人攻击这个手段。 我们以方案四作为底层方案设想一下如果在建立http请求的时候中间人伪装成客户端和服务端与不同的双方交流都伪装成对面的一端这样方案四就漏洞百出我们根据图示理解。 中间人干了这么多事情最主要的是假装自己对方通信的另一端最终为了获取客户端的对称密钥这样接下来的客户端和服务端之间的通信对中间人毫无秘密可言。
证书
CA认证 服务端在使⽤HTTPS前需要向CA机构申领⼀份数字证书数字证书⾥含有证书申请者信息、公钥信 息等。服务器把证书传输给浏览器浏览器从证书⾥获取公钥就⾏了证书就如⾝份证证明服务端 公钥的权威性。 我们下一个方案需要证书的帮助。 理解数据签名 数据签名的目的是防止数据被篡改。 如果中间人拿到数字签名的数据将其中的数据做修改然后通过散列函数形成散列值但是中间人没有签名者的私钥不能将散列值转换为签名即无法将更改之后的数据转换为签名即使使用自己的私钥加密之后将签名更换之后的还需要有签名者的公钥来解密就会原形毕露最后再验证的时候原有的签名经过签名者的公钥得出的散列值和已经被篡改的数据形成的散列值不一致这个数字签名就没有用了。
5.非对称加密对称加密证书认证 在客户端和服务器刚⼀建⽴连接的时候, 服务器给客户端返回⼀个证书证书包含了之前服务端的公钥, 也包含了⽹站的⾝份信息。 当客户端获取证书后会检查证书的证伪。 判断证书的有效期是否过期。 判断发布证书的机构是否受信任。 验证证书是否被篡改。从系统中拿到发布证书的机构的公钥将签名解密得到hash1数据摘要再将数据证书通过散列函数得到hash2比对hash1与hash2的值相同则为该证书未被篡改过。
完整流程 查看浏览器所信任的证书发布机构 在edge浏览器中此处就可以查看 我们点开一个证书查看细节。 我们会发现他们包含了我们所说的关键信息。 中间人有没有可能篡改该证书 先前我们说过这里在简洁的表述。 中间人篡改证书将原文修改但是他没有CA机构的私钥无法将更改的数据经过hash再通过私钥转形成签名。如果强⾏篡改客⼾端收到该证书后会发现明⽂和签名解密后的值不⼀致则说明证书已被篡改 证书不可信从⽽终⽌向服务器传输信息防⽌信息泄露给中间⼈。
中间人是否可以掉包整个证书呢 我们要知道客户端在认证时都是通过认证机构的公钥来检查证书的真伪的所以中间人没有响应的私钥就是不可行的转而去申请真的证书然后用自己的证书将客户端接受的证书进行调换。 方法是可行的但是证书明⽂中包含了域名等服务端认证信息如果整体掉包客户端依旧能够识别出来。
如何成为中间人 ARP欺骗在局域⽹中hacker经过收到ARP Request⼴播包能够偷听到其它节点的 (IP, MAC) 地址。例 ⿊客收到两个主机A, B的地址告诉B (受害者) ⾃⼰是A使得B在发送给A 的数据包 都被⿊客截取。 ICMP攻击由于ICMP协议中有重定向的报⽂类型那么我们就可以伪造⼀个ICMP信息然后发送给 局域⽹中的客⼾端并伪装⾃⼰是⼀个更好的路由通路。从⽽导致⽬标所有的上⽹流量都会发送到 我们指定的接⼝上达到和ARP欺骗同样的效果。
总结 第一组非对称密钥CA机构拥有的私钥客户端拥有公钥这两个密钥合作起来来检查证书的真伪。 第二组非对称密钥客户端生成对称密钥通过公钥将对称密钥加密发回给服务端服务端通过私钥解密获得对称密钥。 第三组对称密钥客户端和服务器后续传输的数据都通过这个对称密钥加密解密。 感谢观看如有错误请指出我们下次再见。