2007年1月13日星期六

电信屏蔽eMule了吗

  有个叫Jian ZHOU的读者前几天发邮件向我诉苦,说深圳电信或者广东电信对eMule采取了屏蔽措施。

  他在邮件里说到:“新年发现电信(也许是深圳电信,或者是广东电信,具体不祥)对eMule采取了屏蔽措施,原来下载速度可以达到200K,现在流量基本为0.电信对eMule的屏蔽方式为,每隔一段时间,就会切断用户的上传链接,因为eMule会根据上传速度决定下载速度,所以上传速度为0后,下载速度也会归0.”

  我平时用eMule比较少,因为感觉电驴下载速度还是太慢,不如BT快,因此为了证实,我也重新连接上eMule,下载一些文件进行尝试,经过两个晚上的尝试,我没有发现什么异常情况,上传速度一直在20K左右,下载速度40K-50K左右,没有他邮件里说的那种现象,因此,如果他出现异常情况,可能只是孤立事件,建议可以检查一下本地防火墙设置,或者咨询一下具体的ISP或者电信机房,看看端口是否有误。

  当然,电驴下载的确占用很多流量,电信方面肯定非常想屏蔽这个服务,不过真的要屏蔽的话,可能还是会先去屏蔽BT。

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功能