当前位置: 首页 > news >正文

HTTPS 相关知识

目录

1 HTTPS 是什么

2 什么是加密

3 HTTPS 的工作过程

3.1 对称加密

3.2 非对称加密

3.3 中间人攻击

3.4 校验机制


1 HTTPS 是什么

        HTTPS 也是一个应用层协议,从名字上可以看出 HTTPS 和 HTTP 的区别在于多了一个 S,这个 S 表示 SSL/TLS(是用来加密的协议,其中由于 SSL 有很多漏洞,所以现在大多使用 TSL ,可以看作 TSL 是 SSL 的升级版)。

        在网络通信中,使用明文传输是一件很危险的事情,这就意味着其他人(黑客、运营商等)可以看到我们传输的数据,就像在打仗的时候,传递信息就会通过加密的方式以免被敌方看到自己发送的信息的具体内容。为了保证数据传输的安全,在 HTTP 的基础上进行加密这就有了 HTTPS。

2 什么是加密

        所谓的加密,就是把明文转换成别人看不懂的密文;解密就是把别人看不懂的密文,转换为能看得懂的明文。

        在进行加密解密的时候,需要使用一个辅助的工具就是密钥。

        (就像我之前在某一部电视剧中看到的,双方都有一本《诗经》,在发电报的时候使用很多组合在一起没有意义的数字表示他们要发送的情报,这些数字代表的是某一个字在《诗经》中的第几页第几行的第几个字,在收到电报之后,他们通过这些数字对照《诗经》就能知道电报的真实内容。那么对于不知道他们这种加密方式的人来说,这个电报的信息他们就不会知道了。其中《诗经》就是他们在加密解密中使用的“密钥”。)

3 HTTPS 的工作过程

        HTTPS 加密的方式有很多种,但是大致上分为两类:对称加密和非对称加密。

3.1 对称加密

        对称加密就是加密和解密使用的是同一个密钥,这个密钥既可以把明文转换为密文,也可以把密文转换为明文。使用密钥加密之后,在进行通信的时候就不需要进行明文传输了。

        但是有一个问题是:服务器和客户端在一开始传输密钥信息的时候是明文传输,那么这个密钥就可以被别人获取到,那么之后再传输的加密的信息的时候,这个加密就形同虚设了。

        因此,我们可以通过非对称加密的方式对这个密钥信息进行加密。

3.2 非对称加密

        对于非对称加密来说,存在两个密钥:公钥和私钥。公钥就是可以公布给大众的,私钥就是自己保留的。可以使用公钥加密私钥解密,也可以使用公钥解密私钥加密。

       客户端通过公钥给对称密钥进行加密传送(客户端的公钥从何而来,因为公钥是可以公布给大众的,所以服务器直接通过明文传送给客户端就可以了),服务端通过私钥给对称密钥解密从而得到对称密钥,之后就可以通过对称密钥加密要传送的请求进行通信了。

        这样就能解决对称加密的问题了。

        但是又出现了一个问题:客户端怎么确保拿到的公钥就是服务器要给自己的公钥呢?其实是无法确保的,因为中间被入侵的网络设备可以通过一些操作对公钥的信息进行修改,这就是中间人攻击。

3.3 中间人攻击

        所谓的中间人攻击,就是在使用公钥私钥加密对称密钥的时候,如果中间的网络设备将这个公钥传送的时候改为自己的公钥,然后自己保留私钥,那么客户端使用更改过的公钥进行加密对称密钥的时候经过这个网络设备,黑客就可以用自己的私钥解密拿到对称密钥,然后通过原来服务器的公钥进行加密之后再传输给服务器。这样就神不知鬼不觉的拿到了对称密钥。这种由中间的设备获取到对称密钥的行为就叫做“中间人攻击”。

        那么如何保证这个由服务器发出的公钥能够不被中间人修改呢?

3.4 校验机制

        上述的问题,是因为这个公钥能够被纂改引起的,那么我们就让这个公钥无法被篡改就好了。

        服务器在使用 HTTPS 之前,服务器先把自己的有关材料提交给 CA机构(证书颁发机构,是负责颁发、管理和验证数字证书的权威机构)向他们申请一份数字证书(这个数字证书中需要包含很多信息,例如:证书的颁发机构、证书的有效期、申请者的公钥、申请者的域名,数字签名等等。)

        具体的流程如下图所示:

        数字签名本质上是一个被加密的校验和,CA机构对数字证书中的信息通过一些算法对这些信息进行计算,然后得到一个校验和,把这个校验和也保存在这个证书中。在服务器和客户端通信之前,客户端先查看服务器的证书,拿到证书之后对证书中的信息通过同样的算法进行计算得到一个校验和,如果自己计算得到的这个校验和和服务器证书中的校验和一致,说明这个证书是真的,可以相信这个公钥,然后通过这个公钥再进行一系列的操作。(这里要注意的是这个校验和类似于 hash 函数,就是相同的值通过计算就会得到相同的值)

        这个时候又出现问题了:

  • 客户端如何对获得这个被加密的校验和也就是数字签名?在计算机的操作系统中内置了可以解密的公钥。
  • 既然数字证书的传输也会通过这个中间设备,那么黑客还是可以知道这个公钥?公钥被知道也没有关系,只要它没有私钥就无法对我们的密文进行解密,也就获取不到信息。
  • 黑客把证书中的公钥改成自己的公钥怎么办?这个是行不通的,因为一旦数字证书中的公钥被修改,那么修改过后的数字证书的数字签名就和原来的对应不上,而且无法对这个数字签名进行加密了(黑客没有CA机构的私钥,并且如果使用自己的私钥那么客户端在收到之后使用CA机构的公钥无法解密)。
  • 黑客自己申请一个数字证书发送给客户端,然后替换服务器的证书?这个也是行不通的,因为一旦替换了证书,和上面的问题一样,校验和就会不一样,因为没有办法保证这个数字证书和服务器的数字证书一样,最起码域名就是不一样的。

        所以使用数字证书就很好地解决了中间人攻击的这个问题。

http://www.dtcms.com/a/550947.html

相关文章:

  • 石家庄网站开发公司电话wordpress页面切换
  • 有关网站建设新闻资讯wordpress修页面链接
  • 医院网站建设情况该如何建设和优化一个网站
  • h5响应式网站技术wordpress 有道云笔记
  • 旅游网站开发的需求手机设计企业网站
  • 做外贸网站特色重庆网页设计公司排名
  • 网站开发 站长统计电影网站做流量吗
  • 建一个购物网站多少钱常见网站开发的语言
  • 网站缓存设置怎么做沈阳网站建设成创
  • Alternating least squares for CANDECOMP/PARAFAC (CP) Decomposition
  • 景安建网站网页网站制作培训班
  • 【设计模式】适配器模式大白话讲解!
  • 西安公司网站建设哪家专业学做软件的网站
  • 四川酒店网站建设seo的中文意思
  • 泰安本地网站老版建设银行网站
  • 简单炫酷的网站百度竞价网站
  • 定制营销型网站做网站被网监叫去很多次
  • 东莞网站包年优化一站式网站建设平台
  • 网站如何做360优化小程序开发费用一览表
  • 302-Spring AI Alibaba MCP NL2SQL 示例
  • 网站音频播放器代码一个平台怎么推广
  • Rust 过程宏开发入门:元编程的艺术与实践
  • 热 动漫-网站正在建设中-手机版6网站上的字体大小
  • 长沙建网站公司网上商城电商项目
  • 网站的主要功能网站建设分几种编程语言
  • 网站编辑做seo好做吗网络推广的公司
  • 工程化(八股)
  • 百度云搭建网站商城网站的建设方案
  • 网站做电商资质吗西安有没有网站建设和营销的培训
  • 汕头模板自助建站叫别人做网站要注意什么