netsecdgWord文件下载.docx
《netsecdgWord文件下载.docx》由会员分享,可在线阅读,更多相关《netsecdgWord文件下载.docx(107页珍藏版)》请在冰豆网上搜索。
技术介绍完后,文章接着具体讨论了如向建立企业安全策略、Cisco提供的产品以及Cisco的产品和特性如何适应安全的企业网络的设计。
最后一部分,给出了一些网络安全策略实例,以及相应的Cisco产品系列上的配置。
术语
在了解安全的基本原理之前,我们必须知道安全领域广泛使用的术语。
以下是一些基本的专用词语以及它们的定义。
鉴别身份:
确认从终端用户或设备,如主机、服务器、交换机、路由器等处送来的信息的出处。
数据完整性:
确保数据在传输过程中未被改动。
数据保密性:
确保只有获准能够阅读数据的实体以有效的形式阅读数据。
加密:
一种挠乱信息,使之不能被除预期的接收者以外的任何人阅读,而预期接收者必须解密以后才能阅读。
解密:
一种恢复加密信息,使之可读的方法。
密钥:
一种可以用来加密、解密和标记信息的数字代码。
共用密钥:
一种用来加密/解密信息,并核对数字签名的数字代码,这种密码可被广泛使用,它还有相应的专用密钥。
专用密钥:
一种用来加密/解密信息并提供数字签名的数字代码;
这种密钥由其所有者秘密保存,它有对应的共用密钥。
秘密钥:
一种只有两方共享的数字代码,它用来加密、解密数据。
密钥指纹:
一种共用密钥独有的可读代码,它可用来核查共用密码的所有者。
hash函数:
一种数学计算法,它可产生一串位(数字代码);
这个函数不能反推出原始数。
hash原始数:
由hash函数产生的位串。
报文提要:
由一个hash函数(同hash)返回的值。
密码:
任何加密数据的方法。
数字签名:
附加到一个报文(一个加密的hash)的位串,它提供鉴别和数据完整性。
当今网络的安全要求
安全性一直是计算机网络关心的一个问题,而且企业网络基础设施的计算机网络安全的重要性也受到越来越多的关注。
拥有一个健全的安全策略(参见“创建一个企业安全策略”部分),应该是所有企业网的要求。
这个策略是对风险进行了分析,列出关键的资产和可能的威胁后制定出来的。
有一些威胁是我们主要关心的问题:
伪装
一个用户假装是另一名用户。
这种情况可导致目标系统上的非法使用和非法特权。
对用户和网络设备使用鉴别和授权机制来识别通信方的身份和可信度,并且允许访问系统。
窃听
用户身份标识可被后面的盗用者获得,如偷窥用户ID/口令,或将保密信息在不安全的媒体上传输时被偷窥。
加密技术可打乱这些数据,从而避免这种威胁。
篡改数据
数据在传输过程中或存储时被修改,许多加密技术可以采用各种手段确保数据的完整性,保证数据不受非法的改动。
拒绝服务
拒绝服务(DoS)使重要系统不能被使用,如使系统充满伪造的业务,或消耗系统内存和处理能力。
许多产品有可以检测DoS攻击的功能,将它们的影响限制在网络的某些区域。
安全策略所要求的基本要素是身份鉴别,完整性和实时核查。
身份鉴别在本文中指鉴别和授权,主要防止假冒及由此产生的非法接入资源和数据,授权并不总是排斥鉴别的,但在本文中,我们假定它排斥鉴别。
完整性防止窃听和数据篡改等威胁,确保数据传输的保密和不可更改。
最后即时核实核查安全策略的实施情况,对检测入侵行为、防止已知DoS攻击非常有用。
在深入介绍企业网和Cisco产品及特性的安全策略之前,下面内容将首先让您对密码及基于某些密码形式来提供身份鉴别和完整性功能的技术有一个基本了解。
安全性的基本原理
本章详细介绍了一些基本组成部分,这是了解比较复杂的安全技术必不可少的。
密码学是所有安全通信的基础,因此,我们首先要了解三种基本的加密方法:
对称加密、不对称加密和单向hash函数。
目前所有鉴别、完整性和保密性技术都是从这三个密码函数派生出来的。
数字签名是不对称加密与单向hash函数算法结合使用提供数据鉴别和完整性的一个实例,下文将对此进行介绍。
密码学
密码学是以代码形式写或破译报文的科学,它是实现鉴别、完整性和保密性等机制的基石。
鉴别提供信息发送者或接收者的身份标识的手段。
完整性则确保数据不被更改,保密性保证只有数据的
发送者和接收者真正懂得数据。
通常,密码机制使用一个算法(一个数学函数和一个密值,即密
钥)。
算法是广为人知的,只有密钥是保密的。
密钥类似于密码锁的密码。
尽管密码锁的概念广为人知,但是,如果不知道密码,你无法轻易打开密码锁。
而且,一个密码的数字越多,猜密码就越费事。
密码钥也是同样的道理;
密钥的位越多,密钥就越不容易受到破坏。
三类密码函数实现了鉴别、数据完整性和数据保密性:
对称加密、不对称加密和hash函数。
对称加密
对称加密通常指密钥加密,主要用来提供数据保密性。
如图1两个用户,Alice和Bob,他们想彼此秘密通信。
Alice和Bob都须同意使用相同的数学算法来加密和解密数据。
同时,他们还要有一个共用钥匙“密钥”,与他们所选的加密/解密算法一起使用。
图1密钥加密
一个非常简单化的密钥算法就是CaesarCipher(恺撒:
古罗马的将军、政治家、历史学家,公元前100-44),如图2所示。
CaesarCipher就是将字母表的每个字母顺着字母表下几个位置上的字母所代替。
算法是将字母向左移或向右移,取决于你是将报文加密还是解密。
图2中的密钥就是移动了三个字母。
图2CaesarCipher
我们很容易知道某人是否接收到了加密的报文并知道这个算法(即将字母向左移还是向右移),因此无理的强行攻击者也非常容易获得。
在强行获取时,只要用密钥的所有密码逐个套这个算法,就能成功破译报文。
一般而言密钥越长,算法越复杂,非法强行破译者就越难成功。
今天使用的一些更常见的密钥是数据加密标准(DES)、3DES(可读作“tripleDES”)和国际数据
加密算法(IDEA)。
这些算法给64位报文块加密。
如果报文大于64位(一般如此,则有必要将较大的报文分成几个64位的报文块,然后将它们链接在一起。
这种链接通常可通过四种方式完成:
电码本(ECB),密码块链接(CBC)、X-位密码返馈方式(CFB-X)或输出返馈(OFB)方式。
密码加密:
大多数用于数据保密,可以在固件中有效进行。
它也可以用于鉴别真实性和完整性,但是数字签名(下文将讨论)方式更有效。
密钥加密的挑战包括:
∙如何经常更换密钥,避免密钥被滥用的风险
∙如何秘密地生成和发送密钥
秘密生成和交换密钥的常用工具是Diffe-Hellmall算法,本章后面将对此进行讨论。
不对称加密
不对称加密通常指共用密钥加密,它用不同但配套的密钥和算法打乱和恢复数据。
这个机制依赖于两个相关实体:
共用密钥和专用密钥。
如果Alice和Bob想通过共用密钥加密来通信,他们都要有一对共用密钥/专用密钥(见图3)。
当彼此秘密通信时,Alice和Bob将使用不同的密钥加密和解密数据。
图3共用密钥加密
共用密钥算法的一些很常用的用途包括:
∙提供数据保密性
∙确保发送者真实性
∙安全地产生一个共享的秘密
为了了解数据保密性和发送者真实性是如何完成的,让我们详细看一看它们的步骤。
首先,Alice和Bob生成各自的共用/专用密钥对之后,他们交换共用密钥。
图4显示了数据保密性是如何通过共用密钥加密来获得的。
如果Alice想向Bob发送保密信息,即她想确保只有Bob可以读这个数据。
她使用Bob的共用密钥加密数据,然后将数据传送给Bob。
收到报文后,Bob使用他的专用密钥将数据解密。
由于只有Bob拥有他的密钥,因此只有Bob可以将Alice送来的数据破译,从而保证了数据的保密性。
图4用共用密钥加密的数据保密性
图5显示共用密钥密码学如何提供发送者身份鉴别功能。
Bob想确定Alice是该报文的真正发送者,而不是冒充Alice的其他人。
因为共用密钥是广泛提供的,它一般很容易获得。
如果Alice用她的专用密码加密了报文,Bob则需用Alice的共用密钥来解密。
鉴别Alice发送消息的程序就容易了,因为只有Alice拥有她的专用密钥,而数据又已经用Alice的专用密钥加密。
图5通过共用密钥加密的发送者鉴别
不对称加密技术的关键部分是专用密钥必须绝对保密。
如果专用秘钥被他人获取,入侵者可以以你的身份发送和接收报文。
用来产生这些共用/专用密钥对的机制非常复杂,但是它们可生成两个非常大的随机号码,一个就是共用密钥,另一个就是专用密钥。
产生这些号码需要大量处理能力,因为这些号码以及它们的产物必须符合严格的算术标准,但是这一过程是确保每对共用/专用密钥的独一性所必不可少的。
共用密钥加密算法由于任何方面的局限性很少用于数据保密性。
但是,它们经常用于通过数字签名和密钥管理而进行的鉴别应用。
一些常见的共用密钥算法是RSA(Rivest,Shamir,Adelman)和EIGamal
安全hash函数(Hash)
安全hash函数是易于在前向方向计算的函数,但是反向却无法进行计算。
通过这个数字函数(hash函数)的输入报文产生一串输出位。
输出位被称为一个hash(或一个报文提要)(见图6)。
这一过程不能逆向,换言之,输入报文不可能从输出报文产生。
它的情况好比咖啡磨的过程。
如果报文是咖啡豆,输出的hash就是磨碎的咖啡,你不可能用磨碎的咖啡再产生原始的咖啡豆
图6hash函数
hash函数可使任意长度的报文以固定长度输出。
常见的hash函数包括:
∙MessageDigest4(MD4)的算法
∙MessageDigest5(MD5)算法
∙安全hash算法(SHA)
加密技术的应用
加密技术最常见的一些应用是涉及密钥管理和鉴别的应用。
下文对此逐一进行了介绍。
Diffie-Hellman算法
Diffie-Hellman算法为双方,Alice和Bob,提供建立只有他们知道的共用密钥的方法(即使他们在
不安全的信道上通信)。
这个密钥然后使用他们喜欢的密钥加密算法来加密数据。
图7是Diffie-Hillman算法与DES结合使用产生密钥,并用这个密钥加密数据,提供保密性的一个例子。
两个数
字,P(素数)和G(比P小且有一些限制)是共享的。
Alice和Bob分别建立一个大的随机数来保持秘密,XA和XB。
而Alice和Bob都进行计算,并相互交换结果。
最后的交换产生一个共有的值Z。
密钥Z被用作DES密钥,加密/解密数据。
只知道P或G不可能算出或不可能轻易计算出共享的密值,主要因为很难做一个很大的素数因式分解。
图7DESDiffie-Hellman算法
应该注意的是由于判断密钥是由谁建立的方法还没有产生,因此交换过程中,两人之间可能存在一个第三方攻击。
Diffie-Hellman提供保密性,但是不提供鉴别。
鉴别是通过使用Diffie-Hellman报文
交换过程中的数字签名而实现的。
数字签名
数字签名是一个附加在文件后面的加密的报文提要(Digest)。
它可用来证明发送者的身份和文件的完整性。
数字签名可通过结合hash函数和共用密钥密码学而产生。
图8是数字签名如何产生的例子。
Alice和Bob首先需在共用密钥加密算法(我们说数字签名标准[DSS])上达成一致,创建共用/专用密钥对,并交换他们各自的共用密钥。
他们还需在他们提供数字签名并核实签字所使用的hash函数上达成一致。
让我们假设是MD5。
Alice将原始文件当作MD5算法的输入项,产生128位的输出。
输出被称为该文件的报文提要。
Alice用她的专用密钥加密报文提要。
加密的报文提要就是数字签
名,它附加在原始文件上。
图8创建一个数字签名
文件与数字签名的结合体就是Alice传送给Bob的报文。
图9显示了数字签名是如何核实的。
在接收端,Bob将收到的报文分成原始文件和数字签名。
由于数字签名是用Alice的专用密钥加密的。
因此,Bob可以用Alice的共用密钥将其解密。
Bob现在有一个原始的hash。
然后Bob将文件输入到Alice所用的同一个hash函数中。
如果Bob的报文提要计算结果与Alice解密的报文提要相同,就可证明文件的完整性和发送者的身份。
图9核实数字签名
数字证书
数字证书是一个以数字形式签署的证书,今天一般用于证明一个共用密钥实体的有效性。
图10是采用X.509标准格式的一个数字证书实例。
一般格式的X.509证书包括以下要素:
∙版本号
∙证书序号
∙算法信息发布者
∙发证者
∙有效日期
∙证书对象的共用密钥算法信息
∙发证当局签名
图10X.509证书例子
发证当局,即CA(担保机构或保证机构)是指你完全信任,给你合法信息的委托第三方机构。
图11显示了Bob在发送数据之前想通过CA核实Alice的共用密钥。
Alice有一个存放在CA的有效证书。
Bob向CA申请Alice的数字签名。
CA用它的专用密钥签署证书。
Bob有CA的共用密钥,因此可以核定CA签署的证书是有效的。
因为Alice的证书包含她的共用密钥,Bob现在有了经过公证的
Alice共用密钥。
图11获得数字证书
注意这个方案要求CA的共用密钥以秘密的方式传给用户。
今天部署大规模共用密钥基础设施[PKI]仍然是一大挑战,因为仍有一些问题尚待解决,包括如何有效撤消、修改证书,如何解决CA等级问题,不同的用户信任不同的CA。
但是,这些问题正逐渐得到解决。
现在让我们看一下,使用加密技术进行安全通信的例子,如图12所示。
图12,使用加密技术的安全通信
路由器和防火墙各有一个共用/专用密钥对。
现在假设CA安全地为防火墙和路由器登记了X.509证书,而且防火墙和路由器均安全地收到CA共用密钥的复制品。
若路由器要向防火墙发送信息,但希望数据发送经过鉴别而且保密时,需采取以下步骤:
1.路由器向CA发出取得火墙共用密钥的申请。
2.CA向防火墙发送用其专用密钥加密的证书。
3.路由器用CA共用密钥对授权书进行解密,取得防火墙共用密钥。
4.防火墙向CA发出取得路由器共用密钥的申请。
5.CA向路由器发送用其专用密钥加密的授权书。
6.防火墙用CA共用密钥对授权书进行解密,取得路由器共用密钥。
7.路由器和防火墙进行Diffie-Hellman交换,并使用共用密钥加密技术对交换进行鉴别。
8.路由器和防火墙使用从Diffie-Hellman交换取得的密钥(secretkey)互相交换保密数据。
安全技术
目前解决方案安全保密技术五花八门,数不胜数,都为安全保密策略的主要组成部分提供解决方案:
身份鉴别、完整性及实时核查。
我们对身份的定义正在通过识别用户及终端设备(客户机、服务器、交换机、器由器、防火墙等〕及它的站址建立鉴别机制,然后再进行用户及终端设备的授权。
完整性包含网络基础设施的安全性、周边Perimeter安全性及数据安全性等领域。
实时核查可验证已有的安全策略的正确执行并监控异常情况及入侵。
下一章描述了网络常用来提供身份和完整性的安全技术。
Cisco的产品目前支持或正在努力支持这些技术。
旨在使读者了解这些技术适用的范围而不是阐述这些技术的细枝末节。
所有这些技术已经或正由IETF制定的标准,因此欲了解技术详情或最新发展,请访问IETF网址:
http:
//www.ietf.org。
鉴别技术
本节阐述主要用于为主机、终端用户或二者同时建立身份的技术。
提供身份的第一步是确定简单的口令,但为提供一个更为安全的环境,这些口令应常更改。
目前广泛使用一次性口令方案,包括S/Key协议及令牌口令鉴别方案。
点到点协议(ppp)鉴别机制用于许多拨入环境中,它包括口令鉴别协议(PAP),询问握手协议(CHAP)及可扩展鉴别协议(EAP)。
EAP还在继续开发之中,它提供这样一种功能,即使用现有的及新兴的鉴别技术对PPP链路进行更灵活的鉴别。
TACACS+和RADIUS(RemoteAccessDial-inUserService远程访问拨入用户服务)是实现可扩展身份实施的协议。
Kerberos协议用于在有限的区域内提供单一登录功能。
最后,还包括分布计算环境(DCE)和FORTEZZA鉴别机制,尽管它们的使用并不广泛。
S/Key
RFC1760中定义了S/Key一次性口令体系,它是一种基于MD4及MD5的一次性口令生成方案。
该体
系设计旨在防止重复攻击(当有人在网络上窃听,企图得到一合法用户的登录ID或口令后,用它接入网络)。
上述操作是基于客户机/服务器的,客户机一般是PC机而服务器为鉴别服务器。
起初客户机和服务器需配置相同的通行用语和重复次数。
客户机发送一个初始化数据包启动S/Key交换程序,然后服务器发出一序列数和种子密钥作为反应。
然后客户机进行以下三个步骤计算一次性口令:
预备、生成和输出函数。
预备步骤中客户机输入秘密通行用语,该用语可长可短,但最好超过8个字符。
通行用语与发自服务器的明文种子密钥连接。
这一非秘密种子允许客户在多种设备中使用同一种秘密通行用语(使用不同的种子),并通过改变种子来安全地重新开始新一轮秘密口令。
接下来的生成步骤多次使用保密hash函数,形成64位的最终输出。
每次使用时,使用保密hash函数的次数减去1,以确保生成一列独特的口令。
客户机和服务器必须使用同一保密hash函数才能互操作。
输出函数取64位的一次性口令并以可读方式显示出来。
它可以多种方式输入口令:
∙通过将该口令插入输入流的计算器程序
∙使口令可用于系统剪贴
∙人工输入口令
若要进行人工输入,一次性口令便要转换成一列六个英文短词(1~4个字母)才能被接受。
每个短词选字2048个词条的词典;
每个单词为11位,所有一次性口令可被编码。
可互操作性要求所有S/Key系统主机和计算器使用同一代码词典。
客户机完成一次性口令计算后,需要经过核实。
因此客户机将一次性口令传递给服务器,口令在其中经过核实。
服务器中包含一个文件(在UNIX参考工具上它为/etc./skeykeys),该文件含有每个用户上次成功登录的一次性口令,或者它通过Keyinit命令(这个命令取决于实施方案)预置第一个一次性口令。
为核实鉴别,它让传输的一次性口令通过保密hash函数一次。
如果结果与原先存储的一次性口令匹配,则鉴别成功且被接受为一次性口令被存储起来供将来使用。
因为客户机hash函数应用数目每次减少1个数,为避免不能再次登录,有些用户必须重新启动系统。
这一点是通过使用
Keyinit命令来完成的,该命令允许改变秘密通行用语、重复数及种子。
图13显示了一个用户想远程登录的UNIX设备碰巧也是一个S/Key服务器时S/Key一次性口令系统如何操作。
图13S/Key运行情况示意图
欲获取一次性口令机制的详情,请访问LETF的一次性口令(OTP)鉴别工作组,网址:
//www.ietf.org/html.charters/otp-charter.html
令牌口令鉴别方案
令牌鉴别系统基于两种选择方案(询问回答和时间同步鉴别)之一。
用户使用询问回答方法拨入鉴别服务器,然后服务器给出个人身份号码(PIN)或用户ID提示。
用户向服务器提供PIN或ID,服务器发出一个询问随机数,显示在用户屏幕上。
用户将询问数输入令牌(类似信用卡的设备),令牌使用用户的加密密钥为询问加密并显示回答。
用户输入这个回答并将它发送给服务器。
用户得到令牌答应的同时,鉴别服务器根据它的用户密钥信息库计算正确的响应。
服务器接到用户的回答后将它与自己计算结果进行比较。
二者匹配,用户便可以接入网络,反之则不能接入。
时间同步鉴别方案是在令牌和服务器内执行的专用计算方法,它产生相同的数字,这个数字隔一段时间变更一次。
用户拨入鉴别服务器后,服务器给出接入码提示。
然后用户在令牌卡上输入PIN,与此同时令牌上显示数字。
这代表一次性口令的数字,被发给服务器。
服务器将输入的数字同它生成的hash进行比较;
若二者相符则允许用户接入。
PPP鉴别
PPP是广域网中广泛使用的一种数据封装方法,主要包括以下三部分:
∙一个在串行链路上封装数据报的方法。
∙一个用于建立、配置、测试数据链路连接的链路控制协议(LCP)
∙用于建立和配置不同的网络层协议的一系列网络控制协议(NCP)
为实现点到点链路上的通信,PPP链路的每个终端都必须在链路建立阶段先发送数据包来配置数据链路。
链路建成后PPP在开始进行网络层协议阶段之前提供一种可选的鉴别阶段。
缺省使鉴别不是强制性的。
若想进行链路鉴别,实施方案在链路建立阶段详列了鉴别协议配置选项。
这些鉴别协议主要供通过交换电路或拨号线路与PPP网络服务器连接的主机和路由器使用,但亦可用于专用链路。
服务器选择网络层协商方案时可使用相连主机或路由器的身份证明。
PAP和CHAP是目前用于鉴别PPP连接的两种方法。
EAP是用于PPP鉴别的通用协议,它支持多种鉴别机制。
该协议设计较为完善,可支持与PPP鉴别一起使用的新鉴别机制。
鉴别在LCP协商之后、
IP控制协议(IPCP)协商之前进行,其间对IP地址进行交换和协商。
这一鉴别方案是自动完成的,用户在PPP连接时不需向计算机输入任何数字。
PAP或CHAD鉴别通常代替对登录和口令作出反应的
ChatScript。
因实际口令不跨越PPP链接,所以CHAP更为安全。
然而PPP的使用更为广泛。
下面简
要地概述一下这三种协议。
欲了解技术详情和当今发展动态,请参阅以下网址上的IETEPPP扩展(pppxet)_工作组:
//www.ietf.org/html.charters/pppext-charter.html。
PPPPAP
图14显示了PAP鉴别的工作情况。
图14PPPPAP鉴别
分支路由器(对等方peer)试图进行到网络接入服务器(鉴别者)的鉴别。
链路建立阶段结束后,路由器不断向NAS发送ID/口令对,直到鉴别得到确认或连接被终接。
PPP不是一种强有力的鉴别方法。
PPP只鉴别呼叫方,口令在电路上以明码方式发送。
其中不能防止重放或反复进行“尝试-错误”操作。
对等控制尝试的频率和定时