HTTP学习笔记9 HTTPS
2018-02-19 16:11
423 查看
HTTP的不足之处
通信使用明文(未加密的报文),内容可能会被窃听不验证通信方的身份,可能遭遇伪装
无法证明报文的完整性,可能遭遇篡改
加密方法
通信加密:通过SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,传输安全层协议),建立安全的通信线路,在这条线路上使用HTTP通信内容加密:对参与通信的内容本身进行加密,其不同于SSL和TLS将整个通信线路加密处理,加密的内容仍有可能被篡改
HTTPS=HTTP+加密+认证+完整性保护
HTTPS只是HTTP通信接口部分用SSL或TLS等协议代替而已。当通信时,HTTP先与SSL通信,再由SSL和TCP进行通信。其他运行在应用层的SMTP和Telnet等协议均可配合SSL协议使用。
加密
共享密钥加密(对称密钥加密):加密和解密使用同一把密钥,以共享密钥方式加密时必须将密钥也发送给对方,但当在互联网上传送密钥时,很有可能被窃取。
公开密钥加密(非对称密钥加密):该加密方法使用了一对密钥,一把叫做公开密钥(可随意发布),另一把叫做私有密钥(不可转交给他人),发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。避免了传输密钥被窃取的风险。
HTTPS采用混合加密机制,使用公开密钥加密的方式交换用于共享密钥加密的密钥,确保交换密钥安全的情况下,使用共享密钥加密的方式进行通信
认证
数字证书认证机构(CA)和其相关机构颁发的公开密钥证书,可以使客户端验证服务器公开密钥的真实性。
不但可以给服务器发放证书,还可以给客户端发放证书,进行客户端认证,但是客户端必须自己安装证书,一般应用于网上银行等安全性要求较高的情况
使用OpenSSL,可以构建一套属于自己的认证机构,给自己的服务器颁发证书,称为自签名证书,但往往可用度不高。
完整性保护
HTTPS应用层在发送数据时会附加 MAC(Message Authentication Code)的报文摘要,其能查知报文在传输过程中是否遭遇篡改,从而保护报文的完整性
HTTPS通信过程
HTTPS的不足
相比HTTP,HTTPS除去TCP连接、HTTP发送请求/响应的时间外,还额外需要建立SSL连接,增加了网络通信量,使通信速度变慢,同时,由于使用了加密处理,客户端和服务器都需要进行加密和解密的运算,因此会消耗更多的硬件资源。SSL加速器可在一定程度上缓解这个问题。
相关文章推荐
- HTTP和HTTPS 学习笔记
- lr学习笔记--无法打开ie中https链接,可以打开http链接解决办法
- Https Http2 Spdy 学习笔记
- https 学习笔记以及在 retrofit/okhttp 中的使用 (超多图, 爪机慎入)
- 大前端学习笔记整理【七】HTTP协议以及http与https的区别
- Nginx 学习笔记(八)http和https跨域问题解决
- (二)启动jmeter与HTTP/HTTPS请求介绍---学习笔记
- HttpClient学习笔记 --发送Http和Https请求
- [学习笔记]将http网页用tomcat转为https
- Openldap for Linux 学习笔记 [原文http://www.ringkee.com/jims/technic_folder/Openldap]
- 20160324servlet学习笔记HttpServletRequest对象中文乱码解决方法
- 黑马程序员之ASP.NET学习笔记:Http状态代码及其含义
- linux笔记 3-9 Apache(http,https)
- HttpClient 学习笔记--源自技术
- 学习笔记4-HTTP
- 神经网络学习笔记_1(BP网络分类双螺旋线) 作者:tornadomeet 出处:http://www.cnblogs.com/tornadomeet
- java学习笔记------ PrintStream_都市游侠_新浪博客 http://blog.sina.com.cn/s/blog_6c1fe98c01012lcu.html
- ASP.NET 3.5核心编程学习笔记(30):HttpResponse对象
- HTTP学习笔记3 报文结构 编码 范围请求