レポート

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

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

2016年11月12日,13日の2日間に渡って,東京Node学園祭2016が開催されました。本稿では,13日に行われたDouglas Crockford氏による基調講演についてレポートします。

今回の発表は,彼が進めているオープンソースのプロジェクト「Seif Project」の紹介とその進捗についての話でした。

画像

The Web

Webは今や,公開されているアプリケーションの中で最も大切なものとなりました。重要で力のあるサービスはWebを通して全世界のみなさんに公開されています。しかし残念なことに,Webにはいくつかの問題があります。

The Problem

その問題は以下のようなものです。

  • Webアプリケーションの開発は時間がかかり,安全でないアプリケーションも存在すること
  • Webはもともとは文書を検索するシステムであり,アプリケーションを検索するシステムではなかったこと
  • Webには向いていないアプリケーションの配信を行っているため,複雑化していること
  • Webはパスワードによってセキュアになっているが,パスワードは解析されることがよくあったり,盗まれたり,忘れてしまったりすること

Many Have Tried

このようなWebの問題に対処するため,Webを新しいものに置き換えようとした企業が数社あります。Microsoft, Apple, Adobe, Oracleなどの会社が自社の製品に置き換えようとしました。

それらの試みで使用された技術の多くは,Webの技術よりかはずっといいものでした。しかしそれらはすべて,上記の問題の解決方法を公開してはいませんでした。Webの一番良いところは,オープンであるところであるにも関わらず,です。Webが得意としているのは公開情報を表示することなのです。

そしてそれらの試みが失敗に終わった原因は,人々をWebから新しいシステムに移行させる計画が示されていなかったことです。

Upgrade the Web

前例から,Douglas氏はWebを置き換えるのではなく,アップグレードしたいと考えています。Webの強みはそのまま活かそうとしています。

The Seif Project

既存のWebに新しい特徴を追加したい,これがSeif Projectです。Seif Projectは抜本的で,最小で,安全で,オープンな解決方法です。そのアーキテクチャはWebとは全く異なるものですが,Webブラウザを通じて提供されます。

画像

Seifシステムのユーザーはパスワードを使用することはありません。認証のためには,公開鍵暗号が使用されます。Seif Projectにおいては認証局は信頼されず,使用されません。

Seif Projectは5つの段階に分かれています。

画像

Part 1:seifnode

seifnodeはNode.jsにcryptographic servicesを追加するモジュールです。このモジュールには,一般的な暗号のすべてが入っているわけではなく,Seif Projectのために必要なものだけが入っています。認証のためにECC 521を使用し,リンクの暗号化のためにAES 256を使用し,HashのためにSHA3-256を使用します。

最も大切なのは乱数をサポートしているところです。暗号には乱数がとても大事です。Self Projectが十分に信頼できるものであるためには,優れた乱数が必要です。

乱数を生成するためのキーには,十分にエントロピーが必要です。seifnodeでは,OSからエントロピーを生成します。また,週次でマイクをオンにして,そのノイズを使用して生成します。さらに,1秒ごとにカメラをオンにして,写真を撮り,そのノイズを使用して生成します。これらのエントロピーを使ってとても強い乱数を作る方法を開発しています。

著者プロフィール

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

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

Twitter:@kohei_takata
GitHub:kohei-takata

コメント

コメントの記入