1569891728800-1-安全网络设计指南安全性目录简介术语安全性基本原理安全技术鉴别技术完整性和保密性技术虚拟专用拨号网络技术目录业务和命名技术创建企业安全策略内部园区网接入目前Cisco的企业网安全性解决方案Cisco防火墙鉴别当前企业安全实施方案总结附录A:Cisco安全性信息来源1569891728800-2-简介企业网络安全一词在网络产业中越来越盛行。网络安全是一个复杂的课题,一部分原因是今天世界上有许多安全技术,许多都解决相同的安全问题,而且渐向更全面的安全战略演进。本文对安全技术进行综合的介绍;读者将对网络的安全性以及Cisco产品和特性如何被用来实现安全的企业网有一个前瞻的认识。这篇论文应该与Cisco的白皮书及详细介绍下文中提到的产品和特性的资料结合使用。关于Cisco产品和特性的整个章节可以查询相关Cisco文件资料。第一个章节定义了基本词汇,讨论了今天的网络需要安全性的原因;然后详细介绍了密码学的基本原理,并讨论了各种安全技术。这些安全技术今天已广泛地应用于业界,目前,Cisco系统公司也正在销售或开发它们。大多数技术都是从IETF(InternetEngineeringTaskForce)产生的,适合IP网络协议。一般地,当一个解决方案想在其它没有基于标准的安全解决方案的联网协议上提供安全业务时,它必须在IP中传输该协议。技术介绍完后,文章接着具体讨论了如向建立企业安全策略、Cisco提供的产品以及Cisco的产品和特性如何适应安全的企业网络的设计。最后一部分,给出了一些网络安全策略实例,以及相应的Cisco产品系列上的配置。术语在了解安全的基本原理之前,我们必须知道安全领域广泛使用的术语。以下是一些基本的专用词语以及它们的定义。鉴别身份:确认从终端用户或设备,如主机、服务器、交换机、路由器等处送来的信息的出处。数据完整性:确保数据在传输过程中未被改动。数据保密性:确保只有获准能够阅读数据的实体以有效的形式阅读数据。加密:一种挠乱信息,使之不能被除预期的接收者以外的任何人阅读,而预期接收者必须解密以后才能阅读。解密:一种恢复加密信息,使之可读的方法。密钥:一种可以用来加密、解密和标记信息的数字代码。共用密钥:一种用来加密/解密信息,并核对数字签名的数字代码,这种密码可被广泛使用,它还有相应的专用密钥。专用密钥:一种用来加密/解密信息并提供数字签名的数字代码;这种密钥由其所有者秘密保存,它有对应的共用密钥。秘密钥:一种只有两方共享的数字代码,它用来加密、解密数据。密钥指纹:一种共用密钥独有的可读代码,它可用来核查共用密码的所有者。hash函数:一种数学计算法,它可产生一串位(数字代码);这个函数不能反推出原始数。hash原始数:由hash函数产生的位串。报文提要:由一个hash函数(同hash)返回的值。密码:任何加密数据的方法。1569891728800-3-数字签名:附加到一个报文(一个加密的hash)的位串,它提供鉴别和数据完整性。当今网络的安全要求安全性一直是计算机网络关心的一个问题,而且企业网络基础设施的计算机网络安全的重要性也受到越来越多的关注。拥有一个健全的安全策略(参见“创建一个企业安全策略”部分),应该是所有企业网的要求。这个策略是对风险进行了分析,列出关键的资产和可能的威胁后制定出来的。有一些威胁是我们主要关心的问题:伪装一个用户假装是另一名用户。这种情况可导致目标系统上的非法使用和非法特权。对用户和网络设备使用鉴别和授权机制来识别通信方的身份和可信度,并且允许访问系统。窃听用户身份标识可被后面的盗用者获得,如偷窥用户ID/口令,或将保密信息在不安全的媒体上传输时被偷窥。加密技术可打乱这些数据,从而避免这种威胁。篡改数据数据在传输过程中或存储时被修改,许多加密技术可以采用各种手段确保数据的完整性,保证数据不受非法的改动。拒绝服务拒绝服务(DoS)使重要系统不能被使用,如使系统充满伪造的业务,或消耗系统内存和处理能力。许多产品有可以检测DoS攻击的功能,将它们的影响限制在网络的某些区域。安全策略所要求的基本要素是身份鉴别,完整性和实时核查。身份鉴别在本文中指鉴别和授权,主要防止假冒及由此产生的非法接入资源和数据,授权并不总是排斥鉴别的,但在本文中,我们假定它排斥鉴别。完整性防止窃听和数据篡改等威胁,确保数据传输的保密和不可更改。最后即时核实核查安全策略的实施情况,对检测入侵行为、防止已知DoS攻击非常有用。在深入介绍企业网和Cisco产品及特性的安全策略之前,下面内容将首先让您对密码及基于某些密码形式来提供身份鉴别和完整性功能的技术有一个基本了解。安全性的基本原理本章详细介绍了一些基本组成部分,这是了解比较复杂的安全技术必不可少的。密码学是所有安全通信的基础,因此,我们首先要了解三种基本的加密方法:对称加密、不对称加密和单向hash函数。目前所有鉴别、完整性和保密性技术都是从这三个密码函数派生出来的。数字签名是不对称加密与单向hash函数算法结合使用提供数据鉴别和完整性的一个实例,下文将对此进行介绍。密码学密码学是以代码形式写或破译报文的科学,它是实现鉴别、完整性和保密性等机制的基石。鉴别提供信息发送者或接收者的身份标识的手段。完整性则确保数据不被更改,保密性保证只有数据1569891728800-4-的发送者和接收者真正懂得数据。通常,密码机制使用一个算法(一个数学函数和一个密值,即密钥)。算法是广为人知的,只有密钥是保密的。密钥类似于密码锁的密码。尽管密码锁的概念广为人知,但是,如果不知道密码,你无法轻易打开密码锁。而且,一个密码的数字越多,猜密码就越费事。密码钥也是同样的道理;密钥的位越多,密钥就越不容易受到破坏。三类密码函数实现了鉴别、数据完整性和数据保密性:对称加密、不对称加密和hash函数。对称加密对称加密通常指密钥加密,主要用来提供数据保密性。如图1两个用户,Alice和Bob,他们想彼此秘密通信。Alice和Bob都须同意使用相同的数学算法来加密和解密数据。同时,他们还要有一个共用钥匙“密钥”,与他们所选的加密/解密算法一起使用。图1密钥加密一个非常简单化的密钥算法就是CaesarCipher(恺撒:古罗马的将军、政治家、历史学家,公元前100-44),如图2所示。CaesarCipher就是将字母表的每个字母顺着字母表下几个位置上的字母所代替。算法是将字母向左移或向右移,取决于你是将报文加密还是解密。图2中的密钥就是移动了三个字母。图2CaesarCipher我们很容易知道某人是否接收到了加密的报文并知道这个算法(即将字母向左移还是向右移),因此无理的强行攻击者也非常容易获得。在强行获取时,只要用密钥的所有密码逐个套这个算法,就能成功破译报文。一般而言密钥越长,算法越复杂,非法强行破译者就越难成功。今天使用的一些更常见的密钥是数据加密标准(DES)、3DES(可读作“tripleDES”)和国际数据加密算法(IDEA)。这些算法给64位报文块加密。如果报文大于64位(一般如此,则有必要将较大的1569891728800-5-报文分成几个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用共用密钥加密的数据保密性1569891728800-6-图5显示共用密钥密码学如何提供发送者身份鉴别功能。Bob想确定Alice是该报文的真正发送者,而不是冒充Alice的其他人。因为共用密钥是广泛提供的,它一般很容易获得。如果Alice用她的专用密码加密了报文,Bob则需用Alice的共用密钥来解密。鉴别Alice发送消息的程序就容易了,因为只有Alice拥有她的专用密钥,而数据又已经用Alice的专用密钥加密。图5通过共用密钥加密的发送者鉴别不对称加密技术的关键部分是专用密钥必须绝对保密。如果专用秘钥被他人获取,入侵者可以以你的身份发送和接收报文。用来产生这些共用/专用密钥对的机制非常复杂,但是它们可生成两个非常大的随机号码,一个就是共用密钥,另一个就是专用密钥。产生这些号码需要大量处理能力,因为这些号码以及它们的产物必须符合严格的算术标准,但是这一过程是确保每对共用/专用密钥的独一性所必不可少的。共用密钥加密算法由于任何方面的局限性很少用于数据保密性。但是,它们经常用于通过数字签名和密钥管理而进行的鉴别应用。一些常见的共用密钥算法是RSA(Rivest,Shamir,Adelman)和EIGamal安全hash函数(Hash)安全hash函数是易于在前向方向计算的函数,但是反向却无法进行计算。通过这个数字函数(hash函数)的输入报文产生一串输出位。输出位被称为一个hash(或一个报文提要)(见图6)。这一过程不能逆向,换言之,输入报文不可能从输出报文产生。它的情况好比咖啡磨的过程。如果报文是咖啡豆,输出的hash就是磨碎的咖啡,你不可能用磨碎的咖啡再产生原始的咖啡豆图6hash函数1569891728800-7-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不可能算出或不可能轻易计算出共享的密值,主要因为很难做一个很大的素数因式分解。1569891728800-8-图7DESDiffie-Hellman算法应该注意的是由于判断密钥是由谁建立的方法还没有产生,因此交换过程中,两人之间可能存在一个第三方攻击。Diffie-Hellman提供保密性,但是不提供鉴别。鉴别是通过使用Diffie-Hellman报文交换过程中的数字签名而实现的。数字签名1569891728800-9-数字签名是一个附加在文件后面