本文とサイドメニューへジャンプするためのナビゲーションスキップです。

スタートアップガイド

J-Net21 中小企業ビジネス支援サイト

  • J-Net21とは
  • スタートアップガイド
中小機構
  • メルマガ登録
  • RSS一覧
  • お問い合わせ

HOME > 製品・技術を開発する > デジ・ステーション

デジ・ステーション


5分でわかる最新キーワード解説
復号せずに暗号検索できる「秘匿検索基盤」

日々進歩するIT技術は、ともすると取り残されてしまいそうな勢いで進化の速度を高めています。そこでキーマンズネット編集部がお届けするのが「5分でわかる最新キーワード解説」。このコーナーを読めば、最新IT事情がスラスラ読み解けるようになることうけあい。忙しいアナタもサラっと読めてタメになる、そんなコーナーを目指します。今回のテーマは暗号化されたデータベースを暗号化されたキーワードのまま検索できるようにしたうえ、属性情報を利用したアクセス制御も同時に実現し、しかも従来の数百倍のスピードで検索できるという「秘匿検索基盤ソフトウェア」。「検索可能暗号」が世界中で活発に研究されるなか、三菱電機が初めてソフトウェアとして実用的なスピードでの実証に成功しました。

1.「秘匿検索基盤」とは

クラウドで暗号化データベースを運用する際に、検索キーワードを毎回異なる結果になるように暗号化したうえ、メモリ上でも一瞬たりとも復号せずに検索可能にする「検索可能暗号」技術に、属性情報による「アクセス制御機能」、高速化のための「暗号化索引」を付加し、「暗号強度」「アクセス制御」「高速検索」の3つをバランスよく組み合わせたのが、今回三菱電機が発表した「秘匿検索基盤ソフトウェア」だ。

1-1.クラウドではデータベース暗号化だけでは不十分

市販データベース管理システム(DBMS)には「暗号化オプション」が備えられている。それは万が一にも外部流出しては困る機密情報が含まれる大量のデータを安全に保管するための機能だ。しかし利用の際には最終的には内容をどこかで平文で取り出すことになる。それでも情報漏洩を起こさないと考えられているのは、利用者もシステム運用管理者も組織のルールに従う仲間であり、職業倫理としても情報流出行為は行わないという前提があるからだ。
 しかしクラウドサービスが基幹システムにも採用されるようになると、そんな常識は通用しない。なにしろ、データとDBMSとその管理下にある暗号鍵も社外に移動し、それらが入るサーバの運用管理は業者に任される。サーバは専用とは限らず、見ず知らずの他組織の仮想サーバが同一物理サーバ上で稼働し、メモリを共用することもある。
 仮想マシンのメモリ内容はサーバの運用管理者の操作で簡単にディスクに書き出すことができ、メモリ内容を窃取するマルウェアも登場した。また同一物理サーバ上の他組織の仮想サーバからメモリ状況を監視すれば操作を推測できる可能性が指摘されてもいる。サーバ上のどこかに必ず存在している暗号鍵も不正に窃取される可能性がないとは言えない。
 むろんクラウド業者はユーザ情報の保護を何らかの形で保証しているには違いない。だがクラウド側の従業員の不正やルール違反、インフラのセキュリティホールをどう防ぐかは、ユーザ企業がコントロールできない領域を含む。そこが問題だ。

1-2.従来の暗号化データベースと「秘匿検索」データベースの違い

そこで必要になるのがまずは暗号鍵の社内での安全な保管だ。次にデータベース検索時のキーワードなどから暗号解読の手がかりを渡さない仕組みもいる。クラウド側の管理者であっても、テナント側の仮想マシンにどんな情報があるか、どのように利用されているかを一切わからないようにするためだ。
 従来の暗号化データベースでは、図1上のようにクラウド上のDBMSが暗号鍵を管理し、検索時にはごくわずかな時間ではあるが暗号化データをメモリ上で復号する必要があった。暗号鍵が不正取得されたり、検索キーワードと対応するデータが明らかになったりすると、データベース内容の特定や推測が可能になる。
 この危険を避けるためには、図1下のように暗号鍵(秘密鍵)をDBMS側ではなく、利用組織の側に保管する必要がある。また検索時には検索キーワードそのものを暗号化し、暗号のままでデータベースが検索できるようでなければならない。検索結果も暗号化されたまま返し、社内にある秘密鍵でのみ復号できるようにする。

図1 従来の暗号化データベースと「秘匿検索基盤ソフトウェア」の違い
図1 従来の暗号化データベースと「秘匿検索基盤ソフトウェア」の違い

資料提供:三菱電機

このソフトウェアのデモシステムでの実行のようすを図2に示す。まずは検索端末側で「吉田」という文字を、端末ユーザが持つ秘密鍵で「ba3a86……」といった推測不能な暗号に変換する。この暗号化に毎回異なるランダムな乱数を利用し、暗号化のたびに異なる結果が生成されるようにしたのが1つのポイントだ。
 暗号化されたキーワードはクラウド側に送信され、クラウド側では一瞬たりともそれを復号することなく、暗号のままでデータベース内容と照合する。これが2つめのポイントだ。ヒットした情報はやはり暗号化されたまま社内システムに送られ、端末ユーザの秘密鍵を利用して初めて復号される。

図2 「秘匿検索基盤ソフトウェア」のデモシステムのイメージ
図2 「秘匿検索基盤ソフトウェア」のデモシステムのイメージ

資料提供:三菱電機

2.「秘匿検索基盤ソフトウェア」の仕組みは?

2-1.暗号強度を高める「検索可能暗号」で毎回異なる検索キーワード暗号化を実現

図1、2を見て、同じキーワードが毎回異なる暗号になるのではどうやってデータベース内容と照合できるのかと疑問を感じられることだろう。これには「検索可能暗号」という技術が利用されている。
 これまでも暗号化データベースを暗号化された検索キーワードで検索する仕組みはあった。しかし図3上に見るように、特定の文字列はいつでも一定の暗号に変換される「確定的暗号」であるため、処理は速いが単語の出現頻度からデータを推測することが可能であり、安全性に課題が残っていた。
 そこで図3下のように検索時には同じキーワードでも毎回異なる暗号になるようにランダム化を行うようにし、それでもデータベース検索を可能にしたのが「検索可能暗号」技術だ。これは現在世界中の研究機関が活発に開発を行っているホットな領域で、実現の方法は各種ある。

図3 ランダム化した暗号化ならキーワード推測が不可能
図3 ランダム化した暗号化ならキーワード推測が不可能

資料提供:三菱電機

三菱電機が採用したのは、「RSA暗号」などでおなじみの「公開鍵」と「秘密鍵」のペアを利用する暗号化方式を拡張した技術だ。データの登録時には、開示先の属性条件(部/課などの開示部署など)を含んだ情報を1つの公開鍵で暗号化し、検索時にはユーザの属性情報を埋め込んだ秘密鍵によって検索キーワードを暗号化するようにした。

2-2.ユーザの所属情報などの属性情報による「アクセス制御」が可能に

この検索の仕組みを図4に示す。クラウド側のサーバでは端末から送られてきた検索用暗号文とデータベース内の暗号化データのペアを特別なアルゴリズムで処理する。このアルゴリズムでは暗号化データ(データベース内)に含まれるデータおよび開示先条件と、検索用暗号文に含まれる検索ワードと属性情報が合致している場合だけ、データとは無関係な、ある決まった計算結果になる。これによりデータも検索ワードも復号することなく、一致するか否かを判断することができる。
 この仕組みなら、データに設定されている開示条件とは異なる属性の秘密鍵を持ったユーザは検索できなくなる。これは実質的に情報へのアクセス制御であり、不正アクセスを排除する効果がある。
 データはサーバ上で復号されるのではなく、あくまで計算結果のみが照合されるので、クラウドの管理者といえども内容を知ることはできない。そして検索結果は暗号化された状態のままユーザ端末に送られ、ユーザは自分の秘密鍵で復号できる(図4)。

図4 属性情報を組み込んだ暗号化によるアクセス制御のイメージ
図4 属性情報を組み込んだ暗号化によるアクセス制御のイメージ

資料提供:三菱電機

また属性情報に「ワイルドカード」領域を用意して運用しやすくしたのも1つの特徴だ。データ登録時に付加する開示先情報として、例えば「営業部第一営業課*」という属性をつけると第一営業課のユーザ全員が検索可能になる。「営業部第一営業課吉田」とすれば、吉田さん以外は検索できなくなる。個人ごとに権限設定をするのは大変だが、このようにすれば開示範囲を柔軟に設定/変更できるわけだ。

2-3.数十~100倍の検索性能を実現した「暗号化索引」

第3の特徴は高速化だ。検索可能暗号の課題はデータ量が多ければ多いほど計算量が増え、性能が上がらないことだ。専用装置を開発して対応を図るメーカーもあるが、同社では「暗号化索引」で大幅な高速化を実現した。
 暗号化索引とはデータベースに格納した暗号化データそれぞれから「索引鍵」を利用して計算した「索引値」のことだ。市販DBMSではデータから索引を作成することで検索の高速化を図っているが、その考え方を検索可能暗号に応用したもので、利用組織が索引値を計算するための専用の索引鍵をサーバに渡すことでデータベース上で索引値が計算可能となる。同様に、検索用暗号文から索引鍵で索引値を導くことができる。開示された索引値が1ビットなら、0か1かで検索対象を半減させることができる。ビット数を多くすればするほど対象を絞り込め、検索性能が高まる。ただし一方でデータ推測の材料をわずかではあっても与えることになるので、暗号強度と実用性能のバランスをとった開示ビット数で運用することが条件だ。
 同社のデモシステムではこの暗号化索引に加え、データ照合のための演算にクラウドならではの自動並列処理機能を利用するようにした。演算部分だけを複数のサーバで並列処理することによって、さらに高速化が実現し、大規模データベースでも1~3秒で検索が行えることが実証されたという。これは従来比で数百倍の高速化に相当するそうだ(クラウド上のID管理サービスに保管した全テナント10万人分のデータから氏名を検索したデモシステムの場合。図5)。

図5 暗号化索引とクラウドの並列処理能力を利用して高速化
図5 暗号化索引とクラウドの並列処理能力を利用して高速化

資料提供:三菱電機

2-4.その他の特徴とこれから

なお、秘匿検索のために社内端末側では特別なアプリケーションは不要だ。端末への秘密鍵の導入と維持・管理は必要だが、利用時にはブラウザへのプラグインにより、暗号化あるいは鍵管理が行えるようにしている。また秘匿検索基盤ソフトウェアの処理はSQL文中で外部コマンドとして呼出せばよく、サービス開発はこれまでのSQL利用システムと大きく異なるところはない。
 同社ではこの技術を来年度には事業化することにしており、実用化は目前だ。検索可能暗号については国内でも技術開発の取り組みが盛んであり、これからも別の技術を利用した方式やソフトウェアへの実装事例が次々に出てくることが期待される。いずれにせよ、クラウドでのデータベース運用はコスト合理性が高いためこれからますます活発化していくに違いない。導入や運用管理の面では、クラウドで利用するシステムならではの問題に注意し、安心・安全なクラウド利用を進めていきたい。

取材協力 : 三菱電機株式会社

掲載日:2013年10月 9日

キーマンズネット

出典元:株式会社リクルート キーマンズネット 2013年8月21日掲載分

検索

このページの先頭へ