四、HTTP和HTTPS的区别
1:简介
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。
为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
HTTPS和HTTP的区别主要为以下四点:
(1)https协议需要到ca申请证书,一般免费证书很少,需要交费。
(2)http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
(3)http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
(4)http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
2:HTTPS优势
在目前的技术背景下,HTTPS是现行架构下最安全的解决方案:
(1)使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器(防止抓包工具对请求进行抓包分析和篡改);
(2)HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。
(3)HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
3:HTTPS数据传输流程
> 浏览器将支持的加密算法信息发送给服务器
> 服务器选择一套浏览器支持的加密算法,以证书的形式回发浏览器
> 浏览器验证证书合法性,并结合证书公钥加密信息发送给服务器
> 服务器使用私钥解密信息,验证哈希,加密响应消息回发浏览器
> 浏览器解密响应消息,并对消息进行验真,之后进行加密交互数据
4:HTTPS加密的方式
> 对称加密: 加密和解密都使用同一个密钥(安全行较非对称加密低,性能较高)
> 非对称加密: 加密使用的密钥和解密使用的密钥是不相同的(安全行较对称加密高,性能较低)
> 哈希算法: 将任意长度的信息转换为固定长度的值,算法不可逆
> 数字签名: 证明某个消息或者文件是某人发出/认同的