石家庄制作网站毕业设计网站开发要做什么
news/
2025/9/27 13:45:17/
文章来源:
石家庄制作网站,毕业设计网站开发要做什么,网页设计网站,网站建设有些什么流程一、HTTPS 是什么 HTTPS 也是⼀个应用层协议#xff0c;是在 HTTP 协议的基础上引入了⼀个加密层. HTTP 协议内容都是按照文本的方式明文传输的。这就导致在传输过程中出现⼀些被篡改的情况. 在互联网上, 明文传输是比较危险的事情!!! HTTPS 就是在 HTTP 的基础上进行了加密…一、HTTPS 是什么 HTTPS 也是⼀个应用层协议是在 HTTP 协议的基础上引入了⼀个加密层. HTTP 协议内容都是按照文本的方式明文传输的。这就导致在传输过程中出现⼀些被篡改的情况. 在互联网上, 明文传输是比较危险的事情!!! HTTPS 就是在 HTTP 的基础上进行了加密, 进⼀步的来保证用户的信息安全。 加密 是什么 加密就是把 明文 (要传输的信息)进行一系列变换生成密文。 解密就是把 密文 再进行一系列变换, 还原成 明文。 在这个加密和解密的过程中, 往往需要⼀个或者多个中间的数据, 辅助进行这个过程, 这样的数据称为 密钥。 二、HTTPS 的工作过程 既然要保证数据安全, 就需要进行 加密. 网络传输中不再直接传输明文了,而是加密之后的 密文. 加密的方式有很多, 但是整体可以分成两大类: 对称加密 和 非对称加密 。 1、对称加密 对称加密其实就是通过同⼀个 密钥 , 把明文加密成密文, 并且也能把密文解密成明文. 我们可能会认为引入对称加密之后, 即使数据被截获, 由于黑客不知道密钥是啥, 因此就无法进⾏解密, 也就不知道请求的真实内容是啥了. 但事情没这么简单. 服务器同⼀时刻其实是给很多客户端提供服务的. 这么多客户端, 每个人用的秘钥都 必须是不同的(如果是相同那密钥就太容易扩散了, 黑客就也能拿到了). 因此 服务器就需要维护每个客户端和每个密钥之间的关联关系。 比较理想的做法, 就是能在客户端和服务器建立连接的时候, 双方协商确定这次的密钥是啥。 但是如果这样直接把密钥明文传输, 那么黑客也就能获得密钥了此时后续的加密操作就形同虚设了. 因此密钥的传输也必须加密传输! 但是要想对密钥进行对称加密, 就仍然需要先协商确定⼀个 密钥的密钥. 在客户端和服务器双方协商的过程中黑客仍能截取到 “密钥的密钥” 此时密钥的传输再用对称加密就行不通了就需要引入非对称加密。 2、非对称加密 非对称加密要用到两个密钥, ⼀个叫做 公钥, ⼀个叫做 私钥. 通过公钥对明文加密, 变成密文通过私钥对密文解密, 变成明文也可以反着用 通过私钥对明文加密, 变成密文 通过公钥对密文解密, 变成明文。 公钥和私钥是配对的. 最大的缺点就是运算速度非常慢比对称加密要慢很多. 这里引入非对称加密主要是对 对称密钥 的传输来进行加密的。 后续的传输仍然使用对称加密。 主要过程如下
服务器生成一对非对称密钥.私钥服务器自己持有.公钥则可以告知任何的客户端.客户端在连上服务器之后,就需要先从服务器这边拿到公钥.(公钥本身就可以公开出去,不需要加密传输客户端生成 对称密钥 ,拿着公钥针对 对称密钥 进行加密.此时就可以把加密之后的密文对称密钥进行传输了.由于要想解密,必须通过私钥,而私钥只有服务器自己知道此时这样的加密的数据就可以比较安全的到达服务器了.服务器通过私钥解密之后得到了对称密钥,接下来和客户端之间的通信就通过对称加密来完成。 那么接下来问题又来了如果这一公钥是黑客伪造的呢 中间人攻击 黑客可以使用中间人攻击, 获取到对称密钥。 过程如下 服务器具有非对称加密算法的公钥S私钥S 中间人具有非对称加密算法的公钥M私钥M 客户端向服务器发起请求服务器明文传送公钥S给客户端 中间人劫持数据报文提取公钥S并保存好然后将被劫持报文中的公钥S替换成为自己的公钥M并将伪造报文发给客户端 客户端收到报文提取公钥M(自己当然不知道公钥被更换过了)自己形成对称秘钥X用公钥M加密X形成报文发送给服务器 中间人劫持后直接用自己的私钥 M 进行解密得到通信秘钥X再用曾经保存的服务端公钥S加密后将报文推送给服务器 服务器拿到报文用自己的私钥 S 解密得到通信秘钥X 双方开始采用X进行对称加密进行通信。但是⼀切都在中间人的掌握中劫持数据进行窃听甚至修改都是可以的。 如图
可见黑客通过伪造公钥仍可获取对称密钥。
那么客户端如何确定这个公钥不是黑客伪造的? 这就需要引入证书了。
3、引入证书 服务端在使用HTTPS前需要向CA机构申领⼀份数字证书数字证书里含有证书申请者信息、公钥信 息等。服务器把证书传输给浏览器浏览器从证书里获取公钥就行了证书就如身份证证明服务端 公钥的权威性。 这个 证书 可以理解成是⼀个结构化的字符串里面包含了以下信息: 证书发布机构证书有效期 公钥证书所有者签名 等 需要注意的是申请证书的时候需要在特定平台生成会同时生成⼀对密钥对儿即公钥和私钥。这对密钥对儿就是用来在网络通信中进行明文加密以及数字签名的。 理解数据签名 签名的形成是基于非对称加密算法的注意目前暂时和https没有关系不要和https中的公钥私钥搞 混。 当服务端申请CA证书的时候CA机构会对该服务端进行审核并专门为该网站形成数字签名过程如 下 CA机构拥有非对称加密的私钥A和公钥A CA机构对服务端申请的证书明文数据进行hash形成数据摘要 然后对数据摘要用CA私钥A加密得到数字签名S 服务端申请的证书明文和数字签名S 共同组成了数字证书 这样⼀份数字证书就可以颁发给服务端了。 通过证书解决中间人攻击 在客户端和服务器刚一建立连接的时候, 服务器给客户端返回⼀个 证书. 这个证书包含了服务器提供的公钥, 也包含了网站的身份信息。 当客户端获取到这个证书之后, 会对证书进行校验( 防止证书是伪造的 ). 判定证书的有效期是否过期 判定证书的发布机构是否受信任(操作系统中已内置的受信任的证书发布机构). 验证证书是否被篡改: 从系统中拿到该证书发布机构的公钥, 对签名解密, 得到一个 hash 值(称为数据摘要), 设为 hash1. 然后计算整个证书的 hash 值, 设为 hash2. 对比 hash1 和 hash2 是否相等. 如果相等, 则说明证书是没有被篡改过的
中间人有没有可能篡改该证书
如果中间人篡改了证书的明文由于他没有CA机构的私钥所以无法hash之后用私钥加密形成签名那么也就没法办法对篡改后的证书形成匹配的签名 。如果强行篡改客户端收到该证书后会发现明文和签名解密后的值不⼀致则说明证书已被篡改证书不可信从而终止向服务器传输信息防止信息泄露给中间人。 中间人整个掉包证书 因为中间人没有CA私钥所以无法制作假的证书 所以中间人只能向CA申请真证书然后用自己申请的证书进行掉包 这个确实能做到证书的整体掉包但是别忘记证书明文中包含了域名等服务端认证信息如果整体掉包客户端依旧能够识别出来。 中间人没有CA私钥所以对任何证书都无法进行合法修改包括自己的。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/919535.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!