https/ssl原理

在此总结下https协议原理。

http问题

1)明文传输数据,被抓包后很容易可以看出传输内容,传输敏感数据有安全问题。

2)不能保证进行http通信的客户端与服务器是合法的。

为了解决这两个问题,需要对http数据进行加密和对通信双方进行认证。https就是在http协议的下层加了一个ssl协议,通过ssl实现了上述加密和认证的功能。

https协议原理

通常,http直接和tcp通信。而https协议,则是http和ssl通信,ssl和tcp通信,加解密的功能在ssl层实现。ssl是独立于http的协议,也可以用于应用层的smtp、telnet等协议。

要了解ssl原理,先要理解公钥加密和对称加密。公钥加密的优点是传输秘钥方便,除了加密还可以做认证,缺点是运行比对称加密慢很多。对称加密缺点是不方便传输秘钥,优点是加密速度快。ssl结合了公钥加密和对称加密的优点,使用公钥加密传输对称加密的秘钥。实际运行中,服务器将通信用的对称秘钥用自身私钥加密后传输给客户端,然后双方通信时使用此对称秘钥对数据进行加解密。

那么客户端如何确保公钥来自服务器?

通过数字认证机构颁发的数字证书,以及客户端内部嵌入的数字认证机构公钥集合。具体流程如下:

1)服务器运营人员向数字认证机构申请证书,申请证书时填入服务器公钥,数字认证机构用自身私钥加密服务器公钥生成一个数字证书(包含认证机构ID、加密后的服务器公钥和公钥明文),然后运营人员把证书放在服务器上。

2)客户端请求时,服务端把自身证书和公钥下发给服务端,客户端通过证书中的数字认证机构ID查询内部嵌入的公钥列表,得到认证机构的公钥,并使用此公钥解密得到服务端公钥,然后验证公钥如果一致,则同时验证了认证结构与服务器的合法性。

https的优缺点

https可以很大程度提高安全性,google、百度等许多大网站全站都实现了https,但使用https时,http处理速度回变慢,一种是多了一层,通信量增加,通信变慢,一种是加解密需要消耗cpu、内存等资源,处理时间增加,负载增加。和使用http相比,可能会变慢2~100倍(数据来自《图解HTTP》),所以只有在需要信息隐藏时才使用https,可以节省资源。

PS:客户端证书与服务端证书原理是一样的,常见的客户端证书比如网银U盾,证书是由银行颁发的,用于在服务器端认证客户。

原文地址:https://www.cnblogs.com/livepeace/p/8126076.html

时间: 2024-10-29 07:51:29

https/ssl原理的相关文章

12.17 Nginx负载均衡;12.18 ssl原理;12.19 生产ssl密钥对;12.20 Nginx配置ssl

扩展: 针对请求的uri来代理 http://ask.apelearn.com/question/1049 根据访问的目录来区分后端web http://ask.apelearn.com/question/920 12.17 Nginx负载均衡 1. 安装dig命令: [[email protected] ~]# yum install -y bind-utils 2. 用dig获取qq.com的ip地址: [[email protected] ~]# dig qq.com 3. 创建ld.co

HTTPS实现原理

HTTPS实现原理 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.即HTTP下加入SSL层,HTTPS的安全基础是SSL.其所用的端口号是443. 有两种基本的加解密算法类型: 1)对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES.AES等: 2)非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),

浅谈https\ssl\数字证书[转载]

在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了.本文追本溯源围绕这个模式谈一谈. 名词解释 首先解释一下上面的几个名词: https:在http(超文本传输协议)基础上提出的一种安全的http协议,因此可以称为安全的超文本传输协议.http协议直接放置在TCP协议之上,而https提出在http和TCP中间加上一层加密层.从发送端看,这一层负责把http的内容加密后送到下层的TCP,从接收方看,这一层负责将TCP送来的数据解密还原成http的内容.

浅谈https\ssl\数字证书

全球可信的SSL数字证书申请:http://www.shuzizhengshu.com 在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了.本文追本溯源围绕这个模式谈一谈. 名词解释 首先解释一下上面的几个名词: https:在http(超文本传输协议)基础上提出的一种安全的http协议,因此可以称为安全的超文本传输协议.http协议直接放置在TCP协议之上,而https提出在http和TCP中间加上一层加密层.从发送端看,这一层负责把http的内容加

[转]浅谈https\ssl\数字证书

浅谈https\ssl\数字证书 http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html 全球可信的SSL数字证书申请:http://www.shuzizhengshu.com 在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了.本文追本溯源围绕这个模式谈一谈. 名词解释 首先解释一下上面的几个名词: https:在http(超文本传输协议)基础上提出的

https\ssl\数字证书

来自http://www.cnblogs.com/P_Chou/archive/2010/12/27/https-ssl-certification.html 全球可信的SSL数字证书申请:http://www.shuzizhengshu.com 在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了.本文追本溯源围绕这个模式谈一谈. 名词解释 首先解释一下上面的几个名词: https:在http(超文本传输协议)基础上提出的一种安全的http协议,因此可

linux的Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl介绍

Nginx的负载均衡 1. 查找www.qq.com域名对应IP做测试 [[email protected] ~]# yum install -y bind-utils //安装dig命令包 [[email protected] ~]# dig www.qq.com ; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7_4.1 <<>> www.qq.com ;; global options: +cmd ;; Got answer: ;

Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl

Nginx负载均衡 Nginx负载均衡即为当代理服务器将自定义的域名解析到多个指定IP时,通过upstream来保证用户可以通过代理服务器正常访问各个IP. 代理一台机器叫做代理,代理两台及两台服务器就能叫做负载均衡. 负载均衡配置 创建一个配置文件/usr/local/nginx/conf/vhost/load.con [[email protected] ~]# vim /usr/local/nginx/conf/vhost/load.conf upstream qq.com #借助upst

LNMP(Nginx负载均衡,SSL原理,Nginx配置SSL,生产SSL密钥对)

一.Nginx负载均衡 负载均衡:单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况.那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可. 在开始部署负载均衡之前,我们先来介绍一个命令,dig命令需要yum安装一下 [[email protected] ~]# yum install bind-utils [[email protected] ~]# dig qq.com            (dig后加域名,他可以返回2个