The Multi-Principal OS Construction of the Gazelle Web Browser, Usenix Security 2009
Wang, H. J.; Grier, C.; Moshchuk, A.; King, S. T.; Choudhury, P. & Venter, H, The Multi-Principal OS Construction of the Gazelle Web Browser, pp.417-432, Usenix Security Symposium 2009.
Microsoftの Helen Wang らによって最近発表された、新しい、安全なブラウザのアーキテクチャの提案。
Webブラウザにロードされるコンテンツの主体 (principle) ごとに細かい単位でOSのプロセスに分離して実行される。また、既存のコンテンツとの互換性を大事にしていて、テストした20のWeb appのうち、19は動いた。
セキュリティモデル
- Same Origin Policy (SOP)がベース。
- ただし、<iframe>だけでなく、<object>, <embed>, <img>, ある種の <input> は、それぞれにロードされたコンテンツのオリジン単位の主体となる。つまり、SOPが plug-inのコンテンツにまで適用される。
- 主体 (principle) の単位で、別のOSプロセスに分離される (principle instance)。プロセスとOSの間にBrowser Kernelがいて、全体をマネージする。
- principleの判別方法は、基本的に same-origin policyと同じで、{プロトコル、サーバ、ポート} の組で判定される。
- 別のTabで同じURLにアクセスしても、別の principleになる
- ただし、あるページの中のIFRAMEが親ページと同じドメインなら、デフォルトで同じ principleになる。ただし、親ページ側で制限をかけることも可能
- Browser Kenelの仕事は
- 画面描画に関しては、
- principle instanceがコンテンツをレンダリングして bitmap にするところまで責任がある。ブラウザカーネルがbitmapをうけとって、画面のどの部分にどう描画するかを決める。
- ページ内にフレームなどが含まれる場合、ページの principle instanceが 大家(地主)、フレームの principleが店子、になる。大家と店子の間で互いのコンテンツを干渉しないように、細かいアクセス制御が行われる。たとえば
- 店子フレームの場所は大家しかRWできない
- 店子フレームのサイズは大家がRW、店子は自分のサイズをRできる
- 店子フレーム内に表示している情報は店子しか見られない
- 店子フレームのURLは、大家はWのみ、店子はR/W可能
既存のブラウザとの違い
- Chromeとの違い
- IE8との違い
- IE8ではブラウザのタブごとに別のプロセスとして動作するが、タブの中にIFRAMEがある場合などには同じプロセス内で表示されることになる
- OP Browser[2] との違い
- OP BrowserではHTML engine, javascript などが別のプロセスとして分離される
- そのため、コンポーネント間のIPCのコストが高い
- 各コンポーネントはWebページをレンダリングする際に運命を共にするようになってるので、ひとつがコケると殆どのページが表示されない
- OSレベルの cross-principleな保護はできない
- Tahoma[11]との違いは、TahomaではWeb applicationごとにVMで分離するが、Web applicationの区切りはmanifestファイルで決めるので、既存のブラウザの principleごと(SOPということ?)の保護はできない