理解 rsa/dsa 认证
daniel robbins (drobbins@gentoo.org) 【相关文章:我的adsl-server被攻击了】 【扩展阅读:iptable指南之(1)序言】 总裁/首席执行官,gentoo technologies,inc. 【扩展信息:REDhat9+vsftpd1.1.3+】 2001 年 7 月在本系列文章中,您将学习 rsa 与 dsa 认证的工作原理,以及了解如何正确设置无密码认证。在本系列的第一篇文章里,daniel robbins 主要介绍 rsa 与 dsa 认证协议并向您展示如何在网络上应用这些协议。
我们中有许多人把优秀的 openssh(参见本文后面的参考资料)用作古老的 telnet 与 rsh 命令的替代品,openssh 不仅是安全的而且是加密的。openssh 更加吸引人的特性之一是它能够使用基于一对互补的数字式密钥的 rsa 与 dsa 认证协议来认证用户。rsa 与 dsa 认证承诺不必提供密码就能够同远程系统建立连接,这是它的主要魅力之一。虽然这非常吸引人,但是 openssh 的新用户们常常以一种快速却不完善的方式配置 rsa/dsa,结果虽然实现了无密码登录,却也在此过程中开了一个很大的安全漏洞。
什么是 rsa/dsa 认证? ssh,特别是 openssh(完全免费的 ssh 的实现),是一个不可思议的工具。类似于 telnet 或 rsh,ssh 客户程序也可以用于登录到远程机器。所要求的只是该远程机器正在运行 sshd,即 ssh 服务器进程。但是,与 telnet 不同的是,ssh 协议非常安全。加密数据流,确保数据流的完整性,甚至安全可靠的进行认证它都使用了专门的算法。 然而,虽然 ssh 的确很棒,但还是有一个 ssh 功能组件常常被忽略、被危险的误用或者简直就是被误解。这个组件就是 openssh 的 rsa/dsa 密钥认证系统,它可以代替 openssh 缺省使用的标准安全密码认证系统。 openssh 的 rsa 与 dsa 认证协议的基础是一对专门生成的密钥,分别叫做专用密钥与公用密钥。使用这些基于密钥的认证系统的优势在于:在许多情况下,有可能不必手工输入密码就能建立起安全的连接。 尽管基于密钥的认证协议相当安全,但是当用户并不完全了解这些简化操作对安全性的影响,为了方便而使用某些简化操作时,就会出现问题。本文中,我们将详细讨论如何正确使用 rsa 与 dsa 认证协议,使我们不会冒任何不必要的安全性风险。在我的下一篇文章里,我将向您展示如何使用 ssh-agent 隐藏已经解密的专用密钥,还将介绍 keychain,它是 ssh-agent 的前端,可以在不牺牲安全性的前提下提供许多便利。如果您一直想要掌握 openssh 更高级的认证功能的话,那么就请您继续往下读吧。 rsa/dsa 密钥的工作原理 下面从整体上粗略的介绍了 rsa/dsa 密钥的工作原理。让我们从一种假想的情形开始,假定我们想用 rsa 认证允许一台本地的 linux 工作站(称作 localbox)打开 remotebox 上的一个远程 shell,remotebox 是我们的 isp 的一台机器。此刻,当我们试图用 ssh 客户程序连接到 remotebox 时,我们会得到如下提示: % ssh drobbins@remotebox ... 下一页