概述
基本概念
网络安全通信的基本属性
-
机密性。只有发送方与预定接收方能理解报文内容。
-
消息完整性。发送方与接收方希望确保消息未被篡改,发生篡改一定会被检测到。
-
可访问性与可用性。可访问性与可用性是网络信息可被授权实体访问并按需求使用的特性。
-
身份认证。发送方与接收方希望确认彼此的真实身份。
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者 恶意的原因遭受到破坏、更改、泄漏,系统连续可靠正常地运行,网络服务不中断。
安全威胁
报文传输方面:窃听 、插入、假冒、劫持等安全威胁。
网络攻击:拒绝服务DoS以及分布式拒绝服务DDoS。
映射:在发起攻击前先探路找出网络上在运行什么服务,然后利用ping命令确定网络上的主机地址,最后使用端口扫描的方法依次尝试与每个端口建立TCP连接。
嗅探:通常发生在共享式以太网或者无线网络中,嗅探主机通过混杂模式网络接口卡,可以接收或记录所有广播介质上的分组/帧,可以读取到所有未加密数据。
IP欺骗:由应用直接生成“原始”IP分组,设置分组的源IP为任意值,接收方无法判断源地址是否真实,可能导致错误数据的接收或者隐藏身份网络安全攻击。
数据加密
密码技术是保障信息安全的核心基础,解决数据的机密性、完整性、不可否认性以及身份识别等问题均需要以密码为基础。密码学包括密码编码学和密码分析学两部分。
密码编码:将密码变化的客观规律应用于编制密码来保守通信秘密。
密码分析学:研究密码变化客观规律中的固有缺陷,并应用于破译密码以获取通信情报。
传统密码算法
-
替代密码
替代密码是将明文字母表M中的每个字母用密文字母表C中的相应字母来代替,常见的加密模型有移位密码、乘数密码、仿射密码等
凯撒密码是移位密码的一个典型应用。
-
换位密码
又称置换密码,根据一定的规则重新排列明文,以便打破明文的结构特性。置换密码的特点是保持明文的所有字符不变,只是利用置换打乱了明文字符的位置和次序。
对称密钥算法
对称密钥加密系统又可分为分组密码和流密码。计算机网络常用的对称密钥加密为分组密码。
分组密码又称块密码,是将明文消息分成若干固定长度的消息组,每组消息进行单独加密/解密。比较常见的分组密码有DES、AES、IDEA等。
非对称/公开密钥算法
对称密钥加密算法经过多年的发展与改进,在防止暴力破解上做的已经非常完美了,但是仍然面临一个最大的问题,就是密钥分发问题。
不管使用的密码系统有多强,如果密码分析者能直接偷取到密钥,则整个系统将变得毫无价值。但是密钥总需要发送给用户(需要解密密文的一方)。如何既方便密钥的分发,又确保密码体系安全?非对称密钥密码,或称公开密钥密码(简称公钥密码),则便于解决密钥分发问题。
一个公钥,一对私钥;私钥加密,公钥解密。
消息完整性与数字签名
报文/消息完整性,也称为报文/消息认证(或报文鉴别),其主要目标是:
-
证明报文确实来自声称的发送方;
-
验证报文在传输过程中没有被篡改;
-
预防报文的时间、顺序被篡改;
-
预防报文持有期被篡改;
-
预防抵赖(如发送方否认已发送的消息或接收方否认已接收的消息)。
消息完整性检测方法
为了实现消息完整性检测,需要用到密码散列函数H(m),表示对报文m进行散列化。
-
MD5
-
SHA-1
报文认证
消息完整性检测的一个重要目的就是要完成报文认证的任务。对报文m应用散列函数H,得到一个固定长度的散列码,称为报文摘要,记为H(m)。报文摘要可以作为报文m的数字指纹。
报文认证是使消息的接受者能够检验收到的消息是否是真实的认证方法。报文(消息)认证的目的有两个:一是消息源的认证,即验证消息的来源是真实的;另一个是消息的认证,即验证消息在传送过程中未被篡改。
-
简单报文验证
没有达到对消息来源认证的目的。
-
报文认证码
没法保证消息在接收方没有被篡改。
数字签名
以上两种报文认证方法均存在不足,没办法很好地完成报文认证的目的。亟待解决的问题有:发送方不承认自己发送过某一报文。接收方 自己伪造一份报文,并声称来自发送方。某个用户冒充另一个用户接收和发送报文。接收方对收到的信息进行篡改。解决这些问题的有效技术手段是数字签名。
数字签名与消息认证的区别:
消息认证使接收方能验证发送方以及所发消息内容是否被篡改过。当收发者没有利害冲突时,这对于防止第三者的破坏来说是足够了。但当接收者和发送者之间有利害冲突时,就无法解决他们之间的纠纷,此时须借助满足要求的数字签名技术。
数字签名应满足以下要求:
-
接收方能够确认或证实发送方的签名,但不能伪造
-
发送方发出签名的消息给接收方后,就不能再否认他所签发的消息
-
接收方对已收到的签名消息不能否认,即有收报认证
-
第三者可以确认收发双方之间的消息传送,但不能伪造此过程
-
简单数字签名
数字签名就是对用私有密钥进行加密,而认证就是利用公开密钥解密,所以报文加密技术是数字签名的基础。
-
签名报文摘要
简单数字签名确实可以很好地达到信息验证的目的,但是由于数字签名利用私有密钥对整个报文m进行加密,造成加密算法在报文很大时计算量很大,运行效率很低同时生成的扩展报文 是原始报文数量的两倍多,这样就造成接收方流量的极大浪费。
签名报文摘要 是对报文m应用散列函数生成报文摘要,然后对报文摘要进行加密
身份认证
身份认证又称身份鉴别,是一个实体经过计算机网络向另一个实体证明其身份的过程。例如一个人向某个电子邮件服务器证明其身份。
密钥分发中心与证书认证机构
密钥分发中心
在对大量信息进行加密时,对称密钥密码因为其加密/解密效率高、速度快等特点,而比非对称密钥密码更为有效。然而对称密钥的应用,需要在通信方之间建立一个共享密钥。如果一方需要和N方进行保密通信,则需要建立N对共享密钥。显然,解决对称密钥的安全可靠分发,是成功利用对称密钥的关键。
对称密钥分发的典型解决方案是,通信各方建立一个大家都信赖的密钥分发中心(KDC),并且每一方和KDC之间都保持一个长期的共享密钥。
证书认证机构
将公钥与特定实体绑定,通常是由认证中心(CA)完成的。
CA有以下作用:
-
CA可以证实一个实体 (一个人、一台路由器)的 真实身份
-
一旦CA验证了某个实体的身份,CA会生成一个把其身份和实体的公钥绑定起来的证书,其中包含该实体的公钥及其全局唯一的身份识别信息(例如人的姓名或IP地址)等,并由CA对证书进行数字签名。