2025-03-01 00:22:20
我们在浏览网页时,浏览器与网站服务器之间一般是通过应用层的HTTP协议(Hyper Text Transfer Protocol,超文本传送协议[[i]])和HTTPS协议(HypertextTransfer Protocol over Secure Socket Layer,安全套接字层上的超文本传送协议[[ii]])来传输数据的。
在HTTP协议中,所有的数据都是明文公开传输,如果攻击者在网络上截获了传输的数据,就可以恢复出真实的数据内容。所以HTTP协议适用于数据不敏感、不需要加密保护的网站应用,例如,百度搜索的网址是
HTTPS协议可以简单地理解为安全的HTTP协议,具有身份认证和加密传输的特性。支持HTTPS协议的网站服务器需要有公钥证书[[iii]],该证书表明了网站服务器的身份,也包含了网站服务器的公开密钥。浏览器在访问该网站时,首先验证该网站服务器的身份,即通过用户主机上受信任的证书颁发机构[[iv]]列表(通常是预先安装在主机上的,也可以在后续过程中添加和删除),验证网站服务器的证书是否在有效期内,是否是由受信任的证书颁发机构所颁发等等。如果验证通过(通常浏览器会在地址栏旁边用锁形图标提示,点击后会进一步提示网站服务器证书信息,如图 1所示为IE浏览器中某HTTPS服务器验证通过),则浏览器与网站服务器通过服务器证书中的公钥协商出一个会话密钥,后续通信中所传输的数据都通过这个会话密钥进行加密,即使攻击者截获了通信数据,也无法将加密的内容进行恢复,这样用户的数据就得到了很好的保护;如果验证不通过,则浏览器会向用户发出安全警报(通常在地址栏旁边用一个带红叉的图标提示,点击后会进一步提示具体错误信息,如图 2所示为IE浏览器中某HTTPS服务器验证不通过)。HTTPS协议适用于数据敏感、需要加密保护的网站应用(例如,电子交易、安全电子邮件)。以支付宝网站为例,其网址为https://www.alipay.com,https表明其采用HTTPS协议进行数据传输,即使攻击者截获用户在支付宝网站上的数据,也很难对其进行解密恢复和篡改,从而保证了用户数据的安全性。
图 1浏览器验证网站证书成功示意图
图 2浏览器提示网站证书错误示意图
相比于HTTP协议,HTTPS协议增强了网络应用中数据传输的安全性。但也存在如下问题:1.网站服务器和浏览器需要对应用数据进行加解密操作,增加了其运算负荷,对传输性能有一定影响;2.网站服务器的公钥证书通常需要向权威的证书颁发机构(例如VeriSign[[v]])申请,同时证书也有使用期限,这就给网站运营增加了一定的成本。对于某些小成本运营或者内部使用的HTTPS网站服务器,它们可能会使用一些小公司颁发的或者自己制作的公钥证书。尽管这些证书可以用于加密数据,但通常不能通过用户浏览器的身份验证。
我们在日常浏览网站时看到该站点安全证书的吊销信息不可用等安全警报时,说明所浏览的网站是通过HTTPS协议进行数据传输的,但是由于该网站服务器的公钥证书不能通过安全验证(可能是证书过期,或者是证书的颁发者不在用户主机上受信任的颁发机构列表中等原因)。在这种情况下,网站服务器与用户浏览器之间的数据传输安全无法得到保证,存在被攻击者窃听或者篡改的可能,所以如果用户在进行电子交易、查看重要资料等操作,那么建议用户中止对该网站的访问(这也是浏览器给出的建议,如图 3所示);如果用户继续浏览,则可能造成用户财产或者其它重要信息的损失。
图 3浏览器对网站证书验证失败的提示和建议
当然也有一些例外,如果用户对所浏览网站有一定的认识,认为继续访问并不会带来个人重要数据的泄露,或者确信即使数据泄露也不会带来损失或完全可以承受可能的损失,那么用户可以选择继续访问网站。例如,单位内部的邮件服务器为了保护用户隐私,采用HTTPS方式访问,但是为了节约成本,邮件服务器采用自己制作的公钥证书,所以浏览器提示证书验证不通过,但内部用户知道:安全警报是因为邮件服务器的公钥证书不在用户浏览器的受信任证书颁发机构列表中,浏览器与邮件服务器之间数据传输的安全性仍然可以得到保证,那么用户可以忽略浏览器的安全警报,继续使用邮件服务。
总的来说,如果用户浏览网页时出现该站点安全证书的吊销信息不可用等安全警报时,除非用户能够确认该安全问题不会给自己造成损失或者损失可以承受,否则应中止对该网站的浏览,从而最大程度地保护个人的财产和其它重要信息。
[i]百度百科超文本传送协议.
[ii]百度百科 https.
[iii]百度百科公钥证书.
[iv]证书和证书颁发机构.
[v] VeriSign.