口令机制 在许多UNX系统中,口令和其他用户信息保 存在 /etc/passwd件中。存入该文件中的口令 是通过单向哈希函数编码的。从AT&TUNX版 本6开始, Thompson等决定采用一个不同的方 式:UNX口令采用以美国军方M-209密码机为 模型的基于旋转的算法来进行编码。这种快速 算法被证明对穷尽纯文本搜索有弱点并被 AT&TUNⅨX版本7中出现的更先进的 crypto库 代替
一、口令机制 ⚫ 在许多UNIX系统中,口令和其他用户信息保 存在/etc/passwd文件中。存入该文件中的口令 是通过单向哈希函数编码的。从AT&T UNIX版 本6开始,Thompson等决定采用一个不同的方 式:UNIX口令采用以美国军方M-209密码机为 模型的基于旋转的算法来进行编码。这种快速 算法被证明对穷尽纯文本搜索有弱点并被 AT&T UNIX版本7中出现的更先进的crypt()库 代替
1、 crypt()算法的弱点 UNIX口令加密机制源于DES加密体制, 它通常使用56位密钥(8个7位字符)加 密64位的文本块。传统的 UNIX cryp()函 数把用户口令填充到8个字符,并用每个 字符的7位形成一个56位DES密钥。该密 钥被用来对64位的零块(000000 加
1、crypt( )算法的弱点 ⚫ UNIX口令加密机制源于DES加密体制, 它通常使用56位密钥(8个7位字符)加 密64位的文本块。传统的UNIX crypt( )函 数把用户口令填充到 8个字符,并用每个 字符的7位形成一个56位DES密钥。该密 钥被用来对64位的零块(00000000)进 行加密
●加密结果再次用该密钥加密一这个过程 重复25次。该过程的最终结果被写到一 个个字符的串中并被保存到/etc/ passwd 文件中,直接从该过程的逆操作恢复是 非常困难的。但该编码方式对于字典攻 击有弱点。一个巨大的单词集合可以被 加密、保存,然后与 /etc/passwd中的加密 口令进行比较
⚫ 加密结果再次用该密钥加密—这个过程 重复25次。该过程的最终结果被写到一 个11个字符的串中并被保存到/etc/passwd 文件中,直接从该过程的逆操作恢复是 非常困难的。但该编码方式对于字典攻 击有弱点。一个巨大的单词集合可以被 加密、保存,然后与/etc/passwd中的加密 口令进行比较
为了使基于DES的策略更强壮且能抵御 字典攻击,传统UNX口令机制的设计者 增加了“sat一个12位数字,在0 4095之间。sl被用来搅乱DES算法,可 把一个纯文本口令加密为4096种不同的 果
⚫ 为了使基于DES的策略更强壮且能抵御 字典攻击,传统UNIX口令机制的设计者 增加了“salt”——一个12位数字,在0~ 4095之间。salt被用来搅乱DES算法,可 把一个纯文本口令加密为4096种不同的 结果
图3-3UNX口令加密 口令 密钥 纯文本 修改的 25次 00000000 DES 时钟 口令条目
图3-3 UNIX口令加密 口令 00000000 时钟 口令条目 修改的 DES 密钥 纯文本 25次