TLS传输层安全性协议(Transport Layer Security)及其前身SSL安全套接层(Secure Sockets Layer)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障,TLS/SSL协议位于网络OSI七层模型的会话层,用来加密通信。
 TLS传输层安全性协议(Transport Layer Security)及其前身SSL安全套接层(Secure Sockets Layer)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障,TLS/SSL协议位于网络OSI七层模型的会话层,用来加密通信。
TLS/SSL握手过程第一步,客户端(Client)以明文的形式发起请求信息(client_hello),其中信息包含;
random_CTLS协议版本cipher suites身份加密套件包括: 身份认证算法Au ,采用的密钥交换算法(密钥协商),对称加密算法,信息摘要算法Mac(校验信息的完整性)
第二步,服务端(Server)收到客户端发来的请求以后,返回协商的信息(server_hello),其中包括
random_STLS协议的版本cipher suites第三步,客户端(Server)收到服务端发来的请求以后,首先会检查服务端证书的合法性,如果合法就会进行如下操作;
pre-masterenc_key=Func(random_C, random_S, pre-master)sessionSecret  将sessionSecret和用证书携带的公钥加密pre-master发送给服务器(Server)
第四步,服务端(Server)收到客户端发来的请求后,会进行如下操作
pre-master的值random_S,random_C和pre-master计算协商秘钥enc_key=Func(random_C, random_S, pre-master)sessionSecret  服务端进行完上面的操作以后,会用协商秘钥加密sessionSecret作为encrypted_handshake_message消息发送给客户端。
  第五步,客户端(Client)接收到encrypted_handshake_message消息以后,会用自己计算出的协商秘钥解密encrypted_handshake_message查看里面sessionSecret是否和自己生成的一致,如果一致则用协商出来的秘钥加密后续的通信。
  上面的整个过程,都是客户端单向认证服务端,也是最为常用的场景。同时,服务端也可以要求验证客户端,比较常见的场景就是大额网银汇款转账会需要在电脑上插入U盾。
  U盾中包含银行签发的证书用来验证客户端。
  双向认证在单向认证第二步的时候,服务器会要求客户端发送证书,来校验客户端证书有效性。
本文作者是深入浅出区块链共建者清源,欢迎关注清源的博客,不定期分享一些区块链底层技术文章。
 
                如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!