如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
认证协议1认证Alice必须向Bob证明自己的身份,Alice和Bob可以是人或计算机Alice也需要Bob证明他是Bob(相互认证)可能还需要建立一个会话密钥可能有其他需求,如只使用公钥只使用对称密钥只使用哈希函数匿名性,不可否认性等等。2认证认证在一台独立的计算机上是相当简单的“安全路径”是首要问题重点关注的是对认证软件的攻击在网络上的认证复杂得多攻击者可以窃听消息(被动攻击)重放消息主动攻击也是可能的,如插入,删除,更改信息3简单认证“我是Alice”证明这一点我的口令是“frank”AliceBob在独立的计算机系统上是简单可行的。在网络系统上是不安全的除重放攻击Bob必须知道Alice的口令4对认证的攻击“我是Alice”证明这一点我的口令是“frank”AliceBobTrudy5对认证的攻击“我是Alice”证明这一点我的口令是“frank”TrudyBob重放攻击怎样才能防止重放?6简单认证我是Alice,我的口令是“frank”AliceBob更有效…和之前的协议同样的问题7改进的认证协议“我是Alice”证明这一点H(Alice的口令)AliceBob更好,因为它隐藏了Alice的密码但仍然存在重放攻击8挑战与响应为了防止重放,使用挑战和响应SupposeBob想要验证AliceBob向Alice发一个挑战只有Alice可以提供正确的响应挑战挑战择防放的选择可以防止重放怎么做到这一点?只有Alice知道口令…保持新鲜性:一个数字只使用一次或使用一次性随机数9挑战与响应“我是Alice”NonceH((pAlice’spassword,),Nonce)AliceBobNonce是挑战challenge哈希是响应responseNonce防止重放,保持了新鲜只有Alice知道口令请注意:Bob必须知道Alice的口令10挑战与响应“我是Alice”NonceSomethingthatcouldonlybeAlicefromAlice(andBobcanverify)Bob我们可以用什么来实现这一目标?哈希希令口令,加密可能会更好11设计基于服务器的密钥建立协议一个简单协议的设计过程,通过设计中遇到的各种漏洞逐步改进满足各种安全需要。最初的设计目标:包括两个用户和一个可信服务器的三方密钥建立协议。使得服务器分配一个会话密钥KAB给两个用户。1)KAB应该被有效的分配给A和B,其他人除了服务器不能够得到会话密钥2)A和B需要确定KAB是新鲜的。12S1.A,B2.KABA3.KAB,AB1.AS:A,B2.SA:KAB3.AB:KAB,A13秘密性问题:上图的会话密钥没有受到保护安全性假设1:攻击者可以窃听密码协议中传输的所有信息。为了实现协议的保密性,消息的传输必须经过加密保护。这就需要适当的加密解密算法和密钥。假设用户A,B和服务器S之间共享长期密钥KAS和KBS。14S1.A,B2.{KAB}KAS,{KAB}KBSA3.{KAB}KBS,AB这里不考虑具体使用的密码算法。我们所讨论的攻击都是与算法无关的。这里我们假设所使用的密码算法满足我们的安全要求,攻击者不能够仅仅从密文根据算法本身的弱点进行攻击。15认证性上图中的方案依然存在问题。这里必须考虑攻击者不仅仅能够窃听,并且能够获取并更改消息。安全假设2:攻击者能够使用任何可用的信息对密码协议中传输的消息进行修改。并可以任意的更改消息传递路径及消息的接收者。这包括攻击者有能力产生并插入任意的新的信息。16在实际通信当中,随时可能有未知身份的参与者介入,因此在设计协议的过程中考虑认证性成为必然。下图是对于上面方案的一种攻击S1.A,B2.{KAB}KAS,{KAB}KBS3.{KAB}KBS,A3’.{KAB}KBS,DACB17S1’.A,C2{KAC}KAS,{KAC}KCSC1.A,B2’.{KAC}KAS,{KAC}KCS3.{K},AAACKCSC这里C成功的冒充了B,与前一个攻击相比这里要求C必须是一个对于服务器S来说的一