计算机网络之HTTPS
2021-03-29 04:26
标签:uri 流程 保护 socket image png 信息 加密传输 网站服务器 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 标签:uri 流程 保护 socket image png 信息 加密传输 网站服务器 原文地址:https://www.cnblogs.com/ChangeMyWorld/p/12610719.html