当谈论通讯安全的时候,通常我们关心的是下面四个问题:
1)防止消息窃听
当传送的消息是机密内容的时,人们希望给消息加密。这样即使消息在传送过程中被截获,窃听者也无法确切的知道消息内容,从而达到保密的效果。
2)防止消息篡改
消息在传送过程中,有可能被攻击者篡改内容,这样接收者接到的就是错误的信息,通讯过程中应该提供某种方案防止篡改。
3)防止消息伪造
攻击者假冒发送者的名义,给接收者发送消息,这种行为称为消息伪造。
4)防止否认
发送者事后否认自己发送过消息,需要有一种机制来防止这种情况发生。
下面,我们将详细分析下这四个问题。
1. 防窃听
提到加密,很多人的第一反应是下面这样:
"自己实现一个加密算法,然后将算法保密,这样就能保证安全。"
在密码学的领域,这是个典型的误区。
首先,开发高强度的加密算法是非常困难的。普通的算法在外行看起来牢不可破,但是专业破译者却有非常多的工具和攻击方式,使其破绽百出。
其次,加密算法的秘密总有一天会公诸于世。到那时,所有基于这个算法的秘密都将被泄露。
实践中使用的加密算法都是公开的,消息传递依靠保密的密钥来确保消息不被破解。正因此,它们经过攻击者长期尝试仍未被破解,所以保密强度较高。
常用的加密体系分为三类,对称加密、非对称加密和混合加密。
1.1 对称加密
对称加密是指加密和解密用的是同一个密钥。这个密钥只有发送者和接收者知晓,其他没有密钥的人无法解密消息。
常见的对称加密算法有 DES 、 3DES 和 AES 等。随着计算机硬件的进步,使用暴力破解法已经能在现实时间中完成对 DES 的破解; 3DES 处理速度不高,此外在安全性方面也逐渐显现出了些问题;目前应该选用的算法是 AES 。