https

浏览:3次阅读

提醒:本文最后更新于 2026-05-24 06:56,文中所关联的信息可能已发生改变,请知悉!

HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版。

编辑

概述
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版。

定义:

HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版。即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。它是一个 URI scheme(抽象标识符体系),句法类同 http: 体系。用于安全的 HTTP 数据传输。https:URL 表明它使用了 HTTP,但 HTTPS 存在不同于 HTTP 的默认端口及一个加密 / 身份验证层(在 HTTP 与 TCP 之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。

简单介绍:

HTTP 的发展是万维网协会(World Wide Web Consortium)和 Internet 工作小组(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的 RFC,其中最著名的就是 RFC 2616。RFC 2616 定义了 HTTP 协议的我们今天普遍使用的一个版本——HTTP 1.1。

HTTP 是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用 Web 浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为 80)的 HTTP 请求。(我们称这个客户端)叫用户代理(user agent)。应答的服务器上存储着(一些)资源,比如 HTML 文件和图像。(我们称)这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在 http 和其他几种网络协议

多个中间层,比如代理,网关,或者隧道(tunnels)。尽管 TCP/IP 协议是互联网上最流行的应用,HTTP 协议并没有规定必须使用它和(基于)它支持的层。事实上,HTTP 可以在任何其他互联网协议上,或者在其他网络上实现。HTTP 只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。

通常,由 HTTP 客户端发起一个请求,建立一个到服务器指定端口(默认是 80 端口)的 TCP 连接。HTTP 服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如 ”HTTP/1.1 200 OK”,和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。HTTP 协议的网页
HTTP 使用 TCP 而不是 UDP 的原因在于(打开一个)一个网页必须传送很多数据,而 TCP 协议提供传输控制,按顺序组织数据,和错误纠正。通过 HTTP 或者 HTTPS 协议请求的资源由统一资源标示符(Uniform Resource Identifiers)(或者,更准确一些,URLs)来标识。

协议结构

HTTP 报文由从客户机到服务器的请求和从服务器到客户机的响应构成。请求报文格式如下:请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体 请求行以方法字段开始,后面分别是 URL 字段和 HTTP 协议版本字段,并以 CRLF 结尾。SP 是分隔符。除了在最后的 CRLF 序列中 CF 和 LF 是必需的之外,其他都可以不要。有关通用信息头,请求头和实体头方面的具体内容可以参照相关文件。应答报文格式如下:状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体 状态码元由 3 位数字组成,表示请求是否被理解或被满足。原因分析是对原文的状态码作简短的描述,状态码用来支持自动操作,而原因分析用来供用户使用。客户机无需用来检查或显示语法。有关通用信息头,响应头和实体头方面的具体内容可以参照相关文件。

HTTPS 解决的问题

信任主机的问题

采用 https 的服务器必须从 CA(Certificate Authority)申请一个用于证明服务器用途类型的证书。该证书只有用于对应的服务器的时候,客户端才信任此主机。所以目前所有的银行系统网站,关键部分应用都是 https 的。客户通过信任该证书,从而信任了该主机。其实这样做效率很低,但是银行更侧重安全。这一点对我们没有任何异议,我们的服务器,采用的证书不管是自己发布的还是从公众的地方发布的,其客户端都是自己人,所以我们也就肯定信任该服务器。

通讯过程中的数据的泄密和被篡改

1. 一般意义上的 https,就是服务器有一个证书。

a)主要目的是保证服务器就是他声称的服务器,这个跟第一点一样。

b)服务端和客户端之间的所有通讯,都是加密的。

i. 具体讲,是客户端产生一个对称的密钥,通过服务器的证书来交换密钥,即一般意义上的握手过程。

ii. 接下来所有的信息往来就都是加密的。第三方即使截获,也没有任何意义,因为他没有密钥,当然篡改也就没有什么意义了。

2. 少许对客户端有要求的情况下,会要求客户端也必须有一个证书。

a)这里客户端证书,其实就类似表示个人信息的时候,除了用户名 / 密码,还有一个 CA 认证过的身份。因为个人证书一般来说是别人无法模拟的,所有这样能够更深的确认自己的身份。

b)目前少数个人银行的专业版是这种做法,具体证书可能是拿 U 盘(即 U 盾)作为一个备份的载体。

正文完
 0
douyc
收录声明:网站收录文章,由 douyc 于2016-02-16整理,共计2243字。
转载说明:文章来源于网络收集,如侵权请联系我们删除有关信息.