计算机网络安全基础知识总结 计算机网络安全概述( 二 )


同理,如果其他人如果篡改过报文,但是无法得到 A 的私钥来对 X 进行加密,所以对篡改过的报文进行解密后将得出不可读的明文,即验证了报文的完整性;
因为只有 A 持有私钥,所以只要能够用解密出明文,A 就无法抵赖对此报文的签名 。
上面的过程,仅对报文进行了签名,但是对报文 X 本身还需要进行加密 。完整的过程如下图所示:

计算机网络安全基础知识总结 计算机网络安全概述


鉴别
鉴别是要验证通信的对方的确是自己所要通信的对象,而不是其他冒充者,并且所传送的报文是完整的,没有被其他人篡改过 。
鉴别分为两种:
  1. 报文鉴别:鉴别收到的报文的确是报文的发送者发送的,而不是其他人伪造的或篡改的 。这就包含了端点鉴别和报文完整性的鉴别;
  2. 实体鉴别:仅仅鉴别发送报文的实体 。实体可以是一个人也可以是一个进程 。
1、报文鉴别
数字签名能够实现对报文的鉴别,但是对较长的报文进行数字签名会使计算机增加很大的负担,需要较多的时间来计算 。我们使用密码散列函数这种相对简单的方法进行鉴别 。
密码学中的散列函数是单向函数,逆向变换是不可能的 。

计算机网络安全基础知识总结 计算机网络安全概述


常用的散列函数有:MD5 和 SHA-1,但是都被证明是不安全的 。
报文鉴别码 MAC(Message Authentication Code):需要对散列值进行一次加密 。

计算机网络安全基础知识总结 计算机网络安全概述


在 A 从报文 X 导出散列 H 后,就对散列 H 用密钥 K 加密,这样得到的结果叫做报文鉴别码 MAC 。A 把已加密的报文鉴别码 MAC 拼接在报文 X 后面,得到扩展的报文,发送给 B 。
B 收到扩展的报文后,先把报文鉴别码 MAC 与报文 X 分离出来 。然后用同样的密钥 K 对收到的报文鉴别码 MAC 进行解密运算,得出加密前的散列 H 。再把报文 X 进行散列函数运算,得出散列 H(X),如果 H(X)=H,则相信收到的报文 X 是 A 发送的 。
由于入侵者不掌握密钥 K,所以入侵者无法伪造 A 的报文鉴别码 MAC,因而无法伪造 A 发送的报文,这就完成了对报文的鉴别 。
2、实体鉴别
实体鉴别和报文鉴别不同 。报文鉴别是对每一个收到的报文都要鉴别报文的发送者,而实体鉴别是在系统接入的全部持续时间内对和自己通信的对方实体只需要验证一次 。

计算机网络安全基础知识总结 计算机网络安全概述


上图中使用对称密钥的方法有很大的漏洞 。例如:入侵者 C 可以从网上截获 A 发给 B 的报文,C 并不需要破译这个报文,而是直接把这个由 A 加密的报文发送给 B,使 B 误认为 C 就是 A;然后 B 就向伪装成 A 的 C 发送许多本来应当发给 A 的报文 。这就叫做重放攻击 。
为了对付重放攻击,可以使用不重数 。不重数就是一个不重复使用的打随机数,即“一次一数” 。
A 和 B 对不同的会话必须使用不同的不重数集 。由于不重数不能重复使用,所以 C 在进行重放攻击时无法重复使用所截获的不重数 。
密钥分配
密钥分配有两种方式:
  1. 网外分配方式:派非常可靠的信使携带密钥分配给互相通信的各用户;
  2. 网内分配方式:密钥自动分配 。
1、对称密钥的分配
目前常用的密钥分配方式是设立密钥分配中心 KDC 。KDC 都是大家信任的机构,其任务是给需要进行秘密通信的用户临时分配一个会话密钥(仅使用一次) 。

推荐阅读