美文网首页
https原理和流程

https原理和流程

作者: Jack_Ren | 来源:发表于2018-05-29 13:00 被阅读6次

    https原理和流程

    https实际上是使用SSL/TLS对传输数据进行加密的HTTP通信.
    如果不使用SSL/TLS的话, 所有的数据是明文传输, 很容易被截取进行中间人攻击.带来的风险有:

    1. 窃听风险: 第三方可以获知通信内容.
    2. 篡改风险: 第三方可以修改通信内容.
    3. 冒充风险: 第三方可以冒充他任身份进行通信.

    使用SSL/TSL协议可以规避这些风险:

    1. 所有信息都是加密传播,第三方无法窃听。
    2. 具有校验机制,一旦被篡改,通信双方会立刻发现。
    3. 配备身份证书,防止身份被冒充。

    基本的运行过程:

    基本的运行过程是, 客户端先向服务器索要公钥, 然后用公钥加密信息, 服务器收到密文后, 用自己的私钥解密.
    但是这里面有两个个问题:

    1. 如何保证公钥可信?

    解决方法:
    公钥放在数字证书中, 证书颁发机构作为公钥背书.

    1. 公钥加密计算量太大,效率不高.

    解决方法:
    每一次会话, 单独生成一个对话密钥(session-key), 用他来解密信息.
    由于对话密钥是对称加密, 所以加密和解密速度都非常快.
    服务器公私钥只用来加密解密对话密钥.

    具体的流程:

    开始加密通信之前,客户端和服务器首先必须建立连接和交换参数,这个过程叫做握手(handshake)。

    假定客户端叫做爱丽丝,服务器叫做鲍勃,整个过程如下:

    1. 爱丽丝给出协议版本号、一个客户端生成的随机数(Client random),以及客户端支持的加密方法。
    1. 鲍勃确认双方使用的加密方法,并给出数字证书、以及一个服务器生成的随机数(Server random)。
    1. 爱丽丝确认数字证书有效,然后生成一个新的随机数(Premaster secret),并使用数字证书中的公钥,加密这个随机数,发给鲍勃。
    1. 鲍勃使用自己的私钥,获取爱丽丝发来的随机数(即Premaster secret)。
    1. 爱丽丝和鲍勃根据约定的加密方法,使用前面的三个随机数,生成"对话密钥"(session key),用来加密接下来的整个对话过程。

    其中关键是第三步, 由客户端生成的随机数, 使用公钥加密. 即使中间人获得这个数据, 因为没有私钥, 也无法获得通信内容.

    相关文章

      网友评论

          本文标题:https原理和流程

          本文链接:https://www.haomeiwen.com/subject/yooojftx.html