当前课程知识点:网络安全概述 > 第三章 编码解码学 > 第五节 鉴别认证 > Video
现在呢我们开始讲这个编码解码学中的
这个鉴别认证Authentication
Authentication是非常重要的一个概念
就是在这个网络安全中很重要的一个
我们需要完成的一个任务或者是提供了一个服务
就是说对一个网络设备
进行身份认证鉴别认证
它的这个英文讲叫Authentication
不光是对设备啊
有可能对一段信息进行鉴别认证
这个也是很重要的
那么鉴别认证的这个服务呢
它目的是什么呢
就是说Alice需要向Bob证明
她就是Alice本人
就是说我要告诉你我是我
我就是Alice我不是Trudy
这个就是鉴别认证最重要的要达到的一个目的
我们可以看一下那就是
从这个最简单的一些方式上
就像我们人与人之间的相处
我告诉你我是Alice
那你要不要相信我
你可以选择相信我对吧
那你相信我的话
那好 那我们就握手我们就是继续我们下面的交流
如果在机器里面呢
那比如说像我们这个图里面说这个
Alice跟Bob讲I am Alice
那Bob是不是可以相信她呢
在一个Bob完全看不见Alice网络中
任何人都有可能是Alice
这个认证的这种过程显然是完全不可取的
因为任何人都可能假冒Alice
那我们把刚刚的这个算法呢
我们稍微的改进一点点
就是说这个认证算法的2.0版
2.0版呢我们加一个新的信息在里面
就是Alice发给Bob一段信息
一个小的这个短信说I am Alice
这个时候呢整个这个信息这个数据包里面呢
我们不光是有这个短信它本身
就是I am Alice这句话
而且还有Alice的ip地址
Alice IP地址就相当于是
Alice在网络中的一个通行证
一个证件一个ID就像我们身份证明一样
但是呢这个身份证其它也是可以被假造的
就是Alice IP地址也是可能被假造的
也就是说这个版本2.0也是非常容易失败的
因为这个时候呢Trudy她可以把自己的
这个发出去的数据包的那个IP位
就是这个source IP address那一位改成是
Alice的IP address
但实际上它发出去的是Trudy发出去
那这个就是我们以前提过的
IP spoofing 就是这样子的一个工作原理
所以这个2.0也是不可取的
那这样的话我们想想看再改进一下
我们做这个计算机网络的协议的设计
也是这样子一步一步来
那我们从最简单的设计开始
然后一点一点地加一些改进
以至于达到最终的目的
这个是我们希望得到的这个终极效果
那我们现在来看一下这个认证算法3.0
Alice说I am Alice
同时呢它有 Alice的这个IP address对吧
就是它自己的这个IP的地址
可以证明它是Alice
不光是这样
我们还在这个之上再加小的一段密码
来证明Alice就是她自己 就是Alice
这个的密码应该是说是只有这个
Bob和Alice两个人知道的一个shared secret
这个听起来就是更美好一点
保密性更强一点
并且呢Alice有可能更加真实
但是还是不行
Trudy还是可以做一些事情来假冒Alice
Trudy可以怎么做呢
就是我们这个著名的recorded and playback attack
叫录播攻击
录播攻击就是说这个Trudy呢
我不管Alice发给Bob是什么包
那Trudy要做的事情就是
把Alice发出来的包我都截下来
截下来录下来
录下来之后呢
在某一个时间我再把录下来的这个东西
重新播放给Bob听
这个时候不管我什么时候把我录的东西播放给Bob听
Bob都会以为我是Alice但实际上我是Trudy
这个呢就是这个3.0的一个漏洞
但是我们还是做了努力的
把这个算盘呢能够更加的改进一些
但是呢事实证明还是不行
那我们再试一次我们到这个算法3.1
3.1呢就是说Alice说I am Alice
同时呢它发了一段加了密的一个密码
来证明自己是Alice
只有Bob能够解密
而且只有Alice能够加密
这个加了密的这样一段密码
来跟Bob说I am Alice
那这个是不是就安全了呢
其实在这个时候Trudy可以做
同样的录播攻击同样的事情
还是说Trudy她不需要知道Alice发的东西到底是什么
她只需要知道给我把Alice东西拿下来我记住
我看不懂没有关系我就先录下来
录下来以后呢我发给Bob
以后我再重新转播给他
然后这个时候只要Bob收到了我播给他的东西
那Bob就会把我误当做Alice
所以这个版本3.1还是逃脱不了这样一个录播攻击
那我们到底怎么样才能真正
就是实质上的避免录播攻击呢
那在就是说这个网络安全协议的各个协议中
如果你想要防止录播攻击的发生
有一个非常普遍的一个技术
就是叫做我们用一个nonce一个代码
这个nonce是什么呢
nonce这个代码它实际上是一个
临时性的一次性的代码
它可以是任何东西
但是最最最关键的性质它只用一次
用一次就作废了
就像我们用的这个公共筷子一样用一次就扔掉
nonce就是这样一个东西
那这样的话呢就是把这算法更加改进一步
我们改到这个认证算法4.0
这个时候我们为证明Alice还在线
或者说Alice还是Alice
那那个Bob给Alice发一个nonce这个nonce R
这个时候呢Alice必须回复给Bob
一个用Bob和Alice共享的密钥
加密过的R来证明自己
我们来看一下这个小小的这样一段动画就是
Alice对Bob说I am Alice
Bob收到了说有人跟我说她是Alice
这人是不真的Alice呢
那让我来检验一下
那Bob怎么检验呢就是给发一条这个回馈信息
这个回馈信息里面呢
就装了一段这个非常乱的一段代码
就只有Bob自己知道
就看得到这么一次性这样一段代码R
然后呢当这个Alice收到了这个nonce R的时候
Alice必须要用Alice和Bob之间的
这个shared key就是共享密钥
来对这个R而进行加密
并且把加了密的R返回给Bob
这个时候Bob收到以后
他就可以对这个
用他们的Alice和Bob共享密钥
加了密的这个密文进行解密
解密出来Bob可以看到是个R
那这个R是Bob之前就发的这个一次性的这段代码
由此Bob可以知道
确确实实这个跟我说她是Alice这个人
很大很大的可能她就是Alice
这个是一个比较好的一个改进了
就是说我们加了一段nonce
这个nonce呢在对录播攻击的
这个防御这种过程中是被经常用到的
所以呢大家记住
以后一旦我们看到有可能有录播攻击
这样的情况发生时候
你第一点想到的就是
我是不是要把nonce这个技术用起来
那算法4.0有个小缺陷啊
它是什么呢就是说
4.0呢它是要求还是要有个共享密钥
就是Alice和Bob之间他们之前要
共同商量好这个交换好一段共享密钥
这个我们之前提到过这个在
无法谋面或者未曾谋面的
这一对网络设备之间它想要
事先negotiate好 就是这个商量好
一段共享密钥不是一件容易的事情
安全的商量好
因为这个网络中任何事情都有可能发生
Trudy有可能会把它们的共享密钥截下来
那有了这样一个顾虑呢
我们就在考虑我们是不是可以
设计出用公共密钥结构的算法
来对这个authentication就是这个身份认证
这个服务进行下改进呢
答案是肯定的
那这样我们来设计算法5.0
算法5.0是这样子工作的啊
我们还是要用这个nonce
这个一次性的代码
我们要用完了就扔
这是它最重要的一个特性
我们不但用nonce我们还要用这个public key infrastructure
这是public key的这个算法
来对这个nonce进行加密
从而得到一个比较完美的这样一个认证过程
那我们来看一下63页上面
这个画出来这样一段小动画
同样的一个场景
Alice对Bob说I am Alice
那Bob这个时候又是在想这个人说她是Alice
我要不要相信她
那为了证明这个跟我说她是Alice的人
真的是Alice
Bob对这个Alice呢发一个nonce R
这个R是一次性的
那这个时候呢因为我们用的是
公共密钥的加密算法了
Alice要做一件什么事情呢
Alice为了证明她自己就是Alice
Alice用自己的private key
记住每一个devices每一个网络设备都有
自己的private key和public key
Alice也有 不光Bob有 Alice也有
Alice有她的private key 她用她自己的private key
对这个nonce R进行加密
我们将一段原文用Alice的private key
用她的私钥进行加密
那用什么钥匙才能够把这一段密文打开呢
这就是我们刚刚讲过的
我们一对钥匙 那一对的另外一半
是Alice的public key
那因为Alice的public key是确确实实有可能
很多人知道 其中包括Bob
也就是说Bob在这个时候是应该
我们可以假设他已经拥有了Alice的 public key
Bob这个时候要做的事情就是我拿Alice的 public key
来对Alice她自己的这个私钥
加密的这段密文进行解密
那如果Bob真的是不知道Alice public key
他还可以直接跟Alice要 这个没有关系
那比如说我们在这个例子里面呢
显然就是说这个Bob还多发了一个信息
就是像Alice问说
你来可不可以把你的public key发给我
就是send me your public key这样一个信息
Alice收到了send me your public key这个信息以后
她很简单她就把自己public key发给Bob
这个没有关系
因为public key呢是public knowledge
就是公钥实际上就是一个稍微公开点的这样一个信息了
那Bob拿到Alice的公钥以后
他就可以对前面的那一点K(A)minus of R
就是用Alice的私钥加密的那段密文进行解密
得到的是什么呢
得到了就是Bob之前发的那个nonce R
这个时候Bob就可以知道
果然这个跟我说她是I am Alice的这个人
这网络设备它真的是 Alice
因为只有 Alice有这个 Alice的私钥
这一点大家一定要切记切记
就只有这一个网络设备有它自己的私钥
别人都没有
也就是说不管是谁用了这个网络设备私钥
对一段信息进行加密
并且呢能够用它相应的这个公钥
对其进行解密的话
那这个网络设备
它因为它可以用这个私钥加密
就已经证明了这个设备就是它说的那个自己
他claim的那个人
就是说I claim i am Alice indeed i am Alice
这个是一个很重要的过程
那现在我们来看一下这个认证算法5.0
它是不是也有安全漏洞呢
这个很无奈这个网络安全中的
这个很多研究和学习包括技术上的东西呢
都是这样子的
就是魔高一尺道高一丈的这样一个状态
就是说你不管怎么样去弥补这个安全漏洞
总会有新的破解方法
那5.0其实它也还是有安全漏洞的
我们现在可以来看一下
这个下一个就是可能的攻击方法
就是Man-in-the-middle attack
就是叫中间人攻击
这个时候Trudy呢可以做什么事情呢
Trudy还是可以sitting in the middle
就是我可以站在这个Alice和Bob中间
我左边跟Bob讲我是Alice
右边我跟Alice讲我是Bob
这个就是中间人攻击它的一个精髓
那这个攻击它是怎么样的一个过程呢
Alice发到网络中的信息说I am Alice
本来Alice是想跟Bob说I am Alice
结果呢这个信息被谁截到了呢
被Trudy截到了
Trudy看到这个Alice想跟Bob说I am Alice
好 那我把这个信息扣下
我不转发给Bob
我回过头来我跟Bob说I am Alice
但实际上她是谁 她是Trudy
那Bob收到了Trudy发来的I am Alice
这样一个信息 Bob回之以R这个nonce
nonce R因为我们要做这个身份认证
这个算法5.0的设计就下一步
Bob要发R回来本来应该是给Alice的
结果这个时候被谁收到呢
被Trudy收到了
这个Trudy她收到这个R以后
她做两步
第一步呢Trudy用她自己的private key
大家要记住每一个device都有自己private key
Trudy用Trudy的private key对R进行加密
并且呢把这个用Trudy自己private key
加了密的R返还给Bob
同时Trudy对Alice发一个信息
是什么信息呢 说Here is a nonce R
就是把Bob之前发给她那个nonce R
转发给Alice
这个是5:0这个protocol应该走的下一步
就是Alice本来她也坐在那里
她等着收下一个信息
她等待的也是这个nonce这个信息
那到目前为止从Alice的角度讲
从Bob角度讲
两人看到的这个协议的运行过程都是正常的
完全make sense完全这个合理
下一步Bob要做什么呢
Bob就要对Trudy
其实Bob以为他是在对Alice讲话
Bob就发一个message说
please send me your public key
就是把你的公钥发给我
Trudy收到了这个信息
那当然她可以把自己的公钥发给Bob
前面那个R Trudy已经用自己的私钥进行加密了
这个时候她又把相对应的那个公钥发给了Bob
那当然Bob可以从中就是解密出来
那个正确的R
于此同时Trudy也收到了Alice发回来的
一个用Alice的私钥加密过的nonce那个密文
那这个时候呢Trudy为了让整个
这个过程看起来逼真
就要对Alice说请把你的公钥发给我
因为Trudy在对Alice
就是在表演她自己假装成Bob在跟Alice讲话
那下一步Bob要对Alice说的
就是说 请把你的公钥发给我
这个时候Alice看 这个应该就是下一条信息
Bob应该问我要我的公钥
那这里是我的公钥我的public key
Alice那就把这个自己的public key
发给她以为的那个Bob
但实际上是Trudy
因为Trudy是sit in the middle
她是这个中间人坐在那里
这个时候的Trudy基本上就是
可以正确的收到了这个Alice的public key
对她也没有太大的用处
但更关键的是说她已经向Bob认证了自己
因为Bob可以用Trudy的public key
去来解码Trudy自己的
private key加密的那样一段信息
那信息是nonce R
那Bob已经把Trudy认证为Alice
这个时候Bob就觉得ok
什么事情都可以安全了
对方真的是Alice
我可以把我想要告诉Alice的这些悄悄话
我都可以发给她了
那这个时候Bob做了一件什么事情呢
就是说Bob把想要发的一个message m
本来想发给Alice的message m
用一个人的这个public key给加密了
这个人的public key是谁的呢 是Trudy的
但Bob以为这个public key是Alice的
所以当Trudy收到了这个
用Trudy的public key加密的这段密文m以后
Trudy能够做什么呢
Trudy是有相应的这个private key的
也就是说Trudy她可以对这一段原文m
成功的进行解密
所以到此为止呢
Trudy可以得到原文m
可以把m用Alice这个公钥加密后
反过来再发给Alice
因为Trudy她在这个时候
也已经有了Alice的公钥
那Alice得到了Bob想要发给她的信息
Bob也成功的把他想要告诉Alice的话告诉了她
那什么东西是不对劲的呢
就是在这个整个这个对话过程中
有一个第三方
而这个第三方实际上是窃听了所有东西
就是Alice和Bob的所有对话
Trudy都可以听的到
这个实际上是这个认证算法5.0的
一个比较大的安全漏洞
就是中间人攻击的这样一个安全漏洞
小小总结一下就是说这个中间人攻击
它是一个怎么样的过程呢
就这个中间人Trudy
她可以对Bob假冒Alice
可以对Alice假冒是Bob
那她可以成功的去这个假冒这个对话的双方
而发现这个中间人它的难点是什么呢
就是说你看这个
Bob和Alice他们互相发的信息
都收到了就是正确的接收方
都已经接收到了这个正确的信息
也就是说如果比如说一周以后
Bob和Alice两人相见了
在某一个会议上也好
或者共进晚餐也好
他们把这个一周前的交换的信息提起来
两人发现都对的上号
但是问题是在于他们无法知道
其实他们知道这个信息别人也知道了
就这个第三者 这个Trudy
她也已经有了所有的信息的细节
这个是一个很大的一个安全漏洞
-第一节 电子邮件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