频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

黑客眼中的OpenSSL:强大的密码工具(4)

作者: Anthony J. Stieber/黄永兵 译 出处:51CTO.com 2008-03-26 15:23    砖    好    评论   进入论坛
阅读提示:OpenSSL包含一个命令行工具用来完成OpenSSL库中的所有功能,更好的是,它可能已经安装到你的系统中了。
加密密码

还有一些事情是GnuPg不能做的,OpenSSL内置了一个命令用来创建加密的linux密码,就象/bin/passwd一样。

跳过这个段落避免陷入钻牛角尖的密码术,尽管通常叫做加密,linux密码实际上使用的是MD5或旧的UNIX密码打乱机制(基于DES加密算法),这就允许linux不知道你的密码,即使你提供了正确的密码让它知道了。当你设置你的密码时,linux打乱你的密码并保存在/etc/shadow中,当你登陆时,linux提取你输入的密码并再打乱一次,再与保存在/etc/shadow中的进行比较,如果匹配你提供的就是正确的密码,你就能登陆,如果不匹配,你也不清楚密码是好多了,因为存储的是打乱后的数据,计算机也不会知道你的密码是好多,反正你是不能登陆进去的。

这就是为什么打乱你自己的密码有用了,假设你在另一个计算机上需要一个新密码,或许它是一个新账号或你忘记了旧的密码让管理员给你重设密码,如果你能亲自告诉管理员,那么没有问题,但是如果管理员不在怎么办呢?或许你从来都没有和管理员见过面,你怎么传输你的新密码?电子邮件是不安全的,电话可能要好一点,邮寄一封信可能要好几天(可能会有其他安全问题),传真机,文本消息和大多数纸张上的东西是不安全的。

更糟糕的是,你可能不信任那个管理员,当然,管理员通常就是root,但是其他人可能知道你的密码,或许你象在其他机器上使用相同的密码,并且你也不信任那些机器的管理员。
因此,使用下面的方法:

$ openssl passwd -1
Password:
Verifying - Password:
$1$zmUy5lry$aG45DkcaJwM/GNlpBLTDy0

输入2次密码,它不会回显的,如果你有多个帐户,就运行多次上面的命令,输出的内容就是密码加密后的结果,由于采用的是随机加密,每次运行结果都是不一样的,即使密码是相同的。

在我的例子中,密码打乱后是这样的:
$1$zmUy5lry$aG45DkcaJwM/GNlpBLTDy0
你的密码打乱后可能与这里完全不同,除了开头的$1$。

打乱后的密码【译者注:实际上通常我们叫做hash值】就能用于电子邮件、传真、文本消息甚至通过电话交谈传输给管理员了,管理员据此可以重新设置你的密码hash值。

在管理员收到你的密码hash值后,它可以手动修改/etc/shadow或使用chpasswd命令,后面需要一个临时的新文件,叫做newpassword,你的登陆Id和密码hash值象这样:

LoginidHere:$1$ywrU2ttf$yjm9OXTIBnoKJLQK2Fw5c/
这个文件可以包括多行,为其他帐户提供类似的功能。

然后,管理员作为root登陆运行:
chpasswd --encrypted < newpassword

现在,新密码已经设置好了,一旦你登陆后立即修改你的密码是个好主意,除非你使用的是一个强壮的密语,这是因为密码hash值,一旦暴露,就成为离线强制破解的对象,除非这个密码是真的很长。

这个设置密码的方法是相当安全的,例如:使用这个技术,某个人能获取到密码hash值,创建一个账号,并知道登陆id和主机名,但是只有原先创建这个用户的人才知道密码,即使这个账号的密码hash值发布在杂志上也不用担心。

顺便说一下,那个hash值对应的密码是完全随机的基于64位字符编码的28位长,因此要破解它是非常困难的,但是请注意,不要用那些密码已经公布出来的hash值创建账号,如:
HXzNnCTo8k44k8v7iz4ZkR/QWkM2

密码和hash值象下面这样创建:
$ openssl rand 21 -base64
HXzNnCTo8k44k8v7iz4ZkR/QWkM2
$ openssl passwd -1 HXzNnCTo8k44k8v7iz4ZkR/QWkM2

这些例子使用MD5密码hash值,目前通用的linux系统都是这样,如果你需要使用旧的UNIX系统hash值,只需要去掉-1参数,例如:
$ openssl passwd
Password:
Verifying - Password:
xcx7DofWC0LpQ
最后这个密码hash值的密码是:TheLinux


共5页: 上一页 [1] [2] [3] 4 [5] 下一页
【内容导航】
 第 1 页:入门  第 2 页:二进制文件保护
 第 3 页:快速整洁的加密  第 4 页:加密密码
 第 5 页:密码基准测试
专题
微软Forefront企业安全解决方案
VPN安全技术与应用
安全防范与策略
国内安全厂商新排名出炉 谁是你心中的第一
冷眼旁观2007年半年安全报告
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。