2018年7月9日
データ暗号化: 一般的な回避策を適用しない方法
データセキュリティ担当者の対応がずさんな場合、有能なハッカーなら暗号化アルゴリズムを実際に破ることなくデータにアクセスできるようになります。この記事では、このようなセキュリティ侵害を阻止するために取るべき対策を紹介します。
米国政府はかつて、暗号化を規制すること、もっと厳密に言うと強力な暗号化を禁止することを検討していました。そして政府機関は、キーの長さを定めるだけでなく、暗号化ソフトウェアの配布を連邦政府の武器輸出管理法違反とみなし、その法理に基づいて有名なPGP (Pretty Good Privacy)ソフトウェアの開発者であるPhilip Zimmerman氏を起訴しようとしました。
この起訴の背景には、強力な暗号化は解除するのが困難であるという論理的根拠があり、当時米国の諜報機関の職員だったある人物は、「誰もがメッセージを暗号化できる機能とそれらを解読する私たちの能力の差が、急速に広がりつつある」と述べています。
最終的に米国政府はZimmerman氏の起訴を断念し、暗号化の流れを後戻りさせるという考えを捨てるに至りました。しかし、名前が明かされていないこの諜報機関の職員が語ったことは的を射ており、現実問題として、今日の暗号化は解除するのが難しく、一般的に労力を費やしても意味がありません。
そのため、暗号化は解除するのではなく、回避するものになっているのです。効果的な暗号化は、データを隠す側にある程度のセキュリティの知識(秘密キーを保護する必要がある、暗号化されていないデータコピーにアクセスできるようにしない、キーを再利用したり、簡単に推測できるキーを使用したりしない(たとえば、パスワードに「password」を使用する)など)があることを前提としていますが、データセキュリティ担当者の対応がずさんな場合、有能なハッカーなら暗号化アルゴリズムを実際に破ることなくデータにアクセスできるようになります。
最近発表された『Encryption Workarounds』という学術論文では、この原則が徹底的に検証されています。この論文の著者は、私が気に入っている2人のライターで、1人は南カリフォルニア大学Gould School of Lawの教授であり、合衆国憲法修正第4条に関するブログで有名なOrin S. Kerr氏、もう1人はハーバード大学のBerkman Klein Center for Internet and Societyで公政策の非常勤講師を務め、おそらく最も有名な暗号研究者であるBruce Schneier氏です。
Kerr氏とSchneier氏は、基本的な暗号化の回避策として以下の6つを挙げています。
- キーを見つける
- キーを推測する
- キーを提供させる
- 暗号化スキームの脆弱性を悪用する
- デバイスの使用中にプレーンテキストにアクセスする
- プレーンテキストのコピーを見つける
次にこの論文では、常に有効な回避策はないものの、そのいずれもが功を奏することがある、といった明快なものをはじめとするいくつかの教訓を示したうえで、曖昧であることが多い回避策の法律上の扱いを考察しています。
著者の2人は、一般的に法執行機関が(おそらく)合法的に押収したコンテンツのプレーンテキストバージョンへのアクセスを求めたときの政府の措置に特に関心を寄せています。これに関しては、2016年の初めにカリフォルニア州サンバーナーディーノで起きたテロ事件を受けて、FBIがテロリストの1人からiPhone 5Cを押収したものの、その電話の暗号化を解除できず、Apple社との間で激しい議論が交わされたという有名な例があります(これについては、後から詳細を述べます)。
このようなケースで個人がパスワードなどのキーを法執行機関に提供しなければならないかどうかについては、まだ結論が出ていませんが、誰にも当てはまる暗号化されたシステム上での攻撃に対する防御の問題として、同じような回避策を検討する価値はあります。
セキュリティは思っているほど確実なものではない
暗号化は本質的に強力であると過信してしまった人々の例は、これまでにいくつもあり、たとえば、1903年にシャーロック・ホームズが「踊る人形」で解読した換字式暗号は、失笑を誘うほど弱いものでした。

(クレジット: アーサー・コナン・ドイル、解読すると「HP ENTERPRISE」)
では、暗号化を回避する6つの方法について見ていきましょう。
キーを見つける: あなた(政府機関や攻撃者)が現在使用されているキーのコピーを見つけることができた場合、基本的に問題は解決されます。キーは、ユーザーがモニターに貼り付けた付箋に書かれていたり、スマートカードに書き込まれていたり、ユーザーのWebブラウザーに保存されていたりなどさまざまです。また、ユーザーのコンピューターにキーロガーをインストールし、パスワードの入力を監視するといったケースもあります。
キーを推測する: パスワードはどのように推測するのでしょうか。最も単純な方法としては、誕生日や子供の名前などが挙げられ、Kerr氏とSchneier氏は、米国の国境警備隊が容疑者に誕生日を聞いてそれをパスコードに使用し、iPhoneにアクセスしたケースについて説明しています。成功することが非常に多い次のステップは、大規模なデータ漏洩が起きたときに集められたものなど、一般的なパスワードのリストに含まれているパスワードの入力を繰り返すという方法です。
パスワードをコード化(通常はハッシュ化)するときは、アルゴリズムを何度も繰り返すのが一般的です。これにより、ログインしているどのユーザーにも重要ではないプロセスがある程度遅延しますが、パスワードリストを総当たりで試そうとしているユーザーには、これが大きな障害となります。
一部のシステムは、多くの場合に何度かパスワードを間違えると一定の時間システムをロックし、パスワードを推測しにくくしていますが、このようなセキュリティが、サンバーナーディーノでテロを起こした犯人の1人が持っていたiPhone 5Cへのアクセスを試みたFBIの問題につながりました。このときFBIは、自動化されたデバイスを使用して考えられるPINを繰り返し入力できるよう、パスワードの入力が失敗した後にシステムをロックする機能のない、特別なiOSバージョンの作成をApple社に求めましたが、Apple社はそれを拒否しました。そこでFBIは、Apple社に協力を命じるようある裁判官に求めましたが、最終的には別の方法でアクセスすることができたため、訴えを取り下げたと発表しました。
暗号化スキームの脆弱性を悪用する: どのソフトウェアにもバグがあり、暗号化ソフトウェアも例外ではありません。暗号化用のソフトウェアパッケージとして最も有名なのはOpenSSLです。OpenSSLは、2014年にハートブリードという深刻なバグが見つかり、それを早急に修正して、安全性の低い古いバージョンを使用している無数のプログラムに修正プログラムを実装しなければならない事態に発展しましたが、ハートブリードがどの程度悪用されたのかはわかっていません。
ハートブリードは、残念なことにずさんな対応の結果であることが判明しましたが、バグは故意に仕込まれることもあります。乱数ジェネレーターは、暗号化で使用される重要な基本機能の1つであり、こうした機能には標準があります。2006年には、Dual_EC_DRBG (Dual Elliptic Curve Deterministic Random Bit Generator)と呼ばれるアルゴリズムが公開され、NIST (アメリカ国立標準技術研究所)がこれを標準に提案しました。Dual_EC_DRBGは、米国国家安全保障局(NSA)がその大部分を作成しましたが、NSAは世界有数の暗号研究者を多数擁しているため、こうしたケースは当時も今も一般的です。
程なくして、このアルゴリズムに攻撃者が将来の出力を予測して暗号化を解除できる脆弱性があることを暗号研究者が特定しました。そして最終的には、Edward Snowden氏が漏洩させたNSAの文書において、この脆弱性が標準に政府機関のバックドアを仕掛けるという意図的なものであったことが判明し、NISTはこのアルゴリズムを使用しないよう勧告しました。
デバイスの使用中にプレーンテキストにアクセスする: ベストプラクティスでは、データは保存するときと移行中に暗号化されますが、使用するためにある時点で解読しなければなりません。その時点でデータはコンピューター上にプレーンテキストとして存在し、そのタイミングで攻撃者がコンピューターを支配すると、プレーンテキストが取り出されてしまいます。このような攻撃は、コンピューター上で悪意のあるソフトウェアを動作させるか、ユーザーの認証中にコンピューターを物理的に乗っ取ることにより仕掛けることができます。
Kerr氏とSchneier氏が述べているように、シルクロードを運営していたとしてRoss Ulbricht氏を逮捕したFBIの捜査官は、この手法を使用してシルクロードで用いられていた強力な暗号化と同氏のコンピューターのフルディスク暗号化を回避しました。捜査官は、Ulbricht氏が作業を行っていた図書館に突入し、同氏が何らかの手段に出る前にノートパソコンを奪い取り取った後、そこに入っていたファイルをすぐにUSBサムドライブにコピーしました。
プレーンテキストのコピーを見つける: 当然のことですが、暗号化されていないデータコピーがある場合、暗号化されたコピーに頭を悩ませる必要はありません。FBIは、Apple社にサンバーナーディーノの銃撃犯のiPhoneをハッキングさせるのが困難な状況になったとき、iCloudにあるその電話のバックアップコピーを提供するよう求めました。これは当然時代遅れのやり方で、目的を果たすには不十分でしたが、事件の解決に役立ちました。
セキュリティを確保するための対策
暗号化を回避する6つの方法は、暗号化されたデータを保護し、暗号化プロセスを確立するうえで非常に役に立ちます。
- 秘密キーを保護する。電子的に保存されている秘密キーは、物理的に隔離するかハードウェアセキュリティモジュールなどのセキュアなデバイスで保持する必要があります。
- 強力なランダムキーを使用してそれらを頻繁に変更し、再利用しない。パスワードマネージャーのような自動化されたシステムを使用することが、これを実践する唯一の方法です。
- キーへのアクセスを制限する。「キーを提供させる」ことに対抗するこの手法には、どうしても限界があります。あなたがキーを持っており、キーを差し出さないと危害を加えると誰かに脅された場合、拒否しろとは言えません。ただし、キーの配布を制限し、誰がキーを持っているのかをわからないようにすれば、キーの提供を強いられる可能性が少なくなります。
- 暗号化ソフトウェアを速やかにアップデートし、システムと活動を監査する。特にWindowsやモバイルのような一部のシステムでは、こうしたアップデートが適用可能になった時点ですぐに配布されます。ただし、Linuxシステムに関しては、組織が攻撃を受ける可能性があるタイミングを知るために担当者が常に情報を注視する必要があるうえ、多くのアップデートは、適用するのが容易ではありません。このアドバイスは、アップデートに限ったものではなく、脆弱性がニュースになっても修正プログラムが提供されないケースは少なくありませんが、脆弱性を軽減するために講じることができる対策はあります。
- システムを物理的に保護する。もちろん、オフィスへの物理的アクセスも問題であり、(図書館やコーヒーショップのような)公共の場所でセキュアなシステムを使用するのは危険です。
- 安全性の低いシステムを使用しない。ネットワークを介した通信の安全性は、ネットワークの最も脆弱な要素によって決まります。そのため、システム上のすべての要素と通信プロセス全体を考察する必要があります。
この記事/コンテンツは、記載されている特定の著者によって書かれたものであり、必ずしもHewlett Packard Enterpriseの見解を反映しているとは限りません。

Larry Seltzer
フリーの寄稿者、12件の記事
長年にわたり高い評価を受けてきたテクノロジーのエキスパートであるLarry Seltzer氏は、業界アナリストとして、またセキュリティコンサルティングやソフトウェア開発の分野でも有名です。同氏は2013年まで、UBM Tech社でBYTE、Dark Reading、およびNetwork Computingの論説員を務めていました。またそれ以前は10年以上にわたり、主にセキュリティ分野のテクノロジーに関するコンサルティングや執筆活動を行っていました。これまでに3冊の著書を出版し、数千の記事を発表するとともに個人で非公開のレポートを多数執筆してきた同氏は、いくつかの試験機関でテクニカルディレクターとして、特にテスト自動化を中心に、製品テストを指揮するだけでなく、自らもテストを行ってきました。同氏は、かつてニュージャージー州プリンストンにあったDesktop Software社において、NPL 4GLクエリ言語を作成するチームのソフトウェアエンジニアとしてキャリアをスタートさせました。また、Chase Econometrics社でコーポレートITとソフトウェア開発にも携わりました。ペンシルバニア大学を卒業した同氏は、公共政策の学位を取得しています。
enterprise.nxt
ITプロフェッショナルの皆様へ価値あるインサイトをご提供する Enterprise.nxt へようこそ。
ハイブリッド IT、エッジコンピューティング、データセンター変革、新しいコンピューティングパラダイムに関する分析、リサーチ、実践的アドバイスを業界の第一人者からご提供します。