SSL/TLS协议

一、使用SSL/TLS的好处

  不使用加密的网络通信有三大风险:

  1.窃听风险:第三方可以获取通信内容

  2.篡改风险:第三方可以修改通信内容

  3.冒充风险:第三方可以冒充他人身份参与通信

  SSL/TLS可以做到:

  1.所有的信息都是加密传播,第三方无法窃听

  2.具有校验机制,一旦被篡改,通信双方会立即发现

  3.配备身份证书,防止身份冒充

二、SSL/TLS的运行过程

  1. 客户端向服务端索要并验证公钥

  2. 双方协商生成会话密钥

  3.双方采用会话密钥进行加密通信

其中,第一二步称为握手阶段,握手阶段时使用的是非对称加密。握手结束后生成一个对话密钥,然后

在整个传输过程使用对称加密进行传输。

三、SSL/TLS握手详解

  握手阶段涉及四次通信。

  1. 客户端发出请求(ClientHello),并提供一下信息

    a)支持的SSL/TLS协议版本

    b)支持的加密算法

    c)支持的压缩算法

    d)产生的一个随机数random_C

  

  2.接受到客户端请求后,服务端回应信息

    a)确定使用的SSL/TLS协议版本

    b)确定使用的加密算法

    c)确定使用的压缩算法

    d)产生的一个随机数random_S

    e)服务端的证书

    f)如果要验证客户端,还有要求客户端证书的请求

  3.客户端收到回应后,验证服务端证书,如果没问题,发送以下信息

    a)产生一个随机数pre-master-key,并且使用服务端数字证书中的公钥加密

    b)编码改变通知,表示随后的信息都由双方商定的加密方法和密钥发送

    c)如果服务端要求验证证书,发送自己的证书

    d)客户端握手结束通知

  4.服务端收到信息,如果有客户端证书,先验证客户端的证书,然后使用自己的私钥对随机数进行解密,

然后用双方协商的加密方法生成本次通话使用的会话密钥session-key,然后回应

    a)编码改变通知

    b)服务端握手结束通知

    

  握手结束,客户端和服务端都有session-key,接下来使用sessioon-key对称加密数据,进行传输。此后

便是传输阶段。

补充: 

1. 对称加密和非对称加密的区别?

  对称加密指的是加密和解密使用的是同一串密钥,常见的对称加密算法有:DES、AES等。而非对称加密

指的是加密和解密使用的是不同密钥,一把是公钥,公开的,用于加密;另一把是私钥,用于解密。公钥加密

的信息,只有私钥能解密。反之,私钥加密的信息,只有公钥能解密。

猜你喜欢

转载自www.cnblogs.com/along4396/p/12001579.html