https

生活百科 2023-01-25 19:32生活百科www.aizhengw.cn

https

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

基本介绍

  • 中文名超文本传输安全协定
  • 外文名HTTPS
  • 目标安全
  • 套用安全数据传输

历史

网景在1994年创建了HTTPS,并套用在网景导航者浏览器中。 最初,HTTPS是与SSL一起使用的;在SSL逐渐演变到TLS时,最新的HTTPS也由在2000年五月公布的RFC 2818正式确定下来。
它是由Netscape开发并内置于其浏览器中,用于对数据进行加密和解密操作,并返回网路上传送回的结果。HTTPS实际上套用了Netscape的安全套接层(SSL)作为HTTP套用层的子层。(HTTPS使用连线埠443,而不是像HTTP那样使用连线埠80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认传送者是谁。
也就是说它的主要作用可以分为两种一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性,凡是使用了 https 的网站,都可以通过点击浏览器地址栏的锁头标誌来查看网站认证之后的真实信息,也可以通过 CA 机构颁发的安全签章来查询。

区别

HTTPS和HTTP的区别
超文本传输协定HTTP协定被用于在Web浏览器和网站伺服器之间传递信息。HTTP协定以明文方式传送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站伺服器之间的传输报文,就可以直接读懂其中的信息,HTTP协定不适合传输一些敏感信息,比如信用卡号、密码等。
为了解决HTTP协定的这一缺陷,需要使用另一种协定安全套接字层超文本传输协定HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协定,SSL依靠证书来验证伺服器的身份,并为浏览器和伺服器之间的通信加密。
HTTPS和HTTP的区别主要为以下四点
一、https协定需要到ca申请证书,一般免费证书很少,需要交费。
二、http是超文本传输协定,信息是明文传输,https 则是具有安全性的ssl加密传输协定。
三、http和https使用的是完全不同的连线方式,用的连线埠也不一样,前者是80,后者是443。
四、http的连线很简单,是无状态的;HTTPS协定是由SSL+HTTP协定构建的可进行加密传输、身份认证的网路协定,比http协定安全。

解决问题

信任主机的问题
採用https的伺服器必须从CA (Certificate Authority)申请一个用于证明伺服器用途类型的证书。该证书只有用于对应的伺服器的时候,客户端才信任此主机。所以所有的银行系统网站,关键部分套用都是https 的。客户通过信任该证书,从而信任了该主机。其实这样做效率很低,银行更侧重安全。这一点对区域网路对内提供服务处的伺服器没有任何意义。区域网路中的伺服器,採用的证书不管是自己发布的还是从公众的地方发布的,其客户端都是自己人,所以该区域网路中的客户端也就肯定信任该伺服器。
通讯过程中的数据的泄密和被篡改
1. 一般意义上的https,就是伺服器有一个证书。
a) 主要目的是保证伺服器就是他声称的伺服器,这个跟第一点一样。
b)服务端和客户端之间的所有通讯,都是加密的。
i. 具体讲,是客户端产生一个对称的密钥,通过伺服器的证书来交换密钥,即一般意义上的握手过程。
ii. 接下来所有的信息往来就都是加密的。第三方即使截获,也没有任何意义,因为他没有密钥,篡改也就没有什幺意义了。
2. 少许对客户端有要求的情况下,会要求客户端也必须有一个证书。
a) 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码,还有一个CA 认证过的身份。因为个人证书是别人无法模拟的,所有这样能够更深的确认自己的身份。
b) 目前大多数个人银行的专业版是这种做法,具体证书可能是拿随身碟(即U盾)作为一个备份的载体。

限制

它的安全保护依赖浏览器的正确实现以及伺服器软体、实际加密算法的支持。
一种常见的误解是“银行用户线上使用https:就能充分彻底保障他们的银行卡号不被偷窃。”实际上,与伺服器的加密连线中能保护银行卡号的部分,只有用户到伺服器之间的连线及伺服器自身。并不能绝对确保伺服器自己是安全的,这点甚至已被攻击者利用,常见例子是模仿银行域名的钓鱼攻击。少数罕见攻击在网站传输客户数据时发生,攻击者会尝试窃听传输中的数据。
商业网站被人们期望迅速儘早引入新的特殊处理程式到金融网关,仅保留传输码(transaction number)。不过他们常常存储银行卡号在同一个资料库里。那些资料库和伺服器少数情况有可能被未授权用户攻击和损害。
TLS 1.1之前,这段仅针对TLS 1.1之前的状况。因为SSL位于http的下一层,并不能理解更高层协定,通常SSL伺服器仅能颁证给特定的IP/连线埠组合。这使它经常不能在虚拟主机(基于域名)上与HTTP正常组合成HTTPS。
这一点将在TLS 1.1更新为一种完全支持基于域名的虚拟主机。

ssl

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网路通信提供安全及数据完整性的一种安全协定。TLS与SSL在传输层对网路连线进行加密。
SSL (Secure Socket Layer)为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网路上之传输过程中不会被截取及窃听。目前一般通用之规格为40 bit之安全标準,美国则已推出128 bit之更高安全标準,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。
当前版本为3.0。它已被广泛地用于Web浏览器与伺服器之间的身份认证和加密数据传输。
SSL协定位于TCP/IP协定与各种套用层协定之间,为数据通讯提供安全支持。SSL协定可分为两层SSL记录协定(SSL Record Protocol)它建立在可靠的传输协定(如TCP)之上,为高层协定提供数据封装、压缩、加密等基本功能的支持。SSL握手协定(SSL Handshake Protocol)它建立在SSL记录协定之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
SSL协定提供的服务主要有哪些
1)认证用户和伺服器,确保数据传送到正确的客户机和伺服器
2)加密数据以防止数据中途被窃取
3)维护数据的完整性,确保数据在传输过程中不被改变。
SSL协定的工作流程
伺服器认证阶段
1)客户端向伺服器传送一个开始信息“Hello”以便开始一个新的会话连线;
2)伺服器根据客户的信息确定是否需要生成新的主密钥,如需要则伺服器在回响客户的“Hello”信息时将包含生成主密钥所需的信息;
3)客户根据收到的伺服器回响信息,产生一个主密钥,并用伺服器的公开密钥加密后传给伺服器;
4)伺服器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证伺服器。
用户认证阶段
在此之前,伺服器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的伺服器传送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向伺服器提供认证。
从SSL 协定所提供的服务及其工作流程可以看出,SSL协定运行的基础是商家对消费者信息保密的承诺,这就有利于商家而不利于消费者。在电子商务初级阶段,由于运作电子商务的企业大多是信誉较高的大公司,这问题还没有充分暴露出来。但随着电子商务的发展,各中小型公司也参与进来,这样在电子支付过程中的单一认证问题就越来越突出。虽然在SSL3.0中通过数字签名和数字证书可实现浏览器和Web伺服器双方的身份验证,SSL协定仍存在一些问题,比如,只能提供交易中客户与伺服器间的双方认证,在涉及多方的电子交易中,SSL协定并不能协调各方间的安全传输和信任关係。在这种情况下,Visa和MasterCard两大信用卡公组织制定了SET协定,为网上信用卡支付提供了全球性的标準。

握手过程

为了便于更好的认识和理解SSL 协定,这里着重介绍SSL 协定的握手协定。SSL 协定既用到了公钥加密技术又用到了对称加密技术,对称加密技术虽然比公钥加密技术的速度快,可是公钥加密技术提供了更好的身份认证技术。SSL 的握手协定非常有效的让客户和伺服器之间完成相互之间的身份认证,其主要过程如下
①客户端的浏览器向伺服器传送客户端SSL 协定的版本号,加密算法的种类,产生的随机数,以及其他伺服器和客户端之间通讯所需要的各种信息。
②伺服器向客户端传送SSL 协定的版本号,加密算法的种类,随机数以及其他相关信息,伺服器还将向客户端传送自己的证书。
③客户利用伺服器传过来的信息验证伺服器的合法性,伺服器的合法性包括证书是否过期,发行伺服器证书的CA 是否可靠,发行者证书的公钥能否正确解开伺服器证书的“发行者的数字签名”,伺服器证书上的域名是否和伺服器的实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行第四步。
④用户端随机产生一个用于后面通讯的“对称密码”,然后用伺服器的公钥(伺服器的公钥从步骤②中的伺服器的证书中获得)对其加密,然后将加密后的“预主密码”传给伺服器。
⑤如果伺服器要求客户的身份认证(在握手过程中为可选),用户可以建立一个随机数然后对其进行数据签名,将这个含有签名的随机数和客户自己的证书以及加密过的“预主密码”一起传给伺服器。
⑥如果伺服器要求客户的身份认证,伺服器必须检验客户证书和签名随机数的合法性,具体的合法性验证过程包括客户的证书使用日期是否有效,为客户提供证书的CA 是否可靠,发行CA 的公钥能否正确解开客户证书的发行CA 的数字签名,检查客户的证书是否在证书废止列表(CRL)中。检验如果没有通过,通讯立刻中断;如果验证通过,伺服器将用自己的私钥解开加密的“预主密码”,然后执行一系列步骤来产生主通讯密码(客户端也将通过同样的方法产生相同的主通讯密码)。
⑦伺服器和客户端用相同的主密码即“通话密码”,一个对称密钥用于SSL 协定的安全数据通讯的加解密通讯。在SSL 通讯过程中还要完成数据通讯的完整性,防止数据通讯中的任何变化。
⑧客户端向伺服器端发出信息,指明后面的数据通讯将使用的步骤⑦中的主密码为对称密钥,通知伺服器客户端的握手过程结束。
⑨伺服器向客户端发出信息,指明后面的数据通讯将使用的步骤⑦中的主密码为对称密钥,通知客户端伺服器端的握手过程结束。
⑩SSL 的握手部分结束,SSL 安全通道的数据通讯开始,客户和伺服器开始使用相同的对称密钥进行数据通讯,进行通讯完整性的检验。

名词释义

如果要启用SSL通道,那幺需要使用SSL证书来启用https协定,SSl证书包含信息
证书版本号,不同版本的证书格式不同
Serial Number 序列号,同一身份验证机构签发的证书序列号唯一
Algorithm Identifier  签名算法,包括必要的参数Issuer 身份验证机构的标识信息
Period of Validity  有效期
Subject 证书持有人的标识信息
Subject’s Public Key 证书持有人的公钥
Signature 身份验证机构对证书的签名
证书的格式  认证中心所发放的证书均遵循X.509 V3 标準,其基本格式如下
证书版本号(Certificate Format Version)
含义用来指定证书格式採用的X.509 版本号。
证书序列号(Certificate Serial Number)
含义用来指定证书的唯一序列号,以标识CA 发出的所有公钥证书。
签名(Signature)算法标识(Algorithm Identifier)
含义用来指定 CA 签发证书所用的签名算法。
签发此证书的 CA 名称(Issuer )
含义用来指定签发证书的 CA 的X.500 唯一名称(DN,Distinguished Name)。
证书有效期(Validity Period)起始日期(notBefore) 终止日期(notAfter)
含义用来指定证书起始日期和终止日期。
用户名称(Subject)
含义用来指定证书用户的X.500 唯一名称(DN,Distinguished Name)。
用户公钥信息(Subject Public Key Information)算法(algorithm) 算法标识(Algorithm Identifier)用户公钥(subject Public Key)
含义用来标识公钥使用的算法,并包含公钥本身。
证书扩充部分(扩展域)(Extensions)
含义用来指定额外信息。
X.509 V3 证书的扩充部分(扩展域)及实现方法如下
CA 的公钥标识(Authority Key Identifier)
公钥标识(SET 未使用)(Key Identifier)
签发证书者证书的签发者的甄别名(Certificate Issuer)
签发证书者证书的序列号(Certificate Serial Number)
X.509 V3 证书的扩充部分(扩展域)及实现CA 的公钥标识(Authority Key Identifier)
公钥标识(SET 未使用)(Key Identifier)
签发证书者证书的签发者的甄别名(Certificat签发证书者证书的序列号(Certificate Serial Number)
含义CA 签名证书所用的密钥对的唯一标识用户的公钥标识(Subject Key Identifier)
含义用来标识与证书中公钥相关的特定密钥进行解密。
证书中的公钥用途(Key Usage)
含义用来指定公钥用途。
用户的私钥有效期(Private Key Usage Period)起始日期(Note Before) 终止日期(Note After)
含义用来指定用户签名私钥的起始日期和终止日期。
CA 承认的证书政策列表(Certificate Policies)
含义用来指定用户证书所适用的政策,证书政策可由对象标识符表示。
用户的代用名(Substitutional Name)
含义用来指定用户的代用名。
CA 的代用名(Issuer Alt Name)
含义用来指定 CA 的代用名。
基本制约(Basic Constraints)
含义用来表明证书用户是最终用户还是CA。 在SET 系统中有一些私有扩充部分(扩展域)Hashed Root Key 含义只在根证书中使用,用于证书更新时进行回溯。
证书类型(Certificate Type)
含义用来区别不同的实体。该项是必选的。
商户数据(Merchant Data)
含义包含支付网关需要的所有商户信息。
持卡人证书需求(Card Cert Required)
含义显示支付网关是否支持与没有证书的持卡人进行交易。
SET 扩展(SETExtensions)
含义列出支付网关支持的支付命令的 SET 信息扩展。
CRL 数据定义版本(Version)
含义显示 CRL 的版本号。
CRL 的签发者(Issuer)
含义指明签发 CRL 的CA 的甄别名。
CRL 发布时间(this Update)预计下一个 CRL 更新时间(Next Update)撤销证书信息目录(Revoked Certificates) CRL 扩展(CRL Extension)CA 的公钥标识(Authority Key Identifier)CRL 号(CRL Number)
SSL证书种类
CFCA,GlobalSign,VeriSign ,Geotrust ,Thawte 。
域名型 https 证书(DVSSL)信任等级一般,只需验证网站的真实性便可颁发证书保护网站;
企业型 https 证书(OVSSL)信任等级强,须要验证企业的身份,审核严格,安全性更高;
增强型 https 证书(EVSSL)信任等级最高,一般用于银行证券等金融机构,审核严格,安全性最高,可以激活绿色网址栏。

Copyright@2015-2025 www.aizhengw.cn 癌症网版板所有