当前课程知识点:网络安全概述 > 第四章 网络安全协议 > 第二节 传输协议(TCP)的安全:隐秘套接字协议(SSL) > Video
刚刚讲的是电子邮件
那么我们下面呢再下一层去讲
传输协议层的这个TCP的安全
怎么样我们保证tcp
它的这个安全性
有一个很重要的protocol叫做
Secure Sockets Layer Protocol
是SSL
中文可以翻译成隐秘套接字协议
那这个SSL呢
它实际上是一个被广泛使用的安全网络协议
几乎可以说是被所有的浏览器和网站服务器所用到
那像电商的这些这个服务器是一定要用到
这个Secure Sockets Layer Protocol
有统计结果告诉大家
每年通过SSL这个协议
经手的网络的交易是以亿万美元计的
这个是非常可观的一个数字
那么我们可以看一下这个Woo 1994
他们的这个相关的这个协议的设计啊
然后协议实践最初是由Netscape来做的
那我们有些衍生协议
基本上有这个transport layer security
就是TLS这样的衍生协议
整个这个SSL也好还是TLS也好
他们这样子的
就是Transport Layer的Security
这样的协议 它要提供的服务都有哪些呢
我们基本上这个三项最重要的
Security的这种service啊
都在里面了
就是Confidentiality
和Integrity
Authentication
这个是非常重要的三项
Confidentiality就是保密性
那Integrity呢 是信息的完整性
Authentication就是关于认证
有可能是关于信息认证
也有可能是关于收发双方的终端的认证
那最初我们设计出来这个SSL 这个protocol
我们的最初目的呢
主要是支持电商的这个网上交易的信息安全
因为电子商务嘛
因为要牵扯到金钱的这种交易啊
付账也好 包括你要发货呀
还有像这个Banking
就是银行系统啊
这种电子的银行已经是无所不在了
就是我们现在基本真的是
可以实现所有东西电子化
拿着手机出门就可以不用带钱包的状态
提供方便的这些应用
他们呢 因为有这个电商的性质在里面
有金钱的这种关系在里面
所以一定要保证它的安全性
那SSL这样的协议呢
就是这种协议的之一
我们这个SSL呢
还需要对网站提出这个真实性的这种认证啊
这个也是很重要的
还有呢
有可能是对这个用户的真实性进行认证
以及呢有可能会
跟这个新的商品提供商做交易的时候
把手续简化一下
这些都是SSL最初设计的时候
有的一些目的啦
那我们来看一下关于这个五层的
这个网络协议层都是些什么
这五层应该大家记得非常清楚
最高是Application Layer
下面Transport Layer
然后是network layer也就是IP Layer
再往下是Link Layer 就是数据链路层
然后再往下是Physical Layer
那来SSL这个protocol这个网络协议
它是在哪里运作呢
它实际上是在Application Layer
和Transport Layer中间
就是在应用层和传输层中间的这样一个协议层
那基本上SSL这个协议呢
它会给应用层提供服务接口
然后呢 有很多这种编程语言
其实都有它已经有的现成模块
我们可以去使用
SSL 它的过程呢 跟刚刚我们看到的
E-mail的security的这个过程是非常类似的
就是太有对信息的这种做这个电子签名啊
包括这个shared key啊
它要做加密啊
然后包括就是
我们要怎么样去求这个hash value啊
就是这个信息的这个摘要啊
整个过程是很相似的
但是呢 SSL它的要求更高一些
高在哪里呢
因为SSL它是要保证收发双方
需要能够随时交换新的信息
并且呢 这个信息的交换是双向的
这一点是和E-mail的security
是不太一样的
因为E-mail就是说
我只要保证一方发出来的信息
被另一方正确收到
单向的就好了
但是SSL它不是这样子
它要保证就在同样的服务的这个基础上
我还要保证信息的这种收发是双向的
而且是有可能是同时进行的
这一点是大家需要清楚的一个区别
那基本上SSL呢
它是需要对一个链接里的
交换的全部的信息都需要进行加密
而E-mail呢 它就是电子邮件这一个信息
并且呢 SSL还要对收发双方进行这个身份认证
那这个身份认证呢
它实际上是在一个“握手”阶段里进行的
那么我们现在呢先看一下啊
这个最简单的SSL这个协议
我们是怎么样设计的
基本上呢 先要对这个收发双方进行身份认证
那收发双方要做身份认证的话
我们可以通过这样一个握手的过程来做这件事情
就是说呢
Alice和Bob用他们各自的电子证书和密钥
去加密一个共享密钥
以及向对方实现身份认证
那最简单的这个SSL的设计呢
还有这个所谓的密钥衍生
这个是一个什么样的概念呢
就是Alice和Bob用他们共享的秘密信息
或者是密码衍生出一组新的密钥
那新的这些密钥呢
可以用来做后面的
一些加密行动的这样子使用
关于数据传输
作为这个简单的SSL需要传输的数据呢
将会被分割成一组一组的数据记录段
我们对这个SSL里面的信息是分段进行加密的
还有当这个SSL协议
它需要中断链接的时候
会有专门的中断链接的控制信息
control messages
来做整个这个链接的中断
那SSL它要用具体的真正的信息就是说
我告诉对方我要把这个链接结束
那对方才结束
好 那我们现在来看一下一个简单的例子啊
最简的这个SSL
它这个握手过程是什么样的呢
首先这个Alice发给Bob一个hello message
然后Bob呢
就会回馈给Alice他的public key certificate
大家应该还记得这个certificate的概念
是CA发给Bob的一个certificate
因为Bob不可以把自己的public key直接发给Alice
因为如果Bob把自己public key直接发给Alice
Alice并不是真的能够确定
这个人他真的就是Bob
因为Trudy也可以把Trudy的public key发给Alice
然后冒充是Bob的public key
那我们之前的那个章节已经讲过了
我们怎么样解决这个问题
就是用一个这个certification authority
就是一个CA这样一个系统
来对这个Bob的public key呢 进行认证
并且发给Bob一个证书
我们看到这个第二个信息
Bob发给Alice的这个信息呢
实际上是public key的这个证书
而不是public key本身
Alice拿到了Bob的public key的证书以后呢
基本上就可以说
Alice已经拿到了Bob的public key
因为她可以通过这个证书
把这个Bob的public key给解出来
那这个时候呢
Alice就会用Bob的public key
去encrypt加密一段master secret
就是这个MS
那得到的呢就是
我们叫它EMS
encrypted master secret
把这个encrypted master secret发回给Bob
然后这样的话呢
Bob就可以也能够解密出来master secret是什么
从此之后呢就是
这个信息被Bob收到以后
基本上我们就可以知道
那Alice和Bob有一个共享的MS
就是这个master secret都收到了
那这一段信息
这一段共享的MS非常重要
因为在这个真正的SSL的这个protocol里面呢
那我们实际上是要用这个共享这种信息
去衍生不同的密钥
以被之后的这个用处的
就是说在这个最简单的ssl里面
密钥是怎么样衍生的
那在编码解码学里呢
有一个比较普遍的共识
就是说如果我对一个session也好
或是对这个收发双方
如果要一直用同一个密钥来进行加密解密
那这个事情是非常不安全的
我相信呢那个同学们应该也经历过
就是有些系统
它可能隔三差五的就让你更新你的password
这个是有道理的
如果你不断的用同一个钥匙
对一段这个对话进行加密的话
整个的这个对话的这个安全性能就会薄弱很多
所以说呢这个想法就是说
我们通过一段最初生成的这个shared master secret
我们做密钥衍生
因为Bob和Alice都有这个master secret了
我们可以把这个MS放到相应的一些算法库里面
然后衍生出来新的密钥
我们基本上在SSL里面会有几种不同的密钥
比如说我们有Kc
Kc呢 就是说是对从用户端到服务器端
就是client到server这个方向的信息
进行加密的密钥Kc
Mc是从用户端到服务器端的MAC密钥
Message authentication Code
对MAC进行加密的一个密钥是Mc
这个是从用户端到服务器端的
那反过来从服务器端到用户端
这两种密钥是跟这个client端
到server端的这两个密钥是不一样的东西
这个Ks是指的是
从服务器端到用户端的信息
用来对信息进行加密的密钥
然后呢这个Ms
是从服务器端到用户端的MAC密钥
这几种是不同的
每个密钥都有它自己的功能
那上述的这四种密钥呢
其实都是通过将这master secret
和其他一些随机数字
输入到密钥衍生函数里面
英文讲叫Key Derivation Function
就是KDF
但是最重要的是这个master secret
就是这个MS
我们有了这个master secret
这个Bob和Alice就可以
各自独立的去运行这个密钥衍生函数
来对密钥进行衍生
然后得到相应的一些钥匙
在这个SSL里面我们刚才已经提到过了
我们对这个数据呢
做加密实际上是分段的
为什么我们不对数据这个一边加密
一边写入TCP端口呢
如果真的是这样做的话
我们如何计算和放置这个MAC这一位
这个是很困难的
因为比如说
我们要是在收发短信的这种协议里面
如何在这个接收方收到并显示信息之前
对数据的完整性进行检查
这个是一个很麻烦的事情
因为你收到了这个短信
你就需要它能够立刻
去display去这个显示出来
但是呢你又希望对这个短信
做一定的这个数据完整性的检查
我们解决这个问题的方法呢
就是说我们把这个信息分段
我们对每一段信息都求一个MAC
这个Message Authentication Code
来做这一段信息的完整性的检查
然后一段一段来
这样子就好很多
所以说呢
那我们把这个SSL它要处理的数据呢
分成记录段
那记录段的格式呢就像
下面的这个画好的方式啊
就是首先前面一些位数呢
是代表整个这个数据段的这个长度
然后中间那个粉色的那一段呢
是数据段这个数据
最后这个浅蓝色呢 是MAC位
这个MAC呢
这个地方是Message Authentication Code
实际上就是相当于前面信息的这个摘要
在SSL里面
这个协议里面呢
我们不光对数据要分段
我们还引入了sequence number这个概念
就是这个序列号的概念
sequence number
它的引入有一个很重要的一个原因
就是可以防止这个haker
这个Trudy啊 做录播攻击
我们之前说过
防止录播攻击一个非常有力的方法
就是用Nonce
那另外一个方法就是用这个sequence number
它的这个基本的这个概念呢
就是说我对每一个数据段
我放一个序列号在上面
即使是之后这个Trudy
他截获了一个数据段
他想要再重新reply
就是再重新play back给这个Bob看
他基本上是做不到的
原因是说Bob会发现
这个序列号是旧的序列号
Bob可以把这个旧的序列号的数据段
就给扔掉 不去管它
这个呢也是一个防止这个录播攻击的方法
如果要是我作为Trudy
我要把这个Alice发给Bob的
所有信息全都录下来
之后我再做录播攻击的时候
我将会对Bob
我再转发所有信息
那这个时候你的序号就没有用了
因为所有的序列号它都是按顺序的
那这个时候怎么办
我们还可以回到nonce这个小东西上
到时候能用这个nonce来做一个辅助
就可以解决这个问题
在SSL协议里面呢
我们还有一类信息叫做控制信息
就是这个SSL因为它是
主要是对TCP这样的协议
进行这个安全性的一个支持
所以呢 当client要走的时候
就是当用户需要跟我的这个服务器断开的时候
这个服务器需要明确的知道
这个用户走了
不再需要我了
如果这个用户什么都不说
它就还在那儿待着
如果有足够的用户
来开这样子的这个TCP的端口
而又不做事情
直接就是把这个server的资源直接消耗干净
那这个server就干不了其他事情
这个就叫做DOS attack
那我们需要对这种DOS这样的攻击
我们需要进行防御
那我们怎么做呢
解决的方案是这样子的啊
我们在这个ssl protocol里呢
我们用这个标记数据记录段的一个类别
这个我们有一个标记位
这个标记位为0的时候
就说明这个数据记录段
它是一个数据段
就是说还是有用的这个信息在里面
如果标记位是1
就意味着这个信息将要就此结束
这个连接可以被中断
这个是我们解决的方法
就用一个一位的这个binary number就够了
我们可以看一下
新的这个数据记录段的这个格式什么样的啊
在一开始的几位数里面
标志了整个数据记录段的长度
之后就是这个type 这个类别
然后之后再往后才是这个data
之前看到过有length 有data
那现在这个地方呢
我们是在这个length
就是这个长度和数据data之间
加了一个type 这一位
那type如果是“0”就表示它还是数据段
如果是“1”就表示
是数据的一个最后的一段话已经是
然后最最后我们还是一个MAC这样一位
是做这个message的信息摘要
用来做integrity checking
好 那我们下面对这个SSL做一个简单的总结
整个运行过程是这样子
Alice向Bob发一个hello message
那这个时候呢
Bob就给Alice这个reply一个certificate
同时Bob要给Alice发一个nonce
这个nonce我们大家已经很熟悉它了
虽然这个东西好像它生命很短暂
只是这个once in-one-lifetime
但是它非常有用
Alice收到了这个Bob的
certificate和nonce以后呢
Alice就可以解码出来
这个Bob的public key
Alice就会用Bob的public key
去加密一段master secret
就是这个MS
得到这个EMS
encrypted master secret
然后发给Bob 这是一个
之后她可以发data的这个数据段
就是数据的这个数据段
那数据的数据段里面
会每一个数据段都标一个type
就是类别
如果是“0”就数据
后面还有数据接着发
然后呢会有个sequence number
这是第一个包
然后后面这是数据
整个这个呢
type0
sequence number one
data
然后发给Bob
然后Alice还可以接着来
就是这个type0还是数据
sequence number two
这是第二个包
data
然后发给Bob
这样的话Bob按顺序
来这个接收这些数据段
之后呢 Bob也可以向Alice
发他想给Alice的数据段
那Bob可以从sequence number 1开始
就是type0
sequence number one
然后data
以此类推也是可以的
然后再往后呢
我们看这个Alice有可能会发type zero
sequence number three
data
就是这个第三包
再往下第四包不同了
不同在哪里
在type
type变成了“1”
type是1的时候意味着什么
Alice就是告诉Bob这个链接可以结束了
那Bob这个时候reply
也发回来一个叫做这个type one
也是
这个type也是1
sequence number two
就是第二个包
然后写的是close
就是说我这个
整个这个链接确确实实可以结束了
所以我们可以看得到
在整个的这个SSL这个过程中
实际上呢有一个非常明确的结束点
这个是很重要的一个概念
并且呢 我们看到这个每一个数据段
它是由这个sequence number来进行标识的
1 2 3 4 5
这是按顺序来
从这个EMS
这一个shared master secret
被Bob和Alice共享以后
之后的这些数据段啊
虽然说我没有标出来
但他们实际上都是加密过的
用什么来进行加密呢
用那个shared master secret
这是最简单的SSL
是这样做加密
但是呢这个最简单SSL还有很多问题
其中包括这个信息包中的
每一个数据段啊
它到底有多长啊
我们应该选择什么样的加密协议啊
包括这个收发双方是不是需要协商啊
是不是要让用户方和服务方
有可能选择不同的
加密解密的这些算法啊等等等等
这些就是都是具体的这个问题
都是需要具体地探讨
那在实际操作过程中呢
其实这个SSL确确实实是有一个算法库的
我们叫这个cipher suite
这个SSL的这个加密算法库呢
规定了一系列的算法可供选择
那这一系列算法里面
包括公共密钥算法
有共享密钥算法
还有哈希函数算法
这个MAC的算法
然后呢这个ssl里面
它还是这个支持的加密算法库的多种的算法
收发双方进行协商的时候
基本上呢这个协商过程
他们想要得到的协商的结果
就是说我在哪一步用什么算法
来进行加密 进行解密
这个是SSL这个cipher suite
它来用的
一般这个普遍的这个SSL共享密钥的算法
是DES 或者是3DES
或者RC2 或者RC4
好多种选择都是有可能的共享密钥算法
而这个公共密钥算法
就是这个public key encryption algorithm
就是RSA
这是我们之前学过的
因为它基本上就是
在public key和private key这一对上面进行操作
是RSA
这个是公共密钥的这个算法
那么SSL协议它有一个握手阶段
握手阶段的功能基本上是说
我需要对这个服务器进行认证
需要建立密钥
因为我不同的加密解密算法
我这个密钥有可能用的是不一样的
还有可能呢 对用户进行认证
就是对服务器进行认证这是必须的
因为你告诉我说
你是这个建设银行的主页
我怎么相信你对不对
这个你说你是建设银行
你得真的是建设银行
所以你这个服务器被认证
这是非常非常重要的
是不能够省的一步
而用户是否被认证这个就要看了
那可能这种银行的用户
那你用户肯定是要被认证
但是像电商的用户啊
我甚至可以匿名
所以有些应用它需要对用户进行认证
有些是不需要的
那用户认证是可选择的
但是不管怎样呢
服务器都是必须要被认证的
并且呢 这个密钥都是一定要建立的
就是我们要怎么样去决定
哪些密钥我们会去用到
然后怎么样去得到它们的值
这个过程是一定要有的
那这个真正的SSL协议
它的握手阶段呢
是说首先用户端给服务器发出一系列算法
以及这个用户端的nonce
第二步呢这个服务器在用户端发出的算法库中
选择适当的加密算法
并且呢 发回这个所选的算法
和这个服务器的电子证书
还有服务器端的nonce
就是算法的选择
服务器的电子证书
和服务器端的nonce
OK 这是第二步
第三步呢就是说
这个用户端对服务器的电子证书作出认证以后
就可以这个解密出服务器的公钥
电子证书怎么进行认证
这个我们前面学到的知识点啊
就是说如果我要对电子证书进行认证就是
我需要能够用这个CA
Certificate sociation 的public key
来进行解密
我们把这电子证书做认证以后呢
可以解密出来这个服务器的公钥
服务器的公钥解出来以后
生成pre-master-secret
非常重要
这个PMS
OK Pre-master-secret
然后呢并且用服务器的公钥
对pre-master-secret进行加密
得到的这个加密之后密文
发回给服务器
这个就是这个用户端做的事情
用户端来生成pre-master-secret
并且要把这个pre-master-secret
用服务器的公钥加密之后发回给服务器
这样保证只有服务器本身啊
才能够对其进行解密
因为只有服务器有相对应的private key
第四步呢就是说
这个用户端和服务器端
各自它们会独立的用这个
刚刚交换好的这个ppre-master-secret
和互换好的这个nonce
以及事先设定好的算法
来计算不同的密钥
叫做这个key derivation
就是derive不同的key
那这些key有加密密钥和MAC密钥
这个加密密钥和MAC密钥就是我们刚刚看到的
至少有4种 对吧
这个client端有client的加密密钥
client端也有client端的MAC密钥
相反这个服务器端也是有这一对密钥的
那第五步
用户端在每一条握手信息里面呢
都附上这个信息认证码
这个MAC
那第六步呢就是说
服务器对所有的握手信息
都发一次认证码
OK 我们继续这个握手阶段是怎样工作的啊
一般由用户端提供一系列的这个加密算法
尤其是破解难度有高有低的这种加密算法
那但是由这个用户端提供
有这个服务端呢进行选择
那中间人攻击呢
是有可能把难破解的算法从算法库中删除的
这是有可能的
那这个时候
我们有一个小问题就是说
为什么我们会有两个随机的nonce在里面
在刚刚这个交换了前面的两步
就我们已经看到
原因是这样的
假设Trudy偷听到了Alice和Bob之间的所有信息
那第二天呢Trudy跟Bob建立一个TCP链接
把前一天偷听来的数据包
原封不动的给Bob发一遍
这个时候那Bob如果他是个电商
比如说Amazon他有可能就是误以为
这个Alice对同一个商品买了2遍
那这个时候的解决方法呢就是看这个nonce
因为前一次的nonce已经存在过了
如果它再被用的话
那说明这是一个reply attack
or play back attack
就是一个录播攻击
那这个时候呢
这个服务器基本上就可以对其忽略不计了
那我们接着看这个SSL协议里面的
数据记录段是一个什么样的格式啊
我们说了这个数据本身
如果我们要对这个一整段数据
来做信息完整性的一个检测的话
那么我们需要收集到整个数据以后
才能做这个MAC
这样呢 效率不是很好
那所以我们要对这个数据呢
进行分段处理
每一段我们求一个MAC
那在这个SSL协议的
这个具体规定里面是这样的
我们基本上把数据分段以后
每一个数据有一个data fragment
然后这个data fragment呢
就这个数据段
我们对其求一个MAC
这个message authentication code
然后放到它的尾巴那儿去
然后对这个整个的这个data fragment
这个数据段和MAC一起啊
这个组合来进行加密
加密之后得到的这个密文
在这个密文前面再放一个record header
就这个数据段的一个段头
这个数据段的头和这个encrypted
就是加密过后的这个数据段
和它的message authentication code
一起进行传输
这个是我们要对SSL的这个数据进行的处理
那一般而言每一个SSL的这个数据段
这个fragment
它一般会含有2的14次方个字节
大概也就是约等于
这个16k bite这样一个长度
数据段这个记录格式更具体的来看呢
我们看这个第一个bite就是8个bite
第一个byte呢
它实际上是这个content byte
就是说我这个数据阶段里面有什么
就是后面两个byte就是后面的16位啊
它记录的是这个SSL的这个version number
就是它的版本号是什么
再往后的三个bytes
实际上是记录的是它的这个数据段的长度
然后是数据data本身
最最后是MAC
是这个message authentication code
那么在我们刚才已经看到了
data这个数据和MAC这两个部分
实际上是被加过密的
这页slide我们可以看一下
整个的这个实际的SSL
它的这个链接的过程是什么样的
那在这个时候呢
首先Alice她作为client
她会向Bob
假如说Bob是一个server
Alice会向Bob发一个
第一步的这个握手信息
就是first wide of handshaking
那handshake里面是说
这个hello message是client方的
这个hello message
那Bob呢就会反馈给Alice几条信息
一个呢是server端的hello message
hello back
然后呢 Bob会把自己的certificate
就是这个服务器的certificate发给Alice
这样的话Alice好从中提取出来
这个Bob的public key
然后呢Bob再给这个Alice发一条
这个server hello done
就是说我跟你说的这个握手已经结束了
那Alice拿到了Bob的这个public key以后呢
她再回来
再发一个这个handshake message
这个是client key exchange
这是我这边给你的一个密钥
然后呢
这个Alice还会给Bob发一组算法选择
后面这个加密也好
这个包括衍生钥匙的算法呀
这些选择都是什么
那Alice会发给Bob就是
Change cipher specification
Spec 就是stands for specification
OK Change Cipher Spec
这样的一个信息发给Bob
之后呢Alice再发给Bob的最后一条信息是
这个handshaking finished
就是说Alice这边的握手
这个阶段也已经结束了
到此为止就是说
Alice和Bob的握手阶段就over了
因为Bob收到了这个
Alice给他发的这一组算法的选择
Bob需要做选择
那Bob呢就会告诉Alice
OK 这个是我的选择
哪些算法我们将会用到
那Bob会发给Alice一个 change cipher spec
这样同样的一种信息
在这个信息里面包含的内容
是Bob对算法的选择
之后呢Bob会告诉Alice
OK 是彻底over了
就是说彻底的这个handshaking握手这部分
已经完全结束了
我们基本上两边已经同步了
就是该有的这个pre-master-secret
这个PMS两边都拿到了
对吧 因为Alice已经在上面的一步
就是用Bob的这个public key
已经把这个pre-master-secret给Bob呢encrypt
并且发过去了
同时呢Alice和Bob之间也已经协商好
之后都要用哪些这个加密的算法
来进行各个步骤的加密解密这个过程
那这个是我们握手的这个阶段
所要完成的任务都完成了
再往后那基本上就是说
我就可以开始发数据了
那这个Alice就可以发给Bob
这个application data
显然这个application data是用
这个Alice的这个encryption key进行加密过的
那Bob呢 也会发给Alice这个application data
Bob发给Alice的application data
是用Bob的encryption key
就是他的这个加密的密钥来进行加密的
大家应该还记得啊
我们刚才讲过的四种不同的密钥了
在这个地方client也好还是server也好
他们每一方都有自己的加密密钥
每一方都自己的MAC密钥
这一点是很重要的
那他们怎么知道哪个是哪个呢
因为我们已经对这个不同的算法
已经有所共识
并且呢 最初的那个pre-master-secret
两边都知道了
那根据这个pre-master-secret
和根据他们已经协商好的算法
后面的钥匙都可以被衍生出来
虽然他们是各自的独立的去
对这个后面的钥匙进行衍生计算
但是它们衍生出来的结果是一致的
因为他们用的衍生算法是一样的
并且这个衍生算法的输入
这个pre-master-secret是一样的
所以结果是一样的
这一点同学们一定要记住
之后呢 就是数据都发完了
然后那这个Alice呢最终她会告诉Bob说
结束这个communication了
我已经准备好可以把这个链接给断开
到这一步基本上呢
从这个Alice发给Bob的
这个最后一条Alert message之后
TCP的FIN message就可以开始操作
FIN message呢 它基本上就直接控制了
这个TCP的这个链接被彻底断开
那这样的话呢 服务器上的
它的这个资源就可以被释放
这个服务器呢就可以对其他的用户进行服务
这样就会避免了这个DOS的attack
另外一点啊
就是再多说一句
就是我们可以看到
自从handshake 这个client key结束以后
后面的就是说自从这个Alice告诉了Bob
这个pre-master-secret是什么以后
剩下的信息基本上都是
被encrypted的
就是都已经被加密过的
这点还是很重要的
一旦协商好这个pre-master-secret是什么
后面的所有信息都可以是加密过的
那再多说两句关于这个密钥衍生
在这个SSL里面
密钥衍生的用户端的nonce
服务器端的nonce和pre-master-secret
这几位放在一起
可以被输入到一个虚拟的随机函数过程中去
这个虚拟的随机函数呢
它可以生成master secret
然后呢 这个master secret和新的nonce
被一起输入到另外一个
这个随机数的生成函数
输出的密钥数字段就可以被断开
然后呢每一段
它会有一个不同的一个任务
就是作为一个独立的一个密钥段
那这个key block就是这个密钥段被分割处理
产生下列的这些密钥
包括这个用户端的MAC密钥
服务器端的MAC密钥
用户数据的加密密钥
服务器的数据的加密密钥
还有这个用户的初始向量
就是client initialization vector
大家应该还记得什么叫IV 对吧
然后还有包括这个服务器的初始向量
服务器端的初始向量
就是server initialization vector
这些东西都是我们通过
这个密钥衍生的这些函数来得到
到此为止呢我们基本上
就是讲了一下这个SSL
就是TCP层的这样一个
secure socket layer protocol
这个protocol非常非常重要
这个协议很重要
我们为什么需要这样的协议
我们的这个目的性啊
就是说这个原因已经非常清楚了
因为在网络的这个世界里面
我们有很多的这种交流
尤其是这个电商啊
包括这个银行啊
就类似这样子的
就是网上操作的一些业务
都是需要严密的
这个进行安全的保护和控制
由此呢 我们需要这个SSL
就是这样子的协议
来对类似这种tcp这一层
做更加有力的安全保护
这个就是为什么
SSL这样的协议会存在
并且呢 它是真真正正
真的是被广泛的用到的
-第一节 电子邮件e-mail的安全
--Video
-第二节 计算机网络的服务
--Video
-第三节 网络协议的分层结构
--Video
-第四节 网络数据包的传输过程
--Video
-第五节 实例演绎计算机网络通讯工程
--Video
-第一节 计算机网络为什么不安全
--Video
-第二节 网络安全技术需要提供的服务
--Video
-第三节 网络安全讨论的情景设置
--Video
-第四节 黑客有可能有哪些攻击网络安全的手段
--Video
-第五节 网络中的恶意软件
--Video
-第一节 编码解码学的基本概念
--Video
-第二节 攻击编码解码技术的方法
--Video
-第三节 共享密钥加密法
--Video
-第四节 公共密钥加密法
--Video
-第五节 鉴别认证
--Video
-第六节 信息完整性
--Video
-第一节 电子邮件E-mail的安全
--Video
-第二节 传输协议(TCP)的安全:隐秘套接字协议(SSL)
--Video
-第三节 网络层安全:IPSec
--Video
-第一节 WEP的设计和问题
--Video
-第二节 802.11i改进机制
--Video
-第一节 防火墙概念及目的
--Video
-第二节 三种防火墙
--Video
-第三节 IDS(Intrusion Detection Systems)介绍
--Video