https与http区别简介以及SSL工作方式

  • HTTPS系列一:HTTPS简介
  • HTTPS系列二:SSL如何工作?
  • HTTPS系列一:HTTPS简介

    HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版,是使用 TLS/SSL 加密的 HTTP 协议。

    HTTPS系列二:TLS/SSL如何工作?

    TLS/SSL 全称安全传输层协议 Transport Layer Security, 是介于 TCP 和 HTTP 之间的一层安全协议,不影响原有的 TCP 协议和 HTTP 协议,所以使用 HTTPS 基本上不需要对 HTTP 页面进行太多的改造。TSL/SSL的工作主要包括SSL握手和数据传输加密,涉及到的加密分为两种:<strong>非对称加密和对称加密,很懵逼,来带你看看下面的两张图:

    1. 非对称加密:

    非对称加密使用一对密钥来加密和解密数据。其中一个密钥会作为公钥发送给通信的对手方(Client);另一个密钥则作为私钥保存(Server)。在非对称加密算法下,我们可以使用私钥来加密数据,只有与该私钥对应的公钥才能用来解密这份加密后的数据。

    比如web服务器想发送“hello world”给客户端,又不想让别人看见,就可以用私钥加密“hello world”,传输到客户端,客户端收到数据后用公钥就可以解密出来.

    https与http区别简介以及SSL工作方式

    非对称加密

    实际TSL/SSL使用非对称加密方式来发起SSL握手,

    SSL握手

    SSL通信始于SSL握手。<strong>SSL握手是一种非对称加密方式,它允许浏览器验证服务器,获取公钥并在传输实际数据前建立起一个安全的连接。具体握手的过程参考如下图所示:


    https与http区别简介以及SSL工作方式

    非对称加密算法的SSL握手-1

    https与http区别简介以及SSL工作方式

    非对称加密算法的SSL握手-2

  • 客户端(浏览器)向web服务器发送一个Client hello消息。消息中包括客户端的SSL版本号、加密设置、session数据以及其它web服务器需要用来和客户端进行SSL通信的信息。
  • web服务器回复Server hello消息。消息中包括服务器的SSL版本号、加密设置、session数据、<strong>SSL证书(附带公钥),以及其它客户端需要用来和服务器进行SSL通信的信息。
  • 客户端向CA(证书签发机构)验证SSL证书的有效性。如果验证失败,客户端拒绝SSL连接并且抛出异常;如果验证成功,则继续下面的流程。
  • <strong>客户端创建一个session key,并使用服务器发送过来的公钥对其进行加密后发送给服务器(step5)。在某些情况下,比如客户端是另外一台web 服务器,这个时候服务器可能会要求对客户端进行认证,那客户端也需要将自己的证书发给服务器。
  • 服务器使用私钥对获取到的加密后的session key进行解密,然后向客户端发送使用session key进行加密的通知信息。
  • SSL握手结束后,<strong>客户端和服务器都拿到了一个有效的session key。这个session key将被用来在后续的数据传输过程中对数据进行加密和解密,这就是握手的过程,主要产生"会话秘钥".

    2.对称加密

    在对称加密协议下,加密和解密的密钥是用一个,数据的发送方和接收方都应该持有这个密钥。SSL协议下,在通信双方完成SSL握手之后,会使用session key来作为对称加密密钥进行数据传输。

    其它比较常见的对称加密算法还包括AES-128,AES-192和AES-256。


    https与http区别简介以及SSL工作方式

    对称加密的数据传输

    SSL进行数据传输

    SSL协议下的实际数据传输,主要是基于session key的对称加密算法来实现的。


    https与http区别简介以及SSL工作方式

    对称加密的数据传输

    SSL总体上依靠非对称和对称加密算法来工作。在现实中,SSL还需要依赖PKI(Public Key Infrastructure)来完成通信。

    总结下TLS/SSL 的基本工作方式是,

    第一阶段:客户端使用非对称加密与服务器进行通信,实现身份验证并协商对称加密使用的密钥,这阶段叫会话秘钥磋商,

    第二阶段:然后对称加密算法采用协商密钥对信息以及信息摘要进行加密通信,不同的节点之间(客户端与服务器)采用的对称密钥不同,从而可以保证信息只能通信双方识别。

    后续为学习下如何下载申请CA证书,以及开源openssl使用,敬请期待.


    引用参考:

    https://www.tutorialsteacher.com/https/how-ssl-works

    https://zhuanlan.zhihu.com/p/101058747?utm_source=wechat_session&utm_medium=social&utm_oi=630166279156273152

    https://blog.csdn.net/cout__waht/article/details/80859369?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task


    分享到:


    相關文章: