当前位置:Linux教程 - Linux - Internet安全,防火墙及其它

Internet安全,防火墙及其它



        
    防火墙技术
    Internet层的安全性
    传输层的安全性
    应用层的安全性
    结语
    附录: 缩略语对照表

    TCP/IP协议群在网际互联中的使用的迅速崛起, 导致了通常被称为Internet的由,主机和网络组成的全球网际互联系统。过去的十年是Internet胜利大进军的十年。按它现在的发展速率预测,到本世纪末, 将有超过一百万个计算机网络和超过十亿的用户加入Internet。正因为如此, Internet被看成是美国政府提出的国家信息基础设施(NII)的第一个具体体现.
    然而,最初面向研究的Internet和它的通信协议群是为比现在良好得多的环境而设计的。应该说, 那是一个君子的环境, 用户和主机之间互相信任, 志在进行自由开放的信息交换。在这样的环境里, 使用Internet的人实际上就是创建Internet的人。随着时间的推移, Internet变得更加有用和可靠, 别的人也就参杂了进来。人越来越多, 共同目标却越来越少, Internet的初衷渐渐地被扭曲了.

    今天, Internet的环境中,君子风度和信任感已经所剩无几了。社会上能找到的所有的凶险, 卑鄙和投机, Internet上应有尽有。在这样的新环境里, 开放性成了Internet的一把双刃剑。从Internet诞生之日起, 特别是自90年代它向公众开放以来, 它已经成为众矢之的。1988年11月, 小Robert T. Morris放出的Internet蠕虫染指了数千台主机[10]。从那时起, 不断传出侵犯安全的事件报道。企图闯入系统者有之, 成功闯入系统者有之,抓住Internet上主机的其他种种弱点和漏洞加以利用者也有之。最近, 成千成万的口令在Internet上被盗取, 序列数猜测的攻击手段已经被用来冒充IP。特别要指出的是: 很早就有人知道这些易受攻击的弱点了。实际上,在网际互联的早期, 安全专家就警告过明文传送口令的危害。Morris在1985年于AT&T贝尔实验室工作期间就详细描述了用来破解BSD UNIX 4.2序列数猜测的攻击手段。

    如今Internet上的每一个人实际上都是脆弱的。Internet的安全问题成了关注的焦点。计算机和通信界一片恐慌。对安全问题的考虑, 给认为Internet已经完全胜任商务活动的过高期望泼了一盆冷水, 可能也延缓或阻碍了Internet作为国家信息基础设施或全球信息基础设施成为大众媒体。一些调查研究表明,许多个人和公司之所以对加入Internet持观望态度, 其主要原因就是出于安全的考虑。与此同时,也有分析家警告商家不加入Internet会有什么危害。

    尽管众说纷纭,有一点是差不多大家都同意的,那就是Internet需要更多更好的安全机制。早在1994年,在IAB(Internet体系结构理事会)的一次研讨会上,扩充与安全就被当作关系Internet全局的两个最重要的问题领域了。然而安全性,特别是Internet的安全性,是一个很含糊的术语,不同的人可能会有不同的理解。本质上, Internet的安全性只能通过提供下面两方面的安全服务来达到:

    访问控制服务用来保护计算和联网资源不被非授权使用;
    通信安全服务用来提供认证,数据机要性与完整性和各通信端的不可否认性服务。例如,基于Internet或WWW的电子商务就必须依赖于通信安全服务的广泛采用。
    在本文中, 我们将集中讨论几种可用来为Internet提供访问控制服务和通信安全服务的安全技术。我们特别要讨论防火墙技术和已经提出的网际、传输、应用等各层上的安全协议。我们最后以一些类比来帮助更好地理解这些技术的优缺点, 作为结论。

    防火墙技术
    古时候, 人们常在寓所之间砌起一道砖墙, 一旦火灾发生, 它能够防止火势蔓延到别的寓所。自然, 这种墙因此而得名“防火墙”。现在, 如果一个网络接到了Internet上面, 它的用户就可以访问外部世界并与之通信。但同时, 外部世界也同样可以访问该网络并与之交互。为安全起见,可以在该网络和Internet之间插入一个中介系统, 竖起一道安全屏障。这道屏障的作用是阻断来自外部通过网络对本网络的威胁和入侵, 提供扼守本网络的安全和审计的唯一关卡。这种中介系统也叫做“防火墙”, 或“防火墙系统”。

    简言之, 一个防火墙在一个被认为是安全和可信的内部网络和一个被认为是不那么安全和可信的外部网络(通常是Internet)之间提供一个封锁工具。在使用防火墙的决定背后, 潜藏着这样的推理: 假如没有防火墙, 一个网络就暴露在不那么安全的Internet诸协议和设施面前, 面临来自Internet其他主机的探测和攻击的危险。在一个没有防火墙的环境里, 网络的安全性只能体现为每一个主机的功能, 在某种意义上, 所有主机必须通力合作, 才能达到较高程度的安全性。网络越大, 这种较高程度的安全性越难管理。随着安全性问题上的失误和缺陷越来越普遍, 对网络的入侵不仅来自高超的攻击手段, 也有可能来自配置上的低级错误或不合适的口令选择。因此, 防火墙的作用是防止不希望的、未授权的通信进出被保护的网络, 迫使单位强化自己的网络安全政策。

    一个防火墙系统通常由屏蔽路由器和代理服务器组成。屏蔽路由器是一个多端口的IP路由器, 它通过对每一个到来的IP包依据一组规则进行检查来判断是否对之进行转发。屏蔽路由器从包头取得信息, 例如协议号、收发报文的IP地址和端口号, 连接标志以至另外一些IP选项, 对IP包进行过滤。

    代理服务器是防火墙系统中的一个服务器进程, 它能够代替网络用户完成特定的TCP/IP功能。一个代理服务器本质上是一个应用层的网关, 一个为特定网络应用而连接两个网络的网关。用户就一项TCP/IP应用, 比如Telnet或者ftp,同代理服务器打交道, 代理服务器要求用户提供其要访问的远程主机名。当用户答复并提供了正确的用户身份及认证信息后, 代理服务器连通远程主机, 为两个通信点充当中继。整个过程可以对用户完全透明。用户提供的用户身份及认证信息可用于用户级的认证。最简单的情况是: 它只由用户标识和口令构成。但是, 如果防火墙是通过Internet可访问的, 我们推荐使用更强的认证机制,比如一次性口令或挑战-回应式系统。

    屏蔽路由器的优点是简单和低(硬件)成本。其缺点关系到正确建立包过滤规则比较困难、屏蔽路由器的管理成本、还有用户级身份认证的缺乏。路由器生产商们正在着手解决这些问题。特别值得注意的是, 它们正在开发编辑包过滤规则的图形用户界面。他们也在制订标准的用户级身份认证协议, 来提供远程身份认证拨入用户服务(REDIUS)。

    代理服务器的优点是用户级的身份认证、日志记录和帐号管理。其缺点关系到这样一个事实: 要想提供全面的安全保证, 就要对每一项服务都建立对应的应用层网关。这个事实严重地限制了新应用的采纳。最近, 一个名叫SOCKS的包罗万象的代理服务器问世了。SOCKS主要由一个运行在防火墙系统上的代理服务器软件包和一个链接到各种网络应用程序的库函数包组成。这样的结构有利于新应用的挂接。

    屏蔽路由器和代理服务器通常组合在一起构成混合系统, 其中屏蔽路由器主要用来防止IP欺骗攻击。目前最广泛采用的配置是Dual-homed防火墙, 被屏蔽主机型防火墙, 以及被屏蔽子网型防火墙。

    尽管防火墙已经在Internet业界得到了广泛的应用, 关于防火墙的话题仍然十分敏感。防火墙的拥护者们把防火墙看成是一种重要的新型安全措施, 因为它把诸多安全功能集中到一点上, 大大简化了安装、配置和管理的手续。许多公司把防火墙当做自己单位驻Internet的大使馆, 当做关于其项目、产品、服务等公共信息的仓库。从美国生产厂家的观点来看, 防火墙技术是很有意义的, 因为它不用加密, 因而在出口上不受限制。但是, 目前提供的大多数防火墙产品确实支持这种或那种的IP层加密功能, 从而在这方面受到美国出口政策的控制。防火墙的另一个特色是它不限于TCP/IP协议, 从而不只适用于Internet。

    确实, 类似的技术完全可以用在任何分组交换网络当中, 例如X.25或ATM都可以。防火墙的批评者们一般关注的是防火墙的使用不便之处, 例如: 需要多次登录及其他不受约束的机制, 影响Internet的使用甚至影响Internet的生存。他们声称: 防火墙给人制造一种虚假的安全感, 导致在防火墙内部放松安全警惕。

    他们也注意到, 许多攻击是内部犯罪, 这是任何基于隔离的防范措施都无能为力的。同样, 防火墙也不能解决进入防火墙的数据带来的所有安全问题。如果用户抓来一个程序在本地运行, 那个程序很可能就包含一段恶意的代码, 或泄露敏感信息, 或对之进行破坏。随着Java、JavaScript和Active X控件及其相应浏览器的大量持续推广, 这一问题变得更加突出和尖锐。防火墙的另一个缺点是很少有防火墙制造商推出简便易用的“监狱看守”型的防火墙, 大多数的产品还停留在需要网络管理员手工建立的水平上。当然, 这一方面马上会出现重大的变化。

    尽管存在这些争议, 防火墙的拥护者和批评者都承认, 防火墙不能替代墙内的谨慎的安全措施。防火墙在当今Internet世界中的存在是有生命力的。它是一些对高级别的安全性有迫切要求的机构出于实用的原因建造起来的, 因此, 它不是解决所有网络安全问题的万能药方, 而只是网络安全政策和策略中的一个组成部分。

    Internet层的安全性
    对Internet层的安全协议进行标准化的想法早就有了。在过去十年里, 已经提出了一些方案。例如,“安全协议3号(SP3)”就是美国国家安全局以及标准技术协会作为“安全数据网络系统(SDNS)”的一部分而制定的。“网络层安全协议(NLSP)”是由国际标准化组织为“无连接网络协议(CLNP)”制定的安全协议标准。“集成化NLSP(I-NLSP)”是美国国家科技研究所提出的包括IP和CLNP在内的统一安全机制。SwIPe是另一个Intenet层的安全协议, 由Ioannidis和Blaze提出并实现原型。所有这些提案的共同点多于不同点。事实上, 他们用的都是IP封装技术。其本质是, 纯文本的包被加密, 封装在外层的IP报头里, 用来对加密的包进行Internet上的路由选择。到达另一端时, 外层的IP报头被拆开,报文被解密, 然后送到收报地点。

    Internet工程特遣组(IETF)已经特许Internet协议安全协议(IPSEC)工作组对IP安全协议(IPSP)和对应的Internet密钥管理协议(IKMP)进行标准化工作。IPSP的主要目的是使需要安全措施的用户能够使用相应的加密安全体制。该体制不仅能在目前通行的IP(IPv4)下工作, 也能在IP的新版本(IPng或IPv6)下工作。该体制应该是与算法无关的, 即使加密算法替换了, 也不对其他部分的实现产生影响。此外, 该体制必须能实行多种安全政策, 但要避免给不使用该体制的人造成不利影响。按照这些要求, IPSEC工作组制订了一个规范: 认证头(Authentication Header, AH)和封装安全有效负荷(Encapsulating Security Payload, ESP)。简言之, AH提供IP包的真实性和完整性, ESP提供机要内容。

    IP AH指一段消息认证代码(Message Authentication Code, MAC), 在发送IP包之前, 它已经被事先计算好。发送方用一个加密密钥算出AH, 接收方用同一或另一密钥对之进行验证。如果收发双方使用的是单钥体制, 那它们就使用同一密钥; 如果收发双方使用的是公钥体制, 那它们就使用不同的密钥。在后一种情形, AH体制能额外地提供不可否认的服务。事实上, 有些在传输中可变的域, 如IPv4中的time-to-live域或IPv6中的hop limit域, 都是在AH的计算中必须略过不计的。RFC 1828首次规定了加封状态下AH的计算和验证中要采用带密钥的MD5算法。而与此同时, MD5和加封状态都被批评为加密强度太弱, 并有替换的方案提出。

    IP ESP的基本想法是整个IP包进行封装, 或者只对ESP内上层协议的数据(运输状态)进行封装, 并对ESP的绝大部分数据进行加密。在管道状态下, 为当前已加密的ESP附加了一个新的IP头(纯文本), 它可以用来对IP包在Internet上作路由选择。接收方把这个头取掉, 再对ESP进行解密, 处理并取掉ESP头, 再对原来的IP包或更高层协议的数据就象普通的IP包那样进行处理。RFC 1827中对ESP的格式作了规定, RFC 1829中规定了在密码块链接(CBC)状态下ESP加密和解密要使用数据加密标准(DES)。虽然其他算法和状态也是可以使用的, 但一些国家对此类产品的进出口控制也是不能不考虑的因素。有些国家甚至连私用加密都要限制。

    AH与ESP体制可以合用, 也可以分用。不管怎么用, 都逃不脱传输分析的攻击。我们不太清楚在Internet层上, 是否真有经济有效的对抗传输分析的手段, 不过, Internet用户里, 真正把传输分析当回事儿的也是寥寥无几。1995年8月, Internet工程领导小组(IESG)批准了有关IPSP的RFC作为Internet标准系列的推荐标准。除RFC 1828和RFC 1829外, 还有两个实验性的RFC文件, 规和制中, 用安全散列算法(SHA)来代替MD5(RFC 1852)和用三元定了在AHESP体DES代替DES(RFC 1851)。

    在最简单的情况下, IPSP用手工来配置密钥。然而, 当IPSP大规模发展的时候,就需要在Internet上建立标准化的密钥管理协议。这个密钥管理协议按照IPSP 安全条例的要求, 指定管理密钥的方法。

    因此, IPSEC工作组也负责进行Internet密钥管理协议(IKMP), 其他若干协议的标准化工作也已经提上日程。其中最重要的有:

    IBM 提出的“标准密钥管理协议(MKMP)”
    SUN 提出的“Internet协议的简单密钥管理(SKIP)”
    Phil Karn 提出的“Photuris密钥管理协议”
    Hugo Krawczik 提出的“安全密钥交换机制(SKEME)”
    NSA 提出的“Internet安全条例及密钥管理协议”
    Hilarie Orman 提出的“OAKLEY密钥决定协议”
    我们再次强调指出, 这些协议草案的相似点多于不同点。除MKMP外, 它们都要求一个既存的、完全可操作的公钥基础设施(PKI)。MKMP没有这个要求, 因为它假定双方已经共同知道一个主密钥(Master Key), 可能是事先手工发布的。SKIP要求Diffie-Hellman证书, 其他协议则要求RSA证书。1996年9月, IPSEC决定采用OAKLEY作为ISAKMP框架下强制推行的密钥管理手段, 采用SKIP作为IPv4和IPv6实现时的优先选择。目前已经有一些厂商实现了合成的ISAKMP/OAKLEY方案。Photuris以及类Photuris的协议的基本想法是对每一个会话密钥都采用Diffie-Hellman密钥交换机制, 并随后采用签名交换来确认Diffie-Hellman参数, 确保没有“中间人”进行攻击。这种组合最初是由Diffie、Ooschot和Wiener在一个“站对站(STS)”的协议中提出的。Photuris里面又添加了一种所谓的“cookie”交换, 它可以提供“清障(anti-logging)”功能, 即防范对服务攻击的否认。

    Photuris以及类Photuris的协议由于对每一个会话密钥都采用Diffie-Hellman密钥交换机制, 故可提供回传保护(back-traffic protection, BTP)和完整转发安全性(perfect-forward secrecy, PFS)。实质上, 这意味着一旦某个攻击者破解了长效私钥, 比如Photuris中的RSA密钥或SKIP中的Diffie-Hellman密钥, 所有其他攻击者就可以冒充被破解的密码的拥有者。但是, 攻击者却不一定有本事破解该拥有者过去或未来收发的信息。

    值得注意的是, SKIP并不提供BTP和PFS。尽管它采用Diffie-Hellman密钥交换机制,但交换的进行是隐含的, 就是说, 两个实体以证书形式彼此知道对方长效Diffie-Hellman 公钥, 从而隐含地共享一个主密钥。该主密钥可以导出对分组密钥进行加密的密钥, 而分组密钥才真正用来对IP包加密。一旦长效Diffie-Hellman密钥泄露,则任何在该密钥保护下的密钥所保护的相应通信都将被破解。还有, SKIP是无状态的, 它不以安全条例为基础。每个IP包可能是个别地进行加密和解密的, 归根到底用的是不同的密钥。

    SKIP不提供BTP和PFS这件事曾经引起IPSEC工作组内部的批评意见,该协议也曾进行过扩充, 试图提供BTP和PFS。但是, 扩充后的SKIP协议版本其实是在BTP和PFS功能的提供该协议的无状态性之间的某种折衷。实际上, 增加了BTP和PFS功能的SKIP非常类似于Photuris以及类Photuris的协议, 唯一的主要区别是SKIP(仍然)需要原来的Diffie-Hellman证书。这一点必须注意:目前在Internet上, RSA证书比其他证书更容易实现和开展业务。

    大多数IPSP及其相应的密钥管理协议的实现均基于Unix系统。任何IPSP的实现都必须源码纠缠在一起, 而这源码又能在Unix系统上使用, 其原因大概跟对应协议栈的就在于此。但是, 如果要想在Internet上更广泛地使用和采纳安全协议, 就必须有相应的MS-DOS或Windows版本。而在这些系统上实现Internet层安全协议所直接面临的一个问题就是, PC上相应的实现TCP/IP的公共源码资源什么也没有。为克服这一困难, Wagner和Bellovin实现了一个IPSEC模块, 它象一个设备驱动程序一样工作, 完全处于IP层以下。

    Internet层安全性的主要优点是它的透明性, 就是说, 安全服务的提供不需要应用程序、其他通信层次和网络部件做任何改动。它的最主要的缺点是: Internet层一般对属于不同进程和相应条例的包不作区别。对所有去往同一地址的包, 它将按照同样的加密密钥和访问控制策略来处理。这可能导致提供不了所需的功能, 也会导致性能下降。针对面向主机的密钥分配的这些问题, RFC 1825允许(甚至可以说是推荐) 使用面向用户的密钥分配, 其中, 不同的连接会得到不同的加密密钥。但是,面向用户的密钥分配需要对相应的操作系统内核作比较大的改动。虽然IPSP的规范已经基本制订完毕, 但密钥管理的情况千变万化, 要做的工作还很多。尚未引起足够重视的一个重要的问题是在多播 (multicast)环境下的密钥分配问题, 例如, 在Internet多播骨干网(MBone)或IPv6网中的密钥分配问题。

    简言之, Internet层是非常适合提供基于主机对主机的安全服务的。相应的安全协议可以用来在Internet上建立安全的IP通道和虚拟私有网。例如, 利用它对IP包的加密和解密功能, 可以简捷地强化防火墙系统的防卫能力。事实上, 许多厂商已经这样做了。RSA数据安全公司已经发起了一个倡议, 来推进多家防火墙和TCP/IP软件厂商联合开发虚拟私有网。该倡议被称为S-WAN(安全广域网)倡议。其目标是制订和推荐Internet层的安全协议标准。

    传输层的安全性
    在Internet应用编程序中, 通常使用广义的进程间通信(IPC)机制来同不同层次的安全协议打交道。比较流行的两个IPC编程界面是BSD Sockets和传输层界面(TLI),在Unix系统V里可以找到。

    在Internet中提供安全服务的首先一个想法便是强化它的IPC界面, 如BSD Sockets等, 具体做法包括双端实体的认证, 数据加密密钥的交换等。Netscape通信公司遵循了这个思路, 制定了建立在可靠的传输服务(如TCP/IP所提供)基础上的安全套接层协议(SSL)。SSL版本3(SSLv3)于1995年12月制定。它主要包含以下两个协议:·SSL记录协议它涉及应用程序提供的信息的分段、压缩、数据认证和加密。SSLv3提供对数据认证用的MD5和SHA以及数据加密用的R4和DES等的支持, 用来对数据进行认证和加密的密钥可以通过SSL的握手协议来协商。

    ·SSL握手协议用来交换版本号、加密算法、(相互)身份认证并交换密钥。SSLv3提供对Deffie-Hellman密钥交换算法、基于RSA的密钥交换机制和另一种实现在Fortezza chip上的密钥交换机制的支持。Netscape通信公司已经向公众推出了SSL的参考实现(称为SSLref)。另一免费的SSL实现叫做SSLeay。SSLref和SSLeay均可给任何TCP/IP应用提供SSL功能。Internet号码分配当局(IANA)已经为具备SSL功能的应用分配了固定端口号, 例如, 带SSL的HTTP(https)被分配以端口号443, 带SSL的SMTP(ssmtp)被分配以端口号465, 带SSL的NNTP(snntp)被分配以端口号563。

    微软推出了SSL版本2的改进版本, 叫做PCT(私人通信技术)。至少从它使用的记录格式来看, SSL和PCT是十分相似的。它们的主要差别是它们在版本号字段的最显著位(The Most Significant Bit)上的取值有所不同: SSL该位取0, PCT该位取1。这样区分之后, 就可以对这两个协议都给以支持。1996年4月, IETF授权一个传输层安全(TLS)工作组着手制定一个传输层安全协议(TLSP), 以便作为标准提案向IESG正式提交。TLSP将会在许多地方酷似SSL。

    我们已经看到, Internet层安全机制的主要优点是它的透明性, 即安全服务的提供不要求应用做任何改变。这对传输层来说是做不到的。原则上, 任何TCP/IP应用,只要应用传输层安全协议, 比如说SSL或PCT, 就必定要进行若干修改以增加相应的功能, 并使用(稍微)不同的IPC界面。于是, 传输层安全机制的主要缺点就是要对传输层IPC界面和应用程序两端都进行修改。可是, 比起Internet层和应用层的安全机制来, 这里的修改还是相当小的。另一个缺点是, 基于UDP的通信很难在传输层建立起安全机制来。同网络层安全机制相比, 传输层安全机制的主要优点是它提供基于进程对进程的(而不是主机对主机的)安全服务。这一成就如果再加上应用级的安全服务, 就可以再向前跨越一大步了。

    应用层的安全性
    必须牢记(且须仔细品味): 网络层(传输层)的安全协议允许为主机(进程)之间的数据通道增加安全属性。本质上, 这意味着真正的(或许再加上机密的)数据通道还是建立在主机(或进程)之间, 但却不可能区分在同一通道上传输的一个个具体文件的安全性要求。比如说, 如果一个主机与另一个主机之间建立起一条安全的IP通道,那么所有在这条通道上跑的IP包就都要自动地被加密。同样, 如果一个进程和另一个进程之间通过传输层安全协议建立起了一条安全的数据通道, 那么两个进程间传输的所有消息就都要自动地被加密。

    如果确实想要区分一个个具体文件的不同的安全性要求, 那就必须借助于应用层的安全性。提供应用层的安全服务实际上是最灵活的处理单个文件安全性的手段。例如一个电子邮件系统可能需要对要发出的信件的个别段落实施数据签名。较低层的协议提供的安全功能一般不会知道任何要发出的信件的段落结构, 从而不可能知道该对哪一部分进行签名。只有应用层是唯一能够提供这种安全服务的层次。

    一般说来, 在应用层提供安全服务有几种可能的做法, 第一个想到的做法大概就是对每个应用(及应用协议)分别进行修改。一些重要的TCP/IP应用已经这样做了。在RFC 1421至1424中, IETF规定了私用强化邮件(PEM)来为基于SMTP的电子邮件系统提供安全服务。由于种种理由, Internet业界采纳PEM的步子还是太慢, 一个主要的原因是PEM依赖于一个既存的、完全可操作的PKI(公钥基础结构)。PEM PKI是按层次组织的, 由下述三个层次构成:

    顶层为Internet安全政策登记机构(IPRA)
    次层为安全政策证书颁发机构(PCA)
    底层为证书颁发机构(CA)
    建立一个符合PEM规范的PKI也是一个政治性的过程, 因为它需要多方在一个共同点上达成信任。不幸的是, 历史表明, 政治性的过程总是需要时间的, 作为一个中间步骤, Phil Zimmermann开发了一个软件包, 叫做PGP(pretty Good Privacy)。PGP符合PEM的绝大多数规范, 但不必要求PKI的存在。相反, 它采用了分布式的信任模型, 即由每个用户自己决定该信任哪些其他用户。因此, PGP不是去推广一个全局的PKI, 而是让用户自己建立自己的信任之网。这就立刻产生一个问题, 就是分布式的信任模型下, 密钥废除了怎么办。

    S-HTTP是Web上使用的超文本传输协议(HTTP)的安全增强版本, 由企业集成技术公司设计。S-HTTP提供了文件级的安全机制, 因此每个文件都可以被设成私人/签字状态。用作加密及签名的算法可以由参与通信的收发双方协商。S-HTTP提供了对多种单向散列(Hash)函数的支持, 如: MD2, MD5及SHA; 对多种单钥体制的支持, 如:DES, 三元DES, RC2, RC4, 以及CDMF; 对数字签名体制的支持, 如: RSA和DSS。

    目前还没有Web安全性的公认标准。这样的标准只能由WWW Consortium, IETF或其他有关的标准化组织来制定。而正式的标准化过程是漫长的, 可能要拖上好几年,直到所有的标准化组织都充分认识到Web安全的重要性。S-HTTP和SSL是从不同角度提供Web的安全性的。S-HTTP对单个文件作“私人/签字”之区分, 而SSL则把参与通信的相应进程之间的数据通道按“私用”和“已认证”进行监管。Terisa公司的SecureWeb工具软件包可以用来为任何Web应用提供安全功能。该工具软件包提供有RSA数据安全公司的加密算法库, 并提供对SSL和S-HTTP的全面支持。

    另一个重要的应用是电子商务, 尤其是信用卡交易。为使Internet上的信用卡交易安全起见, MasterCard公司(同IBM, Netscape, GTE和Cybercash一道) 制定了安全电子付费协议(SEPP), Visa国际公司和微软(和其他一些公司一道)制定了安全交易技术(STT)协议。同时, MasterCard, Visa国际和微软已经同意联手推出Internet上的安全信用卡交易服务。他们发布了相应的安全电子交易(SET)协议, 其中规定了信用卡持卡人用其信用卡通过Internet进行付费的方法。这套机制的后台有一个证书颁发的基础结构, 提供对X.509证书的支持。

    上面提到的所有这些加安全功能的应用都会面临一个主要的问题, 就是每个这样的应用都要单独进行相应的修改。因此, 如果能有一个统一的修改手段, 那就好多了。通往这个方向的一个步骤就是赫尔辛基大学的Tatu Yloenen开发的安全shell(SSH)。SSH允许其用户安全地登录到远程主机上, 执行命令, 传输文件。它实现了一个密钥交换协议, 以及主机及客户端认证协议。SSH有当今流行的多种Unix系统平台上的免费版本, 也有由Data Fellows公司包装上市的商品化版本。

    把SSH的思路再往前推进一步, 就到了认证和密钥分配系统。本质上, 认证和密钥分配系统提供的是一个应用编程界面(API), 它可以用来为任何网络应用程序提供安全服务, 例如: 认证、数据机密性和完整性、访问控制以及非否认服务。目前已经有一些实用的认证和密钥分配系统, 如: MIT的Kerberos(V4与V5), IBM的CryptoKnight和Netwrok Security Program, DEC的SPX, Karlsruhe大学的指数安全系统(TESS)等,都是得到广泛采用的实例。甚至可以见到对有些认证和密钥分配系统的修改和扩充。例如, SESAME和OSF DCE对Kerberos V5作了增加访问控制服务的扩充, Yaksha对Kerberos V5作了增加非否认服务的扩充。

    关于认证和密钥分配系统的一个经常遇到的问题是关于它们在Internet上所受到的冷遇。一个原因是它仍要求对应用本身做出改动。考虑到这一点, 对一个认证和密钥分配系统来说, 提供一个标准化的安全API就显得格外重要。能做到这一点, 开发人员就不必再为增加很少的安全功能而对整个应用程序动大手术了。因此, 认证系统设计领域内最主要的进展之一就是制定了标准化的安全API, 即通用安全服务API(GSS-API)。GSS-API(v1及v2)对于一个非安全专家的编程人员来说可能仍显得过于技术化了些, 但德州Austin大学的研究者们开发的安全网络编程(SNP), 把界面做到了比GSS-API更高的层次, 使同网络安全性有关的编程更加方便了。

    结语
    本文集中讨论了可用来提供Internet安全性服务的一些技术。我们特别回顾和探讨了防火墙技术和针对Internet、传输、应用各层提出的安全协议。防火墙如今已经是无处不在了, 它在Internet中的作用, 可以用历史的类比作出很好的说明。我们的石器时代先祖们住在洞穴里, 同自己的家庭成员朝夕相处。他们用自己的这些知识来互相鉴别和认证。如果一个外人想进入洞穴, 必须有被其余家庭成员信任的某个家庭成员的引见。人类历史表明, 当交往规模变得很大以后, 这样的安全模型就显得太简单化了。随着家庭规模的扩大, 家庭间的往来增加, 所有家庭的成员同社区内的所有人都认识是不可能的。甚至牢靠地记住所有曾经被引见过的人也是不可能的。

    到了中世纪, 我们的先祖住进了城堡和村庄, 周围砌起了高高的围墙。墙里的居民是互相熟悉的, 但却未必互相信任。相反, 身份的鉴别和认证, 授权与访问控制, 成了大门口的例行公事。任何一个想进入城堡和村庄的人都必须从大门经过, 并且在那里受到盘查。有幸通过了盘查进入墙里的人, 就相当于被墙里的所有居民信任了。但是人类历史表明, 这样的安全模型也是不灵光的。一个问题是, 围墙无法防止来自墙内的恶意攻击; 另一个问题是, 围墙和大门很难扩展和延伸。许多残存的中世纪城堡都可作为这种缺乏可扩充性的见证。

    如果进行类比的话, Internet可以说才刚刚跨入中世纪。石器时代的安全模型还在单主机和局域网中发挥着作用, 但它已不再对Internet普遍适用了。作为第一步,(但愿只是过渡性的一步),防火墙已经在Internet的边界网关上建立起来了。由于能够有选择地对IP包放行或者丢弃, 防火墙也限制了Internet作为一个整体的连通性, 因而,Internet的防火墙基本上同中世纪的围墙和大门有一比(屏蔽路由器对应于通用大门,代理服务器对应于专用大门)。

    今天, 我们已经不再使用围墙。取而代之的是国家签发的正式的、有法律约束力的文件, 如公民所持的护照和身份证等。这些文件确认了公民的真实身份。有人可能会争辩说, Internet也需要同样的安全模型, PKI就应该以数字手段签发Internet上的公民的证书。话虽这么说, 看看PEM在推行时的实际情况就知道建立PKI没那么容易。目前有两个IETF工作组被特许从事PKI的定义和筹建。一个遵从X.509标准系列, 另一个在试图对之进行简化。一旦PKI全部到位, 基于加密的安全协议就可以正式启用了。但是,还有一个问题: 哪个层次提供安全服务最合适? 一个可能的答案是: 没有哪个单个的层次是最合适的,但每个应用都必须根据自己的安全需要做出选择。比如, 一个需要非否认服务的应用可能去追求应用层的安全性, 而一个需要在可移动的工作站和公司防火墙之间建立安全的IP通道的应用可能由Internet层来提供服务更合适。也许对有的应用来说, 几个层次联合提供服务是最好的选择, 比如在同一个应用里, 在用SSL提供数据机密性服务的同时, 用S-HTTP提供非否认的服务。这时候, 相应的安全协议组合应该是建立在SSL上的S-HTTP。

    另一个类比有助于更好地理解应用开发人员在提供安全服务时所作的选择。假定你有一些值钱的货物需要运输, 于是去修铁路。这就有一个保证运输安全的问题。对此有几种可能的解决途径。最明显的途径有两个: 一个是确保整个铁路系统的安全性, 另一个是确保在铁路上运送的货物的安全性。如果你想确保整个铁路系统的安全性, 原则上你就要从网络层入手; 而如果你想确保货物的安全性, 你就要从应用层入手。在前一种情况下, 你改进你的铁路系统, 而货物该什么样还是什么样; 在后一种情况下,你对货物进行某种处置, 而铁路系统该什么样还是什么样。其实还有一种折衷的途径:就是你只对铁路系统的某些部分进行改进, 并且只用这部分改进了的系统运送贵重货物, 而通常的不太贵重的货物仍由未加改进的那部分铁路系统来运送。这时候, 你就要去决定运送什么货物走铁路的什么部分, 这在本质上非常象从传输层入手的情况,因为这时必须提供一个传输层的界面, 来指定使用安全的传输系统还是非安全的传输系统。这样, 就可以由应用来选择用什么样的传输系统, 而要做到这一点, 需要对应用进行一定的修改。

    让我们再回到最开始Internet同信息高速公路的比较上去。可以做另一个类比来帮助我们理解安全性的一般作用。在真正的高速公路上, 一般都使用一些控制措施来保证安全。驾车人要通过考试才能获得驾驶执造; 巡逻车在路上往返检查交通规则的遵守状况。我们还建立了一些章程来规范高速公路上的行为, 并由警察监督强制实施。但是在所有这些措施都正常实施了以后, 我们还是感到这个高速公路系统并不是完全地保险和安全了。Internet安全的情况也是如此。不管怎样, 我们总要力争建立一个尽可能完善的Internet安全体制并提供相应的安全服务。目前尚未看到更加有效的、集成化的Internet安全服务体制出台。所幸的是, 这一天的到来不会太久远了。

    附录: 缩略语对照表
    AH: Authentication Header
    BTP: Back-traffic Protection
    CA: Certification Authority
    CBC: Cipher Block Chaining
    CLNP: Connectionless Network Protocol
    DES: Data Encryption Standard
    ESP: Encapsulating Security Payload
    GSS-API: Generic Security Service API
    IANA: Internet Assigned Numbers Authority
    IESG: Internet Engineering Steering Group
    IETF: Internet Engineering Task Force
    IKMP: Internet Key Management Protocol
    IPC: Interprocess Communications
    IPRA: Internet Policy Registration Authority
    IPSEC: IETF\s Internet Protocol Security Protocol
    IPSP: IP Security Protocol
    ISAKMP: Internet Security Association and Key Management Protocol
    MKMP: Modular Key Management Protocol
    NLSP: Network Layer Security Protocol
    PCA: Policy Certification Authority
    PCT: Private Communications Technology
    PEM: Privacy Enhanced Mail
    PFS: Perfect-forward Secrecy
    PKI: Publlic Key Infrastructure
    RADIUS: Remote Authentication Dial-In User Service
    SEPP: Secure Electronic Payment Protocol
    SET: Secure Electronic Transactions
    SDNS: Secure Data Network System
    SHA: Secure Hash Algorithm
    S-HTTP: Secure Hypertext Transfer Protocol
    SKEME: Secure Key Exchange Mechanism
    SKIP: Simple Key Maanagement for Internet Protocols
    SNP: Secure network programming
    SP3: Security Protocol 3
    SSH: Secure Shell
    SSL: Secure Socket Layer
    STS: Station-to-station Protocol
    STT: Secure Transaction Technology
    S/WAN: Secure Wide-area Network
    TLI: Transport Layer Interface
    TLS: Transport Layer Security
    TLSP: Transport Layer Security Protocol

    注: 本文译自Communications of ACM, May 1997, Vol. 40, No. 5, pp 92-102. 原文作者为Rolf Oppliger, 为瑞士联邦信息技术与系统局及伯尔尼、苏黎世两大学工作.

    发布人:netbull 来自:网络安全热线