FOAF+SSL

お待たせしました。週刊SWXGの第二弾、って既に第二弾にして隔週状態になっていますが、それは私が学会出張していたせいと、そして12月16日のテレコンが行われなかったせいでもあります。ネタがこれ以上溜まらないのであればいいかな、と。ちなみにテレコンは年内はもうありません。いやぁ、世の中クリスマス&年末モードでございますね。

さて今日は12月9日のテレコンの内容についてお知らせします。事前に公開された討議内容とログはこちら。

Agenda for Social Web XG weekly teleconferences
Social Web Incubator Group Teleconference -- 09 Dec 2009

なお、今回取り上げられたテーマはFOAF+SSL。つまりセキュリティ/認証周りの技術的な議論もかなり多く、内容の正確性については今まで以上に自信がありません。大変申し訳ないのですが、その点をご承知おきの上(よろしければ、補足のコメント謎、頂戴できると嬉しいです)御覧下さい。また、電話での会議参加、IRCログからの補足でエントリは執筆しているため、正しい発言者が特定出きていないこともけっこうあります。ですので、「誰が」発言しているかについては情報として記載していません。あくまでも「こんな議論があった」という情報として読んでください。

Henry StoryとDan Brickleyについて

さて今日のゲストスピーカー、、、、ではないですね、両方ともXGのメンバーなのですから今日の話題提供者はHenry Story。そして議論を切り回すchairはDan Brickley。DanBriって言った方が早いかもしれません。この二人を中心にこの週の会議は行われました。

Henry Storyは冒頭に以下の通りに自己紹介しています。

henry works for Sun Mircosystems, and has been travelling around europe talking about distributed social networks.

サンマイクロシステムズに勤務し、ヨーロッパ中を旅して分散型ソーシャルネットワークについて講演活動して回っているとのこと。SPARK、SORARIS、JAVAopenoffice.orgのイメージが色濃い米国企業Sunに所属していながら分散型ソーシャルネットワークエバンジェリスト活動をヨーロッパでしている、ってちょっと不思議な気もしますけれど、それだけ欧米企業のこの分野に対する理解、力の入れ方が日本に比べて大きいこと、そして自社の提供する商品・サービスに直接的には関わらなくとも、ウェブプラットフォームにとって重要な要素となりうると判断したら、きちんと人を雇って個人ベースでの活動を支援しているところなど、日本からは見習うべき点も多いのでは、と感じます。
Dan Brickleyの方は、FOAFを開発した人として有名ですよね。彼の近年の活動については彼がおこなったプレゼンテーションのスライド(SlideShare)をチェックしてください。今日の二人はともにヨーロッパ在住なのですが、SWXGは比較的ヨーロッパ色が強いXGだと感じています。電話会議がIST16:00スタートというのも、米国太平洋時間PSTでは朝8時スタートですから、ここだけとってみてもヨーロッパ在住者に便利なように、という感じがします。ただ単に欧州・米国ともに9:00〜17:00という定時に収まるようにすると必然的にこうなっただけかもしれませんが、、、。

Centerized and Distributed Social Network

この日は
Henry Storyのプレゼンテーションからテレコンはスタート。事務的な課題の処理やwikiで行われているユースケースに関する議論はすっ飛ばされました。なお このプレゼンテーションは45MBもあって、参加者が苦笑していたくらいですので、覚悟してダウンロードしてください。それだけの価値はある資料だとは思いますが。なお、プレゼンテーションはStoryとDanbriが入れ替わり立ち代り進んで行きます。流れを詳しく追いたい方はminutes(議事録)を御覧下さい。

このスライドは彼が推し進める分散型(distributed)とは逆の集中型(centralized)ソーシャルネットワークから話が始まります。集中型って何かというと、facebookやLinkedInなど、既存の多くのSNSサービス=本人認証・データ処理を一サービス内で独自で行っているSNSのことですね。集中型の何が悪いのか、Storyはその欠点を以下の通りにまとめています。

  • Account Creation Complexity: アカウント作成時の困難さ、つまり色々なサービスごとにアカウントを作るの面倒でしょ、ということ。
  • Login Complexity: ログインの困難さ、つまりあちこちで作ったアカウント全てのID/PWを覚えておかなくちゃいけなくて面倒でしょ、ということ
  • Data Ownership: データ/コンテンツの著作権問題。これ、日本のサービスでもずいぶん問題になりましたね。自分が書き込んだブログの文章やメッセージの中身の著作権は誰が有するのか。このドメイン内に保存/公開されているコンテンツの著作権は全て運営者企業にあります、、、なんてことになったらやってられないではないですか。
  • Data Silos: データのサイロ化。つまりインターオペラビリティの真逆の状態。1サービス上で生成したデータは他サービスに持っていけない。複数サービスを利用している物にとってはこの上なく面倒。
  • Big Brother/Privacy: SNSには日常生活のログが知らず知らずのうちに生成されていくわけで、そのデータが運営企業のサーバに溜まっていくということは、、、、
  • Security: ま、これは説明するまでもないでしょう。

これに対しDanBriをはじめとするグループは、セマンティックウェブ技術がこうした問題を解決すると主張してきました。そのためのコア技術がThe Friend of a Friend (FOAF)です。FOAFに関する詳しい日本語の情報はこちら(FOAF -- メタデータによる知人ネットワークの表現、the web Kanzaki)を参照していただければ。

なお、FOAFへの取り組みは比較的ヨーロッパが熱心で、Semantic Web Advanced Development for Europe (SWAD-Europe)といったプロジェクトが活動していたり、2004年にはSWAD-Europe: FOAF Workshopなんてイベントまで開催されています。

FOAFこちらのサイトに

The Friend of a Friend (FOAF) project began early in 2000 as an "experimental linked information project", created by Dan Brickley and Libby Miller.

という記述があるように、2000年に始まったプロジェクトですが、実は1989年にティム・バーナーズ・リーが提唱したWWWの構想(The original proposal of the WWW, HTMLized)に既にそうした概念が含まれているのです。

セマンティックウェブの考え方を基本とすると、全ての人はURIによって表されます。言い換えると各人は自身を表す固有のURIをもつということです。URIをもつことにより、グローバルネームスペース(全世界で通用する名前空間)を創りだすことができるようになります。なお、URIの重要性については、、、、別途エントリを起こすという約束は覚えていますので、しばしお待ちを、、。

FOAF Address Book

StoryはFOAF Address Bookというアプリケーションまで作っています。恥ずかしながら私は個人ウェブサイトの中にFOAFを埋め込んだり、ブログサービスなどでソーシャルグラフ抜きで単に個人情報のマークアップとしてのみ使われているFOAFしか見たことがなかったので、こんなアプリが既にあったことに驚いたりもするわけですが、いかんせん以下に記すとおりの理由でFOAFの利用ってやはり広がらない(FOAFマークアップされたデータが増加しないのではなく、FOAFソーシャルグラフ利用のために活用されないという意味)というのが現実。

FOAFの欠点、OpenIDの不足部分

さて、Storyのプレゼンに話を戻しましょう。Storyは現状のFOAFについて以下のように指摘します。

とはいえ、セマンティックウェブ、といいますか、オープンなウェブという思想のもとに作られているFOAFでは、個人情報もソーシャルグラフも全部オープン。確かに個人除法は共有財という考え方はあるにせよ、そんな情報を公開したくない人は沢山いるよね、と。

また、URIを本人認証のキーにするといえばOpenIDなわけですが、こちらに関しても、

認証プロトコルはサーバ間を行ったり来たりしてちょっと複雑だし、そもそもrestfulに沿っていない、だからソーシャルグラフとしてリンクするのが難しい。さらにセキュリティの問題もある。

と指摘します。

というわけで、彼らが開発してきたのがFOAF+SSLというわけです。

FOAF+SSL

FOAF+SSLについては、公式Wikiの説明をそのまま引用したいと思います。

FOAF+SSL uses the SSL layer built into virtually every standard Web browser. It links a Web ID to a public key, thereby permitting the owner of the private key to be identified with the WebID.

訳すと、

FOAF+SSLは実質的に全ての標準的ウェブブラウザに実装されているSSLレイヤを使っている。 Web ID を公開鍵にリンクすることで公開鍵オーナーをWeb IDに同定している。

というところでしょうか。SSLを使ってセキュアな環境で本人認証しますよ、というところなわけですが、じゃあWeb IDって何?ということで、そちらについてもWikiから説明文を引っ張ってきましょう。

A Web ID is an "Identifier" (an "HTTP URI" in fact), for Entity "You" of Type: Person, on the World Wide Web. It looks like a URL and feels like a URL, but isn't solely a URL, due to the inherent Identity/Access duality of HTTP scheme URIs. Thus, its Identity Function handles unique identification while its Access Function provides data access -- via a Web document URL -- to "Your" profile metadata (i.e., constellation of characteristics - attributes and values - that describe entity "You").

Web IDというのは個人を同定するURIのことであり、そこに関係性を表すattribute=semanticsを含んでいるもの、というのが上記の文章とStoryのスライドにも収録されているこちらの解説画像を見ての私の理解です。さらに御丁寧に解説動画なんてものもあるみたいなので、きちんと検証したい方はこちらもチェックしてください(無責任でごめんなさい)。

これ以上のFOAF+SSL説明は、 Storyのプレゼンテーションfoaf+ssl: Storyのブログにある解説エントリを参照してください。

RDF+RSS

今度はFOAFに限定する話ではなく、RDF/ Linked Dataに認証をかませようという取り組みのお話。詳細は

を参照ください。にしても、WoTってものまで存在していたのですね。ウェブの世界は広すぎる、、。

openid4.me とOAuth

そして話題はopenid4.meソースコードこちら)へと移ります。openid4.meはFOAF+SSLによってセキュアな環境とされたOpenIDサーバです。もっと分り易く言ってしまうと、

openid4.me allows you to use your WebID, and your foaf+ssl cert to log in openid providers

Open IDはIdentity Provider/ OpenID providerがURIURIを提供するわけですが、openID4.meは自分の独自URIFOAF+SSL認証を用いてOpenIDにログインできる、というわけです。

FOAF+SSLとOAuth WRAPとの関係

Storyのブログにあるプロトコル説明&ユースケース、OAuthが同様の機能を提供していないかい、という質問が。

それに対し、OAuth WRAP WGの方が近いよと回答。OAuth WRAPについては、日本語でこんな解説がありますので、参照ください。

結局FOAF+SSLはどういう利点があるの?

という質問に対し、Storyは

foaf+ssl wants to be make us of linked data, semantic web, RDF.

つまり、RDFベースだからそのままソーシャルグラフLinked Dataを生成してくれる、と回答しています。つまり、FOAFベースだからこそ、「本物の」 分散型ソーシャルグラフが実現するという主張ですね。

みんなが自分でサーバを抱えてソーシャルネットワークに乗り出す世界

FOAF+SSLは既存のOpen IDのようにIdentity providorの役割を特定のサービスベンダに依存しないという点で、分散型ソーシャルネットワークを実現しているわけです。ということは、

in the future we can imagine a world where every user has their own website

根本的な思想はひとりひとりが自分でIDを管理して=自家製ウェブサイト、っていうか自家サーバ?を抱えるということになってしまうわけです。

サーバを抱えるといっても、一昔前のように自家サーバやレンタルサーバを立ち上げて、、、なんてことがこのクラウド時代に流行るはずもなく、、と思っていたら、

sounds like http://unite.opera.com/ :)
or mac.com user pages

それ、なんてOpera Unite!なんて指摘が。日本では?ずいぶん地味な取り上げられ方をされている気がしますが、ブラウザがサーバとしての役割を果たすというOpera Uniteについてはもう少し注目しておいた方がいいのではと思います。あと、mac.comのユーザページもじゃない、と付け加えられていますね。

Opera Uniteに関するDanbriのコメントはこちらのMLポスト(Opera Unite: webserver in a browser)を御覧下さい。
また、Storyはこんなブログポスト(Identity in the Browser, Firefox style)もしています。あわせてチェックしてみてください。

あとは、TLS/SSLLDAP (Lightweight Directory Access Protocol)に依存しすぎていて、ウェブ時代以前の柔軟性のなさが問題=柔軟性のある名前空間をつくれないし、グローバルなディレクトリにすることができないトップダウン的な認証となっている、、、など、認証技術に関する議論が多少。(ここらへん、専門でないので、どなたか専門の方のフォローを求めたく。)

結論

といった流れで議論は進み、最終的には「FOAF+SSLセマンティックウェブ利用の現実的な方法で、セマンティックウェブの普及につながるであろう。」というところが結論として出されています。もちろん、FOAF+SSLの普及にはいろいろな課題が目の前に横たわっているわけですけれど。

標準化プロセスにおける非公式な議論の重要性

あとはStoryの実感として、

the european tour was very useful, giving talks about the work really helped. Most talks at barcamps, and non-traditional conferences, i.e. not that academic

こうした仕様を開発、普及させていくには、非公式的に議論することが重要であるこ性を指摘しています。

個人的には、W3C以外の場所での草の根的活動が技術開発/普及に十分影響力をもっていると思いますけどね。ただし、こういった活動は、日本にいるとほとんど目に入ってこないというのも事実。だって、日本では、技術仕様は大企業か政府、公的機関とか大学などの研究機関がつくるという先入観が強すぎますからね。productに関する技術仕様であれば、製造プロセスが関わってくるため、それなりの規模(人的・資金面ともに)がある組織が関係しないと仕様などつくれないというのは正しいのですが、ウェブの場合、プロトコルマークアップの仕様なんて、単なる「ルール」ですから、別に個人が「こうやるぞ!」といったものに、賛同する人や企業が現れればそれだけで普及してしまうわけです。当然そのプロセスは開発者どうしの個人的なコミュニケーションが大きく影響するわけで。

ただし、草の根的な、英語で言い換えればdistributedな活動が広がれば広がるほど、選択肢は増え、よりよいものが生まれ、生き残る可能性も増大するものの、と同時に多数の規格・仕様が乱立して、インターオペラビリティの欠如をもたらす危険性もあります。だからこそ、W3CはSWXGのようなプロジェクトを立ち上げて、そこで外部で活動するキーパーソンから情報収集したりしているわけですね。

さて、SWXGの電話会議はこの週が2009年最後でした。このブログはアリゾナでまとめているのですが、ホテルの中は完全クリスマスモード一色。もう年末ですから。というわけで、次回の週刊SWXGは1月半ば頃の予定。では、Happy Merry Chirtmas!