5.6 网络安全概述

2025-06-05 21:23:20 更新

由于网络传播信息快捷,隐蔽性强,在网络上难以识别用户的真实身份,网络犯罪、黑客

攻击、有害信息传播等方面的问题日趋严重,网络安全已成为网络发展中的一个重要课题。网络安全的产生和发展,标志着传统的通信保密时代过渡到了信息安全时代。

(一)网络安全威胁


2.防火墙技术


3.认证

认证又分为实体认证和消息认证两种。实体认证是识别通信对方的身份,防止假冒,可以使用数字签名的方法。消息认证是验证消息在传送或存储过程中有没有被篡改,通常使用报文摘要的方法。

1)基于共享密钥的认证

如果通信双方有一个共享的密钥,则可以确认对方的真实身份。这种算法依赖于一个双方都信赖的密钥分发中心(Key Distribution Center, KDC),如图5-13所示,其中的A和B分别代表发送者和接收者,KA、KB分别表示A、B与KDC之间的共享密钥。


图5-13基于共享密钥的认证协议

认证过程如下:A向KDC发出消息{A,KA(B,KS)},说明自己要和B通信,并指定了与B

会话的密钥Ks。注意,这个消息中的一部分(B,Ks)是用KA加密了的,所以第三者不能了解消息的内容。KDC知道了 A的意图后就构造了一个消息{KB(A,KS)}发给B。B用KB解密后就得到了 A和Ks,然后就可以与A用Ks会话了。

然而,主动攻击者对这种认证方式可能进行重放攻击。例如A代表雇主,B代表银行。第

三者C为A工作,通过银行转账取得报酬。如果C为A工作了一次,得到了一次报酬,并偷听和复制了 A和B之间就转账问题交换的报文,那么贪婪的C就可以按照原来的次序向银行重发报文2,冒充A与B之间的会话,以便得到第二次、第三次……报酬。在重放攻击中攻击者不需要知道会话密钥Ks,只要能猜测密文的内容对自己有利或是无利就可以达到攻击的目的。

2)基于公钥的认证

这种认证协议如图5-14所示。A给B发出EB(A, RA),该报文用B的公钥加密。B返回EA(RA,

RB, KS),用A的公钥加密。这两个报文中分别有A和B指定的随机数RA和RB,因此能排除

重放的可能性.通信双方都用对方的公钥加密,用各自的私钥解密,所以应答比较简单。其中

的Ks是B指定的会话键。这个协议的缺陷是假定了双方都知道对方的公钥。

图5-14基于公钥的认证协议

4.数字签名

与人们手写签名的作用一样,数字签名系统向通信双方提供服务,使得A向B发送签名的消息P,以便达到以下几点:

(1)B可以验证消息P确实来源于A。

(2)A以后不能否认发送过P。

(3)B不能编造或改变消息P。

下面介绍两种数字签名系统。

1)基于密钥的数字签名

这种系统如图5-15所示。设BB是A和B共同信赖的仲裁人。KA和KB分别是A和B与BB之间的密钥,而KBB是只有BB掌握的密钥,P是A发给B的消息,,是时间戳。BB解读了 A的报文{A, KA(B, RA, t, P)}以后产生了一个签名的消息KBB(A, t, P),并装配成发给B的报文{KB(A,RAJP,KBB(A*,P))}。B可以解密该报文,阅读消息P,并保留证据KBB(A, t, P)o由于A和B之间的通信是通过中间人BB的,所以不必怀疑对方的身份。又由于证据KBB(A, t, P)的存在,A不能否认发送过消息P, B也不能改变得到的消息P,因为BB仲裁时可能会当场解

密KBB(A",P),得到发送人、发送时间和原来的消息P,

图5-15基于密钥的数字签名

2)基于公钥的数字签名

利用公钥加密算法的数字签名系统如图5-16所示。如果A方否认了,B可以拿出DA(P),

并用A的公钥EA解密得到P,从而证明P是A发送的。如果B把消息P篡改了,当A要求B出示原来的DA(P)时,B拿不出来。

发送方

接收方

EB(DA(P))

DJP)

DJP)

图5-16基于公钥的数字签名

5.报文摘要

用于差错控制的报文检验是根据冗余位检查报文是否受到信道干扰的影响,与之类似的报文摘要方案是计算密码校验和,即固定长度的认证码,附加在消息后面发送,根据认证码检查报文是否被篡改。设M是可变长的报文,K是发送者和接收者共享的密钥,令MD=CK(M),这就是算出的报文摘要(Message Digest),

如图5-17所示。由于报文摘要是原报文唯一的压缩表

图5-17报文摘要方案

示,代表了原来报文的特征,所以也叫作数字指纹(DigitalFingerprint)。

散列(Hash)算法将任意长度的二进制串映射为固定长度的二进制串,这个长度较小的二进制串称为散列值。散列值是一段数据唯一的、紧凑的表示形式。如果对一段明文只更改其中的一个字母,随后的散列变换都将产生不同的散列值。因为要找到散列值相同的两个不同的输入在计算上是不可能的,所以数据的散列值可以检验数据的完整性,

通常的实现方案是对任意长的明文M进行单向散列变换,计算固定长度的位串作为报文摘要。对Hash函数力=H(M)的要求如下:

(1)可用于任意大小的数据块。

(2)能产生固定大小的输出。

(3)软/硬件容易实现。

(4)对于任意,找出x,满足H(x)=m,是不可计算的。

(5)对于任意x,找出.V#,使得H(x)=H(y),是不可计算的。

(6)找出使得H(x)=H(y),是不可计算的。

前3项要求显而易见是实际应用和实现的需要。第4项要求就是所谓的单向性,这个条件使得攻击者不能由偷听到的m得到原来的X。第5项要求是为了防止伪造攻击,使得攻击者不能用自己制造的假消息."冒充原来的消息n第6顼要求是为了对付生日攻击的。

报文摘要可以用于加速数字签名算法,在图5-15中,BB发给B的报文中报文P实际上出现了两次,一次是明文,一次是密文,这显然增加了传送的数据量。如果改成图5-18所示的报文,KBB(A, t, P)减少为MD(P),则传送过程可以大大加快。

图5-18报文摘要的例子

6.数字证书

1)数字证书的概念

数字证书是各类终端实体和最终用户在网上进行信息交流及商务活动的身份证明,在电子交易的各个环节,交易的各方都需验证对方数字证书的有效性,从而解决相互间的信

任问题。

数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密和解密。每个用户自己设定一个特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名,同时设定一个公共密钥(公钥),并由本人公开,为一组用户所共享,用于加密和验证。公开密钥技术解决了密钥发布的管理问题。一般情况下,证书中还包括密钥的有效时间、发证机构(证书授权中心)的名称及该证书的序列号等信息。数字证书的格式遵循ITUTX.509国际标准.

用户的数字证书由某个可信的证书发放机构(Certification Authority, CA)建立,并由CA或用户将其放入公共目录中,以供其他用户访问。目录服务器本身并不负责为用户创建数字证书,其作用仅仅是为用户访问数字证书提供方便。

在X.509标准中,数字证书的一般格式包含的数据域如下:

〈1)版本号:用于区分X.509的不同版本。

(2)序列号:由同一发行者(CA)发放的每个证书的序列号是唯一的。

(3)签名算法:签署证书所用的算法及参数。

(4)发行者:指建立和签署证书的CA的X.509名字。

(5)有效期:包括证书有效期的起始时间和终止时间。

(6)主体名:指证书持有者的名称及有关信息.

(7)公钥:有效的公钥以及其使用方法。

(8)发行者ID:任选的名字唯一地标识证书的发行者。

(9)主体ID:任选的名字唯一地标识证书的持有者。

(10)扩展域:添加的扩充信息。

(11)认证机构的签名:用CA私钥对证书的签名。

2)证书的获取

CA为用户产生的证书应具有以下特性:

(1)只要得到CA的公钥,就能由此得到CA为用户签署的公钥。

(2)除CA外,其他任何人员都不能以不被察觉的方式修改证书的内容。

因为证书是不可伪造的,因此无须对存放证书的目录施加特别的保护。

如果所有用户都由同一 CA签署证书,则这一 CA必须取得所有用户的信任。用户证书除了能放在公共目录中供他人访问外,还可以由用户直接把证书转发给其他用户。用户B得到A的证书后,可相信用A的公钥加密的消息不会被他人获悉,还可信任用A的私钥签署的消息不是伪造的。

如果用户数量很多,仅一个CA负责为所有用户签署证书可能不现实。通常应有多个CA,每个CA为一部分用户发行和签署证书。

设用户A己从证书发放机构XI处获取了证书,用户B己从X2处获取了证书。如果A不知X2的公钥,他虽然能读取B的证书,但却无法验证用户B证书中X2的签名,因此B的证书对A来说是没有用处的。然而,如果两个证书发放机构XI和X2彼此间已经安全地交换了公开密钥,则A可通过以下过程获取B的公开密钥:

(1) A从目录中获取由XI签署的X2的证书XI《X2》,因为A知道XI的公开密钥,所以能验证X2的证书,并从中得到X2的公开密钥.

(2) A再从目录中获取由X2签署的B的证书X2《B》,并由X2的公开密钥对此加以验证,然后从中得到B的公开密钥。

在以上过程中,A是通过一个证书链来获取B的公开密钥的,证书链可表示为:XI《X2》X2《B》

类似地,B能通过相反的证书链获取A的公开密钥,表示为:X2《XI》XI《A》

以上证书链中只涉及两个证书,同样,有N个证书的证书链可表示为:XI《X2》X2《X3》—XN《B》

此时,任意两个相邻的CAXz和CAXz+1已彼此间为对方建立了证书,对每一个CA来说,

由其他CA为这一 CA建立的所有证书都应存放于目录中,并使得用户知道所有证书相互之间的连接关系,从而可获取另一用户的公钥证书。X.509建议将所有的CA以层次结构组织起来,用户A可从目录中得到相应的证书以建立到B的以下证书链:

X《W》W《V》V《U》U《Y》Y《Z》Z《B》

并通过该证书链获取B的公开密钥。

类似地,B可建立以下证书链以获取A的公开密钥:

X《W》W《V》V《U》U《Y》Y《Z》Z《A》

3)证书的吊销

从证书的格式上可以看到,每个证书都有一个有效期,然而有些证书还未到截止日期就会

被发放该证书的CA吊销,这可能是由于用户的私钥已被泄露,或者该用户不再由该CA来认证,或者CA为该用户签署证书的私钥已经泄露。为此,每个CA还必须维护一个证书吊销列表(Certificate Revocation List, CRL),其中存放所有未到期而被提前吊销的证书,包括该CA发放给用户和发放给其他CA的证书。CRL还必须由该CA签字,然后存放于目录中以供他人查询。

CRL中的数据域包括发行者CA的名称、建立CRL的日期、计划公布下一 CRL的口期以及每个被吊销的证书数据域。被吊销的证书数据域包括该证书的序列号和被吊销的日期。对一个CA来说,它发放的每个证书的序列号是唯一的,所以可用序列号来识别每个证书。

因此,每个用户收到他人消息中的证书时都必须通过日录检查这一证书是否己经被吊销,为避免搜索目录引起的延迟以及因此而增加的费用,用户自己也可维护一个有效证书和被吊销证书的局部缓存区。

7.入侵检测与防御

入侵检测系统(Intrusion Detection System, IDS)作为防火墙之后的第二道安全屏障,通过从计算机系统或网络中的若干关键点收集网络的安全日志、用户的行为、网络数据包和审计记录等信息并对其进行分析,从中检查是否有违反安全策略的行为和遭到入侵攻击的迹象,入侵检测系统根据检测结果,自动做出响应,IDS的主要功能包括对用户和系统行为的监测与分析、系统安全漏洞的检查和扫描、重要文件的完整性评估、已知攻击行为的识别、异常行为模式的统计分析、操作系统的审计跟踪,以及违反安全策略的用户行为的检测等.入侵检测通过实时地监控入侵事件,在造成系统损坏或数据丢失之前阻止入侵者进一步的行动,使系统能尽可能地保持正常工作。与此同时,IDS还需要收集有关入侵的技术资料,用于改进和增强系统抵抗入侵的能力。

入侵检测系统有效地弥补了防火墙系统对网络上的入侵行为无法识别和检测的不足,入侵检测系统的部署,使得在网络上的入侵行为得到了较好的检测和识别,并能够进行及时的报警。然而,随着网络技术的不断发展,网络攻击类型和方式也在发生着巨大的变化,入侵检测系统也逐渐地暴露出如漏报、误报率高、灵活性差和入侵响应能力较弱等不足之处。入侵防御系统(IPS)是在入侵检测系统的基础上发展起来的,入侵防御系统不仅能够检测到网络中的攻击行为,同时能够主动地对攻击行为发出响应,对攻击进行防御。两者相较,主要存在以下两种区别:

(1)在网络中的部署位置的不同。IPS 一般是作为一种网络设备串接在网络中的,而IDS一般是采用旁路挂接的方式,连接在网络中。

(2)入侵响应能力的不同。IDS设备对于网络中的入侵行为,往往是采用将入侵行为记入日志,并向网络管理员发出警报的方式来处理的,对于入侵行为并无主动地采取对应措施,响应方式单一;而入侵防御系统检测到入侵行为后,能够对攻击行为进行主动防御,例如丢弃攻击连接的数据包以阻断攻击会话,主动发送ICMP不可到达数据包、记录日志和动态生成防御规则等多种方式对攻击行为进行防御.