信息安全基础知识(三)MAC消息验证码及密钥管理问题
2014-11-26 17:12
218 查看
假设Alice和Bob共享一个密钥,Alice想给Bob发送一条消息,而Bob将会知道它是Alice发的。如果她加密的话,非常简单,只需将他们的共享密钥用做加密密钥即可,但是如我们所讲的,这种方法并不能提供任何信息未被篡改的真正保证。我们需要一种新的工具,即消息验证码(message authentication codes,MAC)。MAC类似于摘要算法,但是它在计算的时候还要采用一个密钥,因此MAC同时依赖于所使用的密钥以及要计算起MAC的信息。实际上MAC通常是根据摘要算法构造得出的。<可以理解为
MAC=密钥+消息摘要>
尽管存在许多基于各种摘要算法来构造MAC的尝试,但是因特网安全团体就一种构造方法达成了一致,它被称做HMAC[Krawzyk1997],这种方法描述了如何基于满足某种合理假定摘要来创建具有可证明的安全特性的MAC。SSLv3中使用的是一中HMAC的变种,而真正的HMAC在TLS中使用。
密钥管理的问题
Alice 拿到我们的消息,使用共享密钥对信息进行加密,添加一个也是基于该密钥构造的 MAC 并将其发送给 Bob。她知道只有 Bob 能够阅读这条信息,因为 Bob 与其共享解密时所需要的密钥。类似的,Bob 知道发送这条消息的只有 Alice,因为只有 Alice 才具有创建消息上的 MAC 时所需要的密钥。这样,Bob 就可以知道是 Alice 发送的信息,而且还未被篡改。
那么,我们就有了所需要的一切,是吗?不。与每个人进行通信,仍然存在与其共享密钥的问题。周围有这么多密钥需要处理非常不方便。<设想一下如果有两个人那么需要交换1个密钥,如果有三个人侧需要交换3个密钥,如果有n个人,这时就需要n(n-1)/2个密钥>但更重要的是,这意味着为了进行密钥交换,你实际上必须要与每一个与之通信的人会面。这为通过因特网购买商品设置了障碍,除非你个人已经与供应商碰过面。这里面不便之处就是密钥管理的问题。
<因为Alice与Bob要共享密钥,但是A和B没有碰过面,那么就要有一方要发送密钥给另一方,但是这个密钥是需要保密的,不能在网络上直接传送。所以就涉及到了密钥的管理问题。有人会说,直接传送能怎么样呢,这就会遭受密钥被攻击者截获(端认证没有被保证),消息被截获并且泄露。MAC只能保证消息不被篡改,密钥用来保护消息不被泄露。>
下一讲:信息安全基础知识(四)KDC、公用密钥加密和证书
MAC=密钥+消息摘要>
尽管存在许多基于各种摘要算法来构造MAC的尝试,但是因特网安全团体就一种构造方法达成了一致,它被称做HMAC[Krawzyk1997],这种方法描述了如何基于满足某种合理假定摘要来创建具有可证明的安全特性的MAC。SSLv3中使用的是一中HMAC的变种,而真正的HMAC在TLS中使用。
密钥管理的问题
Alice 拿到我们的消息,使用共享密钥对信息进行加密,添加一个也是基于该密钥构造的 MAC 并将其发送给 Bob。她知道只有 Bob 能够阅读这条信息,因为 Bob 与其共享解密时所需要的密钥。类似的,Bob 知道发送这条消息的只有 Alice,因为只有 Alice 才具有创建消息上的 MAC 时所需要的密钥。这样,Bob 就可以知道是 Alice 发送的信息,而且还未被篡改。
那么,我们就有了所需要的一切,是吗?不。与每个人进行通信,仍然存在与其共享密钥的问题。周围有这么多密钥需要处理非常不方便。<设想一下如果有两个人那么需要交换1个密钥,如果有三个人侧需要交换3个密钥,如果有n个人,这时就需要n(n-1)/2个密钥>但更重要的是,这意味着为了进行密钥交换,你实际上必须要与每一个与之通信的人会面。这为通过因特网购买商品设置了障碍,除非你个人已经与供应商碰过面。这里面不便之处就是密钥管理的问题。
<因为Alice与Bob要共享密钥,但是A和B没有碰过面,那么就要有一方要发送密钥给另一方,但是这个密钥是需要保密的,不能在网络上直接传送。所以就涉及到了密钥的管理问题。有人会说,直接传送能怎么样呢,这就会遭受密钥被攻击者截获(端认证没有被保证),消息被截获并且泄露。MAC只能保证消息不被篡改,密钥用来保护消息不被泄露。>
下一讲:信息安全基础知识(四)KDC、公用密钥加密和证书
相关文章推荐
- 信息安全基础知识(二)消息摘要与数字签名
- 解决12306.cn网站验证码获取提示“基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系“的问题
- 信息安全基础知识(五)主动攻击与被动攻击
- java基础知识回顾之java Thread类学习(四)--java多线程安全问题(锁)
- 信息安全系统设计基础-五次实验问题总结
- 《信息安全系统设计基础》第1周问题总结
- java基础知识回顾之java Thread类学习(七)--java多线程安全问题(死锁)
- 信息安全基础知识
- 密码学基础知识(一)信息安全与密码学
- 信息安全基础虚拟机实验的一些问题及解决(win2003)
- 收藏:信息安全基础知识
- 信息安全数学基础js奇淫技巧解决辗转相除法同余式等问题
- 密码学基础知识(一)信息安全与密码学
- 权威黑客知识讲座(六):.网络安全基础(四)—信息收集【实战开始】
- java基础知识回顾之java Thread类学习(五)--java多线程安全问题(锁)同步的前提
- 解决12306.cn网站验证码获取提示“基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系“的问题
- 《信息安全系统设计基础》实验三 《实时系统的移植》 问题总结
- 2017-2018-1 20155326 《信息安全系统设计基础》 第一周对本书每章提一个问题