2007年1月12日星期五

Z-Blog实现摘要图文混排效果的方法

  有些使用Z-Blog的用户询问我,怎么实现我的月光博客首页上这种自动图文混排的版式效果,今天我就详细介绍一下在Z-Blog中实现这种图文混排的方法。

  实现这种版式的前提条件是,每篇文章有且只能有一个Tag,每个Tag都有一个对应的图片文件,如果没有图片,可以使用一个1像素的GIF图片来代替。

  有了这些之后,打开Z-Blog的文件夹,编辑TEMPLATE/b_article_tag.html文件,修改为如下内容:

  <img src="<#ZC_BLOG_HOST#>logo/<#article/tag/intro#>.gif" alt="<#article/tag/name#>" class="thumb" />

  如果想在图片上增加链接,修改上面的内容,加入超级连接即可。

  修改TEMPLATE/b_article-multi.html文件,将原来的<div class="post-body"><#article/intro#></div>修改为<div class="post-body"><#template:article_tag#><#article/intro#></div>

  进入Tags管理,给每个Tags增加一个摘要,内容为一个英文单词,用于图片文章名。

  然后,在Blog的根下建立一个名为logo的目录。将上面命名的文件名增加.gif后缀后复制到这个目录下。

  修改STYLE目录下的CSS文件,增加如下内容:

    div.post-body img.thumb {
     float: right;
     margin: 4px 4px 4px 4px;
     padding: 0px;
     border: 0px;
     padding: 0px;
     max-width: 500px;
     max-height:500px;
     overflow:hidden;
     clear:both;
    }

  以上的CSS代码在IE和FireFox下测试均显示正常。如果使用表格方式插入图片可能会引起FireFox不兼容的现象。

  最后,重建所有文件。

  这时候,你就可以得到和我的博客一样的显示效果。

  更多关于Z-Blog的相关技巧和下载,请参见我的Z-Blog专题

2007年1月11日星期四

中国网银安全分析:USB Key

  前文已经提到一种身份认证产品名叫“动态密码锁”,今天我们将介绍另外一种广泛应用的身份认证产品:USB Key

  和单钥的动态密码锁不同的是,USB Key采用双钥(公钥)加密的认证模式,USB Key是一种USB接口的硬件设备,外形如下图所示。它内置单片机或智能卡芯片,有一定的存储空间,可以存储用户的私钥以及数字证书,利用USB Key内置的公钥算法实现对用户身份的认证。由于用户私钥保存在密码锁中,理论上使用任何方式都无法读取,因此保证了用户认证的安全性。

USB Key

  USB Key产品最早是由加密锁厂商提出来的,原先的USB加密锁主要用于防止软件破解和复制,保护软件不被盗版,而USB Key的目的不同,USB Key主要用于网络认证,锁内主要保存数字证书和用户私钥。

  USB Key的硬件和PIN码构成了可以使用证书的两个必要因素。如果用户PIN码被泄漏,只要USB Key本身不被盗用即安全。黑客如果想要通过破解加密狗的方法破解USB Key,那么需要先偷到用户USB Key的物理硬件,没有哪个用户会愚蠢到将自己的Key拱手奉献给黑客。

  USB Key的一个最重要的优点就是成本低廉。一些单片机芯片USB Key的成本可以低于10元,很利于大规模普及应用,不过单片机芯片USB Key虽然成本低廉,但是芯片容易被黑客硬件复制。而智能卡芯片的USB Key就不容易被硬件复制,不过带来的是较高的成本,一般智能卡芯片的USB Key的价格都要高于30元。

  USB Key目前在网上银行应用十分广泛,大家看到一些银行的U盾、优KEY等都是这种产品,不过奇怪的是,这些产品的收费似乎要高于其实际价格。

  USB Key的使用方法是,当登录网银系统的时候,在电脑上插入USB Key,然后输入PIN码,如果验证通过,则可以进行相关交易。这种加密方式使用了双钥加密,私钥安全地保存在Key中,在网络应用的环境下,可以更安全,弥补了动态密码锁单钥加密的一些缺陷。

  然而可惜的是,USB Key虽然在一些地方优于动态密码技术,但是实际使用中却有一些动态密码所没有的安全性问题,这个安全问题主要在于客户端而不是服务器,由于PIN码是在用户电脑上输入的,因此黑客依然可以通过程序截获用户PIN码,如果用户不及时取走USB Key,那么黑客可以通过截获的PIN码来取得虚假认证,仍然存在安全隐患。而动态密码锁使用随机的一次性密码,不存在这样的问题。

  解决方法有几种,一种是改造现有的USB Key,增加输入键,使其PIN码可以在USB Key上输入,这样就不会被电脑上的木马拦截。

  还有一种更理想的安全模式,是将这两种加密方式结合在一起,USB Key的PIN码使用动态密码生成,这样两种加密锁结合在一起,服务器端和客户端的安全性就都得到了保障。黑客截取的PIN码是一次性的,而网银管理员无法获得USB Key的用户密码进行身份验证。这样的网银,其安全性就比较高了。

  然而目前实施这种方案的问题也是明显的:成本。每个加密锁都需要几十元的成本,两个锁的总共成本就可能超过一百元,大规模使用的话,这个成本由银行出肯定不可能,用户自己也未必愿意出这样的成本,因此这种方案真正实施起来,还是不太现实的。

  总而言之,对于当前中国网上银行系统,加强网银用户的身份认证管理,防止用户资料的泄露,是消除网上银行安全隐患的有效措施。如果没有完善的双向身份认证机制,那么这个网上银行的安全性就是没有任何保障的。当前世界上绝大部分银行的网上银行系统都是基于公开密钥体系(PKI)和数字证书建立起来的。

  目前我所提到的动态密码锁和USB Key都是不错的安全产品,但是如果要基于PKI体系的话,使用USB Key更容易搭建遵循PKI标准的密钥管理平台,这也是USB Key应用更为广泛的原因之一。

2007年1月10日星期三

中国网银安全分析:动态密码锁

  前文已经提出了一个安全网上银行系统的大致描述,今天我们将论述一下如何构造这种安全的网银系统。

  要想知道什么样的网银系统是安全的,首先要知道哪些网银系统是不安全的。

  我的观点是,所有不带有身份认证令牌硬件设备的网银系统都是不安全的

  这些系统包括各种“大众版”网银,以及一些所谓的数字证书“专业版”,因为他们从本质上来讲,所有的运行代码都是在电脑内存中运行的,用户所有的操作都有可能被木马所截获。理论上讲,黑客完全可以伪造用户进行系统登录。只有脱离用户的电脑系统,使用独立的身份认证硬件设备,才能构造出安全的网银系统。

  目前有两种流行的身份认证硬件产品可以实现较为安全的网银系统登录。

  第一种身份认证产品名叫“动态密码锁”。

  动态密码(Dynamic Password)也称一次性密码,它指用户的密码按照时间或使用次数不断动态变化,每个密码只使用一次。动态密码采用一种称之为动态令牌的专用硬件,内置电源、密码生成芯片和显示屏。下图是这种产品的外观,其中数字键用于输入用户PIN码,显示屏用于显示一次性密码。每次输入正确的PIN码,都可以得到一个当前可用的一次性动态密码。

动态密码锁

  这种产品的密码生成芯片运行专门的密码算法,根据当前时间以及使用次数生成当前密码并显示在显示屏上。认证服务器采用相同的算法计算当前的有效密码。由于每次使用的密码必须由动态令牌来产生,只有合法用户才持有该硬件,所以只要密码验证通过,系统就可以认为该用户的身份是可靠的。而用户每次使用的密码都不相同,即使黑客截获了一次密码,也无法利用这个密码来仿冒合法用户的身份,因为下一次登录必须使用另外一个动态密码。

  动态密码锁系统需要两个密码要素,一个要素是静态PIN码,由用户自行设置、保管。另一个要素是动态密码,由密码令牌动态生成,不可预测,并且与后台服务器的接入控制保持同步,由后台服务器进行检验。因此,用户必需输入正确的静态PIN码和动态密码,才能通过身份认证。

  动态密码锁本身需要输入PIN码才能使用,静态PIN码的安全要素在于,这个PIN码不是在电脑上输入的,而是在密码锁上输入的,这样,所有的黑客木马程序从理论上讲都全部失效,因为这些木马根本不可能在另外一个硬件密码锁上运行。

  黑客要想破解用户密码,首先要从物理上获得用户的动态密码锁,其次还要获得用户的PIN码,这样,黑客必须潜入用户家中(电脑黑客还需要学习普通窃贼的技术),偷取了动态密码锁,然后再破解PIN码。没有用户PIN码依旧无法使用,而通常情况下动态密码锁本身具有一定安全保护功能,录入PIN码错误10次就会自动锁死而无法使用。这也保证了动态密码锁物理上的安全性。

  动态密码技术可以完美解决客户端用户的安全性问题,因为黑客无论使用什么方法,也无法方便的窃取用户的密码,即使黑客窃取了一次密码也无法登录使用。

  从技术上将,动态密码技术是比较完美的方案,然而可惜的是,动态密码锁的成本过高,大部分成本都高于100元,不太利于大规模使用。中国目前有一些银行图便宜,使用一种文字卡片类型的所谓的“动态密码卡”,也是用来实现较为原始的动态密码技术。实际上,这种低成本的卡片具有的缺陷是非常明显的,卡片内容极易被复制,且没有保护PIN码,别人偷盗或者复制这张卡片即可冒名登录,其安全性远不及真正的动态密码锁身份认证系统。

  虽然动态密码锁的安全性的确不错,然而,动态密码技术也有一个安全隐患,就是服务器端的安全性。动态密码的本质是单钥加密,密钥只有一个。在服务器端的认证系统里,可以计算出所有动态密码,因此黑客如果将精力放在破解银行认证服务器系统,那么还是有可能对银行系统造成一定安全威胁,另外这个系统也依赖于网银的管理员,网银的管理员可以在服务器端修改动态密码锁的规则,也具有一定的安全隐患。

  下一回,我们将介绍另外一种低成本的身份认证硬件产品,可以通过双钥加密的技术实现安全的认证,并可以弥补动态密码锁的某些安全性的隐患。

2007年1月9日星期二

中国网上银行系统安全性分析

  前言:本文是对于一般性质的网上银行系统安全性的技术分析文章,对于目前中国国内具体银行的安全性不具有评测功能,也不对任何第三方评测数据负责。以下是正文。

  网络银行是一个比较新的概念,中国的网络银行大多是对现有银行专用网的延伸和对银行传统业务方式的补充,银行增加一些软、硬件设备,使得用户可以通过家用电脑连接银行系统,进行各种普通的银行业务,以弥补传统银行业务中营业网点少和营业时间短的不足。

  中国的网上银行起步比较早的是深圳招商银行,他们开发过第一个面向最终用户的网银系统。招行的网络银行有大众版和专业版之分。随着网络的大规模普及,中国各个银行也都逐步开启自己的网银系统,有些银行的系统仅局限在账户信息查询方面,有些则包含转账付款等功能,还有的已经涉及贷款、投资等方面的内容。随着网银的普及,网银的安全性成为整个系统中最为至关重要的部分了。

  今年以来,大量的关于网上银行发生骗盗的报道不断见诸报端。不法分子通过窃取用户的卡号和密码,大量盗窃资金和冒用消费,因此虽然网银对于银行和用户都有不少好处,但是发生这些情况使得银行在推广网银面临非常巨大的风险,提高网银的安全性也是刻不容缓。

  根据一般的报道分析,不法分子窃取用户信息主要通过木马程序来进行,比如,黑客首先在用户电脑系统注入木马程序后,驻留在中招电脑系统里的监控系统就可以截取、监控系统及用户上网时打开的网银密码窗口。也就是说当用户在网银程序里输入卡号或密码时计算机就会自动将相关信息的编码发送给黑客,他们再据此进行反读取以破译,钱便被黑走了。

  目前的网银系统的主要问题是,用户安全性过于依赖用户本身的素质,对于安全观念较差的用户,其密码很容易被盗取,因此这种“信任用户”的安全模式设计是很不合理的。用户的电脑可能安装木马程序,用户的一举一动都可能被监听和窃取,安全的网银系统应该设计成为这样的:假设网银的管理员是黑客,并在最终用户电脑安装木马并且可以监听用户的一切键盘鼠标操作,网银的管理员还可以进行系统管理和操作,但是网银的管理员依旧无法通过网银系统来窃取最终用户的资金。如果能做到这一点,那么这个网银系统就算是比较安全了。

  明天,我将继续介绍,这样的网银系统安全性是如何实现,从那些方面可以保证系统的安全性,以及这样的系统存在什么样的漏洞。

2007年1月7日星期日

FeedBurner的邮件订阅功能试用

  电子邮件是一个获取信息的古老而传统的方法,今天,我也开始试用了一下FeedBurner自己提供的邮件订阅功能。

  通过邮件订阅,虽然订阅的消息内容会有所滞后,但具有快速和不怕网络中断的好处,比如这次海底光缆中断,国内用户访问很多国外的Feed非常慢,而国外用户访问国内的也很慢,如果使用邮件订阅功能,就不存在无法访问或者速度慢的问题了。

  对于阅读者来说,订阅FeedBurner的步骤有两步。由于订阅界面是英文的,我这里就详细介绍一下订阅方法。首先点本文左侧的“通过邮件订阅”按钮,会出现下面一个界面。

FeedBurner的邮件订阅功能

  在上面的录入框中数据邮件地址,下面输入验证码,点“Complete Subscription Request”按钮即可提交。

  提交后,FeedBurner会自动往你提交的信箱里发送一封确认邮件,点击邮件中的链接,即可完成邮件订阅,这样,以后每天FeedBurner都会把最新的文章发送订阅者。

  对于管理者来说,可以登录FeedBurner来定制一下发送邮件的一些选项。

  进入管理界面,选择Publicize/Email Subscriptions,就进入管理界面,点“Communication Preferences”可以修改确认邮件的内容和格式,注意邮件标题“Confirmation Email Subject”不能用中文,否则会是乱码。点“Delivery Options”可以设定时区以及每天邮件发送的时间。

FeedBurner管理界面

  另外,一些第三方网站也提供Feed的邮件订阅功能,比如RssFwdRmailFeedblitzSqueet等等。

Google Blogger支持主机托管

  据Google Blogger的官方博客报道,Google Blogger现在已经支持Blogger Custom Domains(自定义域名)的类似主机托管的发布模式了。

  这个新功能只在新版本的Blogger中存在,可以允许用户使用自己已有的域名而不是blogspot.com这样的域名,这也就是说,Blogspot目前已经成为一个完全免费的虚拟主机了 ,切换域名后,旧的blogspot地址会自动转向到用户新域名下,因此这种切换是平滑无缝的切换。

  当然,使用FTP发布也可以完成同样的功能,并且会继续存在,但是使用新的自定义域名有如下好处:

  安装简易:不必设置FTP发布的路径和用户名。

  发布快速:无需任何等待即可发布。

  模版编辑:可以使用Blogger新的拖拽方式的模版编辑。

  访问控制:你愿意的话,你可以选择指定的用户访问你的Blog.

  因此,使用Blogger的自定义域名是一个简单的使用自己域名发布Blog的好方法。

  如果你使用的是旧版的BlogSpot,那么使用如下方法切换到新版BlogSpot:

  点语言,选择英文。

  点中间的“Switch Now”按钮,用原有的Blogger帐号登录,按照提示即可转换到新版本的Blogger.

  中文界面下,不知什么原因没有这个功能。

  切换到新的Blogger后,就可以设置自定义域名了,下面是设置的具体方法,请按照步骤设置。

  1、设置DNS记录

  先进入自己的域名设置界面,在CNAME记录里增加一条域名记录,指到ghs.google.com 。

设置DNS记录

  等一段时间,这个域名记录生效之后,登录Blogger的管理界面进行下一步设置。

  2、设置Blogger功能

  登录Blogger的管理界面,选择“设置”—“发布”,再选择“切换到自定义域”,在“您的域”填上自己的域名即可。

设置Blogger功能

生活中必不可少的Web2.0公司

  几天前,著名博客迈克尔·阿灵顿发表一篇文章,阐述了自己生活中必不可少的15个Web 2.0网站,其中包括Digg、Flickr等知名网站,不过我常用的del.icio.us和google reader不在其中,不知何故。这些网站的确不错,不过大家现在访问这些站点可能速度会非常慢(海底光缆还没修好),如果不想使用代理服务器的话,那么请大家在本月底或者二月初再来访问,那时速度应该会很快了。以下是新浪科技翻译的中文译文。

生活中必不可少的Web2.0公司

  一年前,阿灵顿曾经写下一篇名为“我生活中必不可少的Web2.0公司”的文章,并列出了对他日常生活影响最大的13家公司。他喜欢这些公司的产品,并且每天都会使用。进入2007年,阿灵顿更新了这一列表。在原有的13家公司,有7家公司保留下来,另外6家则名落孙山。此外,他又新增加了两家公司,因此新列表中共有15家Web2.0公司,下面是这些公司的名单(按首字母排序):

  800-Free-411:

  免费的411服务去年为我省了不少钱。到目前为止,411服务在美国信息通话市场已经占据了超过3%的份额,甚至AT&T都已宣布将模仿其模式。对于消费者而言,这当然是一个好消息。

  Amie Street:

  Amie Street去年7月刚刚推出,它采用了一种引人关注的DRM免费音乐销售模式。乐队首先上传自己的音乐,随后由用户免费下载。当歌曲流行之后,Amie Street就开始向用户收取一定的费用,收费标准从0.01美元到0.99美元不等。如果用户想寻找最流行的歌曲,只需关注下载价格即可;如果用户更喜欢冒险,也可以尝试更多歌曲。作为一个DRM免费数字音乐“自由市场”,Amie Street也许代表着未来。

  Ask City:

  今年的列表中不再有Bloglines,但Ask.com旗下的另一项资产、最近推出的Ask City榜上有名。我个人认为,Ask City已经取代雅虎地图服务,成为最佳的互联网地图产品。Ask City最令我喜欢的功能是多点导向和注释工具,用户将地图转寄好友之前可以在上面做标记。虽然推出不足一个月,但Ask City已经成为我最喜欢的一个互联网应用。

  BlueDot:

  BlueDot是一个类似于del.icio.us的社交书签服务。我已经用BlueDot取代了del.icio.us,因为我更喜欢它的界面。BlueDot允许用户仅在好友间共享书签,而del.icio.us则只为用户提供完全公开和完全私有的选择。BlueDot于去年7月推出,去年10月进行了一次升级。

  Digg:

  每一位TechCrunch读者都了解我对Digg的态度。Digg是新闻的未来,它也是继博客之后对主流媒体的最大冲击。当然,Digg必须在吸引活跃用户的同时,同垃圾信息作斗争,这并不容易。无论如何,我每天都浏览Digg网站。

  Flickr:

  2006年出现了多家类似于Flickr的新兴公司,但它仍然是我每天必用的图片标记和共享网站。Flickr推出的多项新功能简直令人难以置信,例如我就很喜欢它的面部识别功能。

  Flock:

  早在2005年8月,我就成为了Flock的忠实用户。我认为,Flock可以看作是一个完整的系统,而Firefox还存在着一些兼容性方面的问题。如果没有Flock,我会成为一名快乐的Firefox用户,但事实情况是我将Flock作为自己的首选浏览器。有消息称,Flock近日将推出一个重要的新版本。

  Gmail:

  尽管最近出现了一些问题,但我仍然认为Gmail是最接近完美的桌面电子邮件应用。原因很简单,它的容量很大,可以为邮件加标签,而且最近增加了对POP的支持。当然,最主要的原因还是免费。

  NetNewsWire:

  自2006年初转到Mac平台之后,我就开始使用NetNewsWire桌面种子阅读器。NetNewsWire并不免费,但它的高速和离线种子访问功能让我觉得每月付出30美元完全值得。由于NetNewsWire的存在,Bloglines今年退出了列表。当然,未来我很有可能会转向Google阅读器。有了EVDO无线接入,离线接入已经不再那么重要,而Google阅读器自去年9月升级后有了很大的提高。

  Netvibes:

  我每天都会访问Netvibes数次,以快速浏览一些重要的种子。Netvibes的用户人数仍然在高速增长,自今年初获得1500万美元融资后,它的经济实力也越来越雄厚。我猜测,Netvibes目前正在抵御其它公司的收购,但也许到2007年底它就不再是一家独立的公司。

  Pandora:

  自2005年推出之后,我对Pandora就一直非常关注。也许我在Pandora听音乐的时间已经超过任何人,因为每当我写博客的时候都会使用它的服务。我想还有数百万忠实的用户认同我的观点。

  Skype:

  自电子邮件之后,我认为Skype是最能提升生产力的单一产品。我一直将Skype作为首选即时信息工具,几乎每天都会使用它的免费通话功能。Skype无疑是互联网“杀手级”应用之一。

  Techmeme:

  TechMeme就是博客圈的日报,同时也是我访问最多的网站之一。TechMeme的内容经常会在几天后出现在《纽约时报》或其它主流媒体上。我父亲是Techmeme旗下政治网站Memorandum的忠实用户,而我则更喜欢它的科技新闻区。

  Wordpress:

  从创建TechCrunch之日起,我就一直使用Wordpress。Wordpress是最灵活的博客平台,而它的Akismet垃圾评论过滤服务使我摆脱了每天近一百万条垃圾评论带来的困扰。如果没有这项服务,我只能聘请一位专职人员来处理垃圾评论。

  YouTube:

  YouTube并不是一家新公司。今年11月,Google已经以价值16.5亿美元的股票收购了YouTube。尽管存在着一些不足,但我仍然是YouTube的忠实用户。

  其它有望上榜的公司:

  AllOfMP3AllPeersLast.fmMeeboWikipedia 以及 Zoho

  英文原文地址:2007: Web 2.0 Companies I Couldn’t Live Without