レポート

Douglas Crockford氏「The Seif Project」~東京Node学園祭2016 基調講演

この記事を読むのに必要な時間:およそ 3.5 分

Transition Plan

このプロジェクトが成功するかどうかは技術の質ではなく,移行計画の質が鍵となっています。つまり,どうやって世界の皆をSeifに移行させるかが大事となっています。

以下に移行計画を示します。

画像

まず,先進的なブラウザ開発メーカー1つに対して,彼らのブラウザの中にSeif Helper Appを統合することを納得させる必要があります。

それはブラウザ開発メーカーにとっては簡単なものになるでしょう。なぜなら,Douglas氏らがブラウザ開発メーカーに求めているのはpixelで四角形を書けることと,JSONによる接続を行えることだけでよいからです。残りはDouglas氏らが実装します。ブラウザ開発メーカーにとっては,ブラウザをより面白いものにするいい機会となるでしょう。

次に,1つのセキュアなサイトに対して,サイトのユーザーにSeif Projectに対応したブラウザを使うよう要求することを納得させる必要があります。これもまた簡単なことだと考えています。なぜなら,多くの企業はセキュリティの問題によってビジネスが破壊されることを恐れているからです。

この試みが成功したら,リスクの軽減のために他のセキュアなサイトもSeif Projectに移行せざるを得なくなるでしょう。

これは以下のようにペンギンに例えられます。

  1. ① ペンギンは冬の間氷の上にいて,とても空腹です。
  2. ② 水の中に入って魚を食べたいと考えています。
  3. ③ 水の中にはそのペンギンを食べる動物もいます。
  4. ④ それが怖いので,水の中を見て,前のペンギンを押し続けます。
  5. ⑤ ペンギンのどれかが水の中に落ちます。
  6. ⑤ すべてのペンギンが見ていて,落ちたペンギンが生還したら全員が飛び込みます。

このプロジェクトも同じようなことになることを望んでいます。

次に,金融のコミュニティや政府やセキュリティ法人に「これがより信頼でき,より安全にアプリケーションを提供する方法です」と提示できたら,彼らは移行したいと考えるでしょう。

もしこれが成功したら,他のブラウザもSeif Serviceを実装したいと考えるでしょう。どのブラウザも,Seif Serviceを実装していない最後の1つのブラウザになりたくはないからです。

その後,改善されたセキュリティとより速く簡単にアプリケーションの開発を行うために,残りの人々も追いついてくるとDouglas氏は考えています。しかし,すべてを書き換えるのは無理ですし,変わらずにWebで動くものもあるでしょう。ただ,これから開発されるアプリケーションはSeifのシステムで開発されると良いと考えています。

最後まで,何も破壊的な変更はしません。また,Webに対しては何の変更も提案しません。古いWebは古いWebのままで今まで通り動きます。Douglas氏は今のWebをより安全にする方法はなく,そのため,並行で新しいWebを作ろうと考えています。

Difficulty of software security

安全なソフトウェアを作ろうという提案はいつでも難しいものです。次のことを確認することは難しいです。

  • ソフトウェアのあるべき姿
  • すべきでないことをしていないと判断すること

また,最初からセキュアなソフトウェアはありません。すべてのセキュアなシステムにはバグがありました。おそらく,このプロジェクトにもあると考えています。

しかし,このプロジェクトにおいては,バグは早く修正されます。システムアーキテクチャに対して必要最小限のアプローチを行っているため,だんだんと改善していき,いつか十分セキュアな状態になると考えています。複雑なシステムの場合はそれができません。

例えば,SSLは今まで20年存在していますが,変わらずにバグが見つかります。それは単純に,システムが複雑だからです。

There is nothing new here

このプロジェクトに新しいものは何もありません。新しい技術や考え方はありません。長い間使っている技術をパッケージングしているだけとなっています。

現在のSeif Projectの状態は次のとおりです。

画像

Part1のseifnodeは2年前に終わっています。Part2のSeif Protocolも昨年終わっています。これらはGitHubで公開されています。また,Self ProtocolのJVMやiOSバージョンでの実装も行われています。Self Protocolはどの環境でも使えるように開発しているからです。

それ以外は開発途中で,完了したら公開するという流れになっています。というのも,よいソフトウェアというのは開発に時間がかかるものであり,開発時間を縮めようとすると,さらに時間がかかったりするからです。そして,このプロジェクトの終わりはカレンダーではなく,品質のレベルで決まっています。そのため,Douglas氏が十分であると思うまで,公開されません。誰かに公開予定日を伝えてしまうと,その日付に縛られてしまい,品質が不安になるからです。

以上がSeif Projectです。プロジェクトでは一緒に動いてくれる人を募集しています。また,それぞれのPartが終わるたびにMITライセンスのOSSとして公開しています。

Seif Projectの詳細な情報については公式サイトまたはGitHubを確認してください。

まとめ

Webをアップグレードさせて新しいものを作るという,とても大胆で興味深い話を聴くことができました。今後 Seif Projectがどういった展開を見せていくのか,注目していたいと思いました。

著者プロフィール

高田孝平(たかたこうへい)

React.jsの基礎を学べるCLIツールであるlearnyoureactを作成。フロントエンド,バックエンド問わずJavaScript全般に興味がある。Node.jsを始めとするJavaScriptのOSSに積極的にコミットしている。

Twitter:@kohei_takata
GitHub:kohei-takata

コメント

コメントの記入