关于GNU/Linux 安全性1

密码安全性及加密

   大多数 UNIX 系统(包括 GNU/Linux)基本都使用一个单向加密算法 -- DES(Data Encryption Standard --数据加密标准)来加密您的密码。

加密后的密码存储在 /etc/shadow 文件中。当您登录时,您输入的密码被再次加密,并同保存密码的文件中的相应条目比较。如果它们匹配,就表示两者相同,您就被允许访问。虽然 DES 是一种双向加密算法(对于给定密钥,您既能够对消息编码也能够解码),但是大部分 Unix 系统使用的是其体。这意味着不能逆转加密过程从 /etc/shadow 文件中破解出密码。除非您的密码足够随机,使用暴力攻击法(brute force attack),

比如“Crack”或“John the Ripper”(参见“Crack 和John the Ripper”一节)经常能够猜测出密码。PAM 模块(见下文)允许您使用不同的加密例程对您的密码加密(诸如 MD5)。不过,您也能够利用 Crack。可以定期对您自己的密码数据库执行 Crack 以找出不安全的密码。然后联系那个倒楣的用户,教他怎样换个好密码。

 

PGP 和公钥密码技术

    公钥密码技术(比如为 PGP 而使用的)用一个密钥加密,另一个解密。相反,传统密码技术使用一把密钥加密和解密。双方都必须知道这一密钥,因此它必须通过某种安全途径从一方传送到另一方。 为减轻对安全传送密钥的需求,公钥加密技术使用两把分离的密钥:公钥和私钥。每个人的公钥都可以被其他人用来加密,同时他自己保存自己的私钥来解密使用正确公钥加密的信息。使用公钥和私钥密码技术各有其优点。

    PGP (Pretty Good Privacy -- 良好隐私)在 GNU/Linux 上的支持十分优秀。在 LinuxFocus上也有一篇有关如何一步步地在 GNU/Linux 上配置 PGP 的向导。它是为 PGP 国际版本所撰写的,但是也可容易地改编到美国版上。您可能还需要为某些最新的 GNU/Linux 版本打补丁;这些补丁可在 metalab 找到。有一个开放源代码的项目重新实现了 PGP。GnuPG 是 PGP 的完全且免费的替代品。由于它没有使用 IDEA 或者RSA 加密算法,它可以不被限制地使用。GnuPG 与 OpenPGP 兼容。详情请参见 GNU 隐私卫士网页。有关密码学更多详情请参见 RSA 密码学 FAQ。在那里您会找到关于“Diffie-Hellman”、“公钥密码技术(public-key cryptography)”、“数字认证(digital certificates)”等术语的信息。

    SSL、S-HTTP 和 S/MIME 用户经常会询问有关各种不同的安全和加密协议的不同之处,以及如何使用它们。虽然本文并非为专门讨论加密而写,却不妨简单谈谈每个协议是什么,以及到哪里可以找到更多信息。

    SSL: - SSL,或称为安全套接字层(Secure Sockets Layer),是由网景公司(Netscape)开发的为 Internet 提供安全性的加密措施。它支持几个不同的加密协议,并提供客户端和服务器端认证。SSL 在一个透明层操作,并为数据建立一个安全的加密的信道,因此可以无缝地对许多种类的数据加密。一般可以在使用 Communicator 浏览某个安全网站的安全在线文档时见到这种情况。而且它也是 Communicator 以及其他许多网景公司加密数据安全通讯的基础。进一步的信息请参见 OpenSSL 网站。有关网景公司的其他安全性实现技术以及理解这些协议的起点请参见网景安全中心。还请注意,为了安全 SSL 协议能被用于“包裹”其他常见的协议。

 

    S-HTTP: - S-HTTP 是另一个在 Internet 上提供安全服务的协议。它被设计用来提供保密性、认证、完整性、和不可抵赖性[不可能误认为其他人],并同时通过在参与传送的各方之间协商来支持多重密钥管理和密码技术。S-HTTP 受实现它的特定软件的限制,而且它独立地加密每一条消息。

 

    S/MIME: - S/MIME,或称为安全多目的 Internet 邮件扩展(Secure Multipurpose Internet Mail Extension),是用来在 Internet 上加密电子邮件及其他类型消息的加密标准。它是由 RSA 开发的一个开放标准,

 

    因此很有可能在某一天会在 GNU/Linux 上出现。 IPSEC 实现 同 CIPE 以及其它数据加密形式一样,GNU/Linux 上的 IPSEC 有好几个实现。IPSEC 是一项由 IETF 开发的用来在 IP 网络层上建立密码安全的通讯,以及提供认证、完整性、访问控制、和保密性的一项成果。有关 IPSEC 及 Internet 草案详情请参见 ipsec 许可证。其中,您也会找到有关密钥管理的其他链接,以及一个 IPSEC 邮件列表及其存档。

 

    由亚利桑那大学(University of Arizona)开发的 x-kernel GNU/Linux 实现使用一个称为 x-kernel 的面向对象的框架实现网络协议。简单来说,x-kernel 是一种在内核级传递消息的方法,这使得实现更为简单。该项目现已关闭,但是可在 x-Kernel 项目网站找到其联系方式。 另一个可以自由使用的 IPSEC 实现是 GNU/Linux FreeS/WAN IPSEC。他们的网页声明:“这些服务让您能够在不受信任的网络上建立安全的隧道。任何穿越不受信任网络的数据都会在一端由

 

   IPSEC 网关计算机加密,并由另一端的网关解密。其结果是 VPN (虚拟私有网络)。这是一个能够有效地保护隐私的网络,即使它包括一些使用不安全 Internet 连接的位于不同站点的计算机。” 同其他形式的密码技术一样,由于受出口限制,它不能够默认同内核一起分发。

 

   ssh (Secure SHell -- 安全 SHell)和 stelnet ssh 和 stelnet 是两套让您使用加密连接登录到远程系统的程序。 openssh 是一套用来作为 rlogin、rsh 和 rcp 的安全替代的程序。它使用公钥密码技术来加密两个主机间的通讯,以及认证用户。可以用它来安全地登录到远程主机或者在主机间复制数据,并同时避免中间人攻击(session hijacking -- 会话拦截)以及假冒 DNS (DNS spoofing)。它将在您的连接上执行数据压缩,并保护主机间X11 通讯。

   现已有好几个 ssh 实现。可在 Datafellows 网站的 ssh 主页上找到由 Data Fellows 开发的最初的商业实现。优秀的 OpenSSH 实现基于 DataFellows ssh 的一个早期版本,并被整个重写以免包含任何专利部分。它是免费的并以 BSD 许可协议发布。可在 OpenSSH 网站找到。 还有一个开放源代码项目“lsh” 从头开始重新实现了 ssh。详情请参见 LSH 网站。 您也可以从您的 Windows 工作站使用 ssh 连接到 GNU/Linux ssh 服务器。有好几个免费可用的 Windows 客户端,包括 PuTTY 以及 DataFellows 开发的 Datafellows 网站上的商业实现。

 

   SSLeay (已过时,见下述 OpenSSL)是网景公司的 Secure Sockets Layer (安全套接字层)的一个免费实现。它由 Eric Young 开发。它包含了一些程序,比如:“Secure telnet”、Apache 的一个模块、一些数据库、以及一些算法(包括DES、IDEA 和“Blowfish”)。 使用该库可以建立一个安全的 telnet (在 telnet 上提供加密)。不同于 SSH,stelnet 使用 SSL (由 网景公司开发的安全套接字层协议(Secure Sockets Layer protocol))。循着 SSLeay 和 SSLapps FAQ 链接下去,您能够了解 Secure telnet 和 Secure FTP。注意 OpenSSL 项目以 SSLeay 为基础,并期望开发一个健壮的、商业级的、全功能的、和开放源代码的工具集,以实现安全套接字层(SSL v2/v3)和传输层安全性(TLS v1)协议以及一个全能的通用的密码技术库。有关该项目的详情请咨询 OpenSSL 主页。在 OpenSSL-相关的应用程序网站上列举了众多基于 OpenSSL 的应用程序。SRP 是另一个安全 telnet/ftp 的实现。参见其网页: SRP 项目正在开发安全的 Internet 软件让全世界免费使用。从一个完全安全的 Telnet 和 FTP 发行版起,我们希望改善脆弱的网络认证系统,而不为了安全性牺牲用户友好性。安全性应该是默认的,而非可选的。” 详情请访问斯坦佛大学(Stanford University)网站。PAM - 可插入认证模块(Pluggable Authentication Modules) 您的 Mandrakelinux 随带一个统一的认证方案,它称为PAM。PAM 让您能随时改变您的认证方法以及需求,并且不需要重新编译任何代码就封装了所有本地认证方法。对 PAM 的配置超出了本章讨论范围,但是请您一定要浏览 PAM 网站。

 

    对于 PAM 您只需要做: 对您的密码采用不同于 DES 的加密方式(让它们面对暴力解码(brute-force decode)时更为坚固)。对您所有用户使用资源限额,以防止他们进行拒绝服务(denial-of-service)攻击(进程数、占用内存量等等)。随时启用 shadow password (见下文) 只在特定的时间允许特定的用户从特定的地方登录 只需要几小时安装并配置您的系统,您就可以避免许多攻击,甚至在它们发生之前。例如:使用 PAM 禁用整个系统上对用户主目录(home directory)中 .rhosts文件的使用,这只需要在 /etc/pam.d/rlogin 中添加以下几行:

# # Disable rsh/rlogin/rexec for users # login auth required pam_rhosts_auth.so no_rhosts

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值