SSL协议密钥交换过程理解

一、SSL

1 为什么需要SSL?

本文将以《喜羊羊与灰太狼》为引子贯穿全文介绍对称加密与非对称加密,本文所使用的网络拓扑如下:

image-20220804112250329

早期的网络通信是明文通信,即传递的消息均未加密,又因为网络通信的本质是通过广播实现的数据包传递,因此只要能够在网络节点进行监听就很容易获取传递消息中未加密的敏感信息,比如用于身份认证的用户名密码,并且即使认证信息进行了加密,因为消息传递的整个过程没有加密处理,所以也很容易实现中间人攻击,因此明文通信的方式已经在实际环境中逐渐被淘汰,取而代之的就是秘钥加密技术,秘钥的设计和产生算法涉及深奥的密码学,使用秘钥加密的消息即使被人监听也无法获取真实信息,但即便如此秘钥本身的传递也是加密无法解决的悖论,于是证书认证机制便应运而生。

接下来带入其中:因为早期属于明文未加密传输,也就是说我们的拓扑中的灰太狼和黑大帅密谋一点坏事,我们聪明的懒羊羊如果监听ISP-A的0/0/1接口,是不是灰太狼那点小心思就全暴露了,这个中间人就是我们的懒羊羊。因此在这种情况下我们就需要做三件事:1、密文传输;2、消息加密;3、密钥交换。

2 名词解释

**对称加密:**对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密。对称加密只有一个秘钥,作为私钥。

常见的对称加密算法:DES,AES,3DES等等。

**非对称加密:**非对称加密指的是加密和解密使用不同的秘钥,一把作为公开的公钥,另一把作为私钥。公钥加密的信息,只有私钥才能解密。私钥加密的信息,只有公钥才能解密。

常见的非对称加密算法:RSA,ECC。

**证书:**由CA机构对合法用户颁发的证书,每个证书持有者都有两个密钥,分别是公钥和私钥。证书相当于是身份证。

CA机构:证书授权中心(Certificate Authority ),或称证书授权机构,作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。CA中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法,拥有证书中列出的公开密钥。CA机构的数字签名使得攻击者不能伪造和篡改证书。在SET交易中,CA不仅对持卡人、商户发放证书,还要对获款的银行、网关发放证书。它负责产生、分配并管理所有参与网上交易的个体所需的数字证书,因此是安全电子交易的核心环节;它相当于我们的公安局。

**数字证书:**是由证书认证机构(CA)对证书申请者真实身份验证之后,用CA的根证书对申请人的一些基本信息以及申请人的公钥进行签名(相当于加盖发证书机构的公章)后形成的一个数字文件。CA完成签发证书后,会将证书发布在CA的证书库(目录服务器)中,任何人都可以查询和下载,因此数字证书和公钥一样是公开的。它相当于由CA机构认证后的公钥。

**密钥:**key,它分为公钥和私钥。

**公钥:**公开的密钥。

**私钥:**私钥一般情况都是由证书持有者在自己本地生成的,由证书持有者自己负责保管。

3 使用SSL作为Web服务的传输协议(Https)

Http+SSL=Https!

SSL由两个共同工作的协议组成:“SSL 记录协议”(SSL Record Protocol)和"SSL 握手协议"(SSL Handshake Protocol)。

SSL 记录协议建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持;SSL 握手协议建立在SSL记录协议之上,用于在实际的数据传输开始前,通信双方进行身份认证、协商加密算法、交换加密密钥等。因此本文重点就是SSL握手协议中的密匙交换过程

SSL握手协议包含两个阶段,第一个阶段用于建立私密性通信信道,第二个阶段用于客户认证。

第一阶段是通信的初始化阶段,在此阶段,首先SSL要求服务器向浏览器出示证书;然后浏览器中的SSL软件发给服务器一个随机产生的传输密钥,此密钥由已验证过的公钥加密,随机产生的传输密钥是核心机密,只有客户的浏览器和此公司的Web服务器知道这个数字序列。

第二阶段的主要任务是对客户进行认证,此时服务器已经被认证了。服务器方向客户发出认证请求消息。客户收到服务器方的认证请求消息后,发出自己的证书,并且监听对方回送的认证结果。而当服务器收到客户的证书后,给客户回送认证成功消息,否则返回错误消息。到此为止,握手协议全部结束。

要使用SSL协议,服务器至少有一个私有密匙和一个用于验证身份的证书。私有密匙在密匙交换算法中用到,证书将发送到客户端,以通知服务器端的身份。如果SSL服务器要验证客户端的身份,那么客户端必须也有自己的密匙库(包含私有密匙和证书)。JSSE中引入了信任库(truststore)的概念,它是用来保存证书的数据库。客户端或者服务器通过信任库来验证对方的身份。

文中也提到了客户端浏览器,那本地浏览器是否存在证书呢?如图展示。

以Chrome为例:设置-隐私设置和安全性-管理证书;

image-20220804131030064

二、密匙交换过程

还是以刚才的“青青草原”拓扑作为依据,以懒羊羊和红太狼通信为例。

在这里插入图片描述

以上的密钥交换过程中部分用词并不严谨,仅为了理解其中过程而已,希望看客还是以官方文档为学习依据。

在浏览网页时部分网页会弹出以下界面,即是因其无证书罢了。

image-20220805091225007

三、SSLVPN

了解SSL和Https的关系之后,不妨再理解下SSLVPN来加深印象。

1 为什么需要SSL

还是以“青青草原”作为理解对象如下图。

image-20220805092615399

场景一:善良的灰太狼出门去草原觅食,问题来了:那他可以访问自己的实验室资源吗?

场景二:不慎掉入古古怪界的懒羊羊经过不懈的努力,在古古怪界这一亩三分地上建立了羊村Pro,问题来了:它该怎么打通羊村和羊村Pro的网络,让它们在同一内网呢?

对,没错。就是VPN!什么是VPN?

**VPN:**在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN可通过服务器、硬件、软件等多种方式实现。

那它可以做什么呢?

场景一:灰太狼就像出差的你,可以通过接入公司VPN实现访问公司内网资源以及居家办公。

场景二:羊村Pro就像是远在异地的分公司,最好的解决办法就是拉跟网线直接怼起来吧?但是成本高、实现困难等诸多实际问题,所以VPN可以。

总结起来:我个人理解就是VPN逻辑上就像是给你和目标直接怼了一根线,物理上还是没变。

2 SSLVPN、IPsecVPN

SSLVPN、IPsecVPN都是经常可以见到的VPN实现方式。具体的这里就不多赘述,感兴趣可自行学习。

我个人的理解就是VPN它是一个隧道技术,它负责链路打通但隧道本身并不安全,而SSL、IPsec提供的是一个安全机制。因此将他们结合起来就实现了类似于专线的效果,相应低成本的解决了问题。

读者觉得有不对的地方,劳请指正。

它是一个隧道技术,它负责链路打通但隧道本身并不安全,而SSL、IPsec提供的是一个安全机制。因此将他们结合起来就实现了类似于专线的效果,相应低成本的解决了问题。

读者觉得有不对的地方,劳请指正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

先剃度再出家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值