JP2012138729A - データ処理装置、プログラム、およびデータ処理システム - Google Patents

データ処理装置、プログラム、およびデータ処理システム Download PDF

Info

Publication number
JP2012138729A
JP2012138729A JP2010289191A JP2010289191A JP2012138729A JP 2012138729 A JP2012138729 A JP 2012138729A JP 2010289191 A JP2010289191 A JP 2010289191A JP 2010289191 A JP2010289191 A JP 2010289191A JP 2012138729 A JP2012138729 A JP 2012138729A
Authority
JP
Japan
Prior art keywords
key
server
data
information
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010289191A
Other languages
English (en)
Inventor
Keisuke Takemori
敬祐 竹森
Takamasa Isohara
隆将 磯原
Masaru Miyake
優 三宅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2010289191A priority Critical patent/JP2012138729A/ja
Publication of JP2012138729A publication Critical patent/JP2012138729A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】データをより安全に管理することができるデータ処理装置、プログラム、およびデータ処理システムを提供する。
【解決手段】管理部22(通信機能22c)は、サーバ30と通信を行い、暗号化および復号に用いる鍵の生成に用いる情報をサーバ30から受信する。処理部23(鍵生成機能23b)は、サーバ30から受信した情報と、自装置を識別する識別情報とに基づいて鍵を生成する。処理部23(暗号化機能23c)は、鍵を用いてデータを暗号化して暗号化データを生成する。
【選択図】図2

Description

本発明は、暗号化データを生成する処理を行うデータ処理装置およびデータ処理システムに関する。また、本発明は、本データ処理装置としてコンピュータを機能させるためのプログラムにも関する。
昨今のスマートフォン等の携帯端末は、Android(登録商標)等のOS(Operating System)を採用し、オープンプラットフォームで開発可能な仕様となっている。また、携帯端末による電子決済の利用やメールの送受信など、端末側で管理する識別情報(IDやパスワード等)を用いてサーバ側が端末のクライアント認証を行う自動連携サービスが求められている。こうしたサービスを実現するには、サーバがクライアント認証を行うための識別情報を端末側で安全に管理する仕組みが求められている。これまで、耐タンパ性を有するTPM(Trusted Platform Module)やICカード等のセキュリティチップの内部で管理される秘密鍵による署名を用いてクライアント認証を行う仕組みが提案されている(例えば、特許文献1参照)。
特開2009−290508号公報
しかし、セキュリティチップを利用する場合には、セキュリティチップが端末に実装されている必要があり、セキュリティチップを持たない端末に安全なデータ管理の機構を設けることができない問題があった。
本発明は、上述した課題に鑑みてなされたものであって、データをより安全に管理することができるデータ処理装置、プログラム、およびデータ処理システムを提供することを目的とする。
本発明は、上記の課題を解決するためになされたもので、サーバと通信を行い、暗号化および復号に用いる鍵の生成に用いる情報を前記サーバから受信する通信部と、前記サーバから受信した情報と、自装置を識別する識別情報とに基づいて鍵を生成する鍵生成部と、前記鍵を用いてデータを暗号化して暗号化データを生成する暗号化処理部と、を備えたことを特徴とするデータ処理装置である。
また、本発明のデータ処理装置は、前記鍵生成部によって生成された前記鍵を格納する自装置内のメモリをさらに備えたことを特徴とする。
また、本発明のデータ処理装置は、前記鍵を用いて前記暗号化データを復号する復号処理部をさらに備えたことを特徴とする。
また、本発明のデータ処理装置において、前記復号処理部は、第1の電子署名と、前記第1の電子署名の署名者を識別する第1の署名者情報とを有し、第2の電子署名と、前記第2の電子署名の署名者を識別する第2の署名者情報とを有するアプリケーションから要求があった場合に、前記第1の署名者情報と前記第2の署名者情報を比較する比較部をさらに有し、前記復号処理部は、前記第1の署名者情報と前記第2の署名者情報とが同一であった場合に、前記暗号化データを復号して復号後のデータを、前記要求を発生したアプリケーションに引き渡すことを特徴とする。
また、本発明のデータ処理装置において、前記通信部は、第1の時点で第1の情報を前記サーバから受信し、前記第1の時点よりも後の第2の時点で第2の情報を前記サーバから受信し、前記鍵生成部は、前記第1の情報と前記識別情報とに基づいて第1の鍵を生成し、前記第2の情報と前記識別情報とに基づいて第2の鍵を生成し、前記暗号化処理部は、前記第1の鍵を用いてデータを暗号化して第1の暗号化データを生成した後、前記第1の鍵を用いて前記第1の暗号化データを復号したデータを、前記第2の鍵を用いて暗号化して第2の暗号化データを生成することを特徴とする。
また、本発明のデータ処理装置において、前記通信部は、前記サーバを起点として確立された通信により前記第2の時点で前記第2の情報を前記サーバから受信することを特徴とする。
また、本発明のデータ処理装置において、前記通信部は、前記サーバとの通信の際に暗号化通信を行うことを特徴とする。
また、本発明は、サーバと通信を行い、暗号化および復号に用いる鍵の生成に用いる情報を前記サーバから受信する通信部と、前記サーバから受信した情報と、自装置を識別する識別情報とに基づいて鍵を生成する鍵生成部と、前記鍵を用いてデータを暗号化して暗号化データを生成する暗号化処理部と、としてコンピュータを機能させるためのプログラムである。
また、本発明のプログラムは、前記鍵生成部と前記暗号化処理部と、としてコンピュータを機能させるためのネイティブコードを含むことを特徴とする。
また、本発明のプログラムは、難読化が施されていることを特徴とする。
また、本発明は、互いに通信を行うデータ処理装置とサーバとを備えたデータ処理システムであって、前記データ処理装置は、前記サーバと通信を行い、暗号化および復号に用いる鍵の生成に用いる情報を前記サーバから受信する第1の通信部と、前記サーバから受信した情報と、自装置を識別する識別情報とに基づいて前記鍵を生成する鍵生成部と、前記鍵を用いてデータを暗号化して暗号化データを生成する暗号化処理部と、を有し、前記サーバは、前記データ処理装置と通信を行い、前記鍵の生成に用いる情報を前記データ処理装置へ送信する第2の通信部を有することを特徴とするデータ処理システムである。
本発明によれば、サーバから受信した情報と、データ処理装置を識別する識別情報とに基づいて鍵を生成することによって、データ処理装置に固有な、推定されにくい鍵を生成することが可能となる。したがって、この鍵を用いてデータを暗号化することによって、データをより安全に管理することができる。
本発明の一実施形態によるデータ処理装置のハードウェア構成を示すブロック図である。 本発明の一実施形態によるデータ処理装置の機能構成を示すブロック図である。 本発明の一実施形態における乱数テーブルの内容を示す参考図である。 本発明の一実施形態における暗号化処理の手順を示すフローチャートである。 本発明の一実施形態におけるサーバ処理の手順を示すフローチャートである。 本発明の一実施形態における鍵生成・暗号化処理の手順を示すフローチャートである。 本発明の一実施形態におけるアプリケーション認証処理の手順を示すフローチャートである。 本発明の一実施形態における復号処理の手順を示すフローチャートである。 本発明の一実施形態における鍵生成・復号処理の手順を示すフローチャートである。
以下、図面を参照し、本発明の実施形態を説明する。図1は、本発明の一実施形態によるデータ処理装置のハードウェア構成を示している。本実施形態のデータ処理装置は、スマートフォン等の携帯端末として構成されている。図1に示すデータ処理装置は、CPU(Central Processing Unit)1、表示部2、操作部3、通信部4、メモリ5、フラッシュメモリ6、メモリインタフェース部7、UIM(User Identity Module Card)カード8、カードインタフェース部9を有する。
CPU1は、ROM5に格納されている各種のプログラムを読み出してメモリ5に読み込み、プログラムの各種命令に従って各種の演算を行い、データ処理装置内の各部を制御する。表示部2は各種の情報を表示する。操作部3は、ユーザが操作する各種操作部材を有する。通信部4は、外部の他の通信装置と通信を行う。メモリ5は、フラッシュメモリ6から読み込まれたプログラムや、CPU1が演算を行った結果等を一時的に記憶する媒体である。
フラッシュメモリ6は、CPU1の動作を規定する各種のプログラムや、データ処理装置内で処理される各種データを記憶する媒体である。フラッシュメモリ6において、ファイル操作が制限されているシステム領域には、データ処理装置のシステムの制御に必要な重要なプログラム等が格納され、システム領域以外の領域には一般の商用Webサイトからダウンロード可能なアプリケーションのプログラム等が格納される。メモリインタフェース部7は、CPU1とフラッシュメモリ6の間でデータの入出力を行う。UIMカード8は、通信を介して各種サービスを利用するのに必要な各種情報を記憶する媒体である。カードインタフェース部9は、CPU1とUIMカード8の間でデータの入出力を行う。
図2は、データ処理装置の機能構成を示している。図1に示すデータ処理装置は、本実施形態のデータ処理機能を実現する処理を行う機能構成として、アプリケーション20a,20b,20c、セキュアデータマネージャ21、認証部24を有する。また、図1は、データ処理装置と通信を行うサーバ30の機能構成も示している。データ処理装置とサーバ30は、本実施形態のデータ処理システムを構成する。
アプリケーション20a,20b,20c、セキュアデータマネージャ21、認証部24は、CPU1に各種処理を実行させるためのプログラムである。図2では、アプリケーション20a,20b,20c、セキュアデータマネージャ21、認証部24のプログラムがフラッシュメモリ6からメモリ5に読み込まれて、メモリ5上でアプリケーション20a,20b,20c、セキュアデータマネージャ21、認証部24が起動している状態が示されている。メモリ5上で起動したこれらのプログラムは、CPU1およびメモリ5の資源を利用して各種処理を行う。
アプリケーション20a,20b,20cは、アプリケーションの処理として規定された各種の処理を行う。図2では、3つのアプリケーションが起動しているが、データ処理装置で起動するアプリケーションの数は特に3つに限らない。
セキュアデータマネージャ21は、データの暗号化および復号を行う。本実施形態のセキュアデータマネージャ21は、アプリケーションによる常駐型のサービスであり、サービスが強制的に終了した場合には、自動的にサービスが再起動される。セキュアデータマネージャ21は、本実施形態のデータ処理を行うため、管理部22および処理部23を有する。
本実施形態のデータ処理装置は、OSとしてAndroid(登録商標)を用いている。セキュアデータマネージャ21のプログラムは、ファイルの拡張子が.apkであるアプリケーションファイルである。また、セキュアデータマネージャ21のプログラムは、ファイルの拡張子が.dexであってデータ管理を統括する管理部22のプログラムと、ファイルの拡張子が.soであって鍵の生成と暗号化および復号を行う処理部23のプログラムとを有する。
管理部22は、機能として、要求処理機能22a、識別情報取得機能22b、通信機能22cを有する。要求処理機能22aは、アプリケーション20a,20b,20cからの各種の要求を処理する機能である。識別情報取得機能22bは、端末毎に固有な識別情報であるIMSI(International Mobile Subscriber Identity)、IMEI(International Mobile Equipment Identity)、Android(登録商標) ID(以下ではOS IDと称す)を取得する機能である。通信機能22cは、図1の通信部4を介してサーバ30と通信を行う機能である。サーバ30との通信には暗号通信を用いることが望ましい。また、管理部22の処理が解読されないようにするため、管理部22のプログラムに難読化を施すことがより望ましい。
IMEIは、端末の製造元や、機種、シリアル番号等の情報を含む情報であり、フラッシュメモリ6に記録されている。IMSIは、契約者毎にユニークな識別子であり、UIMカード8に記録されている。OS IDは、端末においてOSが最初に起動するときにランダムに生成される64ビットの情報であり、フラッシュメモリ6に記録されている。IMSI、IMEI、OS IDについては、.so形式のプログラムである処理部23が直接取得することができないため、管理部22がこれらの識別情報を取得し、処理部23に引き渡す。
処理部23は、機能として、識別情報取得機能23a、鍵生成機能23b、暗号化機能23c、復号機能23dを有する。識別情報取得機能23aは、端末毎に固有な識別情報であるDevice IDを取得する機能である。本実施形態のDevice IDは、例えばMAC(Media Access Control address)アドレスであり、通信部4が保持している。鍵生成機能23bは、データの暗号化および復号に用いる鍵(秘密鍵)を生成する機能である。暗号化機能23cは、鍵生成機能23bにより生成した鍵を用いてデータを暗号化し、暗号化データを生成する機能である。復号機能23dは、鍵生成機能23bにより生成した鍵を用いて暗号化データを復号する機能である。
処理部23のプログラムは、逆コンパイルが困難なネイティブコード(機械語)で構成されている。処理部23の処理が解読されないようにするため、処理部23のプログラムをネイティブコードで構成するだけでなく、処理部23のプログラムに難読化を施すことがより望ましい。JNI(Java(登録商標) Native Interface)には、.so形式のファイルを、それを利用する.apk形式のファイルからのみ呼び出せる仕組みが設けられている。このため、.apk形式の偽のファイルから処理部23のプログラムを呼び出すことを防ぐことができる。
本実施形態の処理部23は、端末固有の情報であるIMSI、IMEI、OS ID、Device IDと、サーバ30が生成する乱数とを用いて鍵を生成し、生成した鍵を用いて暗号化および復号を行う。このように、端末固有の情報と乱数との組み合わせを用いて鍵を生成することによって、端末に固有な、推定されにくい鍵を生成することが可能となる。この鍵を用いてデータを暗号化することによって、データ処理装置がセキュリティチップを持たなくても、データを安全に管理することができる。
認証部24は、アプリケーション20a,20b,20cからセキュアデータマネージャ21に発行される要求を監視し、アプリケーション20a,20b,20cからセキュアデータマネージャ21に対して暗号化データを復号する要求があったときに、信頼されたアプリケーションのみに復号後のデータを提供するため、アプリケーション20a,20b,20cの認証を行う。この認証には、Android(登録商標)フレームワークであるContent ProviderにおけるSignature認証を利用する。認証部24は、OSの機能の一部として構成することが可能である。
サーバ30は、通信部31、制御部32、記憶部33を有する。通信部31は、データ処理装置と通信を行う。制御部32は、通信部31が行う通信を制御するほか、データ処理装置が鍵の生成に用いる乱数を生成する。記憶部33は、データ処理装置の識別情報と、そのデータ処理装置に提供する乱数とを関連付けた乱数テーブルのほか、制御部32によって処理される各種のデータを記憶する。図3は乱数テーブルの内容の一例を示している。図3に示すように、データ処理装置の識別情報300と、生成した乱数310と、乱数の生成日時320とが関連付けられて登録されている。
次に、データ処理装置の動作を説明する。本実施形態では、アプリケーション20a,20b,20cのいずれかがセキュアデータマネージャ21に対して、データを暗号化する要求を行ったときの動作、および暗号化データを復号する要求を行ったときの動作を説明する。セキュアデータマネージャ21が処理するデータは適宜メモリ5に格納され、処理の終了後、適宜メモリ5から消去されるが、以下ではメモリ5とのデータの入出力を省略して説明を行う場合がある。
まず、アプリケーションがセキュアデータマネージャ21に対して、データを暗号化する要求を行ったときの動作を説明する。アプリケーションは、操作部3を介してユーザがパスワードやID等の秘密情報を入力したときなどのタイミングで、セキュアデータマネージャ21に対して、データを暗号化する要求を行う。セキュアデータマネージャ21の管理部22は、この要求を受け付け、図4に示す暗号化処理を開始する。
管理部22(要求処理機能22a)は、要求を行ったアプリケーションから処理対象のデータを取得し、メモリ5に格納する(ステップS100)。続いて、管理部22(識別情報取得機能22b)は、識別情報(IMSI、IMEI、OS ID)を取得する(ステップS105)。識別情報の取得後、管理部22(通信機能22c)は、サーバ30と通信を行い、鍵の生成に使用する乱数をサーバ30に要求する乱数要求をサーバ30へ送信する(ステップS110)。この乱数要求には、データ処理装置の識別情報として、例えばIMEIが含まれる。なお、サーバ30と通信を行うための情報(接続先情報等を含む)はフラッシュメモリ6に予め格納されているものとする。
図5は、サーバ30が行う処理を示している。サーバ30の制御部32は、通信部31を介してデータ処理装置から乱数要求を受信すると(ステップS200)、記憶部33から乱数テーブルを読み出し、乱数要求に含まれるデータ処理装置の識別情報と一致する識別情報を乱数テーブルから検索する(ステップS205)。制御部32は、検索の結果、乱数要求に含まれるデータ処理装置の識別情報と一致する識別情報が乱数テーブルに存在したか否かを判定する(ステップS210)。
乱数要求に含まれるデータ処理装置の識別情報と一致する識別情報が乱数テーブルに存在している場合、処理はステップS220に進む。また、乱数要求に含まれるデータ処理装置の識別情報と一致する識別情報が乱数テーブルに存在しなかった場合、制御部32は新たに乱数を生成し、乱数要求に含まれるデータ処理装置の識別情報と、生成した乱数と、乱数を生成した日時とを乱数テーブルに登録する(ステップS215)。
続いて、制御部32は、乱数テーブルから、乱数要求に含まれるデータ処理装置の識別情報と一致する識別情報に関連付けられている乱数生成日時を取得し、その乱数生成日時から現時点までの時間が有効期限の範囲内であるか否かを判定する(ステップS220)。乱数生成日時から現時点までの時間が有効期限の範囲内である場合、制御部32は、乱数テーブルから、乱数要求に含まれるデータ処理装置の識別情報と一致する識別情報に関連付けられている乱数を取得し、その乱数を含む応答を生成し、通信部31を介して、乱数要求の送信元のデータ処理装置へ応答を送信する(ステップS225)。応答の送信後、サーバ30の処理が終了する。
また、乱数生成日時から現時点までの時間が有効期限の範囲内でない場合、制御部32は、新たな乱数を生成する(ステップS230)。続いて、制御部32は、乱数テーブルから、乱数要求に含まれるデータ処理装置の識別情報と一致する識別情報に関連付けられている乱数(旧乱数)を取得し、その旧乱数と、新たに生成した乱数(新乱数)とを含む応答を生成し、通信部31を介して、乱数要求の送信元のデータ処理装置へ応答を送信する(ステップS235)。応答を構成する通信フレームのデータ領域に新乱数と旧乱数のそれぞれに対応したフィールドを設けたり、新乱数と旧乱数のそれぞれに対して両者を区別するフラグを付加したりすることによって、データ処理装置は応答内の新乱数と旧乱数を識別することが可能となる。
応答の送信後、制御部32は、乱数テーブルにおいて、旧乱数を削除し、ステップS230で生成した新乱数を登録する(ステップS240)。新乱数の登録の終了後、サーバ30の処理が終了する。
本実施形態では、同じ乱数を使い続けるのではなく、乱数に有効期限を設け、有効期限を超過した乱数を変更する管理形態をとっている。つまり、本実施形態では、同じ鍵を使い続けるのではなく、乱数の変更に基づいて鍵を変更する管理形態をとっている。後述するが、データ処理装置は、旧乱数を用いて生成した鍵で暗号化した暗号化データを、旧乱数を用いて生成した鍵で復号し、新乱数を用いて生成した鍵で再度データを暗号化する。このように、乱数の更新に基づく鍵の更新および暗号化データの更新を行うことによって、鍵の推定をより困難にすることができる。
図4に示す暗号化処理の説明に戻る。セキュアデータマネージャ21の管理部22(通信機能22c)はサーバ30から応答を受信する(ステップS115)。応答の受信後、管理部22は処理部23に処理を引き渡す。処理部23(識別情報取得機能23a)は、識別情報(Device ID)を取得する(ステップS120)。全ての識別情報を管理部22が取得するのではなく、一部の識別情報については、ネイティブコードで構成されたプログラムによる処理部23が取得することによって、鍵の推定をより困難にすることができる。続いて、処理部23(鍵生成機能23b、暗号化機能23c)は鍵生成・暗号化処理を行う(ステップS125)。
図6は、鍵生成・暗号化処理を示している。処理部23(鍵生成機能23b)は、サーバ30から受信した応答に新乱数が含まれているか否かを判定する(ステップS300)。サーバ30からの応答に新乱数が含まれている場合、処理部23(鍵生成機能23b)は、新乱数と、ステップS105およびステップS120で取得した識別情報とを用いて鍵を生成する(ステップS305)。
暗号化アルゴリズムには、例えばAES(Advanced Encryption Standard)を用いる。鍵長は、128ビット、192ビット、256ビットの中から選択することが可能である。鍵の生成に用いる識別情報は1つだけでもよいが、鍵の推定をより困難にするため、複数の識別情報を組み合わせて用いることがより望ましい。本実施形態では、複数の識別情報と乱数の排他的論理和を用いる。
サーバ30からの応答に新乱数が含まれていない場合、処理部23(鍵生成機能23b)は、応答に含まれている旧乱数と、ステップS105およびステップS120で取得した識別情報とを用いて鍵を生成する(ステップS310)。ステップS305またはステップS310における鍵の生成後、処理部23(鍵生成機能23b)は、生成した鍵をメモリ5に格納する(ステップS315)。
続いて、処理部23(暗号化機能23c)は、メモリ5に格納されている鍵を用いて、メモリ5に格納されている処理対象のデータ(ステップS100で取得したデータ)を暗号化し、暗号化データを生成する(ステップS320)。暗号化の終了後、処理部23(暗号化機能23c)はメモリ5から鍵を消去する(ステップS325)。鍵の消去後、鍵生成・暗号化処理が終了する。
鍵生成・暗号化処理の終了後、処理部23(暗号化機能23c)は、ステップS320で生成した暗号化データをフラッシュメモリ6に保存する(ステップS130)。暗号化データの保存後、暗号化処理が終了する。
本実施形態では、暗号化処理時に生成された鍵はメモリ5上でのみ管理されるので、鍵の推定をより困難にすることができる。また、データの暗号化の終了直後に鍵をメモリ5から消去することによって、鍵がメモリ5に存在している時間を短くし、鍵の推定をより困難にすることができる。また、サーバ30からの応答に新乱数が含まれる場合に新乱数を用いて鍵を生成することによって、鍵の推定をより困難にすることができる。
次に、アプリケーションがセキュアデータマネージャ21に対して、暗号化データを復号する要求を行ったときの動作を説明する。アプリケーションは、サーバによるクライアント認証のための秘密情報を送信するための処理を行うなどのタイミングで、セキュアデータマネージャ21に対して、暗号化データを復号する要求を行う。認証部24は、アプリケーションからセキュアデータマネージャ21への要求を監視しており、暗号化データを復号する要求に基づいて、図7に示すアプリケーション認証処理を開始する。
なお、以下の処理の前提として、各アプリケーションは、電子署名と、その電子署名への署名を行った署名者を識別する署名者情報との組をメモリ5に保持しているものとする。また、セキュアデータマネージャ21の処理部23も、電子署名と署名者情報との組をメモリ5に保持しているものとする。
認証部24は、要求元のアプリケーションを識別し(ステップS400)、要求元のアプリケーションから署名者情報を取得する(ステップS405)。同様に、認証部24は、要求先のアプリケーションであるセキュアデータマネージャ21を識別し(ステップS410)、要求先のアプリケーションであるセキュアデータマネージャ21から署名者情報を取得する(ステップS415)。
続いて、認証部24は、ステップS405で取得した署名者情報と、ステップS415で取得した署名者情報とを比較し、両者が同一であるか否かを判定する(ステップS420)。両者が同一である場合、認証部24は、要求先のアプリケーションであるセキュアデータマネージャ21に処理を引き渡し(ステップS425)、アプリケーション認証処理を終了する。また、両者が同一でない場合、認証部24は、要求元のアプリケーションにエラーコードを返し(ステップS430)、アプリケーション認証処理を終了する。
認証部24から処理が引き渡されたセキュアデータマネージャ21の管理部22は、図8に示す復号処理を開始する。管理部22(識別情報取得機能22b)は、識別情報(IMSI、IMEI、OS ID)を取得する(ステップS500)。識別情報の取得後、管理部22(通信機能22c)は、サーバ30と通信を行い、鍵の生成に使用する乱数をサーバ30に要求する乱数要求をサーバ30へ送信する(ステップS505)。この乱数要求には、データ処理装置の識別情報として、例えばIMEIが含まれる。ステップS500〜S505の処理は図4のステップS105〜S110の処理と同様である。
続いて、サーバ30において、図5に示した処理が行われ、乱数要求に対する応答が送信される。セキュアデータマネージャ21の管理部22(通信機能22c)はサーバ30から応答を受信する(ステップS510)。応答の受信後、管理部22は処理部23に処理を引き渡す。処理部23(識別情報取得機能23a)は、識別情報(Device ID)を取得する(ステップS515)。ステップS510〜S515の処理は図4のステップS115〜S120の処理と同様である。続いて、処理部23(鍵生成機能23b、復号機能23d)は鍵生成・復号処理を行う(ステップS520)。
図9は、鍵生成・復号処理を示している。処理部23(鍵生成機能23b)は、サーバ30から受信した応答に含まれる旧乱数と、ステップS500およびステップS515で取得した識別情報とを用いて鍵を生成する(ステップS600)。このとき、複数の識別情報と旧乱数の排他的論理和を用いて鍵が生成される。鍵の生成後、処理部23(鍵生成機能23b)は、生成した鍵をメモリ5に格納する(ステップS605)。
続いて、処理部23(暗号化機能23c)は、フラッシュメモリ6から暗号化データを読み出し、メモリ5に格納されている鍵を用いて暗号化データを復号する(ステップS610)。復号の終了後、処理部23(暗号化機能23c)はメモリ5から鍵を消去する(ステップS615)。
鍵の消去後、処理部23(鍵生成機能23b)は、サーバ30から受信した応答に新乱数が含まれているか否かを判定する(ステップS620)。サーバ30からの応答に新乱数が含まれている場合、処理部23(鍵生成機能23b)は、新乱数と、ステップS500およびステップS515で取得した識別情報とを用いて鍵を生成する(ステップS625)。このとき、複数の識別情報と新乱数の排他的論理和を用いて鍵が生成される。鍵の生成後、処理部23(鍵生成機能23b)は、生成した鍵をメモリ5に格納する(ステップS630)。
続いて、処理部23(暗号化機能23c)は、メモリ5に格納されている鍵を用いて、ステップS610で復号したデータを暗号化し、暗号化データを生成する(ステップS635)。暗号化の終了後、処理部23(暗号化機能23c)はメモリ5から鍵を消去し(ステップS640)、フラッシュメモリ6に格納されている暗号化データを消去する(ステップS645)。
暗号化データの消去後、処理部23(暗号化機能23c)は、ステップS635で生成した暗号化データをフラッシュメモリ6に保存する(ステップS650)。暗号化データの保存後、鍵生成・復号処理が終了する。また、サーバ30からの応答に新乱数が含まれていない場合、鍵生成・復号処理が終了する。
鍵生成・復号処理の終了後、処理部23は管理部22に処理を引き渡す。管理部22(要求処理機能22a)は、暗号化データを復号する要求の要求元であるアプリケーションに復号後のデータを引き渡す(ステップS525)。復号後のデータがアプリケーションに引き渡された後、復号処理が終了する。
本実施形態では、復号処理時に生成された鍵はメモリ5上でのみ管理されるので、鍵の推定をより困難にすることができる。また、暗号化データの復号の終了直後に鍵をメモリ5から消去することによって、鍵がメモリ5に存在している時間を短くし、鍵の推定をより困難にすることができる。また、サーバ30からの応答に新乱数が含まれる場合に、新乱数を用いて生成した鍵を用いて新たに暗号化データを生成し、古い暗号化データをフラッシュメモリ6から消去することによって、鍵の推定をより困難にすると共に、暗号化データをより安全に管理することができる。
ユーザがデータ処理装置を紛失した場合等には、サーバ30の管理者に紛失等が通知される。この通知に基づいて、サーバ30が管理する乱数テーブルにおいて、この通知に関係する情報に対して特定のフラグが付加される。サーバ30は、図5に示した処理を行う際、乱数要求に含まれる識別情報と一致する識別情報にこのフラグが付加されていれば、以降の処理を中止する。これによって、データ処理装置に乱数が提供されなくなるため、データ処理装置は暗号化データを復号することができない。したがって、悪意のユーザがデータ処理装置を不正に利用して暗号化データを復号することによる重要情報の漏洩を防止することができる。
なお、図4〜図9に示した処理に関して、本発明の効果が得られる範囲内で、適宜ステップの順番を変更してもよい。
次に、本実施形態の変形例を説明する。上記の説明では、データ処理装置からの乱数要求に基づいてサーバ30が乱数の有効期限の判定を行っているが、サーバ30が、データ処理装置からの乱数要求とは独立に乱数の有効期限の判定を行い、有効期限の切れた乱数を更新するようにしてもよい。以下では、この場合の動作の一例を説明する。
ユーザがデータ処理装置を紛失した等によりサーバ30の管理者に紛失等が通知されたタイミング、あるいは定期的な監視のタイミングでサーバ30の制御部32は以下の処理を行う。ユーザが紛失したデータ処理装置を特定可能な場合等には、乱数テーブル内の特定の識別情報に関して処理が行われる。また、全てのデータ処理装置を対象とする場合には、乱数テーブル内の全ての識別情報に関して個別に処理が行われる。まず、制御部32は、乱数テーブルから、処理対象の識別情報に関連付けられた乱数生成日時を取得し、その乱数生成日時から現時点までの時間が有効期限の範囲内であるか否かを判定する。この処理は、図5のステップS220に対応している。
乱数生成日時から現時点までの時間が有効期限の範囲内である場合、制御部32は、乱数の有効期限の判定に関する処理を再度行う。また、乱数生成日時から現時点までの時間が有効期限の範囲内でない場合、制御部32は、新たな乱数を生成し、乱数テーブルから、処理対象の識別情報に関連付けられている乱数(旧乱数)を取得し、その旧乱数と、新たに生成した乱数(新乱数)とを含むメッセージを生成し、通信部31を介して、処理対象の識別情報に対応するデータ処理装置へメッセージを送信する。メッセージの送信後、制御部32は、乱数テーブルにおいて、旧乱数を削除し、新たに生成した新乱数を登録する。新乱数の登録の終了後、サーバ30の処理が終了する、または乱数の有効期限の判定に関する処理が再度行われる。乱数生成日時から現時点までの時間が有効期限の範囲内でない場合の処理は、図5のステップS230〜S240に対応している。
データ処理装置が乱数要求を送信する場合には、データ処理装置が起点となってサーバ30との通信セッション(接続)を確立し、サーバ30から応答を受信するまで通信セッション(接続)を維持する。これに対して、上記の処理では、サーバ30が起点となってデータ処理装置と通信セッション(接続)を確立する必要がある。このため、上記のメッセージの送信には、プッシュ型の通信が利用される。例えば、携帯電話サービスで提供されているSMS(Short Message Service)や、Android(登録商標)フレームワークで提供されているC2DM(Cloud to Device Messaging)を利用することが可能である。
サーバ30から上記のメッセージを受信したデータ処理装置は、図8のステップS500,S515,S520と同様の処理を行うことにより、新乱数と識別情報を用いて生成した鍵で新たに暗号化データを生成してフラッシュメモリ6に保存し、古い暗号化データをフラッシュメモリ6から消去する。上記の処理によって、乱数の更新に基づく鍵の更新および暗号化データの更新を行うタイミングをサーバ30が管理することが可能となる。このため、鍵の更新および暗号化データの更新に対する即時性が増す。
本実施形態のデータ処理装置は、本実施形態のデータ処理を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させることで実現することが可能である。
ここで、「コンピュータ」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
上述したように、本実施形態によれば、サーバから受信した情報(乱数)と、データ処理装置を識別する識別情報(IMSI、IMEI、OS ID、Device ID)とに基づいて鍵を生成することによって、サーバ30単体もしくはデータ処理装置単体で鍵を生成することを防ぐことが可能となり、データ処理装置に固有な、推定されにくい鍵を生成することが可能となる。したがって、この鍵を用いてデータを暗号化することによって、セキュリティチップを持たなくても、データをより安全に管理することができる。また、複数の識別情報を組み合わせることによって、鍵の推定をより困難にすることができる。
また、鍵をメモリ5上でのみ管理することによって、鍵の推定を困難にすることができる。さらに、メモリ5に鍵を長時間格納せず、暗号化の終了後にメモリ5から鍵を消去することによって、鍵の推定をより困難にすることができる。さらに、暗号化データを復号する際も、鍵を生成し、生成した鍵で暗号化データを復号し、復号の終了後にメモリ5から鍵を消去することによって、鍵の推定をより困難にすることができる。
また、アプリケーションから暗号化データの復号の要求があった場合に、アプリケーションの認証を行うことによって、信頼されたアプリケーションのみに復号後のデータを提供することができる。
また、旧乱数を用いて生成した鍵で暗号化した暗号化データを、旧乱数を用いて生成した鍵で復号し、新乱数を用いて生成した鍵で再度データを暗号化することによって、同一の鍵が使用される期間をより短くし、鍵の推定をより困難にすると共に、暗号化データをより安全に管理することができる。さらに、サーバ30からのプッシュ型の通信をトリガとして鍵の更新および暗号化データの更新を行うことによって、鍵の更新および暗号化データの更新に対する即時性を増すことができる。
上記のように、サーバ30単体もしくはデータ処理装置単体では鍵を生成することが困難であるため、本実施形態のセキュアデータマネージャ21を、一般の商用Webサイトからダウンロード可能なアプリケーションとして提供することができる。また、本実施形態のデータ処理装置は、電子決済やメールの送受信等のためにサーバがクライアントを自動認証するサービス等に適用することが可能である。
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
1・・・CPU、2・・・表示部、3・・・操作部、4・・・通信部、5・・・メモリ、6・・・フラッシュメモリ、7・・・メモリインタフェース部、8・・・UIMカード、9・・・カードインタフェース部、20a,20b,20c・・・アプリケーション、21・・・セキュアデータマネージャ、22・・・管理部、22a・・・要求処理機能、22b・・・識別情報取得機能、22c・・・通信機能(通信部)、23・・・処理部、23a・・・識別情報取得機能、23b・・・鍵生成機能(鍵生成部)、23c・・・暗号化機能(暗号化処理部)、23d・・・復号機能(復号処理部)、24・・・認証部(比較部)、30・・・サーバ、31・・・通信部、32・・・制御部、33・・・記憶部

Claims (11)

  1. サーバと通信を行い、暗号化および復号に用いる鍵の生成に用いる情報を前記サーバから受信する通信部と、
    前記サーバから受信した情報と、自装置を識別する識別情報とに基づいて鍵を生成する鍵生成部と、
    前記鍵を用いてデータを暗号化して暗号化データを生成する暗号化処理部と、
    を備えたことを特徴とするデータ処理装置。
  2. 前記鍵生成部によって生成された前記鍵を格納する自装置内のメモリをさらに備えたことを特徴とする請求項1に記載のデータ処理装置。
  3. 前記鍵を用いて前記暗号化データを復号する復号処理部をさらに備えたことを特徴とする請求項1または請求項2に記載のデータ処理装置。
  4. 前記復号処理部は、第1の電子署名と、前記第1の電子署名の署名者を識別する第1の署名者情報とを有し、
    第2の電子署名と、前記第2の電子署名の署名者を識別する第2の署名者情報とを有するアプリケーションから要求があった場合に、前記第1の署名者情報と前記第2の署名者情報を比較する比較部をさらに有し、
    前記復号処理部は、前記第1の署名者情報と前記第2の署名者情報とが同一であった場合に、前記暗号化データを復号して復号後のデータを、前記要求を発生したアプリケーションに引き渡す
    ことを特徴とする請求項3に記載のデータ処理装置。
  5. 前記通信部は、第1の時点で第1の情報を前記サーバから受信し、前記第1の時点よりも後の第2の時点で第2の情報を前記サーバから受信し、
    前記鍵生成部は、前記第1の情報と前記識別情報とに基づいて第1の鍵を生成し、前記第2の情報と前記識別情報とに基づいて第2の鍵を生成し、
    前記暗号化処理部は、前記第1の鍵を用いてデータを暗号化して第1の暗号化データを生成した後、前記第1の鍵を用いて前記第1の暗号化データを復号したデータを、前記第2の鍵を用いて暗号化して第2の暗号化データを生成する
    ことを特徴とする請求項1〜請求項4のいずれか一項に記載のデータ処理装置。
  6. 前記通信部は、前記サーバを起点として確立された通信により前記第2の時点で前記第2の情報を前記サーバから受信することを特徴とする請求項5に記載のデータ処理装置。
  7. 前記通信部は、前記サーバとの通信の際に暗号化通信を行うことを特徴とする請求項1〜請求項6のいずれか一項に記載のデータ処理装置。
  8. サーバと通信を行い、暗号化および復号に用いる鍵の生成に用いる情報を前記サーバから受信する通信部と、
    前記サーバから受信した情報と、自装置を識別する識別情報とに基づいて鍵を生成する鍵生成部と、
    前記鍵を用いてデータを暗号化して暗号化データを生成する暗号化処理部と、
    としてコンピュータを機能させるためのプログラム。
  9. 前記鍵生成部と前記暗号化処理部と、としてコンピュータを機能させるためのネイティブコードを含むことを特徴とする請求項8に記載のプログラム。
  10. 難読化が施されていることを特徴とする請求項9に記載のプログラム。
  11. 互いに通信を行うデータ処理装置とサーバとを備えたデータ処理システムであって、
    前記データ処理装置は、
    前記サーバと通信を行い、暗号化および復号に用いる鍵の生成に用いる情報を前記サーバから受信する第1の通信部と、
    前記サーバから受信した情報と、自装置を識別する識別情報とに基づいて前記鍵を生成する鍵生成部と、
    前記鍵を用いてデータを暗号化して暗号化データを生成する暗号化処理部と、
    を有し、
    前記サーバは、前記データ処理装置と通信を行い、前記鍵の生成に用いる情報を前記データ処理装置へ送信する第2の通信部を有する
    ことを特徴とするデータ処理システム。
JP2010289191A 2010-12-27 2010-12-27 データ処理装置、プログラム、およびデータ処理システム Pending JP2012138729A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010289191A JP2012138729A (ja) 2010-12-27 2010-12-27 データ処理装置、プログラム、およびデータ処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010289191A JP2012138729A (ja) 2010-12-27 2010-12-27 データ処理装置、プログラム、およびデータ処理システム

Publications (1)

Publication Number Publication Date
JP2012138729A true JP2012138729A (ja) 2012-07-19

Family

ID=46675815

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010289191A Pending JP2012138729A (ja) 2010-12-27 2010-12-27 データ処理装置、プログラム、およびデータ処理システム

Country Status (1)

Country Link
JP (1) JP2012138729A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017502582A (ja) * 2014-02-21 2017-01-19 サムスン ペイ、インコーポレイテッド 支払データのセキュアなプロビジョニング、伝送、及び認証のための方法、装置、及びシステム
WO2020076234A1 (en) * 2018-10-12 2020-04-16 Aioz Pte Ltd Apparatus and method for controlling data access

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11205738A (ja) * 1998-01-09 1999-07-30 Canon Inc 画像入力装置および方法並びに記憶媒体
JP2004336719A (ja) * 2003-04-16 2004-11-25 Nec Corp 携帯端末及びその情報管理方法、並びにコンピュータ・プログラム
JP2005295408A (ja) * 2004-04-02 2005-10-20 Tepco Uquest Ltd 暗号化装置,復号化装置,暗号化復号化システム,鍵情報更新システム
WO2006120938A1 (ja) * 2005-05-09 2006-11-16 Matsushita Electric Industrial Co., Ltd. メモリカード、アプリケーションプログラム保持方法、及び保持プログラム
JP2009164996A (ja) * 2008-01-09 2009-07-23 Kyocera Mita Corp 情報処理装置
JP2009181238A (ja) * 2008-01-29 2009-08-13 Fujitsu Ltd ファイルアクセス方法およびファイルシステム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11205738A (ja) * 1998-01-09 1999-07-30 Canon Inc 画像入力装置および方法並びに記憶媒体
JP2004336719A (ja) * 2003-04-16 2004-11-25 Nec Corp 携帯端末及びその情報管理方法、並びにコンピュータ・プログラム
JP2005295408A (ja) * 2004-04-02 2005-10-20 Tepco Uquest Ltd 暗号化装置,復号化装置,暗号化復号化システム,鍵情報更新システム
WO2006120938A1 (ja) * 2005-05-09 2006-11-16 Matsushita Electric Industrial Co., Ltd. メモリカード、アプリケーションプログラム保持方法、及び保持プログラム
JP2009164996A (ja) * 2008-01-09 2009-07-23 Kyocera Mita Corp 情報処理装置
JP2009181238A (ja) * 2008-01-29 2009-08-13 Fujitsu Ltd ファイルアクセス方法およびファイルシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN7014001764; 'ContentProviderでデータを共有する その2' プログラミング雑記 , 20101205 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017502582A (ja) * 2014-02-21 2017-01-19 サムスン ペイ、インコーポレイテッド 支払データのセキュアなプロビジョニング、伝送、及び認証のための方法、装置、及びシステム
WO2020076234A1 (en) * 2018-10-12 2020-04-16 Aioz Pte Ltd Apparatus and method for controlling data access

Similar Documents

Publication Publication Date Title
US12086259B2 (en) Secure over-the-air firmware upgrade
US10554420B2 (en) Wireless connections to a wireless access point
US20220014524A1 (en) Secure Communication Using Device-Identity Information Linked To Cloud-Based Certificates
KR102018971B1 (ko) 네트워크 액세스 디바이스가 무선 네트워크 액세스 포인트를 액세스하게 하기 위한 방법, 네트워크 액세스 디바이스, 애플리케이션 서버 및 비휘발성 컴퓨터 판독가능 저장 매체
EP3592014B1 (en) Method and device for adding authentication algorithm program
WO2018050081A1 (zh) 设备身份认证的方法、装置、电子设备及存储介质
TW201709691A (zh) 用於支援多用戶集群身份驗證的方法和設備
JP2018517367A (ja) サービスプロバイダ証明書管理
EP4096147A1 (en) Secure enclave implementation of proxied cryptographic keys
WO2018099407A1 (zh) 账户认证登录方法及装置
WO2016173174A1 (zh) 锁网数据升级方法和装置
JP7079528B2 (ja) サービス提供システム及びサービス提供方法
KR102171377B1 (ko) 로그인 제어 방법
EP2930962A1 (en) Encryption/decryption method, system and device
JP3770173B2 (ja) 共通鍵管理システムおよび共通鍵管理方法
JP5665592B2 (ja) サーバ装置並びにコンピュータシステムとそのログイン方法
CN115459929B (zh) 安全验证方法、装置、电子设备、系统、介质和产品
CN113163399A (zh) 一种终端与服务器的通信方法和装置
US11258871B2 (en) Message push method and terminal
CN114143198B (zh) 固件升级的方法
JP2012138729A (ja) データ処理装置、プログラム、およびデータ処理システム
KR100993333B1 (ko) 인터넷 접속 도구를 고려한 사용자 인증 방법 및 시스템
KR20080083418A (ko) 챕 챌린지 메시지를 이용한 네트워크 액세스 인증 방법 및시스템.
CN111163466B (zh) 5g用户终端接入区块链的方法、用户终端设备及介质
JP2018011191A (ja) 機器リスト作成システムおよび機器リスト作成方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130821

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130821

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140610

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140730

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140731

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141028