计算机网络之HTTPS协议

文章目录

  • 计算机网络之HTTPS协议
    • 1.HTTPS介绍
    • 2.HTTPS的优缺点
    • 3.HTTPS原理或流程
    • 4.讲解HTTPS实现原理

计算机网络之HTTPS协议

1.HTTPS介绍

客户端与API服务器请求响应用的是HTTP的话,HTTP是明文的,在网络上进行传输可能会被窃听、篡改甚至冒充,因此对于一个企业级的API服务器来说,通常需要采用更安全的HTTPS协议。
HTTPS(全称Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
SSL:安全套接层,是Netscape公司设计的主要用于Web的安全传输协议。这种协议在Web上获得了广泛的应用。通过证书认证来确保客户端和网站服务器之间的通信数据是加密安全的;TLS是SSL的升级版,使用层面,读者可以理解为二者无区别。

2.HTTPS的优缺点

优点
1.安全性:
*使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
*HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。
*HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
2.SEO方面:谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。

缺点
在相同网络环境中,HTTPS 相比 HTTP 无论是响应时间还是耗电量都有大幅度上升。
HTTPS 的安全是有范围的,在黑客攻击、服务器劫持等情况下几乎起不到作用。
在现有的证书机制下,中间人攻击依然有可能发生。
HTTPS 需要更多的服务器资源,也会导致成本的升高。

3.HTTPS原理或流程

计算机网络之HTTPS协议_第1张图片

加密流程按图中的序号分为:
1.客户端请求 HTTPS 网址,然后连接到 server 的 443 端口 (HTTPS 默认端口,类似于 HTTP 的80端口)。
2.采用 HTTPS 协议的服务器必须要有一套数字 CA (Certification Authority)证书。服务器必须要有一套数字证书(证书内容有公钥、证书颁发机机构、失效日期等)。即颁发证书的同时会产生一个私钥和公钥。私钥由服务端自己保存,不可泄漏。公钥则是附带在证书的信息中,可以公开的。证书本身也附带一个证书电子签名,这个签名用来验证证书的完整性和真实性,可以防止证书被篡改。
3.服务器响应客户端请求,将证书传递给客户端,证书包含公钥和大量其他信息,比如证书颁发机构信息,公司信息和证书有效期等(公钥在证书里面,私钥由服务器持有)
4.客户端收到证书后,客户端解析证书并对其进行验证。
如果证书不是可信机构颁布,或者证书中的域名与实际域名不一致,或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信;
如果证书没有问题,客户端就会从服务器证书中取出服务器的公钥A。然后客户端还会生成一个随机码 KEY,并使用公钥A将其加密。
5.客户端把加密后的随机码 KEY 发送给服务器
6.服务器在收到随机码 KEY 之后会使用私钥B将其进行非对称解密,解密后就得到客户端的密钥。经过以上这些步骤,客户端和服务器终于建立了安全连接,完美解决了对称加密的密钥泄露问题,接下来就可以用对称加密愉快地进行通信了。
7.服务器使用客户端密钥对数据进行对称加密并发送给客户端,这样子传输的都是密文了。客户端使用相同的密钥 (随机码 KEY)解密数据。
8.双方使用对称加密愉快地传输所有数据。

4.讲解HTTPS实现原理

HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。
有两种基本的加解密算法类型:
1.对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等。
2.非对称加密:密钥成对出现(且根据公钥无法推铁私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称幼加密速度较慢,典型的非对称加密算法有RSA、DSA等。
下图是HTTPS的通信过程:

计算机网络之HTTPS协议_第2张图片

流程大概是这样的:
1.SSL客户瑞通过TCP和服务器建立连接之后(443端口),并且在一般的TCP连接协商(握手)过程中请求证书。
即客户端发出一个消息给服务器,这个消息里面包含了自己可实现的算法列表和其它一些需要的消息,SSL的服务器端会回应一个数据包,这里面确定了这次通信所需要的算法,然后服务器向客户端返回证书。(证书里面包含了服务器信息一域名、申请证书的公司、公共秘。)
2,客户端在收到服务器返回的证书后,判断签发这个证书的公共签发机构,并使用这个机构的公共秘钥确认签名是否有效,客户端还会确保证书中列出的域名就是它正在连接的域名。
3.如果确认证书有效,那么生成对称秘钥并使用服务器的公共秘钥进行加密。然后把它发送给服务器,服务器使用它的私钥解密出密钥,然后把内容通过密钥对称加密,这样两台计算机可以开始进行对称加密进行通信。

HTTPS通信的优点:
1.客户端产生的密钥只有客户端和服务器端能得到:
2.加密的数据只有客户端和服务器端才能得到明文;
3客户端到服务端的通信是安全的。

你可能感兴趣的:(计算机网络,https,http,网络协议)