SSL暗号強度に関するブラウザアドオンの実装

神奈川大学理学部情報科学科 2013 年度学士論文要旨
指導教員:松尾和人
SSL 暗号強度に関するブラウザアドオンの実装
2010
1
間宮孝平
はじめに
高度情報社会に伴い,情報は価値が膨れ上がり「ヒト」
「モノ」「カネ」に次ぐ第四の資産となっている. 情報
高強度暗号
AES-128,256, Camellia-128,256
低強度暗号
RC4, Triple-DES, SEED
表 1: FireFox 利用共通鍵暗号の強度分け
の活用により人々の生活は便利になり豊かさを増したが,
その反面我々の資産に対する脅威も増えている.情報は
その性質上, 複製, 拡散しやすいため, 流出した情報が一
アドオンの目的は SSL 接続の安全性をより高める事,
瞬で世界に広がる危険性を持つ.そのため情報は「ヒト」
「モノ」「カネ」以上に厳重なセキュリティが必要と言っ
機能の目的
2
つまり問題と考える “危殆化した暗号の無効化”,“サイ
ても過言ではない.
ファースイート選択権の獲得”,さらに SSL 接続状態を
情報セキュリティと一概に言っても様々な手法があるが,
分かりやすくするために “SSL 接続状況の視覚化” の3
本研究ではアプリケーションとしてのブラウザのセキュ
つを実現することである.これらの目的を果たすために
リティ対策を検討する.
以下のような機能を作成する.
ブラウザの暗号化通信は SSL/TLS(以後 SSL に統一)と
1. SSL 接続情報の表示
いうセキュリティプロトコルにより保護されており,こ
2. 高強度暗号設定
3. 段階的暗号設定
4. 任意暗号設定
の SSL は複数のセキュリティ技術を併用しているため高
い安全性を有していると言われている.しかし SSL が有
には,解読方法が見つかり危殆化した暗号を含まれるた
SSL 接続情報の表示はツールバー等に接続状況を表示さ
せることで,ユーザが簡単にセキュリティ状況を把握し
め,実際には必ずしも安全だと言えない.ネットワーク
易くする事が目的である.高強度暗号設定は低強度暗号
の中には古く危殆化した Web ページや,通信速度に重
を無効化することで,危殆化した暗号の利用を拒否する
点を置き敢えて危殆化したサイファースイートを利用す
が目的である.段階的暗号設定は高強度暗号を優先する
る Web ページも存在する.これに対しサイファースイー
ことで,サイファースイート選択で安全面に有利な影響
トの選択はサーバ側に優先権があるため,クライアント
を与える事が目的である.任意暗号設定は上記の設定で
にはどうしようもないのが現状である.これは SSL 接続
対処できない問題や,詳細なニーズに応じるための設定
の問題点といえる.そこで本研究では FireFox を対象と
である.これらの目的に近い機能を持ったアドオンとし
してこの問題点を解消し,より安全な SSL 接続を行う方
て Calomel SSL Validation[2] がある.本研究ではこの
法を検討する.
アドオンを参考にして実装を行なった.
するサイファースイート(暗号方式の組み合わせ)の中
FireFox において,危殆化した暗号の拒否は高度な設定
の about:config より行える.サイファースイート選択権
についても暗号設定の組み合わせや切替のタイミングを
機能の実装
3
前節の機能を実現し,実装したものを説明する.
工夫することで,クライアント側の希望を疑似的に反映
SSL 接続情報の表示
させることも可能である.しかし多くのユーザはこの設
3.1
定について存在すら知らないと思われる.また容易に設
性もある.そこでこの about:config による SSL 設定を簡
SSL 接続情報の表示は,ツールバーに表示されるボタ
ンをクリックすることで利用暗号状態をポップアップに
表示する機能である.またボタンを CRYPTREC 電子政
単かつ安全に行うアドオンを開発する.
府推奨暗号に対応させ,低強度の場合にボタンの画像を
暗号強度の基準は日本で最も信頼性の高い CRYPTREC
変更させることでユーザに視覚的な警戒を促す.
定を変更するとブラウザに悪影響を及ぼしてしまう可能
電子政府推奨暗号 [1] に準拠させ,FireFox で利用可能な
共通鍵暗号を表 1 のように分類した.なお,共通鍵暗号
以外の暗号方式はほとんど CRYPTREC の推奨暗号とし
て認定されているので評価分類から除外する.
3.2
高強度暗号設定
高強度暗号設定は低強度暗号を無効化し,高強度暗
号のみに制限することで危殆化された暗号を利用した
接続を完全に拒否できる.XPCOM インターフェースの
神奈川大学理学部情報科学科 2013 年度学士論文要旨
指導教員:松尾和人
nsIPrefBranch のメソッドである setBoolPref などを使っ
て FireFox のプリファレンスの変更を行い実現している,
3.3
段階的暗号設定
段階的暗号設定はサイファースイートの優先順位を無
視し,高強度暗号を優先させる設定である.これは高強
度暗号と同様に低強度暗号を無効化させ,さらに接続が
失敗した場合に自動的に低強度暗号を有効化して再接続
させることで実現させている.この機能によりサーバの
サイファースイート選択に影響を与え,接続速度優先の
ための低強度暗号接続を阻止できる.しかしこの設定は
最終的に全ての暗号での接続を許可する問題があり,危
殆化した暗号のブロックができない.そこで後述の任意
暗号設定との組み合わせで危殆化した暗号をブロックす
ることが望ましい.
3.4
任意暗号設定
任意暗号設定は利用する暗号を,暗号方式単位で自由
に決めることができる設定である.設定できる暗号方式
は各共通鍵暗号,共通鍵暗号鍵長,公開鍵暗号,デジタ
ル署名,ハッシュ関数に対応してる.主に暗号にこだわ
りのあるコアユーザ向けの設定だが,高強度暗号の範囲
を狭めた超高強度暗号を設定したり,段階的暗号と組み
合わせたりすることで接続失敗時でも指定した危殆化し
た暗号での接続を拒否するなどの使い方もできる.
4
3. 段階的暗号設定の暗号強度切替後の接続の際,一瞬
エラー画面が表示される.また URI スキームに URI
が表示されず,SSL 接続状況の表示もされなくなる.
機能のテスト・評価
そこでこれらの問題の原因を調べ,考察を行った.
1に関してはアドオンによる暗号切替に限らず,高度な
設定 about:config からの暗号切替でも起こっていた.ま
たクラッシュが発生する接続先には偏りがあり,サーバ
側の問題である可能性も考えられる.しかしそのクラッ
シュが原因でプロファイルが使用不能になってしまった
こともあるため,エラーが起こらないように一定以上の
利用可能暗号を保持させる設定を組込んだり,注意書き
を書くなどの工夫が必要と考える.
2に関しては Calomel SSL Validation の HP に対する
SSL 接続で確認できた.このテストに対してのみ 30 回
SSL 接続を行ったが,同サイト以外ではこの現象が確認
できなかった.したがって CalomelSSL Validation が特
殊な設定を行っていると考えられるが,アドオンのサイ
ファースイート設定に従わない設定が可能とするもので
あり,原因究明すべき現象であると考える.
3に関しては原因不明である.しかしエラー画面が表示
されても接続は行われ,URI・SSL 接続状況が表示され
ていなくても実際には SSL 接続が成功している.そのた
めセキュリティ上では問題のないエラーである.しかし
ユーザには不安だと思われるので,こちらも注意書きな
どで対応する必要がある.
これらのエラーは修正すべき問題で今後の課題となる.
実装した機能の動作テストを行い,その結果を評価す
る.動作の方法は以下のとおりである.
1. 全ての設定と組み合わせで数回 SSL 接続を行う.段
階的暗号設定は失敗時の暗号切替も確認する.
2. 全ての設定と組み合わせで設定切替が正しく行われ
ているかをあらゆる切替方法で確認する.
なお組み合わせは高強度暗号設定もしくは段階的暗号
5
おわりに
情報を保護するセキュリティ技術の一つに FireFox 等
のブラウザなどで使われる SSL がある.この SSL には
危殆化した暗号を含むにも関わらず,サーバ側に暗号選
択権が優先されている事を問題点としてを指摘した.そ
してその問題点を解消するウェブブラウザ FireFox のア
ドオンを開発,提案した.
設定と,各種任意暗号設定との組み合わせを指し,切替
本研究では目的とする機能の作成には成功したがまだエ
方法は一括有効化(無効化),順次有効化(無効化),の
ラーが残る状況である.このエラーを修正することが今
4通りテストを行う.
後の課題である.
以上に留意してテストを行った結果,大部分は期待通り
の動作を確認できたが 3 点期待しない動作が行われてし
まった.それは以下の通りである.
1. 利用暗号を少数の低強度暗号のみ SSL 接続を行う
と,ブラウザがクラッシュする場合がある
2. 全てのサイファースイートを無効化した状態でも,一
部の Web ページで SSL 接続が行われる場合がある.
参考文献
[1] CRYPTREC 暗号リスト, http://www.cryptrec.
go.jp/images/cryptrec_ciphers_list_2013.
pdf
[2] Calomel SSL Valsation, https://calomel.org/
[3] mozilla developer network, https://developer.
mozilla.org