English
 电子信箱
 加入收藏

  威盾防火墙 >> 新闻中心 >> 威盾新闻 >> 黑客眼中的OpenSSL:强大的密码工具

 

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

威盾防火墙 2014-11-30

 

OpenSSL包含一个命令行工具用来完成OpenSSL库中的所有功能,更好的是,它可能已经安装到你的系统中了。

   OpenSSL是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,但是,你不应该只将其作为一个库来使用,它还是一个多用途的、跨平台的密码工具。

   这里简单说一下OpenSSL的背景,在OpenSSL之前,叫做ssleay,它是一个由Eric A.Young编写的SSL工具,它不断改进最终变成了OpenSSL,与NCSA的HTTPd变成Apache服务器的过程非常类似,今天,OpenSSL支持多种加密算法和协议。

   OpenSSL有许多的特征,而且还有SSL客户端和服务端特征,OpenSSL还有:

   ◆美国联邦政府NIST FIPS 140-2一级评估确认 
   ◆TLS,下一代SSL协议 
   ◆X.509密钥和证书的生成 
   ◆X.509证书权力 
   ◆S/MIME加密 
   ◆文件加密和粉碎 
   ◆打乱UNIX密码 
   ◆9个不同的商业密码硬件设备 
   ◆密码性能测试 
   ◆36个命令 
   ◆6个消息摘要算法 
   ◆9个密码算法 
   ◆多个加密协议

   尽管OpenSSL很复杂,但是大量的复杂性可以被避免的,本文剩下的部分将集中在易于使用的特征上,在shell代码中仅仅需要几行就可以了。

   本文使用与我早期编写的GnuPG Hacks文章一致的小结标题,以便于比较OpenSSL和GnuPG。

   入门

   首先,确认一下OpenSSL已经安装并处于你的路径之下,许多Linux发行版,甚至一下小的发行版,都包括了OpenSSL,通常,OpenSSL处于/usr/bin/下。 
   在所有的例子中,shell提示符都是$。

   第一步,输入: 
   $Content$nbsp;openssl version 
   注意这里在version选项前是没有破折号的。

   你应该看到类似下面这样的输出: 
   OpenSSL 0.9.7d 17 Mar 2004

   准确的版本号,日期和其他可能不同的细节,写本文的时候,目前的版本是OpenSSL0.98a,我们正在使用的例子能工作在大部分OpenSSL版本下。

   如果你只输入了openssl,没有附加任何的参数,你将得到下面这样的提示符: 
   OpenSSL>

   如果是这样,只需要输入quit或按Ctrl-C即可安全地退出,它OpenSSL内部命令行提示符,它没有命令行编辑功能,也没有明确的帮助功能,但是,如果你输入一个它不认识的命令,它会列出一个可用的命令列表。

   二进制文件保护

   二进制文件典型地用于使用MIME的电子邮件,如果你的电子邮件软件不支持MIME,如大多数命令行电子邮件客户端,你将被uuencode困扰,你可以使用基于64位编码的OpenSSL,复杂的MIME协议也使用的是64位编码,但是它不能直接兼容MIME。

   要使用64位编码打包二进制文件成文本文件,输入: 
   $Content$nbsp;openssl base64 < filename.bin > filename.txt

   要打开64位编码的文本文件,输入: 
   $Content$nbsp;openssl base64 -d < filename.txt > filename.bin 
   注意OpenSSL不会关心文件扩展名。

   OpenSSL与GnuPG或MIME不一样,它还能对短字符串进行编码,如下: 
   $Content$nbsp;echo "The Linux Journal" | openssl base64 
   VGhlIExpbnV4IepvdXJuYWwK

   解码: 
   $Content$nbsp;echo "VGhlIExpbnV4IEpvdXJuYWwK" | openssl base64 -d 
   The Linux Journal 
   注意-d选项,它意味着解码。

   更好的校验和

   sum和cksum是传统的UNIX校验程序,它们工作得很好,只要你不需要跨平台兼容或安全,你也不用担忧会出现2个完全不同的文件有相同的校验和值。

   尽管Linux系统经常安装了md5sum,MD5算法遭受了一个相对较新的漏洞,现在不应该使用它。如果它已经安装了,应该使用更安全的sha1sum,但是,一些版本只能同时对一个文件进行打乱,一些不能处理标准输入或者有其他的不足,如果你运行这些程序遇到了问题或者你想有一致的、比较知名的、具有良好跨平台的软件,建议考虑OpenSSL。

   OpenSSL打乱输出格式与GnuPG有一点不同,但是数字是相同的,OpenSSL格式总是要鉴定使用的算法,并总是输出一个小写的无空白的十六进制的字符串,你会发现这种格式更容易使用。

   这里有一些例子: 
   $Content$nbsp;openssl sha1 filename 
   SHA1(filename)= e83a42b9bc8431a6645099be50b6341a35d3dceb

   $Content$nbsp;openssl md5 filename 
   MD5(filename)= 26e9855f8ad6a5906fea121283c729c4

   在我早前的文章“GnuPG Hacks”中,上面的例子使用了一个包括字符串“The Linux Journal”的文件,注意这个字符串没有句号。

   如果你复杂这些结果时遇到了问题,这里提供一个带ASCII注释的十六进制的表示,注意新行末尾是vi自动加上去的:

   OpenSSL与GnuPG不一样,它没有SHA-512加密算法,但是OpenSSL有MD2,MD4,MDC2,这些都是旧的算法了,只是为了保持向后兼容,和MD5一样,现在它们都不应该拿来使用。

   快速整洁的加密

   尽管这不是OpenSSL的强项,但它也能加密文件,灵活的OpenSSL做这件事要比GnuPG复杂一些。

   OpenSSL默认选项比较少,因此要使用更多的选项,也有许多算法可供选择,一些算法如DES和RC4-40,只是为了向后兼容,现在不应该再拿来使用了,你应该使用强壮的算法如bf(它是Blowfilsh算法的简称)和-aes-128-cbc(它是美国NIST高级加密标准—AES,运行在CBS模式下使用128位密钥)。

黑客 OpenSSL


相关内容: 最新内容:
黑客攻防:最阴险的七大黑技[2014-11-30]
把手教你打造黑客也读不懂的安全密码[2014-11-30]
ADSL用户如何防止路由器遭受黑客攻击[2014-11-30]
黑客使用Web进行攻击的10大原因[2014-11-29]
黑客攻防之追踪入侵JSP站点 服务器[2014-11-28]
网管教你预防黑客DdoS攻击的技巧[2014-11-28]
Microsoft SQL Server SA弱口令实战[2014-11-30]
利用粘滞键打造入侵Vista超酷后门[2014-11-30]
IIS留system权限后门[2014-11-30]
最全的Webshell提权方法总结[2014-11-30]
防溢出提权攻击解决办法[2014-11-30]
玩转Windows系统的账户隐藏[2014-11-30]