https ssl 加密原理

转载 2016年05月30日 17:05:46

SSL 是一个安全协议,它提供使用 TCP/IP 的通信应用程序间的隐私与完整性。因特网的 超文本传输协议(HTTP)使用 SSL 来实现安全的通信。

在客户端与服务器间传输的数据是通过使用对称算法(如 DES 或 RC4)进行加密的。公用密钥算法(通常为 RSA)是用来获得加密密钥交换和数字签名的,此算法使用服务器的SSL数字证书中的公用密钥。有了服务器的SSL数字证书,客户端也可以验证服务器的身份。SSL 协议的版本 1 和 2 只提供服务器认证。版本 3 添加了客户端认证,此认证同时需要客户端和服务器的数字证书。

SSL 握手

SSL 连接总是由客户端启动的。在SSL 会话开始时执行 SSL 握手。此握手产生会话的密码参数。关于如何处理 SSL 握手的简单概述,如下图所示。此示例假设已在 Web 浏览器 和 Web 服务器间建立了 SSL 连接。

SSL工作原理
图 SSL的客户端与服务器端的认证握手

(1) 客户端发送列出客户端密码能力的客户端“您好”消息(以客户端首选项顺序排序),如 SSL 的版本、客户端支持的密码对(加密套件)和客户端支持的数据压缩方法(哈希函数)。消息也包含 28 字节的随机数。

(2) 服务器以服务器“您好”消息响应,此消息包含密码方法(密码对)和由服务器选择的数据压缩方法,以及会话标识和另一个随机数。

注意:客户端和服务器至少必须支持一个公共密码对,否则握手失败。服务器一般选择最大的公共密码对。

(3) 服务器发送其SSL数字证书。(服务器使用带有 SSL 的 X.509 V3 数字证书。)

如果服务器使用 SSL V3,而服务器应用程序(如 Web 服务器)需要数字证书进行客户端认证,则客户端会发出“数字证书请求”消息。在 “数字证书请求”消息中,服务器发出支持的客户端数字证书类型的列表和可接受的CA的名称。

(4) 服务器发出服务器“您好完成”消息并等待客户端响应。

(5) 一接到服务器“您好完成”消息,客户端( Web 浏览器)将验证服务器的SSL数字证书的有效性并检查服务器的“你好”消息参数是否可以接受。

如果服务器请求客户端数字证书,客户端将发送其数字证书;或者,如果没有合适的数字证书是可用的,客户端将发送“没有数字证书”警告。此警告仅仅是警告而已,但如果客户端数字证书认证是强制性的话,服务器应用程序将会使会话失败。

(6) 客户端发送“客户端密钥交换”消息。此消息包含 pre-master secret(一个用在对称加密密钥生成中的 46 字节的随机数字),和 消息认证代码( MAC )密钥(用服务器的公用密钥加密的)。

如果客户端发送客户端数字证书给服务器,客户端将发出签有客户端的专用密钥的“数字证书验证”消息。通过验证此消息的签名,服务器可以显示验证客户端数字证书的所有权。

注意: 如果服务器没有属于数字证书的专用密钥,它将无法解密 pre-master 密码,也无法创建对称加密算法的正确密钥,且握手将失败。

(7) 客户端使用一系列加密运算将 pre-master secret 转化为 master secret,其中将派生出所有用于加密和消息认证的密钥。然后,客户端发出“更改密码规范” 消息将服务器转换为新协商的密码对。客户端发出的下一个消息(“未完成”的消息)为用此密码方法和密钥加密的第一条消息。

(8) 服务器以自己的“更改密码规范”和“已完成”消息响应。

(9) SSL 握手结束,且可以发送加密的应用程序数据。

https加密流程和原理

其实,我对https以前只有一个大概的了解,最近工作中遇到一个问题从而将https协议做了一个彻底的学习和认知,下边介绍一下我的个人认识,我不一定按照很官方的语句去表达,本人喜欢用通俗易懂的语言描述问...
  • xincai
  • xincai
  • 2016年07月19日 11:43
  • 624

安全科普:理解SSL(https)中的对称加密与非对称加密

转:http://www.freebuf.com/articles/system/37624.html 今天刚好为站点的后台弄了下https,就来分享我了解的吧。 密码学最早可以追溯到古希...
  • zhangmiaoping23
  • zhangmiaoping23
  • 2015年12月22日 11:41
  • 1573

关于Https协议中的ssl加密解密流程

转载自:http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html 全球可信的SSL数...
  • shw372029857
  • shw372029857
  • 2016年09月28日 09:51
  • 9615

深入浅出HTTPS基本原理

基础知识准备:在了解HTTPS的基本原理之前,需要先了解如下的基本知识。   一、什么是HTTPS,TLS,SSL        HTTPS,也称作HTTP over TLS。TLS...
  • kobejayandy
  • kobejayandy
  • 2016年09月04日 17:53
  • 1939

理解SSL(https)中的对称加密与非对称加密

密码学最早可以追溯到古希腊罗马时代,那时的加密方法很简单:替换字母。 早期的密码学: 古希腊人用一种叫 Scytale 的工具加密。更快的工具是 transposition cipher—:只...
  • MOONCOM
  • MOONCOM
  • 2017年03月03日 16:06
  • 2155

通过HTTPS(SSL加密)方式访问webservice

web service在企业应用中常常被用作不同系统之间的接口方式。但是如果没有任何安全机制的话,显然是难以委以重任的。比较直接的web service加密方式就是使用https方式(SSL)方式加密...
  • lamb7758
  • lamb7758
  • 2017年01月03日 09:15
  • 523

全站HTTPS能带来怎样的优势?HTTPS原理是什么、如何加密?

全站HTTPS能带来怎样的优势?HTTPS原理是什么、如何加密?   最近大家在使用百度、谷歌或淘宝的时候,是不是注意浏览器左上角已经全部出现了一把绿色锁,这把锁表明该网站已...
  • WALLEZhe
  • WALLEZhe
  • 2016年03月25日 10:14
  • 2291

非对称加密、ssl和tls的工作原理

假设互联网上的A和B要进行安全的通信,为了防止消息被别人截获以及篡改,它们会使用一个共同的暗号来对要发送的消息及接受的消息进行加密解密,这也就是大家经常提到的对称加密机制,其中暗号与谍战中的密码本大同...
  • weiyuanke
  • weiyuanke
  • 2014年04月15日 21:34
  • 1558

如何通过HTTPS(SSL加密)方式访问webservice

web service在企业应用中常常被用作不同系统之间的接口方式。但是如果没有任何安全机制的话,显然是难以委以重任的。比较直接的web service加密方式就是使用https方式(SSL)方式加密...
  • chow__zh
  • chow__zh
  • 2013年05月31日 11:15
  • 24675

数字证书原理(ssl,https)

说明,文章来源 http://www.360doc.com/content/13/0809/14/1073512_305848184.shtml 想要对 ssl和数字证书 有一个全面了解的人仔细阅读...
  • u013424496
  • u013424496
  • 2016年04月15日 14:24
  • 4150
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:https ssl 加密原理
举报原因:
原因补充:

(最多只允许输入30个字)