数据加密 元杰 2000年 第23期   事实上,所有的网络通信数据都可能被攻击者截取并解密。如果他们入侵了网络中的一台机器,并安装口令窃听器(sniffer),那么整个网络可能会在几小时内被完全控制。许多ISP或网络供应商常常将客户的机器通过以太网HUB连接,这将导致该网络上所有机器都可以截取到网络中的所有通信,如收发E-mail、telnet会话等,这就是需要加密网络通信数据的主要原因。   在加密网络数据方面,不同的网络结构层次上有各种各样的实现机制。有些仅加密内容数据(如用PGP加密E-mail);有些加密会话(SSL);还有些加密数据包中的有效数据(IPSec和某些VPN)。最好的解决方案应该是IPSec,因为它不须对应用程序作任何改动,而且能够为计算机的连接提供很高的安全性。但目前IPSec尚未被广泛采用,其中的一个原因是微软在这方面的支持很不完善;另一个原因是美国安全法规限制它只能在北美地区应用。因此目前应用得最多的是由Netscape公司提出的SSL (Secure Sockets Layer 安全套接字层)。SSL在会话层上加密数据,现在大多数WWW浏览器、E-mail/news阅读器和一些ftp、telnet客户软件都支持SSL。LINUX服务器的大多数服务也都支持SSL加密。然而SSL要求客户端也必须支持SSL,因此它更多地被应用于组织和公司的内部网络。   一、SSL主要网站:http://www.openssl.org/。   1.HTTP-SSL:它对最常用的WWW服务器——Apache及许多商业WWW服务器,如 Ret Hat Secure Server、Stronghold 等,提供了很好的SSL支持。北美地区以外的用户可到http://www.Apache-ssl.org/ 免费下载。   2.Telnet - SSL:SSL telnet和MZ telnet具有比普通Telnet更高的安全性,但是其易用性不如SSH,而且SSH是完全免费的。服务器和客户端软件包可在以下网址找到:   ftp://ftp.uni-mainz.de/pub/internet/security/ssl/ (tar)   ftp://ftp.replay.com/pub/replay/linux/redhat/ (RPM)   3.FTP - SSL:对于很常见的FTPD服务器,如WU-FTPD,可安装支持SSL的补丁程序,它特别适合需要大量使用FTP访问的用户。下载网址: ftp://ftp.uni-mainz.de/pub/internet/security/ssl/ (tar) ftp://ftp.replay.com/pub/replay/linux/redhat/ (RPM)   二、虚拟专用网(VPN)解决方案   IPSec:IPSec支持目前大多数标准,特别是支持IPv6,很可能成为未来VNP技术的标准。   1.PPTP (Point to Point Tunneling Protocol,点对点隧道协议):PPTP是由MS拥有版权的VPN解决方案。虽然它已被发现存在几个安全漏洞,但如果你需要在LINUX中提供PPTP的具体实现过程请访问以下网址:http://www.moretonbay.com/vpn/pptp.html   2.CIPE (Crypto IP Encapsulation):免费的CIPE采取了IP层加密机制,通常用于路由器间通信,在不安全网络(如Internet)间提供“安全的网桥”。   官方网址:http://sites.inka.de/~W1011/devel/cipe.htl ECLiPt Secure Tunnel (Beta)   3.LINUX VPN的解决方案:虽然仍在测试当中,不应出现在关键应用中,但它已开始显示出很好的效果。   官方网址:http://eclipt.uni-klu.ac.at/projects/est/   三、Stunnel:Stunnel是基于SSL的网络服务安全解决方案。服务器端为UNIX平台,客户端为UNIX或Windows平台。   网址: http://mike.daewoo.com.pl/computer/stunnel/   四、Encrypting Data:Encrypting Data 包含了几个数据加密程序,有些是可执行文件,有些是驱动程序。它适用于加密数据及传输,但需要通信两端都安装有正确(兼容版本)的软件且需要交换公共密钥。这对于某些人来说是很困难的,毕竟,要相信某个人的公共密钥,最安全的方法是直接从他(或你信任的人)手中得到它。基于驱动程序的加密系统,如CFS的实现机制就比较简单了,只需要用户提供一个口令或密钥就得访问所需的文件。   1.HardEncrypt:包括基于时间的密钥生成器和一套应用工具程序。基于时间的加密理论上是不可破解的。它根据一组随机数加密私有数据,解密时需要时间密钥,你必须首先将时间密钥传送给接收方。因此,这种加密结构在一次数据传输过程中只传送了一次敏感数据。   下载网址:http://www.csuglab. cornell.edu/Info/People/jcr13/HardenedCriminal/main.html   2.硬盘加密软件CFS (Cryptographic File System):可使数据以加密的格式保存在硬盘中,而且还可以使用文件加密程序(如PGP)加密其中的文件和目录。   网址:http://www.cryptography.org/   ftp://ftp.replay.com/pub/relay/linux/redhat/(RPM)   http://www.debian.org/Packages/unstable/non-us/cfs.html (debian)   3.TCFS:TCFS是核心层的数据加密工具,它与CFS相似,另有几个优点:在核心层实现,因而速度更快;与NFS紧密集成,提供本地和网络数据安全;解密过程由客户端完成,口令不用通过网络传送。但目前其仍未被加入到2.2内核。   下载网址: http://tcfs.dia.unisa.it/   4.PPDD:PPDD允许用户建立加密的磁盘分区,该分区可以是一个实际分区或loopback设备(一个文件,但被安装为一个文件系统)。   下载网址:http://linux01.gwdg.de/~alatham/   5.Encrypted Home Directory:工作方式与CFS相似,但它提供的是一个加密目录。其实现机制是在/crypt/目录下以用户UID建立一个文件,并将其安装为一个loopback设备供用户访问,加密和解密在同一台机器上完成。该软件仍在开发中,使用前请备份好重要数据。   下载网址:http://members.home.net/id-est/   五、PGP (Pretty Good Privacy):是公共密钥加密的先驱,目前在UNIX、Windows和Macintosh中使用得最为广泛,但由于它已商业化了,因而不可避免地对用户造成某些影响。我个人认为,与加密和安全有关的所有软件都必须是公开源代码的,否则如何才能让我确信它是安全的呢?PGP被NAI公司收购后,我已无法百分之百地相信它在文件安全存储与传输方面是否仍然安全。   1.PGP的下载网址:ftp://ftp.replay.com/    http://www.pgp.com/    http://www.pgpi.org/   2.GnuPG (GNU Privacy Guard),它是PGP的GNU(公开源代码)版本。下载网址:http://www.gnupg.org/