JP6357091B2 - 情報処理装置、及びコンピュータプログラム - Google Patents

情報処理装置、及びコンピュータプログラム Download PDF

Info

Publication number
JP6357091B2
JP6357091B2 JP2014245228A JP2014245228A JP6357091B2 JP 6357091 B2 JP6357091 B2 JP 6357091B2 JP 2014245228 A JP2014245228 A JP 2014245228A JP 2014245228 A JP2014245228 A JP 2014245228A JP 6357091 B2 JP6357091 B2 JP 6357091B2
Authority
JP
Japan
Prior art keywords
key
identification information
computer program
key identification
information
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.)
Active
Application number
JP2014245228A
Other languages
English (en)
Other versions
JP2016111440A (ja
Inventor
宣広 奥井
宣広 奥井
有登 仲野
有登 仲野
渡辺 龍
龍 渡辺
三宅 優
優 三宅
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 JP2014245228A priority Critical patent/JP6357091B2/ja
Publication of JP2016111440A publication Critical patent/JP2016111440A/ja
Application granted granted Critical
Publication of JP6357091B2 publication Critical patent/JP6357091B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理装置、及びコンピュータプログラムに関する。
従来、セキュアエレメント(Secure Element)として、ハードウェアで構成されるSIMカード(Subscriber Identity Module Card)やTPM(Trusted Platform Module)などが知られている(例えば非特許文献1参照)。セキュアエレメントは耐タンパー性(Tamper Resistant)を有する。SIMカードやTPMには、ハードウェアの製造時に、アプリケーションの認証や通信の暗号化などに用いられる鍵が安全に格納される。
また、ソフトウェアでセキュアエレメントを構成する技術が検討されている(例えば非特許文献2参照)。非特許文献2には、メモリ保護技術として、CPU(Central Processing Unit)がメモリにアクセスする際のアドレスパターンが特定されないように保護する技術が開示される。
GlobalPlatform,"GlobalPlatform’s Proposition for NFC Mobile: Secure Element Management and Messaging"2009年,インターネット<URL:http://www.globalplatform.org/documents/GlobalPlatform_NFC_Mobile_White_Paper.pdf> Yuto Nakano, Carlos Cid, Shinsaku Kiyomoto, and Yutaka Miyake,"Memory Access Pattern Protection for Resource-Constrained Devices", Smart Card Research and Advanced Applications, Lecture Notes in Computer Science Vol.7771, pp.188-202, 2012. Boaz Barak, Oded Goldreich, Rusell Impagliazzo, Steven Rudich, Amit Sahai, Salil Vadhan, and Ke Yang, "On the (Im)possibility of Obfuscating Programs", CRYPTO 2001, Lecture Notes in Computer Science Volume 2139, 2001, pp 1-18, 2001.
一般的に、ソフトウェアは複数の情報処理装置に対して共通化される。このため、セキュアエレメントを構成するソフトウェアも、複数の情報処理装置に対して共通化されることが好ましい。しかし、ハードウェアで構成されるSIMカードやTPM等のセキュアエレメントは、自己に固有の鍵を例えば製造時から格納し、認証サーバ等の他の装置との間で鍵を共有することができるが、セキュアエレメントを構成するソフトウェアが複数の情報処理装置に対して共通化される場合には、情報処理装置へソフトウェアを配信する前から、情報処理装置に固有の鍵をソフトウェアに格納することができない。
このため、セキュアエレメントを構成するソフトウェアが複数の情報処理装置に対して共通化される場合、セキュアエレメントを構成するソフトウェアを実行する情報処理装置が、セキュアエレメントにより鍵を生成し、生成された鍵を情報処理装置以外の他の装置との間で共有することが要求される。
本発明は、このような事情を考慮してなされたものであり、セキュアエレメントを構成するソフトウェアを実行する情報処理装置が、セキュアエレメントにより鍵を生成し、生成された鍵を情報処理装置以外の他の装置との間で共有することができる、情報処理装置、及びコンピュータプログラムを提供することを課題とする。
(1)本発明の一態様は、デバイス固有情報を記憶するデバイス固有情報記憶部と、第1の鍵が格納され且つ前記第1の鍵が難読化されているコンピュータプログラムを記憶するプログラム記憶部と、データを記憶するデータ記憶部と、前記データ記憶部を使用して前記コンピュータプログラムを実行する演算処理部と、を備え、前記コンピュータプログラムは、前記演算処理部からアクセスする前記データ記憶部内の記憶場所の偏りを減らすメモリ保護ステップと、前記デバイス固有情報から鍵識別情報を生成する鍵識別情報生成ステップと、前記第1の鍵を使用して前記鍵識別情報を暗号化し、生成された暗号化鍵識別情報を前記コンピュータプログラムのデータ領域に格納する鍵識別情報暗号化ステップと、第2の鍵を生成する鍵生成ステップと、前記第1の鍵を使用して前記第2の鍵を暗号化し、生成された暗号化鍵を前記コンピュータプログラムのデータ領域に格納する鍵暗号化ステップと、前記暗号化鍵識別情報と前記暗号化鍵とを、前記第1の鍵を有するサーバ装置へ送信する鍵情報送信ステップと、を前記演算処理部に実行させる、情報処理装置である。
(2)本発明の一態様は、上記(1)の情報処理装置において、前記コンピュータプログラムは、所定の時機に前記デバイス固有情報から被検証鍵識別情報を生成する被検証鍵識別情報生成ステップと、前記第1の鍵と前記コンピュータプログラムのデータ領域に格納される暗号化鍵識別情報とを使用して前記被検証鍵識別情報を検証する鍵識別情報検証ステップと、前記被検証鍵識別情報の検証が失敗した場合に所定のエラー処理を実行するエラー処理実行ステップと、を前記演算処理部に実行させる、情報処理装置である。
(3)本発明の一態様は、上記(2)の情報処理装置において、前記コンピュータプログラムは、前記被検証鍵識別情報の検証が成功した場合に前記サーバ装置との間で認証処理を実行する認証処理実行ステップ、を前記演算処理部に実行させる、情報処理装置である。
(4)本発明の一態様は、上記(1)から(3)のいずれかの情報処理装置において、前記演算処理部は、データを一時的に保持するレジスタを有し、前記データ記憶部及び前記レジスタを使用して前記コンピュータプログラムを実行し、前記コンピュータプログラムは、マスク値を使用してデータをマスクし、マスクされたデータを前記レジスタに書き込み、前記レジスタに保持されるマスクされたデータ同士の演算を実行し、実行された演算の結果に対してマスクを解除するレジスタ保護ステップ、を前記演算処理部に実行させる、情報処理装置である。
(5)本発明の一態様は、第1の鍵が格納され且つ前記第1の鍵が難読化されているコンピュータプログラムであり、コンピュータに、前記コンピュータがアクセスするデータ記憶部内の記憶場所の偏りを減らすメモリ保護ステップと、前記コンピュータが有するデバイス固有情報から鍵識別情報を生成する鍵識別情報生成ステップと、前記第1の鍵を使用して前記鍵識別情報を暗号化し、生成された暗号化鍵識別情報を前記コンピュータプログラムのデータ領域に格納する鍵識別情報暗号化ステップと、第2の鍵を生成する鍵生成ステップと、前記第1の鍵を使用して前記第2の鍵を暗号化し、生成された暗号化鍵を前記コンピュータプログラムのデータ領域に格納する鍵暗号化ステップと、前記暗号化鍵識別情報と前記暗号化鍵とを、前記第1の鍵を有するサーバ装置へ送信する鍵情報送信ステップと、を実行させるためのコンピュータプログラムである。
(6)本発明の一態様は、上記(5)のコンピュータプログラムにおいて、所定の時機に前記デバイス固有情報から被検証鍵識別情報を生成する被検証鍵識別情報生成ステップと、前記第1の鍵と前記コンピュータプログラムのデータ領域に格納される暗号化鍵識別情報とを使用して前記被検証鍵識別情報を検証する鍵識別情報検証ステップと、前記被検証鍵識別情報の検証が失敗した場合に所定のエラー処理を実行するエラー処理実行ステップと、を前記コンピュータに実行させるためのコンピュータプログラムである。
(7)本発明の一態様は、上記(6)のコンピュータプログラムにおいて、前記被検証鍵識別情報の検証が成功した場合に前記サーバ装置との間で認証処理を実行する認証処理実行ステップ、を前記コンピュータに実行させるためのコンピュータプログラムである。
(8)本発明の一態様は、上記(5)から(7)のいずれかのコンピュータプログラムにおいて、前記コンピュータは、データを一時的に保持するレジスタを有し、前記コンピュータプログラムは、マスク値を使用してデータをマスクし、マスクされたデータを前記レジスタに書き込み、前記レジスタに保持されるマスクされたデータ同士の演算を実行し、実行された演算の結果に対してマスクを解除するレジスタ保護ステップ、を前記コンピュータに実行させるためのコンピュータプログラムである。
本発明によれば、セキュアエレメントを構成するソフトウェアを実行する情報処理装置が、セキュアエレメントにより鍵を生成し、生成された鍵を情報処理装置以外の他の装置との間で共有することができる。
本発明の第1実施形態に係る認証システムを示す構成図である。 本発明の第1実施形態に係る情報処理装置1を示すハードウェア構成図である。 本発明の第1実施形態に係る情報処理装置1を示す機能構成図である。 本発明の第1実施形態に係る鍵共有処理を示すフローチャートである。 本発明の第2実施形態に係る情報処理装置1を示すハードウェア構成図である。 本発明の第2実施形態に係る情報処理装置1を示す機能構成図である。 本発明の第2実施形態に係る認証処理を示すフローチャートである。 本発明の第3実施形態に係る情報処理装置1を示す機能構成図である。 メモリ保護処理の例を示す説明図である。
以下、図面を参照し、本発明の実施形態について説明する。
[第1実施形態]
図1は、本発明の第1実施形態に係る認証システムを示す構成図である。図1において、情報処理装置1は、コンピュータプログラムを実行するコンピュータである。配信サーバ2は、情報処理装置1へ、プログラムSEを配信する。プログラムSEはコンピュータプログラムである。プログラムSEは、情報処理装置1にインストールされる。
プログラムSEは、通信回線を介して、配信サーバ2から情報処理装置1へ送信されてもよい。通信回線は、有線通信回線であってもよく、又は、無線通信回線であってもよい。プログラムSEは、コンピュータが読み取り可能な記録媒体に記録され、当該記録媒体から情報処理装置1に読み取られてもよい。
プログラムSEは、第1の鍵Kaを格納する。第1の鍵Kaは、プログラムSEの中で難読化されている。第1の鍵KaはプログラムSEのソースコード中に格納される。第1の鍵Kaを難読化するために、プログラムSEのソースコードにおいて、変数名の変更、ダミー変数の追加、関数名の変更などが行われる。これにより、プログラムSEがコンパイルされたデータを逆コンパイルしても、逆コンパイルされたデータから第1の鍵Kaを取得することが困難になる。さらに、プログラムSEのソースコードにおいて、文字列の暗号化、プログラムロジックの変更を行ってもよい。これにより、さらに、第1の鍵KaをプログラムSEから取得することが困難になる。コンピュータプログラムの難読化技術については、例えば非特許文献3に記載される。
プログラムSEはデータ領域AreaDを有する。
配信サーバ2は、第1の鍵Kaを認証サーバ3へ送信する。認証サーバ3は第1の鍵Kaを保持する。これにより、第1の鍵Kaは、プログラムSEを保持する情報処理装置1と、認証サーバ3との間で共有される。情報処理装置1と認証サーバ3とは、通信回線を介してデータを送受する。通信回線は、有線通信回線であってもよく、又は、無線通信回線であってもよい。
図2は、本発明の第1実施形態に係る情報処理装置1を示すハードウェア構成図である。図2において、情報処理装置1は、CPU_11(演算処理部)と、プログラム記憶部12と、データ記憶部13と、デバイス固有情報記憶部14と、操作部15と、表示部16と、通信部17とを備える。これら各部はデータを交換できるように構成される。
CPU_11は、コンピュータプログラムを実行する。プログラム記憶部12は、CPU_11によって実行されるコンピュータプログラムを記憶する。プログラム記憶部12は、プログラムSEを記憶する。データ記憶部13はデータを記憶する。CPU_11は、データ記憶部13にアクセスする。CPU_11は、データ記憶部13を使用してコンピュータプログラムを実行する。デバイス固有情報記憶部14は、デバイス固有情報を記憶する。
操作部15は、キーボード、テンキー、マウス等の入力デバイスから構成され、利用者の操作に応じたデータ入力を行う。表示部16は、液晶表示装置等の表示デバイスから構成され、データ表示を行う。また、データ入力とデータ表示の両方が可能なタッチパネルを備えてもよい。
通信部17は、通信ネットワークを介して他の装置と通信する。通信ネットワークを介して通信する方法として、携帯電話ネットワークや無線LAN(Local Area Network)等の無線通信ネットワークを利用して通信する方法、公衆電話ネットワークなどの有線通信ネットワークを利用して通信する方法などが挙げられる。
情報処理装置1として、汎用のコンピュータ装置を使用してもよく、又は、専用のハードウェア装置として構成してもよい。また、情報処理装置1として、スマートフォン等の携帯通信端末装置、タブレット型のコンピュータ装置、据置き型のパーソナルコンピュータ装置などを使用してもよい。
デバイス固有情報として、情報処理装置1の製造番号、情報処理装置1のハードウェア識別番号、情報処理装置1のOS(Operating System)又はアプリケーションソフトウェアが発生する情報処理装置1に固有の値、情報処理装置1が専用的に使用する通信回線に関する識別番号などが挙げられる。ハードウェア識別番号として、例えばMAC(Media Access Control)アドレスが挙げられる。OSが発生する情報処理装置1に固有の値として、同一アプリケーションソフトウェアの開発で同一デバイスである時に発生する同一の値を利用することが挙げられる。情報処理装置1として携帯通信端末装置を使用する場合、デバイス固有情報として、携帯通信端末装置の電話番号を利用することが挙げられる。情報処理装置1として携帯通信端末装置を使用する場合、デバイス固有情報として、携帯通信端末装置のSIMカードに格納される加入者情報を利用することが挙げられる。
なお、操作部15及び表示部16については、情報処理装置1とは別個に設けてもよい。例えば、情報処理装置1が、通信回線を介して、情報処理装置1の外部に設けられた入力デバイスや表示デバイスと接続してもよい。また、通信部17は、情報処理装置1とは別個に設けてもよい。例えば、情報処理装置1として据置き型のパーソナルコンピュータ装置を使用し、パーソナルコンピュータ装置が、パーソナルコンピュータ装置とは別個の携帯通信端末装置を使用して通信するようにしてもよい。
図3は、本発明の第1実施形態に係る情報処理装置1を示す機能構成図である。図3に示される各部の機能は、図2に示すCPU_11がプログラム記憶部12に記憶されるプログラムSEを実行することにより実現される。図3において、情報処理装置1は、メモリ保護部21と、鍵識別情報生成部22と、鍵識別情報暗号化部23と、鍵生成部24と、鍵暗号化部25と、鍵情報送信部26と、を備える。
メモリ保護部21は、CPU_11からアクセスするデータ記憶部13内の記憶場所の偏りを減らすメモリ保護処理を実行する。鍵識別情報生成部22は、デバイス固有情報記憶部14に記憶されるデバイス固有情報から鍵識別情報を生成する。鍵識別情報暗号化部23は、第1の鍵Kaを使用して鍵識別情報を暗号化し、暗号化鍵識別情報を生成する。鍵識別情報暗号化部23は、生成された暗号化鍵識別情報をプログラムSEのデータ領域AreaDに格納する。
鍵生成部24は、第2の鍵を生成する。鍵暗号化部25は、第1の鍵Kaを使用して第2の鍵を暗号化し、暗号化鍵を生成する。鍵暗号化部25は、生成された暗号化鍵をプログラムSEのデータ領域AreaDに格納する。鍵情報送信部26は、暗号化鍵識別情報と暗号化鍵とを、通信部17により認証サーバ3へ送信する。認証サーバ3は、第1の鍵Kaを有する。
次に、図4を参照して、第1実施形態に係る情報処理装置1の動作を説明する。図4は、本発明の第1実施形態に係る鍵共有処理を示すフローチャートである。
(ステップS1)鍵識別情報生成部22は、デバイス固有情報記憶部14に記憶されるデバイス固有情報Uidから鍵識別情報を生成する。ここでは、鍵識別情報の生成方法の例として、ハッシュ関数を使用してハッシュ値を生成する。ハッシュ関数として、例えばSHA−2(256bit)を使用する。鍵識別情報生成部22は、ハッシュ関数「SHA−2(256bit)」を使用して、デバイス固有情報Uidからハッシュ値hash(Uid)を生成する。ハッシュ値hash(Uid)が鍵識別情報となる。
(ステップS2)鍵識別情報暗号化部23は、第1の鍵Kaを使用して鍵識別情報hash(Uid)を暗号化し、暗号化鍵識別情報Ka(hash(Uid))を生成する。鍵識別情報暗号化部23は、生成された暗号化鍵識別情報Ka(hash(Uid))をプログラムSEのデータ領域AreaDに格納する。
(ステップS3)鍵生成部24は、第2の鍵を生成する。ここでは、第2の鍵の生成方法として、乱数を発生する。鍵生成部24は、乱数r_keyを発生する。
(ステップS4)鍵暗号化部25は、第1の鍵Kaを使用して、第2の鍵である乱数r_keyを暗号化し、暗号化鍵Ka(r_key)を生成する。鍵暗号化部25は、生成された暗号化鍵Ka(r_key)をプログラムSEのデータ領域AreaDに格納する。
(ステップS5)鍵情報送信部26は、暗号化鍵識別情報Ka(hash(Uid))と暗号化鍵Ka(r_key)とを、通信部17により認証サーバ3へ送信する。
認証サーバ3は、情報処理装置1から、暗号化鍵識別情報Ka(hash(Uid))と暗号化鍵Ka(r_key)と受信する。認証サーバ3は、情報処理装置1から受信された暗号化鍵識別情報Ka(hash(Uid))を、自己が保持する第1の鍵Kaで復号し、鍵識別情報hash(Uid)を取得する。認証サーバ3は、情報処理装置1から受信された暗号化鍵Ka(r_key)を、自己が保持する第1の鍵Kaで復号し、第2の鍵r_keyを取得する。認証サーバ3は、復号結果である鍵識別情報hash(Uid)と第2の鍵r_keyとを関連付けて保持する。これにより、第2の鍵r_keyは、情報処理装置1と認証サーバ3との間で共有される。
上述した図4の鍵共有処理において、CPU_11がデータ記憶部13にアクセスする際には、メモリ保護部21がメモリ保護処理を実行する。メモリ保護処理によって、CPU_11からアクセスするデータ記憶部13内の記憶場所の偏りが減る。これにより、データ記憶部13へのアクセスのパターン(例えば、メモリへアクセスする際のアドレスパターン)を特定することが困難になる。この結果として、データ記憶部13へのアクセスが解析されることによって第1の鍵Kaに関する処理が特定されること、を防止できる。
上述した第1実施形態によれば、情報処理装置1がプログラムSEを実行することによって、メモリ保護部21の機能が実現される。メモリ保護部21がメモリ保護処理を実行することによって、セキュアエレメントが構成される。情報処理装置1は、CPU_11がプログラムSEを実行することによって構成されたセキュアエレメントにより第2の鍵r_keyを生成し、生成された第2の鍵r_keyを情報処理装置1以外の他の装置である認証サーバ3との間で共有することができる。
[第2実施形態]
本発明の第2実施形態を説明する。第2実施形態に係る認証システムの構成は、上述した図1の構成と同じである。
図5は、本発明の第2実施形態に係る情報処理装置1を示すハードウェア構成図である。図5において、図2の各部に対応する部分には同一の符号を付け、その説明を省略する。第2実施形態に係る情報処理装置1の構成は、上述した図2の構成と同じである。但し、プログラムSEのデータ領域AreaDは、暗号化鍵識別情報Ka(hash(Uid))及び暗号化鍵Ka(r_key)を格納する。暗号化鍵識別情報Ka(hash(Uid))は、上述した第1実施形態における図4のステップS2で生成されてプログラムSEのデータ領域AreaDに格納される。暗号化鍵Ka(r_key)は、上述した第1実施形態における図4のステップS4で生成されてプログラムSEのデータ領域AreaDに格納される。
上述した図4の鍵共有処理は、1回のみ実行される。プログラムSEは、図4の鍵共有処理を実行済みであることを示す履歴情報を有する。プログラムSEは、履歴情報がある場合には図4の鍵共有処理を実行しないように、構成される。ある情報処理装置1(A)にインストールされたプログラムSEが情報処理装置1(A)で実行されると、プログラムSEは、図4の鍵共有処理を実行済みであることを示す履歴情報を生成し、生成した履歴情報を自己で保持する。これにより、情報処理装置1(A)で再度、プログラムSEが実行されても、履歴情報があるので、図4の鍵共有処理は実行されない。したがって、情報処理装置1(A)で保持されるプログラムSEのデータ領域AreaDに格納される暗号化鍵識別情報Ka(hash(Uid))及び暗号化鍵Ka(r_key)は変更されない。
例えば、ある情報処理装置1(A)にインストールされたプログラムSEが情報処理装置1(A)で実行された後にコピーされ、プログラムSEのコピーが他の情報処理装置1(B)にインストールされたとする。この場合、情報処理装置1(B)にインストールされたプログラムSEは、情報処理装置1(A)のデバイス固有情報Uidから生成された暗号化鍵識別情報Ka(hash(Uid))をデータ領域AreaDに格納すると共に、履歴情報を有する。これにより、情報処理装置1(B)では、履歴情報によって、図4の鍵共有処理が実行されない。このため、情報処理装置1(B)に保持されるプログラムSEのデータ領域AreaDは、情報処理装置1(A)のデバイス固有情報Uidから生成された暗号化鍵識別情報Ka(hash(Uid))を格納したままとなる。
図6は、本発明の第2実施形態に係る情報処理装置1を示す機能構成図である。図6に示される各部の機能は、図5に示すCPU_11がプログラム記憶部12に記憶される第2実施形態のプログラムSEを実行することにより実現される。図6において、図3の各部に対応する部分には同一の符号を付け、その説明を省略する。図6に示される情報処理装置1は、図3に示される情報処理装置1に対して、さらに、被検証鍵識別情報生成部31と、鍵識別情報検証部32と、エラー処理実行部33と、認証処理実行部34と、を備える。
被検証鍵識別情報生成部31は、所定の時機に、デバイス固有情報記憶部14に記憶されるデバイス固有情報から被検証鍵識別情報を生成する。鍵識別情報検証部32は、第1の鍵KaとプログラムSEのデータ領域AreaDに格納される暗号化鍵識別情報とを使用して、被検証鍵識別情報を検証する。エラー処理実行部33は、鍵識別情報検証部32による被検証鍵識別情報の検証が失敗した場合に、所定のエラー処理を実行する。認証処理実行部34は、鍵識別情報検証部32による被検証鍵識別情報の検証が成功した場合に、認証サーバ3との間で認証処理を実行する。
次に、図7を参照して、第2実施形態に係る情報処理装置1の動作を説明する。図7は、本発明の第2実施形態に係る認証処理を示すフローチャートである。
(ステップS11)被検証鍵識別情報生成部31は、所定の時機に、デバイス固有情報記憶部14に記憶されるデバイス固有情報Uid’から被検証鍵識別情報を生成する。該所定の時機として、プログラムSEの起動時が挙げられる。被検証鍵識別情報生成部31は、例えば、プログラムSEの起動時に毎回、デバイス固有情報記憶部14に記憶されるデバイス固有情報Uid’から被検証鍵識別情報を生成する。
被検証鍵識別情報の生成方法は、鍵識別情報生成部22による鍵識別情報の生成方法と同じである。ここでは、鍵識別情報及び被検証鍵識別情報の生成方法の例として、ハッシュ関数を使用してハッシュ値を生成する。被検証鍵識別情報生成部31は、例えばプログラムSEの起動時に、デバイス固有情報記憶部14に記憶されるデバイス固有情報Uid’からハッシュ値hash(Uid’)を生成する。ハッシュ値hash(Uid’)が被検証鍵識別情報となる。
(ステップS12)鍵識別情報検証部32は、第1の鍵KaとプログラムSEのデータ領域AreaDに格納される暗号化鍵識別情報Ka(hash(Uid))とを使用して、被検証鍵識別情報hash(Uid’)を検証する。この検証方法として以下の例1,2が挙げられる。
(検証方法の例1)鍵識別情報検証部32は、第1の鍵Kaを使用して被検証鍵識別情報hash(Uid’)を暗号化し、暗号化被検証鍵識別情報Ka(hash(Uid’))を生成する。鍵識別情報検証部32は、生成された暗号化被検証鍵識別情報Ka(hash(Uid’))と、プログラムSEのデータ領域AreaDに格納される暗号化鍵識別情報Ka(hash(Uid))とを比較する。この比較の結果、両者が一致した場合は被検証鍵識別情報hash(Uid’)の検証が成功である。一方、両者が不一致した場合は被検証鍵識別情報hash(Uid’)の検証が失敗である。
(検証方法の例2)鍵識別情報検証部32は、第1の鍵Kaを使用して、プログラムSEのデータ領域AreaDに格納される暗号化鍵識別情報Ka(hash(Uid))を復号化する。鍵識別情報検証部32は、暗号化鍵識別情報Ka(hash(Uid))の復号結果と、被検証鍵識別情報hash(Uid’)とを比較する。この比較の結果、両者が一致した場合は被検証鍵識別情報hash(Uid’)の検証が成功である。一方、両者が不一致した場合は被検証鍵識別情報hash(Uid’)の検証が失敗である。
被検証鍵識別情報hash(Uid’)の検証が失敗する場合として、ある情報処理装置1(A)にインストールされたプログラムSEがコピーされ、プログラムSEのコピーが他の情報処理装置1(B)にインストールされた場合が挙げられる。この場合、情報処理装置1(B)にインストールされたプログラムSEのデータ領域AreaDは、情報処理装置1(A)のデバイス固有情報Uidから生成された暗号化鍵識別情報Ka(hash(Uid))を格納する。一方、上述したステップS11では、情報処理装置1(B)のデバイス固有情報Uid’から、被検証鍵識別情報hash(Uid’)が生成される。情報処理装置1(A)のデバイス固有情報Uidと情報処理装置1(B)のデバイス固有情報Uid’とは異なる。これにより、上述したステップS12において、プログラムSEのデータ領域AreaDに格納される暗号化鍵識別情報Ka(hash(Uid))に基づく被検証鍵識別情報hash(Uid’)の検証が失敗する。
プログラムSEのデータ領域AreaDに格納される暗号化鍵識別情報Ka(hash(Uid))が生成された情報処理装置1と、被検証鍵識別情報hash(Uid’)が生成された情報処理装置1と、が同一である場合には、上述したステップS12において、プログラムSEのデータ領域AreaDに格納される暗号化鍵識別情報Ka(hash(Uid))に基づく被検証鍵識別情報hash(Uid’)の検証が成功する。これは、プログラムSEのデータ領域AreaDに格納される暗号化鍵識別情報Ka(hash(Uid))と、被検証鍵識別情報hash(Uid’)とが、同じデバイス固有情報「Uid=Uid’」から生成されたからである。
(ステップS13)ステップS12の検証結果が成功である場合にはステップS14に進む。一方、ステップS12の検証結果が失敗である場合にはステップS15に進む。
(ステップS14)認証処理実行部34は、プログラムSEのデータ領域AreaDに格納される暗号化鍵識別情報Ka(hash(Uid))を通信部17により認証サーバ3へ送信し、認証サーバ3に対して認証要求を行う。認証サーバ3は、情報処理装置1から受信された暗号化鍵識別情報Ka(hash(Uid))を、自己が保持する第1の鍵Kaで復号し、鍵識別情報hash(Uid)を取得する。認証サーバ3は、取得された鍵識別情報hash(Uid)に基づいて、自己が保持する第2の鍵r_keyを取得する。これにより、認証サーバ3と認証処理実行部34とは、両者で共有される第2の鍵r_keyを使用して認証処理を実行する。この認証処理の例として、チャレンジ・レスポンス方法が挙げられる。
チャレンジ・レスポンス方法では、まず、認証サーバ3が乱数Rを発生する。認証サーバ3は、チャレンジ値として乱数Rを情報処理装置1へ送信する。情報処理装置1において、認証処理実行部34は、通信部17により認証サーバ3からのチャレンジ値Rを受信する。認証処理実行部34は、プログラムSEのデータ領域AreaDに格納される暗号化鍵Ka(r_key)を第1の鍵Kaで復号化し、第2の鍵r_keyを取得する。認証処理実行部34は、第2の鍵r_keyを使用してチャレンジ値Rを暗号化し、暗号化チャレンジ値r_key(R)を生成する。認証処理実行部34は、通信部17により、レスポンス値として暗号化チャレンジ値r_key(R)を認証サーバ3へ送信する。認証サーバ3は、情報処理装置1から受信された暗号化チャレンジ値r_key(R)を、自己が保持する第2の鍵r_keyで復号化する。認証サーバ3は、暗号化チャレンジ値r_key(R)の復号結果と、チャレンジ値Rとを比較する。該比較結果が一致である場合、情報処理装置1の認証は成功である。一方、該比較結果が不一致である場合、情報処理装置1の認証は失敗である。
(ステップS15)エラー処理実行部33は、ステップS12の検証結果が失敗である場合に、所定のエラー処理を実行する。所定のエラー処理として、例えば、CPU_11によるプログラムの実行を全て又は一部を停止させることが挙げられる。
上述した第2実施形態によれば、ある情報処理装置1(A)にインストールされたプログラムSEがコピーされ、プログラムSEのコピーが他の情報処理装置1(B)にインストールされたことを検出することができる。これにより、ソフトウェアのコピーを使用したなりすましを防止する効果が得られる。
[第3実施形態]
本発明の第3実施形態を説明する。第3実施形態に係る認証システムの構成は、上述した図1の構成と同じである。第3実施形態に係る情報処理装置1のハードウェア構成は、上述した図2又は図5の構成と同じである。第3実施形態では、上述した第1実施形態又は第2実施形態の情報処理装置1の機能構成に対して、さらに、レジスタ保護部を追加する。以下、第2実施形態の情報処理装置1の機能構成に対してレジスタ保護部を追加する場合を例に挙げて説明するが、第1実施形態の情報処理装置1の機能構成に対してレジスタ保護部を追加する場合も同様である。
図8は、本発明の第3実施形態に係る情報処理装置1を示す機能構成図である。図8に示される各部の機能は、図5に示すCPU_11がプログラム記憶部12に記憶される第3実施形態のプログラムSEを実行することにより実現される。図8において、図6の各部に対応する部分には同一の符号を付け、その説明を省略する。図8に示される情報処理装置1は、図6に示される情報処理装置1に対して、さらに、レジスタ保護部40を備える。
レジスタ保護部40は、秘匿したいデータがCPU_11内のレジスタから取得されないように保護するレジスタ保護処理を実行する。CPU_11内のレジスタはデータを一時的に保持する。CPU_11は、CPU_11内のレジスタを使用してコンピュータプログラムを実行する。CPU_11内のレジスタで保持されるデータは、デバッガなどのツールを用いることにより、外部から取得できる。このため、秘匿したいデータについては、レジスタ保護処理によって、レジスタ上に現れないようにする。
レジスタ保護部40が実行するレジスタ保護処理を説明する。レジスタ保護部40は、マスク値を使用してデータをマスクし、マスクされたデータをレジスタに書き込む。レジスタ保護部40は、レジスタに保持されるマスクされたデータ同士の演算を実行し、実行された演算の結果に対してマスクを解除する。このレジスタ保護処理によって、秘匿したいデータがレジスタ上に現れないようにする。
上述した第3実施形態によれば、レジスタ保護処理によって、秘匿したいデータがCPU_11内のレジスタから取得されることを防止できる。これにより、情報処理装置1において、CPU_11がプログラムSEを実行することによって構成されるセキュアエレメントの耐タンパー性の向上を図ることができる。
なお、第1実施形態の情報処理装置1の機能構成に対してレジスタ保護部を追加する場合、上述した図3に示される構成に対して、さらにレジスタ保護部40が追加される。
[メモリ保護処理の例]
図9を参照して、メモリ保護部21が実行するメモリ保護処理の例を説明する。図9は、メモリ保護処理の例を示す説明図である。
(ステップS20)メモリ保護部21は、データ記憶部13の記憶領域内に履歴101の領域とバッファ102の領域とを生成する。
(ステップS21)メモリ保護部21は、アクセス対象のデータが履歴101又はバッファ102に格納されているかを確認する。
(ステップS22)メモリ保護部21は、ステップS21の確認の結果、アクセス対象のデータがバッファ102に格納されていない場合、アクセス対象のデータをバッファ102にコピーする。メモリ保護部21は、ステップS21の確認の結果、アクセス対象のデータが履歴101に格納されている場合、アクセス対象のデータを履歴101からバッファ102にコピーする。
(ステップS23,S24)メモリ保護部21は、バッファ102に格納されるアクセス対象のデータにアクセスする。該アクセスの際に、メモリ保護部21は、データ記憶部13の記憶領域の中から無作為に選択した記憶場所へのアクセスを追加する。該アクセスの際に、メモリ保護部21は、履歴101に格納されるデータの記憶場所へのアクセスを追加する。メモリ保護部21は、アクセスしたデータ及び記憶場所の組を履歴101に格納する。
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
上述した実施形態では、情報処理装置1は第2の鍵r_keyを、認証サービスを提供する認証サーバ3との間で共有したが、第2の鍵r_keyを共有する他の装置は認証サービス以外の他のサービスを提供するサーバ装置であってもよい。情報処理装置1と第2の鍵r_keyを共有するサーバ装置として、例えば、電子商取引サービスを提供するサーバ装置、動画データ等のコンテンツを配信するサーバ装置、クレジットカード等による決済サービスを提供するサーバ装置などが挙げられる。
プログラムSEは、他のアプリケーションソフトウェアに組み込まれていてもよい。
また、上述した情報処理装置1の機能を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
1…情報処理装置、2…配信サーバ、3…認証サーバ、11…CPU、12…プログラム記憶部、13…データ記憶部、14…デバイス固有情報記憶部、15…操作部、16…表示部、17…通信部、21…メモリ保護部、22…鍵識別情報生成部、23…鍵識別情報暗号化部、24…鍵生成部、25…鍵暗号化部、26…鍵情報送信部、31…被検証鍵識別情報生成部、32…鍵識別情報検証部、33…エラー処理実行部、34…認証処理実行部、40…レジスタ保護部、AreaD…データ領域、Ka…第1の鍵、SE…プログラム

Claims (8)

  1. デバイス固有情報を記憶するデバイス固有情報記憶部と、
    第1の鍵が格納され且つ前記第1の鍵が難読化されているコンピュータプログラムを記憶するプログラム記憶部と、
    データを記憶するデータ記憶部と、
    前記データ記憶部を使用して前記コンピュータプログラムを実行する演算処理部と、
    を備え、
    前記コンピュータプログラムは、
    前記演算処理部からアクセスする前記データ記憶部内の記憶場所の偏りを減らすメモリ保護ステップと、
    前記デバイス固有情報から鍵識別情報を生成する鍵識別情報生成ステップと、
    前記第1の鍵を使用して前記鍵識別情報を暗号化し、生成された暗号化鍵識別情報を前記コンピュータプログラムのデータ領域に格納する鍵識別情報暗号化ステップと、
    第2の鍵を生成する鍵生成ステップと、
    前記第1の鍵を使用して前記第2の鍵を暗号化し、生成された暗号化鍵を前記コンピュータプログラムのデータ領域に格納する鍵暗号化ステップと、
    前記暗号化鍵識別情報と前記暗号化鍵とを、前記第1の鍵を有するサーバ装置へ送信する鍵情報送信ステップと、
    を前記演算処理部に実行させる、
    情報処理装置。
  2. 前記コンピュータプログラムは、
    所定の時機に前記デバイス固有情報から被検証鍵識別情報を生成する被検証鍵識別情報生成ステップと、
    前記第1の鍵と前記コンピュータプログラムのデータ領域に格納される暗号化鍵識別情報とを使用して前記被検証鍵識別情報を検証する鍵識別情報検証ステップと、
    前記被検証鍵識別情報の検証が失敗した場合に所定のエラー処理を実行するエラー処理実行ステップと、
    を前記演算処理部に実行させる、
    請求項1に記載の情報処理装置。
  3. 前記コンピュータプログラムは、
    前記被検証鍵識別情報の検証が成功した場合に前記サーバ装置との間で認証処理を実行する認証処理実行ステップ、
    を前記演算処理部に実行させる、
    請求項2に記載の情報処理装置。
  4. 前記演算処理部は、データを一時的に保持するレジスタを有し、前記データ記憶部及び前記レジスタを使用して前記コンピュータプログラムを実行し、
    前記コンピュータプログラムは、
    マスク値を使用してデータをマスクし、マスクされたデータを前記レジスタに書き込み、前記レジスタに保持されるマスクされたデータ同士の演算を実行し、実行された演算の結果に対してマスクを解除するレジスタ保護ステップ、
    を前記演算処理部に実行させる、
    請求項1から3のいずれか1項に記載の情報処理装置。
  5. 第1の鍵が格納され且つ前記第1の鍵が難読化されているコンピュータプログラムであり、
    コンピュータに、
    前記コンピュータがアクセスするデータ記憶部内の記憶場所の偏りを減らすメモリ保護ステップと、
    前記コンピュータが有するデバイス固有情報から鍵識別情報を生成する鍵識別情報生成ステップと、
    前記第1の鍵を使用して前記鍵識別情報を暗号化し、生成された暗号化鍵識別情報を前記コンピュータプログラムのデータ領域に格納する鍵識別情報暗号化ステップと、
    第2の鍵を生成する鍵生成ステップと、
    前記第1の鍵を使用して前記第2の鍵を暗号化し、生成された暗号化鍵を前記コンピュータプログラムのデータ領域に格納する鍵暗号化ステップと、
    前記暗号化鍵識別情報と前記暗号化鍵とを、前記第1の鍵を有するサーバ装置へ送信する鍵情報送信ステップと、
    を実行させるためのコンピュータプログラム。
  6. 所定の時機に前記デバイス固有情報から被検証鍵識別情報を生成する被検証鍵識別情報生成ステップと、
    前記第1の鍵と前記コンピュータプログラムのデータ領域に格納される暗号化鍵識別情報とを使用して前記被検証鍵識別情報を検証する鍵識別情報検証ステップと、
    前記被検証鍵識別情報の検証が失敗した場合に所定のエラー処理を実行するエラー処理実行ステップと、
    を前記コンピュータに実行させるための請求項5に記載のコンピュータプログラム。
  7. 前記被検証鍵識別情報の検証が成功した場合に前記サーバ装置との間で認証処理を実行する認証処理実行ステップ、
    を前記コンピュータに実行させるための請求項6に記載のコンピュータプログラム。
  8. 前記コンピュータは、データを一時的に保持するレジスタを有し、
    前記コンピュータプログラムは、
    マスク値を使用してデータをマスクし、マスクされたデータを前記レジスタに書き込み、前記レジスタに保持されるマスクされたデータ同士の演算を実行し、実行された演算の結果に対してマスクを解除するレジスタ保護ステップ、
    を前記コンピュータに実行させるための請求項5から7のいずれか1項に記載のコンピュータプログラム。
JP2014245228A 2014-12-03 2014-12-03 情報処理装置、及びコンピュータプログラム Active JP6357091B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014245228A JP6357091B2 (ja) 2014-12-03 2014-12-03 情報処理装置、及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014245228A JP6357091B2 (ja) 2014-12-03 2014-12-03 情報処理装置、及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2016111440A JP2016111440A (ja) 2016-06-20
JP6357091B2 true JP6357091B2 (ja) 2018-07-11

Family

ID=56124942

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014245228A Active JP6357091B2 (ja) 2014-12-03 2014-12-03 情報処理装置、及びコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP6357091B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11533172B2 (en) 2020-01-08 2022-12-20 Samsung Electronics Co., Ltd. Apparatus and method for securely managing keys

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102604046B1 (ko) 2016-11-28 2023-11-23 삼성전자주식회사 전자 기기의 프로그램 관리 방법 및 장치
GB2588647B (en) * 2019-10-30 2022-01-19 Arm Ip Ltd Attestation for constrained devices
GB2588648B (en) * 2019-10-30 2022-01-19 Arm Ip Ltd Iterative key generation for constrained devices

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050108171A1 (en) * 2003-11-19 2005-05-19 Bajikar Sundeep M. Method and apparatus for implementing subscriber identity module (SIM) capabilities in an open platform
US7590867B2 (en) * 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US7587595B2 (en) * 2005-05-13 2009-09-08 Intel Corporation Method and apparatus for providing software-based security coprocessors
US8259948B2 (en) * 2007-12-29 2012-09-04 Intel Corporation Virtual TPM key migration using hardware keys
BR112014002606A2 (pt) * 2011-08-03 2017-02-21 Oasys Water Inc sistemas e métodos para aperfeiçoar fluxo em sistemas de membrana osmoticamente conduzidos
BR112014016536A8 (pt) * 2012-01-09 2017-07-04 Koninklijke Philips Nv dispositivo de máquina virtual; sistema de execução distribuído; método de máquina virtual; e programa de computador

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11533172B2 (en) 2020-01-08 2022-12-20 Samsung Electronics Co., Ltd. Apparatus and method for securely managing keys

Also Published As

Publication number Publication date
JP2016111440A (ja) 2016-06-20

Similar Documents

Publication Publication Date Title
CN108781210B (zh) 具有可信执行环境的移动设备
US9722794B2 (en) System and method for remote access, remote digital signature
CN102271037B (zh) 基于在线密钥的密钥保护装置
KR101712784B1 (ko) 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법
US8181028B1 (en) Method for secure system shutdown
US20080025503A1 (en) Security method using self-generated encryption key, and security apparatus using the same
JP2016520265A (ja) セキュリティパラメータに基づくワーキングセキュリティキーの生成
JP2007512787A (ja) トラステッド・モバイル・プラットフォーム・アーキテクチャ
CN111008094B (zh) 一种数据恢复方法、设备和系统
CN103946858A (zh) 应用数据的解密和加密
JP7256862B2 (ja) 保護されたコンテナ間のセキュア通信方法およびそのシステム
CN104956620B (zh) 用于验证和密钥交换的方法、装置和计算机可读存储媒体
JP6357091B2 (ja) 情報処理装置、及びコンピュータプログラム
CN106209346B (zh) 白盒密码技术交错查找表
JP6199712B2 (ja) 通信端末装置、通信端末関連付け方法、及びコンピュータプログラム
JP2008033512A (ja) セキュリティチップ及びプラットフォーム
US11432156B2 (en) Security unit for an IoT device and method for running one or more applications for the secured exchange of data with one or more servers which provide web services
US9432186B2 (en) Password-based key derivation without changing key
KR101473656B1 (ko) 모바일 데이터 보안 장치 및 방법
JP2014160383A (ja) 携帯端末装置及び復号処理プログラム
KR101203804B1 (ko) 보안 이동형 저장장치 및 그 제어 방법
JP2005303370A (ja) 半導体チップ、起動プログラム、半導体チッププログラム、記憶媒体、端末装置、及び情報処理方法
KR100952300B1 (ko) 저장매체의 안전한 데이터 관리를 위한 단말 장치, 메모리및 그 방법
KR20160050605A (ko) 서비스 서버 및 그 동작 방법
US10102353B2 (en) Digital resource protection method and apparatus, and digital resource using method and apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170829

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180413

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180529

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180615

R150 Certificate of patent or registration of utility model

Ref document number: 6357091

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150