理解SSL原理~~

一.对称加密VS非对称加密

1.对称加密

场景分析:A要发数据给B,发送过程中C可能对数据进行窃听和篡改,所以这时候A和B就要对自己的数据进行加密,才能保证数据的安全性.
对称加密原理:A和B会使用一个共享的密钥(预先商量好),A在发送数据之前,用这个密钥对数据加密。B在收到数据之后,用这个密钥对数据解密。因为加密解密用的是同一个密钥,所以这里的加密算法称为对称加密算法

2.非对称加密

非对称加密使用两个密钥,一个是public key,一个是private key。通过一个特殊的数学算法,使得数据的加密和解密使用不同的密钥。因为用的是不同的密钥,所以称为非对称加密

3.非对称加密的安全隐患

A和B要通过网络交换public key。假设有这种情况,C拦截了A和B的public key,又分别用自己的public key发给A和B。A和B并不知道,他们还以为这个public key来自对方。当A给B发消息时,A先用自己的private key加密数据的hash值,之后用C传来的假的public key加密数据,再发出去。C拦截到之后,先用C自己的private key解密数据,C就获取了A的原始信息!之后,C可以篡改数据内容,再用自己的private key加密数据的hash值,用之前拦截的B的public key加密数据,再发给B。B收到以后,先用自己的private key解密数据,再用C传来的假public key解密hash值,发现匹配。这样,B收到了一条来自C的假的信息,但是B还以为信息来自于A。中间人攻击仍然可能存在!

4.如何解决?

通过CA来保证public key的真实性。CA也是基于非对称加密算法来工作。有了CA,B会先把自己的public key(和一些其他信息)交给CA。CA用自己的private key加密这些数据,加密完的数据称为B的数字证书。现在B要向A传递public key,B传递的是CA加密之后的数字证书。A收到以后,会通过CA发布的CA证书,来解密B的数字证书,从而获得B的public key。
A怎么确保CA证书不被劫持?
CA把自己的CA证书集成在了浏览器和操作系统里面。A拿到浏览器或者操作系统的时候,已经有了CA证书,没有必要通过网络获取,那自然也不存在劫持的问题

5.实际使用

非对称加密算法比对称加密算法要复杂的多,处理起来也要慢得多。如果所有的网络数据都用非对称加密算法来加密,那效率会很低。所以在实际中,非对称加密只会用来传递一条信息,那就是用于对称加密的密钥。当用于对称加密的密钥确定了,A和B还是通过对称加密算法进行网络通信。这样,既保证了网络通信的安全性,又不影响效率,A和B也不用见面商量密钥了。
所以,A和B之间要进行安全,省心的网络通信,需要经过以下几个步骤

  • 通过CA体系交换public key
  • 通过非对称加密算法,交换用于对称加密的密钥
  • 通过对称加密算法,加密正常的网络通信

二.SSL协议

1.什么是SSL协议

SSL(Secure Sockets Layer 安全套接字协议),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密

2.SSL协议的握手

第一步,客户端给出协议版本号、一个客户端生成的随机数,以及客户端支持的加密方法。
第二步,服务器确认双方使用的加密方法,并给出数字证书、以及一个服务器生成的随机数
第三步,客户端确认数字证书有效,然后生成一个新的随机数,并使用数字证书中的公钥,加密这个随机数,发给服务器。(非对称加密)
第四步,服务器使用自己的私钥,获取客户端发来的随机数
第五步,客户端和服务器根据约定的加密方法,使用前面的三个随机数,生成"对话密钥",用来加密接下来的整个对话过程。(对称加密)
在这里插入图片描述

3.私钥的作用

  • 生成对话密钥一共需要三个随机数。
  • 握手之后的对话使用"对话密钥"加密(对称加密),服务器的公钥和私钥只用于加密和解密"对话密钥"(非对称加密),无其他作用。
  • 服务器公钥放在服务器的数字证书之中。

三.HTTPS与SSL

1.HTTPS

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

2.SSL建立的过程

在这里插入图片描述

  • 客户端提交https请求
  • 服务器响应客户,并把证书公钥发给客户端
  • 客户端验证证书公钥的有效性
  • 有效后,会生成一个会话密钥
  • 用证书公钥加密这个会话密钥后,发送给服务器
  • 服务器收到公钥加密的会话密钥后,用私钥解密,回去会话密钥
  • 客户端与服务器双方利用这个会话密钥加密要传输的数据进行通信

3.https怎么实现的

① 证书验证阶段
(1)浏览器发起 HTTPS 请求
(2)服务端返回 HTTPS 证书
(3)客户端验证证书是否合法,如果不合法则提示告警
② 数据传输阶段
(1)当证书验证合法后,在本地生成随机数
(2)通过公钥加密随机数,并把加密后的随机数传输到服务端
(3)服务端通过私钥对随机数进行解密
(4)服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输

4.优点

(1)使用 HTTPS 协议可认证用户和服务器,确保数据发送到正确的客户机和服务器
(2)HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比 HTTP 协议安全,可防止数据在传输过程中被窃取、改变,确保数据的完整性
(3)HTTPS 是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本

5.缺点

(1)相同网络环境下,HTTPS 协议会使页面的加载时间延长近 50%,增加 10%到 20%的耗电
(2)HTTPS 协议还会影响缓存,增加数据开销和功耗
(3)HTTPS 协议的安全是有范围的,在黑客攻击、拒绝服务攻击和服务器劫持等方面几乎起不到什么作用
(4)SSL 证书的信用链体系并不安全。特别是在某些国家可以控制 CA 根证书的情况下,中间人攻击一样可行
(5)成本增加。部署 HTTPS 后,因为 HTTPS 协议的工作要增加额外的计算资源消耗

6.https的主要作用

(1)建立一个信息安全通道,来保证数据传输的安全
(2)确认网站的真实性

7.应用场景

(1)业务系统需要符合相关安全评测的要求。
如业务系统需要通过信息安全测评、等级保护测评等上级主管部门安全要求,而评测细则中明确要求网站必须通过https方式进行加密。
(2)提高网站在搜索引擎中的排名。
采用https进行网站的部署,可以明显提高网站在同类行业中的排名优先级,提高站点的可信度、品牌形象。
(3)提高网站的安全性。
全站Https是根治中间人流量劫持的解决方案,不仅可以杜绝网页中被插入小广告,更可以保护用户隐私安全

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值