信息安全面临的威胁
人为威胁包括两大类
- 被动攻击
- 主动攻击
被动攻击主要是指窃听,是对系统的保密性进行的攻击。 被动攻击又分为两类
- 获取消息的内容
- 进行业务流分析
主动攻击包含对数据流的篡改、伪造等方面
- 中断 对系统可用性进行攻击
- 篡改 对系统完整性进行攻击
- 伪造 对系统真实性进行攻击
恶意程序包括两类,一类是需要主程序的,即不能独立于实际的应用程序或系统程序,另一类是不需要主程序的,即能够被操作系统调度或独立运行。需要主程序的包含陷阱、逻辑炸弹、特洛伊木马、病毒等。而不需要主程序的包括细菌、蠕虫。
安全业务主要包含以下五种:
- 保密业务 主要是防范被动攻击。
- 认证保护 用于保证通信的真实性。
- 完整性业务 用于保证所接受的信息没有经过复制、插入、篡改、重排或重放。
- 不可否认业务 用于防止通信双方对某一方传输信息否认。
- 访问控制 防止目标对资源的非授权访问。
为保护信息的保密性,保密系统应满足以下需求:
- 系统即使达不到理论上的不可破,也应当实际上不可破。即即使截获密文或已获知某些明文之后,不可计算得出密钥或任意明文。
- 系统的保密性不依赖于对加密体制或算法的保密,而依赖于密钥。(Kerchkhoff原则)。
- 加密/解密算法适用于所有密钥空间中的元素。
- 系统便于实现和使用。
密码体制的分类
密码体制主要分为两大类,单钥体制与双钥体制。
单钥体制即加密密钥与解密密钥相同。对应于单钥体制下,对明文的加密有两种方式
- 将明文消息按字符诸位加密,称之为流密码
- 将明文消息分组,逐组进行加密,称之为分组密码
双钥体制是由Diffie和Hellman于1976年首先引入。采用双钥体制的每个用户都有一对选定的密钥。一个叫做公钥,一个叫做私钥。其特点为将加密和解密的密钥分开,可以实现多个用户加密的数据只能由一个用户进行解读,或一个用户加密的数据可由多个用户进行解读。
密码攻击的分类
- 惟密文攻击 攻击者需要掌握其加密算法以及截获的部分密文。
- 已知明文攻击 攻击者需要掌握其加密算法、截获的部分密文以及一个或多个明文密文对
- 选择明文攻击 攻击者需要掌握其加密算法、截获的部分密文以及自己选择的明文消息以及由密钥产生的相应密文
- 选择密文攻击 攻击者需要掌握其加密算法、截获的部分密文以及自己选择的密文消息以及相应的被解密的明文
还有两个概念值得注意
- 一个加密算法是无条件安全的,如果算法产生的密文不能给出唯一决定的相应明文的足够信息。此时无论黑客截获多少密文,花费多少时间,都不能解密密文。
- Shannon提出,仅当密钥至少和明文一样长时,才能够达到无条件安全。也就是说除了一次一密方案外,再无其他加密方案是无条件安全的。因此加密算法只要满足一下两个准则之一即可:(破译密文的代价超过被加密信息的价值、破译密文所花的时间超过信息的有用期)
满足这两个准则就说明加密算法称为计算上的安全。