Solaris让我用不同的密码输入了相同的前8个字符


42

我不知道这是否正常,但事实是,我有一个名为gloaiza的Solaris用户,其密码为password2getin

我使用PuTTY登录服务器,我只输入了192.168.224.100,它会提示Windows询问用户,所以我输入gloaiza,然后输入密码,假设我误输入password2geti就可以了!我在服务器上!

那正常吗?如果我输入诸如password2getin2之类的内容,它也可以工作。

我不是英语为母语的人,所以,如果您无法理解某些内容,请问我

操作系统:Oracle Solaris 10 1/13


4
八个字符以下会发生什么?不会passwork让你在?
2016年

@thrig好吧,我的实际密码为9个字符长,所以我们说密码pass2word,然后将它与工作pass2worpass2word1pass2worr1,等...我认为这一切工作,一旦你输入pass2wor 我不认为这是一个很大的问题,但也不是很好。
gloaiza

3
只要您正确输入了前8个字符,它就会让您进入。不幸的是,在较旧的solaris版本中,使用加密会生成密码,而无需考虑字符9及之后的字符。
MelBurslan'8

14
对于所有的嵌入式开发者在这里思考,善意提醒“这不可能发生在我的系统:” busybox会悄悄的DES,如果你不具备所有正确的密码选项中启用了它.config 你的libc。今天也许要花点时间仔细检查您的passwd/ shadow文件?;)

11
@drewbenn-谁想到地静默地降低安全性是个好主意?耶稣基督。
达沃

Answers:


65

操作系统将密码哈希存储在/etc/shadow(或历史上/etc/passwd;;或其他一些Unix变体上的其他位置)中。从历史上看,第一个广泛使用的密码哈希是基于DES的方案,其局限性在于它仅考虑了密码的前8个字符。另外,密码哈希算法需要很慢。当基于DES的方案发明时,它有点慢,但是按照今天的标准,这还不够。

从那时起,已经设计出了更好的算法。但是Solaris 10默认使用基于DES的历史记录。Solaris 11默认使用基于迭代SHA-256的算法,该算法符合现代标准。

除非您需要与旧系统的历史兼容性,否则请切换到迭代的SHA-256方案。编辑文件/etc/security/policy.conf并将CRYPT_DEFAULT设置更改为5代表crypt_sha256。您可能还需要设置CRYPT_ALGORITHMS_ALLOWCRYPT_ALGORITHMS_DEPRECATE

更改配置后,请运行passwd以更改密码。这将使用当前配置的方案更新密码哈希。


1
谢谢你的回答。当您说“ 除非您需要与古代系统的历史兼容性 ”时,您的意思是真的,我的意思是……是否有可能真的需要基于DES的方案,而对于某些情况却无法更改为SHA-256原因?
gloaiza

11
@gloaiza如果您的密码哈希文件与NIS或其他某种运行于真正古老的操作系统(如Solaris 2.x)的计算机共享的方法,则可能会发生。否则,不会。
吉尔(Gilles)'所以


21

至少在默认的Solaris 10和更早的配置上,这是预期的。

您的系统使用的是旧版Unix crypt_unix算法,实际上将使用的字符数限制为八个。

passwd手册页中对此进行了说明

密码必须符合以下要求:

  每个密码必须包含PASSLENGTH字符,其中PASSLENGTH在
  / etc / default / passwd并设置为6。将PASSLENGTH设置为八个以上
  字符需要使用支持以下内容的算法来配置policy.conf(4)
  大于8个字符

由于该算法实质上已过时。您应该crypt.conf通过设置CRYPT_ALGORITHMS_DEPRECATECRYPT_DEFAULT进入/etc/security/policy.conf文件,切换到更好的选项(手册页中列出的可用值)。

参见http://docs.oracle.com/cd/E19253-01/816-4557/concept-63/index.html


1
“越高越好”是不正确的。算法2a(bcrypt)可能是最好的
停止危害莫妮卡

@OrangeDog点已采取,建议已删除
jlliagre

7

在Oracle论坛上查看此主题

使用默认的“ crypt_unix”密码加密方案时,您所描述的行为是预期的。此方案将仅加密密码的前八个字符,因此,再次输入密码时,仅前八个字符需要匹配。它不是“ bug”,而是算法的已知局限性-很大程度上是为了向后兼容而保留的,不幸的是,在安装Solaris时将其设置为缺省值。

要解决此问题,请将您的操作系统设置为使用MD5或Blowfish算法,而不是crypt_unix。

可以在/etc/security/policy.conf文件中进行更改。您可以将crypt算法设置为允许,并且还有一项设置可以弃用(禁止)使用“ crypt_unix”算法,并将默认值更改为更安全的方法。

有关更多信息,请参见《 Solaris 10系统管理指南:安全性服务》。

另请参阅更改密码算法(任务图),尤其是如何指定密码加密算法

为您选择的加密算法指定标识符。

...

在/etc/security/policy.conf文件中,键入标识符作为CRYPT_DEFAULT变量的值。

...

有关配置算法选择的更多信息,请参见policy.conf(4)手册页。


2

仅就FYI而言,在7.1版之前的IBM AIX系统上也是如此。

这很有趣,因为我使用的该系统具有“不能重用最后10个密码中的任何一个”策略,该策略确实考虑了整个密码长度,但是在登录时仅检查了前8个字符。因此您可以设置密码喜欢easypass_%$xZ!01easypass_%&ssY!02easypass_%$33zoi@@,...每一个强制更改密码,有效地保持easypass作为密码多年。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.