图解HTTPS协议加密解密全过程

转载 2016年08月29日 19:55:39

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。

  HTTPS简介

  HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证的,且看下图。

  1. 客户端发起HTTPS请求

  这个没什么好说的,就是用户在浏览器里输入一个https网址,然后连接到server的443端口。

  2. 服务端的配置

  采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl就是个不错的选择,有1年的免费服务)。这套证书其实就是一对公钥和私钥。如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。

  3. 传送证书

  这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。

  4. 客户端解析证书

  这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随机值。然后用证书对该随机值进行加密。就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。

  5. 传送加密信息

  这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

  6. 服务段解密信息

  服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密。所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

  7. 传输加密后的信息

  这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。

  8. 客户端解密信息

  客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容。整个过程第三方即使监听到了数据,也束手无策。

转载自:http://www.jb51.net/network/68135.html

相关文章推荐

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

转载自:http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html 全球可信的SSL数...

https通讯原理、加密算法、证书整理总结

前段时间对接了好多外部接口,很多都是https的,还有证书,还有一些加密的。对这块不是太了解,就查资料整理总结实践下。消化掉的知识,才是真正属于自己的。 1、https       HTTPS(全称...
  • abasen
  • abasen
  • 2016年03月04日 18:35
  • 3933

Charles如何抓取http/https请求

charles 我们亲切的把它称作茶壶,功能还是十分强大的,尤其是在mac上无法使用fiddler更是。。 其实很容易上手,下载安装,手机设置下ip代理不久可以了嘛?但是你发现包为https的时候就不...
  • ty_hf
  • ty_hf
  • 2017年01月15日 10:33
  • 4351

图解HTTPS协议加密解密全过程

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议。   HTTPS简介   HTTPS其实是有两部分组成:...

解密https的建立过程

1. https协议简介      为什么是协议简介呢?因为https涉及的东西实在太多了,尤其是一些加密算法,非常的复杂,对于这些算法面的东西就不去深入研究了,这部分仅仅是梳理一下一些关于https...

wireshark抓取https加密报文,并解密

首先你要有证书,而且这个证书需要是.pem格式的。Window的证书管理导出来的是.pfx文件。这个格式在官网上说也是可以用的,但是我尝试了N遍还是没有成功。最后只能将.pfx转换成.pem格式的。我...

Linux服务器设置Apache支持HTTPS

系统环境为: JAVA: jdk1.6.0_30 System: CentOS release 5.7 Apache:httpd-2.2.3 Openssl:openssl-0.9.8e  ...

linux服务器配置https访问

linux服务器配置https访问本文所在采用的环境为centos7以及通过阿里云的云盾服务申请CA证书前文: 由于最近需要在微信进行微信小程序开发,而小程序的后端访问需要https访问,因而为网...

图解HTTPS协议加密解密全过程

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议   我们都知道HTTPS能够加密信息,以免敏感...

图解HTTPS协议加密解密全过程

我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议 HTTPS简介   HTTPS其实是有两部分组成...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:图解HTTPS协议加密解密全过程
举报原因:
原因补充:

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