分享
 
 
 

LinuxShadow-Password-HOWTO-2.为何shadow你的passwd档?

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

大部分目前 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/shadow 档,我们可以有力的备有骇客从存取编码密码到执行 dictionary attack 的证据。

除此之外, Shadow Suite 新增许多特色:

设定档於设定为签入时预设(/etc/login.defs)

新增、修改和删除使用者帐号群组之工具程式

密码寿命计算及到期日

帐号到期日跟锁死

隐藏群组密码 (可选择的)

两倍长度密码 (16 字元密码) [不建议使用]

针对使用者密码选择有较好的控制

可拨接密码

备用有效权限程式 [不建议使用]

安装 Shadow Suite 贡献为有更安全系统,但是还有其他方法可以改善 Linux 系统的安全,且最终将有一系列的 Linux 安全 HOWTO's 将讨论其他安全基准和相关文件版本.

针对目前其他 Linux 安全文件资讯,请参照网址: Linux Security home page.

2.1 为何您不要 shadow 你的 passwd 档

有一些状况跟设定运用在安装 Shadow Suite 将 不是 好主意:

There are a few circumstances and configurations in which installing the Shadow Suite would NOT be a good idea:

主机没有包含使用者帐号。

主机是在 LAN 上跑且使用网路资讯服务(Network Information Services, NIS)得到或供应使用者名称和密给网路上的其他机器使用(事实上这还是可以执行,但是实际上并不能增加任何安全)。

机器是使用终端主机来验证使用者经由 NFS(Network File System), NIS 或某些其他方法。

机器跑其他软体验证使用者且没有任何 shadow 版本或原始码可获得。

2.2 格式化 /etc/passwd 档

一个 non-shadowed /etc/passwd 档格式如下所示:

username:passwd:UID:GID:full_name:directory:shell

其中

username

使用者(签入)名称

passwd

编码密码

UID

使用者编号

GID

预设存组编号

full_name

使用者全名 - 事实上这个栏位称作 GECOS (General Electric Comprehensive Operating System) 栏位且可以储存全名外的资讯。Shadow commands and manual pages refer to this field as the comment field.

directory

使用者根目录 (绝对路径)

shell

使用者签入的环境 (绝对路径)

举例说明:

username:Npge08pfz4wuk:503:100:Full Name:/home/username:/bin/sh

中,Np 是 salt 且 ge08pfz4wuk 是编码密码。 已编码的 salt/password 就像 kbeMVnZM0oL7I 且这两个字串是一样的密码。对相同密码可能有 4096 种可能的编码。(本□例的密码是 "passwaor",这是比较 不好 的密码)。

只要 shadow suite 已经安装, /etc/passwd 档将被替代成:

username:x:503:100:Full Name:/home/username:/bin/sh

本□例之第二栏位 x 现在只是一个

place holder。

/etc/passwd档的格式并未真的改变,只是不再包含 编码密码。这表示任何程式可以读取 /etc/passwd 档,但并不真的需要确认密码是不是正确地运作。

这些密码现在被重新放在 shadow 档(通常是在 /etc/shadow 档)。

2.3 格式化 shadow 档

/etc/shadow 档包括下列资讯:

username:passwd:last:may:must:warn:expire:disable:reserved

其中

username

使用者名称

passwd

编码密码

last

密码上次更动日期,以从1970年1月1日算起的天数代表

may

密码改变前天数

must

密码最常使用天数

warn

代表期限前几天就事先警告使用者

expire

超过密码过期天数後,就关闭该帐号

disable

帐号关闭,以从1970年1月1日算起的天数代表

reserved

预备栏位

依照之前□例将变成:

username:Npge08pfz4wuk:9479:0:10000::::

2.4 回顾 crypt(3).

从 crypt(3) 使用者文件得到:

"crypt 是密码加密方程式。 It is based on the Data Encryption Standard algorithm with variations intended (among other things) to discourage use of hardware implementations of a key search.

[The] key 是使用者输入的密码。 [编码字串全是 NULLs]

[The] salt 是从 [a-zA-Z0-9./] 集合中选出的两个位元字串。该字串是用於扰乱在 4096 种不同方法之一个演算法。

透过得到 key 的每个位元的最低 7 bit[s],可以建立 56-bit key 。 这56-bit key 是用在重复加密一个常数字串(通常是包含所有灵的字串)。 传回值指到加密密码是一连串可印出之13个 ASCII 字元(最前面的一两个字元表示 salt 本身)。 透过每次的呼叫可将传回直指到静态资料。

警告讯息: Key space 包括 2**56 即等於 7.2e16 可能的值。与用重大的平行电脑将 Key space 极尽的搜寻是可能。像 crack(1) 软体用来搜寻部分的由人产生之密码的 key space 是可获得的。因此,密码的选择至少应该避免使用一般字及名字。一个用来检查解开密码选择的 passwd(1) 程式使用是

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有