以下、本発明の実施形態について図面を用いて説明する。
<第1実施形態>
[個人認証システム1の外観]
図1は、本実施形態における個人認証システムの外観を模式的に示している。図示のように、本実施形態における個人認証システム1は、サーバ10、パーソナルコンピュータ(PC)20、認証デバイス30、設置台40を備えている。
サーバ10は、ネットワーク5を介してPC20と通信するようになっている。ネットワーク5は、例えば、インターネットやイントラネット等である。
PC20は、PC本体、ディスプレイ、キーボード、マウスを備えている。なお、PC20は、認証装置の一例である。
認証デバイス30は、設置台40に設置されている。設置台40は、スピーカプラグコード41、マイクプラグコード42、電源コード47を備えている。スピーカプラグコード41の一端にはスピーカプラグ43が設けられている。マイクプラグコード42の一端にはマイクプラグ44が設けられている。設置台40は、認証デバイス30に電源を供給するとともに、PC20と認証デバイス30との間の通信を仲介するものである。なお、設置台40を省略して認証デバイス30をPC20にコード接続する構成とすることもできるが、この構成では認証デバイス30がPC20に接続されたまま放置された状態にされやすく、セキュリティ面からは認証デバイス30が設置台40に設置される構成が好ましい。また、認証デバイス30と設置台40との間で無線通信が可能な構成としてもよい。
なお、個人認証システム1は、後述するように、認証デバイス30を設定するための設定処理を行う認証デバイス設定器50を備えている。
[個人認証システム1のハードウェア構成]
図2は、本実施形態における個人認証システム1のハードウェア構成の一例を示す図である。図2において、個人認証システム1は、図1に示した構成に加えて、認証デバイス30を設定するための設定処理を行う認証デバイス設定器50を備えている。
サーバ10は、全体の動作を制御する制御部100を備えている。制御部100は、演算装置としてのCPU101、個人認証に用いられるプログラムやデータ等を記憶したROM102及びHDD106、CPU101のワークエリアとして使用されるRAM103、ネットワーク5を介してPC20と通信する通信インタフェース(IF)104、各要素間を接続するバス105を備えている。
PC20は、全体の動作を制御する制御部200を備えている。制御部200は、演算装置としてのCPU201、個人認証に用いられるプログラムやデータ等を記憶したROM202及びHDD209、CPU201のワークエリアとして使用されるRAM203、ネットワーク5を介してPC20と通信する通信IF204を備えている。また、PC20は、利用者が操作するキーボードやマウス等の操作部205、所定の画像を表示する表示部206、アナログの音響信号の入出力を行う音響入出力部207、各要素間を接続するバス208を備えている。音響入出力部207は、スピーカ出力ジャック207a及びマイク入力ジャック207bを備えている。
認証デバイス30は、全体の動作を制御する制御部300を備えている。制御部300は、演算装置としてのCPU301、個人認証に用いられるプログラムやデータ等を記憶したROM302、CPU301のワークエリアとして使用されるRAM303を備えている。なお、RAM303は、後述する周波数パターンデータ等を記憶する不揮発性のメモリを含む。また、認証デバイス30は、アナログの音響信号の入出力を行う音響入出力部304、各要素間を接続するバス305を備えている。音響入出力部304は、スピーカ端子304a、マイク端子304bを備えている。
設置台40は、スピーカ端子304aと接続される端子45、マイク端子304bと接続される端子46を備えている。端子45は、スピーカプラグコード41の他端に設けられている。端子46は、マイクプラグコード42の他端に設けられている。
認証デバイス設定器50は、全体の動作を制御する制御部500を備えている。制御部500は、演算装置としてのCPU501、個人認証に用いられるプログラムやデータ等を記憶したROM502、CPU501のワークエリアとして使用されるRAM503を備えている。なお、RAM503は、後述する周波数パターンデータ等を記憶する不揮発性のメモリを含む。また、認証デバイス設定器50は、アナログの音響信号の入出力を行う音響入出力部504、各要素間を接続するバス505を備えている。音響入出力部504は、スピーカ出力ジャック504a及びマイク入力ジャック504bを備えている。
[個人認証システム1の機能構成]
次に、図3〜図6を用いて、個人認証システム1の機能構成について説明する。個人認証システム1は、図2に示したハードウェア構成及びプログラムによって、図3に示すような構成を有する。
図3に示した構成において、PC20と認証デバイス30との間、認証デバイス設定器50と認証デバイス30との間では、アナログの音響信号を使った音響通信が行われる。そこで、個人認証システム1の各構成を説明する前に、以下、音響通信に用いられる周波数パターン、ビット位置パターン及びバイト位置パターンについて、図4〜図6を用いて説明する。図4は、周波数パターン及びビット位置パターンの説明図である。図5は、バイト位置パターンの説明図である。図6は、音響通信で送受される音響信号の説明図である。
(周波数パターンの説明)
まず、周波数パターンについて説明する。図4の上段に示すように、本実施形態では、PC20と認証デバイス30との間、又は認証デバイス設定器50と認証デバイス30との間で行われる音響通信において使用される音響信号の周波数として、5kHzから20kHzまでの範囲において1kHz間隔で定めた16個の周波数が用意されている。16個の周波数のうち11個を指定周波数とし、残り5個をダミー周波数としている。これらの周波数の組み合わせをパターン化したものが周波数パターンである。
周波数パターンとしては、図4の中段に示すように、互いに異なる複数の周波数を含む周波数パターンA、B、C、・・・が予め定められている。本実施形態における周波数パターンの数は4,368である。以下、複数の周波数パターンのデータを周波数パターンデータと呼び、複数の周波数パターンのいずれか1つを示す周波数パターンA、B等を周波数パターン情報と呼ぶ。
図4において、例えば、後述する認証処理部13が、音響通信において使用される音響信号の周波数として、パターンAの周波数パターンを決定した場合には、パターンAは、○印で示した10kHzから20kHzまでの11個の指定周波数と、×印で示した5kHzから9kHzまでの5個のダミー周波数と、を含む。なお、ダミー周波数は、常に5個が使用されるわけではなく、使用される周波数の数は抽選ごとに変動させれば、さらにセキュリティ性を向上させることができて好ましい。
(ビット位置パターンの説明)
次に、ビット位置パターンについて説明する。このビット位置パターンは、後述するように、認証デバイス30において抽選により決定され、利用者の認証ごとに互いに異なるものである。
図4の下段に示すように、周波数パターンで示された各指定周波数に基づいて、音響通信で送受されるデータの各ビットが表されるようになっている。送受されるデータ例としては、認証キーのデータや、MACアドレスのデータ等であり、これらのデータを本実施形態では8ビットで表すものとする。
ビット位置パターンは、8ビットのデータ(b0〜b7)と、データの誤りを検出するための1ビットのパリティ(p)と、データとの同期をとるための1ビットのクロック0及び1(Clock0,1)と、を含む。これらの組合せは、1つの周波数パターン当たり、2,048とおりある。
したがって、周波数パターンとビット位置パターンとの組み合わせの数は、8,945,664である。以下、複数のビット位置パターンのデータをビット位置パターンデータと呼び、複数のビット位置パターンのいずれか1つを示すビット位置パターン1、2等をビット位置パターン情報と呼ぶ。
図4の下段に示すように、例えば、ビット位置パターン1は、周波数パターンのパターンAに基づいたビット位置パターンの1つである。このビット位置パターン1では、8ビットのデータ(b0〜b7)がそれぞれ10kHzから17kHzまでの1kHz間隔で定められた8個の周波数、パリティpが18kHzの周波数、クロック0が19kHzの周波数、クロック1が20kHzの周波数で指定される。この場合、例えば、10kHzの音響信号が存在している場合にはデータb0は1、存在していない場合にはデータb0は0として表すことができる。
(バイト位置パターンの説明)
次に、バイト位置パターンについて図5を用いて説明する。このバイト位置パターンは、後述するように、認証デバイス30において抽選により決定され、利用者の認証ごとに互いに異なるものである。
音響通信で送受されるデータは、図5に示すように構成されている。すなわち、送受されるデータは、データの先頭を示すSTX、例えば7バイトのデータ本体が格納されるデータ部、データの終了を示すETX及びBCC(Block Check Character)領域から構成されている。以下、複数のバイト位置パターンのデータをバイト位置パターンデータと呼び、複数のバイト位置パターンのいずれか1つを示すバイト位置パターンa、b等をバイト位置パターン情報と呼ぶ。
なお、データ部のバイト数を7バイトとした場合、バイト位置パターンの数は5,040である。この場合、周波数パターンとビット位置パターンとバイト位置パターンとの組み合わせの数は、約451億個である。
したがって、例えば、周波数パターンとビット位置パターンとバイト位置パターンとを組み合わせて、その組み合わせ内容を利用者の認証ごとに変更すれば、第三者が音響通信で送受されるデータを解読しようとしても規則性がないので解析できず、解読はほぼ不可能であると言うことができる。
(音響信号の説明)
次に、PC20と認証デバイス30との間で音響通信により送受される音響信号について図6を用いて説明する。なお、ここで述べる音響通信の技術は、先に発明者が提案した特開2011−248118号公報に記載の音響通信の技術を発展させたものである。
図6には、一例として音響信号110の波形例が示されている。この例では、音響信号110は200msの長さを有している。この音響信号110には、音データと、この音データと同期する同期音データとしてのクロック1又は0とが合成された信号が10バイト分連結されて含まれている。図示の例では、1バイトの音データのデータ長を20msとし、プログラムでサンプリング周期を10msに設定されている。
音響信号110は、01h〜0Ahの10バイト分のデータが含まれており、これらは、図5に示したデータ構成に対応している。すなわち、音響信号110の01hのデータはSTX、02h〜08hの7バイトのデータはデータ部、09hのデータはETX、0AhのデータはBCCにそれぞれ対応している。
図4に示した周波数のパターンA及びビット位置パターン1と、図5に示したバイト位置パターンaとを音響通信で使用する場合について説明する。この場合には、周波数10kHz〜17kHzの音響信号でそれぞれデータb0〜b7の音データが構成され、周波数18kHzの音響信号でパリティの音データが構成される。また、音データと同期するクロックとして、周波数19kHzの音響信号によるクロック0、又は周波数20kHzの音響信号によるクロック1が構成される。
図示の例では、1バイト目、3バイト目等の奇数バイト目の音データは、それぞれクロック0と同期して合成されており、2バイト目、4バイト目等の偶数バイト目の音データはクロック1と同期して合成されている。クロック0及び1は、20msごとに交互に現れ、いずれか一方のクロックがハイレベルになるごとに音データとクロック0又は1が合成されている。
音響信号110の受信時には、図4の下段に示すように、音響信号110のデータを例えば10msごとに取り込んでFFT処理を行って、クロック0及び1のいずれか一方がハイレベルになるごとに音データを取り込めば、合成データからクロック0又は1に同期した音データを合成データから抽出することができ、認証キーのデータや、MACアドレスのデータ等を取得することができる。
なお、前述の説明では1バイトの音データのデータ長を20msの固定長としたが、これに限定されず、1バイトの音データのデータ長を、例えば利用者の認証ごとに変化させてもよい。具体的には、例えば最初の認証時には3バイト目のみデータ長を40msとし、その他は20msとし、次の認証時には3バイト目及び6バイト目のデータ長を40msとし、その他は20msとするといった構成としてもよい。この構成によって、さらにセキュリティ性を向上させることができるという効果が得られる。
(サーバ10の構成)
図3に示すように、サーバ10は、認証キー保存部11、周波数パターンデータ保存部12、認証処理部13、通信部14を備えている。
認証キー保存部11は、個人認証システム1の利用者を認証するための認証キーを保存している。
周波数パターンデータ保存部12は、周波数パターンデータを保存している。この周波数パターンデータ保存部12は、周波数パターン保存手段の一例である。
認証処理部13は、認証に関する処理を行うようになっている。具体的には、認証処理部13は、周波数パターンデータ保存部12に保存された複数の周波数パターンから1つの周波数パターンを、例えば乱数による抽選により利用者の認証ごとに決定するようになっている。すなわち、抽選により決定された1つの周波数パターン(以下、「抽選周波数パターン」という)は利用者の認証ごとに互いに異なるものとなる。抽選周波数パターンは、PC20と認証デバイス30との間で行われる音響通信において使用される複数の指定周波数を含む。また、認証処理部13は、PC20を介して認証デバイス30から届いた認証キーと、認証キー保存部11が保存している認証キーとを比較し、比較結果をPC20に通知するようになっている。また、認証処理部13は、PC20を介して認証デバイス30から届いた認証キーを後述する指定データパターンに基づいて変換される前のデータ位置に戻すようになっている。なお、認証処理部13は、周波数パターン決定手段の一例である。
通信部14は、ネットワーク5を介してPC20と通信するようになっている。例えば、通信部14は、認証処理部13が決定した抽選周波数パターンをネットワーク5経由でPC20に通知するようになっている。この通信部14は、通知手段、第1の通知手段の一例である。
(PC20の構成)
図3に示すように、PC20は、通信部21、MAC(Media Access Control)アドレス保存部22、位置データ保存部23、初回登録部24、周波数パターン保存部25、認証処理部26、音響通信部27を備えている。
通信部21は、ネットワーク5を介してサーバ10と通信するようになっている。この通信部21は、第2の通知手段の一例である。
MACアドレス保存部22は、自装置(PC20)を識別するために予め定められた固有のMACアドレスを保存している。
位置データ保存部23は、認証デバイス30との間の音響通信において送受される各データのビット位置及びバイト位置を指定するためのビット位置パターンデータ及びバイト位置パターンデータを保存している。この位置データ保存部23は、PC20のプログラム内部に備えられており、外部から抜き出すことは困難となっている。ただし、これに限定されず、位置データ保存部23を装置内で所定のメモリに設ける構成としてもよい。
初回登録部24は、認証デバイス30が初めて使用される場合に、認証デバイス30に対してPC20のMACアドレスの初回登録を行うものである。PC20のMACアドレスの初回登録を行う場合には、初回登録部24は、後述するように、認証デバイス30から指定されたビット位置及びバイト位置に基づいた音響通信により認証デバイス30と通信するようになっている。
周波数パターン保存部25は、サーバ10から通知された抽選周波数パターン及び周波数パターン情報を保存するようになっている。なお、PC20が、周波数パターンデータを保存する構成を有してもよい。
認証処理部26は、認証に関する処理を行うようになっている。具体的には、認証処理部26は、サーバ10から通知された周波数パターン情報を認証デバイス30に通知する処理、認証デバイスに対して認証キーの要求を行う処理、認証キーの要求により受信した認証キーに基づいて利用者の認証を行う処理、自装置のMACアドレスが認証デバイス30に登録されているか否かの情報を取得する処理、認証デバイス30から届いた認証キーを後述する指定データパターンに基づいて変換される前のデータ位置に戻す処理等を実行するようになっている。なお、認証処理部26は、認証キー要求手段、認証手段、識別情報取得手段の一例である。
音響通信部27は、サーバ10から通知された抽選周波数パターン及び周波数パターン情報に含まれる指定周波数、認証デバイス30から通知されたビット位置パターン情報及びバイト位置パターン情報に基づいたアナログの音響信号により認証デバイス30と音響通信を行うようになっている。この音響通信部27は、第1の音響通信手段の一例である。
(認証デバイス30の構成)
認証デバイス30は、音響通信部31、位置データ保存部32、MACアドレス保存部33、認証キー保存部34、周波数パターンデータ保存部35、認証処理部36を備えている。
音響通信部31は、PC20から通知された抽選周波数パターンに含まれる指定周波数を有するアナログの音響信号に基づいてPC20と音響通信を行うようになっている。また、音響通信部31は、後述する認証デバイス30の設定処理において、所定の周波数パターン、ビット位置パターン及びバイト位置パターンに基づいて、認証デバイス設定器50と音響通信を行うようになっている。なお、音響通信部31は、第2の音響通信手段の一例である。
位置データ保存部32は、PC20又は認証デバイス設定器50との間の音響通信において送受される各データのビット位置及びバイト位置を指定するためのビット位置パターンデータ及びバイト位置パターンデータを保存している。この位置データ保存部32は、認証デバイス30のプログラム内に保存されており、外部から抜き出すことは困難となっている。ただし、これに限定されず、位置データ保存部32を装置内で所定のメモリに設ける構成としてもよい。
MACアドレス保存部33は、認証デバイス30を用いて個人認証を行う1つ以上のPC等の認証装置のMACアドレスを保存している。具体的には、MACアドレス保存部33は、個人認証用として登録されたPC20と、それ以外の登録されたPC(例えば2台)の各MACアドレスを保存している。この構成により、利用者は、PC20が故障した場合でも、他の登録済みのPCにより、個人認証を行うことができる。なお、MACアドレス保存部33は、識別情報保存手段の一例である。
認証キー保存部34は、個人認証システム1を利用する利用者を認証するための認証キーを保存している。この認証キーは、後述する認証デバイス30の設定処理において、認証デバイス設定器50から受信して保存される。
周波数パターンデータ保存部35は、図4の中段に示した周波数パターンデータを保存している。この周波数パターンデータは、後述する認証デバイス30の設定処理において、認証デバイス設定器50から受信して保存される。
認証処理部36は、認証に関する処理を行うようになっている。具体的には、認証処理部36は、PC20からのMACアドレスの読出要求に対応してMACアドレス保存部33からMACアドレスを読み出す処理、例えば抽選によりビット位置パターン及びバイト位置パターンを決定する処理、PC20からの認証キーの読出要求に対応して認証キー保存部34から認証キーを読み出す処理等を実行するようになっている。なお、認証処理部36は、ビット位置パターン決定手段、バイト位置パターン決定手段の一例である。
(認証デバイス設定器50の構成)
認証デバイス設定器50は、例えば、利用者が認証デバイス30を新規に入手した場合に、その利用者が認証デバイス30を使用して認証処理が行えるよう設定するためのものである。認証デバイス設定器50は、認証キー保存部51、周波数パターンデータ保存部52、位置データ保存部53、設定処理部54、音響通信部55を備えている。
認証キー保存部51は、サーバ10が保存している認証キーと同一のものを保存している。この認証キーは、後述する認証デバイス30の設定処理において、サーバ10から複写され保存される。
周波数パターンデータ保存部52は、サーバ10が保存している周波数パターンデータと同一のものを保存している。この周波数パターンデータは、後述する認証デバイス30の設定処理において、サーバ10から複写され保存される。
位置データ保存部53は、認証デバイス30との間の音響通信において送受される各データのビット位置及びバイト位置を指定するためのビット位置パターンデータ及びバイト位置パターンデータを保存している。この位置データ保存部53は、認証デバイス設定器50のプログラム内に保存されており、外部から抜き出すことは困難となっている。ただし、これに限定されず、位置データ保存部53を装置内で所定のメモリに保存する構成としてもよい。
設定処理部54は、後述する認証デバイス30の設定処理を実行するようになっている。
音響通信部55は、後述する認証デバイス30の設定処理において、所定の周波数パターン、ビット位置パターン及びバイト位置パターンに基づいて、認証デバイス30と音響通信を行うようになっている。
[個人認証システム1の動作]
次に、本実施形態における個人認証システム1の動作について図7〜図12を用いて説明する。図7は、個人認証システム1の動作を示すフローチャートである。図8〜図12は、図7のフローチャートに示す各処理のタイミングチャートである。
図7に示すように、個人認証システム1の動作は、認証デバイス設定器50が認証デバイス30を設定する認証デバイス30の設定処理(ステップS100)と、PC20が、認証デバイス30に対して行う認証デバイス30の初回登録処理(ステップS200)と、初期設定処理(ステップS300)と、MACアドレス確認処理(ステップS400)と、認証キー確認処理(ステップS500)と、を含む。
認証デバイス30の設定処理は、例えば、認証デバイス30が銀行口座の入出金時の認証に利用されるものであれば、その銀行において、対象の利用者が認証デバイス30を使用できるよう初期設定を行うためのものである。
認証デバイス30の初回登録処理は、PC20のMACアドレスを認証デバイス30に登録する処理であって、例えば、初めて認証デバイス30を使用する場合や、認証デバイス30に登録済みのMACアドレスを変更、追加する場合(PC等の認証装置を変更、追加する場合)に行う処理である。
初期設定処理、MACアドレス確認処理及び認証キー確認処理は、利用者が認証デバイス30を使用して個人認証を行う処理である。これらの処理は、前述の認証デバイス30の設定処理及び初回登録処理がなされた後に、利用者が個人認証を行う度に実行される処理である。
以下、図8〜図12に示したタイミングチャートに基づいて説明する。各タイミングチャートの動作は、サーバ10の制御部100、PC20の制御部200、認証デバイス30の制御部300、認証デバイス設定器50の制御部500が主体となって実行するものである。
(認証デバイス30の設定処理)
まず、認証デバイス30の設定処理を図8に基づいて説明する。
サーバ10において、認証キー保存部11に保存された認証キー、周波数パターンデータ保存部12に保存された周波数パターンデータが読み込まれる(ステップS101)。認証キーは、認証デバイス設定器50の認証キー保存部51に保存され、周波数パターンデータは、周波数パターンデータ保存部52に保存される(ステップS102)。
認証デバイス設定器50は、認証デバイス30に初期通信要求を行い、周波数パターン情報を通知する(ステップS103)。この通知は、予め定められた固定の周波数パターン、固定のビット位置パターン及び固定のバイト位置パターンでの音響通信により実行される。後述のステップS107も同様である。
認証デバイス30は、初期通信要求を受信し(ステップS104)、周波数パターン情報を得る。
認証デバイス30は、ビット位置パターンの抽選(ステップS105)、バイト位置パターンの抽選(ステップS106)を行い、抽選結果のビット位置パターン情報及びバイト位置パターン情報を音響通信により認証デバイス設定器50に通知する(ステップS107)。例えば、抽選結果が、図4に示したビット位置パターン2と、図5に示したバイト位置パターンcであれば、その旨が認証デバイス設定器50に通知される。
認証デバイス設定器50は、抽選結果のビット位置パターン情報及びバイト位置パターン情報を受信する(ステップS108)。
認証デバイス設定器50は、周波数パターンデータ保存部52から周波数パターンデータを読み込み(ステップS109)、認証デバイス30に周波数パターンデータの書込要求を音響通信により行う(ステップS110)。この書込要求から後述のステップS120までの間の音響通信では、認証デバイス設定器50及び認証デバイス30は、予め定められた固定の周波数パターンと、ステップS108で受信した抽選結果のビット位置パターン及びバイト位置パターンを用いる。
認証デバイス30は、周波数パターンデータの書込要求を受信し(ステップS111)、受信した周波数パターンデータを周波数パターンデータ保存部35に保存し(ステップS112)、周波数パターンデータの書込完了を音響通信により認証デバイス設定器50に通知する(ステップS113)。
認証デバイス設定器50は、周波数パターンデータの書込完了通知を受信し(ステップS114)、認証キー保存部51から認証キーを読み込み(ステップS115)、認証デバイス設定器50に認証キーの書込要求を音響通信により行う(ステップS116)。
認証デバイス30は、認証キーの書込要求を受信し(ステップS117)、受信した認証キーを認証キー保存部34に保存し(ステップS118)、認証キーの書込完了を音響通信により認証デバイス設定器50に通知する(ステップS119)。
認証デバイス設定器50は、認証キーの書込完了を受信し(ステップS120)、認証デバイス30の設定処理が終了する。
(認証デバイス30の初回登録処理)
次に、認証デバイス30の初回登録処理を図9に基づいて説明する。
PC20は、初回登録要求をサーバ10に通知する(ステップS201)。
サーバ10は、初回登録要求を受信し(ステップS202)、周波数パターンの抽選を行い(ステップS203)、抽選結果の抽選周波数パターン及び周波数パターン情報をネットワーク5経由でPC20に通知する(ステップS204)。例えば、抽選結果が、図4に示した周波数パターンBであれば、その旨及び周波数パターンBがPC20に通知される。
PC20は、抽選結果の抽選周波数パターン及び周波数パターン情報を受信し(ステップS205)、抽選周波数パターン及び周波数パターン情報を周波数パターン保存部25に保存する(ステップS206)。
PC20は、認証デバイス30に初期通信要求を行い、周波数パターン情報を通知する(ステップS207)。この通知は、予め定められた固定の周波数パターン、固定のビット位置パターン及び固定のバイト位置パターンでの音響通信により実行される。後述のステップS211も同様である。
認証デバイス30は、初期通信要求を受信し(ステップS208)、周波数パターン情報を得る。
認証デバイス30は、ビット位置パターンの抽選(ステップS209)、バイト位置パターンの抽選(ステップS210)を行い、抽選結果のビット位置パターン情報及びバイト位置パターン情報を音響通信によりPC20に通知する(ステップS211)。例えば、抽選結果が、図4に示したビット位置パターン1と、図5に示したバイト位置パターンbであれば、その旨がPC20に通知される。
PC20は、抽選結果のビット位置パターン情報及びバイト位置パターン情報を受信する(ステップS212)。
PC20は、MACアドレス保存部22からMACアドレスを読み込み(ステップS213)、認証デバイス30にMACアドレスの書込要求を音響通信により行う(ステップS214)。この書込要求と、後述のステップS219の音響通信では、PC20及び認証デバイス30は、サーバ10による抽選結果の抽選周波数パターンと、認証デバイス30による抽選結果のビット位置パターン及びバイト位置パターンを用いる。
認証デバイス30は、MACアドレスの書込要求を受信し(ステップS215)、受信したMACアドレスをMACアドレス保存部33に保存し(ステップS216)、MACアドレスの書込完了を音響通信によりPC20に通知する(ステップS217)。この通知には、MACアドレスの書き込みが正常に行われたか否かの情報が含まれる。例えば、MACアドレスを書き込む容量不足の場合には、MACアドレスの書き込みが正常に行われなかった旨が通知される。
PC20は、MACアドレスの書込完了通知を受信し(ステップS218)、MACアドレスの書込が正常に行われた場合には、認証デバイス30の初回登録が完了し、MACアドレスの書込が正常に行われなかった場合には、認証デバイス30の初回登録不可となる。
(初期設定処理)
次に、初期設定処理について図10に基づき説明する。
PC20は、認証開始要求をサーバ10に通知する(ステップS301)。
サーバ10は、認証開始要求を受信し(ステップS302)、周波数パターンの抽選を行い(ステップS303)、抽選結果の抽選周波数パターン及び周波数パターン情報をネットワーク5を介しPC20に通知する(ステップS304)。例えば、抽選結果が、図4に示した周波数パターンCであれば、その旨及び周波数パターンCがPC20に通知される。
PC20は、抽選結果の抽選周波数パターン及び周波数パターン情報を受信し(ステップS305)、抽選周波数パターン及び周波数パターン情報を周波数パターン保存部25に保存する(ステップS306)。
PC20は、認証デバイス30に初期通信要求を行い、周波数パターン情報を通知する(ステップS307)。この通知は、予め定められた固定の周波数パターン、固定のビット位置パターン及び固定のバイト位置パターンでの音響通信により実行される。後述のステップS311も同様である。
認証デバイス30は、初期通信要求を受信し(ステップS308)、周波数パターン情報を得る。
認証デバイス30は、ビット位置パターンの抽選(ステップS309)、バイト位置パターンの抽選(ステップS310)を行い、抽選結果のビット位置パターン情報及びバイト位置パターン情報を音響通信によりPC20に通知する(ステップS311)。例えば、抽選結果が、図4に示したビット位置パターン2と、図5に示したバイト位置パターンaであれば、その旨がPC20に通知される。
PC20は、抽選結果のビット位置パターン情報及びバイト位置パターン情報を受信する(ステップS312)。
(MACアドレス確認処理)
次に、MACアドレス確認処理について図11に基づき説明する。このMACアドレス確認処理において、PC20及び認証デバイス30は、サーバ10による抽選結果の抽選周波数パターンと、認証デバイス30による抽選結果のビット位置パターン及びバイト位置パターンに基づいて音響通信を行う。なお、抽選結果の抽選周波数パターン、ビット位置パターン及びバイト位置パターンを総称して指定データパターンという場合がある。
PC20は、認証デバイス30にMACアドレスの読出要求を音響通信により行う(ステップS401)。
認証デバイス30は、MACアドレスの読出要求を受信し(ステップS402)、MACアドレス保存部33に保存しているMACアドレスを取得する(ステップS403)。
認証デバイス30は、ダミーのMACアドレスを2つ生成する(ステップS404)。
認証デバイス30は、MACアドレス保存部33から読み出したMACアドレスと、生成した2つのダミーのMACアドレスとをランダムに並べてPC20に音響通信により通知する(ステップS405)。
PC20は、前述のステップS401の後に、MACアドレス保存部22からMACアドレスを読出し、読み出したMACアドレスを指定データパターンにより変換する(ステップS406)。
PC20は、認証デバイス30から3つのMACアドレスを受信し(ステップS407)、受信した3つのMACアドレスと、ステップS406で変換したMACアドレスとを比較する(ステップS408)。
PC20は、受信した3つのMACアドレスのうちの少なくとも1つが、ステップS406で変換したMACアドレスと一致するか否かを判断する(ステップS409)。
ステップS409において、受信した3つのMACアドレスのうちの少なくとも1つが、ステップS406で変換したMACアドレスと一致すると判断した場合には、PC20は、MACアドレス確認処理が成立したと判断し、後述の認証キー確認処理に進む。
一方、ステップS409において、受信した3つのMACアドレスのうちの少なくとも1つが、ステップS406で変換したMACアドレスと一致すると判断しなかった場合には、PC20は、認証は不成立と判断し(ステップS410)、MACアドレス確認処理を終了する。
前述の説明では、認証デバイス30に1つのMACアドレスが登録してある場合を前提としたが、認証デバイス30に例えば3つのMACアドレスが登録してある場合には、ステップS401〜S409を3回繰り返す処理となる。
(認証キー確認処理)
次に、認証キー確認処理について図12に基づき説明する。この認証キー確認処理において、PC20及び認証デバイス30は、指定データパターンに基づいて音響通信を行う。
PC20は、認証デバイス30に認証キーの読出要求を音響通信により行う(ステップS501)。
認証デバイス30は、認証キーの読出要求を受信し(ステップS502)、認証キー保存部34に保存している認証キーを取得する(ステップS503)。
認証デバイス30は、ダミーの認証キーを2つ生成する(ステップS504)。
認証デバイス30は、認証キー保存部34から読み出した認証キーと、生成した2つのダミーの認証キーとをランダムに並べてPC20に音響通信により通知する(ステップS505)。
PC20は、認証デバイス30から3つの認証キーを受信し(ステップS506)、指定データパターンに基づいて、受信した3つの認証キーを正常位置に戻す(ステップS507)。正常位置とは、指定データパターンに基づいて変換される前のデータ位置をいう。
PC20は、サーバ10による抽選結果の抽選周波数パターンに基づいて、3つの認証キーを変換し(ステップS508)、変換した3つの認証キーをサーバ10に通知し、認証要求を行う(ステップS509)。
サーバ10は、認証要求を受信し(ステップS510)、サーバ10による抽選結果の抽選周波数パターンに基づいて、受信した3つの認証キーを正常位置に戻す(ステップS511)。
サーバ10は、受信した3つの認証キーと、認証キー保存部11に保存している認証キーとを比較する(ステップS512)。
サーバ10は、受信した3つの認証キーのうちの少なくとも1つが、認証キー保存部11に保存している認証キーと一致するか否かの旨を認証結果としてPC20に通知する(ステップS513)。
PC20は、認証結果を受信し(ステップS514)、認証デバイス30に保存されている認証キーが、サーバ10に保存されている認証キーと一致したか否かを判断する(ステップS515)。
ステップS515において、認証デバイス30に保存されている認証キーが、サーバ10に保存されている認証キーと一致したと判断された場合には、PC20は、個人認証が成立したと判断し(ステップS516)、両者が一致しなかった場合には、個人認証は不成立と判断する(ステップS517)。
なお、図12を用いて説明した認証キー確認処理を、PC20と認証デバイス30との間で、初回の認証キー確認処理後から一定の時間間隔で実施することにより、よりセキュリティ性を向上させることができて好ましい。
以上のように、本実施形態における個人認証システム1は、個人認証を行うPC20と認証デバイス30との間の通信を、利用者の認証ごとに互いに異なる抽選周波数パターン、ビット位置パターン及びバイト位置パターンに基づいてアナログの音響信号による音響通信を行う構成を有する。
この構成により、本実施形態における個人認証システム1は、PC20と認証デバイス30との間の通信データを解読しようとしても規則性がないので解析できず、解読はほぼ不可能である。また、認証デバイス30が盗難にあった場合でも、認証デバイス30に登録されていない未登録のPCでは認証処理が行えない。
したがって、本実施形態における個人認証システム1は、不正使用を防止し、セキュリティ性を向上させることができる。
なお、前述の実施形態において、個人認証システム1が、抽選周波数パターン、ビット位置パターン及びバイト位置パターンの3つに基づいて音響通信を行う構成例を挙げたが、本発明はこれに限定されず、必要に応じて、これらの3つのうちの少なくとも1つに基づいて音響通信を行う構成であってもよい。
また、前述の実施形態では、スピーカプラグコード41、マイクプラグコード42を用いて音響信号を送受する構成例を説明したが、本発明はこれに限定されず、例えば、音響信号を所定の変調方式で変調して無線通信により送受する構成としてもよい。
また、前述の実施形態では、アナログの音響信号を用いて音響通信を行う例を挙げて説明したが、本発明はこれに限定されず、所定のビット位置データ及びバイト位置データを用いてデジタル通信を行う構成としてもよい。
[変形例1]
次に、本実施形態における個人認証システム1の変形例1について説明する。
近年、例えばPCで動作するブラウザに寄生して動作するコンピュータウィルスが、PCと銀行のサーバとの間のやりとりを監視して、振込先や振込金額等の取引内容を書き換えることにより、不正に金銭を取得するMITB(Man In The Browser)攻撃が行われている。そこで、この変形例1では、MITB攻撃を回避することができる個人認証システムについて説明する。
(従来の個人認証システム)
まず、従来の個人認証システムにおけるMITB攻撃について図13を用いて説明する。なお、サーバ10は、銀行において送金処理を行うサーバとする。
図13に示すように、従来の個人認証システムは、サーバ10、PC90を備えている。PC90は、キーボードやタッチパネル等の操作部91、液晶ディスプレイで構成される表示部92、送金に係る処理を行う送金処理部93を備えている。PC90のプログラムには、送金データの改竄を行うMITBウイルス94が含まれているものとする。
以下、動作を説明する。
利用者が操作部91及び表示部92を使用し、例えば利用者の携帯電話に銀行から届いたワンタイムパスワードが入力され(ステップS11)、送金処理部93に送られ、送金処理部93とサーバ10との間で認証が成立する(ステップS12、S13)。
利用者が操作部91及び表示部92を使用し、送金情報が入力される(ステップS14)。この例では、利用者は、送金情報としてA宛に100万円を送金することを入力したものとする。
送金処理部93は、送金情報を受け付け(ステップS15)、送金データを作成する(ステップS16)。送金データは、A宛に100万円を送金する情報を含むデータ部と、このデータ部の誤りを検出するための誤り検出符号C1と、を有する。
MITBウイルス94は、送金データを改竄して送信し(ステップS17)、サーバ10は、改竄された送金データを受信する(ステップS18)。改竄された送金データは、B宛に100万円を送金する情報を含むデータ部と、このデータ部に対応した誤り検出符号C2と、を有する。
サーバ10は、改竄された送金データを確認するが、データ部と誤り検出符号C2との関係は正しいので改竄されたとは認識できない。そのため、サーバ10は、利用者に送金内容を確認させるために送金確認データをPC20に送信する(ステップS20)。このステップで送信される送金確認データは、改竄された送金データの確認データであるが、MITBウイルス94が元の送金データを利用者に確認させるよう送金確認データを改竄する(ステップS21)。その結果、元の送金データの内容を示す送金確認データが送金処理部93に送られ、送金処理部93が受信する(ステップS22)。操作部91及び表示部92により、送金確認データが表示される(ステップS23)。利用者は、入力した送金内容と同じ送金内容が表示されるので、操作部91を操作して「確認」を入力し(ステップS24)、送金処理部93は、「確認」の情報を受信した後、サーバ10に送信する(ステップS25)。
サーバ10は、「確認」の情報を受信し(ステップS26)、B宛に100万円を送金するための送金処理を実行する(ステップS27)。
(変形例1の個人認証システム)
次に、本実施形態の変形例1の個人認証システムにおけるMITB攻撃に対する構成及び処理について図14を用いて説明する。
図14に示すように、本実施形態の変形例1の個人認証システムは、サーバ10、PC20、認証デバイス30を備えている。
サーバ10は、図3に示した認証処理部13を備えている。この認証処理部13は、改竄判断手段の一例である。
PC20は、キーボードやタッチパネル等の操作部205、液晶ディスプレイで構成される表示部206、送金に係る処理及びMITB攻撃に対する改竄防止処理を行う改竄防止部28を備えている。改竄防止処理は、後述の改竄防止コードを生成する処理、改竄防止コードを送信する処理、改竄防止コードに含まれるデータのビット位置を変更して新たな改竄防止コードを生成する処理を含む。なお、改竄防止部28は、送信手段、改竄防止コード生成手段、ビット位置移動手段の一例である。PC20のプログラムには、送金データの改竄を行うMITBウイルス94が含まれているものとする。
以下、動作を説明する。
認証デバイス30は、認証キーを改竄防止部28に送信する(ステップS31)。改竄防止部28は、認証キーを受信し、サーバ10との間で認証が成立する(ステップS32、S33)。
利用者が操作部205及び表示部206を使用して、送金情報が入力される(ステップS34)。従来例と同様、利用者は、送金情報としてA宛に100万円を送金することを入力したものとする。
改竄防止部28は、送金情報を受け付け(ステップS35)、送金データを作成する(ステップS36)。
ここで、改竄防止部28が作成する送金データについて図15を用いて説明する。
図15に示すように、改竄防止部28が作成する送金データ120は、送金データ部121と、改竄防止コード部122と、を含む。送金データ部121は、データ部121aと、チェックコード部121bと、を含む。データ部121aには、例えばA宛に100万円を送金する情報が含まれ、チェックコード部121bには、データ部の誤りを検出するための誤り検出符号(チェックコード)が含まれている。改竄防止コード部122には、改竄防止コードが含まれている。
なお、チェックコード、改竄防止コードは、公知の手法で生成されるものであり、例えば、データの複数ビットの誤りを高い精度で検出可能な巡回符号(CRC)、パリティ(Parity)、チェックサム(Check sum)、ハッシュ関数(Hash Function)などが使用可能である。
改竄防止部28は、例えば、送金データ部121及び認証キー130からチェックコードとして生成したものを改竄防止コード131とする。さらに、改竄防止部28は、改竄防止コード131に含まれるビットデータのビット位置を、例えば、サーバ10による抽選結果の抽選周波数パターンに対応付けて予め定められた値に基づいてビット回転させる。その結果、新たな改竄防止コード132が得られる。なお、改竄防止コード131に含まれるビットデータのビット位置を、抽選周波数パターン以外の情報に基づいてビット回転させる構成でもよい。
改竄防止コードとして改竄防止コード131又は132を用いることができるが、改竄防止コード132を用いるのがセキュリティ性がより高くて好ましい。改竄防止コード132は、認証キーと、利用者の認証ごとに互いに異なる抽選結果の抽選周波数パターンとに基づいて生成されているので、改竄防止コード132を解読しようとしても規則性がないので解析できず、解読はほぼ不可能であると言うことができる。以下、改竄防止コード132を例に挙げる。
図14に戻り、説明を続ける。改竄防止部28は、改竄防止コード132をサーバ10に送信する(ステップS37)。サーバ10は、改竄防止コード132を受信する(ステップS38)。改竄防止コード132は送金データではないので、MITBウイルス94は改竄防止コード132をそのまま通過させてサーバ10に送信することとなる。
改竄防止部28は、送金データ部121を送信する(ステップS39)。この送金データ部121には、A宛に100万円を送金するという情報が含まれている。
MITBウイルス94は、A宛に100万円を送金するという情報を、B宛に100万円を送金するという情報に改竄する(ステップS40)。
サーバ10は、改竄された送金データを受信し(ステップS41)、受信した送金データと改竄防止コード132とを確認する(ステップS42)。すなわち、サーバ10の認証処理部13は、改竄防止コード132に基づいて送金データが改竄されたか否かを判断する。
サーバ10は、送金データの内容が改竄防止コード132と一致しないので、「送金不可」の情報を改竄防止部28に送信し(ステップS43)、送金処理は不成立と判断する(ステップS44)。改竄防止部28は、「送金不可」の情報を受信する(ステップS45)。その結果、表示部206には、「送金不可」が表示される(ステップS46)。
以上のように、本実施形態の変形例1における個人認証システムは、送金データ、抽選周波数パターン及び認証キーに基づいて作成された改竄防止コード131を用いて送金処理を行うことができるので、MITB攻撃に対するセキュリティ強度を従来よりも強固にすることができる。
また、本実施形態の変形例1における個人認証システムは、利用者の認証ごとに互いに異なる抽選周波数パターンに基づいて生成された改竄防止コード132を用いて送金処理を行うことができるので、MITB攻撃に対するセキュリティ強度をさらに強固にすることができる。
なお、MITBウイルス94が、操作部205の操作内容を改竄する場合も考えられる。この対策としては、改竄防止部28が、操作部205の入力内容に応じて改竄防止コードを含むデータを作成できる構成、例えば送金データ120を作成できる構成とすることにより、この種の改竄を防止することができる。この構成の場合には、図14に示したPC20において、例えば、改竄防止部28を送金データ送信部と読み替え、この送金データ送信部と操作部205との間に改竄防止部28を設ける構成とし、改竄防止部28が、送金データ送信部に、改竄防止コードを送った後に送金データを送信する構成とするのが好ましい。
[変形例2]
次に、本実施形態における個人認証システムの変形例2について図16に基づき説明する。図16は、本実施形態の変形例2における個人認証システム2の外観を模式的に示している。
図16に示すように、本実施形態の変形例2における個人認証システム2は、例えば家屋や車両等のドアの施錠及び解錠を行う施解錠システムに適用可能なものであり、第1実施形態におけるPC20及び認証デバイス30に代えて、それぞれ、施解錠装置60及び鍵70を備えている。ただし、施解錠装置60は、PC20が有するMACアドレスに代えて、個別の識別情報を有している。
施解錠装置60は、鍵70が挿入されるシリンダ錠61を備え、ドア62に設けられている。この施解錠装置60は、ネットワーク5を介してサーバ10と通信するようになっている。なお、施解錠装置60は、認証装置の一例である。
鍵70は、鍵穴に挿入されるメカニカルキー部71と、利用者に把持される把持部72と、を備えている。この鍵70は、認証デバイスの一例である。
メカニカルキー部71は、例えばディンプルキーと呼ばれる構成を有し、深さ及び大きさの異なる複数個のくぼみ73が表面に形成され、キー溝も形成されている。また、メカニカルキー部71は、第1実施形態のスピーカプラグ43に対応する音響信号出力端子74、マイクプラグ44に対応する音響信号入力端子75、電源コード47に対応して電源が供給される電源端子76及び77を備えている。
把持部72は、メカニカルキー部71の音響信号出力端子74、音響信号入力端子75、電源端子76及び77に接続されたICを内蔵し、第1実施形態の認証デバイス30と同等な機能を有している。
以上のように、本実施形態の変形例2における個人認証システム2は、個人認証を行う施解錠装置60と鍵70との間の通信を、利用者の認証ごとに互いに異なる抽選周波数パターン、ビット位置パターン及びバイト位置パターンに基づいてアナログの音響信号による音響通信を行う構成を有する。
この構成により、本実施形態の変形例2における個人認証システム2は、施解錠装置60と鍵70との間の通信データを解読しようとしても規則性がないので解析できず、解読はほぼ不可能である。また、鍵70が盗難にあった場合でも、鍵70に登録されていない未登録の施解錠装置では認証処理が行えない。
したがって、本実施形態の変形例2における個人認証システム2は、家屋や車両等のドアの施錠及び解錠を行う施解錠システムにおいて、不正使用を防止し、セキュリティ性を向上させることができる。
さらに、本実施形態の変形例2における個人認証システム2は、停電時には、鍵70のメカニカルキー部71を用いて施解錠を行うこともできる。
<第2実施形態>
図17は、本実施形態における個人認証システムの外観を模式的に示している。図示のように、本実施形態における個人認証システム3は、PC80、認証デバイス30、設置台40を備えている。すなわち、個人認証システム3は、第1実施形態における個人認証システム1(図1参照)からサーバ10を除き、PC80がネットワークに接続されていないスタンドアロンの構成を有する。
したがって、個人認証システム3のハードウェア構成は、第1実施形態における個人認証システム1(図2参照)からサーバ10を除いたハードウェア構成と同じであるので説明を省略する。なお、本実施形態の構成は、例えば、PC80のログイン時に個人認証を行うシステムに適用することができる。
[個人認証システム3の機能構成]
次に、図18を用いて、個人認証システム3の機能構成について説明する。個人認証システム3は、図2に示したPC20、認証デバイス30、設置台40及び認証デバイス設定器50のハードウェア構成及びプログラムによって、図18に示すような各機能構成を有する。
(PC80の構成)
図18に示すように、PC80は、第1実施形態におけるPC20に、サーバ10が備えていた認証キー保存部11及び周波数パターンデータ保存部12を加えた構成を有している。このPC80は、認証装置の一例である。
なお、認証デバイス30及び認証デバイス設定器50の機能構成は、第1実施形態におけるもの(図3参照)と同じであるので機能構成の説明を省略する。
[個人認証システム3の動作]
個人認証システム3の動作のフローチャートは、図7に示した個人認証システム1のフローチャートと同じであり、タイミングチャートが第1実施形態と比べて一部異なる。したがって、タイミングチャートが第1実施形態とは異なるものについて以下説明する。
(認証デバイス30の初回登録処理)
まず、認証デバイス30の初回登録処理について図19に基づき説明する。
図19に示すように、本実施形態におけるPC80は、第1実施形態におけるサーバ10が行っていた周波数パターンの抽選(ステップS203)を実行する。これ以外の処理は、第1実施形態(図9参照)と同じであるので説明を省略する。
(初期設定処理)
次に、初期設定処理について図20に基づき説明する。
図20に示すように、本実施形態におけるPC80は、第1実施形態においてサーバ10が行っていた周波数パターンの抽選(ステップS303)を実行する。これ以外の処理は、第1実施形態(図10参照)と同じであるので説明を省略する。
(認証キー確認処理)
次に、認証キー確認処理について図21に基づき説明する。
図21に示すように、本実施形態におけるPC80は、第1実施形態におけるサーバ10が行っていた、認証デバイス30から受信した3つの認証キーと、認証キー保存部11に保存している認証キーとを比較する処理(ステップS512)を実行する。これ以外の処理は、第1実施形態(図12参照)と同じであるので説明を省略する。
以上のように、本実施形態における個人認証システム3は、個人認証を行うPC80と認証デバイス30との間の通信を、利用者の認証ごとに互いに異なる抽選周波数パターン、ビット位置パターン及びバイト位置パターンに基づいてアナログの音響通信を行う構成を有する。
この構成により、本実施形態における個人認証システム3は、PC80と認証デバイス30との間の通信データを解読しようとしても規則性がないので解析できず、解読はほぼ不可能である。また、認証デバイス30が盗難にあった場合でも、認証デバイス30に登録されていない未登録のPCでは認証処理が行えない。
したがって、本実施形態における個人認証システム3は、不正使用を防止し、セキュリティ性を向上させることができる。
なお、第2実施形態においても、第1実施形態における変形例1(図14参照)と同様に改竄防止部28を適用することができ、例えばPC20へのログイン認証においてMITB攻撃を回避することができる。
[変形例1]
次に、本実施形態における個人認証システム3の変形例1について図22に基づき説明する。図22は、本実施形態の変形例1における個人認証システム4の外観を模式的に示している。
図22に示すように、この変形例1における個人認証システム4は、第1実施形態の変形例2における構成(図16参照)からサーバ10を除いた構成であり、ネットワークに接続されていないスタンドアロンの施解錠装置65を備えている。ただし、施解錠装置65は、施解錠装置60と同様に、個別の識別情報を有している。なお、施解錠装置65は、認証装置の一例である。
前述のように、本実施形態の変形例1における個人認証システム4は、個人認証を行う施解錠装置65と鍵70との間の通信を、利用者の認証ごとに互いに異なる抽選周波数パターン、ビット位置パターン及びバイト位置パターンに基づいてアナログの音響通信を行う構成を有する。
この構成により、本実施形態の変形例1における個人認証システム4は、施解錠装置65と鍵70との間の通信データを解読しようとしても規則性がないので解析できず、解読はほぼ不可能である。また、鍵70が盗難にあった場合でも、鍵70に登録されていない未登録の施解錠装置では認証処理が行えない。
したがって、本実施形態の変形例1における個人認証システム4は、家屋や車両等のドアの施錠及び解錠を行う施解錠システムにおいて、不正使用を防止し、セキュリティ性を向上させることができる。
さらに、本実施形態の変形例1における個人認証システム4は、停電時には、鍵70のメカニカルキー部71を用いて施解錠を行うこともできる。