首页 技术 正文
技术 2022年11月16日
0 收藏 416 点赞 3,866 浏览 699 个字

HTTP在安全方面主要有以下不足:

1. 通信使用明文不加密,内容可能会被窃听;(TCP/IP就是可能被窃听的网络)

2. 不验证通信方的身份,因此有可能遭遇伪装; (无法判断请求或响应是否正确,是否有权限,是否有意义)

3. 无法证明报文的完整性,内容有可能已遭篡改

解决办法:

1.加密处理防止被窃听:通信的加密 HTTPS(SSL安全套接层+HTTP) ,TSL安全层传输协议

                                                      内容的加密 (客户端和服务器同时具备加密和解密机制)不过内容仍有被篡改的风险

2. 验证通信方身份:  查明对手的证书,通过SSL提供证书的手段。

3. 使用SSL完整性保护防止篡改,仅仅使用MD5和SHA-1等散列值校验的方法不能完全保证安全。

HTTPS = HTTP + 加密 + 认证 + 完整性保护

HTTPS并非是应用层的一种新协议,只是HTTP通信接口部分用SSL协议代替。

通常HTTP直接和TCP通信,当使用SSL时,则演变为HTTP-SSL-TCP.

在采用SSL后,HTTP就拥有了HTTPS的加密、证书和完整性保护这些功能。

HTTPS使用SSL和TLS这两个协议。

HTTPS如何工作:

加密:HTTPS采用混合加密机制,公开加密秘钥和共享加密秘钥。

认证:HTTPS使用客户端认证证书。

完整性:HTTPS传输流程中应用层发送数据时会附加一种叫做MAC的报文摘要,能够查知报文是否遭到篡改,从而保护报文的完整性。

为什么不一直使用HTTPS?

1. 加密通信耗费更多CPU及内存资源;

2. 购买证书占用成本;

所以,根据网站需求灵活选用HTTP或HTTPS。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,991
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,505
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,349
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,134
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,766
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,844