What is HTTPS?
HTTPS (Hypertext Transfer Protocol Secure)是HTTP(Hypertext Transfer Protocol)协议的安全版本,采用SSL/TLS协议进行加密和身份验证。HTTPS由RFC 2818(2000年5月)指定,默认使用443端口,而不是HTTP的80端口。
HTTPS,地址栏上的锁图标,加密的网站连接。
HTTPS协议使网站用户能够在互联网上安全地传输敏感数据,如信用卡号码、银行信息和登录凭据。出于这个原因,HTTPS对于保护购物、银行和远程工作等在线活动的安全尤其重要。然而,HTTPS正迅速成为所有网站的标准协议,无论它们是否与用户交换敏感数据。
HTTPS和HTTP有什么不同?
HTTPS为HTTP协议添加加密、身份验证和完整性。HTTPS中的S代表“Secure”。它是浏览器在与网站通信时使用的标准“超文本传输协议(Hypertext Transfer Protocol)”的安全版本。
HTTP是如何给你带来风险的
当你使用普通HTTP连接到一个网站时,浏览器会查找该网站对应的IP地址,连接到该IP地址,并假定它连接到正确的web服务器。数据以明文形式通过连接发送。Wi-Fi网络上的窃听者、你的互联网服务提供商或像美国国家安全局(NSA)这样的政府情报机构可以看到你正在访问的网页和你来回传输的数据。
这有很大的问题。首先,没有办法验证你连接到正确的网站。也许你认为你访问了银行的网站,但你在一个被入侵的网络上,它会将你重定向到一个冒名顶替的网站。密码和信用卡号绝对不能通过HTTP连接发送,否则窃听者很容易窃取它们。
这些问题的发生是因为HTTP连接没有加密。HTTPS连接是加密的。
HTTPS加密是如何保护你的
加密(Encryption): 因为HTTP最初是作为明文协议设计的,所以很容易被窃听(eavesdropping)和中间人攻击(man in the middle attacks)。通过包含SSL/TLS加密,HTTPS可以防止在互联网上发送的数据被第三方截获(intercepted)和读取。通过公钥加密和SSL/TLS握手,从未见过面的双方(例如web服务器和浏览器)可以通过创建共享密钥安全地建立加密的通信会话。
身份验证(Authentication): 与HTTP不同,HTTPS通过SSL/TLS协议提供了可靠的身份验证。网站的SSL/TLS证书包含一个公钥,web浏览器可以使用它来确认服务器发送的文档(例如HTML页面)是否由拥有相应私钥的人进行了数字签名。如果服务器的证书是由公开可信的证书颁发机构(CA)签名的,例如SSL.com,那么浏览器将接受证书中包含的任何标识信息都是由受信任的第三方验证的。
HTTPS网站也可以配置为双向认证(mutual authentication),即web浏览器提供标识用户的客户端证书。双向身份验证对于远程工作等情况非常有用,在这种情况下,需要包括多因素身份验证(multi-factor authentication),以减少涉及凭据盗窃(credential theft)的网络钓鱼(phishing)或其他攻击的风险。
完整性(Integrity): 通过HTTPS web服务器发送给浏览器的每个文档(例如网页、图像或JavaScript文件)都包含一个数字签名,web浏览器可以通过它来确定文档在传输过程中没有被第三方更改或损坏。服务器计算包含在其数字证书中的文档内容的加密哈希值,浏览器可以独立计算该哈希值以证明文档的完整性未受影响。
综上所述,这些对加密、身份验证和完整性的保证使得HTTPS在浏览web和进行业务时比HTTP安全得多。
HTTPS为用户提供了哪些关于网站所有者的信息?
CA在签发数字证书时使用三种基本的验证方法。使用的验证方法确定网站的SSL/TLS证书中包含的信息:
- 域名验证(Domain Validation, DV)只是确认证书所覆盖的域名在申请证书的实体的控制之下。
- 组织(Organization)/个人(Individual)验证(OV/IV)证书包括经过验证的企业或其他组织(OV)或个人(IV)的名称。
- 扩展验证(Extended Validation, EV)证书代表了互联网信任的最高标准,需要CA付出最大的努力来验证。EV证书只颁发给企业和其他注册组织,而不是个人,并且包含该组织的有效名称。
HTTPS是如何工作的?
HTTPS通过将HTTP封装在SSL/TLS协议中(这就是SSL被称为隧道协议的原因),为HTTP协议增加了加密功能,因此在两台联网的计算机(例如客户端和web服务器)之间的所有消息都是双向加密的。尽管窃听者(eavesdropper)仍然可以获取IP地址、端口号、域名、交换的信息数量和会话持续时间,但所有实际交换的数据都是通过SSL/TLS安全加密的,包括:
- 请求URL(客户端请求的网页);
- 网站内容
- Query parameters查询参数
- Headers
- Cookies
HTTPS也使用SSL/TLS协议进行身份验证。SSL/TLS使用称为X.509证书的数字文档将加密密钥对与网站、个人和公司等实体的身份绑定。每个密钥对包含一个私钥和一个可广泛分发的公钥。任何拥有公钥的人都可以使用它来:
- 发送一条消息,只有私钥的拥有者才能解密。
- 确认消息已由其对应的私钥进行数字签名。
如果HTTPS网站提供的证书是由公开可信的CA (certificate authority)签名的,例如SSL.com,那么用户可以确信网站的身份是由可信且经过严格审计的第三方验证的。
参考
- ssl.com/faqs/what-is-https