现在,随着电子商务等因特网应用越来越多,信息交换变得越来越普及,而保证因特网安全显得越来越重要。
一、因特网上的威胁
因特网上的威胁包括人为的破坏和自然破坏两方面的因素,其中人为的破坏更为严重,因为自然破坏可以通过数据冗余设置等来降低损失,但人为的破坏却防不胜防。
人为破坏主要指黑客的攻击。此外,计算机病毒也会对网络造成很大的破坏。
1999年,美国计算机安全研究所和联邦调查局对计算机犯罪和安全的检测显示,82%的损失来自公司内部。1997~1999年,共有293 890 505美元的损失是由于诸如专有信息窃取、数据和网络破坏、滥用内部网络接入、非授权内部接入、电信欺骗等引起的。人是安全策略的中心,防火墙只是一种工具,安全策略实施的好坏取决于人员的素质,对职工进行定期培训无疑是一种好的办法。
二、因特网本身存在的安全问题
因特网的基石是TCP/IP协议,该协议在实现上力求高效,因而为尽量降低代码量、提高TCP/IP的运行效率而没有考虑安全因素,所以TCP/IP本身在设计上就是不安全的。现在的TCP/IP协议中的主要安全缺陷如下。
1.很容易被窃听和欺骗
因特网是一种网间互联技术,虽然其传输是点对点的,但一般网上任何一台机器都可以收到因特网上主机发布的消息。
因特网上的信息容易被窃听和劫获的另一个原因是,当一台主机与另一主机通信时,它们之间互相发送的数据包要经过重重转发。这种工作原理虽然节约了资源、简化了传输过程,但增加了泄密的危险。
另外,因特网上大多数的数据流是没有加密的,所以电子邮件、文件等在传输时很容易被监听和窃取。
2.脆弱的TCP/IP服务
基于TCP/IP协议的服务很多,如WWW,FTP,电子邮件,TFTP,NSF和Finger等。这些服务都存在不同程度的安全缺陷。用户采用防火墙保护时,就需要考虑该提供哪些服务、该禁止哪些服务。
3.配置的复杂性
访问控制的配置十分复杂,很容易被错误配置而给黑客留下可乘之机,例如许多站点在防火墙配置上无意识地扩大了访问权限。现在大多数防火墙是基于Unix环境的,但使用Unix需要丰富的计算机知识,因此好的安全效果取决于普通职员的安全意识和网络管理员的计算机水平。
4.调制解调器的安全
调制解调器提供进入用户网络的另一个入口点。一般来说网络入口点越多,被入侵的可能性就越大。
(1)拨号调制解调器的访问安全
增强拨号调制解调器安全的方法很多,包括只把拨号号码告诉需要使用该服务的人;使用用户名和一次性口令来保护拨号服务器;基于位置的严格的身份验证;使用安全性好的调制调解器以及在网络上增加一个用于核实身份的服务器等。
(2)Windows NT的远程访问服务
Windows NT的远程访问服务(RAS)为用户提供了用调解调器访问远程网络的功能,它使用一些安全性量度,如集成的域安全性、加密验证和登录、审核、第三方的安全性主机以及回叫安全性等,以保证远程用户是合法用户。
三、TCP/IP各层的安全性和提升方法
对TCP/IP的层次结构有所了解,就可以在不同的层次提供不同的安全性。
1.网络层的安全性
因特网工程任务组(IETF)已经特许因特网安全协议(IPSec)工作组对IP安全协议(IPSP)和对应的因特网密钥管理协议(IKMP)进行标准化工作。IPSP的主要目的是使需要安全措施的用户能够使用相应的加密安全体制。该体制不仅能在IPv4下工作,也能在IPv6下工作;该体制应与算法无关,即使加密算法替换了,也不对其他部分的实现产生影响;此外,该体制必须能实施各种安全政策,但要避免被不使用该体制的人利用。按照以上要求,IPSec工作组制定了认证头(AH:Authentication Header)和封装安全有效负荷(ESP:Encapsulating Security Payload)规范,其中AH提供IP包的真实性和完整性,ESP提供机要内容。
AH与ESP体制既可以合用也可以分用,但不管如何使用,都无法避免传输分析的攻击。因此,IPSec工作组制定因特网密钥管理协议(ISMP)等的标准化工作也已经提上日程,包括:IBM公司提出的标准密钥管理协议(MKMP),Sun公司提出的因特网协议的简单密钥管理(SKIP),美国国家安全局(NSA)提出的因特网安全条例及密钥管理协议等。这些协议草案除MKMP外,都要求一个既存的、完全可操作的公钥基础设施(PKI)。
另外,虽然IPSP的规范已经基本制定完毕,但多播环境下的密钥分配问题目前尚未引起足够重视。
2.传输层的安全性
在因特网应用编程中,通常使用广义的进程间通信(IPC)机制来与不同层次的安全协议通信。在因特网中提供安全服务的想法便是强化它的IPC界面,如BSD套接(socket)等,具体做法包括双端实体的认证、数据加密密钥的交换等。Netscape通信公司按照这个思路,制定了建立在可靠传输服务(如TCP/IP所提供的)基础上的安全套接层协议(SSL)。SSL版本3(SSL v3)主要包含以下两个协议:SSL记录协议及SSL握手协议。
Netscape通信公司已经向公众推出了SSL的实现版本SSLref和SSleay,它们均可给任何TCP/IP应用提供SSL功能。因特网号码分配局(IANA)已经为具备SSL功能的应用分配了固定端口号。
微软推出了SSL2的改进版本,即私人通信技术(PCT)。它使用的记录格式和SSL相似,主要差别在于版本号字段的最显著位(the most significant bit)上的取值有所不同:SSL该位取0,PCT该位取1。这样区分之后,就可以对这两个协议都给予支持。
同网络层安全机制相比,传输层安全机制的主要优点是它提供基于进程对进程的安全服务。此外,传输层安全机制的主要缺点是要对传输层IPC界面和应用程序两端都进行修改。但比起网络层和应用层的安全机制,其修改相当少。
3.应用层的安全性
网络层(或传输层)的安全协议意味着真正的数据通道还是建立在主机(或进程)之间,但却不可能区分在同一通道上传输的一个具体文件的安全性要求。
要区分不同的安全性要求,就必须借助于应用层的安全性。在应用层提供安全服务有几种做法。一种是对每个应用及应用协议分别进行修改,一些重要的TCP/IP应用已经这样做了;而在RFC 1424中,IETF规定了私用强化邮件(PEM)来为基于简单邮件传输协议(SMTP)的电子邮件系统提供安全服务。但目前还没有Web安全性的公认标准。另外,针对因特网上信用卡交易安全,MasterCard公司同IBM,Netscape,GTE和Cybercash等公司一道制定了安全电子付费协议(SEPP),Visa国际公司和微软公司等一道制定了安全交易技术(STT)协议。同时,MasterCard,Visa国际和微软发布了安全电子交易(SET)协议,其中规定了持卡人用其信用卡通过因特网进行付费的方法。
这些加强安全性能的应用都需要单独进行相应的修改。因此,为了能够进行统一修改,赫尔辛基大学的Tatu Yloenen开发了安全shell(SSH),允许其用户安全地登录到远程主机上执行命令、传输文件,实现了密钥交换协议以及主机与客户端认证协议。
SSH的延伸是认证和密钥分配系统,它提供一个应用程序接口(API),可为任何网络应用程序提供安全服务,例如认证、数据机密性和完整性、访问控制以及非否认服务等。目前已经有一些实用的认证和密钥分配系统,其中有些还被扩充。
近来,认证系统设计领域最主要的进展之一就是制定了标准化的安全API,即通用安全服务API(GSS-API)。美国奥斯汀大学的研究者开发的安全网络编程(SNP)还把界面做到了比GSS-API更高的层次,使与网络安全性相关的编程更加方便。
四、Web 站点上数据的安全
Web应用程序及Web站点往往易遭受各种各样的攻击,Web数据在网络传输过程中也很容易被窃取或盗用。基于Web的应用程序正在与基本的操作系统和后端数据库更加紧密地集成在一起而防火墙允许所有的Web通信进出网络,无法防止对Web服务器程序及其组件或Web应用程序的攻击。再者,Web服务器和基于Web的应用程序有时是在“功能第一,安全其次”的思想指导下开发出来的,比较脆弱,使得Web站点上的数据安全显得更为迫切。
Web的安全性问题非常复杂,范围很广,从防止外部攻击角度讲,Web服务器提供了三种类型的访问限制(控制)方法,以保护数据安全。
1.通过IP地址、子网或域名控制
只有当浏览器的连接请求来自某个IP地址、IP子网或域的时候,才允许被访问。这样做可以保护某个文档甚至整个目录。
IP地址限制对普通的情况是安全的,但通过一定的设备和工具软件,网络黑客可以伪造其IP地址。另外,也不能保证从已授权地址的主机向Web服务器请求连接的用户就是预期的用户。出于安全性考虑,IP地址限制必须与用户身份检查机制结合起来。
通过主机名/域名来限制访问机制的方法还存在着域名服务器(DNS)欺骗的危险:假的IP地址使用服务器却被认为是可以信任的主机名。为此,一些服务器可以为每个客户完成额外的DNS解析,把到来请求的IP地址转换成主机名之后,该服务器使用DNS把主机名再次解析成IP地址,从而禁止非法访问请求。如果服务器运行在防火墙后面,该防火墙有防止和发现IP地址欺骗的功能,那么IP地址限制的方法会更安全。
2.通过用户名/口令限制
当远程用户使用用户名和对应的口令访问某些目录或文档的方法也存在问题时,只有选择很难猜到的口令才有效。而且,WWW服务与Unix的登录方式不同,不能控制连接不成功的最大次数,这就更为网络黑客猜取口令提供了可能和方便。另外,在Web下访问被保护的文档,浏览器会向服务器发送多次口令信息,这使得网络黑客更易截取口令信息。为了避免这种情况,只能使用密钥加密的方法。
3.用公用密钥加密
加密是用一个密钥对消息的文本进行编码来实现的。文档的请求和文档本身都将被加密,使得只有收信人才能读取文档的内容,其他用户即使截获文档本身,也因为没有密钥而不能读取文档内容。
传统的加密系统在加密和解密时使用同一个密钥,在新的公共密钥或非对称加密系统中,密钥以成对的形式出现,一个密钥用于编码,另一个密钥用于解码。例如在该系统下,用户A向用户B发送消息,可以使用用户B的公共密钥来对消息进行加密。该消息仅能由私有密钥的拥有者(用户B)解密,这就防止了消息被窃取的可能。该系统也可以用于创建无法伪造的数字签名。
五、拒绝服务攻击及其防范措施
拒绝服务(DoS:Denial of Service)攻击是伴随着因特网的发展而发展和升级的。拒绝服务攻击的目的是阻止服务器发送它所提供的服务,使受害主机或网络无法及时处理外界请求,或根本无法回应外界请求。
DoS严格地说只是一种破坏网络服务的方式,具体实现方式一般包括畸形包、包溢出、分布式拒绝业务等。当高速包产生而被攻击的主机带宽无法承受高速包的攻击时,则DoS攻击成功。Smurf等技术的出现使低带宽主机发起对高带宽主机的DoS攻击变得非常容易。
通常DoS攻击的目标是网络的TCP/IP内层结构。这些攻击分为三种:破坏TCP/IP(例如Ping of Death及Teardrop攻击等)、 利用TCP/IP协议的漏洞(最流行的是SYN攻击)以及Smurf攻击和用户数据报协议冲击等。
DoS攻击中危害最大的是分布式拒绝服务(DDoS:Distributed Denial Of Service)攻击:攻击者利用已经侵入并控制的多台主机对某一单机发起攻击,在悬殊的带宽对比下,被攻击的主机会很快失去反应。这种攻击方式非常有效,而且难以抵挡,任何人都可以将DDoS的“僵尸”植入到那些毫无防范的系统中,然后发送攻击目标的信息以及攻击的指令,DDoS瞬间即至。新的DDoS使用“脉动僵尸”方法,它不进行野蛮攻击,而是发送一波一波的小带宽数据?这样就能绕过那些为密集进攻而设置的网络警报器。
更严峻的问题是?微软的下一代Windows XP操作系统使用原始的TCP/IP套接字,程序员可以编写任意代码(包括编写DDoS攻击程序,使用套接字80获取指令)等。因此有人预言,DDoS攻击将呈爆炸式增长?这将使因特网因为成百上千的DDoS攻击而减慢速度。
从现有的技术角度来看,还没有一种针对DoS攻击的有效解决办法。目前防止DoS攻击的最佳手段就是防患于未然。首先要保证外围主机和服务器的安全,使攻击者无法控制大量的无关主机,从而无法发动有效攻击。保护这些主机最好的办法就是及时了解有关本操作系统的安全漏洞以及相应的安全措施,及时安装补丁程序并注意升级系统软件,以免给黑客可乘之机。其次,当攻击发生后,可以在数据流中搜寻特征字符串,确定发起攻击的服务器和攻击者的位置,管理员还可以通过监视端口的使用情况进行入侵监测。再者,当使用的数据包异常,如出现超长或畸形的因特网控制报文协议(ICMP)或UDP包等,或数据包本身正常但其中的数据特异(例如存在某种加密特性)时,也很可能是在攻击。最后,可通过统计的方法来获知攻击的到来,例如在攻击之前,目标网络的域名服务器会接到远远超出正常数量的反向和正向的地址查询,这些查询往往意味着攻击的到来;或者通过数据流量来判断,在遭到攻击时,攻击数据的来源地址会发出超出正常极限的数据量。
六、防火墙效率与安全之间的矛盾
防火墙在为内部网络带来安全的同时,也产生了一定的反作用——降低了网络运行的效率。
在传统防火墙的设计中,包过滤与规则表进行匹配,对符合规则的数据包进行处理,不符合规则的就丢弃,每个包都要依据规则顺序过滤。由于网络安全涉及领域很多,技术复杂,安全规则往往要达到数百甚至上千种,使防火墙产品出现性能大幅度降低、网络资源衰竭等问题,从而造成网络拥塞。所以,安全与效率的两难选择成为传统防火墙面临的最大问题。此外,在这种设计中,黑客会采用IP Spoofing的办法将自己的非法包伪装成属于某个合法的连接,进而侵入用户的内部网络系统。因此,传统的包过滤技术既缺乏效率又容易产生安全漏洞。为实现安全、效率上的双向突破,基于连接的包过滤技术应运而生。
与传统包过滤的无连接检测技术不同,基于连接状态的包过滤在进行包的检查时,不仅将其看成是独立的单元,同时还要考虑它的历史关联性。防火墙在进行规则检查的同时,可以将包的连接状态记录下来,该连接以后的包则无需再通过规则检查,只需通过状态表里对该包所属的连接的记录来检查即可。如果有相应的状态标识,则说明该包已经建立合法连接,可以接受。检查通过后该连接状态的记录将被刷新,这样就使具有相同连接状态的包避免了重复检查。同时由于规则表的排序是固定的,只能采用线性的方法进行搜索,而连接状态表里的记录是可以随意排列的,于是可采用诸如二叉树或哈希(hash)等算法进行快速搜索,这就提高了系统的传输效率。同时,采用实时的连接状态监控技术,可以在状态表中通过诸如应答响应(ACK)、NO等连接状态因素加以识别,增强系统的安全性。
另外,对于基于UDP协议的应用来说,由于该协议本身对于顺序错误或丢失的包并不作纠错或重传,所以很难用简单的包过滤技术来处理。防火墙在处理基于UDP协议的连接时,应能为UDP建立虚拟的连接,对连接过程进行状态监控,通过规则与连接状态的共同配合达到包过滤的高效与安全。
七、结 语
因特网上的安全问题是多方面的,随着电子商务等因特网应用日益发展,信息交换变得越来越普及,信息安全也显得愈加迫切,面临的考验也愈加严峻。保证因特网安全不仅仅是技术上的问题,从各个层次上提高协议的安全性等只是问题的一个方面,操作管理、人员素质等也是影响安全的非常重要的因素。