2008年8月19日星期二

Google推出KeyCzar软件加密工具

  搜狐IT消息,据国外媒体报道,Google正在开始涉足密码领域,近日发布了一个名为KeyCzar的开源工具,来帮助开发者在他们的应用软件内使用加密技术。

  据参加开发KeyCzar的Google安全软件工程师Steve Weis表示,开发这个工具的目的是为了帮助开发者,希望这个更安全、更可靠的加密工具能够帮助他们来加密自己的程序。Weis在博客中表示,加密功能是一把双刃剑,如果设计不好,可以带来严重的安全漏洞。

  开发者在进行程序加密的时候经常会犯一些错误,例如使用过时的加密算法,或者不能够更换新的密钥,这些错误将会导致加密工具变得毫无用处。KeyCzar的目的就是简化这些操作,让开发者不仅仅能够部署加密工具,而且还能够根据需要管理和修改密钥。

  KeyCzar的密钥版本系统让开发者可以轻松更换和收回密钥,而不用担心向后兼容问题,也不用对源程序进行任何修改。不过Google警告称,人们不应该将KeyCzar看做一个完整的密码系统。它并不包含任何实际的密码库,它不能实现很多真正的密码任务操作。

  Google在其Google Code服务中提供了KeyCzar第一个版本的下载。目前该工具只支持Java和Python编程语言,不过Google计划最近再发布一个C++版本。

  Google还邀请第三方加入这个开源项目。开发者可以通过KeyCzar的Google Code页面加入该项目。

  根据我下载的KeyCzar的JAR包源代码看,KeyCzar不是一套密码系统,而是用于方便调用常用密码系统(例如AES,RSA,DSA等加密算法),可以比较轻松的创建各个算法的密钥。以下是KeyCzar所使用的加密算法:

  HMAC:默认256位SHA1散列算法。

  AES:默认128位AES密钥,也支持192和256位的密钥。

  DSA:默认使用DSA-SHA1签名算法,默认密钥长度1024位。

  RSA加密:使用RSA-OAEP加密算法,默认密钥长度2048位,同时也支持1024,768,512位的密钥。

  RSA签名:使用RSA-SHA1签名,默认密钥长度2048位,同时也支持1024,768,512位的密钥。

  当然,加密算法本身的开发具有一定难度,需要很深的数学和密码学造诣,Google估计也不会费那么大功夫开发一套完整的加密算法。