微型机与应用
MICROCOMPUTER & ITS APPLICATIONS
1999年 第18卷 第2期 Vol.18 No.2 1999



Internet的安全机制
李建萍　郭学理　吕宏辉
　　摘　要：从访问控制和通信安全二方面论述了Internet的安全机制，介绍了防火墙的2种实现方法和3种体系结构，并分析了各种体系结构的优缺点。
　　关键词：Internet网　安全机制　访问控制　通信安全　屏蔽路由器　代理服务器　IPSP　ESP
　　随着网上各种各样网民的出现，入侵主机、网络的事件也越来越多。近年来，Internet上的安全问题日益引起人们的重视，提供一个安全的网络环境也变得日益重要。一般说来，可以从以下二方面实现Internet安全服务：
　　(1)访问控制。用来保护计算机和网络资源，使之不能被未授权的人访问。
　　(2)通信安全。用来提供认证服务、数据保密性、完整性及通信双方的防抵赖服务等。
1　访问控制安全服务
　　访问控制是保护网络的第一道防线，目前一般由防火墙(firewall)来实现。
1.1　防火墙
　　一个网络与Internet连接后，内部用户可以方便地访问Internet、与外部用户交流；但外部用户也可以访问内部网络，与内部用户交流，这就存在着许多不可预知的危险。比如，对一个银行，外部用户能读取帐户信息，甚至修改它。这时，仅靠最初的主机安全是远远不够的。将1个中间系统插入到网络与Internet之间，控制它们之间的访问和交流，保护内部网络不受到来自Internet的威胁与攻击，并提供安全和检查机制。这种中间系统就称之为防火墙。
　　构筑防火墙一般用以下2种方法实现：
　　(1)屏蔽路由器(Screening Router);
　　(2)代理服务器(Proxy Server)。
1.1.1　屏蔽路由器
　　屏蔽路由器一般是1个多口IP路由器，用于在内部的和外部的主机之间发送数据包。它不但对数据包进行路由发送，还依据一定的安全规则检查数据包，决定是否应该发送。它所依据的规则由站点的安全策略决定，这些规则可以根据IP包中信息：IP源地址、IP目的地址、协议、TCP或UDP源端口、目标端口、ICMP消息类型等进行设置，也可以根据路由器知道的信息如数据包到达端口、出去端口进行设置。这些规则由屏蔽路由器强制设置，也称它为包过滤规则。
1.1.2　代理服务器
　　代理服务器是运行在防火墙主机上的专门应用程序或服务器程序。这些程序接受用户对Internet服务的请求，并按照相应的安全策略将这些请求转发到实际的服务。代理服务器为一个特定的服务提供替代连接，充当服务的网关，因此又称它为应用级网关。
1.1.3　二者的比较
　　屏蔽路由器设置简单，1个路由器可保证整个网络的安全，价格也较低。但包过滤规则配置较难，一些协议如UNIX的r命令不很适合用包过滤来保护安全。另外，包过滤规则缺少用户级认证，用户无法使用诸如限制什么用户、什么应用程序等规则，它只针对主机和端口。
　　代理服务器提供了用户级认证、登录及记帐。但对每1个应用程序(服务)都需设1个代理，当出现新服务时，必须编写一新的代理程序方可共享此服务，这大大地限制了新服务的应用。近来，出现了1种all-in-one代理构造工具包Socks，用于设计将现存的C/S应用程序轻易地转化为同样的应用程序代理版本，而许多标准的C/S程序，本身就配有代理能力，或支持像Socks一样的一般代理系统，这无疑更增强了代理服务器的可用性。
　　然而，构筑防火墙的“正确解决方案”很少采用单一的技术，通常是将多种解决不同问题的技术进行组合，使防火墙的性能更强。
1.1.4　防火墙体系结构
　　实际构筑防火墙，一般是将多个不同的部件放在一起，每个部件有各自解决问题的重点。下面是几种防火墙体系结构：
　　(1)双重宿主主机体系结构
　　如图1所示的体系结构，提供来自与多个网络相连的主机的服务(但是路由关闭)，它围绕双重宿主主计算机构筑。该计算机至少有2个网络接口，位于因特网与内部网之间，并被连接到因特网和内部网。2个网络都可以与双重宿主主机通信，但相互之间不行，它们之间的IP通信被完全禁止。


图1　双重宿主主机体系结构
　　双重宿主主机仅能通过代理或用户直接登录到双重宿主主机来提供服务。它能提供级别非常高的控制，并保证内部网上没有外部的IP包。
　　但这种体系结构中用户访问因特网的速度会较慢，也会因为双重宿主主机的被侵袭而失效。
　　(2)被屏蔽主机体系结构


图2　被屏蔽主机体系结构
　　如图2的体系结构，使用1个单独的路由器提供来自仅仅与内部网络相连的主机的服务。屏蔽路由器位于因特网与内部网之间，提供数据包过滤功能。堡垒主机是1个高度安全的计算机系统，通常因为它暴露于因特网之下，作为联结内部网络用户的桥梁，易受到侵袭损害。这里它位于内部网上，数据包过滤规则设置它为因特网上唯一能连接到内部网络上的主机系统。它也可以开放一些连接(由站点安全策略决定)到外部世界。
　　在屏蔽路由器中，数据包过滤配置可以按下列之一执行：
　　①允许其他内部主机，为了某些服务而开放到因特网上的主机连接(允许那些经由数据包过滤的服务)。
　　②不允许来自内部主机的所有连接(强迫这些主机经由堡垒主机使用代理服务)。
　　这种体系结构通过数据包过滤来提供安全，而保卫路由器比保卫主机较易实现，因为它提供了非常有限的服务组，因此这种体系结构提供了比双重宿主主机体系结构更好的安全性和可用性。弊端是，若是侵袭者设法入侵堡垒主机，则在堡垒主机与其他内部主机之间无任何保护网络安全的东西存在；路由器同样可能出现单点失效，若被损害，则整个网络对侵袭者开放。
　　(3)被屏蔽子网体系结构
　　考虑到堡垒主机是内部网上最易被侵袭的机器(因为它可被因特网上用户访问)，我们添加额外的安全层到被屏蔽主机体系结构中，将堡垒主机放在额外的安全层，构成了这种体系结构。这种在被保护的网络和外部网之间增加的网络，为系统提供了安全的附加层，称之为周边网。
　　如图3，这种体系结构有2个屏蔽路由器，每1个都连接到周边网。1个位于周边网与内部网之间，称为内部路由器，另1个位于周边网与外部网之间，称之为外部路由器。堡垒主机位于周边网上。侵袭者若想侵袭内部网络，必须通过2个路由器，即使他侵入了堡垒主机，仍无法进入内部网。因此这种结构没有损害内部网络的单一易受侵袭点。


图3　被屏蔽子网体系结构
　　其特点是：
　　①周边网相对来说，易被入侵，因此周边网上无内部通信，只有一些不重要的IP信息。若入侵堡垒主机，至多侵入周边网，内部网相对安全。
　　②外部路由器主要用来阻止从因特网上来的伪造源地址的包，这一点内部路由器无法完成，因为它无法分辨此包是因特网上的还是周边网上的。外部路由器的包过滤规则在周边网上保护堡垒主机与内部路由器，周边网上机器还通过自身主机安全来保证自己，这样的安全冗余是有必要的。对于内部机器的包过滤规则与内部路由器相同，即一些包若能从内部路由器通过，也应该能从外部路由器通过。
　　③内部路由器为防火墙执行大部分的数据包过滤工作，允许从内部网到因特网的有选择的出站服务。另一种服务是在堡垒主机与内部网之间的服务，这种服务不同于上一种，它的安全是由代理服务提供的。由于堡垒主机较易被入侵，所以应将这种服务限制在实际所需的程度。
　　上述为一些基本的体系结构，还有其他的体系结构，每种都有各自的益处和弊端，这里不一一叙述了。
　　防火墙从内部网的整体上保证了安全，这一点靠各主机的安全很难做到的。但是，防火墙并不能作为安全管理的代替物，它并不能防止内部攻击，也不能防病毒，不恰当地配置同样可能置网络于不安全之中。要构成一个安全的网络，必须制定一个合理的安全策略，这个策略包括许多方面，也包括下面介绍的通信安全服务。
2　通信安全服务
　　构筑一个安全的网络，不仅仅要构筑防火墙，而且涉及到加密和认证。比如在网上进行电子商务，就要保证数据在传输过程中的安全，防止被黑客截取获悉甚至修改再发出，这会给商家带来很大的损失。而对数据加密和认证就可防止这类攻击。
　　通信安全服务提供对数据加密、在通信对方认证、双方无法抵赖、数据在传输过程中的完整性等服务。这种安全服务可以在应用层、传输层和网络层实现。在不同的层实现安全，往往与客户实现安全的重点有关，也与实现网络的传统方法有关。
2.1　网络层安全服务
　　在TCP/IP协议中，网络层对应的是IP层。过去10年来，人们已经提出了很多IP层安全协议，如NSA(美国国家安全机构)的SP3、ISO为CLIP(无连接网络协议)定义的标准NLSP等。这些协议的本质都是IP封包技术，即把原IP包加密后封包，再加上新的IP头传送出去，在对等系统中，去掉IP头，将IP包解密，再送至目的地址。　　
　　为了使IP层安全服务标准化，IETF委托IPSEC工作组指定了IPSP(IP层安全协议)标准和IKMP(因特网密钥管理协议)，用来提供IP层安全。目前许多产品都支持IPSP。
　　IPSP实际上是一系列为IP通信认证和加密的协议，一般基于2种加密安全机制：AH(Authentication Header)和ESP(Encapsulating Security Payload)。
　　(1)ESP对IP包净荷(payload)加密、封包。IPSP运行的系统有2种模式：传输模式Transport mode(在端到端系统的主机中)，通道模式Tunnel mode(在1个网络互连设备中，如路由器、防火墙)。对于传输模式，ESP只将IP包的高层协议数据加密后封装入ESP中；而对通道模式，则将整个IP包加密后封装入ESP中。封装后的IP包如图4。
　　图4中，ESP authentication trailer是一个可选项，用于认证目的。 

图4  封装后的IP包
　　对IP包的加密一般采用DES或Triple DES算法，这种算法取决于对密钥的保密，其算法是公开的。由于已有公司用硬件实现它，因此速度还较快。
　　(2)AH是一个信息认证代码。在发送IP包前计算好，发者用一个密钥计算，收者用同一个或另一个密钥检验。若用的是常规密钥密码体制，则收、发者的密钥相同；而对公开密钥密码体制，发者用自己的私钥计算，收者用发者的公钥检验。这里的加密一般采用MD5或SHA-1哈希算法。
　　(3)ISAKMP用于管理、安全分发密钥。由于ESP和AH中都用了加密算法，密钥管理的问题就显得越来越重要了。IPSP提出了这个协议专门用于管理密钥，它是基于Diffie-Hellman密钥管理算法。现在网络安全算法有很多，有些效果也不错，但密钥的管理一直是安全里的弱点。如何对密钥进行有效的管理，一直是人们关心的问题。
　　IP层安全服务最大的优点是操作的透明性，在IP层加密，上层用户根本感觉不到，应用程序和其他通信层都无须改变。但IP层安全服务是基于主机的，即若A主机建立了到B主机的IP安全通道，则所有从A～B的数据包都被加密，用户无法选择。而所有的数据包都加密势必影响通信的速度，这也是IP层安全服务的最大缺点。　　
2.2　传输层安全服务
　　在传输层之间通信时都要用到IPC接口，2个常用的接口是BSD的套接口和UNIX系统5中的TLI。要提供传输层安全服务，人们首先想到的是通过增强IPC接口，提供数据认证、对传输的数据流加密的功能。事实上，已提出的SSL和微软的PCT协议都是这样实现的。
　　1995年提出的SSL版本3包括2个协议：
　　(1)SSL记录协议。负责对信息分片、压缩、认证和加密。认证可采用MD5和SHA算法，加密则支持RC4和DES算法。认证和加密所用的密钥则由SSL握手协议协商分配。
　　(2)SSL握手协议。负责协议版本号的交换、认证和密钥的分配。它支持基于Diffie-Hellman的密钥交换算法。
　　传输层安全服务仅仅保护单一网络链路，是面向过程的，这一点比IP层安全服务灵活，但需要改变应用程序和IPC接口。
2.3　应用层安全服务
　　应用层安全服务是最灵活的，它面向文档一级，用户可以针对文档的不同安全要求选择安全服务。比如，对于email可以只加密正文，地址仍是原样。应用层安全服务的协议有用于email安全的PGP、用于WEB安全的S-HTTP等。但是，在应用层提供安全最大的问题是对每个应用程序都要修改。所以尽管应用层安全服务很灵活，但应用的并不多。一般需要单项的安全应用时，用它比较有效。
3　结束语
　　随着人们对因特网安全问题的研究，出现了各种各样的安全产品，仅防火墙的产品就多不胜数。但是，要构筑一个安全的网络，仅靠1个、2个产品不行，关键是要有合理的安全策略，网络管理员要有安全意识，这样才可能有效地抵御外来的侵袭。 
作者单位：李建萍　郭学理　武汉大学网络中心(430072)
　　　　　吕宏辉　武汉工业大学计算机系(430072)
参考文献
1　Oppliger R.Firewalls and Beyond.Comminication of the ACM,1997;(5)
2　Thayer R.Bulletproof of IP.Data Comm,1997;(11)
3　Kerr R.Barbarians at the Firewall.Byte Magazine,S 1996;(9)
4　Brent D，Chapman E,Zwicky D著.舒若平译.构筑因特网防火墙.北京：电子工业出版社
(收稿日期：1998-07-19)
