ペンタセキュリティが毎月(年12回)掲載しているセキュリティコラムです。
当社のR&DセンターのTOSLabは、本コラムより、社会一般必要なICTセキュリティとその課題について提言することで
企業、そして社会のセキュリティ認識の向上およびセキュリティ文化の定着を支援致します。

networking-1626665_1280

【コラム】順序保存暗号化(Order Preserving Encryption)は安全な暗号化か。

順序保存暗号化(Order Preserving Encryption)は安全な暗号化か。

一般の企業で会社の情報セキュリティを担当しているKさんは、このごろ悩み事が多い。個人情報保護法の遵守のため、個人情報が保存されている業務システムに暗号化製品を導入して適用しようとしている。暗号化製品を設置すれば、個人情報保護法の遵守は問題ないが、業務システムの性能が低下する可能性があり、心配が大きい。
その時、偶然「OPE」という技術を採用したという暗号化製品の広告を見ることになる。OPE技術がどのような技術かは分からないが、暗号化後にもDB検索の性能低下がないという説明が大きく伝わってくる。OPEという名前が「Order Preserving Encryption」だから、暗号化(Encryption)も性能低下も解決するということで自分の悩みを一回で解決してくれそうだ。

 

個人情報の保護のため、DB暗号化製品を導入するケースが増え、上記の話のようにOPEに対する関心が高まっている。
「OPE(Order Preserving Encryption)」は、どのような技術であり、どれほど安全なのか。個人情報保護の安全性と性能低下の克服の二兎を得る技術であるかを調べることにしよう。

 

手順を維持する暗化は根本的に危

 

DB暗号化は、個人情報保護のための必須技術と認識されている。DBサーバに暗号化を適用すると、DBサーバに保存されるデータを暗号化して保存し、データを照会する際には暗号化されたデータを復号した後に使用者に対して提供される。DBサーバは暗号化と復号のための処理演算を追加で遂行しなければならないため、速度低下が避けられない。暗号化の適用によるDBサーバの性能低下問題は、暗号化アルゴリズムの効率的な実現技術で解決できる。

DB暗号化でさらに重要な問題は、検索の索引を生成する問題である。検索の索引は、DBに保存されている膨大なデータの中から必要なデータを迅速に照会するために使用されるDB内部の追加情報である。暗号化されたデータから希望するデータを検索するには、暗号化になる前のオリジナルデータを知らなければならないため、暗号化されたデータを全部いちいち復号しなければならない。希望するデータを一つ照会するたびに、膨大なデータをすべて復号しなければならないため膨大な演算量の負担が発生するしかない。これを解決する方法のひとつが、「順序保存暗号化(Order Preserving Encryption、以下OPE)」だ。

OPEは、かなりずいぶん前から存在していた技術だ。OPEの歴史を遡ると、第一次世界大戦から使用された「One-Part Code」技術がOPEの始祖といえる。暗号化されたデータについても、DBの検索索引を容易に作れるという特長のために2000年代からDBMS業界で注目され始めた。2004年には、R.Agrawalを含め4人のIBM研究員たちが最初にOPEという用語を定義した。彼らはOPEの概念に対する数学的モデルと実現に対する方向性を提示したが、安全性に対する具体的な言及や証明をしなかった。
(参考文献:R.Agrawal、J.Kiernan、R.Srikant、and Y.Xu、「Order-preserving encryption for numeric data」、SIGMOD 2004、pp.563~574)

 

データを迅速に照会するためには、データを順に整列しておかなければならない。例えば、数百万人のマイナンバーの中から自分が探すマイナンバーが含まれているかどうかを容易に探す方法は、マイナンバーを13文字の自然数と見て大きさ順に整理しておくことだ。しかし、この方法は暗号化後には使用できない。暗号化は、オリジナルデータを予測できない任意の値に変換する過程なので、暗号化されたデータはオリジナルデータとは全く違う順番に整列されるしかない。暗号化を適用しても、暗号化したデータがオリジナルデータと同様の順番に整列されるようにしてくれる方法がOPEである。大きさが小さい順に整列された数字データ1234、3456、5678という三つの数字があると仮定する。一般的な暗号化を適用すれば、三つの暗号化された数字間の順序が巻き込まれる。OPEを適用すれば、1234の暗号が3456の暗号より前に整列されて、3456の暗号は5678の暗号よりもリードすることになる。

順序保存暗号化という名称のように、果たしてOPEは安全な暗号化だろうか。安全な暗号化は、暗号文からオリジナルデータに関するいかなる情報も得られないべきだ。OPEは、暗号文で「順序」という情報を得ることができ、これをもとに、平文を類推することができる。上記で説明した1234、3456、5678の例に戻ってみよう。1234の暗号文(A)と3456の暗号文(B)を知っていれば、暗号文Aと暗号文Bの間に整列される暗号文Cは1234と3456の間にある値から作られた暗号文であることが把握できる。この場合、暗号を解読しようとする攻撃者が1234と3456を知って、二つの数を暗号化した値(暗号文A、B)たちも知っているため、このような攻撃方法を「選択平文攻撃(Chosen Plaintext Attack;以下CPA)」という。

安全な暗号アルゴリズムは、CPA攻撃モデルを採用した攻撃者が暗号文Cがどんな数字を暗号化したかを区分できない「非区別性(Indistinguishability)」を満足しなければならないが、OPEはこれを満足しないために安全な暗号化とは言えないのだ。したがって、OPEはDES、AES、SEED、ARIAなどと同じ普通のブロック暗号化アルゴリズムと肩を並べそうな高いレベルの安全性を備えていない。世界の情報セキュリティ関連の標準でOPEを見られないことも、このような理由だ。

 

「順序保存を提供する安全な暗号化は不可能なのだろうか」


という問題を解決するために、米国のジョージア工科大学(Georgia Tech)のボルディレワ(Boldyreva)教授を含めた4人の研究者たちが2009年の研究結果を発表した。
(参考文献:A.Boldyreva、N.Chenette、Y.Lee、A.O’Neill、「Order-Preserving Symmetric Encryption」、EUROCRYPT 2009、pp.224~241.)

ボルディレワは、制限的な環境ではOPEの脆弱攻撃であるCPA攻撃をある程度のレベルまでは防御できると証明した。尚且つ、制限条件でOPEにCPA攻撃をブロック暗号化アルゴリズムと同等のレベルに防御することは現実的に不可能というのも明らかにした。つまり、単純アルゴリズムの改善だけではこれ以上の安全性を期待することは難しいということだ。

アルゴリズム自体だけではCPA攻撃から逃れることはできないので、「どう実現するのか」が業界の主要関心事として浮上している。現在、大半のセキュリティ会社がOPEの安全性を補完してくれる技術およびセキュリティデバイスをともに使用し、OPEの脆弱性を補完するために努力している。OPEと共に他の検証を受けた暗号化アルゴリズムを使用したり、順序情報のみをさらに暗号化することなどをその例に挙げられる。しかし、このような状況についてよく知らない一般人たちは、「順序の保存暗号化」という名称だけを信じてOPEを他の暗号化アルゴリズムのように安全性が高いと考えやすい。

実際、ある会社ではOPE技術の安全性を誇大に評価して業界の非難を買ったりした。したがって、OPE関連ソリューションを選択する時には、製品内にOPEの安全性を補完してくれるセキュリティデバイス及び技術があるかを調べた後製品を選択しなければならない。特に、CPA攻撃は攻撃者が暗号化システムに容易にアクセスできる時に主に発生するので、製品にこのような弱点はないかを確認しなければならない。

 

暗号化を必要とする応用は様々だ。安全度が高いレベルで要求される応用がいれば、安全度が高くなくても大丈夫な応用もあり得る。OPEの場合、安全性を一部犠牲にして性能を選んだ応用と見られる。コラムの冒頭に仮想シナリオの主人公だったKさんのように、個人情報保護を必要とする応用では、長期間検証され高い安全度を保障してくれることができる標準的な暗号化技術が必要である。OPEは、オリジナルデータの順序が暗号化後も維持されるというメリットがあるため、データ検索などでは有用な技術であることに違いないが、安全性には限界があるということを忘れてはならない。

したがって、セキュリティ業界はOPE技術を適用する場合、安定性が脆弱な部分と程度については、ユーザに正確に知らせなければならない。一方、使用者は従来のブロック暗号化アルゴリズムと同レベルの安全な暗号化を提供したりはしないということを理解して、安全度よりも性能が重要な応用に選択的に適用するようにする。それとともに、足りない安全度を補完してくれるセキュリティデバイス及び機能が製品内に搭載されているかを是非検討しなければならない。

 

hacker-1944688_1280

【コラム】 セキュリティ脅威にはアクセス制御より暗号化が効果的だ。


データベースセキュリティや情報漏えい対策において「暗号化」と「アクセス制御」はどちらがさらに重要であろうかを常に熾烈に競争してきた。

この二つは、セキュリティに対するアプローチからお互い明確に違って、長所と短所もそれぞれ違うのでユーザたちを悩ませた。
それで今回は基本の基本である暗号化とアクセス制御の長所と短所を調べて、究極的に情報保護のために使用すべきのソリューションは何だろうかを説明したい。

 

暗号化そしてアクセス制御

 

暗号化の方では、アクセス制御に比べてはるかに高いセキュリティを強調した。万が一、情報漏えい事故が発生した時にも既に暗号化されたデータなら内容だけは露出されず安全なので、暗号化こそ根本的なセキュリティ方法だというのだ。しかし、全体のセキュリティシステム構築にかかる期間が比較的長くて構築後の暗号化処理をしてみると、システム性能に影響を及ぼす可能性があるという点が短所として指摘されたりした。特に速度と安定性が強く要求される金融機関などの企業は、性能影響に対する予測が難しいという点のため、暗号化システムの導入を躊躇したりもした。

 

アクセス制御の方では、暗号化に比べて簡便な構築などの主にシステム可用性を強調した。アカウントによって情報に対するアクセス権限を付与したり遮断する方法を通じて情報漏えい事故を未然に防止する効果があるという、本来の趣旨よりかえってシステムとネットワーク性能に及ぼす影響が暗号化に比べて少ないという点を長所として広報した。名分はセキュリティ道具なのにもセキュリティに対する言及が少ないという点は、おそらく自らも短所を認める態度であろう。暗号化とシステム性能の関係に対する漠然な疑いを確実な恐怖で拡大することにもいつも先頭に立ったアクセス制御の方では今も同じ立場を取っている。

 

暗号化とアクセス制御は、長年の競争を通じて鍛えられた。相手を反面教師にして、自分の短所を克服し、自分の強みをより引き上げようとする努力をしてきた。そして、もう双方いずれも十分に鍛えられたようだ。
二つの間の優位を冷静に判断する時になったという話だ。

 

まず、暗号化は、これまで金融機関などのシステム性能と速度そして安定性などに非常に敏感な現場に進入することによって、既存にやや不足していると評価されたシステム可用性の問題を確実に克服したという事実を証明した。アプライアンス一体型の方式の導入など、ソフトウェアとハードウェアを含めた不断の努力を通じて短所と指摘されてきた速度の問題も完全に解決した。その結果、今は誰もが「暗号化は、セキュリティレベルは高いとはいえ、速度が遅いのが問題」と言わないようになった。

 

一方、アクセス制御は長所の広報をより強化する方向を選択した。「アクセス制御のハードウェア一つだけ設置すれば、たった数日にすべてのセキュリティ問題がきれいに解決される。」という言葉は、企業のセキュリティシステム構築の担当者なら誰でも一度は聴いてみたような広報セリフだ。少しだけ集中して聞いてみると、主客が転倒した言葉であるという事実をすぐ気付くかもしれないが、一応聞いたところでは結構良さそうに聞こえるし、かなり効果的だった。そして暗号化を代替できるとし、データマスキング機能などを自慢したりもするが、情報セキュリティ専門家たちはこれを話にならない無駄な迷信に過ぎないと言う。

 

情報を保護するための究極のソリューションとは

 

もう暗号化とアクセス制御の競争1次戦は終了したようだから、企業が保有した貴重な資産である情報を保護する究極のソリューションは何なのか、判定する時である。

 

ほとんどのセキュリティ政策の場合、「情報が絶対流出されないこと」を大前提にしようとする傾向がある。流出を根本的に遮断するとし、数多くの道具と方法を動員したにもかかわらず相次いで発生した大規模の情報漏えい事故を考えて見ると、非常に深刻な弱点を内包している単純な危機管理論理に過ぎない。誠に残念な話だが、情報は流出されるものだ。情報はさらに広く、急速に広がっていく性質を持っているので、いくら防ごうとしても、人の力で防げるものではない。情報流出は、もしかしたら必然だ。それが情報の固有の性質だから。

 

結局、情報セキュリティはただセキュリティのレベルの高低によって判断されなければならない。それも、情報はいつでも流出される可能性があるという前提の下、流出を防ぐために最善を尽くすべきだが、万が一、情報が流出された状況でもきちんと備えなければならない。その必要と危険性は、今まで起きた様々な事件事故がすでに証明している。暗号化は、意味があって価値を持っている情報を変形して、無意味で価値のないビットに置き換えることにより、情報窃盗を狙う目的そのものを根本的に破壊させる事故防止の抑止力だ。同時に情報が既に流出された状況でも情報の内容が露出される最悪の事態だけは発生しないようにする最終兵器そして究極の兵器だ。

 

例えると黄金を無価値な石に変えることだろう。金を狙う者は多いが、石を狙う者はない。ただ元の状態への変換のための鍵、つまり暗・復号化のための暗号鍵を知っている者だけが石を再び金に変えることができる。誰が暗号化鍵を持つのかをあらかじめ指定することによって、情報アクセス権限を管理するという点から見ると、鍵管理を適切に運用するなら、これはアクセス制御方式が提供するセキュリティをすでに含めているに違いない。したがって、暗号化とアクセス制御競争1次戦が優劣をつけることができない勝負であったら、第2戦は、暗号化の圧倒的勝利だと予想している。 あらゆる情況がそうだ。

 

 

S54543

【コラム】 クレジット取引セキュリティ、P2PE暗号化で安全

 

どんな国であれ、外国を訪問した外国人は、大小のカルチャーショックを経験する。

自分が精神的に属している母国の文化とは全く異なった異国の文化を経験した際感じる衝撃は、2回にわたって起こる。初めは、慣れていない文化を接したときの衝撃と、その国の文化にある程度慣れて、自分の国に戻った時、今更感じるようになる見慣れない感じだ。

 

、クレジット取引の

韓国人として、日本で生活しながらも少なからぬ文化衝撃を経験した。その中でも代表的なものが現金使用に関する文化だ。韓国では、本当にクレジットカードだけ持って生活した。クレジットカードで電車・バス・タクシーなどの公共交通を利用したり、ご飯を食べたり買い物をするなど、あらゆる日常的な行為をカード一つで解決した。最近は、カードも面倒になり、財布さえ持たないまま、スマートフォン一つだけを持って外に出ていた。コンビニではスマートフォンを端末機にかざすと,直ちに決済が完了される。インターネットショッピングも、銀行取引も全てスマートフォンで処理ができるから、本当に携帯一つで日常のあらゆることを解決できるのだ。

 

しかし、日本に来てみたら、いつも現金を準備しなければならないのが一応不便だった。クレジットカードを取り扱わない店も意外にかなり多く、カード決済はできるが、決済処理にかなり長い時間が所要される店も多かった。そうなると、「カード決済できますか?」と問うこともちょっとはばかりがあった。韓国と文化が完全に違う。確かに、代々引き継がれてきた老舗にNFC方式のモバイルペイ機能を支援する最新のPOS端末機が置かれているのもちょっと変に見えるようだ。それにも便利さの中毒性は、本当に恐ろしいもので世の中が少しずつ少しずつ変化していく時はその変化に気付かないが再び過去に戻ろうとしたらとても不便で、絶対戻れないのだ。それで、日本の現金文化はまだとても不便に感じられる。

 

とにかく、そうするしかないから現金を持って外出することに慣れるしかなかった。そして、ある程度慣れてきたとき、韓国に戻った。すると、またこれは変な気がすることになる。この便利さは、いや、これは本当にちょっと恐ろしいことではないか。これは大胆過ぎるじゃないか。クレジット決済のセキュリティ規格の中で「トラック1」に記録される銀行のアカウント情報、「トラック3」の提携社の情報などの決済と直接関連していない情報を保存するトラックとは違って、クレジットカードのカード番号、発行日、有効期限などの決済過程で必需的な情報を保存する「トラック2」の敏感情報は、もし奪取された場合、誰でもどこでも任意で決済することができる。それでパスワードを含めたトラック2データは、国際闇市場で1つあたり$4,000程度で取引されるとても価値が高い情報だ。そのような情報が特別な確認手続きもなしに、こんなに広範囲にやたらに流通されても、果たして安全なのか? 5万ウォン以下の取引は、署名手続きも省略し、そのまま決済される。便利だが、不安だ。

 

安全だが難しい「PCI DSS

もちろん、クレジット取引安全のための装置はある。クレジット取引の安全を担保する最も一般的な基準であり、事実上の国際標準は「PCI DSS」だ。「PCI DSS」とは、クレジットカード会員のカード情報および取引情報を安全に管理するためにクレジット取引の全過程にかけて、取引と関連した者らが共に遵守しなければならないクレジット産業界のセキュリティ標準である。PCI DSSが登場する前には、クレジットカード会社ごとにそれぞれ異なるセキュリティ基準を要求した。それで、クレジットカード加盟店の事業者たちは各会社の異なる基準を全て合わせなければならなかったが、これは難しくて費用もたくさん払わなければならなかった。このような不便さを解消するため、JCB、アメリカン・エキスプレス、Discover、MasterCard、VISAなどの国際的なクレジットカード企業が共同で委員会を組織し、「PCI DSS」という規格を策定した。会社たちの約束に過ぎないが、事実上の国際標準として通用される。

 

クレジット取引の基準として「EMV規格(EuroPay、MasterCard、Visaの間で合意したICカード統一規格)」を使用する日本もPCI DSS規格に準拠したセキュリティ対策を樹立している。2020年3月を目標にPCI DSSに準拠してEMV基準ICカードのセキュリティ対策を打ち出した。ところが、難しくて費用もかかるのでPCI DSSを打ち出したわけだが、これも相変わらず難しくて複雑だ。POS加盟店の基準でPCI DSS規格を準拠するための努力と費用はかなりであるのだ。小さくてきれいな店一つを出したいという夢があっても、クレジット取引基準を合わせることが難しくて最初からあきらめなければならないほどだ。

 

このような問題を韓国は「VAN(Value Added Network)」会社がクレジット取引プロセスの中間段階で解決する。VAN会社らは、クレジットカード会社の代わりに加盟店を募集し、端末機などのデバイスを提供して、カード決済承認の過程を中継してくれて、売上データを整理する伝票の買い取りサービスなどを提供する。クレジットカード会社と加盟店の面倒な仕事を代わりにしてくれるわけだから、一応便利だが、取引1件ごとに別途の課される手数料が決して少なくない。「VAN手数料引き下げ!」が政治家たちの選挙公約になるぐらいだ。開業の時、併せて多く課すか、商売しながら少しずつ課すかを選択することだ。そして、真ん中でマージンを得るという事業の性質のため、大手の流通社を相手にした不正腐敗などの事件もたびたび起こる。高コスト問題をなんどか避けようとする間、むしろはるかに大きくて恐ろしい他の問題に会ったのだ。

 

クレジット取引セキュリティ、P2PE化で安全

PCI DSSは安全だ。しかし、加盟店の立場では難しいことでもある。これは、まるで「猫の首に鈴をつける。」のような問題だった。ネズミの立場では、猫の首に鈴をつけさえすれば安全だが、これは一体つける気にならないのだ。

しかし、2017年3月、改正された「クレジットカード取引におけるセキュリティ対策の強化に向けた実行計画 2017」が発表された。該当ガイドラインが2016年のガイドラインと特に違うところは、POS加盟店に要求されたセキュリティ対策の中で非保持とPCI DSS対応の部分で、「非保持」の方法として「暗号化」を追加し、その内容としてPCI DSS規格の中で「PCI P2PE(Point to Point Encryption)の構造を言及しているというところだ。「PCI P2PE」とは、カード会員の敏感情報をカードリーダ端末機から決済が承認されて処理されるサーバまで安全に転送し、処理する方式に対する規定である。その基になる技術は、「暗号化」だ。そのまま暗号化ではなく、「P2P暗号化」、すなわちクレジットカード端末機からカード会社のアプリケーションサーバを経て、データベースに保存されるまで、データが移動する全過程にわたる「エンドツーエンドの暗号化」だ。これは「E2E(End to End)」暗号化とも呼ぶ。いわば「財布からサーバまで」の意味だ。

 

P2PEまたはE2EEが現実的でないという主張をする人々もいるが、これは、当該用語を文字通りの意味で理解したためだ。エンドツーエンドの暗号化は、端末機から情報を暗号化して、通信区間でSSLを使ったり、区間暗号化を活用することで、何の問題もなく簡単に実装できる技術である。安全で、簡単だ。それで、難しくて複雑なPCI DSS規格の中でまずP2PEから適用しなければならないということだ。他の国々でもすでに一般的に実施している措置だ。韓国では、P2PE措置を取らなかった新規加盟店は、事業を開始することもできない。

 

その十分な安全性の根拠は、「DUKPT(Derived Unique Key Per Transaction)」だ。「DUKPT」とは、カードリーダー端末機とサーバの間に敏感情報が伝送されるたびに毎回新たに生成される「One Time Encryption Key」を使用し、暗・復号化する鍵管理技術だ。すべてのクレジット取引セキュリティは、固有の暗号鍵を使用する。しかし、鍵管理に問題が生じるのなら、ドアーに錠をかかって、錠の隣に鍵をおくことと同じく、全く安全ではない。その中でも最も脆弱な状態は、一つの鍵を暗号化と復号化に同じく使用することだ。錠をかけてすぐ鍵を誰かにあげることと同じだ。しかし、DUKPTは敏感情報を送信するたびに、一度だけ使用される鍵を使用するため、万が一、鍵が露出されることが起きても当該鍵は、ただそのトランザクションにだけ有効するため、悪用される危険が非常に少ない。したがって、DUKPTはPCI DSS規格に最も適合した暗号化方式で勧められるのだ。

 

結論は、クレジット取引の際DUKPTなどの適切な暗号化技術を利用すれば、十分なセキュリティ効果を得られるということだ。リーダー端末機でカード情報を読む同時に、情報を暗号化してしまえば、その情報は誰が盗んでも使えないからそもそも最初から読まないことになる。そして、そのままの状態でサーバまで送り、また、サーバから受け取る情報もまた同じく処理すれば、クレジット取引の過程のどこにも情報がないのと同じだ。盗もうとしても、盗まれない。それで、適切な暗号化技術を利用すれば、十分なセキュリティ効果を得ることができるのだ。

 

つまり、PCI DSSの中で「P2PE」エンドツーエンド暗号化を通じて「トラック2」の情報だけ財布からサーバまで安全に守れば、十分なセキュリティを達成することができる。