https及核心SSL

前言

http协议是明文传输的,我们在网络中通常会填写账号密码,个人信息,账户金额,交易信息,敏感信息等等都属于需要保护的信息,如果我们在http协议中进行信息传输,那么很显然是不安全的,网络中各个设备都可以看到这些信息,如果有不法分子把这些信息提取出来,这样就会造成信息泄露等。所以HTTP具有一些缺点:
●通信使用明文(不加密),内容可能会被窃听
●不验证通信方的身份,因此有可能遭遇伪装
●无法证明报文的完整性,所以有可能已遭篡改
因为HTTP存在这些缺点,所以推出更为安全的HTTPS

一、https是什么?

HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。

二、https的特点

1.https和http的区别:

一、传输信息安全性不同
1、http协议:是超文本传输协议,信息是明文传输。如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。
2、https协议:是具有安全性的ssl加密传输协议,为浏览器和服务器之间的通信加密,确保数据传输的安全。
二、连接方式不同
1、http协议:http的连接很简单,是无状态的。
2、https协议:是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。
三、端口不同
1、http协议:使用的端口是80。
2、https协议:使用的端口是443。
四、证书申请方式不同
1、http协议:免费申请。
2、https协议:需要到ca(证书颁发机构)申请证书,一般免费证书很少,需要交费。

2、https的优缺点

优点:
1、使用 HTTPS 协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。
2、HTTPS 协议是由SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比 HTTP 协议安全,可防止数据在传输过程中不被窃取、修改,确保数据的完整性。
3、HTTPS 是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
缺点:
1、HTTPS 协议握手阶段比较费时,会使页面的加载时间延长近。
2、HTTPS 连接缓存不如 HTTP 高效,会增加数据开销,甚至已有的安全措施也会因此而受到影响。
3、HTTPS 协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎起不到什么作用。
4、SSL 证书通常需要绑定 IP,不能在同一 IP 上绑定多个域名,IPv4 资源不可能支撑这个消耗。
5、成本增加。部署 HTTPS 后,因为 HTTPS 协议的工作要增加额外的计算资源消耗,例如 SSL 协议加密算法和 SSL 交互次数将占用一定的计算资源和服务器成本。
6、HTTPS 协议的加密范围也比较有限。最关键的,SSL 证书的信用链体系并不安全,特别是在某些国家可以控制 CA 根证书的情况下,中间人攻击一样可行。

3、HTTPS 的连接过程

在这里插入图片描述
详解(不用硬记):(重点在于ssl的连接)
步骤1: 客户端通过发送Client Hello报文开始SSL通信。报文中包含客户端支持的SSL的指定版本、加密组件(Cipher Suite)列表(所使用的加密算法及密钥长度等)。
步骤2: 服务器可进行SSL通信时,会以Server Hello报文作为应答。和客户端一样,在报文中包含SSL版本以及加密组件。服务器的加密组件内容是从接收到的客户端加密组件内筛选出来的。
步骤3: 之后服务器发送Certificate报文。报文中包含公开密钥证书。
步骤4: 最后服务器发送Server Hello Done报文通知客户端,最初阶段的SSL握手协商部分结束。
步骤5: SSL第一次握手结束之后,客户端以Client Key Exchange报文作为回应。报文中包含通信加密中使用的一种被称为Pre-master secret的随机密码串。该报文已用步骤3中的公开密钥进行加密。
步骤6: 接着客户端继续发送Change Cipher Spec报文。该报文会提示服务器,在此报文之后的通信会采用Pre-master secret密钥加密。
步骤7: 客户端发送Finished报文。该报文包含连接至今全部报文的整体校验值。这次握手协商是否能够成功,要以服务器是否能够正确解密该报文作为判定标准。
步骤8: 服务器同样发送Change Cipher Spec报文。
步骤9: 服务器同样发送Finished报文。
步骤10: 服务器和客户端的Finished报文交换完毕之后,SSL连接就算建立完成。当然,通信会受到SSL的保护。从此处开始进行应用层协议的通信,即发送HTTP请求。
步骤11: 应用层协议通信,即发送HTTP响应。
步骤12: 最后由客户端断开连接。断开连接时,发送close_notify报文。,这步之后再发送TCP FIN报文来关闭与TCP的通信。

三、SSL

1、密钥:

1.对称加密
在这里插入图片描述
2.非对称加密
在这里插入图片描述
种类:
私钥:私钥自己使用,不对外公开
公钥:公钥给大家使用,对外公开

2、SSL安全握手

在这里插入图片描述
1.对客户端,它首先会生成一个随机数1,然后再把随机数和相关的协议版本以及它所支持的加密算法告诉服务端,这时候数据是明文的,不加密的。
2.服务器也会生成一个随机数,然后也会提供自己的数字证书,然后把客户端的加密算法进行确定。
通过第二步,双方就能确定加密算法是什么算法了。但是此时还没有确定密钥。
当服务器把数字证书发送给客户端,客户端收到之后,捕获到随机数2,此时客户端和服务端都拥有随机数1和随机数2
3.客户端首先会确认证书是否有效,如果无效,则认为服务器是不安全的。然后生成随机数3,并使用证书里面提供的公钥加密随机数3。然后把加密之后的数据发送给服务端。此时客户端和服务器都拥有了随机数1,2,3.
此时只有服务器自身才可以把随机数3解密,其他人就无法界面了。
之前都是非对称加密
4.此时双方的信息对称,都拥有随机数1,2,3,然后根据随机数1,2,3,和相同的算法生成对称密钥,生成对称密钥之后就可以进行加密的传输了。
HTTPS综合使用对称加密和非对称加密
双方分别生成秘钥,没有经过传输,减少了密钥泄露的可能。

3、ssl的特点:

SSL 提供服务
(1) 认证用户和服务器,确保数据发送到正确的客户机和服务器;
(2) 加密数据以防止数据中途被窃取;
(3) 维护数据的完整性,确保数据在传输过程中不被改变。
SSL 协议提供的安全通道有以下三个特性:
机密性:SSL 协议使用密钥加密通信数据。
客户端和服务端在开始传输数据之前,会协商传输过程需要使用的加密算法。 客户端发送协商请求给服务端, 其中包含自己支持的非对成加密的密钥交换算法 ( 一般是RSA),数据签名摘要算法 ( 一般是SHA或者MD5) ,加密传输数据的对称加密算法 ( 一般是DES),以及加密密钥的长度。 服务端接收到消息之后,选中安全性最高的算法,并将选中的算法发送给客户端,完成协商。客户端生成随机的字符串,通过协商好的非对称加密算法,使用服务端的公钥对该字符串进行加密,发送给服务端。 服务端接收到之后,使用自己的私钥解密得到该字符串。在随后的数据传输当中,使用这个字符串作为密钥进行对称加密。

可靠性:服务器和客户都会被认证,客户的认证是可选的。
双向的身份认证
客户端和服务端在传输数据之前,会通过基于X.509证书对双方进行身份认证 。具体过程如下:
客户端发起 SSL 握手消息给服务端要求连接。服务端将证书发送给客户端。
客户端检查服务端证书,确认是否由自己信任的证书签发机构签发(客户端内置了所有受信任 CA 的证书)。 如果不是,将是否继续通讯的决定权交给用户选择 ( 注意,这里将是一个安全缺陷 )。如果检查无误或者用户选择继续,则客户端认可服务端的身份。服务端要求客户端发送证书,并检查是否通过验证。失败则关闭连接,认证成功则从客户端证书中获得客户端的公钥,一般为 1024 位或者 2048 位。到此,服务器客户端双方的身份认证结束,双方确保身份都是真实可靠的。

完整性:SSL 协议会对传送的数据进行完整性检查。
和tcp很像,用序列号

四、术语解释:

客户端解析证书
这部分工作是由客户端的 TLS 来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个对称加密密钥,然后用公钥对该密钥进行非对称加密。
服务器证书(server certificates)是 SSL 数字证书的一种形式,意指通过提交数字证书来证明您的身份或表明您有权访问在线服务。再者简单来说,通过使用服务器证书可为不同站点提供身份鉴定并保证该站点拥有高强度加密安全。是组成 Web 服务器的 SSL 安全功能的唯一的数字标识。通过相互信任的第三方组织获得,并为用户提供验证您 Web 站点身份的手段。服务器证书包含详细的身份验证信息,如服务器内容附属的组织、颁发证书的组织以及称为公开密钥的唯一的身份验证文件。
传送加密信息
这部分传送的是用公钥加密后的对称加密密钥,目的就是让服务端得到这个密钥,以后客户端和服务端的通信就可以通过这个密钥来进行加密解密了。
服务端解密信息
服务端用非对称加密算法里的私钥解密后,得到了客户端传过来的对称加密算法的私钥,然后把之后传输的内容通过该值进行对称加密。
为什么用非对称加密协商对称加密密钥
对称加密的特点:对称密码体制中只有一种密钥,并且是非公开的。如果要解密就得让对方知道密钥,所以想要保证其安全性就要保证密钥的安全。
非对称加密的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了,这样安全性就大了很多。
非对称加密公钥和私钥的使用方法:(1) 公钥加密私钥解密。(2) 私钥做数字签名,公钥验证。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页