博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
https原理
阅读量:7207 次
发布时间:2019-06-29

本文共 1032 字,大约阅读时间需要 3 分钟。

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时处理速度变慢,一种是多了一层,通信量增加,通信变慢,一种是加解密需要消耗cpu、内存等资源,处理时间增加,负载增加。和使用http相比,可能会变慢2~100倍(数据来自《图解HTTP》)。

所以只有在需要隐藏信息时才使用https,可以节省资源。

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

转载于:https://www.cnblogs.com/livepeace/p/8126076.html

你可能感兴趣的文章
0920编译原理词法分析
查看>>
浅谈数位DP的dfs写法
查看>>
Linux下的bash对拍
查看>>
C++ STL标准入门
查看>>
移动端页面制作2
查看>>
UE4中的常量材质实例和动态材质实例
查看>>
php中的字符串和正则表达式
查看>>
SharePoint获取UserProfile的信息
查看>>
[题解]第十一届北航程序设计竞赛预赛——I.神奇宝贝大师
查看>>
Python--关于连接符+
查看>>
office 所有后缀对应的 content-type
查看>>
Linux 第十四天
查看>>
第4章 基本TCP套接口编程
查看>>
Android Studio 1.1 使用介绍及导入 jar 包和第三方依赖库
查看>>
Mysql主键、外键和索引的区别
查看>>
struts基础
查看>>
块状链表 codevs 2333弹飞绵羊
查看>>
(九)jsMath
查看>>
CE_现金模组基本概念(概念)
查看>>
饭后一题
查看>>