3.“双停火区”的防火墙
针对被保护网络的特殊需要,防火墙的结构常常需要增加其他保安“组件”。例如,被保护网络往往会有部分信息允许外部网络共享,即允许外部用户直接读取。为此,常常在防火墙中建立两个“停火区”来满足网络服务要求。在该系统中,外“停火区”的子网上可以加上公共信息服务器,其路由应以静态设置,并且所有外“停火区”内的网络系统均不应被内部网络认为是“可靠”系统,内外信息交换还必须经过第二“停火区”。
保证信息系统安全只靠经典的“存取控制”或“访问控制”手段,无论在理论上,还是在实践中都不能彻底填补系统的安全漏洞,也没有一种切实可行的办法能彻底解决合法用户在通过“身份鉴别”或“身份认证”后滥用特权的问题,这就需要发展攻击检测技术。
7.5.2主动加密型
从古至今所采用的安全通信方式大多都是加密后再通信。加密在发信方进行。通过加密,明文变成密文(密文只对发信方和收信方有意义)之后被发送。收信方获到密文后,对之用相应的解密方法解密,从而获得明文。第三方获得密文后,除非他能将之转化为相应的明文(通常这个过程是很麻烦的),否则截获密文对他毫无意义。这样一来,便实现了安全通信。最早的加密方式都是一种被称为对称密钥加密的方式,用完全一样的密钥进行加密、解密。其主要特点是通过加密与用户授权确认方法,对网络中的用户数据和保证网络正常运行所必须的数据进行处理,来保障开放性网络的安全性。
本世纪70年代提出了一种新的密钥(非对称密钥),这种密钥是密不可分、成对使用的。其中一个密钥完全公开(任何实体都可以知道),称为公钥;另一个密钥完全私有(任何其它实体都不知道),称为私钥。公钥与私钥之间存在这样的关系:
1)不能从公钥推出私钥;
2)公钥加密后的密文,只能用私钥解密;
3)私钥加密后的密文,可以用公钥进行解密。
以数据加密和用户确认为基础的开放性安全保障技术是普通使用的安全手段。它对网络无特殊要求,可望成为保障网络安全的最终的一体化解决途径。这一类网络安全保障的主要技术特点是利用现代的数据加密技术来保护网络系统的安全性,其中包括确保用户数据在内的所有数据流的安全。只有指定的用户或网络设备,才能解译加密数据。该安全保障系统对网络环境没有特殊要求,从根本上解决了网络安全的两大基本要求——网络服务的可用性和信息的完整性。由于该类技术不需要特殊网络拓扑结构的支持,因而实施代价主要体现在软件的开发和系统运行维护等方面。在数据传输过程中,这类方法对所经过的网络路径无安全性要求,从而真正实现网络通信过程中端对端的安全保障。目前,已经有相当数量的,以不同方法实施的该类安全保障系统。
防火墙技术是一种被动的防卫技术,因此难以对Internet上潮水般的访问进行防卫。采用单纯的常规防火墙方式,具有一定的安全局限性,具体表现在以下几个方面:
1)防火墙不能防范不经由防火墙的攻击。如果内部网用户直接从Internet服务提供商那里购置直接的SLIP或PPP连接,则绕过了防火墙系统所提供的安全保护,从而造成了一个潜在的后部攻击渠道;
2)防火墙不能防范人为因素的攻击。防火墙不能防止由用户误操作造成的威胁,以及由于口令泄露而受到的攻击。由于局域网内部是一个相对开放的环境和TCP/IP协议内在的开放特征,内部网络上传输的数据很容易被截获并被分析或跟踪,一个很容易得到的“黑客”软件就可以很容易从内部完全破坏整个网络。安全防范的主要目的是针对内部犯罪,因此单纯采用防火墙阻挡外部攻击意义不明显;
3)常规防火墙不能防止受病毒感染的软件或文件的传输。由于操作系统、病毒、二进制文件类型(加密、压缩)的种类太多且更新很快,所以防火墙无法逐个扫描每个文件以查找病毒;
4)防火墙不能防止数据驱动式的攻击。当有些表面看来无害的数据邮寄或拷贝到内部网的主机上并被执行时,可能会发生数据驱动式的攻击。例如,一种数据驱动式的攻击可以使主机修改与系统安全有关的配置文件,从而使入侵者下一次更容易攻击该系统。防是防不住的,加密作为一种主动的防卫手段,其优势就显示出来了,因此要保障网络信息的安全,就应当用现代密码学来助阵。在网络应用中一般采取两种加密形式:秘密密钥和公开密钥,采用何种加密算法,则要结合具体应用环境和系统,而不能简单地根据其加密强度来作出判断。因为除了加密算法本身之外,密钥合理分配、加密效率与现有系统的结合性,以及投入、产出分析都应在实际环境中具体考虑。
对于秘密密钥,又叫私钥加密和对称密钥加密,其常见加密标准为DES等。
当使用DES时,用户和接受方采用64位密钥对报文加密和解密,当对安全性有特殊要求时,则要采取IDEA和三重DES等。作为传统企业网络广泛应用的加密技术,秘密密钥效率高,它采用KDC来集中管理和分发密钥并以此为基础验证身份,但是并不适合Internet环境。
7.5.3关于密钥
对一个国家来说,密码首先是维护国家利益的工具,当然也为集体和个人提供保密服务,因公用信息系统中使用密码应当是国家行为,并不是个人行为。在这一点上,Clipper计划的思路是对的,但Clipper计划将算法和所有密钥都由政府部门控制。
PGP(Pretty Good Privacy)系统没有采用密钥公证机制,也没有提供身份验证机制。它将整套加密技术全部交给用户,并反对国家干预。PGP系统把密钥管理权交给用户,个人生产的密钥无从公证,因而公布的加密密钥容易被第三方替换。因此,如果这种系统用于商业网、政府网和军事网,其安全没有保证。
“黑客”若想解读数据包,必须先破解加解密所用的密钥(Key)。如果无法截取密钥,通常就只能使用穷举法来破解。在密钥很长时,这种破解方式基本上不会有结果。目前为安全起见,通常使用一次性密钥技术,即对于一次指定会话,通信双方需为此次会话协商加解密密钥后才能建立安全隧道。这有时就要求密钥在网络上传输,增加了不安全因素。密钥管理(Key Management)的主要任务就是来保证在开放网络环境中安全地传输密钥而不被“黑客”窃取。现行常用密钥管理的技术又可分为SKIP(Simple Key Management for IP)与ISAKMP/Oakley(又称为IKE)两种。SKIP是由SUN所发展的技术,主要是利用Diffie-Hellman密钥交换算法在网络上传输密钥的一种技术。ISAKMP/Oakley亦然,并且将来ISAKMP/Oakley会整合于IPv6中,成为IPv6的标准之一。
按ISO /OSI标准七层网络体系结构来看,对于网上信息的传输,原则上采用越底层的加解密方式越安全。数据链路层直接位于物理媒体层之上,任何内部网络和外部网络之间传输的数据都不可能绕过这一层而进出系统,因此直接在这一层对数据包做安全处理将能够保证安全处理的完备性。同时,由于链路层处于操作系统的内核,相应安全程序模块是操作系统的一部分,在系统启动时就被加载且在系统运行过程中不能被篡改,因而可以保证程序自身的安全性与稳定性。
最佳加密点是用户层。电子时代最重要的特征之一就是通信过程和加密过程结合起来完成。而到了计算机网络时代,加密过程和通信过程又分开,各自独立运行。即在应用层中将文件先加好密(脱线作业),再交下层协议处理,不受通信协议的制约。这样,可灵活地提供包括加密服务在内的其它多种服务。
在Internet中使用更多的是公钥系统,即公开密钥加密,它的加密密钥和解密密钥是不同的。一般对于每个用户生成一对密钥后,将其中一个作为公钥公开,另外一个则作为私钥由属主保存。常用的公钥加密算法是RSA算法,加密强度很高。具体作法是将数字签名和数据加密结合起来。发送方在发送数据时必须加上数据签名,做法是用自己的私钥加密一段与发送数据相关的数据作为数字签名,然后与发送数据一起用接收方密钥加密。当这些密文被接收方收到后,接收方用自己的私钥将密文解密,得到发送的数据和发送方的数字签名,然后,用发布方公布的公钥对数字签名进行解密。
如果成功,则确定是由发送方发出的。数字签名每次还与被传送的数据和时间等因素有关。由于加密强度高,而且并不要求通信双方事先要建立某种信任关系或共享某种秘密,因此十分适合Internet网上使用。
制订有关的安全技术标准也是十分紧迫的任务,目前基于ISO TC97确立的五种基本安全服务和八种安全机制,另外,还有网络管理SNMP规范、S-HTTP和SSL等。对于我国的密码学研究现状,我们应该本着独立自主的方针,在大胆借鉴外国先进经验的基础上,自己设计我国自己的加密算法,并且保持同世界通用标准的同步,以保持国家的整体信息安全。
7.5.4计算机网络中的加密技术
计算机网络的加密技术,是通过计算机网络中的加密机构,把网络中的各种原始的数字信息(明文),按照某种特定的加密算法变换成与明文完全不同的数字信息,即密文的过程,与其相反的过程称为解密。利用加密技术可以在不安全保密的通信信道上安全通信。计算机网络中的加密技术,主要采用链路加密、节点加密和端对端加密等3种方式。
1.链路加密
链路加密是目前最常用的加密方法,通常用硬件在网络层以下(即数据链路层)的物理层实现。它用于保护节点间传输的数据。这种加密方式比较简单,实现起来比较容易,只要把一对密码设备安装在两个节点间的线路上,即把密码设备安装在节点和调制解调器之间,使用相同的密钥即可。用户没有选择的余地,也不需要了解加密技术的细节。一旦在一条线路上使用链路加密,往往需要在全网都采用链路加密。
链路加密方式对用户是透明的,即加密操作由网络自动进行,用户不能干预加密和解密过程。它主要用来对信道或链路中可能被截获的那一部分进行保护。这些链路主要包括专用线路、电话线、电缆、光缆、微波和卫星通道等。
链路加密根据被传送的数字字符采取的同步方法的不同,分为异步和同步两种加密方式。链路加密有两个缺点,其一是全部报文都以明文形式通过各节点的计算机中央处理机。在这些节点上,数据容易受到非法存取的危害。其二是由于每条链路都要有一对加密、解密设备和一个独立的密钥,因此成本较高。
2.节点加密
节点加密是对链路加密的改进。其目的是克服链路加密在节点处易受非法存取的缺点。它在传输层上进行加密,是对源节点和目标节点之间传输的数据进行加密保护。它与链路加密类似,只是加密算法要组合在依附于节点的加密模块中。这种加密方式可提供用户节点间连接的安全服务,也可用于实现对等实体鉴别。节点加密也是每条链路使用一个专用密钥,一个密钥到另一个密钥的变换是在保密模块中进行的。
这个模块设在节点中央处理装置中,可以起到一种外围设备的作用。所以明文数据不通过节点,而只存于保密模块中。要注意的是,对于相当多的数据包,其路由信息也要加密。这样,节点中央处理装置就能恰当地选定数据的发送线路。
3.端对端加密
这是网络层以上的加密,通常称为端对端加密。端对端加密是面向网络中高层主体进行的加密,即在表示层上对传输的数据进行加密,而不对下层协议信息加密。协议信息以明文形式传输,用户数据在中间节点不需要解密。端对端加密一般由软件来完成。在网络高层进行加密,不需要考虑网络低层的线路、调制解调器、接口与传输码,但用户的联机自动加密软件必须与网络通信协议软件完全结合,而各厂家的通信协议软件往往由又各不相同。因此,目前的端对端加密也可以用硬件来实现,然而硬件实现往往有很大的难度。在大型网络系统中,交换网络在多个发方和受方之间传输的时候,用端对端加密是比较合适的。
端对端加密具有链路加密和节点加密所具有的优点。