为什么说HTTPS能保证数据传输的完整性和保密性呢?
为什么说HTTPS能保证数据传输的完整性和保密性呢?
要想保证数据在传输过程的完整性和保密性,需要检查是否采用了TLS/SSL协议。我们知道HTTPS是在HTTP基础上加了SSL(Secure Socket Layer,安全套接字层),TLS是SSL的升级版。那么为什么说HTTP不能保证数据传输安全,而HTTPS可以保证数据传输过程的完整性和保密性呢?
注意:https并非是应用层的一种新协议,只是http通信接口部分用SSL/TLS协议代替而已。通常,http是直接和tcp通信的,当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信了。SSL是独立于HTTP协议的,所以不光是http协议,其他运行在应用层的协议,如smtp和telnet协议,也可配合ssl协议使用。
4.1 HTTP通信原理
作为标准的C/S模型,http协议总是由客户端发起,服务器进行响应。通信过程如下:
DNS解析,域名系统DNS将域名解析成IP地址
建立TCP连接,进行TCP的三次握手
浏览器发送请求
服务器响应浏览器,向浏览器发送数据
通信完成,TCP连接关闭
http协议属于明文传输协议,通信双方没有进行认证,存在如下的问题:
窃听风险:第三方可以获知通信内容
篡改风险:第三方可以修改通信内
冒充风险:第三方可以冒充他人身份参与通信
4.2 HTTPS通信原理
https通信是建立在ssl连接层之上的请求和响应,通信过程如下:
客户端和服务器端通过TCP建立连接,并发送https请求。
服务器响应请求,并将数字证书发送给客户端,数字证书包括公共秘钥、域名、申请证书的公司。
客户端收到服务器端的数字证书之后,会验证数字证书的合法性。
如果公钥合格,那么客户端会生成client key,一个用于进行对称加密的密钥,并用服务器的公钥对客户端密钥进行非对称加密。
客户端会再次发起请求,将加密之后的客户端密钥发送给服务器。
服务器接收密文后,会用私钥对其进行非对称解密,得到客户端秘钥。并使用客户端秘钥进行对称加密,生成密文并发送。
客户端收到密文,并使用客户端秘钥进行解密,获取数据。
在这里插入图片描述
HTTPS是在HTTP基础上加了SSL(Secure Socket Layer,安全套接字层),具有如下优势:
所有信息都是加密传播,第三方无法窃听
具有校验机制,一旦被篡改,通信双方会立刻发现
配备身份证书,防止身份被冒充
4.3 抓包比较http和https头信息
查看http中的 request 与 response,可以看出是明文传输的。
Wireshark实验:通过wireshark抓取http网页的登陆密码
http://www.zh-cjh.com/wangluoanquan/2127.html
查看https网站,可以看到内容全部加密。
HTTP、HTTPS、SSL、TLS、CA证书、CSR(列表、list、全)HTTPLIST、HTTPSLIST、SSLLIST、TLSLIST、CALIST、CSRLIST、pkilist
http://www.zh-cjh.com/wenzhangguilei/2199.html
文章归类、所有文章列表、LISTLIST
http://www.zh-cjh.com/wangzhangonggao/2195.html
2、本资源基本为原创,部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
3、本站大部分文章的截图来源实验测试环境,请不要在生产环境中随意模仿,以免带来灾难性后果。
转载请保留出处: www.zh-cjh.com珠海陈坚浩博客 » 为什么说HTTPS能保证数据传输的完整性和保密性呢?
作者: cjh
手机扫一扫,手机上查看此文章: |
一切源于价值!
其他 模板文件不存在: ./template/plugins/comment/pc/index.htm