计算机网络之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的主要内容,如果未能解决你的问题,请参考以下文章