浅谈HTTP 和 HTTPS的区别

HTTP 和 HTTPS 的区别

无论是在校学习还是找工作的时候,老师和面试官都问过同学 HTTP 和 HTTPS 的区别。

HTTP和HTTPS是计算机网络中很重要的知识点,面试的时候很容易被问他们的区别,可能每个人都会有自己理解;

1.什么是HTTP?

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法。它可以使浏览器更加高效。

HTTP 协议是以明文方式发送信息的,如果黑客截取了 Web 浏览器和服务器之间的传输报文,就可以直接获得其中的信息。

2.HTTP和HTTPS的原理:

HTTP 原理:

  • 客户端的浏览器首先要通过网络与服务器建立连接,该连接是通过 TCP 来完成的,一般 TCP 连接的端口号是80。 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URI)、协议版本号,后边是 MIME 信息包括请求修饰符、客户机信息和许可内容。

  • 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是 MIME 信息包括服务器信息、实体信息和可能的内容。

HTTPS:

以安全为目标的 HTTP 通道,是 HTTP 的安全版。HTTPS 的安全基础是 SSL。SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。SSL 协议可分为两层:SSL 记录协议(SSL Record Protocol),它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL 握手协议(SSL Handshake Protocol),它建立在 SSL 记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

3.HTTP常见状态码。

  1. 100 Continue表示继续,一般在发送post请求时,已发送了 HTTP header之后,服务器端将返回此信息,表示确认,之后发送具体参数信息。
  2. 200 OK表示正常返回信息
  3. 201 Created表示请求成功并且服务器创建了新的资源。
  4. 202 Accepted表示服务器已接受请求,但尚未处理。
  5. 01 Moved Permanently表示请求的网页已永久移动到新位置。
  6. 02 Found表示临时性重定向。
  7. 03 See Other表示临时性重定向,且总是使用GET请求新的URI。
  8. 04 Not Modified表示自从上次请求后,请求的网页未修改过,HTTPS 的连接过程
  9. 400 Bad Request表示服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求 。
  10. 401 Unauthorized表示请求未授权。
  11. 403 Forbidden表示禁止访问。
  12. 404 Not Found表示找不到如何与URI相匹配的资源。
  13. 500 Internal Server error表示最常见的服务器端错误。
  14. 503 Service Unavailable表示服务器端暂时无法处理请求(可能是过载或维护)。

4.完整的HTTP事务流程是怎样的?

基本流程如下:

  1. 域名解析。
  2. 发起TCP的3次握手。
  3. 建立TCP连接后发起HTTP请求。
  4. 服务器端响应HTTP请求,浏览器得到HTML代码。
  5. 浏览器解析HTML代码,并请求HTML代码中的资源。
  6. 浏览器对页面进行渲染并呈现给用户。

5.HTTP与HTTPS有什么联系

HTTP通常承载于TCP之上,在HTTP和TCP之间添加一个安全协议层(SSL或TSL),这个时候,就成了我们常说的HTTPS。HTTP默认的端口号为80,Https默认的端口号为443。

6.什么是HTTP无状态协议?如何克服HTTP无状态协议的缺陷?

  1. 无状态协议对于事务处理没有记忆能力。缺少状态意味着如果后续需要处理,需要前面提供的信息。
  2. 克服无状态协议缺陷的办法是通过 cookie和会话保存信息。

7.HTTP的请求报文和响应报文包含哪些部分?

报文包含3部分:

  1. 请求行,包含请求方法、URI、HTTP版本信息。
  2. 请求首部字段。
  3. 请求内容实体。

报文包含3部分:

  1. 状态行,包含HTTP版本、状态码、状态码的原因短语。
  2. 响应首部字段。
  3. 响应内容实体。

8.HTTP中有哪些请求方式?

  • GET:请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL,给服务器传递参数数据
  • POST:传输信息给服务器,主要功能与GET方法类似,但传递的数据量通常不受限制。
  • PUT:传输文件,报文主体中包含文件内容,保存到对应URI位置。
  • HEAD:获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。
  • DELETE:删除文件,与PUT方法相反,删除对应URL位置的文件。
  • OPTIONS:查询相应URI支持的HTTP方法。

9.HTTP协议中1.0版本规范与1.1版本规范的区别是什么?

在HTTP1.0中,当建立连接后,客户端发送一个请求,服务器端返回一个信息后就关闭连接,当浏览器下次请求的时候又要建立连接。显然,这种不断建立连接的方式会造成很多问题。

在HTTP1.1中,引入了持续连接的概念。通过这种连接,浏览器可以在建立一个连接之后,发送请求并得到返回信息,然后继续发送请求再次等到返回信息。也就是说,客户端可以连续发送多个请求,而不用等待每一个响应的到来。

10、HTTP的首部字段包括哪些类型?

1.用首部字段(请求报文与响应报文都会使用的首部字段)

它包括以下几部分:

  • Date:创建报文的时间
  • Connection:连接的管理
  • Cache- Control:缓存的控制
  • Transfer- Encoding:报文主体的传输编码方式

2.请求首部字段(请求报文会使用的首部字段)

它包括以下几部分:

  • Host:请求资源所在服务器。
  • Accept:可处理的媒体类型。
  • Accept-Charset:可接受的字符集。
  • Accept- Encoding:可接受的内容编码。
  • Accept- Language:可接受的自然语言。

3.响应首部字段(响应报文会使用的首部字段)

它包括以下几部分:

  • Accept- Ranges:可接受的字节范围。
  • Location:令客户端重新定向到的URL。
  • Server : HTTP服务器的安装信息

4.实体首部字段(请求报文与响应报文的实体部分使用的首部字段)

它包括以下几部分:

  • Allow:资源可支持的HTTP方法。
  • Content-Type:实体主体的类型。
  • Content- Encoding:实体主体使用的编码方式。
  • Content-Language:实体主体的自然语言。
  • Content- Length:实体主体的字节数。
  • Content- Range:实体主体的位置范围,一般用于发出部分请求时使用。

11.如何优化HTTP请求?

  • 负载均衡优化和加速HTTP应用请求;

  • HTTP缓存来优化网站请求。

12.HTTP协议有哪些特征?

支持客户端/服务器模式,简单快速,灵活,无连接,无状态。

13.HTTP1.1版本的新特性有哪些?

新特性如下所示:

1.默认持久连接,节省通信量,只要客户端服务端中任意一端没有明确指出断开TCP连接,就一直保持连接,可以多次发送HTTP请求。

2.管线化,客户端可以同时发出多个HTTP请求,而不用一个个等待响应。

3.断点续传原理。

14.与HTTPS相比,HTTP有什么缺点?

1.通信使用明文,不加密,内容可能被窃听,也就是被抓包分析。

2.验证通信方身份,可能遭到伪装。

3.验证报文完整性,可能被篡改。 HTTPS就是HTTP+加密处理(一般是SSL安全通信线路)+认证+完整性保护。

15.HTTP1.1版本的新特性有哪些?

1.默认持久连接,节省通信量,只要客户端服务端中任意一端没有明确指出断开TCP连接,就一直保持连接,可以多次发送HTTP请求。 2.管线化,客户端可以同时发出多个HTTP请求,而不用一个个等待响应。 3.断点续传原理。

16.HTTP 与 HTTPS 的区别

1.HTTPS 协议需要到 CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。

2.HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议。

3.HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4.HTTP 的连接很简单,是无状态的。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。(无状态的意思是其数据包的发送、传输和接收都是相互独立的。无连接的意思是指通信双方都不长久的维持对方的任何信息。)

17.HTTPS 的优点

1.使用 HTTPS 协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。

2.HTTPS 协议是由SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比 HTTP 协议安全,可防止数据在传输过程中不被窃取、修改,确保数据的完整性。

3.HTTPS 是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

18.HTTPS 的缺点(对比优点)

1.HTTPS 协议握手阶段比较费时,会使页面的加载时间延长近。

2.HTTPS 连接缓存不如 HTTP 高效,会增加数据开销,甚至已有的安全措施也会因此而受到影响。

3.HTTPS 协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎起不到什么作用。

4.SSL 证书通常需要绑定 IP,不能在同一 IP 上绑定多个域名,IPv4 资源不可能支撑这个消耗。

5.成本增加。部署 HTTPS 后,因为 HTTPS 协议的工作要增加额外的计算资源消耗,例如 SSL 协议加密算法和 SSL 交互次数将占用一定的计算资源和服务器成本。

6.HTTPS 协议的加密范围也比较有限。最关键的,SSL 证书的信用链体系并不安全,特别是在某些国家可以控制 CA 根证书的情况下,中间人攻击一样可行。

19.HTTPS如何解决HTTP的问题

1.HTTPS 只是在 HTTP 的基础之上增加了加密处理、认证机制和完整性保护,即 HTTPS = HTTP + 加密 + 认证 + 完整性保护,

  • 加密,HTTPS 通过对数据加密来使其免受窃听者对数据的监听,这就意味着当用户在浏览网站时,没有人能够监听他和网站之间的信息交换,或者跟踪用户的活动,访问记录等,从而窃取用户信息。
  • 数据一致性,数据在传输的过程中不会被窃听者所修改,用户发送的数据会完整的传输到服务端,保证用户发的是什么,服务器接收的就是什么。
  • 身份认证,是指确认对方的真实身份,也就是证明你是你(可以比作人脸识别),它可以防止中间人攻击并建立用户信任。

2.HTTPS 不是应用层的一种新协议,只是 HTTP 协议的改进(HTTP协议中的部分通信接口被ssl/tls协议代替),通常 HTTP 直接与 TCP 进行通信,当使用 ssl 协议时则先与 ssl 通信,再由 ssl 和 tcp 通信,

3.通过上面的分析可以看出来,HTTPS 只是在 HTTP 的基础上增加了 ssl 协议;

20.SSL和TSL

SSL是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”,其出现就是为了解决HTTP传输不安全的问题;到了1999年,SSL被标准化,标准化之后的名称改为 TLS(是“Transport Layer Security”的缩写),中文叫做“传输层安全协议”,所以这两者其实就是同一种协议,只不过是在不同阶段的不同称呼。

SSL协议是位于TCP/IP协议与各种应用层协议之间,为数据通信提供安全支持,可分为两层:

  • SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
  • SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

所以,SSL协议提供的服务有:

  • 认证用户和服务器,确保数据发送到正确的客户端和服务器;

  • 加密数据以防止数据中途被窃取;

  • 维护数据的完整性,确保数据在传输过程中不被改变。

细心可能会发现,这不还是HTTPS解决HTTP的那几个问题吗?对,还是实现加密处理、认证机制和完整性保护由此也可以看出SSL协议的重要性,这也是HTTP和HTTPS之间的主要区别。

21.加密

通常加密分为对称加密、非对称加密和混合加密。

1.对称加密

  • 对称加密,又被成为私钥加密,即信息的发送方和接收方使用同一个秘钥去加密和解密信息,它采用了对称密码编码技术;
  • 对称加密算法密钥较短,破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,且对计算机性能要求也没有那么高。

优点:

算法公开、计算量小、加密速度快、加密效率高

缺点:

1.数据传送之前,发送方和接收方需要协商好秘钥,然后两方都要保存好秘钥,如果任意一方不慎将秘钥泄露信息加密就会变得不再安全;

2.每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担;

3.对称加密算法一般不能提供信息完整性的鉴别。它无法验证发送者和接受者的身份;

2.非对称加密

与对称加密算法不同,非对称加密算法需要使用两个秘钥:公开秘钥、私有秘钥;

公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

非对称加密算法实现机密信息交换的基本过程是:

甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。

优点:安全

缺点:速度比较慢

常见的非对称加密算法有: RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)

3.混合加密

结合对称加密和非对称加密的优缺点,混合使用两种加密算法而产生混合加密,TLS中也是使用的这种加密方式;

实现过程:

首先,使用非对称加密,用来传输对称加密的秘钥,以此可解决对称加密传输过程不安全的问题;然后用随机数产生对称算法使用的,再用公钥加密。对方拿到密文后用私钥解密,取出会话密钥。这样,双方就实现了对称密钥的安全交换。

22.说说TCP传输的三次握手、四次挥手策略

为了准确无误地把数据送达目标处,TCP采用了三次握手策略。用TCP把数据包发送出去后,TCP不会对传送后的数据置之不理,它一定会向对方确认是否成功送达。握手过程中使用了TCP的标志,即SYN和ACK。

发送端首先给接收端发送一个带SYN标志的数据包。接收端收到后,回传一个带有SYN/ACK标志的数据包以表示正确传达,并确认信息。最后,发送端再回传一个带ACK标志的数据包,代表“握手”结東。若在握手过程中的某个阶段莫名中断,TCP会再次以相同的顺序发送相同的数据包。

断开一个TCP连接则需要“四次握手”。

第一次握手:主动关闭方发送一个FIN,用来关闭主动关闭方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方,主动关闭方已经不会再给被动关闭方发送数据了(当然,在FIN包之前发送出去的数据,如果没有收到对应的ACK确认报文主动关闭方依然会重发这些数据),但是,此时主动关闭方还可以接收数据。

第二次握手:被动关闭方收到FIN包后,给对方发送一个ACK,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。

第三次握手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,被动关闭方的数据也发送完了,不会再给主动关闭方发送数据了。

第四次握手:主动关闭方收到FIN后,给被动关闭方发送一个ACK,确认序号为收到序号+1,至此,完成四次握手。

23.TCP和UDP的区别

TCP( Transmission control protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过3次“对话”才能建立起来。

UDP( User Datagram Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。UDP适用于次只传送少量数据、对可靠性要求不高的应用环境。

24.一个页面从输入URL到页面加载显示完成,这个过程中都发生了什么?

整个过程可分为4个步骤。

1.当发送一个URL请求时,不管这个URL是Web页面的URL还是Web页面上毎个资源的URL,浏览器都会开启一个线程来处理这个请求,同时在远程DNS服务器上启动一个DNS查询。这能使浏览器获得请求对应的IP地址。

2.浏览器与远程Web服务器通过TCP三次握手协商来建立一个TCPP连接。该握手包括一个同步报文、一个同步-应答报文和一个应答报文,这3个报文在浏览器和服务器之间传递。该握手首先由客户端尝试建立起通信,然后服务器应答并接受客户端的请求,最后由客户端发出已经接受该请求的报文。

3.一旦TCP/IP连接建立,浏览器会通过该连接向远程服务器发送HTTP的GET请求。远程服务器找到资源并使用HTTP响应返回该资源,值为200的HTTP响应状态码表示一个正确的响应

4.此时web服务器提供资源服务,客户端开始下载资源。请求返回后,便进入了浏览器端模块。浏览器会解析HTML生成 DOM Tree,其次会根据CSS生成CSS规则树,而 JavaScript又可以根据 DOM API操作DOM。

25.网络分层模型有哪七层?

七层分别是应用( Application)层、表示( Presentation)层、会话( Session)层传输( Transport)层、网络( Network)层、数据链路(Link)层和物理( Physical)层。

  • 应用层:允许访问OSI环境的手段。
  • 表示层:对数据进行翻译、加密和压缩。
  • 会话层:建立、管理和终止会话。
  • 传输层:提供端到端的可靠报文传递和错误恢复。
  • 网络层:负责数据包从源到宿的传递和网际互联。
  • 数据链路层:将比特组装成帧并实现点到点的传递。
  • 物理层:通过媒介传输比特,确定机械及电气规范。

26.304缓存的原理

  • 服务器首先为请求生成ETag,服务器可在稍后的请求中,使用它来判断页面是否已经修改。本质上,客户端通过将该记号传回服务器要求服务器验证其(客户端)是否缓存。

  • 304是HTTP状态码,服务器用它来标识这个文件没有修改,不返回内容,浏览器在接收到个状态码后,会使用浏览器已缓存的文件。

  • 客户端请求页面A。服务器返回页面A,并给A加上一个ETag。客户端展现该页面,并将页面连同ETag一起缓存。

  • 客户端再次请求页面A,并将上次请求时服务器返回的ETag起传递给服务器。

  • 服务器检查该ETag,并判断岀该页面自上次客户端请求之后还未被修改,直接返回响应304(未修改一 Not modified)和一个空的响应体

27.什么是Etag

当发送一个服务器请求时,浏览器首先会进行缓存过期判断。浏览器根据缓存过期时间判断缓存文件是否过期若没有过期,则不向服务器发送请求,直接使用缓存中的结果。

此时,我们在浏览器控制台中可以看到200 OK( from cache),这种情况就是完全使用缓存,浏览器和服务器没有任何交互。

若已过期,则向服务器发送请求。此时,请求中会带上文件修改时间和Etag,然后进行资源更新判断。

服务器根据浏览器传过来的文件修改时间,判断自浏览器上一次请求之后,文件是否被修改过。根据Etag,判断文件内容自上一次请求之后,有没有发生变化。

若两种判断的结论都是文件没有被修改过,服务器就不给浏览器发送新的内容,而是直接告诉浏览器,文件没有被修改过,可以继续使用缓存—-304 Not Modified。

此时,浏览器就会从本地缓存中获取请求资源的内容,这种情况叫协议缓存,浏览器和服务器之间有一次请求交互。

若修改时间或文件内容判断中有任意一个没有通过,则服务器会受理此次请求,并返回新的数据注意,只有get请求会被缓存,post请求不会。

28.ETag的应用

Etag由服务器端生成,客户端通过 If-Match或者If-None- Match这个条件判断请求来验证资源是否修改。常见的是使用I-None- Match。请求一个文件的流程如下。

第一次请求时,客户端发起 Http Get请求,以获取一个文件,服务器处理请求,返回文件内容和请求头(包括Eag),并返回状态码200第二次请求时,客户端发起 Http Get请求,以获取一个文件。

注意,这个时候客户端同时发送一个If-None- Match头,这个头的内容就是第一次请求时服务器返回的Etag服务器判断发送过来的Etag和计算出来的Etag是否匹配。

如果If- None-Match为 False,不返回200,返回304,客户端继续使用本地缓存。

如果服务器设置了 Cache- Control:max-age和 Expires,服务器端在完全匹配 If-Modified- Since和 If-None-Match后,即检查完修改时间和Etag之后,才能返回304。

29.Expires和 Cache- Control的作用是什么?

Expires要求客户端和服务器端的时间严格同步。HTTP1.1引入Cache-Control来克服 Expires头的限制。如果max-age和 Expires同时出现,则max-age有更高的优先级。

具体代码如下所示。

Cache-Control:no-cache, private, max-age=0
ETag:"8b4c-55f16e2e30000"
Expires:Thu, 02 Dec 2027 11:37:56 GMT
Last-Modified:Wed, 29 Nov 2017 03:39:44 GMT

30.什么是反向代理?

反向代理( Reverse Proxy)是指通过代理服务器来接收互联网上的连接请求,然后将请求转发给内部网络上的服务器,并把从服务器上得到的结果返回给互联网上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

31.HTTPS的连接过程

HTTPS的连接过程
HTTPS的连接过程

1.客户端的浏览器向服务器发送请求,并传送客户端 SSL 协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各种信息。

2.服务器向客户端传送 SSL 协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器还将向客户端传送自己的证书。

3.客户端利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的 CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的 "发行者的数字签名",服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行第四步。

4.用户端随机产生一个用于通讯的 "对称密码",然后用服务器的公钥(服务器的公钥从步骤②中的服务器的证书中获得)对其加密,然后将加密后的“预主密码”传给服务器。

5.如果服务器要求客户的身份认证(在握手过程中为可选),用户可以建立一个随机数然后对其进行数据签名,将这个含有签名的随机数和客户自己的证书以及加密过的密钥一起传给服务器。

6.如果服务器要求客户的身份认证,服务器必须检验客户证书和签名随机数的合法性,具体的合法性验证过程包括:客户的证书使用日期是否有效,为客户提供证书的 CA 是否可靠,发行 CA 的公钥能否正确解开客户证书的发行 CA 的数字签名,检查客户的证书是否在证书废止列表(CRL)中。检验如果没有通过,通讯立刻中断;如果验证通过,服务器将用自己的私钥解开加密的私钥,然后执行一系列步骤来产生主通讯密码(客户端也将通过同样的方法产生相同的主通讯密码)。

7.服务器和客户端用相同的对称加密密钥,对称密钥用于 SSL 协议的安全数据通讯的加解密通讯。同时在 SSL 通讯过程中还要完成数据通讯的完整性,防止数据通讯中的任何变化。

8.客户端向服务器端发出信息,指明后面的数据通讯将使用的步骤 ⑦ 中的主密码为对称密钥,同时通知服务器客户端的握手过程结束。

9.服务器向客户端发出信息,指明后面的数据通讯将使用的步骤 ⑦ 中的主密码为对称密钥,同时通知客户端服务器端的握手过程结束。

10.SSL 的握手部分结束,SSL 安全通道的数据通讯开始,客户和服务器开始使用相同的对称密钥进行数据通讯,同时进行通讯完整性的检验。

上述的过程需要弄懂的核心思想

客户端解析证书

这部分工作是由客户端的 TLS 来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个对称加密密钥,然后用公钥对该密钥进行非对称加密。

传送加密信息

这部分传送的是用公钥加密后的对称加密密钥,目的就是让服务端得到这个密钥,以后客户端和服务端的通信就可以通过这个密钥来进行加密解密了。

服务端解密信息

服务端用非对称加密算法里的私钥解密后,得到了客户端传过来的对称加密算法的私钥,然后把之后传输的内容通过该值进行对称加密。

为什么用非对称加密协商对称加密密钥

对称加密的特点:对称密码体制中只有一种密钥,并且是非公开的。如果要解密就得让对方知道密钥,所以想要保证其安全性就要保证密钥的安全。

非对称加密的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了,这样安全性就大了很多。

非对称加密公钥和私钥的使用方法:

1.公钥加密私钥解密。

2.私钥做数字签名,公钥验证。

SSL提供服务

1.认证用户和服务器,确保数据发送到正确的客户机和服务器;

2.加密数据以防止数据中途被窃取;

3.维护数据的完整性,确保数据在传输过程中不被改变。

SSL工作流程

  • 服务器认证阶段:

1.客户端向服务器发送一个开始信息 "Hello" 以便开始一个新的会话连接;

2.服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的 "Hello" 信息时将包含生成主密钥所需的信息;

3.客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;

4.服务器回复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。

  • 用户认证阶段:

在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。

SSL 协议提供的安全通道有以下三个特性:

机密性:SSL 协议使用密钥加密通信数据。

可靠性:服务器和客户都会被认证,客户的认证是可选的。

完整性:SSL 协议会对传送的数据进行完整性检查。

服务器证书(server certificates)是 SSL 数字证书的一种形式,意指通过提交数字证书来证明您的身份或表明您有权访问在线服务。再者简单来说,通过使用服务器证书可为不同站点提供身份鉴定并保证该站点拥有高强度加密安全。是组成 Web 服务器的 SSL 安全功能的唯一的数字标识。通过相互信任的第三方组织获得,并为用户提供验证您 Web 站点身份的手段。服务器证书包含详细的身份验证信息,如服务器内容附属的组织、颁发证书的组织以及称为公开密钥的唯一的身份验证文件。

关注微信公众号,互相监督学习进步!

微信公众号

参考资料

[1]

HTTP和HTTPS: https://blog.csdn.net/qq_38289815/article/details/80969419?ops_request_misc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值