(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下、上記課題を解決する実施形態例について、添付図面を参照しながら説明する。
【0013】
<システム構成>
図1は、本実施形態にかかる認証システム構成の一例を示す図である。
図1に示す認証システム100は、製品本体装置1、端末2、及び管理装置3を有する。
【0014】
製品本体装置1は、認証対象となる製品本体である。製品本体装置1は端末2との相互認証を実施し、相互認証に成功した場合、製品本体のアプリケーション実行が許可される。つまり、製品本体装置1は、端末2との相互認証に成功した場合、製品本体装置1として正常に動作することができる。
【0015】
端末2は、製品本体装置1を認証するための端末装置である。例えば、端末2は、正規の保守員が保持する携帯型端末(ハンディターミナル)として実現される。また、端末2は、後述するように、複数の正規な製品本体装置1が登録された製品IDリストを有しており、保守員は1台の端末2を用いて複数の製品本体装置1に対し相互認証を実施することが可能となっている。
【0016】
管理装置3は、製品本体装置1及び端末2を管理するための管理用の装置である。例えば、管理装置3は、保守員が保持する端末2内の各種データ(例えば、上述の製品IDリスト等)を更新する。また、例えば、製品本体装置1と端末2との認証に関する履歴(ログ)を収集する。
【0017】
続いて、再び
図1を参照し、製品本体装置1及び端末2の有する機能について説明する。
【0018】
まず、製品本体装置1は、保守部101、アプリ102、RAM103を有する。
【0019】
保守部101は、製品本体装置1の認証ソフトウェアに相当し、端末2との相互認証を行うことで、製品本体装置1の動作を制御する機能を有している。例えば、保守部101は、端末2との相互認証により、保守部(認証ソフトウェア)101自体が改ざんされていないことを確認させると共に、且つ、端末2の正規な認証デバイスの存在を確認する。保守部101は、何れもが確認された場合、端末2より取得される鍵を用いることで、暗号化されているアプリ102を復号化しこれを実行する。この点、詳細は再度後述する。
【0020】
アプリ102は、製品本体装置1としての機能を実現するためのアプリケーションである。アプリ102は、初期状態において暗号化されている。このため、アプリ102は、保守部101による復号化を前提として、RAM103に展開され実行される。なお、暗号化されている状態で、アプリ102を実行することはできない。
【0021】
RAM103は、揮発性メモリにより実現され、アプリ102を展開し実行するための作業領域としての機能を有している。
【0022】
次に、端末2は、監視部201、耐タンパメモリ202、認証デバイス203、履歴用メモリ204を有する。
【0023】
監視部201は、製品本体装置1との相互認証を行う機能を有している。例えば、監視部201は、製品本体装置1との相互認証により、製品本体装置1の保守部(認証ソフトウェア)101自体が改ざんされていないことを確認すると共に、且つ、製品本体装置1に対し端末2の正規な認証デバイスの存在を確認させる。監視部201は、何れもが確認された場合、製品本体装置1に対して、アプリ102を復号化する鍵を渡すことで、アプリケーションを実行させる。この点、詳細は再度後述する。
【0024】
耐タンパメモリ202は、製品本体装置1と端末2との相互認証に用いられる各種データを格納するためのメモリである。例えば、管理装置3を介して入力される「製品IDリスト」、「履歴用認証キー」、「鍵情報」、「保守部(写し)」、及び「有効期限情報」を保持する。なお、耐タンパ(性)とは、一つに、格納されるデータなどに対する解析の困難さをいう。よって、耐タンパメモリ202は、外部から読み取りにくいようにその機密性を高めた構造となっており、また、外部から無理にデータを読み取ろうとすると、データが破壊される機構が設けられている。また、耐タンパメモリ202では、不正な本体製品装置1を検知した場合や、「有効期限情報」で規定されている有効期限を経過した場合についても、メモリ内に格納される全データが消去されるようになっている。よって、端末2の盗難時などでも耐タンパメモリ202内の各種データを保護するので、例えば、端末2の模造品等を用いて製品本体装置1との相互認証が行われるといった事態を防止できる。
【0025】
認証デバイス203は、製品本体装置1の認証を行うための認証デバイス(例えば、セキュリティチップ等)である。本実施形態にかかる認証デバイス203は、製品本体装置1の製造コスト低減の観点から、製品本体装置1側ではなく端末2側に設けられている。なお、これに対し、従来の認証デバイスは、製品本体装置1の基盤上などに設けられており、製品本体装置1がアプリケーションを実行する際、基板上の認証デバイスとの認証プロセスを経てアプリケーションの実行が可能となる。
【0026】
履歴用メモリ204は、監視部201からの相互認証に関する履歴(ログ)を格納するためのメモリである。履歴用メモリ204の履歴は、管理装置3により読み出され、管理等に活用される。なお、履歴用メモリ204に対して書き込みを行う場合、耐タンパメモリ202の「履歴用認証キー」が必要である。但し、読み出しを行う場合、「履歴用認証キー」は必要ない。
【0027】
以上、これらの各機能部は、製品本体装置1及び端末2を構成するコンピュータのCPU、ROM、RAM等のハードウェア資源上で実行されるコンピュータプログラムによって実現されるものである。「手段」、「モジュール」、「ユニット」、又は「回路」などと読替えてもよい。また、耐タンパメモリ202や履歴用メモリ204は、不揮発性メモリにより実現されうるが、揮発性メモリであっても本実施形態の目的を遂行しうる範囲内でデータを保持可能であればよい。
【0028】
(ハードウェア)
図2は、本実施形態にかかる製品本体装置1、端末2及び管理装置3のハードウェア構成の一例を示す図である。製品本体装置1、端末2及び管理装置3は、主要な構成として、CPU11、ROM12、RAM13、HDD14、インターフェース15、入力装置16、表示装置17、及び通信装置18を有する。
【0029】
CPU11は、マイクロプロセッサ及びその周辺回路から構成され、装置全体を制御する回路である。また、ROM12は、CPU11で実行される所定の制御プログラムを格納するメモリである。また、RAM13は、CPU11がROM12に格納された所定の制御プログラムを実行して各種の制御を行うときの作業領域として使用するメモリである。
【0030】
HDD14は、OSや各種プログラムを含む各種情報を格納する装置であり、不揮発性の記憶装置である。
【0031】
インターフェース15は、外部機器と接続するためのインターフェースである。
【0032】
入力装置16は、ユーザが各種入力操作を行うための装置である。
【0033】
表示装置17は、各種データを表示画面に表示する装置である。
【0034】
通信装置18は、ネットワークを介して他の機器との通信を行う装置である。有線ネットワークや無線ネットワークなど含む各種ネットワーク形態に応じた通信をサポートする。
【0035】
なお、上記ハードウェア構成はあくまで一例である。よって、特に製品本体装置1(例えば、自動販売機等)などは製品に応じて特有のハードウェアを有してよい。
【0036】
<事前準備>
次に、端末2に対する事前準備作業について説明する。管理者等は、保守員が製品本体装置1の認証を行うにあたり、例えば営業所毎に設置される管理装置3を用い、以下の通り、端末2のセットアップを行う。
【0037】
(1)管理者等は、管理装置3と端末2とを接続する。なお、管理装置3が端末2にアクセスする際、必要に応じて認証等を行ってよい。
【0038】
(2)管理装置3は、端末2の現在時刻を正確に調整(設定)する。
【0039】
(3)管理装置3は、端末2の耐タンパメモリ202内に「有効期限情報」を格納することで、耐タンパメモリ202の有効期限を設定する。耐タンパメモリ202では、「有効期限情報」で設定された有効期限を経過した場合、メモリに格納される全データが消去される。なお、有効期限情報は、具体的な年月日時分を指定してもよいし、有効とされる期間を指定してもよい。
【0040】
(4)管理装置3は、端末2の耐タンパメモリ202内に「製品IDリスト」、「履歴用認証キー」、「鍵情報」、「保守部(写し)」を格納する(書き込む)。
【0041】
「製品IDリスト」は、認証予定の製品本体装置1の有する製品IDのリストである。保守員は1台の端末2を用いて複数の製品本体装置1に対し認証を実施することが可能となっている。よって例えば、「製品IDリスト」には、保守先に設置される製品本体装置1の製品IDが複数登録される。
【0042】
「履歴用認証キー」は、監視201が履歴用メモリ204に履歴(ログ)の書込みを行う際に用いられるアクセス用の認証キーである。
【0043】
「鍵情報」は、製品本体装置1で暗号化されているアプリ102を復号化するための鍵及び鍵情報の有効期限である。
【0044】
「保守部(写し)」は、製品本体装置1に格納されているべき正規の保守部101と同一データの写しである。なお、保守部101は製品本体装置1の認証ソフトウェアで実現されるので、「保守部(写し)」は、同認証ソフトウェアと同一のソフトウェアデータである。
【0045】
以上、端末2のセットアップが完了すると、保守員は端末2を用いることで、製品本体装置1の認証を行えるようになる。なお、管理者等は、保守の観点から、端末2の履歴用メモリ204からそれまでに蓄積されている履歴(ログ)を読み出し取得してもよい。
【0046】
<情報処理>
(認証処理)
図3は、本実施形態にかかる認証処理を説明するシーケンス図(その1)である。上述の端末2のセットアップは完了しており、保守員は端末2を用いることで、製品本体装置1の認証を行うものである。以下詳しく説明する。
【0047】
S1:端末2の監視部201は、製品本体装置1の保守部101に対し、製品IDを要求する。
【0048】
S2:保守部101は、監視部201に対し、自装置の製品IDを応答する。なお、製品IDは、各装置が有する固有の識別子(シリアルID等)である。
【0049】
S3:監視部201は、耐タンパメモリ202から「製品リストID」を取得する。
【0050】
S4:監視部201は、「製品リストID」を取得すると、S2で取得した製品IDが「製品リストID」に登録されているか否かを判定することで、製品IDのチェックを行う。監視部201は、S2で取得した製品IDが「製品リストID」に登録されていない場合、製品本体装置1を非正規(不正)と判定する。
【0051】
S5:監視部201は、耐タンパメモリ202から「履歴用認証キー」を取得する。履歴用メモリ204に対して書き込みを行うには、耐タンパメモリ202の「履歴用認証キー」が必要だからである。
【0052】
S6:監視部201は、「履歴用認証キー」を用いて、履歴用メモリ204に対し、製品IDチェック履歴(ログ)として、S2で取得した製品IDとチェック結果(製品リストIDに登録あり又は登録なし)とを書き込む。なお、監視部201は、製品リストIDに登録なしとのチェック結果である場合、本シーケンスの処理をS6で終了させる。
【0053】
S7:次に、監視部201は、耐タンパメモリ202から「保守部(写し)」を取得する。
【0054】
S8:監視部201は、取得した「保守部(写し)」を用いて、「保守部(写し)」の全領域(全記憶領域)の中から、ランダムに、ある一部領域(一部記憶領域)を決定する。なお、一部領域は、「保守部(写し)」の全領域の中、特に保守部の主要部領域の中から、ランダムにある一部領域を決定してもよい。
【0055】
S9:監視部201は、保守部101に対し、S8で決定した一部領域を特定するための情報(例えば、その一部領域の位置する先頭アドレス、先頭アドレスからのデータ容量等)を指定パラメータとして、チャレンジ認証を要求する。
【0056】
S10:製品本体装置1の保守部101は、チャレンジ認証の要求を受け取ると、監視部201から受け取った一部領域を特定するための情報(例えば、その一部領域の位置する先頭アドレス、先頭アドレスからのデータ容量等)に基づいて、保守部101自身から、その一部領域データ(例えば、0101010・・・)を取得する。そして保守部101は、取得した一部領域データをハッシュ演算の入力として、チャレンジ値(ハッシュ値等)を生成する。
【0057】
S11:保守部101は、監視部201に対し、生成したチャレンジ値を応答する。
【0058】
S12:監視部201は、製品本体装置1の保守部101からチャレンジ値を受け取ると、受け取ったチャレンジ値が正しいかどうか確認することで、チャレンジ認証を実行する。
【0059】
まず、監視部201は、S7で取得した「保守部(写し)」から、S8で決定した一部領域データを取得する。そして監視部201は、取得したその一部領域データをハッシュ演算の入力として、チャレンジ期待値を生成する。そして監視部201は、生成したチャレンジ期待値と、S11で製品本体装置1の保守部101から受け取ったチャレンジ値とを比較し一致するか否かを判定する。監視部201は、生成したチャレンジ期待値と、受け取ったチャレンジ値とが一致しない場合、製品本体装置1を非正規(不正)と判定する。
【0060】
ここで、生成したチャレンジ期待値と、受け取ったチャレンジ値とが一致しない場合には、製品本体装置1側と端末2側とで、保守部の不整合が存在する。よって、監視部201は、この場合、製品本体装置1側の保守部101は改ざんされていると判定(検知)し、製品本体装置1を非正規(不正)と判定する。
【0061】
なお、「保守部(写し)」は保守部101の写しであるので、正規には本来同一であるはずである。よって、監視部201は、生成したチャレンジ期待値と、受け取ったチャレンジ値とが一致する場合、端末2(監視部201)は製品本体装置1(保守部101)を正規と判断する。
【0062】
図4は、本実施形態にかかるチャレンジ算出の概念図を示す図である。監視部201は、保守部の全領域中から、一部領域をランダムに決定する。なお、保守部101が改ざんされたことがクリティカルに影響する箇所を検証できるよう主要部領域の中から一部領域をランダムに決定するとよい。
【0063】
また、入力は、より改ざん検視品質の向上のため、一部領域データに加え、製品IDや現在日時刻などの情報を入れてもよい。現在日時刻に関しては、製品本体装置1と端末2とでどこまで時刻のずれを許容できるかが問題となるが、例えば、「年月日時分」までをハッシュ演算の入力対象とした場合、端末2(監視部201)側では、±1分の計3つの検証値でチャレンジ検証を行えば、2分以上の時刻のずれが発生した場合に、時刻改ざんを検知することができる。
【0064】
S13:次に、監視部201は、S11で受け取ったチャレンジ値を、認証デバイス203に渡す。
【0065】
S14:認証デバイス203は、監視部201からチャレンジ値を受け取ると、認証デバイス203の有する認証キー(例えば、対称キー)を用いて、チャレンジ値から不可逆のレスポンス値を生成する。なお、製品本体装置1側の保守部101も、認証デバイス203の認証キーと対になる認証キーを有している。
【0066】
S15:認証デバイス203は、生成したレスポンス値を監視部201に応答する。
【0067】
S16:監視部201は、保守部101に対し、S12でのチャレンジ認証結果を送信すると共に、認証デバイス203により生成されたレスポンス値をパラメータとしてレスポンス認証を要求する。
【0068】
S17:製品本体装置1の保守部101は、一致とのチャレンジ認証結果を受け取ると、端末2側が製品本体装置1側を認証(成功)したことを認識する。そしてその上で、レスポンス認証の要求を受け取ると、今度は、S10で生成したチャレンジ値に対してレスポンス値が正しいかどうか確認することで、製品本体装置1側が端末2側を認証するためのレスポンス認証を実行する。
【0069】
まず、保守部101は、保守部101の有する認証キー(例えば、対称キー)を用いて、S10で生成したチャレンジ値からレスポンス期待値を生成する。そして保守部101は、生成したレスポンス期待値と、S16で端末2の監視部201から受け取ったレスポンス値とを比較し一致するか否かを判定する。保守部101は、生成したレスポンス期待値と、受け取ったレスポンス値とが一致しない場合、製品本体装置1を非正規(不正)と判定する。そしてこの場合、監視部201は、端末2(認証デバイス203)を非正規(不正)と判定する。一方、監視部201は、生成したレスポンス期待値と、受け取ったレスポンス値とが一致する場合、製品本体装置1(保守部101)は端末2(認証デバイス203)を正規と判断する。
【0070】
なお、保守部101及び監視部201の有する認証キーが非対称キーの場合、監視部201は、公開キーを用いて、チャレンジ値からレスポンス値を生成する。一方、保守部101は、秘密キーを用いて、受け取ったレスポンス値からチャレンジ期待値を生成する。
保守部101は、チャレンジ値同士を比較し一致するか否かを判定してもよい。
【0071】
S18:保守部101は、監視部201に対し、S17でのレスポンス認証結果(一致又は不一致)を送信する。
【0072】
なお、S7〜S18の処理については、たとえ1回の実行だけでは問題なくとも、改ざん検知の品質を向上するため、繰り返し複数回実行し、実行分全てのチャレンジ認証及びレスポンス認証において、一致との認証結果を得るようにすることが望ましい。
【0073】
特にS7〜S12のステップは、製品本体装置1の保守部101(認証ソフトウェア)自体が改ざんされていないかどうかを確認するものである。ここで、保守部101中、ランダムな一部領域に基づいてチャレンジ認証を行うため、仮に改ざん部分がランダムな一部領域外に存在する場合、改ざんの存在を検知することはできない。その一方、保守部101中、全領域に基づいてチャレンジ認証を行えば、もれなく改ざんの存在を検知することはできるが、反面、その認証にかかる処理負荷は増大してしまう。
【0074】
よって、本実施形態では、一部領域をチャレンジ認証の対象領域とすることで処理負担を抑えると共に、複数回の実行により改ざん検知の品質を向上させるようにしたものである。また、一部領域は、常に固定の一部領域ではなくランダムな一部領域が決定されるので、これにより、改ざん検知の品質をより向上させることができる。なお、固定の一部領域が決定されるとすると、改ざん部分が固定の一部領域外に存在する場合、改ざんの存在を検知することはできないからである。
【0075】
S19:監視部201は、「履歴用認証キー」を用いて、履歴用メモリ204に対し、チャレンジ認証及びレスポンス認証履歴(ログ)として、S2で取得した製品IDと認証結果(一致又は不一致)とを書き込む。監視部201は、不一致との認証結果である場合、本シーケンスの処理をS19で終了させる。なお、上述したように、S19に至る前に、S7〜S18の処理は繰り返し複数回実行されていることが望ましい。
【0076】
図5は、本実施形態にかかる認証処理を説明するシーケンス図(その2)である。上述のS19に続くステップについて説明する。
【0077】
S20:端末2の監視部201は、S7で取得した「保守部(写し)」を用いて、改めて「保守部(写し)」の全領域の中から、ランダムにある一部領域を決定する。また、一部領域は、「保守部(写し)」の全領域の中、特に保守部の主要部領域の中から、ランダムにある一部領域を決定してもよい。
【0078】
S21:監視部201は、「保守部(写し)」から、S20で決定した一部領域データを取得する。そして監視部201は、取得したその一部領域データを用いて、通信鍵を生成する。通信鍵とは、製品本体装置1に「鍵情報」を安全に送信するための暗号化鍵である。
【0079】
S22:監視部201は、耐タンパメモリ202から「鍵情報」を取得する。
【0080】
S23:監視部201は、取得した「鍵情報」を、S21で生成した通信鍵で暗号化する。
【0081】
S24:監視部201は、保守部101に対し、S20で決定した一部領域を特定するための情報(例えば、その一部領域の位置する先頭アドレス、先頭アドレスからのデータ容量等)を指定パラメータとして、暗号化した「鍵情報」を送信する。
【0082】
S25:製品本体装置1の保守部101は、暗号化された「鍵情報」を受け取ると、監視部201から受け取った一部領域を特定するための情報(例えば、その一部領域の位置する先頭アドレス、先頭アドレスからのデータ容量等)に基づいて、保守部101自身から、一部領域データを取得する。そして保守部101は、取得したその一部領域データを用いて、通信鍵を生成する。この通信鍵とは、保守部101で暗号化された「鍵情報」を復号するための復号化鍵ある。
【0083】
S26:保守部101は、暗号化された「鍵情報」を、S25で生成した通信鍵で復号化する。
【0084】
S27:保守部101は、復号化した「鍵情報」でアプリ102を復号する。なお、
上述したように、アプリ102は、初期状態において暗号化されている。
【0085】
S28:保守部101は、復号したアプリ102をRAM103に展開することで、アプリ102を実行する。これにより、製品本体装置1が製品としての機能を実行(稼働)させることができる。
【0086】
なお、上述したように、「鍵情報」は、製品本体装置1で暗号化されているアプリ102を復号化するための鍵の他、鍵情報の有効期限を含んでいる。従って、保守部101は、「鍵情報」の有効期限を管理し、有効期限が切れた場合、アプリ102の実行を停止する。例えば、RAM103上に展開されているアプリ102を消去してよい。これにより、例えば、製品本体装置1が稼働中に盗難された場合でも、有効期限経過後には、製品本体装置1は製品としての機能を停止させることができる。
【0087】
また、保守部101は、「鍵情報」のうち、アプリ102を復号化するための鍵については、例えばS27の後に消去する。鍵の盗難を防止するためである。
【0088】
(端末2が耐タンパメモリ202をクリアするケース)
以上より、端末2が耐タンパメモリ202をクリア(消去)するケースは、以下の通りである。
【0089】
(a1)端末2が製品本体装置1を非正規(不正)と判断
・製品本体装置1から取得した製品IDが製品IDリストに登録なし
・製品本体装置1から取得得したチャレンジ値の認証結果が不一致(
図3のS12)
(a2)端末2の耐タンパメモリ202の有効期限切れ
(a3)端末2がタンパ検知(耐タンパメモリ202のこじ開け等)
(製品本体装置1がアプリ102を停止しRAM103をクリアするケース)
また、製品本体装置1がアプリ102を停止しRAM103をクリアするケースは、以下の通りである。
【0090】
(b1)製品本体装置1が端末2を非正規(不正)と判断
・端末2から取得したレスポンス値の認証結果が不一致(
図3のS17)
(b2)製品本体装置1の「鍵情報」の有効期限切れ
<総括>
本実施形態にかかる製品本体装置1は、デッドコピーを防ぐ手立てとしての認証デバイスを有しない。これにより、製品毎に認証デバイスを組み込まなくてよいので、製品の製造コストを低減することができる。一方、認証デバイスは端末2側で有しており、1台の端末2を用いて複数の製品本体装置1に対し認証を実施することが可能である。
【0091】
また、製品本体装置1と認証デバイス(端末2)とを分離したことに伴い、製品本体装置1及び認証デバイス(端末2)それぞれが正規品であることを確認するため、製品本体装置1及び端末2は相互認証を行う。これにより、製品本体装置1及び端末2のそれぞれが、非正規(不正)な相手を用いて認証がなされてしまうことを防止できる。
【0092】
以上のように、本実施形態によれば、製品の製造コストを低減しながら、認証デバイスを用いた正規品認証を行える認証システム等を提供することが可能である。なお、本発明は、特定の実施形態例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、実施形態例の構成要素を全部又は複数を組み合わせることも可能である。