计算机网络之HTTPS

Posted changemyworld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络之HTTPS相关的知识,希望对你有一定的参考价值。

HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。

 

 

具有了保护数据交换隐私以及完整性,还有对网站服务器身份认证的功能。

 

与HTTP的比较如下图

 

 技术图片

 

 

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性(采用身份验证和数据加密)的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。

 

 是操作系统对外的API,SSL3.0后更名为TLS

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

加密方式

 

对称加密:加密和解密都使用同一个密钥  效率高

 

非对称加密:加密使用的密钥和解密使用的密钥是不相同的  性能低 安全超强   能加密的数据长度是有限的

 

哈希算法:将任意长度的信息转换为固定长度的值,算法不可逆

例:MD5算法

 

数字签名 :在信息的后面加上一段内容,是经过哈希后的值,证明信息没有被修改过。

哈希值会加密后在和信息一起发送。

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

HTTPS数据传输流程

在数据传输之前,会与网站服务器和WEB浏览器进行一次握手,在握手时,确定双方的加密密码信息,具体过程如下:

 

(1)浏览器将支持的加密算法信息发送给服务器

例:本地仅支持AES对称加密,ECC非对称加密之类的,告诉服务器,浏览器只支持这类加密,请服务器回发时尽量按照浏览器的加密方式。

 

 

(2)服务器选择一套浏览器支持的加密算法,以证书的形式回发浏览器

证书的信息里包含了证书发布的CA机构,证书的有效期,公钥,证书所有者,签名等等

 

CA机构是具备证书颁发的权威机构。

 

(3)浏览器验证证书合法性,并结合证书公钥加密信息发送给服务器

当浏览器收到证书之后,首先验证证书的合法性,如果证书受到浏览器信任,则在浏览器地址栏,会有标志显示,

否则就会显示不受信的标识。当证书受信之后,WEB浏览器会随机生成一串密码,并使用证书中的公钥加密。

之后,使用约定好的哈希算法握手消息,并生成随机数,对消息进行加密,再将之前生成信息,回发给服务器。

 

(4)服务器使用私钥解密信息,验证哈希,加密响应消息回发浏览器

当网站服务器接收到浏览器发送过来的数据后,会使用网站本身的私钥,将信息解密,确定密码。

通过密码解密,WEB浏览器发送过来的握手信息,并验证哈希是否与web浏览器一致,然后服务器

会使用密码加密新的握手信息,发送给浏览器

 

(5)浏览器解密响应消息,并对消息进行验证,之后进行加密交互数据

客户端浏览器解密,并计算经过哈希密码加密的握手消息,如果与服务器发送过来的哈希值一致,

则此握手过程结束后,服务器与浏览器会使用之前浏览器生成的随机密码,和对称加密算法,进行加密,然后交换数据。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

HTTPS和HTTP

 

一、HTTPS需要到CA申请证书,HTTP不需要。

免费证书较少。

 

二、HTTPS密文传输,HTTP明文传输

 

三、连接方式不同,HTTPS默认使用443端口,HTTP使用默认80端口

 

四、HTTPS=HTTP+加密+认证+完整性保护,较HTTP安全

 

SSL+HTTP构建的可见形加密传输身份认证的网络协议,SSL是有状态的。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

HTTPS真的很安全吗

那倒未必

 

浏览器默认填充http:// ,请求需要进行跳转,有被劫持的风险

 

一般情况,网站管理员采用301或302跳转的方式,由HTTP跳转到HTTPS,

很容易发生劫持,受到第三方攻击。

 

 

可以使用HSTS ( HTTP Strict Transport Security )优化

 

目前正在推行中,并未成为主流。

 

欢迎大家关注我的微信公众号,获取你不知道的宝藏。

 

 

技术图片

 

以上是关于计算机网络之HTTPS的主要内容,如果未能解决你的问题,请参考以下文章

前端面试之计算机网络

Linux Nginx之HTTPS网络安全访问服务

网络爬虫基础之HTTP基本原理(附相关HTTPS知识)

Android逆向之http/https网络抓包

python之网络编程

网络编程之如果这样来理解HTTPS,一篇就够了