(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-24
(45)【発行日】2023-05-02
(54)【発明の名称】相互認証システム及び相互認証方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20230425BHJP
G06F 21/44 20130101ALI20230425BHJP
G09C 1/00 20060101ALI20230425BHJP
H04L 9/08 20060101ALI20230425BHJP
【FI】
H04L9/32 200A
G06F21/44 350
G09C1/00 640E
H04L9/08 C
H04L9/08 E
(21)【出願番号】P 2018124592
(22)【出願日】2018-06-29
【審査請求日】2021-05-21
(73)【特許権者】
【識別番号】000002233
【氏名又は名称】ニデックインスツルメンツ株式会社
(74)【代理人】
【識別番号】100097113
【氏名又は名称】堀 城之
(74)【代理人】
【識別番号】100162363
【氏名又は名称】前島 幸彦
(74)【代理人】
【識別番号】100194146
【氏名又は名称】長谷川 明
(74)【代理人】
【識別番号】100194283
【氏名又は名称】村上 大勇
(74)【代理人】
【識別番号】100141324
【氏名又は名称】小河 卓
(72)【発明者】
【氏名】佐伯 和人
【審査官】打出 義尚
(56)【参考文献】
【文献】特開2007-173911(JP,A)
【文献】特開2016-116216(JP,A)
【文献】特開2008-271069(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/44
G09C 1/00
H04L 9/08
(57)【特許請求の範囲】
【請求項1】
相互に認証するマスタデバイスとスレーブデバイスとを備える相互認証システムであって、
前記マスタデバイスは、
一時的に用いられる鍵データであるテンポラリキー、及び認証に用いられる鍵データであるマスタキーを格納する記憶部と、
マスタキーを前記スレーブデバイスが格納しているか問い合わせる鍵確認部と、
前記鍵確認部の問い合わせの応答において、前記スレーブデバイスがマスタキーを格納していない場合、前記テンポラリキーにて、前記
認証に用いられる鍵データであるマスタキーを暗号化して前記スレーブデバイスに送信する鍵導入部と、
前記鍵導入部により送信された前記
認証に用いられる鍵データであるマスタキーにて、前記スレーブデバイスとの間で相互認証する主認証部とを備え、
前記スレーブデバイスは、
前記テンポラリキーを格納する記憶部と、
前記マスタデバイスからの問い合わせに対して、前記記憶部にマスタキーが既に格納されているか確認して応答する鍵確認応答部と、
前記鍵確認応答部の応答に対して、前記マスタデバイスから送信された前記
認証に用いられる鍵データであるマスタキーを前記テンポラリキーで復号化して前記記憶部に格納する鍵格納部と、
前記鍵格納部により前記記憶部に格納された前記
認証に用いられる鍵データであるマスタキーにて、前記マスタデバイスとの間で相互認証する副認証部とを備える
ことを特徴とする相互認証システム。
【請求項2】
前記マスタデバイスは、
初期起動した際に、乱数を用いて前記
認証に用いられる鍵データであるマスタキーを生成し、前記記憶部に格納する鍵生成部を更に備える
ことを特徴とする請求項1に記載の相互認証システム。
【請求項3】
前記鍵確認部は、
特定タイミングで、前記スレーブデバイスがマスタキーを格納しているか問い合わせる
ことを特徴とする請求項1又は2に記載の相互認証システム。
【請求項4】
前記主認証部及び前記副認証部による相互認証には、対称鍵暗号方式を用いる
ことを特徴とする請求項1乃至3のいずれか1項に記載の相互認証システム。
【請求項5】
相互に認証するマスタデバイスとスレーブデバイスとを備える相互認証システムにより実行される相互認証方法であって、
前記マスタデバイスは、一時的に用いられる鍵データであるテンポラリキー、及び認証に用いられる鍵データであるマスタキーを格納する記憶部を備え、
前記スレーブデバイスは、前記テンポラリキーを格納する記憶部を備え、
前記マスタデバイスにより、マスタキーを前記スレーブデバイスが格納しているか問い合わせ、
前記スレーブデバイスにより、前記マスタデバイスからの問い合わせに対して、前記記憶部にマスタキーが既に格納されているか確認して応答し、
前記マスタデバイスにより、問い合わせの応答において、前記スレーブデバイスがマスタキーを格納していない場合、前記テンポラリキーにて、前記
認証に用いられる鍵データであるマスタキーを暗号化して前記スレーブデバイスに送信し、
前記スレーブデバイスにより、応答に対して、前記マスタデバイスから送信された前記
認証に用いられる鍵データであるマスタキーを前記テンポラリキーで復号化して前記記憶部に格納し、
前記
認証に用いられる鍵データであるマスタキーにて、前記マスタデバイス及び前記スレーブデバイスとの間で相互認証する
ことを特徴とする相互認証方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、相互認証システム及び相互認証方法に係り、特にマスタデバイスとスレーブデバイスとの間で相互認証可能な相互認証システム及び相互認証方法に関する。
【背景技術】
【0002】
従来から、本体側基板(マスタデバイス)と、ヘッド側基板(スレーブデバイス)とを備えるカードリーダが存在する。
特許文献1には、このようなカードリーダの一例が記載されている。このカードリーダのマスタデバイスは、磁気ヘッドを制御するCPU(主制御部)を備える。スレーブデバイスは、一体的に形成された暗号磁気ヘッドとして構成される。この暗号磁気ヘッドは、磁気ヘッド、復調用IC、及び暗号化並びに復号化を行うCPU(副制御部)を備える。副制御部は、暗号化のための鍵データであるマスタキーを格納する。これにより、スレーブデバイスは、復調した磁気データを暗号化して、安全に主制御部及び上位装置に送信する。
【0003】
一方、複数のデバイス間で暗号の相互認証を行う相互認証システムが存在する。たとえば、このような相互認証を行うシステムが、特許文献2に記載されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2014-81931号公報
【文献】特開2013-109554号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、特許文献1に記載されたような典型的なカードリーダでも、マスタデバイスとスレーブデバイスとで、相互認証を行うものが存在した。
このようなカードリーダでは、スレーブデバイスを取り換える際(交換時)に、安全(セキュリティ)上の要求から、マスタキーをいったん消去する必要があった。しかし、マスタキーを消去すること自体に、セキュリティ上の懸念があった。
【0006】
本発明は、このような状況に鑑みてなされたものであり、上述の問題を解消し、マスタキーを消去しなくても、安全にスレーブデバイスを交換可能とする相互認証システムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の相互認証システムは、相互に認証するマスタデバイスとスレーブデバイスとを備える相互認証システムであって、前記マスタデバイスは、一時的に用いられる鍵データであるテンポラリキー、及び認証に用いられる鍵データであるマスタキーを格納する記憶部と、マスタキーを前記スレーブデバイスが格納しているか問い合わせる鍵確認部と、前記鍵確認部の問い合わせの応答において、前記スレーブデバイスがマスタキーを格納していない場合、前記テンポラリキーにて、前記認証に用いられる鍵データであるマスタキーを暗号化して前記スレーブデバイスに送信する鍵導入部と、前記鍵導入部により送信された前記認証に用いられる鍵データであるマスタキーにて、前記スレーブデバイスとの間で相互認証する主認証部とを備え、前記スレーブデバイスは、前記テンポラリキーを格納する記憶部と、前記マスタデバイスからの問い合わせに対して、前記記憶部にマスタキーが既に格納されているか確認して応答する鍵確認応答部と、前記鍵確認応答部の応答に対して、前記マスタデバイスから送信された前記認証に用いられる鍵データであるマスタキーを前記テンポラリキーで復号化して前記記憶部に格納する鍵格納部と、前記鍵格納部により前記記憶部に格納された前記認証に用いられる鍵データであるマスタキーにて、前記マスタデバイスとの間で相互認証する副認証部とを備えることを特徴とする。
このように構成することで、マスタキーを消去しなくても、安全にスレーブデバイスを交換することができる。
【0008】
本発明の相互認証システムは、前記マスタデバイスは、初期起動した際に、乱数を用いて前記認証に用いられる鍵データであるマスタキーを生成し、前記記憶部に格納する鍵生成部を更に備えることを特徴とする。
このように構成することで、工場出荷時等において、マスタデバイスを初期起動した際に、デバイスユニークな鍵データを安全に生成することができる。
【0009】
本発明の相互認証システムは、前記鍵確認部は、特定タイミングで、前記スレーブデバイスがマスタキーを格納しているか問い合わせることを特徴とする。
このように構成することで、不正ヘッド等が取り付けられたことを、検知することができる。
【0010】
本発明の相互認証システムは、前記主認証部及び前記副認証部による相互認証には、対称鍵暗号方式を用いることを特徴とする。
このように構成することで、相互認証に係る処理速度を向上させることができ、安価な制御部をもつ装置で相互認証ができる。
【0011】
本発明の相互認証方法は、相互に認証するマスタデバイスとスレーブデバイスとを備える相互認証システムにより実行される相互認証方法であって、前記マスタデバイスは、一時的に用いられる鍵データであるテンポラリキー、及び認証に用いられる鍵データであるマスタキーを格納する記憶部を備え、前記スレーブデバイスは、前記テンポラリキーを格納する記憶部を備え、前記マスタデバイスにより、マスタキーを前記スレーブデバイスが格納しているか問い合わせ、前記スレーブデバイスにより、前記マスタデバイスからの問い合わせに対して、前記記憶部にマスタキーが既に格納されているか確認して応答し、前記マスタデバイスにより、問い合わせの応答において、前記スレーブデバイスがマスタキーを格納していない場合、前記テンポラリキーにて、前記認証に用いられる鍵データであるマスタキーを暗号化して前記スレーブデバイスに送信し、前記スレーブデバイスにより、応答に対して、前記マスタデバイスから送信された前記認証に用いられる鍵データであるマスタキーを前記テンポラリキーで復号化して前記記憶部に格納し、前記認証に用いられる鍵データであるマスタキーにて、前記マスタデバイス及び前記スレーブデバイスとの間で相互認証することを特徴とする。
このように構成することで、マスタキーを消去しなくても、安全にスレーブデバイスを交換することができる。
【発明の効果】
【0012】
本発明によれば、マスタデバイスのマスタキーを変更せず、交換後のスレーブデバイスにマスタキーを格納しているか問い合わせ、格納していなければ、テンポラリキーを用いてマスタキーを暗号化してスレーブデバイスに送信し、これをスレーブデバイスにて格納することで、マスタキーを消去しなくても、安全にスレーブデバイスを交換することができる相互認証システムを提供することができる。
【図面の簡単な説明】
【0013】
【
図1】本発明の実施の形態に係る相互認証システムのシステム構成図である。
【
図2】本発明の実施の形態に係る相互認証処理のフローチャートである。
【
図3】
図2に示す相互認証処理におけるスレーブデバイス交換時のシーケンスチャートである。
【
図4】従来の相互認証システムの新規組み込み時のシーケンスチャートである。
【
図5】従来の相互認証システムにおいて、スレーブデバイス交換時(消去なし)を行った場合のシーケンスチャートである。
【
図6】従来の相互認証システムのスレーブデバイス交換時(マスタキー消去)のシーケンスチャートである。
【発明を実施するための形態】
【0014】
<実施の形態>
図1を参照して、本発明の実施の形態に係る相互認証システムであるカードリーダ1の構成について説明する。
カードリーダ1は、本実施形態においては、カード発行機能を備えたATM(Automated Teller Machine)、キオスク(Kiosk)の端末、交通機関のチケット発行システム、コンビニエンスストア等のポイントカード発行システム、小売店のメンバーカード発行システム、遊技機のカード発行、支払システム、入退場管理システム等(以下、単に「ATM等」と省略して記載する。)に搭載されるカードリーダである。
【0015】
具体的には、カードリーダ1は、接触型又は非接触型のICカード及び/又は磁気ストライプを備えた磁気カードであるカード媒体2を読み込み(リード)又は書き込み(ライト)可能な装置である。
カードリーダ1の詳細な構成については後述する。
【0016】
さらに、カードリーダ1は、ATM等の各機能を実現するための本体装置である上位装置と接続される。この上位装置は、例えば、各部の制御用のPC(Personal Computer)、タブレット端末、携帯電話等の情報処理装置を含み、ATM等の機能を実現するためのアプリケーション(Application Program、図示せず)を実行する。加えて、上位装置には、カード媒体2の表面に印刷や刻印を行うプリンタ、LCDパネルや有機ELパネル等のディスプレイ、タッチパネル、及びボタン等の周辺装置が接続されている。
【0017】
より具体的に説明すると、カードリーダ1は、相互に認証するマスタデバイス10とスレーブデバイス20とを備える。
【0018】
マスタデバイス10は、カードリーダ1としての一般的な処理を行い、カード媒体2に対する情報の書き込みと読み出しを制御するメイン処理装置である。マスタデバイス10は、例えば、カードリーダ1全体を制御するメイン(主)基板上の各種回路として構成される。本実施形態において、マスタデバイス10は、接続されたスレーブデバイス20を通信により制御する。
【0019】
スレーブデバイス20は、暗号磁気ヘッド(Encrypting Head、E-Head)等である。この暗号磁気ヘッドは、復調した磁気データを暗号化して、安全に制御部11及び上位装置に送信する。このため、スレーブデバイス20は、磁気ヘッド23により読み取られた情報を暗号化又は復号化し、情報を暗号化又は復号化して磁気ヘッド23によりカード媒体2に記録させる機能を実現する。このため、スレーブデバイス20は、例えば、カード媒体2に記憶されたID、暗証番号、パスワード等のデータの詐取を防御するためのデータ暗号化機能、復号化機能等を備えている。加えて、本実施形態のスレーブデバイス20は、セキュリティのため、特定の処理手順を遵守して制御しないと処理を実行しないよう構成されている。
【0020】
さらに詳細に説明すると、マスタデバイス10は、制御部11及び記憶部12を備えている。スレーブデバイス20は、制御部21、記憶部22、及び磁気ヘッド23を備えている。
【0021】
制御部11は、カードリーダ1全体の処理を行うCPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)等を含む制御演算手段である。
【0022】
記憶部12は、RAM(Random Access Memory)及びROM(Read Only Memory)等の記憶媒体である。RAMは、例えば、SRAM(Static RAM)、DRAM(Dynamic RAM)等の揮発性の記録媒体、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)等の不揮発性の記録媒体等である。ROMは、例えば、EEPROM(Electrically Erasable and Programmable ROM)、フラッシュメモリ(Flash Memory)等の不揮発性の記録媒体である。
記憶部12は、マスタデバイス10に実装されている制御部11の制御プログラム(組み込みソフトウェア)を格納している。この制御用プログラムは、カード媒体2の検知用のセンサの監視、カード媒体2のリード、ライト、スレーブデバイス20の制御等の処理が組み込まれている。本実施形態において、記憶部12は、例えば、制御部11の内蔵メモリとして構成される。
【0023】
制御部21は、スレーブデバイス20の状態監視及び制御を行うCPU、MPU、GPU、DSP、ASIC等を含む制御演算手段である。制御部21は、情報の暗号処理や暗号を利用した認証等の処理を実行する。具体的には、制御部21は、例えば、AES(Advanced Encryption Standard)等の方式で、各種暗号化や復号化を行う制御プログラムを実行し、演算を専用に実行するアクセラレータ(Accelerator)を含むこともある。
【0024】
記憶部22は、RAM及びROM等の一時的でない記憶媒体である。記憶部22は、記憶部12と同様に、揮発性及び不揮発性の記録媒体を含んでいる。
記憶部22は、スレーブデバイス20に実装されている制御部21の制御プログラム(組み込みソフトウェア)を格納している。本実施形態において、記憶部22は、例えば、制御部21の内蔵メモリとして構成される。
【0025】
磁気ヘッド23は、カード媒体2へのリード(読み出し)、ライト(書き込み)を行う磁気ヘッドや電磁誘導コイルや端子等と、このための回路等を含む。加えて、磁気ヘッド23は、カード媒体2の検知用のセンサ、駆動機構等も含むこともある。
【0026】
ここで、カードリーダ1の機能構成について説明する。
図1は、マスタデバイス10が初期起動した後、スレーブデバイス20が消耗、故障、規格変更等により、交換される際(交換時)の状態を示している。この交換時の状態において、スレーブデバイス20は、例えば、工場出荷された補修用部品(新品)等として提供される。
【0027】
マスタデバイス10の制御部11は、機能構成部として、鍵確認部100、鍵導入部110、主認証部120、及び鍵生成部130を備えている。
記憶部12は、マスタキー300及びテンポラリキー310を格納している。
スレーブデバイス20の制御部21は、機能構成部として、鍵確認応答部200、鍵格納部210、及び副認証部220を備えている。
記憶部22は、テンポラリキー310を格納している。
【0028】
鍵確認部100は、記憶部12に格納されたのと同様のマスタキー300をスレーブデバイス20が格納しているか問い合わせる。この際、鍵確認部100は、特定タイミングで、スレーブデバイス20がマスタキー300を格納しているか問い合わせる。この特定タイミングは、例えば、電源オン時等のタイミングである。
【0029】
鍵導入部110は、鍵確認部100の問い合わせの応答において、スレーブデバイス20がマスタキー300を格納していない場合、テンポラリキー310にて、マスタキー300を暗号化してスレーブデバイス20に送信する。これにより、鍵導入部110は、マスタキー300を消去することなく、スレーブデバイス20の交換等を認識して、交換前に生成されたマスタキー300をスレーブデバイス20に導入可能となる。
【0030】
主認証部120は、鍵導入部110により送信されたマスタキー300にて、スレーブデバイス20との間で相互認証する。本実施形態において、主認証部120は、副認証部220との間で相互認証を行う。本実施形態においては、この相互認証は、マスタキー300を用いる対称鍵暗号方式にて行われる。
【0031】
鍵生成部130は、マスタデバイス10が初期起動した際に、乱数を用いてマスタキー300を生成し、記憶部12の不揮発性の記録媒体に格納する。この初期起動は、例えば、工場出荷の検査時、顧客環境に設置された際の最初の電源投入時等(以下、「工場出荷時等」という。)に行われる。
【0032】
鍵確認応答部200は、マスタデバイス10からの問い合わせに対して、記憶部22にマスタキー300が既に格納されているか否かについて確認して応答する。
【0033】
鍵格納部210は、鍵確認応答部200の応答に対して、マスタデバイス10から送信されたマスタキー300をテンポラリキー310で復号化して記憶部22に格納する。
【0034】
副認証部220は、鍵格納部210により記憶部22に格納されたマスタキー300にて、マスタデバイス10との間で相互認証する。本実施形態において、副認証部220は、主認証部120との間で、マスタキー300を用いる対称鍵暗号方式にて、相互認証を行う。
【0035】
マスタキー300は、認証に用いられる鍵データである。本実施形態において、マスタキー300は、例えば、対称鍵の鍵データである。この対称鍵は、カードリーダ1毎に個別ものが提供される(以下、「デバイスユニーク」という。)になるよう、ANSI X9.17等の規格で生成される乱数値を用いることが可能である。
【0036】
テンポラリキー310は、一時的に用いられる鍵データである。テンポラリキー310は、例えば、対称鍵であり、機種毎に共通な鍵データである。テンポラリキー310も、例えば、対称鍵の鍵データである。
【0037】
ここで、制御部11は、記憶部12に格納された制御プログラムを実行することで、鍵確認部100、鍵導入部110、主認証部120、及び鍵生成部130として機能させられる。
制御部21は、記憶部22に格納された制御プログラムを実行することで、鍵確認応答部200、鍵格納部210、及び副認証部220として機能させられる。
また、上述のカードリーダ1の各部は、本発明の情報処理方法を実行するハードウェア資源となる。
なお、上述の機能構成部の一部又は任意の組み合わせをICやプログラマブルロジックやFPGA(Field-Programmable Gate Array)等でハードウェア的に構成してもよい。
【0038】
〔カードリーダによる相互認証処理〕
次に、
図2及び
図3により、本発明の実施の形態に係るカードリーダ1により実行される相互認証処理の説明を行う。
本実施形態の相互認証処理では、マスタデバイス10は、マスタキー300をスレーブデバイス20が格納しているか問い合わせる。この問い合わせに対して、スレーブデバイス20は、記憶部22にマスタキー300が既に格納されているか確認して応答する。問い合わせの応答において、スレーブデバイス20がマスタキー300を格納していない場合、マスタデバイス10は、テンポラリキー310にて、マスタキー300を暗号化してスレーブデバイス20に送信する。スレーブデバイス20は、応答に対して、マスタデバイス10から送信されたマスタキー300をテンポラリキー310で復号化して記憶部22に格納する。そして、マスタデバイス10及びスレーブデバイス20は、このマスタキー300にて相互認証する。
本実施形態の相互認証処理は、主にマスタデバイス10の制御部11及びスレーブデバイス20の制御部21が、それぞれ、記憶部12及び記憶部22に格納された制御プログラムを実行することで、各部と協同し、ハードウェア資源を用いて実行する。
以下で、
図2のフローチャートにより、相互認証処理の詳細をステップ毎に説明する。
【0039】
(ステップS101)
まず、マスタデバイス10の処理について説明する。
鍵生成部130は、起動時等に、マスタキー300が記憶部12に格納されているか否かを確認する。
鍵生成部130は、マスタキー300が記憶部12に既に格納されている場合には、Yesと判断する。鍵生成部130は、マスタデバイス10が工場出荷時等において初期起動し、まだマスタキー300が記憶部12に格納されていない等の場合には、Noと判断する。
Yesの場合、鍵生成部130は、処理をステップS103に進める。
Noの場合、鍵生成部130は、処理をステップS102に進める。
【0040】
(ステップS102)
マスタキー300が記憶部12に格納されていない場合、鍵生成部130が、マスタキー生成格納処理を行う。
ここで、本実施形態においては、初期起動時には、記憶部12は、鍵データとしてテンポラリキー310のみが格納されている。
このため、鍵生成部130は、初期起動の際に、乱数を用いてマスタキー300を生成し、記憶部12の不揮発性の記録媒体に格納する。このマスタキー300の生成について、鍵生成部130は、例えば、ANSI X9.17等の規格で生成される乱数値を用いる。
すなわち、本実施形態においては、初期起動時に、デバイスユニークなマスタキー300が生成される。この初期起動は、例えば、工場出荷の検査の際等に行われるため、セキュリティ性の高い場所で行われる。
図1は、この状態の記憶部12の構成を示している。
【0041】
(ステップS103、S201)
ここで、マスタデバイス10の鍵確認部100及びスレーブデバイス20の鍵確認応答部200が、マスタキー確認処理を行う。
【0042】
まず、鍵確認部100は、電源オンの度に、スレーブデバイス20がマスタキー300を格納しているか問い合わせる。この際に、鍵確認部100は、スレーブデバイス20に確認コマンド等を送信する(タイミングT1)。
【0043】
これに対して、鍵確認応答部200は、マスタデバイス10からの問い合わせに対して、記憶部22にマスタキー300が既に格納されているか確認して応答する(タイミングT2)。
図1に示すように、スレーブデバイス20の交換時には、テンポラリキー310のみが格納されており、マスタキー300は格納されていない。この場合、鍵確認応答部200は、まだ格納されていない旨を応答する。
しかしながら、例えば、通常に電源をオンした場合や、既にマスタキー300を受け取って格納した場合、中古のスレーブデバイス20である場合等の場合、マスタキー300が既に記憶部22に格納されていることもあり得る。このように、マスタキー300が既に記憶部22に格納されている場合、鍵確認応答部200は、その旨を応答する。
【0044】
(ステップS104)
次に、マスタデバイス10の鍵導入部110が、スレーブデバイス20にマスタキー300が格納されているか否かを判断する。
鍵導入部110は、スレーブデバイス20から、既に格納されている旨の応答を取得した場合には、Yesと判断する。鍵導入部110は、まだ格納されていない旨の応答を取得した場合には、Noと判断する。
Yesの場合、鍵導入部110は、処理をステップS106に進める。
Noの場合、鍵導入部110は、処理をステップS105に進める。
【0045】
(ステップS105)
スレーブデバイス20においてマスタキー300が格納されていない場合、鍵導入部110が、マスタキー送信処理を行う。
鍵導入部110は、テンポラリキー310にて、マスタキー300を暗号化してスレーブデバイス20に送信する。具体的には、鍵導入部110は、例えば、記憶部12に格納されたマスタキー300を読み出し、AES等の方式を用いて、テンポラリキー310を鍵データとしてマスタキー300を暗号化する。そして、鍵導入部110は、暗号化されたマスタキー300を、スレーブデバイス20へ鍵導入用コマンドを用いて送信する(タイミングT3)。
【0046】
(ステップS202)
ここで、スレーブデバイス20の処理について説明する。
鍵確認応答部200は、鍵導入用コマンドを受信すると、マスタキー300が記憶部22に格納されているか否かを判断した結果により処理を分岐する。この判断においては、鍵確認応答部200は、マスタキー300が記憶部22に格納されている場合に、Yesと判断する。鍵確認応答部200は、マスタキー300が記憶部22に格納されていない場合には、Noと判断する。
Yesの場合、鍵確認応答部200は、処理をステップS204に進める。
Noの場合、鍵確認応答部200は、処理をステップS203に進める。
【0047】
(ステップS203)
マスタキー300が記憶部22に格納されていない場合、鍵格納部210が、マスタキー格納処理を行う。
鍵格納部210は、鍵確認応答部200の応答に対して、マスタデバイス10から送信された、暗号化されたマスタキー300を、マスタデバイス10から受信する。
鍵格納部210は、受信した暗号化されたマスタキー300を、テンポラリキー310で復号化し、記憶部22に格納する。
鍵格納部210は、この格納が成功した場合、その旨をマスタデバイス10に返信する(タイミングT4)。
【0048】
(ステップS106、S204)
ここで、マスタデバイス10の主認証部120と、スレーブデバイス20の副認証部220が、相互認証処理を行う。
この処理では、マスタデバイス10の主認証部120と、スレーブデバイス20の副認証部220とが、マスタキー300を用いて相互認証する。具体的には、主認証部120は、記憶部12に格納されたマスタキー300にて、スレーブデバイス20との間で相互認証する。また、副認証部220は、鍵格納部210により記憶部22に格納されたマスタキー300にて、マスタデバイス10との間で相互認証する(タイミングT5、T6)。
この相互認証は、例えば、特許文献2に記載されたような方式で行うことが可能である。より具体的には、例えば、主認証部120と副認証部220が、それぞれ乱数値を作成してマスタキー300で暗号化し、これらをお互いに送受信した後、合計値を求めることで確認する。
ここでは、主認証部120は、スレーブデバイスからの返信の内容を確認して、相互認証が成功したか、失敗したかを判断する(タイミングT7)。主認証部120は、認証が成功した場合に、その旨を記憶部12の記録媒体に格納する。
以上により、本発明の実施の形態に係る相互認証処理を終了する。
【0049】
〔本実施形態の主な効果〕
以上のように構成することで、以下のような効果を得ることができる。
上述したように、特許文献1に記載されたような従来のカードリーダでは、スレーブデバイスが交換された際に、マスタキーを消去する必要があった。
【0050】
ここで、
図4~
図6を参照して、典型的なカードリーダによる相互認証の例について説明する。
図4は、マスタデバイスとスレーブデバイスにおいて、工場等における製造、検査時に、最初(初回)に起動され、相互認証をする場合の認証シーケンスを示す。マスタデバイスとスレーブデバイスは、それぞれ共通のテンポラリキーを格納している。まず、マスタデバイスにおいて、マスタキーを生成する(タイミングT1-2)。この例では、マスタキーは、カードリーダ1毎にユニーク(デバイスユニーク)となる。そして、マスタデバイスは、テンポラリキーを用いて、マスタキーを送信し、スレーブデバイスに導入させる(タイミングT2-2)。スレーブデバイスは、成功返信を行う(タイミングT3-2)。その後、マスタデバイスは、マスタキーによる相互認証を行う(タイミングT4-2)。これに対して、スレーブデバイスは、返信を行う(タイミングT5-2)。マスタデバイスは、スレーブデバイスからの返信の内容を確認して、相互認証が成功したか、失敗したかを判断する(タイミングT6-2)。
【0051】
図5は、スレーブデバイスの交換時に、仮にマスタキーを消去せずに、そのまま相互認証をしようとした場合のシーケンスを示す。
典型的なカードリーダにおいて、マスタキーはデバイスユニークである。このため、マスタデバイスからマスタキーによる相互認証を行うと(タイミングT4-3)、スレーブデバイスからの返信(タイミングT5-3)をマスタデバイスが判定して、相互認証が失敗する(タイミングT6-3)。これは、交換時にはスレーブデバイスに交換後のマスタキーが格納されていないため、「マスタキーが異なる」とマスタデバイスが判断するためである。
さらに、既にマスタキーが格納された中古のスレーブデバイス、不正なスレーブデバイス等に交換された場合も、相互認証が失敗し、使用が禁止される。
【0052】
図6は、典型的なカードリーダにおいて、
図4の初回の相互認証が行われた後の状態における、スレーブデバイス交換時のシーケンスを示す。このように、典型的なカードリーダでは、マスタキーがカードリーダ毎にユニークのため、相互認証の前に、最初にマスタキーを消去する手順が必要となる(タイミングT0-4)。その後は、上述の
図4と同様の手順で相互認証が行われる(タイミングT1-4~T6-4)。
このように、暗号機能対応のセキュリティ製品であるスレーブデバイスの交換時には、相互認証のため、マスタキーをいったん消去する必要があった。このようにマスタキーを消去する際には、セキュリティ上の懸念があるため、例えば、安全な環境(セキュリティルーム等)で行わなければならなかった。
【0053】
これに対して、本発明の実施の形態に係るカードリーダ1は、相互に認証するマスタデバイス10とスレーブデバイス20とを備える相互認証システムであって、マスタデバイス10は、一時的に用いられる鍵データであるテンポラリキー310、及び認証に用いられる鍵データであるマスタキー300を格納する記憶部12と、記憶部12に格納されたのと同様のマスタキー300をスレーブデバイス20が格納しているか問い合わせる鍵確認部100と、鍵確認部100の問い合わせの応答において、スレーブデバイス20がマスタキー300を格納していない場合、テンポラリキー310にて、マスタキー300を暗号化してスレーブデバイス20に送信する鍵導入部110と、鍵導入部110により送信されたマスタキー300にて、スレーブデバイス20との間で相互認証する主認証部120とを備え、スレーブデバイス20は、テンポラリキー310を格納する記憶部22と、マスタデバイス10からの問い合わせに対して、記憶部22にマスタキー300が既に格納されているか確認して応答する鍵確認応答部200と、鍵確認応答部200の応答に対して、マスタデバイス10から送信されたマスタキー300をテンポラリキー310で復号化して記憶部22に格納する鍵格納部210と、鍵格納部210により記憶部22に格納されたマスタキー300にて、マスタデバイス10との間で相互認証する副認証部220とを備えることを特徴とする。
【0054】
このように構成し、カードリーダ1は、マスタキー300は変更せず、交換後のスレーブデバイス20にマスタキー300の有無を確認し、なければ、テンポラリキー310を用いてマスタキー300を導入する。これにより、マスタデバイス10は、マスタキー300を消去せずにスレーブデバイス20に対してマスタキー300の導入を行い、相互認証を成功させることができる。結果として、高度なセキュリティが求められる暗号磁気ヘッド等のスレーブデバイス20を安全に交換可能となり、セキュリティ性の高い状態や場所等を確保することなく、従来よりもセキュリティ性を高めることができる。
【0055】
また、上述したように、マスタキーの消去にはセキュリティ上の懸念があり、安全な環境で行わなければならなった。このように安全な環境を構築するためには労力やコストがかかっていた。
本実施形態のカードリーダ1は、このように安全な環境がない場合であっても、セキュリティ性が高い状態で相互認証が可能となり、労力やコストを低減できる。さらに、サービスパーソンが、ATM等の修理現場で、直接、暗号磁気ヘッド等を交換して、稼働させることが可能となるため、メンテナンスの労力やコストも削減できる。
【0056】
本発明の実施の形態に係るカードリーダ1は、マスタデバイス10にて、初期起動した際に、乱数を用いてマスタキー300を生成し、記憶部12に格納する鍵生成部130を更に備えることを特徴とする。
このように構成することで、工場出荷時等において、マスタデバイス10を初期起動した際に、デバイスユニークな鍵データを安全に生成することが可能となる。
【0057】
本発明の実施の形態に係るカードリーダ1は、鍵確認部100が、特定タイミングで、スレーブデバイス20がマスタキー300を格納しているか問い合わせることを特徴とする。
このように構成し、マスタデバイス10は、電源オン時等の特定タイミングで、スレーブデバイス20がマスタキー300を格納しているか問い合わせる。これにより、不正ヘッド等が取り付けられたことを、検知することが可能となる。
【0058】
本発明の実施の形態に係るカードリーダ1は、主認証部120及び副認証部220による相互認証には、対称鍵暗号方式を用いることを特徴とする。
このように構成し、RSAのような非対称鍵暗号を使用せず、AESのような対称鍵暗号のみで認証を行うことで、相互認証に係る処理速度を向上させることができる。結果として、安価なCPUでも相互認証が実現可能となる。
【0059】
〔他の実施の形態〕
なお、上述の実施の形態においては、相互認証システムの一例として、マスタデバイス10及びスレーブデバイス20を含むカードリーダ1を用いる構成について説明した。
しかしながら、本発明の他の実施の形態に係る相互認証システムは、カードリーダと上位装置との間で相互認証を行うような相互認証システムとして構成することも可能である。加えて、カードリーダにおいて、スレーブデバイス20も1つに限らず複数あってもよい。この場合、スレーブデバイス20として暗号ICブロックを用いるような構成も可能である。さらに、カードリーダ以外の相互認証を行うセキュリティ製品を含む相互認証システムを構成することも可能である。このセキュリティ製品としては、例えば、カードプリンタ、カード発行装置、その他のカード関連の装置、ATM等の本体等が含まれていてもよい。また、スマートフォン等の携帯端末、PC(Personal Computer)、家電製品、自動車等の各種情報処理装置をマスタデバイス又はスレーブデバイスとして含む相互認証システムを構成することも可能である。
このように構成することで、様々な構成に対応した相互認証が可能となる。
【0060】
また、上述の実施の形態においては、マスタデバイス10にてマスタキー300が生成される例について記載した。しかしながら、このマスタキー300は、上位装置から送信して導入させたり、別途、製造時にデバイスユニークな鍵データを導入させたりして、記憶部12に格納させてもよい。
このように構成することで、装置毎に格納されたマスタキー300を管理等することも可能となる。
【0061】
また、上述の実施の形態においては、認証を行うために共通鍵(対称鍵)暗号方式のAESを用いる例について説明した。しかしながら、Triple DES等の暗号方式を用いることも可能である。また、制御部11、21の演算性能によっては、公開鍵暗号を用いることも可能である。
このように構成することで、カードリーダの構成や規格上の要求等に合わせた適切な相互認証システムを提供可能となる。
【0062】
なお、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更して実行することができることは言うまでもない。
【符号の説明】
【0063】
1 カードリーダ
2 カード媒体
10 マスタデバイス
11、21 制御部
12、22 記憶部
20 スレーブデバイス
23 磁気ヘッド
100 鍵確認部
110 鍵導入部
120 主認証部
130 鍵生成部
200 鍵確認応答部
210 鍵格納部
220 副認証部
300 マスタキー
310 テンポラリキー