当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > Linux Shadow-Password-HOWTO - 2. 为何shadow你的pa

Unix/Linux
Linux crontab定时执行任务 命令格式与详细例子
linux 查看用户及用户组的方法
让Linux系统有效防御ARP攻击的实用技巧
Linux 常用软件列表
linux wget 一个强大的下载命令
linux 常用脚本、命令
linux 磁盘配额 简单介绍
Linux服务器架设笔记 Squid服务器配置
ubuntu intel 集成显卡安装
ubuntu 9.04 X3100 显卡开启3D特效
Ubuntu 8.10 Server Ruby 的安装方法
Ubuntu root帐户密码修改
ubuntu下apt-get 命令参数
Ubuntu Linux下实现QQ的三种方式
Ubuntu 8.04中建立PHP+MySQL环境
Ubuntu常用软件大全
Ubuntu系统下安装Aircrack-ng
Ubuntu实现FTP功能
ubuntu 字体美化实现方法
ubuntu下netbeans汉字显示残缺问题

Unix/Linux 中的 Linux Shadow-Password-HOWTO - 2. 为何shadow你的pa


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 33 ::
收藏到网摘: n/a

  大部分目前 Linux 发行版本预设值并未包含Shadow Suite 安装。这些版本包括 Slackware 2.3, Slackware 3.0 和其他受欢迎的发行版本。主要原因之一是在原始Shadow Suite版权声明中并未很清楚的描述该软体是否需使用者付费。 Linux 使用 GNU 版权通常允续使用者可免费且任意使用相关套件。 


Shadow Suite现在维护人员 Marek Michalkiewicz  已经可以从在 BSD 样式允需再使用版权之原始作者那接收原始码。 目前版权发行已解决,因此可以预期在未来版本之预设值将包括 password shadowing。 即使如此,你仍需要自行安装。 


如果你的版本是从 CD-ROM 安装。你可能发现即使目前版本并未有Shadow Suite 安装,但你仍然可以在该片 CD-ROM 找到你需要安装的Shadow Suite。 


然而,所有Shadow Suite 3.3.1, 3.3.1-2 版本和 shadow-mk 伴随签入(login)程式和其他suid root程式均有安全上问题,因此不应该使用太久。 


所有必要档案均可以透过匿名 FTP 站或网站找到。 

在没有安装Shadow Suite的 Linux 系统,包括密码的帐号使用者资讯通常储存在 /etc/passwd 档。储存的密码为 加密(encrypted)格式。 然而,如果你问一个密码专家,他/她将告诉你真正的密码档只是编码(encoded)而不是加密格式,因为当使用 crypt(3) 时,文字档倍设为 null 且密码是键值(key)。 因此,接下来我将在这篇文件中使用 编码。 


使用在密码栏位编码的演算法於技术上是使用one way hash function。这是一个在单一方向计算简单但逆向计算非常困难的演算法。关於这正确的演算法可以在 2.4 节或於 crypt(3) 操作手册找到。 


当使用者挑选或指定一个密码,系统将随机产生一个值,叫做salt,将密码进行编码。 这表示任何特定的密码可以 4096 中不同方法储存。 salt 值将储存被编码的密码 。 

当使用者签入或提供一个密码, salt 首先接收欲储存编码密码。然後这提供密码会和 salt 值一起编码,且比较已经编码密码。如果有 match ,该使用者通过权限检查。 


随机编码和复原原始密码是有计算复杂度的(但不是不可能的)。然而,在某些系统很多使用者的密码都设为一般文字(或是一般文字的简单变化) 


系统骇客知道这件事,且将简单的加密文字和一般使用4096 salt 值密码之目录。然後他们将比较在资料库之 /etc/passwd 档之编码密码,只要他们找到一个比对,他们可以找到一个帐号之密码。这和dictionary attack有关,且用於未经许可存取系统取得和展开常用的方法之一。 


如果你想过一个 8 码的密码编码成 4096 * 13 码的字串,那麽一个用在描述 400,000 一般文字、名字、密码和简单变化的字典将需要 4GB 硬碟存取空间。 骇客需要做的只是分类字串跟检查比对结果。 自从 4GB 硬碟可以以美金 1000.00 以下买到後,对大多数系统骇客的意义可想而知 。 

如果骇客首先发现你的 /etc/passwd 档,他们只需要将真正包含在 /etc/passwd 档 salt 值的字典编码,这方法可由拥有486级电脑或几个有几百 MB 硬碟空间的十来岁的小孩适用。 


即使没有很大的磁碟空间,像 crack(1) 的工具程式通常可以在足够使用者系统中至少破解一对密码(假设系统使用者倍允许挑选他们想要的密码)。 


/etc/passwd 档也包括一些相关资讯,像使用者 ID 和群组 ID所使用的系统程式;因此 /etc/passwd 档 必须 保持全世界可读性. 如果你改变 /etc/passwd 档以致於没有人可以读取,你将发现的第一件事是 ls -l 命令将取代名称而显示使用者 ID 。 

Shadow Suite 透过将密码存至另一个档(通常是 /etc/shadow 档)来解决该问题。 /etc/shadow 档对任何人设定可读档,只有 root 权限可以读写 /etc/shadow 档。某些程式(像 xlock)不需要改变密码,只需要确认密码即可。这些程式可以以 suid root 执行或者你可以设定一个群组 shadow 用来唯读 /etc/shadow 档,然後这些程式可以执行 sgid shadow。 

透过移动密码至 /etc/shado