从加密到数据交换机制:HTTPS与HTTP的异同
随着互联网技术的不断发展,人们对于网络安全和数据隐私的需求日益增长。
在这其中,HTTP(超文本传输协议)和HTTPS(安全超文本传输协议)成为了最为核心的网络数据传输协议。
它们两者既有相似之处,也存在显著的差异。
本文将深入探讨从加密到数据交换机制等方面,HTTPS与HTTP的异同。
一、HTTP与HTTPS的基本概念
HTTP,全称为Hypertext Transfer Protocol,即超文本传输协议,是一种应用层的协议。
它负责在客户端(如浏览器)和服务器之间进行信息的传输,是互联网中应用最广泛的数据传输协议之一。
HTTPS则是在HTTP的基础上增加了SSL/TLS加密技术,形成了一种安全的通信协议。
HTTPS通过对数据包的加密和解密,以及对通信内容的完整性校验,确保了数据传输过程中的安全性。
二、加密技术的差异
HTTP协议的数据传输是不加密的,因此在传输过程中容易受到中间人攻击等安全隐患。
而HTTPS协议采用了SSL/TLS加密技术,其核心原理是通过使用公钥和私钥进行数据的加密和解密。
在HTTPS通信过程中,服务器会向客户端提供一个公钥证书,客户端通过验证公钥证书来确认服务器的身份,并使用公钥对传输的数据进行加密。
这样,即使数据在传输过程中被截获,攻击者也无法解密出原始数据。
三、数据交换机制的差异
HTTP协议采用的是明文传输数据的方式,客户端和服务器之间的通信内容可以被任意截取和窥视。
而HTTPS协议则采用了加密传输的方式,数据的传输过程更加安全。
在HTTPS协议中,所有的数据传输都需要通过SSL/TLS层进行加密和解密。
当客户端向服务器发送请求时,服务器会生成一个唯一的会话密钥,并使用客户端提供的公钥进行加密处理。
客户端收到加密后的会话密钥后,使用自己的私钥进行解密处理,从而建立安全的数据传输通道。
这样,即使攻击者截取了通信内容,也无法获取实际的会话密钥和数据内容。
四、性能方面的差异
虽然HTTPS协议提供了更高的安全性保障,但同时也带来了一定的性能损失。
由于HTTPS协议需要建立SSL/TLS连接并进行数据加密和解密等操作,相比于HTTP协议会有一定的延迟和带宽消耗。
因此,在实际应用中需要根据具体场景和需求进行选择,权衡安全性和性能之间的平衡。
五、应用与未来发展
HTTP协议在互联网应用中占据着举足轻重的地位,广泛应用于各种网站、应用程序等场景。
而HTTPS协议则逐渐成为主流的安全通信协议,特别是在金融、电商等对安全性要求较高的领域得到了广泛应用。
随着网络安全和数据隐私需求的不断增长,HTTPS协议的应用范围将会进一步扩大。
同时,随着技术的不断发展,HTTP协议也在不断演进。
例如HTTP/2协议的推出,对HTTP的性能进行了优化,提高了数据传输的速度和效率。
而HTTPS协议也在不断优化和完善中,未来将会更加高效、安全地保障互联网通信的安全性和隐私性。
HTTP和HTTPS协议在互联网应用中各有优劣,需要根据具体场景和需求进行选择。
在互联网通信的未来发展中,随着技术的不断进步和网络安全需求的增长,HTTP和HTTPS协议将会不断演进和完善,为互联网的安全和高效发展提供有力支撑。
https对通讯数据的加密是自动的还是需要开发人员手动加密之后在传输
自动的。
所谓的https加密其实是SSL证书加密,https只是SSL证书加密的直观表现形式,https=http+ssl。
SSL 是一个安全协议,它提供使用 TCP/IP 的通信应用程序间的隐私与完整性。
因特网的 超文本传输协议(HTTP)使用 SSL 来实现安全的通信。
在客户端与服务器间传输的数据是通过使用对称算法(如 DES 或 RC4)进行加密的。
公用密钥算法(通常为 RSA)是用来获得加密密钥交换和数字签名的,此算法使用服务器的SSL数字证书中的公用密钥。
有了服务器SSL数字证书,客户端也可以验证服务器的身份。
SSL证书需要到合法CA机构去申请,比如沃通CA等等,经过严格的身份审查认证才可以签发的,SSL证书有付费和免费的,沃通免费SSL证书只验证域名所有权,只能起到加密作用,无法认证服务器真实身份,EV或者OV SSL证书是高级SSL证书,可以认证服务器真实身份和数据高强度加密。
银行,电商网站一般使用EV和OV SSL证书,个人网站使用免费SSL证书。
https和http有什么不一样吗
简单点说,https是加密传输协议,http是明文传输协议;https=http+ssl证书 https:// 表明是用SSL加密的,电脑与服务器之间收发的信息传输将更加安全。
Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。
http和https使用的是完全不同的连接方式,用的端口也不一样,http是80,https是443。
http的连接很简单,是无状态的;https链接在浏览器地址栏有绿色安全锁标识,部署了沃通EV SSL证书的还会显示绿色地址栏。
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议要比http协议安全
谈谈对公钥密码的理解
https其实就是建构在SSL/TLS之上的 http协议,所以要比较https比http多用多少服务器资源,主要看SSL/TLS本身消耗多少服务器资源。
http使用TCP 三次握手建立连接,客户端和服务器需要交换3个包,https除了 TCP 的三个包,还要加上 ssl握手需要的9个包,所以一共是12个包。
http 建立连接,按照下面链接中针对Computer Science House的测试,是114毫秒;https建立连接,耗费436毫秒。
ssl 部分花费322毫秒,包括网络延时和ssl 本身加解密的开销(服务器根据客户端的信息确定是否需要生成新的主密钥;服务器回复该主密钥,并返回给客户端一个用主密钥认证的信息;服务器向客户端请求数字签名和公开密钥)。
SSL handshake latency and HTTPS optimizations. :: 当SSL 连接建立后,之后的加密方式就变成了3DES等对于 CPU 负荷较轻的对称加密方式。
相对前面 SSL 建立连接时的非对称加密方式,对称加密方式对 CPU 的负荷基本可以忽略不记,所以问题就来了,如果频繁的重建 ssl 的session,对于服务器性能的影响将会是致命的,尽管打开https 保活可以缓解单个连接的性能问题,但是对于并发访问用户数极多的大型网站,基于负荷分担的独立的SSL termination proxy就显得必不可少了,Web 服务放在SSL termination proxy之后。
SSL termination proxy既可以是基于硬件的,譬如F5;也可以是基于软件的,譬如维基百科用到的就是 Nginx。
那采用 https 后,到底会多用多少服务器资源,2010年1月 Gmail切换到完全使用 https, 前端处理 SSL 机器的CPU 负荷增加不超过1%,每个连接的内存消耗少于20KB,网络流量增加少于2%。
由于 Gmail 应该是使用N台服务器分布式处理,所以CPU 负荷的数据并不具有太多的参考意义,每个连接内存消耗和网络流量数据有参考意义。
这篇文章中还列出了单核每秒大概处理1500次握手(针对1024-bit 的 RSA),这个数据很有参考意义Heartbleed这个被称作史上最大的网络安全漏洞,想必很多人都有所耳闻,Heartbleed之所以能够出现,其实和我们这个问题关系还不小,前面我们谈到了频繁重建 SSL/TLS的session对于服务器影响是致命的,所以聪明的RFC 在2012年提出了 RFC6520 TLS 的心跳扩展。
这个协议本身是简单和完美的,通过在客户端和服务器之间来回发送心跳的请求和应答,保活 TLS session,减少重建 TLS的session的性能开销。
令人遗憾的是,openssl 在实现这个心跳扩展时,犯了一个低级的错误,没有对收到的心跳请求进行长度检查,直接根据心跳请求长度拷贝数据区,导致简单的心跳应答中可能包含了服务器端的核心数据区内容,用户名,密码,信用卡信息,甚至服务器的私有密钥都有可能泄露。
心因为心跳保活的这个 BUG 在滴血,这个名字起的极度形象。

