<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>林健的BLOG &#187; 网络</title>
	<atom:link href="http://blog.linjian.org/articles/tag/%e7%bd%91%e7%bb%9c/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.linjian.org</link>
	<description>有容乃大，无欲则刚</description>
	<lastBuildDate>Fri, 10 Sep 2010 13:36:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>使用智器 V5 实现山寨 MiFi</title>
		<link>http://blog.linjian.org/articles/smartq-v5-mifi/</link>
		<comments>http://blog.linjian.org/articles/smartq-v5-mifi/#comments</comments>
		<pubDate>Tue, 04 May 2010 15:30:18 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[Web与移动平台]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MID]]></category>
		<category><![CDATA[WiFi]]></category>
		<category><![CDATA[无线]]></category>
		<category><![CDATA[网络]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=447</guid>
		<description><![CDATA[　　上个月 iPad 上市后，我就常听到 idealee 和 heqian 同学鼓吹 MiFi 及其类似设备。说白了，那就是一个 3G-to-WiFi Adaptor。只要有一台同时支持 3G 和 WiFi 的设备，并且其系统相对开放，实现 MiFi 的功能就不难。笔记本电脑当然可以，不过体积大了点。正好我年前购入一台智器 V5，就用它来山寨一台 MiFi 吧。 　　智器 V5 的三个系统中，只有 Ubuntu 预装了 3G 驱动和拨号程序，那就在 Ubuntu 中实现。首先使用 USB OTG 连接 3G Modem，我这里是华为的 WCDMA Modem。智器最新版的固件不需要显式拨号，Modem 插入之后自动联网。然后使用 NetworkMananger 创建新的无线网络，为其设定名称（“miffy”如何？）和密钥，这样一来智器摇身一变成了无线 AP。现在试用笔记本电脑搜索周围的无线网络，很快就会发现智器的信号。连接之，密钥校验通过之后笔记本和智器便构成了局域网，使用 /sbin/ifconfig 可查看各自的 IP（在我这里为 10.42.43.*）。Ping 一下，连接正常。 　　下一步理应在智器上配置 iptables，将来自笔记本的数据包转发到 WCDMA 网络。智器的 Ubuntu 中虽然有 iptables 命令，然而运行后才发现这个 Linux Kernel [...]]]></description>
			<content:encoded><![CDATA[<p>　　上个月 <a href="http://blog.linjian.org/articles/apple-ipad/">iPad</a> 上市后，我就常听到 <a href="http://twitter.com/idealx">idealee</a> 和 <a href="http://twitter.com/heqian">heqian</a> 同学鼓吹 <a href="http://en.wikipedia.org/wiki/MiFi">MiFi</a> 及其类似设备。说白了，那就是一个 3G-to-WiFi Adaptor。只要有一台同时支持 3G 和 WiFi 的设备，并且其系统相对开放，实现 MiFi 的功能就不难。笔记本电脑当然可以，不过体积大了点。正好我年前购入一台<a href="http://blog.linjian.org/articles/smartq-v5-experience/">智器 V5</a>，就用它来山寨一台 MiFi 吧。<br />
　　智器 V5 的三个系统中，只有 Ubuntu 预装了 3G 驱动和拨号程序，那就在 Ubuntu 中实现。首先使用 USB OTG 连接 3G Modem，我这里是华为的 WCDMA Modem。智器最新版的固件不需要显式拨号，Modem 插入之后自动联网。然后使用 NetworkMananger 创建新的无线网络，为其设定名称（“miffy”如何？）和密钥，这样一来智器摇身一变成了无线 AP。现在试用笔记本电脑搜索周围的无线网络，很快就会发现智器的信号。连接之，密钥校验通过之后笔记本和智器便构成了局域网，使用 /sbin/ifconfig 可查看各自的 IP（在我这里为 10.42.43.*）。Ping 一下，连接正常。</p>
<p><a href="http://picasaweb.google.com/lh/photo/YFL-DDLCaRCZMgB0RhHFJA?feat=embedwebsite"><img src="http://www.linjian.org/imagoxy/getimg.php?u=%3DcGcq5Cd4VGdtUGZpNnbp1SamlWbvADN2M3LF9ULLNmZBtERqt0L0E0QBFUQBFUQBF0LJV2ZzNFdyEkQtM1LZFlQFlXMU1yXRp1Xv02bj5CdoB3Zn5yMox2LvoDc0RHa" title="" alt="使用智器 V5 实现山寨 MiFi" /></a></p>
<p>　　下一步理应在智器上配置 iptables，将来自笔记本的数据包转发到 WCDMA 网络。智器的 Ubuntu 中虽然有 iptables 命令，然而运行后才发现这个 Linux Kernel 中的 ip_tables 模块已被裁减。用不了 iptables，就先找点简单的办法连接外网，比如 SSH 转发。智器的 Ubuntu 中预装了 OpenSSH 服务端，使用 sudo /etc/init.d/ssh start 命令启动即可。在笔记本上使用 ssh user@10.42.43.1 -D 7474 登录智器（不知道密码？那就先用 sudo passwd user 设置一下密码），然后将浏览器的 Socks 代理服务器设置为本地的 7474 端口。实验一下，访问网页正常。<br />
　　智器电力相当有限，特别是同时打开 WiFi 和 3G 的时候。要把它当 MiFi 用的，最好加一个移动电源，比如我用的这块 4400mAh 锂电池。最终三个设备加其来的体积比 MiFi 大不少，但比起笔记本电脑还是可以接受的。其续航能力与笔记本相当，当然比不过专业的 MiFi。</p>
<p><a href="http://picasaweb.google.com/lh/photo/onRKwdUW4brY6HiW8LScLQ?feat=embedwebsite"><img src="http://www.linjian.org/imagoxy/getimg.php?u=nBnauQHelRXLlRWazRXdv1SamlWbvADN2M3LzJ2YVBFWykzSaZ0L4E0QBFUQBFUQBF0LJR3a1QHWzEkQtM1LZFlQFlXMU1yXRp1Xv02bj5CdoB3Zn5yMox2LvoDc0RHa" title="" alt="使用智器 V5 实现山寨 MiFi" /></a></p>
<p>　　哪位朋友有空研究着重新编译一下智器的 Linux Kernel，加入 ip_tables 模块？这样我们山寨的 MiFi 就更加完美易用了。从<a href="http://bbs.zhiqi.com.cn/">智器粉丝团</a>的相关帖子看应该不难，有个 <a href="http://gitorious.org/mer-smartq">Mer-SmartQ</a> 可用，需要的可能只是经验和时间。<br />
　　附，iptables 可用之后，数据包转发所需要的配置：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">sudo su</li>
<li>iptables -F</li>
<li>iptables -P INPUT ACCEPT</li>
<li>iptables -P FORWARD ACCEPT</li>
<li>iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE</li>
<li>echo 1 &gt; /proc/sys/net/ipv4/ip_forward</li></ol></div>
<hr />原文链接：<a href="http://blog.linjian.org/articles/smartq-v5-mifi/">http://blog.linjian.org/articles/smartq-v5-mifi/</a>，作者：<a href="http://blog.linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/cn/">知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议</a>进行许可。
<br />(Digital fingerprint: 
 993d4981d6d552510db9a08493b2dbec)<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li><a href="http://blog.linjian.org/articles/vpn-wireless-router/" title="Featureless Wireless Router + Linux Machine = VPN Wireless Router">Featureless Wireless Router + Linux Machine = VPN Wireless Router</a></li><li><a href="http://blog.linjian.org/articles/smartq-v5-experience/" title="智器（SmartQ）V5 使用半月杂记">智器（SmartQ）V5 使用半月杂记</a></li><li><a href="http://blog.linjian.org/articles/ipv6-icmpv6-error/" title="解决 IPv6 路由发现协议得到错误地址的问题">解决 IPv6 路由发现协议得到错误地址的问题</a></li><li><a href="http://blog.linjian.org/articles/rsync-unison-ssh/" title="使用 rsync 或 unison 备份或同步支持 ssh 的 web 主机">使用 rsync 或 unison 备份或同步支持 ssh 的 web 主机</a></li><li><a href="http://blog.linjian.org/articles/ubuntu-jaunty-dropbox/" title="解决 Ubuntu 9.04 下启动 Dropbox 出错的问题">解决 Ubuntu 9.04 下启动 Dropbox 出错的问题</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/smartq-v5-mifi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>三款面向 Amazon S3 的开源文件同步工具之对比</title>
		<link>http://blog.linjian.org/articles/s3-sync-tools/</link>
		<comments>http://blog.linjian.org/articles/s3-sync-tools/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 16:02:24 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[Linux与开源]]></category>
		<category><![CDATA[同步]]></category>
		<category><![CDATA[存储]]></category>
		<category><![CDATA[文件系统]]></category>
		<category><![CDATA[网络]]></category>
		<category><![CDATA[软件]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=441</guid>
		<description><![CDATA[　　受 @Sisyphusliu 师兄的启发，我最近决定试用 Amazon S3 来做个人数据同步与备份。初步计算发现这很可能比之前使用 VPS 或 Web 主机的方案要节约成本。我对三款面向 Amazon S3 的开源文件同步工具进行了对比，将其中部分细节说明如下，供有相同需求的朋友参考。 　　这三款工具分别是 jets3t、s3cmd 和 s3sync.rb。其主要特性和附加功能这里不再赘述，它们的官方主页都有详细说明。软件的稳定性还有待长时间使用的考验，但从网上没有发现用户反映太大的问题。我在这里强调它们存储文件元信息的差别，以及由此可能引发的问题。 &#160; jets3t s3cmd s3sync.rb 打包大小 12M 50k 30k 开发语言 Java Python Ruby 官方主页 http://bitbucket.org/jmurty/jets3t/ http://s3tools.org/ http://s3sync.net/ 最后更新 2010-3 2009-10 2008-6 功能定位 综合工具集+文件管理GUI 命令行工具集 命令行工具集 文件元信息 Content-Typejets3t-original-file-date-iso8601md5-hash Content-Types3cmd-attrs Content-Typegroupownerpermissions 目录元信息 Content-Typejets3t-original-file-date-iso8601 无 Content-Typegroupownerpermissions 　　由于 S3 基于 Key-Object 存储方式，与树型文件系统不同，因此如何将树型结构组织的文件及其元信息存储在 S3 [...]]]></description>
			<content:encoded><![CDATA[<p>　　受 <a href="https://twitter.com/sisyphusliu">@Sisyphusliu</a> 师兄的启发，我最近决定试用 <a href="http://aws.amazon.com/s3/">Amazon S3</a> 来做个人数据同步与备份。初步计算发现这很可能比之前使用 VPS 或 Web 主机的方案要节约成本。我对三款面向 Amazon S3 的开源文件同步工具进行了对比，将其中部分细节说明如下，供有相同需求的朋友参考。<br />
　　这三款工具分别是 jets3t、s3cmd 和 s3sync.rb。其主要特性和附加功能这里不再赘述，它们的官方主页都有详细说明。软件的稳定性还有待长时间使用的考验，但从网上没有发现用户反映太大的问题。我在这里强调它们存储文件元信息的差别，以及由此可能引发的问题。</p>
<table cellspacing="0" border="1" style="font-size:small;">
<tr>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" width="79">&nbsp;</td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" width="207"><strong>jets3t</strong></td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" width="130"><strong>s3cmd</strong></td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000" width="125"><strong>s3sync.rb</strong></td>
</tr>
<tr>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000"><strong>打包大小</strong></td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">12M</td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">50k</td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">30k</td>
</tr>
<tr>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000"><strong>开发语言</strong></td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">Java</td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">Python</td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">Ruby</td>
</tr>
<tr>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000"><strong>官方主页</strong></td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000"><a href="http://bitbucket.org/jmurty/jets3t/">http://bitbucket.org/jmurty/jets3t/</a></td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000"><a href="http://s3tools.org/">http://s3tools.org/</a></td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000"><a href="http://s3sync.net/">http://s3sync.net/</a></td>
</tr>
<tr>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000"><strong>最后更新</strong></td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">2010-3</td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">2009-10</td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">2008-6</td>
</tr>
<tr>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000"><strong>功能定位</strong></td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">综合工具集+文件管理GUI</td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">命令行工具集</td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">命令行工具集</td>
</tr>
<tr>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000"><strong>文件元信息</strong></td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">Content-Type<br />jets3t-original-file-date-iso8601<br />md5-hash</td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">Content-Type<br />s3cmd-attrs</td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">Content-Type<br />group<br />owner<br />permissions</td>
</tr>
<tr>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000"><strong>目录元信息</strong></td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">Content-Type<br />jets3t-original-file-date-iso8601</td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">无</td>
<td style="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000">Content-Type<br />group<br />owner<br />permissions</td>
</tr>
</table>
<p>　　由于 S3 基于 Key-Object 存储方式，与树型文件系统不同，因此如何将树型结构组织的文件及其元信息存储在 S3 中就是一个问题。这三款工具都将文件的全路径作为 Key，并把文件的元信息保存在 Object 的自定义属性中。<br />
　　这样有什么后果呢？首先看目录。稍稍想想就会发现，像“a/b/c”这样的 Key 无法直接判定“c”是一个目录还是一个文件。s3cmd 的处理最简单，它的任何一个 Object 都是文件，不把目录作为 Object 保存。这样消除了歧义，但导致了目录的元信息无从保留，同时也无法保存空目录。而 jets3t 和 s3sync.rb 会保存目录的 Object，并通过元信息中的 Content-Type 来区别文件与目录。这样就保留了目录元信息，也允许空目录存在，但这影响了工具之间的互操作性。下载另一个工具上传的文件时，工具彼此不认识对方的目录 Object，就会将它们保存成普通文件，从而造成同名的目录无法创建。<br />
　　再来看看文件的元信息。s3cmd 保存的 s3cmd-attrs 属性是一个包含了 uid、gid、uname、gname、mtime、atime、ctime 等信息的字符串，因此它保留了最完整的文件元信息。jets3t 只保存文件修改时间，无从得知属主与权限，不适合保存可执行程序的目录；s3sync.rb 只保存属主与权限，而且是数字 id 而非名字，在新系统中恢复数据时可能出现映射错误。<br />
　　我个人倾向于选择 s3cmd。其一，文件修改时间和权限对于个人程序、文档来说是比较重要的信息。当然这不是技术问题，修改 jets3t 和 s3sync.rb 肯定也能做到。其二，不使用自定义的目录 Object 就允许一定程度的互操作，例如使用 jets3t 和 s3sync.rb 可以直接下载 s3cmd 上传的文件与目录结构（元信息丢失）。而 s3cmd 设计造成的目录元信息缺失、空目录消失等问题，对一般应用和文档来说不太重要、相对容易恢复。当然也可以使用额外的机制来记录目录元信息，但考虑 KISS 原则，s3cmd 目前的设计还是有道理的。要想同时解决元信息与目录问题，容易想到的办法是将目录打包或压缩再上传，这比较适于长周期的文件归档备份场景，但对于细粒度、短周期的日常数据同步场景并不适合。<br />
　　至于<a href="http://blog.linjian.org/articles/storage-trust-model/">云存储的信任问题</a>，在现阶段我也只能选择折衷。一方面不要将鸡蛋放在一个篮子里，重要数据还是需要异地备份的。另一方面可以使用这些同步工具自带的安全机制，或自己稍加封装实现数据加密。<br />
　　最后提醒大家，务必看看 <a href="http://coolshell.cn/?p=2155">Joel 的备份观</a>。</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/s3-sync-tools/">http://blog.linjian.org/articles/s3-sync-tools/</a>，作者：<a href="http://blog.linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/cn/">知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议</a>进行许可。
<br />(Digital fingerprint: 
 993d4981d6d552510db9a08493b2dbec)<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li><a href="http://blog.linjian.org/articles/rsync-unison-ssh/" title="使用 rsync 或 unison 备份或同步支持 ssh 的 web 主机">使用 rsync 或 unison 备份或同步支持 ssh 的 web 主机</a></li><li><a href="http://blog.linjian.org/articles/ubuntu-jaunty-dropbox/" title="解决 Ubuntu 9.04 下启动 Dropbox 出错的问题">解决 Ubuntu 9.04 下启动 Dropbox 出错的问题</a></li><li><a href="http://blog.linjian.org/articles/storage-trust-model/" title="浅谈存储系统的信任边界">浅谈存储系统的信任边界</a></li><li><a href="http://blog.linjian.org/articles/smartq-v5-mifi/" title="使用智器 V5 实现山寨 MiFi">使用智器 V5 实现山寨 MiFi</a></li><li><a href="http://blog.linjian.org/articles/jiangmin-impress/" title="我印象中的江民">我印象中的江民</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/s3-sync-tools/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>解决 IPv6 路由发现协议得到错误地址的问题</title>
		<link>http://blog.linjian.org/articles/ipv6-icmpv6-error/</link>
		<comments>http://blog.linjian.org/articles/ipv6-icmpv6-error/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 15:59:35 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[Windows应用]]></category>
		<category><![CDATA[ICMPv6]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[网络]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=432</guid>
		<description><![CDATA[　　IPv6 环境一般使用 DHCPv6 和 ICMPv6 协议自动配置网络参数，网关配置错误或多个网关的存在会导致客户端得到错误或冲突的配置参数。最近在我使用的 IPv6 环境中，就出现了网关同时给一个客户端分配多组 IPv6 地址、两个 IPv6 路由的问题，这使得路由发生混乱，IPv6 网络无法连通。由于种种原因，网管一直未能解决此问题，我们只好试图在客户端动动脑筋。 　　按照 IPv4 的经验，如果 DHCP 有问题，直接手工配置静态地址即可。但我们的环境中，即使手工配置了静态的 IPv6 地址和路由，发现没过多久又会恢复原状。看来还是有一定的自动配置机制在作祟。经搜索得知，这是 ICMPv6 的路由发现（Router Discovery）特性，系统会根据其收到的 ICMPv6 包自动修改 IPv6 配置。下面要做的就是过滤与路由发现相关的包。 　　在 Linux 下，可以使用 ip6tables（即 iptables 的 IPv6 版本）过滤相应的 ICMPv6 包： /sbin/ip6tables -A INPUT -p icmpv6 --icmpv6-type router-advertisement -j DROP 　　可以将上述命令加入 /etc/rc.local。或使用 ip6tables-save 导出到文件，在启动网络前使用 ip6tables-restore 恢复。 　　在 Windows Vista/7 [...]]]></description>
			<content:encoded><![CDATA[<p>　　IPv6 环境一般使用 <a href="http://en.wikipedia.org/wiki/DHCPv6">DHCPv6</a> 和 <a href="http://en.wikipedia.org/wiki/ICMPv6">ICMPv6</a> 协议自动配置网络参数，网关配置错误或多个网关的存在会导致客户端得到错误或冲突的配置参数。最近在我使用的 IPv6 环境中，就出现了网关同时给一个客户端分配多组 IPv6 地址、两个 IPv6 路由的问题，这使得路由发生混乱，IPv6 网络无法连通。由于种种原因，网管一直未能解决此问题，我们只好试图在客户端动动脑筋。<br />
　　按照 IPv4 的经验，如果 DHCP 有问题，直接手工配置静态地址即可。但我们的环境中，即使手工配置了静态的 IPv6 地址和路由，发现没过多久又会恢复原状。看来还是有一定的自动配置机制在作祟。经搜索得知，这是 ICMPv6 的路由发现（<a href="http://en.wikipedia.org/wiki/ICMP_Router_Discovery_Protocol">Router Discovery</a>）特性，系统会根据其收到的 ICMPv6 包自动修改 IPv6 配置。下面要做的就是过滤与路由发现相关的包。<br />
　　在 Linux 下，可以使用 ip6tables（即 iptables 的 IPv6 版本）过滤相应的 ICMPv6 包：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">/sbin/ip6tables -A INPUT -p icmpv6 --icmpv6-type router-advertisement -j DROP</li></ol></div>
<p>　　可以将上述命令加入 /etc/rc.local。或使用 ip6tables-save 导出到文件，在启动网络前使用 ip6tables-restore 恢复。<br />
　　在 Windows Vista/7 或 Windows Server 2008 以后的版本，可以使用这条命令：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">netsh interface ipv6 set interface &quot;[你的网卡名称，比如 Local Area Connection]&quot; routerdiscovery=disable</li></ol></div>
<p>　　执行一次之后持久生效，重启后不用再次执行。<br />
　　而在 Windows XP 下，目前还没有发现很好的办法。XP 对 IPv6 的支持仅仅是一个“预发行版”，实现并不完善。手工配置 IPv6 地址和路由只能使用“ipv6 adu”、“ipv6 rtu”命令，而没有图形界面支持；虽然 XP SP2 以后 Windows 防火墙加入了 IPv6 支持，但仍不支持 ICMPv6。我没有查到 XP 下屏蔽路由发现协议的标准方法，目前可行的办法是使用支持 ICMPv6 的第三方防火墙软件，比如 ZONEALARM Internet Security 8 以上版本。</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/ipv6-icmpv6-error/">http://blog.linjian.org/articles/ipv6-icmpv6-error/</a>，作者：<a href="http://blog.linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/cn/">知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议</a>进行许可。
<br />(Digital fingerprint: 
 993d4981d6d552510db9a08493b2dbec)<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li><a href="http://blog.linjian.org/articles/smartq-v5-mifi/" title="使用智器 V5 实现山寨 MiFi">使用智器 V5 实现山寨 MiFi</a></li><li><a href="http://blog.linjian.org/articles/smartq-v5-experience/" title="智器（SmartQ）V5 使用半月杂记">智器（SmartQ）V5 使用半月杂记</a></li><li><a href="http://blog.linjian.org/articles/rsync-unison-ssh/" title="使用 rsync 或 unison 备份或同步支持 ssh 的 web 主机">使用 rsync 或 unison 备份或同步支持 ssh 的 web 主机</a></li><li><a href="http://blog.linjian.org/articles/ubuntu-jaunty-dropbox/" title="解决 Ubuntu 9.04 下启动 Dropbox 出错的问题">解决 Ubuntu 9.04 下启动 Dropbox 出错的问题</a></li><li><a href="http://blog.linjian.org/articles/godaddy-economy-plan-hosting-ssh/" title="Godaddy Economy Plan Hosting SSH 体验">Godaddy Economy Plan Hosting SSH 体验</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/ipv6-icmpv6-error/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>使用 rsync 或 unison 备份或同步支持 ssh 的 web 主机</title>
		<link>http://blog.linjian.org/articles/rsync-unison-ssh/</link>
		<comments>http://blog.linjian.org/articles/rsync-unison-ssh/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 07:11:18 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[Web与移动平台]]></category>
		<category><![CDATA[Godaddy]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[同步]]></category>
		<category><![CDATA[网络]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=426</guid>
		<description><![CDATA[　　使用 web 主机而非 VPS 的站长，站点的备份或同步常常是一个问题。很多站点只能使用 ftp 做单向备份，基于较弱的元信息来判定文件是否需要重新下载，缺乏校验、压缩、增量传输等高级特性。有的服务商在 web 控制面板中提供备份功能，或允许上传简单的 cron 脚本，但这些途径通常只适合备份整站或指定目录，而不方便以增量方式传输更新过的内容。Linux 下成熟的镜像同步工具是 rsync，如果你的 web 主机允许 ssh 登录，则可以考虑使用 rsync 或其它类似工具。 　　网上有很多说法认为 web 主机不允许跑 daemon、不允许开自定义端口，故而无法使用 rsync。其实不然，rsync 可以仅通过 ssh 连接而不需要开放额外的端口，服务端也可以借助 sshd 来启动而不需要作为 daemon 运行。我们需要的只是 ssh 登录以及运行自己上传的程序的权限。我使用的 Godaddy Economy Plan Hosting (Linux) 即属于这种情况。 　　Godaddy 的 web 主机不提供 rsync 程序，我们可以从本地上传一个。需要注意上传的 rsync 二进制文件应该与你的 web 主机的平台一致，连接 libc、libpopt 等库的版本一致。对于使用 x86 版 CentOS 5.2 [...]]]></description>
			<content:encoded><![CDATA[<p>　　使用 web 主机而非 VPS 的站长，站点的备份或同步常常是一个问题。很多站点只能使用 ftp 做单向备份，基于较弱的元信息来判定文件是否需要重新下载，缺乏校验、压缩、增量传输等高级特性。有的服务商在 web 控制面板中提供备份功能，或允许上传简单的 cron 脚本，但这些途径通常只适合备份整站或指定目录，而不方便以增量方式传输更新过的内容。Linux 下成熟的镜像同步工具是 rsync，如果你的 web 主机允许 ssh 登录，则可以考虑使用 rsync 或其它类似工具。<br />
　　网上有很多说法认为 web 主机不允许跑 daemon、不允许开自定义端口，故而无法使用 rsync。其实不然，rsync 可以仅通过 ssh 连接而不需要开放额外的端口，服务端也可以借助 sshd 来启动而不需要作为 daemon 运行。我们需要的只是 ssh 登录以及运行自己上传的程序的权限。我使用的 Godaddy Economy Plan Hosting (Linux) 即属于这种情况。<br />
　　Godaddy 的 web 主机不提供 rsync 程序，我们可以从本地上传一个。需要注意上传的 rsync 二进制文件应该与你的 web 主机的平台一致，连接 libc、libpopt 等库的版本一致。对于使用 x86 版 CentOS 5.2 的 Godaddy 主机，我也直接在相同版本的 CentOS 中提取了一个 rsync 上传。这时，在客户端使用“-e”参数指定连接方式为 ssh，用“--rsync-path”参数指定服务端 rsync 所在的位置，即可借助 ssh 连接传输数据了。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">rsync -vzrtopgl --progress --delete -e ssh --rsync-path=/[remote_home_dir]/bin/rsync [username]@[hostname]:/[remote_home_dir]/html/ /[local_home_dir]/</li></ol></div>
<p>　　如果客户端为 Windows，则可以使用 Win32 下移植的 <a href="http://sourceforge.net/projects/sereds/">cwRsync</a>，这个工具基于 cygwin 库但不需要安装整个 cygwin 环境，它同时包含了 Win32 版的 OpenSSH 客户端。上述命令无须修改即可在 Windows 下运行。<br />
　　rsync 解决了文件的单向的备份或镜像功能，但如果需要双向同步，更适合的工具是 <a href="http://www.cis.upenn.edu/~bcpierce/unison/">unison</a>。unison 使用 <a href="http://caml.inria.fr/">OCaml</a> 语言开发，基于 rsync 算法对两端文件进行比较，将它们更新到一致的状态（最新的、不冲突的版本）。unison 可借助 socket、ssh 等连接方式，并支持多种操作系统。与 rsync 类似，我们需要向 web 主机上传一个 unison 二进制文件。官方只提供了最新版的源代码，需要自行下载到本地编译（事先安装 OCaml 编译器及 etags 工具）。服务端部署之后，客户端配置文件（[config_name].prf）为：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">root = /[local_home_dir]/html/</li>
<li>root = ssh://[username]@[hostname]//[remote_home_dir]/html/</li>
<li>servercmd = /[remote_home_dir]/bin/unison</li></ol></div>
<p>　　在客户端执行 ./unison [config_name] 即可完成双向同步。注意 unison 要求服务端和客户端的主次版本号一致。<br />
　　如果客户端为 Windows，同样可以使用来自 cwRsync 的 ssh 命令。如果嫌这个 ssh 外加 cygwin 库的体积太大（~5M），另一种替代的方案是使用 <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">Putty</a> 提供的 Plink 工具。这是一个小巧的 Win32 ssh 客户端（276K），由于运行参数与 OpenSSH 不同，因此需要写一个批处理文件（ssh.bat）来封装：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">@Plink.exe [hostname] -l [username] -pw [password] &quot;/[remote_home_dir]/bin/unison -server&quot;</li></ol></div>
<p>　　并在 unicon 配置文件中指定 ssh 命令：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">sshcmd = ssh.bat</li></ol></div>
<p>　　此时运行 unicon，即可使用 Plink 进行 ssh 连接。<br />
　　无论使用 OpenSSH 的 ssh 还是 Putty 的 Plink，都可以借助公钥认证方式避免密码的输入。这样有利于定时备份和同步的自动化执行。具体方法不再赘述。</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/rsync-unison-ssh/">http://blog.linjian.org/articles/rsync-unison-ssh/</a>，作者：<a href="http://blog.linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/cn/">知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议</a>进行许可。
<br />(Digital fingerprint: 
 993d4981d6d552510db9a08493b2dbec)<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li><a href="http://blog.linjian.org/articles/godaddy-economy-plan-hosting-ssh/" title="Godaddy Economy Plan Hosting SSH 体验">Godaddy Economy Plan Hosting SSH 体验</a></li><li><a href="http://blog.linjian.org/articles/smartq-v5-mifi/" title="使用智器 V5 实现山寨 MiFi">使用智器 V5 实现山寨 MiFi</a></li><li><a href="http://blog.linjian.org/articles/s3-sync-tools/" title="三款面向 Amazon S3 的开源文件同步工具之对比">三款面向 Amazon S3 的开源文件同步工具之对比</a></li><li><a href="http://blog.linjian.org/articles/ipv6-icmpv6-error/" title="解决 IPv6 路由发现协议得到错误地址的问题">解决 IPv6 路由发现协议得到错误地址的问题</a></li><li><a href="http://blog.linjian.org/articles/dropbear-pam-patch/" title="让 Dropbear 更好地支持 PAM">让 Dropbear 更好地支持 PAM</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/rsync-unison-ssh/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Identity 2.0 何时真正到来？（四）用户价值决定前途走向</title>
		<link>http://blog.linjian.org/articles/identity-20-4-conclusion/</link>
		<comments>http://blog.linjian.org/articles/identity-20-4-conclusion/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 13:10:54 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[IT杂谈]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[服务]]></category>
		<category><![CDATA[用户]]></category>
		<category><![CDATA[网络]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=390</guid>
		<description><![CDATA[　　前面三篇文章分别介绍了三类已经投入实际使用的、独立的 Identity 2.0 机制。与此同时很多在互联网时代既得利益的公司也都试图借助自己庞大的用户资源在身份认证领域分一杯羹。微软的 Windows Live ID（早期称为 .NET Passport、Microsoft Passport Network）算是动手比较早的，Google Account Authentication、Yahoo! BBAuth、Facebook Connect 等是各家公司推出的类似的身份认证服务。但这些服务本质上不符合 Identity 2.0“以用户为中心”的精神，它们仍使用原有的集中式用户系统，由这几家大公司自己维护用户数据，仅允许其它网站借助其 API 验证用户身份，读取用户的非敏感信息。这类技术的用户价值在于单点登录和相对安全（类似于 OpenID），单点失效问题通过内部对用户透明的分布或容错机制实现（目前阶段，这几家大型网站的可靠性相比小型的 OpenID provider 更有技术保障，至少用户的心理体验是这样）。对小型网站的经营者来说，让拥有 Google、Yahoo、Facebook 账号的用户直接登录自己的网站，同时能从知名网站获得用户的部分注册信息，确实有一定的吸引力。目前已经有像 clickpass 这样集成各家身份认证的第三方服务。而对于想为第三方网站提供身份认证服务的普通网站来说，开放的 OAuth 协议可以直接在既有系统中集成，twitter、豆瓣等是其成功案例。但 OAuth 更多地用于与提供身份认证的网站息息相关的第三方应用开发，还不能算是一种通用的身份认证机制。 　　此外还有一系列或是没有走出实验室、或是没有着力推广的 Identity 2.0 技术。关于它们的讨论可以通过以下一些网站获取： 　　● Identity 2.0 Blog 　　● Identity Commons Wiki 　　● Internet Identity Workshop 　　我们回过头来看，Identity 2.0 概念的提出大约有五年了，而事实上像 Microsoft Passport Network 之类的原型产品的推出是更早之前的事。但即使是现在发展情况最好的 [...]]]></description>
			<content:encoded><![CDATA[<p>　　前面三篇文章分别介绍了三类已经投入实际使用的、独立的 Identity 2.0 机制。与此同时很多在互联网时代既得利益的公司也都试图借助自己庞大的用户资源在身份认证领域分一杯羹。微软的 Windows Live ID（早期称为 .NET Passport、Microsoft Passport Network）算是动手比较早的，<a href="http://code.google.com/apis/accounts/">Google Account Authentication</a>、<a href="http://developer.yahoo.com/auth/">Yahoo! BBAuth</a>、<a href="http://developers.facebook.com/connect.php">Facebook Connect</a> 等是各家公司推出的类似的身份认证服务。但这些服务本质上不符合 Identity 2.0“以用户为中心”的精神，它们仍使用原有的集中式用户系统，由这几家大公司自己维护用户数据，仅允许其它网站借助其 API 验证用户身份，读取用户的非敏感信息。这类技术的用户价值在于单点登录和相对安全（类似于 OpenID），单点失效问题通过内部对用户透明的分布或容错机制实现（目前阶段，这几家大型网站的可靠性相比小型的 OpenID provider 更有技术保障，至少用户的心理体验是这样）。对小型网站的经营者来说，让拥有 Google、Yahoo、Facebook 账号的用户直接登录自己的网站，同时能从知名网站获得用户的部分注册信息，确实有一定的吸引力。目前已经有像 <a href="http://www.clickpass.com/">clickpass</a> 这样集成各家身份认证的第三方服务。而对于想为第三方网站提供身份认证服务的普通网站来说，开放的 <a href="http://en.wikipedia.org/wiki/OAuth">OAuth</a> 协议可以直接在既有系统中集成，<a href="http://apiwiki.twitter.com/OAuth-FAQ">twitter</a>、<a href="http://www.douban.com/service/apidoc/auth">豆瓣</a>等是其成功案例。但 OAuth 更多地用于与提供身份认证的网站息息相关的第三方应用开发，还不能算是一种通用的身份认证机制。<br />
<a href="http://picasaweb.google.com/lh/photo/tZ-BHCJeLjaGZcNWPCi7FA?feat=embedwebsite"><img src="http://www.linjian.org/imagoxy/getimg.php?u=%3D%3DwZwpmLzNXYwt2Ypx2YvADN2M3L44kN2J2QRJlU0J3LjZlQBFUQBFUQBF0LJFVaW9Ue2QXNwN1LZFlQFlXMU1yXRp1Xv02bj5CdoB3Zn5yMox2LvoDc0RHa" title="" alt="Identity 2.0 何时真正到来？（四）用户价值决定前途走向" /></a><br />
　　此外还有一系列或是没有走出实验室、或是没有着力推广的 Identity 2.0 技术。关于它们的讨论可以通过以下一些网站获取：<br />
　　● <a href="http://www.identity20.com/">Identity 2.0 Blog</a><br />
　　● <a href="http://wiki.idcommons.net/">Identity Commons Wiki</a><br />
　　● <a href="http://www.internetidentityworkshop.com/">Internet Identity Workshop</a><br />
　　我们回过头来看，Identity 2.0 概念的提出大约有五年了，而事实上像 Microsoft Passport Network 之类的原型产品的推出是更早之前的事。但即使是现在发展情况最好的 OpenID，支持它的独立公众网站也维持在三位数之内。而看看上述几个网站，文章和项目的活跃程度也在逐渐下降，不少链接失效。Identity 2.0 为什么没有像 Web 2.0 那样大放异彩？这个问题值得业内人士思考。我列出以下几点：<br />
　　“鸡与蛋”的问题——要想让基础设施（互联网标准、客户端软件）支持 Identity 2.0 的特性，就需要用足够的杀手级应用来说明其重要性；而要建立有影响力的杀手级应用，又需要基础设施的原生支持。要让用户接受并广泛使用 Identity 2.0 的个人身份，就需要有大量的既有应用启用 Identity 2.0 机制；而要让现存的网站加入对 Identity 2.0 的支持，又需要广大持有 Identity 2.0 身份的用户来诱发。<br />
　　使用的体验的改变——普通用户可能不会理解 OpenID 这种 provider 中介模式的安全优势，因为在用户看来还是要输入一次用户名密码的，而且是把密码交给了第三方。对于 Information Card，用户可能难以习惯长期保存并随身携带 Card 文件的使用模式，在经历了一两次 Card 丢失或一时无法取得的情况，就会打击用户的使用兴趣。而如果在线保存 Information Card，又存在和密码托管网站一样的信任危机。至于基于 XRI 的 i-name，普通用户可能也不愿意为其缴纳年费。<br />
　　安全性问题——这是任何一种身份认证机制都必须首先保证的。各类 Identity 2.0 技术都宣称自己的协议比传统方式安全，这不假，但它们的前提假设是：provider 等第三方机构确实可信；用户按照一定的规程来使用（比如不随意复制未加密码的 Information Card）。如果 provider 作恶或者用户不遵守使用规程，同样会造成信息泄露。provider 作恶在其它分布式系统中是存在的（比如 DNS 欺骗、虚假 Tor 节点等），难免在 Identity 2.0 中重演；而引入新的用户体验之后，要求用户掌握其操作原则是有时间成本和运营风险的。<br />
　　用户价值的体现——我认为这是核心因素。Identity 2.0 究竟能不能给用户带来全新的使用价值？是否满足普通用户和网站经营者双方的利益需求？身份认证方面的创新能否给互联网带来足够大的积极影响？这些问题不是纯粹的技术问题，有待市场来检验。但 Web 2.0 时代用户是重要的资源，如果将用户系统拱手交出，全线采纳 Identity 2.0，或许是一些既得利益者不愿意看到的。即使对于普通用户，像单点登录、一卡走天下这样的特性真的是大众的需求吗？也许更细的授权粒度、站点独立的密码设置才能让一部分人放下心来。<br />
　　我们不能过早地断言 Identity 2.0 会走向失败。也可能是早期定义的 Identity 2.0 过于激进，我们来看看 OpenID 现在的发展：在多数网站中没有完全取代传统的身份认证机制，而是作为它们的补充；通过底层的服务发现协议来和 LID、i-name 等兼容（最近 <a href="http://livesino.net/archives/2210.live">Windows Live ID 也要和 OpenID 兼容了</a>），力图建立统一且开放的 Identity 2.0 平台。这种渐近式的、开放包容的路线，应该是 Identity 2.0 的生路所在。</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/identity-20-4-conclusion/">http://blog.linjian.org/articles/identity-20-4-conclusion/</a>，作者：<a href="http://blog.linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/cn/">知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议</a>进行许可。
<br />(Digital fingerprint: 
 993d4981d6d552510db9a08493b2dbec)<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li><a href="http://blog.linjian.org/articles/identity-20-1-openid/" title="Identity 2.0 何时真正到来？（一）小有所成的 OpenID">Identity 2.0 何时真正到来？（一）小有所成的 OpenID</a></li><li><a href="http://blog.linjian.org/articles/identity-20-3-i-name/" title="Identity 2.0 何时真正到来？（三）生财有道的 i-name">Identity 2.0 何时真正到来？（三）生财有道的 i-name</a></li><li><a href="http://blog.linjian.org/articles/identity-20-2-information-card/" title="Identity 2.0 何时真正到来？（二）处境尴尬的 Information Card">Identity 2.0 何时真正到来？（二）处境尴尬的 Information Card</a></li><li><a href="http://blog.linjian.org/articles/storage-trust-model/" title="浅谈存储系统的信任边界">浅谈存储系统的信任边界</a></li><li><a href="http://blog.linjian.org/articles/godaddy-economy-plan-hosting-ssh/" title="Godaddy Economy Plan Hosting SSH 体验">Godaddy Economy Plan Hosting SSH 体验</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/identity-20-4-conclusion/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Identity 2.0 何时真正到来？（三）生财有道的 i-name</title>
		<link>http://blog.linjian.org/articles/identity-20-3-i-name/</link>
		<comments>http://blog.linjian.org/articles/identity-20-3-i-name/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 17:45:21 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[IT杂谈]]></category>
		<category><![CDATA[i-name]]></category>
		<category><![CDATA[XRI]]></category>
		<category><![CDATA[服务]]></category>
		<category><![CDATA[用户]]></category>
		<category><![CDATA[网络]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=384</guid>
		<description><![CDATA[　　OpenID 可以在网上免费申请，Information Card 可以在本地自行创建，但如果说有一种 Identity 2.0 的用户身份需要付费注册，你还会使用吗？这就是 i-name。 　　严格地说，i-name 不是一种身份认证技术，而是一种通用的网络资源命名机制。i-name 的缘由要从 OASIS (Organization for the Advancement of Structured Information Standards) 相关工作组制定的 XRI (Extensible Resource Identifier) 说起。XRI 旨在建立一种兼容并扩展 URI 的资源抽象标识符体系，提供统一的，与管理域、位置、应用和传输无关性的标识符。它使用若干符号来标识语义： 　　● “=”：个人，例如“=Mary”代表 Mary； 　　● “@”：组织，例如“@ABC.Company”代表 ABC Company； 　　● “+”：概念或主题，例如“=Mary/(+blog)”代表 Mary 的 blog； 　　● “*”：委托，即委托下一级 XRI 解析器操作，语义上类似于 DNS 中的子域，例如“@ABC.Company*HR”代表 ABC Company 的 HR 部门。 　　为了显式说明一个字符串是 XRI，常在前面加上协议标识“xri://”。 　　上面呈现的几个例子均是对人类友好的、可读的 [...]]]></description>
			<content:encoded><![CDATA[<p>　　OpenID 可以在网上免费申请，Information Card 可以在本地自行创建，但如果说有一种 Identity 2.0 的用户身份需要付费注册，你还会使用吗？这就是 <a href="http://inames.net/">i-name</a>。<br />
　　严格地说，i-name 不是一种身份认证技术，而是一种通用的网络资源命名机制。i-name 的缘由要从 <a href="http://www.oasis-open.org/">OASIS (Organization for the Advancement of Structured Information Standards)</a> 相关工作组制定的 <a href="http://en.wikipedia.org/wiki/XRI">XRI (Extensible Resource Identifier)</a> 说起。XRI 旨在建立一种兼容并扩展 URI 的资源抽象标识符体系，提供统一的，与管理域、位置、应用和传输无关性的标识符。它使用若干符号来标识语义：<br />
　　● “=”：个人，例如“=Mary”代表 Mary；<br />
　　● “@”：组织，例如“@ABC.Company”代表 ABC Company；<br />
　　● “+”：概念或主题，例如“=Mary/(+blog)”代表 Mary 的 blog；<br />
　　● “*”：委托，即委托下一级 XRI 解析器操作，语义上类似于 DNS 中的子域，例如“@ABC.Company*HR”代表 ABC Company 的 HR 部门。<br />
　　为了显式说明一个字符串是 XRI，常在前面加上协议标识“xri://”。<br />
　　上面呈现的几个例子均是对人类友好的、可读的 XRI 形式，这种 XRI 名字称为“<a href="http://en.wikipedia.org/wiki/I-name">i-name</a>”或“可重新赋值的（reassignable）XRI”。此外还有一种以“!”后接点分十六进制标识的、用于机器读取的“<a href="http://en.wikipedia.org/wiki/I-number">i-number</a>”或“持久的（persistent）XRI”，形如“@!7F6F.F50.A4E4.1133”。i-name 和 i-number 相当于架设在 DNS 和 TCP/IP 之上的全局资源命名层，其中 i-number 唯一并永久地标识了特定的网络资源，而 i-name 提供了一种易于记忆的、相对稳定的资源名称。正如 URI 常常指向相应的 HTML 文档，XRI 指向的是机器可读的 XML 数据，这种数据的规范是 <a href="http://en.wikipedia.org/wiki/XDI">XDI (XRI Data Interchange)</a>，它包括了资源的标识、描述、连接、同步等信息（参见 <a href="http://www.xdi.org/modules/tut3/index.php?id=2">XRI 与 XDI 体系结构图</a>）。与 DNS 系统的运作类似，XRI 体系也有分布式的名字服务器，也需要在客户端使用解析器来定位资源。同样有像域名注册商一样的机构（称为“<a href="http://en.wikipedia.org/wiki/I-broker">i-broker</a>”）负责 XRI 名字的注册和管理。注册时通常一并提供 i-name 及其对应的 i-number，用户可以自行改变 i-name 到 i-number 的映射，就像修改 DNS 的 A 记录一样。<br />
　　XRI 还没有形成大气候，它甚至在 OASIS 内部的投票中失败，尚未成为 OASIS 标准，更不用说得到 W3C 的认可。名字服务器的稀少使它还未能充分体现分布式系统的可靠性和高效性；客户端软件与库普遍不支持“xri://”解析，这也限制了 XRI 的应用。不过 XRI 引入了代理（proxy）机制，可以通过 HTTP 访问 XRI。官方提供的“<a href="http://xri.net/">http://xri.net/</a>”代理使得用户通过“<a href="http://xri.net/=Mary">http://xri.net/=Mary</a>”就可以访问“<a href="xri://=Mary">xri://=Mary</a>”（下文中的 XRI 均使用代理链接）。目前运营的 i-broker 有 <a href="http://1id.com/">1id</a>、<a href="http://www.fullxri.com/">fullXRI</a> 等，它们模拟域名注册商的经营模式，提供 XRI 名字（i-name 与 i-number）的注册和转移。“=”名字和“@”名字的年费分别是 $12 和 $55，作为一种全局资源，这种收费也看似有理有据。此外像 <a href="http://www.freexri.com/">freeXRI</a> 等网站也提供免费的、含“*”的委托名字注册，相当于 DNS 中的免费二级域名。我注册了“<a href="http://xri.net/=web*linjian">http://xri.net/=web*linjian</a>”用于测试。<br />
　　介绍完 XRI，我们再回到作为 Identity 2.0 技术的 i-name。XRI 引入“=”名字的目的就是要将用户作为一种资源，将其接入互联网。i-name 为用户提供多种与个人身份密切绑定的服务（称为“<a href="http://iss.xdi.org/">i-service</a>”）。这些服务包括：<br />
　　● OpenID 认证服务。i-name 虽然不是基于 URL 的用户名称，但底层同样使用了 <a href="http://en.wikipedia.org/wiki/Yadis">Yadis</a> 服务发现协议，因此和 OpenID、LID 具有互操作性。OpenID 协议 2.0 版本开始原生支持 i-name，理论上说拥有 i-name 即可登录所有使用 OpenID 2.0 或更新版本进行认证的网站。但这也取决于网站程序本身有没有限制非 URL 形式的 OpenID，例如 <a href="http://twitterfeed.com/">twitterfeed</a> 虽然可以通过 i-name 的身份认证，却会在登录网站之后报错。从实现上看，i-name 也是通过密码来验证用户对其的合法拥有，因此 i-name 相对于传统用户认证方式的优缺点和 OpenID 是基本一致的。尽管 XRI 和 DNS 一样具备分布式特性，但可靠和高效的优势只在资源名称查找方面有所体现，而身份验证仍需要在注册该 i-name 的 i-broker 服务器上进行，存在单点失效隐患。<br />
　　● 联系服务。相当于对个人私密联系方式（如 Email、Skype）的封装。通过在 i-name 后面追加“+contact”等标识，对访问者提供相应的 web 界面，使之能够与 i-name 的所有者通信，避免暴露 Email 地址等个人私密联系方式，同时有助于防范垃圾信息。例如可以通过“<a href="http://xri.net/=web*linjian/(+contact)">http://xri.net/=web*linjian/(+contact)</a>”给我发邮件。<br />
　　● 转发服务。同样是在 i-name 后面追加特定的“+”标识，以便跳转到该 i-name 所有者事先指定的页面，例如“<a href="http://xri.net/=web*linjian/(+www)">http://xri.net/=web*linjian/(+www)</a>”、“<a href="http://xri.net/=web*linjian/(+blog)">http://xri.net/=web*linjian/(+blog)</a>”分别指向我的网站与 blog。<br />
　　另外 i-name 还提供 SAML 认证服务、位置服务等。除了身份认证服务，其它服务在“<a href="http://xri.net/">http://xri.net/</a>”代理的封装下失去了 XRI 的特异性，变得和访问一般网页无异。<br />
<a href="http://picasaweb.google.com/lh/photo/mmlEwGNarzwLaLqzdn3VyA?feat=embedwebsite"><img src="http://www.linjian.org/imagoxy/getimg.php?u=nBnauMXakFWevADN2M3LJhHUsh3VFZldvF3L4UlQBFUQBFUQBF0LJ9UVW5mRVtETwN1LZFlQFlXMU1yXRp1Xv02bj5CdoB3Zn5CNox2LvoDc0RHa" title="" alt="Identity 2.0 何时真正到来？（三）生财有道的 i name" /></a><br />
　　作为与环境无关的、持久的网络资源命名机制，XRI 是一项有意义的探索。目前 XRI 仍处于实验演化和向标准迈进的阶段，产业界的支持与否很大程度上可以决定其生死。作为个人身份标识的 i-name 似乎是 XRI 面向市场宣传的唯一“杀手级应用”，有点喧宾夺主。但从原理上说，Yadis 协议已经使得此类技术趋同，i-name 宣称的终身性、持久性优势紧密依赖于 XRI 的存亡。相比之下域名系统已经稳定运行了数十年，技术和市场早已成熟，保守的用户也许会选择用更少的开销维护一个自己的域名来保证 OpenID 或 LID 的持久性。但我们也不能忽视 XRI 成功的可能性，说不准现阶段就是投资抢注 i-name 的大好时机。</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/identity-20-3-i-name/">http://blog.linjian.org/articles/identity-20-3-i-name/</a>，作者：<a href="http://blog.linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/cn/">知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议</a>进行许可。
<br />(Digital fingerprint: 
 993d4981d6d552510db9a08493b2dbec)<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li><a href="http://blog.linjian.org/articles/identity-20-4-conclusion/" title="Identity 2.0 何时真正到来？（四）用户价值决定前途走向">Identity 2.0 何时真正到来？（四）用户价值决定前途走向</a></li><li><a href="http://blog.linjian.org/articles/identity-20-2-information-card/" title="Identity 2.0 何时真正到来？（二）处境尴尬的 Information Card">Identity 2.0 何时真正到来？（二）处境尴尬的 Information Card</a></li><li><a href="http://blog.linjian.org/articles/identity-20-1-openid/" title="Identity 2.0 何时真正到来？（一）小有所成的 OpenID">Identity 2.0 何时真正到来？（一）小有所成的 OpenID</a></li><li><a href="http://blog.linjian.org/articles/storage-trust-model/" title="浅谈存储系统的信任边界">浅谈存储系统的信任边界</a></li><li><a href="http://blog.linjian.org/articles/godaddy-economy-plan-hosting-ssh/" title="Godaddy Economy Plan Hosting SSH 体验">Godaddy Economy Plan Hosting SSH 体验</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/identity-20-3-i-name/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Identity 2.0 何时真正到来？（二）处境尴尬的 Information Card</title>
		<link>http://blog.linjian.org/articles/identity-20-2-information-card/</link>
		<comments>http://blog.linjian.org/articles/identity-20-2-information-card/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 16:05:42 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[IT杂谈]]></category>
		<category><![CDATA[Information Card]]></category>
		<category><![CDATA[微软]]></category>
		<category><![CDATA[服务]]></category>
		<category><![CDATA[用户]]></category>
		<category><![CDATA[网络]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=378</guid>
		<description><![CDATA[　　在 Identity 2.0 技术族中，Information Card（信息卡）算是 2006 年左右炒作得比较多，然而目前发展却不尽如人意的一支。当时微软把 Windows CardSpace——即它的 Information Card 套件同 WCF、WPF、WF 并列，作为 .NET Framework 3.0 的四大新兴组件来宣传。然而仅从现在的技术图书市场就可以看到：W*F 相关书籍在 .Net 书架上大行其道，而有关 Windows CardSpace 的书籍则是凤毛麟角。细心的 Windows 用户常常会疑惑：新版系统的控制面板中为什么会有一个似乎是制作名片用的 Windows CardSpace 工具？一般用户很少知道微软当年“Codename InfoCard”的雄心。 　　事实上，Information Card 不是微软一家独推的身份认证技术，它还得到了 Intel、Google、Novell、Oracle、Paypal 等公司的支持，并由这些公司共同组建了非盈利的 Information Card Foundation (ICF) 来推进这一技术。和 OpenID 一样，Information Card 也开放标准，没有中心节点，允许任何人按照标准独立实现和构建 Identity Provider 以及基于 Information Card 认证的网络应用，甚至允许用户使用相应的软件在本地自行创建个人 Information Card。Information Card 的工作模型源于生活中的实体证件认证机制：Identity Provider [...]]]></description>
			<content:encoded><![CDATA[<p>　　在 Identity 2.0 技术族中，<a href="http://en.wikipedia.org/wiki/Information_Card">Information Card（信息卡）</a>算是 2006 年左右炒作得比较多，然而目前发展却不尽如人意的一支。当时微软把 <a href="http://en.wikipedia.org/wiki/Windows_CardSpace">Windows CardSpace</a>——即它的 Information Card 套件同 <a href="http://en.wikipedia.org/wiki/Windows_Communication_Foundation">WCF</a>、<a href="http://en.wikipedia.org/wiki/Windows_Presentation_Foundation">WPF</a>、<a href="http://en.wikipedia.org/wiki/Windows_Workflow_Foundation">WF</a> 并列，作为 <a href="http://en.wikipedia.org/wiki/.NET_Framework_3.0#.NET_Framework_3.0">.NET Framework 3.0</a> 的四大新兴组件来宣传。然而仅从现在的技术图书市场就可以看到：W*F 相关书籍在 .Net 书架上大行其道，而有关 Windows CardSpace 的书籍则是凤毛麟角。细心的 Windows 用户常常会疑惑：新版系统的控制面板中为什么会有一个似乎是制作名片用的 Windows CardSpace 工具？一般用户很少知道微软当年“Codename InfoCard”的雄心。<br />
<a href="http://picasaweb.google.com/lh/photo/57SObJ3Q-IHdhUftGlN3uQ?feat=embedwebsite"><img src="http://www.linjian.org/imagoxy/getimg.php?u=%3DcGcq5CZyF2YvADN2M3L3ZVOylWdIljWCl2LNRlQBFUQBFUQBF0LJFHbw50cQF1VvN1LZFlQFlXMU1yXRp1Xv02bj5CdoB3Zn5SNox2LvoDc0RHa" title="" alt="Identity 2.0 何时真正到来？（二）处境尴尬的 Information Card" /></a><br />
　　事实上，Information Card 不是微软一家独推的身份认证技术，它还得到了 Intel、Google、Novell、Oracle、Paypal 等公司的支持，并由这些公司共同组建了非盈利的 <a href="http://informationcard.net/">Information Card Foundation (ICF)</a> 来推进这一技术。和 OpenID 一样，Information Card 也开放标准，没有中心节点，允许任何人按照标准独立实现和构建 Identity Provider 以及基于 Information Card 认证的网络应用，甚至允许用户使用相应的软件在本地自行创建个人 Information Card。Information Card 的工作模型源于生活中的实体证件认证机制：Identity Provider 是按照一定的规则给用户颁发 Information Card，并可以管理和验证自己颁发的 Information Card 的机构，相当于颁发驾照的交管部门或发行信用卡的银行；Identity Selector 是帮助用户保存和管理自己的 Information Card 的本地软件或网络应用，相当于钱包或保险柜；很多 Identity Selector 也兼具创建个人 Information Card 的功能，相当于名片印刷设备。对其工作机制的一个简单比喻是：用户自行制作数字名片，或在发证机关办理数字卡片或证件；平时把自己的数字名片、卡片或证件放在虚拟的钱包或保险柜中；在需要向目标网站证明自己身份的时候，打开钱包或输入保险柜密码，出示相关名片、卡片或证件（事实上只是它们部分“页面”的“复印件”）；目标网站获取其中的非敏感信息，有时还需要向发证机关求证一下卡片或证件的真伪；通过验证之后目标网站即可为用户提供相应的服务。<br />
　　上文所谓的“名片”即<a href="http://informationcard.net/personal-card-guide">个人（Personal）Information Card</a>，这是 Information Card 最常见的一种形式。个人 Information Card 包含用户的非敏感信息，及其创建时间、创建软件和唯一的 ID 等。在发送给目标站点进行身份认证时，只有用户的非敏感信息被传送，因此不存在<a href="http://blog.linjian.org/articles/identity-20-1-openid/">前文</a>所述的缺点1、2。由于目标网站没有拿到 Information Card 上的 ID 等重要信息，所以它们无法伪造一个与原 Information Card 完全相同的复本来登录原用户注册过的其它网站。在登录时，一个根据协议生成的、不可修改的 Site-Specific Card ID 会发送给目标站点，它唯一表示了特定 Information Card 与特定目标站点的认证关联。Site-Specific Card ID 配合安全协议，具有双向认证特性，可以防止恶意用户伪造他人 Information Card 或钓鱼站点欺骗用户登录（缺点3）。缺点4和缺点5的克服与 OpenID 类似。而个人 Information Card 优于 OpenID 的，是它不存在单点失效问题——因为个人 Information Card 根本用不到 Identity Provider。个人 Information Card 的薄弱环节存在于 Identity Selector，不同的 Identity Selector 可以实现不同的 Information Card 管理和使用授权策略。例如 Windows CardSpace 使用 PIN 码验证本地用户对 Information Card 合法拥有，由于 PIN 码验证完全在本机进行，因此没有网络传输的危险；Windows CardSpace 也不允许导出非加密的 Information Card 文件，因此只要 Windows CardSpace 软件机制没有被破解，设置过 PIN 的 Information Card 是不能从本机或网络轻易窃取的——当然还有一个大前提是用户<a href="http://blog.linjian.org/articles/microsoft-injustice/">不滥用 Administrator 权限</a>，否则“C:\Users\[Username]\AppData\Local\Microsoft\CardSpace”目录还是有被盗取的危险。而另一家知名的 Identity Selector——<a href="http://www.azigo.com/">Azigo</a> 则提供支持多平台的、本地与在线相结合的 Information Card 存储，其信任模型类似于密码托管服务。<br />
　　而上文所谓的“卡片或证件”的学名则是<a href="http://informationcard.net/managed-card-guide">托管（Managed）Information Card</a>，它的主要功能不是验证用户身份和传递用户信息，而是用以证明用户具有某种资质（例如成年用户具有在购物网站购买酒精饮料的资质；持有特定信用卡的用户具有在银行网站使用贵宾服务的资质）。Identity Provider 通过额外的手段审查用户具有某种资质之后，在服务器端生成相应记录，并颁发给用户具有特定字段的托管 Information Card。托管 Information Card 本质上只是一个 XML 格式的、指向 Identity Provider 中相应记录的“指针”文件，它也可以像个人 Information Card 一样保存在 Identity Selector 中。当网站需要验证用户某种资质的时候，托管 Information Card 中的“指针”信息被传送给目标网站，目标网站再连接 Identity Provider 查证用户资质是否存在。托管 Information Card 同样可以克服传统用户名-密码机制的诸多缺点，然而单点失效的问题再一次显露。况且不同的 Identity Provider 提供的资质证明服务是异质的，它们与目标网站也通过证书认证等方式绑定，故不能像 Delegating OpenID 那样简单地找替代品绕过，这是托管 Information Card 有待解决的问题。另外，由于托管 Information Card 的“指针”文件容易复制和传播，为保证其安全，协议规定需要使用 <a href="http://en.wikipedia.org/wiki/X.509">X.509</a> 证书、<a href="http://en.wikipedia.org/wiki/Kerberos_(protocol)">Kerberos</a> ticket、个人 Information Card 或传统的用户名-密码等至少一种机制来验证用户对托管 Information Card 的合法拥有。这将托管 Information Card 的安全性问题划归到上述机制的安全性问题上了。<br />
　　机制的灵活性使得创造<a href="http://en.wikipedia.org/wiki/Information_Card#Types_of_Information_Card">其它类型的 Information Card</a> 成为可能。但新的 Information Card 特性往往需要目标网站和 Identity Selector 的支持。例如 Azigo 支持的几种 <a href="http://www.azigo.com/icards.html">Action Card</a> 类似于现实中的商场会员卡、打折卡，启用之后可以和 Google、Yahoo 或一些购物网站交互，对使用本卡可打折的商品加以图标提示。<br />
　　Information Card 已经发布多年了，但支持用它登录的网站依然很少，ICF 官方的<a href="http://informationcard.net/resources/sites-accepting-cards">资源目录</a>中登记的站点屈指可数。微软的 <a href="https://login.live.com/beta/managecards.srf?wa=wsignin1.0&#038;wreply=http://my.live.com&#038;vv=500">Windows Live 的 Information Card 支持</a>长期处于“Beta”阶段。具有讽刺意味的是专门提供 CardSpace ASP.NET 控件的 <a href="http://www.qualitydata.com/">Quality Data</a> 公司自己的网站还在使用用户名-密码登录。稍微有点意义的托管 Information Card 是 <a href="https://equifaxicards.com/">Equifax</a> 提供的“Over 18 I-Card”成人验证。它通过查证用户的美国社会保险号码发给其代表成人身份的托管 Information Card，目前唯一的用途是在 <a href="http://watch-this.com">Watch-This</a> 网站观看 <a href="http://en.wikipedia.org/wiki/Television_content_rating_systems">18+</a> 的视频。而那几家提供 Azigo Action Card 的网站也往往只把虚拟打折卡和实体打折卡绑定，没有让用户体验到 Information Card 的优势，反而是用一种复杂的机制实现了简单的会员折扣提醒功能。<br />
　　Information Card 市场接受程度远不如 OpenID 的原因，我想很可能与其 Identity Selector 机制有关。Identity Selector 确实在一定程度上增强了安全性，但它不像 OpenID 只基于现有的 Web 机制，而需要在客户端部署依赖于操作系统、浏览器的组件。这使得用户感到不便乃至不安，网站运营者因此不会有太大的兴趣。我目前还没有找到在 Chrome 和 Opera 下好使的 Identity Selector。就连 Windows CardSpace 在 IE8 下工作得都有问题，像 <a href="https://www.signon.com/">SignOn</a> 等网站只有使用 IE7 兼容模式才能登录。可以想像网站运营者如果添加 Information Card 认证，只能收到更多用户的询问或抱怨。Windows Vista 以后 Windows CardSpace 以成为了系统标配，但微软这种把标准协议绑定到 IE 上的行为反而可能引起某些第三方开发者的不满，正如 <a href="http://www.mono-project.com/">Mono</a> 常常被一些“纯粹”的自由软件人士抵制一样。<br />
　　和 Information Card 思路类似的是 IBM、Novell 等公司发起的 <a href="http://www.eclipse.org/higgins/">Higgins</a> 开源项目，它提供给用户的“名片”称为 <a href="http://wiki.eclipse.org/I-Card">I-Card</a>，也借助客户端（或网络托管的）<a href="http://wiki.eclipse.org/Selector_Overview">Selector</a> 保存 I-Card（沿用 ICF 的部分工作）。并支持两种可替换的 <a href="http://wiki.eclipse.org/Identity_Services_Overview">Identity Services</a>，其中一种“可信伙伴”服务可以将 Information Card 或 OpenID 认证方式接入 Higgins 框架。此外 Higgins 还引入了 <a href="http://wiki.eclipse.org/Attribute_Services_Overview">Attribute Services</a>，用于表述数据的上下文及实体（用户、目标网站）之间的关系，并提供访问控制支持（对用户来说，他们此时需要持有一种表示实体间关系 Relationship Card）。Higgins 仍是一个演进中的实验室项目，它提出的一系列认证模型和身份、关系管理机制值得在学术界研究，但目前阶段实用部署仍显复杂。对网站运营者和普通用户来说，额外组件的安装部署、既有应用的修改、新的使用模式和安全守则的学习都是不小的开销。“名片”模式要摆脱现在这种尴尬境地，任重而道远。</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/identity-20-2-information-card/">http://blog.linjian.org/articles/identity-20-2-information-card/</a>，作者：<a href="http://blog.linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/cn/">知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议</a>进行许可。
<br />(Digital fingerprint: 
 993d4981d6d552510db9a08493b2dbec)<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li><a href="http://blog.linjian.org/articles/identity-20-4-conclusion/" title="Identity 2.0 何时真正到来？（四）用户价值决定前途走向">Identity 2.0 何时真正到来？（四）用户价值决定前途走向</a></li><li><a href="http://blog.linjian.org/articles/identity-20-3-i-name/" title="Identity 2.0 何时真正到来？（三）生财有道的 i-name">Identity 2.0 何时真正到来？（三）生财有道的 i-name</a></li><li><a href="http://blog.linjian.org/articles/identity-20-1-openid/" title="Identity 2.0 何时真正到来？（一）小有所成的 OpenID">Identity 2.0 何时真正到来？（一）小有所成的 OpenID</a></li><li><a href="http://blog.linjian.org/articles/windows-live-id-google-account/" title="Windows Live 和 Google 账号的一些差别及其对创建个人统一账号的影响">Windows Live 和 Google 账号的一些差别及其对创建个人统一账号的影响</a></li><li><a href="http://blog.linjian.org/articles/storage-trust-model/" title="浅谈存储系统的信任边界">浅谈存储系统的信任边界</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/identity-20-2-information-card/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Identity 2.0 何时真正到来？（一）小有所成的 OpenID</title>
		<link>http://blog.linjian.org/articles/identity-20-1-openid/</link>
		<comments>http://blog.linjian.org/articles/identity-20-1-openid/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 15:24:01 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[IT杂谈]]></category>
		<category><![CDATA[OpenID]]></category>
		<category><![CDATA[服务]]></category>
		<category><![CDATA[用户]]></category>
		<category><![CDATA[网络]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=377</guid>
		<description><![CDATA[　　最近做了一些和用户管理系统相关的调研，了解到“Identity 2.0”这个概念。Identity 2.0 的提法大约是 2005、2006 年间诞生的，是对一类以用户为中心、支持跨域的身份认证机制的泛称。Identity 2.0 旨在替代现行网络系统上常用的用户名-密码验证机制，以解决用户名-密码机制的以下缺点： 　　1. 键盘敲击用户名-密码有被恶意软件记录的危险； 　　2. 很多设计不周的网站使用 http 协议直接明文传输密码； 　　3. 钓鱼网站的威胁； 　　4. 用户在不同网站上重复填写注册信息、记忆和管理密码的负担较重； 　　5. 不能实现跨域的单点登录。 　　OpenID 可能是目前 Identity 2.0 中影响力最大的一个，我也算是在 OpenID 刚推出之后就使用的用户。它最初是由 LiveJournal 等公司发起的开放技术，允许任何人建立用户管理和认证节点（OpenID provider），用户可以在上面注册一个形同 URL 的 OpenID，此 OpenID 事实上仍要对应 OpenID provider 上的一组用户名-密码。在支持 OpenID 的网站上，用户只需使用自己的 OpenID 登录。该网站通过访问 OpenID URL 找到 OpenID provider，如果用户已成功登录 OpenID provider（或在本地保存了有效的 Cookie），则 OpenID provider 向目标网站返回用户身份信息；否则重定向到 OpenID provider [...]]]></description>
			<content:encoded><![CDATA[<p>　　最近做了一些和用户管理系统相关的调研，了解到“<a href="http://en.wikipedia.org/wiki/Identity_2.0">Identity 2.0</a>”这个概念。Identity 2.0 的提法大约是 2005、2006 年间诞生的，是对一类以用户为中心、支持跨域的身份认证机制的泛称。Identity 2.0 旨在替代现行网络系统上常用的用户名-密码验证机制，以解决用户名-密码机制的以下缺点：<br />
　　1. 键盘敲击用户名-密码有被恶意软件记录的危险；<br />
　　2. 很多设计不周的网站使用 http 协议直接明文传输密码；<br />
　　3. 钓鱼网站的威胁；<br />
　　4. 用户在不同网站上重复填写注册信息、记忆和管理密码的负担较重；<br />
　　5. 不能实现跨域的单点登录。<br />
　　<a href="http://en.wikipedia.org/wiki/OpenID">OpenID</a> 可能是目前 Identity 2.0 中影响力最大的一个，我也算是在 OpenID 刚推出之后就使用的用户。它最初是由 <a href="http://www.livejournal.com/">LiveJournal</a> 等公司发起的开放技术，允许任何人建立用户管理和认证节点（OpenID provider），用户可以在上面注册一个形同 URL 的 OpenID，此 OpenID 事实上仍要对应 OpenID provider 上的一组用户名-密码。在支持 OpenID 的网站上，用户只需使用自己的 OpenID 登录。该网站通过访问 OpenID URL 找到 OpenID provider，如果用户已成功登录 OpenID provider（或在本地保存了有效的 Cookie），则 OpenID provider 向目标网站返回用户身份信息；否则重定向到 OpenID provider 的登录界面，要求输入用户名-密码以验证用户对 OpenID 合法拥有。OpenID 没有解决上述缺点1，但如果支持 OpenID 的网站多起来了，则可以大幅减少密码输入次数；OpenID provider 通过使用 https 及密码摘要可以解决缺点2；用户只要记清楚 OpenID provider 的域名，不在 OpenID provider 以外输入用户名-密码，可以在一定程度上降低钓鱼网站（缺点3）的威胁（但钓鱼网站仍可以伪装成目标网站来欺骗用户，获取 OpenID provider 中的非敏感信息，只是得不到密码）；缺点4在 OpenID 中不存在，但需要权衡的是在 OpenID 中保存多少个人信息，毕竟我们对不同目标网站的信任度是不同的；而解决了缺点5正是 OpenID 的最大亮点。OpenID 带来的新问题是单点失效。虽然网上有很多 OpenID provider，但一个 OpenID 只保存在一个 OpenID provider 中，只要这个服务器失效了，上面所有的用户就无法登录任何基于其验证身份的网站了。解决这个问题的方法之一是使用 OpenID 的 <a href="http://openid.net/specs/openid-authentication-1_1.html#delegating_authentication">Delegation</a> 机制，通过另一个相对安全稳定的 URL（称为“Delegating OpenID”，位于普通的 web 服务器上即可）指向 OpenID URL。一旦原来的 OpenID provider 失效，可以在另一个 OpenID provider 上注册新用户，并将原有的 Delegating OpenID 指向新 OpenID。这时凡使用 Delegating OpenID 注册的网站账户登录不受影响。但从本质上说，保存 Delegating OpenID 的 web 服务器仍有单点失效的危险，用户最好能自己控制 Delegating OpenID 的域名，以方便在 web 服务器失效时快速迁移。但这对于大众用户来说又是不现实的。<br />
　　目前 <a href="http://www.openiddirectory.com/">OpenID Directory</a> 收录的支持 OpenID 登录的网站有 800 多个，其中不乏 <a href="https://www.blogger.com/">Blogger</a>、<a href="http://sourceforge.net/">SourceForge</a> 等知名网站。但相当多的网站没有把 OpenID 作为自己唯一的、主推的登录方式，很多网站只使用 OpenID 的登录认证功能，而自己独立管理用户个人信息。不少网站只把 OpenID 作为一个别名，绑定到已有的用户名-密码之上。还有部分网站的 OpenID 用户只能使用有限的功能（例如只能给 Blog 留言，不能建立自己的 Blog），不是一个完整的账号。真正把 OpenID 作为唯一入口的网站并不多，<a href="http://www.copytaste.com/">CopyTaste</a> 是一个例子；<a href="http://twitterfeed.com/">Twitterfeed</a> 以前也是，不过现在支持（并且主推的是）用户名-密码登录方式。造成这种现状很可能是因为 OpenID 的可靠性问题（单点失效）没有得到有效的解决。此外，开放的 OpenID provider 市场难免鱼目混珠，也使一些网站经营者对其望而却步，毕竟网站经营者要对自己的用户数据负责。抛开这些，仅仅从技术角度说，OpenID 为了开发和使用的灵活，在使用模式上没有太多的规矩，但这反而可能使开发人员对其误用，造成包括数据不一致在内的诸多问题。我就在 Twitterfeed 上遇到过这样的问题（与使用 Delegating OpenID 有关），好在它的开发者 <a href="http://twitterfeed.wordpress.com/about/">Mario Menti</a> 热心地帮我直接修改数据库得以解决。我还因为同时使用具有相同 Email 的普通账户和 OpenID 账户，在基于 <a href="http://moodle.org/">Moodle</a> 的 <a href="http://www.impactenglish.com/">Impact English</a> 中丢失了学习记录，最终也是请教师在后台查证的。<br />
　　对传统 OpenID 的安全性进行小幅改进的是 <a href="http://www.verisign.com/research/">VeriSign Labs</a> 推出的 <a href="https://pip.verisignlabs.com/">Personal Identity Portal (PIP)</a>，它可以使用数字证书、电子口令牌或手机动态口令等方式对 OpenID 的登录进行二次验证。这使得 OpenID 的密码即使被他人窃取，也无法在别的电脑上轻易登录。除安全型 OpenID 之外，PIP 还提供密码托管服务，将其它网站的密码保存在 PIP 上，用户只要成功登录了 PIP 就可以免输密码直接登录那些网站。这种服务严格地说不算是 Identity 2.0，但确实不失为一种不用修改目标网站（或只要求其增加少量安全的 REST API）即可实现跨域单点登录的模型。密码托管可以防止钓鱼和键盘记录，并尽可能地帮用户选择 https 登录通道。国内也有像<a href="http://www.onedoor.cn/">豌豆网</a>、<a href="http://www.passbox.cn/">PassBox</a> 这样的密码托管服务提供商，然而这种使用模式的缺点显而易见：任凭服务商宣称其技术和管理上如何安全，也难以说服用户放心地把密码保存在第三方的服务器。有恶意的服务商完全有能力借此窃取用户的密码，这时服务商本身变成了一个钓鱼网站。此外值得一提的、和 Identity 2.0 关系不大但有可能成为另外一条思路的是同 PIP 紧密结合的 <a href="https://idprotect.verisign.com/">VeriSign Identity Protection (VIP)</a> 服务，用户可以申请电子口令牌（收费）或安装手机动态口令软件（免费），作为登录支持 VIP 的网站的二次验证凭据，这很像国内一些银行所采用的<a href="http://www.boc.cn/custserv/bocnet/200810/t20081022_7429.html">动态口令牌</a>。VIP 和 OpenID 一样，也需要目标网站的支持，目前支持它的多为美国的消费类网站，其中 <a href="http://www.paypal.com/">PayPal</a>、<a href="http://www.ebay.com/">eBay</a> 等对中国用户可能也有实用意义。如果 VeriSign 能将 PIP 和 VIP 开放标准，或许可以推动 OpenID 标准的进步和市场的开拓。<br />
<a href="http://picasaweb.google.com/lh/photo/aQHVgVGTHBuJ7q6iR6WudA?feat=embedwebsite"><img src="http://www.linjian.org/imagoxy/getimg.php?u=%3D%3DwRQpkLQlkVvADN2M3LZJ0b50WaVp1Vzo1LFRlQBFUQBFUQBF0LJZ1astkU0lXUvN1LZFlQFlXMU1yXRp1Xv02bj5CdoB3Zn5yMox2LvoDc0RHa" title="" alt="Identity 2.0 何时真正到来？（一）小有所成的 OpenID" /></a><br />
　　同样基于 URL 的身份认证机制还有 <a href="http://en.wikipedia.org/wiki/Light-Weight_Identity">LID (Light-Weight Identity)</a>。OpenID 和 LID 的发起者很早便意识到不同机制间互操作的重要性，因此他们共同制定了 <a href="http://en.wikipedia.org/wiki/Yadis">Yadis</a> 服务发现协议，使得二者在一定程度支持互操作。目前 LID 的影响力不如 OpenID，<a href="http://mylid.net/">MyLID</a> 可能是唯一一家正式运营的 LID provider。当然 LID 也是开源的，允许任何人建立自己的 provider。<br />
　　和 OpenID 机制类似的是微软的 Windows Live ID，也就是通常所说的 Hotmail 或 MSN 账号。除了是由微软独家提供身份认证服务器并使用 Email 作为用户名称，其工作原理和特性与 OpenID 大同小异。尽管微软提供了比 OpenID 更加易用的 <a href="http://dev.live.com/liveid/">SDK</a>，但是 Windows Live ID 目前只在微软的各种网站，如 <a href="http://www.imaginecup.com/">Imagine Cup</a>、<a href="http://www.msuniversity.edu.cn/">微软学生中心</a>上普遍使用，第三方网站使用得很少，也许是对微软这个巨头及其垄断的标准怀有戒心。一家 OpenID provider 倒了可以换另一家，但如果微软对 Windows Live ID 撒手，使用它的第三方网站和用户都会遭殃。此外，反对者还认为使用 Email 作为用户名称更容易招致垃圾邮件。</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/identity-20-1-openid/">http://blog.linjian.org/articles/identity-20-1-openid/</a>，作者：<a href="http://blog.linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/cn/">知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议</a>进行许可。
<br />(Digital fingerprint: 
 993d4981d6d552510db9a08493b2dbec)<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li><a href="http://blog.linjian.org/articles/identity-20-4-conclusion/" title="Identity 2.0 何时真正到来？（四）用户价值决定前途走向">Identity 2.0 何时真正到来？（四）用户价值决定前途走向</a></li><li><a href="http://blog.linjian.org/articles/identity-20-3-i-name/" title="Identity 2.0 何时真正到来？（三）生财有道的 i-name">Identity 2.0 何时真正到来？（三）生财有道的 i-name</a></li><li><a href="http://blog.linjian.org/articles/identity-20-2-information-card/" title="Identity 2.0 何时真正到来？（二）处境尴尬的 Information Card">Identity 2.0 何时真正到来？（二）处境尴尬的 Information Card</a></li><li><a href="http://blog.linjian.org/articles/storage-trust-model/" title="浅谈存储系统的信任边界">浅谈存储系统的信任边界</a></li><li><a href="http://blog.linjian.org/articles/godaddy-economy-plan-hosting-ssh/" title="Godaddy Economy Plan Hosting SSH 体验">Godaddy Economy Plan Hosting SSH 体验</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/identity-20-1-openid/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>解决 Ubuntu 9.04 下启动 Dropbox 出错的问题</title>
		<link>http://blog.linjian.org/articles/ubuntu-jaunty-dropbox/</link>
		<comments>http://blog.linjian.org/articles/ubuntu-jaunty-dropbox/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 08:36:27 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[Linux与开源]]></category>
		<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[存储]]></category>
		<category><![CDATA[网络]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=374</guid>
		<description><![CDATA[　　尽管我对云存储还不是那么放心，但这类服务确实给广域网上的文件传输、共享和同步带来了方便。今天在朋友的推荐下试用了 Dropbox，感觉还不错，比较有用的特性便是它提供了多平台的客户端（Windows、Linux、Mac）以及与本地文件管理器（Explorer、Nautilus）的集成，不像我以前试用过的微软的 Sync 服务只支持 Windows 和 Mac。免费版的空间是 2G，对于完成非敏感文件的临时性传输、共享以及文档在跨域计算机间的同步是足够的。特别是它还提供了版本管理功能（基于 web，比较简单，不能做 diff、merge 等），解决了在公网上自行搭建 SVN 服务器的不便——这些就是我决定使用它的理由。而如果要作为备份平台，一方面恐怕需要自己再做一级文件级的加密才放心；另一方面，我还是倾向于自己管理备份文件的版本，对需要备份的文件在特定时间点做整体的归档，而版本管理工具并不是我期望的模型。 　　我在 Ubuntu 9.04（Jaunty）上安装 Dropbox 后，启动时出现以下错误： lj@lj-laptop:~$ The program 'dropbox' received an X Window System error. This probably reflects a bug in the program. The error was 'BadIDChoice (invalid resource ID chosen for this connection)'. &#160; (Details: serial 733 error_code 14 request_code 53 [...]]]></description>
			<content:encoded><![CDATA[<p>　　尽管<a href="http://blog.linjian.org/articles/storage-trust-model/">我对云存储还不是那么放心</a>，但这类服务确实给广域网上的文件传输、共享和同步带来了方便。今天在朋友的推荐下试用了 <a href="http://www.getdropbox.com/">Dropbox</a>，感觉还不错，比较有用的特性便是它提供了多平台的客户端（Windows、Linux、Mac）以及与本地文件管理器（Explorer、Nautilus）的集成，不像我以前试用过的微软的 <a href="https://sync.live.com/">Sync</a> 服务只支持 Windows 和 Mac。免费版的空间是 2G，对于完成非敏感文件的临时性传输、共享以及文档在跨域计算机间的同步是足够的。特别是它还提供了版本管理功能（基于 web，比较简单，不能做 diff、merge 等），解决了在公网上自行搭建 SVN 服务器的不便——这些就是我决定使用它的理由。而如果要作为备份平台，一方面恐怕需要自己再做一级文件级的加密才放心；另一方面，我还是倾向于自己管理备份文件的版本，对需要备份的文件在特定时间点做整体的归档，而版本管理工具并不是我期望的模型。<br />
　　我在 Ubuntu 9.04（Jaunty）上安装 Dropbox 后，启动时出现以下错误：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">lj@lj-laptop:~$ The program 'dropbox' received an X Window System error.</li>
<li>This probably reflects a bug in the program.</li>
<li>The error was 'BadIDChoice (invalid resource ID chosen for this connection)'.</li>
<li>&nbsp; (Details: serial 733 error_code 14 request_code 53 minor_code 0)</li>
<li>&nbsp; (Note to programmers: normally, X errors are reported asynchronously;</li>
<li>&nbsp;&nbsp; that is, you will receive the error a while after causing it.</li>
<li>&nbsp;&nbsp; To debug your program, run it with the --sync command line</li>
<li>&nbsp;&nbsp; option to change this behavior. You can then get a meaningful</li>
<li>&nbsp;&nbsp; backtrace from your debugger if you break on the gdk_x_error() function.)</li></ol></div>
<p>　　Google 得到的答案 [<a href="http://nelson.pixnet.net/blog/post/23844686">1</a>]、[<a href="http://www.ubuntu-inside.me/2009/05/howto-get-dropbox-working-on-ubuntu.html">2</a>] 大多是通过安装 Dropbox 的 experimental build 或所谓<a href="http://linuxtoy.org/archives/using-dropbox-without-nautilus.html">非 Nautilus 版本</a>来解决。不过我还是找到了<a href="http://forums.getdropbox.com/topic.php?page=2&#038;id=9090&#038;replies=18">一个更简单的解决方案</a>：<strong>在安装 Dropbox 及其 daemon 之后断开网络连接，然后启动 Dropbox，现在它的设置对话框便可以正常弹出并报告网络连接错误。这时只需要恢复网络连接，并点击“Reconnect”按钮，Dropbox 就进入了正常工作状态。重新启动计算机之后也没有问题。</strong><br />
　　顺便广告一下，目前邀请朋友注册 Dropbox，邀请方和被邀请方都可以得到额外的 256M 空间，累计最多可升至 5G 免费空间。如果有兴趣，不妨通过<a href="https://www.getdropbox.com/referrals/NTE2NjI0MDg5">我的推荐链接</a>来注册，双方都受益。</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/ubuntu-jaunty-dropbox/">http://blog.linjian.org/articles/ubuntu-jaunty-dropbox/</a>，作者：<a href="http://blog.linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/cn/">知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议</a>进行许可。
<br />(Digital fingerprint: 
 993d4981d6d552510db9a08493b2dbec)<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li><a href="http://blog.linjian.org/articles/smartq-v5-mifi/" title="使用智器 V5 实现山寨 MiFi">使用智器 V5 实现山寨 MiFi</a></li><li><a href="http://blog.linjian.org/articles/s3-sync-tools/" title="三款面向 Amazon S3 的开源文件同步工具之对比">三款面向 Amazon S3 的开源文件同步工具之对比</a></li><li><a href="http://blog.linjian.org/articles/ipv6-icmpv6-error/" title="解决 IPv6 路由发现协议得到错误地址的问题">解决 IPv6 路由发现协议得到错误地址的问题</a></li><li><a href="http://blog.linjian.org/articles/rsync-unison-ssh/" title="使用 rsync 或 unison 备份或同步支持 ssh 的 web 主机">使用 rsync 或 unison 备份或同步支持 ssh 的 web 主机</a></li><li><a href="http://blog.linjian.org/articles/storage-trust-model/" title="浅谈存储系统的信任边界">浅谈存储系统的信任边界</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/ubuntu-jaunty-dropbox/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>对“为人民计算”的几点思考</title>
		<link>http://blog.linjian.org/articles/essay-on-c4m/</link>
		<comments>http://blog.linjian.org/articles/essay-on-c4m/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 15:30:03 +0000</pubDate>
		<dc:creator>Jian Lin</dc:creator>
				<category><![CDATA[计算机科学与编程]]></category>
		<category><![CDATA[为人民计算]]></category>
		<category><![CDATA[信息]]></category>
		<category><![CDATA[普惠计算]]></category>
		<category><![CDATA[社会]]></category>
		<category><![CDATA[网络]]></category>
		<category><![CDATA[计算机]]></category>

		<guid isPermaLink="false">http://blog.linjian.org/?p=355</guid>
		<description><![CDATA[对“为人民计算”的几点思考 （本文为本人“先进计算机和软件技术系列讲座”课程作业） 　 　　“为人民计算”（Computing for the Masses）是近年来计算机科学技术和产业发展的目标之一。而究竟什么是“为人民计算”，出于国情、技术水平和个人认识的差异，不少学者提出过不同的理解。我国人口众多，农村人口占56%（国家统计局2007年10月数据），城乡经济和区域发展尚不协调，正处于信息化带动工业化的发展时期。在这种历史条件下，如何使得信息化的成果真正惠及人民，实现计算机行业所谓“普惠计算”的目标，是业界出于其社会责任感有必要思考的一个问题。针对我的导师徐志伟研究员在“为人民计算”方面的提出的一些观点，我浅谈一下我对几个相关问题的思考。 　 　　消费动机不在信息化本身 　　在受益于信息化且面向大众服务的行业当中，近几年来增长较为显著的是移动通信产业。中国的移动电话用户数量由1999年底的4330万户发展到2009年中期的6.87亿户。城市手机用户已经趋于饱和，但运营商对农村移动通信市场仍有信心。移动通信之所以得到了市场的认可，与其明确的消费目的息息相关。绝大多数消费者购买手机，其基本动机就是为了享受通信的便利；对于相当一些职业的人士，实时的通信可能已经不是“方便”而是“必须”。对于农村新市场的开拓，其难点可能在经济方面，而不在于人民对手机的基本功能和作用的认知。类似的案例还有银行卡。截至2009年6月，全国累计发行银行卡18.88亿张，银行卡的主要用户也分布在城市，农村和欠发达地区受制于经济条件和消费意识，对银行卡产品也许有所误解，但这不能说明银行卡本身的定位有问题，至少它们的功能是相对单一和明确的，满足了人民群众的特定需求。 　　然而，计算机与网络技术对人民大众来说，其直接的消费目的性并不如移动通信、银行卡那样显而易见。在目前阶段，计算机与网络更多地扮演着工具和桥梁的角色。购买计算机、接入互联网，并不能直接解决什么具体问题，计算机和网络解决的问题是通过运行在其上的应用体现出来的。“上网”、“获得信息”、“学习”都是一些相对抽象的动机，不能直接满足低端用户具体一项生活需求。因此在商业化推广中，这些空虚的目标可能不会对低端消费者产生太大的吸引力。即便通过财政支持来发展信息化，这些成果也很可能沦落为地方政绩的象征或闲人娱乐的工具，对生产生活不会有实质的影响。要在2040年建成惠及至少12亿人的信息化社会，我认为不能把民用计算机、网络定位为移动通信那种具有明显消费目的性的产品，而必须改变现有中低端计算机和网络相关产品或服务的社会定位，在应用层面寻找“为人民计算”的突破口。 　　信息化被作为工具的现状令很多从业者，特别是计算机科学研究人员不满：业界不愿意让信息技术变成像楼宇保洁一样必不可少但几乎不能创造价值的服务业，学界不也甘心计算机科学停滞不前，最终被其它学科以工具和技术的名义吞并。上世纪末本世纪初，网格计算的理念曾十分风行，研究人员力图建立一种像电网一样即插即得的信息基础设施，但至今网格技术只在部分专业研究领域发挥了功效，而那种惠及全民的“Great Glocal Grid”还未见雏形。其中主要的原因，我认为是信息资源缺乏像电力资源那样的同质性，抛开技术层面的因素，难以同质化的信息本身就使得潜在的用户无法建立明确的消费动机。但信息的同质化正是一个值得研究的科学问题，这个问题的解决，将使得计算机、网络由独立的工具进化为信息基础设施的地位。我们需要这样的基础设施在社会的后台像电网一样默默无闻地“为人民计算”，而用来明确消费动机、创造商业价值、进而构建信息社会的，不是计算机和网络的实体，而是这一基础设施之上的、像家用电器一样的、但目前尚未被发明的具体应用。 　 　　比“脱贫”更难的是“第二跳” 　　目前我国大多数人口仍处于“信息贫困线”以下，“脱贫”是产业界、学术界和决策层正在着力解决的问题。“脱贫”的方向相对明确。对于产业界，主要需要考虑机器生产和网络运营的成本，让计算机和网络对所有人来说由奢侈品变成日用品；对于学术界，需要摒弃一味追求性能的老路，从功耗、易用性等贴近用户的角度考虑体系结构的设计；决策层则需要提供政策扶持，对相关产业采取优惠措施，对人民群众加以合理引导。但我认为有可能出现困难的，并不在于“脱贫”的“第一跳”，而在于由基本价值向商品价值提升的“第二跳”。 　　还是以银行卡为例，我国银行卡发行数量虽然已经超过人口总量，但真正用卡的人群并不大，相当一部分银行卡是通过任务摊派的方式进入低端市场的，这些卡大都成了没有任何交易记录的“死卡”。即使是使用银行卡的人，他们中的多数也只享受了其商品价值，把它当作一张可以自助取款的存折，从未使用甚至从未听说过银行卡所关联的高级金融服务。 　　纵观我国计算机网络用户，其层次分化较为明显。IT界的精英人士、具有探索精神的专业人士早已享受到了信息产业的泛在价值、专业价值乃至个性价值，他们甚至可以在软件开发商与网络运营商尚未提供相关服务的情况下发扬自主创新的DIY精神，主动地让信息化为自己创造价值。而目前数目最庞大的用户群是将计算机、网络作为工具的人群，他们虽然享受了信息化带来的基本价值和商品价值，但只是在工作和生活中为了特定的目的有意去使用计算机和网络，计算机和网络更多地作为间接、高效实现传统生产模式价值的途径，而不是直接为这些用户提供新的价值。在农村和欠发达地区也有一定数量的计算机、网络用户，网吧是他们接触信息化成果的主要场所。这些用户缺乏自主探索的意识，他们通常使用仅仅使用网吧预置的网站、软件与游戏。即使是这些地区的一些官员，对信息产业的理解也有可能过于狭隘，甚至可能因为未成年人沉迷网游等问题对计算机、网络建立负面的印象，进而抵制信息化进程。然而要达到“普惠计算”的目标，必须把这类人群作为未来市场的潜在用户。目前我国的信息化还没有像工业化那样彻底地改变大多数人的生活方式；在相当一部分地区，工业化的成果甚至还没有全面应用到生产中，在这些地区谈信息化的价值，确实不容易为当地政府和人民大众所接受。单纯的基础设施建设所带来的基本价值就像提供给毫无养殖经验的农户的良种牲畜，他们只能一吃了之，不懂得通过繁殖子代、获取副产品来增值。既然信息化带动工业化已经是中国特色的跨越式发展模式，我们就应该在“脱贫”的同时完成“第二跳”的工作，提供一系列能够直接服务于生产、生活的应用。只有完成“第二跳”，信息化才不再是软硬件堆叠的花架子，其价值才能使个人用户受益。如何让人民群众真正从“为人民计算”中得到实惠，让计算机科学的成果成为人民群众喜闻乐见的事物，而不是像银行卡市场那样徒有虚名，这才是比信息“脱贫”更重要的任务。 　 　　对“计算透镜”半保守半超前的认识 　　Richard M. Karp提出的“计算透镜”（Computational Lens）理念被认为是未来二十年计算机科学可能的发展方向之一。其核心理念是将计算作为一种通用的思维方式，通过这种广义的计算（涉及信息、执行算法、关注复杂度）来描述各类自然过程和社会过程，从而解决各个学科的问题。Karp给出了计算透镜理论在生物科学中的成功应用。这一理论试图将计算机科学由最初的数值计算工具、仿真与可视化技术以及后来基于网络、面向多学科的e-Science平台，变成普遍适用于自然和社会领域的通用思维模式。从这一点上看，计算透镜的思路也似乎是要将计算机从传统的“为军事计算”、“为科学计算”、“为商业计算”过渡到“为人民计算”、“为人类计算”，只是这一思维工具并不一定直接为人民所使用，而是要借助学界和业界之手将计算透镜带来的好处通过生产力的发展来施惠与人。 　　世界真的可以用计算过程来表达吗？在初次接触到计算透镜的概念时，我首先想到的是近代机械唯物主义的自然观，试图用力学和机械的观点来解释并分析自然与社会现象。进而联想到了人工智能发展史上的符号主义、连接主义和行为主义等学派的基本观点，它们都力图用一种简单的形式化模型来解释智慧和思维。计算透镜是不是在走这些老路呢？我个人感觉，在图灵机模型和现行的可计算性理论本身是否符合自然规律尚未被证实的前提下，不要指望计算透镜能在短期内给一般大众的工作和生活带来什么影响。但对计算透镜的研究是有意义的，其意义可能不在于用计算改造自然，而在于更好地认识自然，从而改造现有的计算模型，使之能够像一些自然过程一样高效。也许到那个时候，人、机、物界限因为思维方式的统一而变得模糊，“为人民计算”的理念演化为对人类思维能力的直接扩展，届时作为中介的信息化工具、应用可能反而变得不重要了。 　　回到现实，这方面已经存在的一些问题需要引起我们的关注。计算透镜理论中包含“社会计算”。尽管社会计算的概念目前还没有精确的定义，无论是用计算机的方法研究社会还是用社会学的方法研究计算机，统统被一些机构打上了“社会计算”的标签。从“社会”二字可以看出，这一计算的执行也并非人民的个体可以完成的，要做到社会计算，仍需要掌握着社会数据和社会决策权的机构来完成。但在法治完善程度赶不上技术发展速度的情况下，如何保证社会计算的成果真正服务于民，成为“为人民计算”的理念与实践需要面对的一个重要的非技术问题。例如当前舆情计算技术的发展确实为政府机关提供了迅速准确的决策支持，但一些社会团体对舆情计算中的个人隐私保护问题仍存在争议，认为这对网民存在侵权。舆情计算技术还被某些搜索引擎公司或网络公关公司所利用，通过推送正面信息、屏蔽负面评价的方式从不法商家手中谋利，直接侵害了消费者的知情权，损害了市场的公平竞争。从这一点可以看出，“为人民计算”不是一两个新理论、新技术就可以实现的，它需要完善的法治框架、良好的业界环境，以及官、产、学、研各方对人民利益高度负责的态度。 　 　　总之，我心中的“为人民计算”应该是由有价值的应用所导向的、带来明确消费动机的、架构在信息基础设施之上的信息化发展模式。它应该像电网和电器一样易用，让人民受益的同时却感觉不到信息基础设施的存在；它应该突破城乡与区域差异，惠及全民，为信息化带动工业化带来历史契机；它应该兼顾可用性、保密性与可控性，在具有社会负责感的机构的运营下真正代表人民群众的利益。 　 参考文献 [1] 徐志伟．为人民计算的三个问题．中国计算机学会通讯，2008(10)． [2] 江泽民．新时期我国信息技术产业的发展．上海交通大学学报，2008(10)． [3] 李国杰．创新求索录．电子工业出版社，2008． [4] Richard M. Karp. Computer Science as a Lens on the Sciences. ICDCS 2008. 原文链接：http://blog.linjian.org/articles/essay-on-c4m/，作者：林健。 本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。 [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center; font-size: 16pt; "><strong>对“为人民计算”的几点思考</strong></p>
<p style="text-align: center; ">（本文为本人“先进计算机和软件技术系列讲座”课程作业）</p>
<p>　<br />
　　“为人民计算”（Computing for the Masses）是近年来计算机科学技术和产业发展的目标之一。而究竟什么是“为人民计算”，出于国情、技术水平和个人认识的差异，不少学者提出过不同的理解。我国人口众多，农村人口占56%（国家统计局2007年10月数据），城乡经济和区域发展尚不协调，正处于信息化带动工业化的发展时期。在这种历史条件下，如何使得信息化的成果真正惠及人民，实现计算机行业所谓“普惠计算”的目标，是业界出于其社会责任感有必要思考的一个问题。针对我的导师徐志伟研究员在“为人民计算”方面的提出的一些观点，我浅谈一下我对几个相关问题的思考。<br />
<a href="http://picasaweb.google.com/lh/photo/TEIF5qFbf2nZZeuR-bOc6A?feat=embedwebsite"><img src="http://www.linjian.org/imagoxy/getimg.php?u=nBnauUHevADM4M3LrxWSE90S5BlQRZzLzFTQBFUQBFUQBF0LJh0RvNzXkp3brN1LZFlQFlXMU1yXRp1Xv02bj5CdoB3Zn5iNox2LvoDc0RHa" title="" alt="对“为人民计算”的几点思考" /></a><br />
　<br />
　　<strong>消费动机不在信息化本身</strong><br />
　　在受益于信息化且面向大众服务的行业当中，近几年来增长较为显著的是移动通信产业。中国的移动电话用户数量由1999年底的4330万户发展到2009年中期的6.87亿户。城市手机用户已经趋于饱和，但运营商对农村移动通信市场仍有信心。移动通信之所以得到了市场的认可，与其明确的消费目的息息相关。绝大多数消费者购买手机，其基本动机就是为了享受通信的便利；对于相当一些职业的人士，实时的通信可能已经不是“方便”而是“必须”。对于农村新市场的开拓，其难点可能在经济方面，而不在于人民对手机的基本功能和作用的认知。类似的案例还有银行卡。截至2009年6月，全国累计发行银行卡18.88亿张，银行卡的主要用户也分布在城市，农村和欠发达地区受制于经济条件和消费意识，对银行卡产品也许有所误解，但这不能说明银行卡本身的定位有问题，至少它们的功能是相对单一和明确的，满足了人民群众的特定需求。<br />
　　然而，计算机与网络技术对人民大众来说，其直接的消费目的性并不如移动通信、银行卡那样显而易见。在目前阶段，计算机与网络更多地扮演着工具和桥梁的角色。购买计算机、接入互联网，并不能直接解决什么具体问题，计算机和网络解决的问题是通过运行在其上的应用体现出来的。“上网”、“获得信息”、“学习”都是一些相对抽象的动机，不能直接满足低端用户具体一项生活需求。因此在商业化推广中，这些空虚的目标可能不会对低端消费者产生太大的吸引力。即便通过财政支持来发展信息化，这些成果也很可能沦落为地方政绩的象征或闲人娱乐的工具，对生产生活不会有实质的影响。要在2040年建成惠及至少12亿人的信息化社会，我认为不能把民用计算机、网络定位为移动通信那种具有明显消费目的性的产品，而必须改变现有中低端计算机和网络相关产品或服务的社会定位，在应用层面寻找“为人民计算”的突破口。<br />
　　信息化被作为工具的现状令很多从业者，特别是计算机科学研究人员不满：业界不愿意让信息技术变成像楼宇保洁一样必不可少但几乎不能创造价值的服务业，学界不也甘心计算机科学停滞不前，最终被其它学科以工具和技术的名义吞并。上世纪末本世纪初，网格计算的理念曾十分风行，研究人员力图建立一种像电网一样即插即得的信息基础设施，但至今网格技术只在部分专业研究领域发挥了功效，而那种惠及全民的“Great Glocal Grid”还未见雏形。其中主要的原因，我认为是信息资源缺乏像电力资源那样的同质性，抛开技术层面的因素，难以同质化的信息本身就使得潜在的用户无法建立明确的消费动机。但信息的同质化正是一个值得研究的科学问题，这个问题的解决，将使得计算机、网络由独立的工具进化为信息基础设施的地位。我们需要这样的基础设施在社会的后台像电网一样默默无闻地“为人民计算”，而用来明确消费动机、创造商业价值、进而构建信息社会的，不是计算机和网络的实体，而是这一基础设施之上的、像家用电器一样的、但目前尚未被发明的具体应用。<br />
　<br />
　　<strong>比“脱贫”更难的是“第二跳”</strong><br />
　　目前我国大多数人口仍处于“信息贫困线”以下，“脱贫”是产业界、学术界和决策层正在着力解决的问题。“脱贫”的方向相对明确。对于产业界，主要需要考虑机器生产和网络运营的成本，让计算机和网络对所有人来说由奢侈品变成日用品；对于学术界，需要摒弃一味追求性能的老路，从功耗、易用性等贴近用户的角度考虑体系结构的设计；决策层则需要提供政策扶持，对相关产业采取优惠措施，对人民群众加以合理引导。但我认为有可能出现困难的，并不在于“脱贫”的“第一跳”，而在于由基本价值向商品价值提升的“第二跳”。<br />
　　还是以银行卡为例，我国银行卡发行数量虽然已经超过人口总量，但真正用卡的人群并不大，相当一部分银行卡是通过任务摊派的方式进入低端市场的，这些卡大都成了没有任何交易记录的“死卡”。即使是使用银行卡的人，他们中的多数也只享受了其商品价值，把它当作一张可以自助取款的存折，从未使用甚至从未听说过银行卡所关联的高级金融服务。<br />
　　纵观我国计算机网络用户，其层次分化较为明显。IT界的精英人士、具有探索精神的专业人士早已享受到了信息产业的泛在价值、专业价值乃至个性价值，他们甚至可以在软件开发商与网络运营商尚未提供相关服务的情况下发扬自主创新的DIY精神，主动地让信息化为自己创造价值。而目前数目最庞大的用户群是将计算机、网络作为工具的人群，他们虽然享受了信息化带来的基本价值和商品价值，但只是在工作和生活中为了特定的目的有意去使用计算机和网络，计算机和网络更多地作为间接、高效实现传统生产模式价值的途径，而不是直接为这些用户提供新的价值。在农村和欠发达地区也有一定数量的计算机、网络用户，网吧是他们接触信息化成果的主要场所。这些用户缺乏自主探索的意识，他们通常使用仅仅使用网吧预置的网站、软件与游戏。即使是这些地区的一些官员，对信息产业的理解也有可能过于狭隘，甚至可能因为未成年人沉迷网游等问题对计算机、网络建立负面的印象，进而抵制信息化进程。然而要达到“普惠计算”的目标，必须把这类人群作为未来市场的潜在用户。目前我国的信息化还没有像工业化那样彻底地改变大多数人的生活方式；在相当一部分地区，工业化的成果甚至还没有全面应用到生产中，在这些地区谈信息化的价值，确实不容易为当地政府和人民大众所接受。单纯的基础设施建设所带来的基本价值就像提供给毫无养殖经验的农户的良种牲畜，他们只能一吃了之，不懂得通过繁殖子代、获取副产品来增值。既然信息化带动工业化已经是中国特色的跨越式发展模式，我们就应该在“脱贫”的同时完成“第二跳”的工作，提供一系列能够直接服务于生产、生活的应用。只有完成“第二跳”，信息化才不再是软硬件堆叠的花架子，其价值才能使个人用户受益。如何让人民群众真正从“为人民计算”中得到实惠，让计算机科学的成果成为人民群众喜闻乐见的事物，而不是像银行卡市场那样徒有虚名，这才是比信息“脱贫”更重要的任务。<br />
　<br />
　　<strong>对“计算透镜”半保守半超前的认识</strong><br />
　　Richard M. Karp提出的“计算透镜”（Computational Lens）理念被认为是未来二十年计算机科学可能的发展方向之一。其核心理念是将计算作为一种通用的思维方式，通过这种广义的计算（涉及信息、执行算法、关注复杂度）来描述各类自然过程和社会过程，从而解决各个学科的问题。Karp给出了计算透镜理论在生物科学中的成功应用。这一理论试图将计算机科学由最初的数值计算工具、仿真与可视化技术以及后来基于网络、面向多学科的e-Science平台，变成普遍适用于自然和社会领域的通用思维模式。从这一点上看，计算透镜的思路也似乎是要将计算机从传统的“为军事计算”、“为科学计算”、“为商业计算”过渡到“为人民计算”、“为人类计算”，只是这一思维工具并不一定直接为人民所使用，而是要借助学界和业界之手将计算透镜带来的好处通过生产力的发展来施惠与人。<br />
　　世界真的可以用计算过程来表达吗？在初次接触到计算透镜的概念时，我首先想到的是近代机械唯物主义的自然观，试图用力学和机械的观点来解释并分析自然与社会现象。进而联想到了人工智能发展史上的符号主义、连接主义和行为主义等学派的基本观点，它们都力图用一种简单的形式化模型来解释智慧和思维。计算透镜是不是在走这些老路呢？我个人感觉，在图灵机模型和现行的可计算性理论本身是否符合自然规律尚未被证实的前提下，不要指望计算透镜能在短期内给一般大众的工作和生活带来什么影响。但对计算透镜的研究是有意义的，其意义可能不在于用计算改造自然，而在于更好地认识自然，从而改造现有的计算模型，使之能够像一些自然过程一样高效。也许到那个时候，人、机、物界限因为思维方式的统一而变得模糊，“为人民计算”的理念演化为对人类思维能力的直接扩展，届时作为中介的信息化工具、应用可能反而变得不重要了。<br />
　　回到现实，这方面已经存在的一些问题需要引起我们的关注。计算透镜理论中包含“社会计算”。尽管社会计算的概念目前还没有精确的定义，无论是用计算机的方法研究社会还是用社会学的方法研究计算机，统统被一些机构打上了“社会计算”的标签。从“社会”二字可以看出，这一计算的执行也并非人民的个体可以完成的，要做到社会计算，仍需要掌握着社会数据和社会决策权的机构来完成。但在法治完善程度赶不上技术发展速度的情况下，如何保证社会计算的成果真正服务于民，成为“为人民计算”的理念与实践需要面对的一个重要的非技术问题。例如当前舆情计算技术的发展确实为政府机关提供了迅速准确的决策支持，但一些社会团体对舆情计算中的个人隐私保护问题仍存在争议，认为这对网民存在侵权。舆情计算技术还被某些搜索引擎公司或网络公关公司所利用，通过推送正面信息、屏蔽负面评价的方式从不法商家手中谋利，直接侵害了消费者的知情权，损害了市场的公平竞争。从这一点可以看出，“为人民计算”不是一两个新理论、新技术就可以实现的，它需要完善的法治框架、良好的业界环境，以及官、产、学、研各方对人民利益高度负责的态度。<br />
　<br />
　　总之，我心中的“为人民计算”应该是由有价值的应用所导向的、带来明确消费动机的、架构在信息基础设施之上的信息化发展模式。它应该像电网和电器一样易用，让人民受益的同时却感觉不到信息基础设施的存在；它应该突破城乡与区域差异，惠及全民，为信息化带动工业化带来历史契机；它应该兼顾可用性、保密性与可控性，在具有社会负责感的机构的运营下真正代表人民群众的利益。<br />
　<br />
<strong>参考文献</strong><br />
[1] 徐志伟．为人民计算的三个问题．中国计算机学会通讯，2008(10)．<br />
[2] 江泽民．新时期我国信息技术产业的发展．上海交通大学学报，2008(10)．<br />
[3] 李国杰．创新求索录．电子工业出版社，2008．<br />
[4] Richard M. Karp. Computer Science as a Lens on the Sciences. ICDCS 2008.</p>
<hr />原文链接：<a href="http://blog.linjian.org/articles/essay-on-c4m/">http://blog.linjian.org/articles/essay-on-c4m/</a>，作者：<a href="http://blog.linjian.org/">林健</a>。
<br />本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/cn/">知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议</a>进行许可。
<br />(Digital fingerprint: 
 993d4981d6d552510db9a08493b2dbec)<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li><a href="http://blog.linjian.org/articles/smartq-v5-mifi/" title="使用智器 V5 实现山寨 MiFi">使用智器 V5 实现山寨 MiFi</a></li><li><a href="http://blog.linjian.org/articles/s3-sync-tools/" title="三款面向 Amazon S3 的开源文件同步工具之对比">三款面向 Amazon S3 的开源文件同步工具之对比</a></li><li><a href="http://blog.linjian.org/articles/ipv6-icmpv6-error/" title="解决 IPv6 路由发现协议得到错误地址的问题">解决 IPv6 路由发现协议得到错误地址的问题</a></li><li><a href="http://blog.linjian.org/articles/rsync-unison-ssh/" title="使用 rsync 或 unison 备份或同步支持 ssh 的 web 主机">使用 rsync 或 unison 备份或同步支持 ssh 的 web 主机</a></li><li><a href="http://blog.linjian.org/articles/smart-input-method/" title="智能输入法软件的社会责任问题">智能输入法软件的社会责任问题</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://blog.linjian.org/articles/essay-on-c4m/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
