Firefox 27の新機能
今回の新機能や修正点は、以下の通りである。
- ソーシャルAPIが改良され、複数のサービスからの通知やチャットなどを同時受信が可能に(図5)
- TLS 1.2(RFC 5246)をサポート
- SPDY 3.1をサポート
- HTML 5でCanvasが破線をサポート
- Linux上でのコンテントレンダリングにAzure/Skiaが利用可能に
開発者向け関連では、以下の通りである。
- 'all:unset'を利用してスタイルのリセットが可能に
- JavaScriptデバッガが難読化されたコードを整形し直して表示可能に
- fieldset要素のoverflow属性が実装され、fieldset内でのスクロールが可能に
- セキュリティ向上のため、iframeサンドボックスでallow-popupsディレクティブが利用可能に
- CSSのcursor属性値である-moz-grabと-moz-grabbingがベンダ接頭辞をつけなくても利用可能に
- SpiderMonkeyがECMAScript 6のgeneratorをサポート
- ECMAScript 6の関数Math.hypot()が利用可能に。
セキュリティアップデート
今回のバージョンアップでは、以下のセキュリティアップデートが行われた。
- Windowオブジェクトに対するアクセスのJavaScript処理に一貫性がない[高]
- NSSのチケット処理に関する問題[高]
- Webワーカーとasm.jsによるクラッシュ[最高]
- Firefox初期設定スタートページのUIコンテンツがスクリプトによって呼び出し可能[低]
- Webワーカーを通じたクロスオリジン情報漏えい[高]
- imgRequestProxyと画像処理による解放後使用[最高]
- Content Security PolicyにおいてXSLTスタイルシートがスタイルとして扱われる[中]
- Androidシステムへのプロファイルパス漏えい[中]
- iframe上の*FromPointによる情報漏えい[中]
- RasterImageによる破棄された画像の誤使用[最高]
- ダウンロード確認ダイアログにUI選択タイムアウトが実装されていない[中]
- 保護されたコンテンツがXBLスコープを用いて複製される[高]
- さまざまなメモリ安全性の問題(rv:26.0/rv:24.2)[最高]
バージョン27では、セキュリティ機能の強化が大きな特徴といえるだろう。まずは、新機能のTLS 1.2のサポートである。オンライン取引などで、個人情報を送信する際に、通信上のセキュリティを担保するためのプロトコルである。古くは、Netscapeで実装されたSSL(Secure Sockets Layer)などがある。
TSL 1.2は、その後RFCなどで標準化作業が行われた結果といえる。具体的には、以下のような機能が追加された。
- ハッシュのアルゴリズムにSHA-256が追加
- ブロック暗号について、従来のCBCモードだけではなく、GCM、CCMといった認証付き暗号が利用可能
他のWebブラウザでも採用されているもので、Firefoxでも、より安全な通信を行うことが可能となった。また、開発者向けでもiframeサンドボックスでallow-popupsディレクティブのサポートなどがある。iframeは、任意のコンテンツを読み込む仕組みである。これを悪用して、他のサイトの問題あるコンテンツを組み込んだり、同じサイトのコンテンツを改ざんし、意図に反する動作をさせることも可能になる。そこで、サンドボックス化しコンテンツに制限をかけ、不審なコンテンツによる悪意ある動作を防ぐのである。allow-popupsディレクティブのサポートで、サンドボックスをより多くのコンテンツに対し設定できるようになった。
難読化されたコードも改ざんを防ぎ、セキュリティを高める効果がある。当然のことながら、可読性は下がる。そこで、難読化されたコードを整形し直して表示可能にする機能が開発者向けに提供されたのである。
セキュリティアップデートもあり、すみやかにアップデートを行うべきである。