get

热爱生活,热爱编程

SSL/TLS那些事

简介:

安全套接层(Secure Socket Layer,SSL)是一种在两台机器之间提供安全通道的协议。
它具有保护传输数据以及识别通信机器的功能。安全通道是透明的,意思就是说它对传输的
数据不加变更。客户与服务器之间的数据是经过加密的,一端写入的数据完全是另一端读取
的内容。透明性使得几乎所有基于 TCP 的协议稍加改动就可以在 SSL 上运行,非常方便。
参考文献<SSL与TLS>


握手:

SSL 握手有三个目的。第一,客户端与服务器需要就一组用于保护数据的算法达成一致。
第二,它们需要确立一组由那些算法所使用的加密密钥。第三,握手还可以选择对客户端进
行认证。


握手过程:

  a.客户端发出请求(ClientHello)
(1) 支持的协议版本,比如TLS 1.0版。
(2) 一个客户端生成的随机数,稍后用于生成"对话密钥"。
(3) 支持的加密方法,比如RSA公钥加密。
(4) 支持的压缩方法。

  b.服务器回应(SeverHello)
(1) 确认使用的加密通信协议版本,比如TLS 1.0版本。如果浏览器与服务器支持的版本不一致,服务器关闭加密通信。
(2) 一个服务器生成的随机数,稍后用于生成"对话密钥"。
(3) 确认使用的加密方法,比如RSA公钥加密。
(4) 服务器证书。

  c.客户端回应

(3)客户端对服务器的证书进行验证,并抽取服务器的公用密钥。然后,再产生一个称
  做 pre_master_secret 的随机密码串,并使用服务器的公用密钥对其进行加密。最后,客户端
  将加密后的信息发送给服务器。

  注意,第 3 步是握手过程中的关键一步。所有要被保护的数据都依赖于 pre_master_secret
  的安全。原理非常简单:客户端使用服务器的公用密钥(从证书中抽取的)来加密共享密钥,
  而服务器使用其私用密钥对共享密钥进行解密。握手的剩余步骤主要用于确保这种交换过程
  的安全进行。客户端与服务器分别使用相同的密钥导出函数(key derivation
  function,KDF)来产生 master_secret,最后再次通过 KDF 使用 master_secret
  来产生加密密钥。




阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/oZhiMing12/article/details/53928080
文章标签: ssl https
个人分类: ssl
想对作者说点什么? 我来说一句

SSL and TLS Theory and Practice.pdf

2018年01月28日 2.44MB 下载

TLSSSL详解

一、TLSSSL概述

u010670679 u010670679

2014-10-08 21:07:21

阅读数:2928

SSLTLS》中文版

2010年04月06日 6.4MB 下载

关于SSL/TLS

SSL/TLS

DAVE_LUO DAVE_LUO

2010-07-19 15:21:00

阅读数:5024

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭