发布网友 发布时间:2022-04-23 07:57
共2个回答
热心网友 时间:2022-06-18 00:44
HTTP+加密+认证+完整性保护 = HTTPS.
为了解决上述问题,需要再http上再加入加密处理和认证等机制.我们把添加了加密和认证机制的http称之为https(http secure)
HTTPS是身披SSL保护外衣的HTTP
HTTPS并非应用层的一种新协议,只是http通讯接口部分用SSL(secure socket layer)和TLS(transport layer security)协议代替.
通常,http直接和tcp通信.当使用ssl时,则演变成先和ssl通信,再由ssl和tcp通讯.so,所谓https其实就是身披ssl保护外衣的http.
HTTPS采用混合机密机制
在对ssl了解之前先了解两种加密技术.
公开密钥加密(public-key cryptography)->加密算法是公开的,而密钥是保密的.加密和解密都会用到密钥.但反过来说只要持有密钥就能解密.
共享密钥加密(common key crypto system)->也被叫做对密钥加密.以共享密钥方式加密时必须将密钥也发给对方.在互联网上转发密钥时,若果通信被监听那么密钥就会落入攻击者之手,另外还得设法安全的保管接收到的密钥.
使用两把密钥的公开密钥加密
公开密钥加密使用一对非对称的密钥.一把私钥一把公钥.私钥不能让任何人知道,公钥任何人都能获得.也就是发送密文一方使用对方的公钥进行加密处理,对方收到被加密的信息后,再使用自己的的私钥进行解密.利用这种方法不需要发送用来解密的私钥,也不必担心密钥被盗走.
https采用共享密钥加密和公开密钥加密两者并用的混合加密机制.若密钥能够实现安全交换,那么有可能会考虑仅适用公开密钥加密来通信.但是公开密钥加密与共享密钥加密相比,其处理速度要慢.
所以应充分利用两者各有的有事,将多种方法组合起来用于通信.在交换密钥环节适用公开密钥加密方式,之后的建立通信交换报文阶段则适用共享加密方式.
证明公开密钥正确性的证书
公开密钥加密方式存在一些问题,无法证实公钥真伪.为了解决这个问题,可以使用由数字证书认证机构(CA,certificate authority)和其相关颁发的公钥证书.
可证明组织真实性的EV SSL证书
证书的一个作用是用来证明作为通信乙方的服务器是否规范,另外一个作用就是确认对方服务器背后运营的企业是否真实存在.拥有该特性的证书就是EV SSL证书(extended validation SSL certificate)
EV SSL证书是基于国际标准的认证指导方针颁发的证书.通过认证的web网站能够获得更高的认可度.
持有EV SSL证书的web网站浏览器地址栏处的背景是绿色的.点击后可以查看详情
用以确认客户端的客户端证书
HTTPS中还可以使用客户端证书.以客户端证书进行客户端认证,证明服务器正在通信的对方始终是预料之内的客户端,起作用跟服务器证书如出一辙.
想获取证书时,用户需要自行安装客户端证书,证书是付费购买的,且每张证书对应到每位用户也就意味着需支付和用户数对等的费用.另外要让不同的用户自行安装证书,这件事本身也是充满了挑战.
现状是,安全性极高的认证机构可颁发客户端证书但仅用于特殊用途的业务.比如银行的网银就采用客户端证书.客户端证书另一个问题只能证明客户端实际存在,而不能用来证明用户本人的真实.
由自认证机构颁发的证书成为自签名证书
如果使用openSSL这套开源程序,都可以构建一套属于自己的认证机构,从而自己给自己颁发服务器证书.但该服务器证书在互联网不可作为证书使用.
构建的认证机构叫做自认证机构颁发的证书为"自签名证书"
浏览器访问该服务器时,会显示"无法确认连接安全性"或"该网站的安全证书存在问题"等
之所以这样原因是它无法消除伪装的可能性.值得信赖的第三方机构介入认证,才能让已植入在浏览器内的认证机构颁布的公钥发挥作用,并证明服务器的真实性.
ps:中级认证机构的证书,某些浏览器会以正规的证书来对待,可有的浏览器会当做自签名证书.
HTTPS的安全通信机制
为了更好地理解HTTPS,我们观察一下HTTPS的通信步骤
1.客户端通过发送client hello报文开始SSL通信.报文中包含客户端支持的SSL指定版本,加密组件列表(所使用的加密算法 密钥长度等)
2.服务器可进行SSL通信时,会议Server Hello报文作文回应.报文中含SSL版本 加密组件.服务器的加密组件内容是从接受客户端加密组件内筛选出来的.
3.之后服务器发送certificate报文.报文中包好公开密钥证书.
4.服务器发送server hello done报文通知客户端.最初阶段握手协商部分结束.
5.SSL第一次握手结束后,客户端以client key exchange报文作为回应.报文包含通信加密中使用的随机密码串.该报文已用步骤3中的公钥加密;
6.客户端继续发送change cipher spec报文.该报文会提示想服务器,在此报文之后的通讯会采用pre-master secret密钥加密
7.客户端发送finished报文 该报文包含连接至今前部报文的整体校验值.这次握手协商是否成功,要以服务器是否能够正确解密该报文作文判定标准.
8.服务器同样发送change cipher spec报文
9.服务器同样发送finished报文
10.C&S finishe报文交换完毕之后,ssl连接就算建立完成.通信会受到SSL的保护.从此开始进行应用层的协议通信,即发送HTTP响应
11.应用层协议通信,即发送HTTP响应
12.最后客户端断开连接.断开连接时,发送close_notity报文.上图做了一些省略
在以上流程中,应用层发送数据时会附加一种叫做MAC(message authentication code)的报文摘要.MAC能够查知报文是佛遭到篡改.从而保护报文的完整性.
到此HTTP的问题基本都已经解决啦,那HTTPS就没有缺点吗
SSL最大的问题所在就是慢!!
SSL的慢分两种.一种指通信慢,另一种是指由于大量消耗CPU以及内存资源,导致处理速度变慢.
和使用http相比网络负载可能会变慢2到100倍.出去和TCP连接,发送HTTP请求&响应以外,还必须进行SSL通信,因此整体上处理通信量不可避免会增加.
另一点是SSL必须进行加密处理.服务器和客户端都要进行加密和解密的处理.比起HTTP会更多的消耗服务器和客户端的硬件资源,导致负载增强.
针对速度变慢这一问题,并没有根本性的解决方案,我们会使用SSL加速器(专用服务器)硬件来改善该问题.该硬件为SSL通信专用硬件,相对软件来讲,能够提高数倍SSL的计算速度.仅在SSL处理时发挥SSL加速器的功效,以分担负载.
热心网友 时间:2022-06-18 00:44
HTTPS(全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS在HTTP的基础下加入SSL 层,HTTPS的安全基础是SSL,因此加密的详细内容就需要 SSL。HTTPS 存在不同于HTTP的默认端口及一个加密/身份验证层(在 HTTP与TCP之间)。