上一篇文章,我们一起了解了HTTP的发展历史,这篇文章,我们一起来看看HTTPS,对OSI系统模型做一个初步理解。
什么是HTTPS
简单来讲就是在http的基础上,增加数据传输加密和添加了SSl/TLS握手进行身份认证(验证、鉴权等),保证数据安全。HTTPS 存在不同于 HTTP 的默认端口(HTTP为80,HTTPS为443)及一个加密/身份验证层(在 HTTP与 TCP 之间)。
HTTPS发展由来
由于HTTP数据传输自身存在安全缺陷,极容易陷入安全攻击,如
1、网络嗅探攻击, 其试图从传输过程当中分析出敏感的数据, 例如管理员对 Web 程序后台的登录过程等等, 从而获取网站管理权限, 进而渗透到整个服务器的权限。即使无法获取到后台登录信息, 攻击者也可以从网络中获取普通用户的隐秘信息, 包括手机号码, 身份证号码, 信用卡号等重要资料, 导致严重的安全事故。
2、HTTP在传输客户端请求和服务端响应时, 唯一的数据完整性检验就是在报文头部包含了本次传输数据的长度, 而对内容是否被篡改不作确认。因此攻击者可以轻易的发动中间人攻击, 修改客户端和服务端传输的数据, 甚至在传输数据中插入恶意代码, 导致客户端被引导至恶意网站被植入木马
为了保证数据传输过程中的安全问题,HTTP添加TLS/SSL协议构建的可进行加密传输、身份认证的网络协议。基于SSl/TLS的HTTp协议,也被称为HTTPS协议。
HTTPS与HTTP对比
HTTP原理
1、客户端的浏览器首先要通过网络与服务器建立连接,该连接是通过TCP 来完成的,一般 TCP 连接的端口号是80。建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是 MIME 信息包括请求修饰符、客户机信息和许可内容。
2、服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是 MIME 信息包括服务器信息、实体信息和可能的内容。
客户端发出的请求很容易被黑客截获,如果此时黑客冒充服务器,则其可返回任意信息给客户端,而不被客户端察觉,所以我们经常会听到一词“劫持”。
HTTP在客户端与服务端进行数据传输的过程,存在“被攻击”的潜在隐患,其主要面临集中风险:
(1) 窃听风险:黑客可以获知通信内容。
(2) 篡改风险:黑客可以修改通信内容。
(3) 冒充风险:黑客可以冒充他人身份参与通信。
HTTPS原理图
为了防止潜在隐患的发生,人们对HTTP传输新增增加安全传输层,用于对传输的信息加密(即使黑客截获,也无法破解)。
总结:
HTTPS特点:
1、内容加密:采用混合加密技术,中间者无法直接查看明文内容
2、验证身份:通过证书认证客户端访问的是自己的服务器
3、保护数据完整性:防止传输的内容被中间人冒充或者篡改
使用HTTPS的优点:
1、使用 HTTPS 协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
2、HTTPS 协议是由 SSL+HTTP构建的可进行加密传输、身份认证的网络协议,要比 HTTP安全,可防止数据
3、在传输过程中被窃取、改变,确保数据的完整性。
4、HTTPS 是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本
在了解了HTTP和HTTPS的基本运行原理,下一篇文章,将会对HTTPS的TLS/SSL是如何进行工作的,以及加密算法 -- 对称加密和非对称加密进行一些解析。
课外小知识,OSI系统模型:开放式系统互联通信参考模型,主要包括七层
HTTP(s)主要作用于应用层,因此HTTP也被称为应用层协议。
欢迎大家关注舟舟颜的前端小屋: zzy_word