(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-18
(45)【発行日】2022-03-01
(54)【発明の名称】情報処理システム
(51)【国際特許分類】
H04L 9/32 20060101AFI20220221BHJP
G06F 21/44 20130101ALI20220221BHJP
【FI】
H04L9/32 200A
G06F21/44
(21)【出願番号】P 2018014703
(22)【出願日】2018-01-31
【審査請求日】2020-12-07
(73)【特許権者】
【識別番号】000002233
【氏名又は名称】日本電産サンキョー株式会社
(74)【代理人】
【識別番号】100097113
【氏名又は名称】堀 城之
(74)【代理人】
【識別番号】100162363
【氏名又は名称】前島 幸彦
(74)【代理人】
【識別番号】100194146
【氏名又は名称】長谷川 明
(74)【代理人】
【識別番号】100194283
【氏名又は名称】村上 大勇
(74)【代理人】
【識別番号】100141324
【氏名又は名称】小河 卓
(72)【発明者】
【氏名】木村 正憲
【審査官】青木 重徳
(56)【参考文献】
【文献】特開2013-073299(JP,A)
【文献】特開2009-020742(JP,A)
【文献】特表2011-525314(JP,A)
【文献】特開2008-234072(JP,A)
【文献】特開2005-267031(JP,A)
【文献】特開2007-036501(JP,A)
【文献】特開2011-176649(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/44
(57)【特許請求の範囲】
【請求項1】
上位装置と情報処理装置との間で情報の送受信を行う情報処理システムであって、
前記上位装置は、
共通鍵暗号方式を用いて前記情報処理装置が正当な機器であることを認証する上位装置側認証処理部と、
前記上位装置と前記情報処理装置とが共通して保有する機器認証情報を生成する認証情報アルゴリズムを有し、前記情報処理装置が所有する機種固有情報に基づいて前記機器認証情報を生成する認証情報生成部と、
前記情報処理装置と通信を行う通信部と、を備え、
前記情報処理装置は、
前記上位装置と認証処理を行う情報処理装置側認証処理部と、
前記機器認証情報および前記機種固有情報を記憶する不揮発性記憶部と、を備え、
前記上位装置において、
前記認証情報生成部は、前記情報処理装置の機種固有情報からマスターキーを生成する機能を有し、
前記認証情報生成部、前記上位装置側認証処理部、及び前記通信部の機能は、それぞれの機能をモジュールとした制御ソフトウェアとして構成されており、
前記上位装置は、
前記情報処理装置の前記マスターキーを書き換え、及び予め仮の機器認証情報として保持しているテンポラリーキーに書き換え可能なツールを備えることを特徴とする情報処理システム。
【請求項2】
前記制御ソフトウェアの前記認証情報生成部として機能するモジュールはDLLとして構成されていることを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記認証情報生成部として機能する前記DLLのファイル名および前記DLLとの通信インターフェースは変更不可であることを特徴とする請求項2に記載の情報処理システム。
【請求項4】
前記情報処理装置の前記機種固有情報は、前記上位装置側認証処理部のメモリに格納されて、
前記上位装置側認証処理部は、入力毎に前記情報処理装置が入れ替えられたか否かを確認することを特徴とする請求項1から3までのいずれかに記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、上位装置と情報処理装置との間で情報の送受信を行う情報処理システムに関し、特に、上位装置が共通鍵暗号方式を用いて情報処理装置が正当な機器であることを認証する機能を備えた情報処理システムに関する。
【背景技術】
【0002】
一般に、上位装置(ホストコンピュータ等)が、通信相手である情報処理装置(カードリーダ等)に価値のある情報を送信する場合には、通信相手の情報処理装置が正当なものであることを確認する機器認証を行っている(例えば、特許文献1参照)。このような機器認証では、暗号化するための鍵および復号するための鍵として同じ鍵を用いる共通鍵暗号方式を用いている。
【0003】
特許文献1に示す機器認証では、装置運用管理者が暗号の知識や経験が無くても、機体毎にユニークなマスターキーを設定して運用できるアルゴリズムを提案している。共通鍵暗号では、デバイスと装置運用管理者側で共通の鍵を保持しなければならない。デバイス出荷時には機種共通のマスターキーを保持しているが、1台のマスターキーが流出した時点で全ての同機種の鍵情報が流出することになる。それを防ぐためには機体固有のマスターキーを設定することが望ましい。また、セキュリティの観点から、デバイス製造者はマスターキーの生成に関わらない方が望ましい。この方式では、装置運用管理者側で3DESの知識と技術が必要となり、適切な鍵の管理と運用をしなければならないため、時間と費用がかかる。装置運用管理者側ではマスターキーの生成アルゴリズムのみを考え、その他の制御は全てデバイス製造者で行うことにより、少ないコストで提案した運用が可能となる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に開示の技術では、上述の様に、情報処理装置の製造業者(すなわちデバイス製造者)がマスターキーの生成アルゴリズム以外の制御を行うが、デバイス製造業者におけるソフトウェア開発リソースが不十分な場合もあり、一層導入が容易となる技術が求められていた。
【0006】
本発明は、このような事情に鑑み、機器認証情報の漏えいを防止し、よりセキュリティ性の高い機器認証を容易に構築可能な情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、上位装置と情報処理装置との間で情報の送受信を行う情報処理システムであって、前記上位装置は、共通鍵暗号方式を用いて前記情報処理装置が正当な機器であることを認証する上位装置側認証処理部と、前記上位装置と前記情報処理装置とが共通して保有する機器認証情報を生成する認証情報アルゴリズムを有し、前記情報処理装置が所有する機種固有情報に基づいて前記機器認証情報を生成する認証情報生成部と、前記情報処理装置と通信を行う通信部と、を備え、前記情報処理装置は、前記上位装置と認証処理を行う情報処理装置側認証処理部と、前記機器認証情報および前記機種固有情報を記憶する不揮発性記憶部と、を備え、前記上位装置において、前記認証情報生成部は、前記情報処理装置の機種固有情報からマスターキーを生成する機能を有し、前記認証情報生成部、前記上位装置側認証処理部、及び前記通信部の機能は、それぞれの機能をモジュールとした制御ソフトウェアとして構成されており、前記上位装置は、前記情報処理装置の前記マスターキーを書き換え、及び予め仮の機器認証情報として保持しているテンポラリーキーに書き換え可能なツールを備えることを特徴とする。
【0008】
本発明によれば、情報処理システムの装置運用管理者は、共通鍵暗号方式のノウハウ(知識や技術)が十分でない場合でも、十分にセキュリティが確保された情報処理システムを構築でき、かつ、情報処理装置の製造業者は、実際の運用時の機器認証情報については、把握することがないため、製造業者からの機器認証情報の漏えいを防止し、よりセキュリティ性の高い機器認証を容易に構築できる。
【0009】
また、本発明では、認証情報アルゴリズムについては、情報処理装置の製造業者がソースコード(機器認証情報Kmを生成するための認証情報アルゴリズム)をモジュール(部品)として情報処理システムの装置運用管理者に提供することで、情報処理システムの装置運用管理者は、提供されたソースコードに、機器認証情報Kmを生成する独自のアルゴリズムや機能を追加して、認証鍵生成のためのモジュールを作成することができる。
【0010】
さらに、認証情報生成部、上位装置側認証処理部、及び通信部の機能は、それぞれの機能をモジュールとした制御ソフトウェアとして、情報処理システムの装置運用管理者に提供されるので、装置運用管理者はモジュール単位で機能を変更・調整することができ、開発リソースを抑制でき、現実の導入がより容易になる。すなわち、装置運用管理者は、3DES等の共通鍵暗号方式のノウハウ(知識や技術)が不十分でない場合でも、十分にセキュリティが確保された情報処理システムを構築できる。一方、情報処理装置の製造業者は、機器認証情報に関して、製造時に仮の機器認証情報を設定しているだけで、実際の運用時の機器認証情報Kmについては、把握することがないため、製造業者からの漏洩といったリスクを回避できる。
【0011】
本発明において、前記制御ソフトウェアの前記認証情報生成部として機能するモジュールはDLLとして構成されていることが好ましい。
本発明では、装置運用管理者は、DLLとして提供されたソースコードに、機器認証情報Kmを生成する独自のアルゴリズムや機能を追加して、認証鍵生成DLLを作成することができる。これにより、3DES等の知識と技術が必要となる部分は、情報処理装置の製造業者がソースコードをDLLとして、利用が容易なパッケージ(ソフトウェア)として提供することができるため、装置運用管理者は、独自の、機器認証情報Kmを生成する認証情報アルゴリズム(認証情報を生成するDLL)を一層容易に導入できる。
【0012】
前記認証情報生成部として機能する前記DLLのファイル名および前記DLLとの通信インターフェースは変更不可であることを特徴とする。
これによって、予め用意されたDLLをベースに動的に処理プログラムが作成されるため、互換性を確保しつつ、アプリケーションやカードリーダ制御ソフトの処理や、動作チェック等を適切に運用できる。
【0013】
前記情報処理装置の前記機種固有情報は、前記上位装置側認証処理部のメモリに格納されて、前記上位装置側認証処理部は、入力毎に前記情報処理装置が入れ替えられたか否かを確認することを特徴とする。
入力毎に入れ替えの確認がなされるので、認証処理のセキュリティを一層向上させることができる。
【発明の効果】
【0014】
本発明によれば、情報処理システムの装置運用管理者は、共通鍵暗号方式のノウハウ(知識や技術)が十分でない場合でも、十分にセキュリティが確保された情報処理システムを構築でき、かつ、情報処理装置の製造業者は、実際の運用時の機器認証情報については、把握することがないため、製造業者からの機器認証情報の漏えいを防止し、よりセキュリティ性の高い機器認証を容易に構築できる。
【図面の簡単な説明】
【0015】
【
図1】実施形態1に係る、情報処理システムを示す機能ブロック図である。
【
図2】実施形態1に係る、上位装置が有する主なソフトウェアを示す図である。
【
図3】実施形態1に係る、情報処理システムにおける機器認証情報を設定する動作を示す流れ図である。
【
図4】
図3の機器認証情報を設定する動作に対応するフローチャートを示す図である。
【
図5】実施形態1に係る、情報処理システムにおける機器認証動作を示す流れ図である。
【
図6】実施形態1に係る、情報処理システムにおける機器認証情報の生成動作を示す流れ図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態について説明する。
[発明の実施の形態1]
【0017】
(情報処理システムの構成)
図1は、本発明の実施の形態に係る情報処理システム1を示す機能ブロック図である。
情報処理システム1は、図示のように、ホストコンピュータのような上位装置2と、この上位装置2に通信手段を介して接続された情報処理装置としてのカードリーダ3とから構成されている。なお、本実施形態では、通信手段はRS232CやUSBのような有線のケーブルである。なお、通信手段は、これら有線に限定されることなく、LANで接続でもよく、または、無線であってもよい。
【0018】
図1に示すように、上位装置2は、認証処理部20、制御部25、通信部26、記憶部27、認証情報生成部28を備える。
【0019】
認証処理部20は、カードリーダ3との間で認証処理を行う。具体的には、認証処理部20は、乱数発生部21、暗号部22、復号部23、認証判定部24を備えて構成され、機器認証に必要な各部の制御を行う。また、認証処理部20は、初期(カードリーダ3の工場出荷時)においてカードリーダ3の製造者が作成し提供する仮の機器認証情報Ktが、安全な方法で保持する。
【0020】
仮の機器認証情報Ktは、上位装置2とカードリーダ3との間で送受信されるデータを共通鍵暗号方式を用いて暗号通信するのに先立ち、共通鍵としての通信用交換鍵Kexを生成するためのものである。なお、通信用交換鍵Kexを生成する処理についての説明は後述する。また、上位装置2は、種々のシステム制御のためのプログラムやパラメータを格納するための不揮発性メモリやハードディスク装置を備えていてもよく、そこに仮の機器認証情報Ktを格納するようにしてもよい。
【0021】
乱数発生部21は、通信用交換鍵Kex(n)(nは整数。以下同じ)および乱数R(n)(nは整数。以下同じ)を生成する。乱数発生部21は、通信用交換鍵Kex(n)、乱数R(n)を生成するアルゴリズム(以下、乱数生成アルゴリズムという)を予め記憶している。通信用交換鍵Kex(n)は、上位装置2とカードリーダ3とが互いにデータを暗号化して送信する際に用いられる暗号鍵(本実施形態では、復号鍵も同じ)である。乱数R(n)は、データを暗号化して送信する際に、機器認証情報等とともに送信されるデータである。
【0022】
通信用交換鍵Kex(n)、乱数R(n)は、上位装置2とカードリーダ3との間で実行される機器認証処理や機器認証情報生成処理ごとに異なっている。本実施形態では、通信用交換鍵Kex(n)は機器認証処理ごとに異なるように生成される。また、乱数R(n)は、機器認証処理および機器認証情報生成処理ごとに異なるように生成される。
【0023】
このように、たとえ、同一の機器認証情報が送信される場合であっても、乱数発生部21で生成される度に通信用交換鍵Kex(n)、乱数R(n)が異なるため、これらを用いて暗号化された送信データも異なったものとなる。したがって、上位装置2とカードリーダ3との信号を傍受しておき、カードリーダ3を使わずに傍受したのと同様の信号を別のカードリーダに送出したとしても、通信用交換鍵Kex(n)、乱数R(n)が異なるために信号が一致することはなく、不正操作を防止できる。このため、通信の盗聴や第三者による解読をさらに困難なものにし、よりセキュリティ性を高くしている。
【0024】
暗号部22は、3DES(トリプルDES)により規格されている暗号アルゴリズムEを予め記憶する。暗号部22は、乱数発生部21で生成した乱数R(n)に暗号アルゴリズムEに従って暗号化された乱数R(n)eを生成する。このとき、通信用交換鍵Kex(n)を暗号アルゴリズムEの鍵とする。暗号化された乱数R(n)eは、次の数1に示すように表現できる。
〔数1〕R(n)e=E(Kex(n),R(n))
【0025】
(3DESについて)
本実施形態で使用する暗号方式は、暗号化のための鍵(暗号鍵)と復号のための鍵(復号鍵)とが同じ鍵であることを特徴とする共通鍵暗号方式が用いられている。さらに、この共通鍵暗号方式の中でも、DES(Data Encryption Standardの略)は、1977年に米国情報処理標準規格(FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION:FIPS-PUB)46-3として規定され、最も広く利用されている暗号方式の1つである。さらに、本実施形態では、DESから3DESにし、DESに比べて解読しにくくしている。3DESは、DESのアルゴリズムを3回繰り返す暗号方式であり、DESのアルゴリズムを流用することができる、さらに、暗号鍵の鍵長を拡張するのと同様の効果を得ることができ、比較的容易に暗号強度を高めることができる。
【0026】
復号部23は、DESにより規格されている復号アルゴリズムDを予め記憶する。復号部23は、暗号化された乱数R(n)eを復号アルゴリズムDに従って復号した乱数R(n)を生成する。このとき、通信用交換鍵Kex(n)を復号アルゴリズムDの鍵とする。生成された乱数R(n)は、次の数2に示すように表現できる。
〔数2〕R(n)=D(Kex(n),R(n)e)
【0027】
認証判定部24は、カードリーダ3から返され復号部23で復号された機器認証情報に基づき、カードリーダ3が正当な装置であるか、不正な装置であるかを判定する。具体的には、復号部23から受け取った乱数R’と、乱数発生部21で生成され記憶部27に格納されていた乱数Rとを比較し、乱数R’と乱数Rとが一致すれば、上位装置2が接続されたカードリーダ3を正しい装置であると正当性を認証する。また、乱数R’と乱数Rとが一致していなければ、上位装置2は接続されたカードリーダ3を不正な装置であると判定する。
【0028】
制御部25は、上位装置2全体、すなわち、認証処理部20、通信部26、記憶部27、認証情報生成部28を含めた上位装置2全体を制御する。具体的には、制御部25には、図示しないが、制御用プログラムなどを用いて様々な演算処理を行い、上位装置2全体を制御するCPU、上位装置2が処理を実行する際に必要な作業データがコピーされる書換え可能なメモリであって、CPUが使用するプログラムや演算パラメータなどの制御用データが記録されたROM、CPUの作業領域としても機能するRAM等により構成されている。
【0029】
通信部26は、カードリーダ3の通信部35との間で通信手段としてのケーブル(通信回線)を介して通信を行う。なお、通信手段は、本実施の形態ではケーブル等の有線であるが、これに限定されるものではなく、無線でもよい。
【0030】
記憶部27は、揮発性のメモリであり、乱数発生部21で生成された通信用交換鍵Kex(n)および乱数R(n)を格納している。
【0031】
認証情報生成部28は、機器認証情報Kmを生成する認証情報アルゴリズムを記憶しており、カードリーダ3のシリアル番号が入力されることで、機器認証を行うための機器認証情報Kmを生成する。ここで、シリアル番号とはカードリーダ3の個々の機体に製造ごとに割り付けられる製造番号であるが、シリアル番号以外のカードリーダ3固有の固有情報(例えば、ID番号や機器番号等)であってもよい。
【0032】
また、認証情報生成部28で生成された機器認証情報Kmは、カードリーダ3側へ機器認証情報Kmを設定する動作が終わり次第に消去している。すなわち、上位装置2は、カードリーダ3が新たに接続され、または改めて接続し直されて機器認証動作を開始するごとに、接続されたカードリーダ3のシリアル番号に基づき機器認証情報Kmを生成し直す。
【0033】
これにより、上位装置2は、どのカードリーダ3が接続されるか予測できない場合でも、接続される可能性のある全てのカードリーダ3に対応する形で機器認証情報Kmを長期間にわたって保持する必要はない。
【0034】
また、上位装置2で機器認証情報Kmを保持し続けるために、ファイルやレジストリ等にこれを出力する必要もない。つまり、機器認証情報Kmが流出するリスクを減少させ、セキュリティを確保することができ、さらに、メモリ領域を削減することが可能となる。
【0035】
(上位装置のソフトウェア構成)
つぎに、
図2を参照して、上位装置2をソフトウェアの観点で
図1の機能ブロックと対応させつつ説明する。
図2は、実施形態1に係る、上位装置2が有する主なソフトウェアを示す図である。上位装置2は、アプリケーション51と、カードリーダ制御ソフトウェア60と、を主なソフトウエアとして備えている。
【0036】
上位装置2は、アプリケーション51と、カードリーダ制御ソフトウェア60と、認証鍵生成DLL55とを備える。カードリーダ制御ソフトウェア60は、デバイス・暗号制御DLL61と、通信制御DLL62と、インターフェース部DLL63とを備える。デバイス・暗号制御DLL61は、認証処理部20(乱数生成部21、暗号部22、復号部23、認証判定部24)、制御部25の機能を実現するDLLである。認証鍵生成DLL55は、カードリーダ3の機種固有情報から所定の認証情報アルゴリズムをもとに機器認証情報Kmを生成するDLLである。
【0037】
アプリケーション51は、カードリーダ制御ソフトウェア60が提供する認証機能を使用するソフトウェアであり、カードリーダ3の使用者によって用意され導入される。
【0038】
カードリーダ制御ソフトウェア60は、カードリーダ3との通信を制御し、認証処理を行うソフトウェアであり、カードリーダ3の製造者が提供するものである。本形態では、
図1の認証処理部20、制御部25及び通信部26の機能を実現する。なお、カードリーダ制御ソフトウェア60は、認証処理部20、制御部25及び通信部26の機能のうち、特に、認証処理の機能をソフトウェアとして実装するものであり、それ以外の機能についてはソフトウェアとして実装しなくてもよい。
【0039】
カードリーダ制御ソフトウェア60は、ユニットとして構成されている。このユニットは、交換可能であり、パッケージされている。このように、パッケージされていることで、カードリーダ3とは別のカードリーダを使用しても、その別のカードリーダ対応のユニットへ交換することでアプリケーションの変更は不要となり、カードリーダ使用者の負担を軽減することが出来る。
【0040】
また、本形態では、カードリーダ制御ソフトウェア60はモジュール化されたカードリーダ制御ソフトウェアDLL群である。より詳細には、カードリーダ制御ソフトウェアDLL群は、デバイス・暗号制御DLL61と、通信制御DLL62と、インターフェース部DLL63と、認証鍵生成DLL55とを備えている。すなわち、認証処理部20、制御部25及び通信部26の機能を有するプログラムが、機能毎にモジュール化されている。そして機能追加や動作変更をする場合に該当DLLを差し替えることで対応できる。カードリーダ制御ソフトウェア60による処理は、これらDLLファイルによって行われる。これにより、モジュール化されたことで、各モジュールでメンテナンスを行うことができ、メンテナンス性を向上することができる。
【0041】
デバイス・暗号制御DLL61は、認証処理部20(乱数生成部21、暗号部22、復号部23、認証判定部24)、制御部25認証処理の機能、及び通信部26の機能を実現するDLLである。
【0042】
通信制御DLL62は、カードリーダとの通信に用いられるDLLであり、認証処理部20の通信部26の機能を実現する。
【0043】
インターフェース部DLL63は、アプリケーション51とのインターフェースとなるDLLである。
【0044】
認証鍵生成DLL55は、カードリーダ3の機種固有情報から所定の認証情報アルゴリズムをもとにKmを生成するDLLである。本実施形態では、認証情報アルゴリズムは、上位装置2の製造業者がソースコード(機器認証情報Kmを生成するための認証情報アルゴリズム(原始プログラム))をDLL(Dynamic Link Library)として作成し、情報処理システム1(カードリーダ3)の使用者(装置運用管理者)に提供する。
【0045】
情報処理システム1の装置運用管理者は、DLLとして提供されたソースコードに、機器認証情報Kmを生成する独自のアルゴリズムや機能を追加して、認証鍵生成DLL55を作成する。これにより、3DESの知識と技術が必要となる部分は、上位装置2の製造業者がソースコードをDLLとして、利用が容易に提供するため、装置運用管理者は、独自の、機器認証情報Kmを生成する認証情報アルゴリズム(認証情報を生成するDLL)を容易に導入できる。なお、一般に変更に伴い互換性が無くなり製造業者のシステムから呼び出せなくなるおそれがあり、それを回避するために、DLL名称とインターフェース部DLL63は変更不可となっている。
【0046】
(カードリーダの構成)
カードリーダ3は、
図1に示すように、認証処理および3DESの暗号化/復号を行う認証処理部30と、カードリーダ3全体の制御を行う制御部34と、上位装置2側との通信を行う通信部35と、揮発性の記憶部36と、不揮発性記憶部としてのEEPROM37とを有している。さらに、認証処理部30は、暗号部31、復号部32、認証判定部33から構成されている。
【0047】
ここで、制御部34及び通信部35は、それぞれ上位装置2の制御部25及び通信部26と同等の機能を有し、詳細な説明は省略する。同様に、認証処理部30を構成する暗号部31、復号部32は、上位装置2の暗号部22、復号部23と同様の暗号アルゴリズムEおよび復号アルゴリズムDを備えて同等の機能を有しているので、ここでの詳細な説明は省略する。
【0048】
認証判定部33は、上位装置2の乱数生成部21(デバイス・暗号制御DLL61)で生成された後、暗号化されてカードリーダ3に送信された機器認証情報Kmを復号した復号部32から送信された通信用交換鍵Kex(n)のデータの有効性(ひいては、上位装置2から受信したデータが有効であるか否か)をチェックする。
【0049】
具体的には、パリティチェックや脆弱鍵であるかどうかをチェックする。パリティチェックはデータの誤り(エラー)を検出する手法の一つである。また、脆弱鍵とは、共通鍵暗号技術としてのDESにおいてセキュリティ上で好ましくないとされる鍵(4個の脆弱鍵と12個の準脆弱鍵)であり、それと一致するかどうかをチェックしている。なお、4個の脆弱鍵と12個の準脆弱鍵は公表されているので、ここでの説明は省略する。
【0050】
記憶部36は揮発性であり、上位装置2の乱数生成部21(デバイス・暗号制御DLL61)で生成された後、送信された復号部32で復号された機器認証情報Kmのうち認証判定部33で有効であると判定された通信用交換鍵Kex(n)を格納する。
【0051】
EEPROM37は、不揮発性であり、仮の機器認証情報Ktおよび機器認証情報Km、カードリーダ3のシリアル番号を格納している。すなわち、カードリーダ3は、電源立ち上げ時またはリセット時においても、機器認証情報Kmを消去せずに保持している。
【0052】
(機器認証情報の設定動作)
以下、機器認証情報Kmを設定する動作について説明する。
図3は、実施形態1に係る情報処理システム1における機器認証情報Km(共通鍵)を設定する動作を示す流れ図である。
図4は、
図3の機器認証情報Km(共通鍵)を設定する動作に対応するフローチャートを示す図である。
【0053】
情報処理システム1においては、カードリーダ3が上位装置2にケーブル(通信回線)を介して接続された時点で、このカードリーダ3のシリアル番号に基づく機器認証情報Kmを設定する動作が実行される。以下、この機器認証情報Kmを設定する動作を
図3および
図4に基づいて詳述する。
【0054】
初期(工場出荷時)において、カードリーダ3および上位装置2は共通暗号鍵として仮の機器認証情報Ktを保持している。例えば、仮の機器認証情報Ktは、カードリーダ3の機種を示す機種番号である。機種番号は、機体固有のシリアル番号とは異なり、同一の機種に共通の番号または記号である。
【0055】
まず、上位装置2の制御部25(デバイス・暗号制御DLL61)が、機器認証情報Kmを設定する処理を開始する。具体的には、上位装置2から機器認証を行うための要求コマンドが通信部26(通信制御DLL62)、通信部35を介して、カードリーダ3に送信される。カードリーダ3は、要求コマンドを受信した旨、通信部35、通信部26(通信制御DLL62)を介して上位装置2に返信される。
【0056】
次に、上位装置2の乱数発生部21(デバイス・暗号制御DLL61)が、通信用交換鍵Kex(n)および乱数R(n)を生成する(ステップS1)。なお、第1回目の生成であるので、nは1とする。すなわち、乱数発生部21(デバイス・暗号制御DLL61)は、乱数生成アルゴリズムに従って通信用交換鍵Kex(1)、乱数R(1)を生成する。また、生成した通信用交換鍵Kex(1)および乱数R(1)は、記憶部27に格納される。
【0057】
その後、暗号部22(デバイス・暗号制御DLL61)は、これらの通信用交換鍵Kex(1)および乱数R(1)を、仮の機器認証情報Ktを用いて3DESの暗号アルゴリズムEに従って暗号化し、暗号データC1=E(Kt,Kex(1)+R(1))を生成する(ステップS2)。ここでは、仮の機器認証情報Ktを暗号アルゴリズムEの鍵として使用している。なお、Kex(1)+R(1)は、通信用交換鍵Kex(1)のデータと乱数R(1)のデータが入れ子のようになっている。
【0058】
また、上位装置2の認証処理部20(カードリーダ制御ソフトウェア60)は、暗号データC1を通信部26(通信制御DLL62)経由でカードリーダ3へ送信する。
【0059】
次いで、カードリーダ3は、これを通信部35経由で受信する(ステップS3)。認証処理部30は、受信した暗号データC1を、カードリーダ2が予め保持している仮の機器認証情報Ktを用いて3DESの復号アルゴリズムDに従って復号し、(Kex(1)+R(1))=D(Kt,C1)により、通信用交換鍵Kex(1)および乱数R(1)を復号する。ここでは、カードリーダ2が予め保持している仮の機器認証情報Ktを暗号アルゴリズムEの鍵として使用している。
【0060】
さらに、カードリーダ3の認証処理部30の認証判定部33は、復号した、上位装置2が保持する通信用交換鍵Kexが正しいか否かを確認する(ステップS4)。ここでは、通信用交換鍵Kex(1)のデータのパリティチェック(コード)が正しいかどうかを確認する。また、通信用交換鍵Kex(1)のデータが、3DESとしてセキュリティ上で好ましくないとされる鍵(4個の脆弱鍵と12個の準脆弱鍵)と一致するかどうかをチェックする。
【0061】
その結果、認証判定部33は、通信用交換鍵Kexが正しくないと判定した場合、カードリーダ3は、エラーを上位装置2へ返して機器認証情報Kmを設定する動作を終了させる(ステップS20)。
【0062】
また、ステップS4に戻り、通信用交換鍵Kex(1)が正しいと判定した場合、カードリーダ3の認証処理部30は、復号した通信用交換鍵Kex(1)および乱数R(1)を記憶部36に格納する。引き続き、認証処理部30の暗号部31は、復号した乱数R(1)を、復号した通信用交換鍵Kex(1)を用いて3DESの暗号アルゴリズムEに従って暗号化し、暗号データC2=E(Kex(1),R(1))を生成する。生成した暗号データC2を、カードリーダ3は、制御部34の指令により通信部35経由で上位装置2へ送信する(ステップS5)。なお、送信後、漏えい等を含めセキュリティ性を高めるために、乱数R(1)を消去する。
【0063】
次に、上位装置2は、暗号データC2を通信部26(通信制御DLL62)経由で受信する。つづいて、復号部23(デバイス・暗号制御DLL61)が、受信した暗号データC2を、記憶部27に保持している通信用交換鍵Kex(1)を用いて3DESの復号アルゴリズムDに従って復号し、R(1)=D(Kex(1),C2)により、乱数R(1)を復号する(ステップS6)。
【0064】
そして、認証判定部24(デバイス・暗号制御DLL61)は、復号した乱数R(1)が、元の乱数R(1)と一致するか否かを確認する(ステップS7)。つまり、ステップS1で、上位装置2の乱数発生部21(デバイス・暗号制御DLL61)が生成した乱数R(1)と、カードリーダ3から送信されてきた乱数R(1)とを比較し、両者が一致するか否かを確認する。確認後、漏えい等を含めセキュリティ性を高めるために、乱数R(1)は消去する。
【0065】
その結果、乱数R(1)が一致しなければ、上位装置2の認証処理部20(デバイス・暗号制御DLL61)は、接続されているカードリーダ3の正当性が認証(確認)できずエラー発生として、機器認証情報Kmを設定する動作を終了させる(ステップS20)。
【0066】
また、ステップS7に戻り、乱数R(1)が一致した場合、認証処理部20(カードリーダ制御ソフトウェア60)は、カードリーダ3の正当性が確認(認証)できたと判断し、引き続き、機器認証情報Kmを設定する動作を実行する。具体的には、制御部25(デバイス・暗号制御DLL61)は、カードリーダ3の機種固有情報としてのシリアル番号を上位装置2に送信するようカードリーダ3に対して要求する(ステップS8)。
【0067】
そして、カードリーダ3の制御部34は、シリアル番号送信の要求を通信部35経由で受信すると、カードリーダ3のシリアル番号をEEPROM37から読み出し、通信部35経由で上位装置2に送信する(ステップS9)。
【0068】
次いで、制御部25(デバイス・暗号制御DLL61)は、カードリーダ3のシリアル番号を(通信部26を介して)認証情報生成部28(認証鍵生成DLL55)に出力し、認証情報生成部28に対して、このシリアル番号を入力して、新規な(正式な)機器認証情報Kmの生成を指令する(ステップS10)。
【0069】
その後、認証情報生成部28(認証鍵生成DLL55)は、機器認証情報Kmを生成する認証情報アルゴリズムに従って、入力したシリアル番号に基づいて機器認証情報Kmを生成し、この機器認証情報Kmを認証処理部20(デバイス・暗号制御DLL61)に出力する(ステップS11)。なお、機器認証情報Kmの生成処理については、
図5のフローチャートにより後述する。
【0070】
次に、認証処理部20(カードリーダ制御ソフトウェア60)は、機器認証情報Kmの取得に成功したか否かを確認する(ステップS12)。
【0071】
その結果、生成した機器認証情報Kmの取得に失敗すれば、上位装置2の制御部25(デバイス・暗号制御DLL61)は、機器認証情報Kmを取得できずエラー発生として、機器認証情報Kmを設定する動作を終了させる(ステップS20)。
【0072】
また、ステップS12に戻り、機器認証情報Kmの取得に成功すれば、上位装置2の制御部25(デバイス・暗号制御DLL61)は、乱数発生部21(デバイス・暗号制御DLL61)に、新規な乱数R(n)の生成を要求する。ここでは、第2回目の乱数なのでn=2とする。乱数発生部21(デバイス・暗号制御DLL61)は、乱数生成アルゴリズムに基づいて、乱数R(2)を生成する(ステップS13)。また、生成した乱数R(2)は、記憶部27に格納される。
【0073】
その後、暗号部21(デバイス・暗号制御DLL61)は、取得した機器認証情報Kmおよび新たに生成した乱数R(2)を、通信用交換鍵Kex(1)を用いて3DESの暗号アルゴリズムEに従って暗号化し、暗号データC3=E(Kex(1),Km+R(2))を生成する。なお、Km+R(2)は、機器認証情報Kmのデータと乱数R(2)のデータが入れ子のようになっている。また、制御部25(デバイス・暗号制御DLL61)は、暗号データC3を通信部26(通信制御DLL62)経由でカードリーダ3へ送信する(ステップS14)。
【0074】
そして、カードリーダ3の制御部34は、暗号データC3を通信部35経由で受信する。受信した暗号データC3を、カードリーダ3の認証処理部30は、保持している通信用交換鍵Kex(1)を用いて3DESの復号アルゴリズムDに従って復号し、Km+R(2)=D(Kex(1),C3)により、機器認証情報Kmおよび乱数R(2)を復号する(ステップS15)。
【0075】
さらに、カードリーダ3の認証処理部30の認証判定部33は、復号した、上位装置2が保持する機器認証情報Kmが正しいか否かを確認する(ステップS16)。ここでは、機器認証情報Kmのデータのパリティチェック(コード)が正しいかどうかを確認している。また、機器認証情報Kmのデータが、3DESとしてセキュリティ上で好ましくないとされる鍵(4個の脆弱鍵と12個の準脆弱鍵)と一致するかどうかをチェックしている。
【0076】
その結果、認証判定部33は、機器認証情報Kmが正しくないと判定した場合、認証処理部30は、エラーを上位装置2へ返して機器認証情報Kmを設定する動作を終了させる(ステップS20)。
【0077】
また、ステップS16に戻り、機器認証情報Kmが正しいと判定した場合、カードリーダ3の認証処理部30は、復号した機器認証情報Kmを取得してEEPROM37に格納されている仮の機器認証情報Ktに上書きする。また、復号した乱数R(2)は記憶部36に格納される。引き続き、認証処理部30の暗号部31は、復号した乱数R(2)を、復号した機器認証情報Kmを用いて3DESの暗号アルゴリズムEに従って暗号化し、暗号データC4=E(Km,R(2))を生成する。生成した暗号データC4を、カードリーダ3の制御部34は、通信部35経由で上位装置2へ送信する(ステップS17)。なお、送信後、漏えい等を含めセキュリティ性を高めるために、乱数R(2)を消去する。
【0078】
その後、上位装置2の認証制御部20(カードリーダ制御ソフトウェア60)は、暗号データC4を通信部26(通信制御DLL62)経由で受信する。つづいて、上位装置2の復号部23(デバイス・暗号制御DLL61)は、受信した暗号データC4を、保持している機器認証情報Kmを用いて3DESの復号アルゴリズムDに従って復号し、R(2)=D(Km,C4)により、乱数R(2)を復号する(ステップS18)。
【0079】
さらに、認証判定部24(デバイス・暗号制御DLL61)は、復号した乱数R(2)が、元の乱数R(2)と一致するか否かを確認する(ステップS19)。つまり、ステップS13で、上位装置2が生成した乱数R(2)と、カードリーダ3から送信されてきた乱数R(2)とを比較し、両者が一致するか否かを確認する。確認後、漏えい等を含めセキュリティ性を高めるために、乱数R(2)は消去する。
【0080】
その結果、乱数R(2)が一致した場合、上位装置2の制御部25(デバイス・暗号制御DLL61)は、カードリーダ3へ正常に機器認証情報Kmを設定できたと判断し、機器認証情報Kmを設定する動作は無事に終了する。
【0081】
なお、この作業が終了した時点で、上位装置2が保持している機器認証情報Kmは、セキュリティ性を高めるために、消去される。換言すれば、機器認証情報Kmを設定する動作が終了すると、上位装置2は、仮の機器認証情報Ktを記憶部27で保持しているとともに、カードリーダ3は、ステップS11で生成された機器認証情報KmをEEPROM37で保持している。
【0082】
一方、もし、ステップS19で乱数R(2)が一致しなければ、上位装置2の認証処理部20の制御部25(デバイス・暗号制御DLL61)は、接続されているカードリーダ3の正当性が認証(確認)できずエラー発生として、機器認証情報Kmを設定する動作を終了させる(ステップS20)。
【0083】
(機器認証動作の手順)
機器認証情報Kmを設定する動作が無事に終了したカードリーダ3が組み込まれている情報処理システム1、例えばATM装置(現金自動預け入れ払い機)においては、カードを用いた現金の入出金や振込、振替などのトランザクション処理が行われるたびに、EEPROM37に格納されている機器認証情報Kmを用いてカードリーダ3の機器認証動作が実行される。
【0084】
以下、この機器認証動作を
図5に基づいて詳述する。
まず、上位装置であるアプリケーション51からの指示により、または上位装置2やカードリーダ3の電源立ち上げ時またはリセット時に、制御部25(カードリーダ制御ソフトウェア60)に対して認証開始が通知される(S30)。
【0085】
上位装置2の制御部25(デバイス・暗号制御DLL61)は、通信部26(通信制御DLL62)経由でカードリーダ3の制御部34に、カードリーダ3の機種固有情報(例えばシリアル番号)を上位装置2に送信するようカードリーダ3に対して要求する(ステップS31)。
【0086】
そして、カードリーダ3の制御部34は、シリアル番号送信の要求を通信部35経由で受信すると、上述したステップS9と同様に、カードリーダ3の機種固有情報(例えばシリアル番号)をEEPROM37から読み出し、通信部35経由で上位装置2に送信する(ステップS32)。
【0087】
次いで、制御部25(デバイス・暗号制御DLL61)は、上述したステップS10と同様に、カードリーダ3のシリアル番号を通信部26(通信制御DLL62)を介して認証情報生成部28(認証鍵生成DLL55)に出力し、認証情報生成部28(認証鍵生成DLL55)に対して、この機種固有情報を入力して、新規な(正式な)機器認証情報Kmの生成を指令する(ステップS33)。
【0088】
その後、認証情報生成部28(認証鍵生成DLL55)は、上述したステップS11と同様に、入手したシリアル番号に基づいて機器認証情報Kmを生成し、この機器認証情報Kmを認証処理部20(カードリーダ制御ソフトウェア60)に出力する(ステップS34)。
【0089】
ここで、機器認証情報Kmの生成に際しては、上述したステップS11と同様に、機器認証情報Kmを生成する認証情報アルゴリズム(プログラム)に従って、入力した機種固有情報(例えばシリアル番号)に基づいて機器認証情報Kmを生成する。機器認証情報Kmの生成処理については、
図6のフローチャートにより後述する。
【0090】
生成した機器認証情報Kmは、同じ機種固有情報により生成しているので、上述したステップS11で生成した機器認証情報Kmと同じ鍵となる。すなわち、機器認証情報Kmが再現されたことになり、上位装置2で保持する機器認証情報Kmは、カードリーダ3が保持する機器認証情報Kmと同じものとなっている。
【0091】
次に、認証処理部20(カードリーダ制御ソフトウェア60)は、上述したステップS12と同様に、機器認証情報Kmの取得に成功したか否かを確認する(ステップS35)。そして、機器認証情報Kmの取得に成功すれば、制御部25(デバイス・暗号制御DLL61)は、上述したステップS13と同様に、乱数発生部21(デバイス・暗号制御DLL61)に、新規な通信用交換鍵Kex(n)、乱数R(n)の生成を要求する。
【0092】
すると、乱数発生部21(デバイス・暗号制御DLL61)は、乱数生成アルゴリズムに基づいて、通信用交換鍵Kex(2)、乱数R(3)を生成する。また、生成した通信用交換鍵Kex(2)、乱数R(3)は、記憶部27に格納される。なお、通信用交換鍵Kex(2)は、上述したステップS1で生成した通信用交換鍵Kex(1)とは異なるデータである。また、乱数R(3)は、上述したステップS13で生成した乱数R(2)とは異なるデータである。
【0093】
また、ステップS35において、特に図示していないが、認証処理部20(カードリーダ制御ソフトウェア60)が確認した結果、生成した機器認証情報Kmの取得に失敗すれば、上位装置2の制御部25(デバイス・暗号制御DLL61)は、機器認証情報Kmを取得できずエラー発生として、機器認証情報Kmを設定する動作を終了させる。このようにして生成された(再現された)機器認証情報Kmを共通鍵として用いて、上位装置2の認証処理部20(カードリーダ制御ソフトウェア60)はカードリーダ3の機器認証を行う。
【0094】
次に、暗号部21(デバイス・暗号制御DLL61)は、生成した通信用交換鍵Kex(2)および乱数R(3)を、機器認証情報Kmを用いて3DESの暗号アルゴリズムEに従って暗号化し、暗号データC5=E(Km,Kex(2)+R(3))を生成する(ステップS36)。なお、Kex(2)+R(3)は、通信用交換鍵Kex(2)のデータと乱数R(3)のデータが入れ子のようになっている。ここでは、ステップS34で生成した機器認証情報Kmを暗号アルゴリズムEの鍵として使用している。また、制御部25(デバイス・暗号制御DLL61)は、暗号データC5を通信部26(通信制御DLL62)経由でカードリーダ3へ送信する。
【0095】
その後、カードリーダ3の制御部34は、暗号データC5を通信部35経由で受信する。受信した暗号データC5を、カードリーダ3の認証処理部30は、保持している機器認証情報Kmを用いて3DESの復号アルゴリズムDに従って復号し、Kex(2)+R(3)=D(Km,C5)により、通信用交換鍵Kex(2)および乱数R(3)を復号する(ステップS37)。
【0096】
このとき、カードリーダ3の認証処理部30の認証判定部33は、受信した、上位装置2が保持する通信用交換鍵Kex(2)が正しいか否かを確認する。ここでは、通信用交換鍵Kex(2)のデータのパリティチェック(コード)が正しいかどうかを確認している。また、通信用交換鍵Kex(2)のデータが、3DESとしてセキュリティ上で好ましくないとされる鍵(4個の脆弱鍵と12個の準脆弱鍵)と一致するかどうかをチェックしている。その結果、認証判定部33は、受信した(上位装置2の)通信用交換鍵Kex(2)が正しくないと判定した場合、認証処理部30は、エラーを上位装置2へ返して機器認証情報Kmを設定する動作を終了させる。
【0097】
次いで、認証判定部33は、受信した上位装置2の通信用交換鍵Kex(2)が正しいと判定した場合、引き続き、認証処理部30の暗号部31は、復号した乱数R(3)を、復号した通信交換用鍵Kex(2)を用いて3DESの暗号アルゴリズムEに従って暗号化し、暗号データC6=E(Kex(2),R(3))を生成する(ステップS38)。生成した暗号データC6を、カードリーダ3の制御部34は、通信部35経由で上位装置2へ送信する。
【0098】
その後、上位装置2の認証処理部20(カードリーダ制御ソフトウェア60)は、暗号データC6を通信部26(通信制御DLL62)経由で受信する。つづいて、復号部23(デバイス・暗号制御DLL61)は、受信した暗号データC6を、保持している通信用交換鍵Kex(2)を用いて3DESの復号アルゴリズムDに従って復号し、R(3)=D(Kex(2),C6)により、乱数R(3)を生成する(ステップS39)。
【0099】
そして、認証判定部24(デバイス・暗号制御DLL61)は、復号した乱数R(3)が一致するか否かを確認する。すなわち、上位装置2が生成し、保持している乱数R(3)と、カードリーダ3から送信され、復号した乱数R(3)とを比較し、両者が一致するか否かを確認する。確認後、漏えい等を含めセキュリティ性を高めるために、乱数R(3)は消去する。
【0100】
その結果、乱数R(3)が一致した場合、制御部25(デバイス・暗号制御DLL61)は、カードリーダ3の正当性が認証(確認)できたと判断し、カードリーダ3の正当性が肯定されたことになるので、認証処理部20は、上位ソフトウェアであるアプリケーション51にその旨を通知し機器認証動作を無事に終了させる。これにより、上位装置2およびカードリーダ3は、それぞれ通信用交換鍵Kex(2)を保持することになる。
【0101】
ここで、機器認証動作が終了する(S40)。
【0102】
なお、この作業が終了した時点で、上位装置2が保持している機器認証情報Kmは、セキュリティ性を高めるために、消去される。換言すれば、機器認証情報Kmを設定する動作が終了すると、上位装置2は、仮の機器認証情報Ktを記憶部27で保持しているとともに、カードリーダ3は、ステップS11で生成された機器認証情報KmをEEPROM37で保持している。
【0103】
もし、ステップS19で乱数R(3)が一致しなければ、上位装置2の認証処理部20は、エラーを制御部25に出力する。制御部25は、接続されているカードリーダ3の正当性が認証(確認)できなかったので、通信用交換鍵Kexを設定する動作を終了させる。
【0104】
(機器認証情報Kmの生成動作)
つぎに
図6のフローチャートを参照して、認証情報生成部28(認証鍵生成DLL55)による機器認証情報Km(共通鍵)を設定する動作について具体的に説明する。
【0105】
認証情報生成部28(認証鍵生成DLL55)は、上述のS10、S33の処理によって、カードリーダ3からの機種固有情報(シリアル番号等)を入力すると(S100)、所定の認証情報アルゴリズムに従って、新規な(正式な)機器認証情報Kmの生成処理を開始し(S102~S110)、生成した機器認証情報Kmを認証処理部20(カードリーダ制御ソフトウェア60)へ返す(S110、
図5のS28)。
【0106】
すなわち、認証情報生成部28(認証鍵生成DLL55)は、機種固有情報を鍵長のデータへ拡張し(S102)、拡張データと任意のデータで排他的論理和をとる(S104)。さらに認証情報生成部28(認証鍵生成DLL55)は、排他的論理和をとって生成されたデータを拡張データで暗号化した暗号データを生成する(S106)。
【0107】
ついで、認証情報生成部28(認証鍵生成DLL55)は、暗号データに対して、カードリーダ3の認証判定部33においてパリティチェックに用いるパリティを算出・付与し(S108)、認証処理部20(カードリーダ制御ソフトウェア60)へ機器認証情報Kmとして返す(S110)。
【0108】
(本実施形態の主な効果)
本実施形態の特徴を纏めると次の通りである。
情報処理システム1は、上位装置(上位装置2)と情報処理装置(カードリーダ3)との間で情報の送受信を行うシステムである。
【0109】
上位装置(上位装置2)は、共通鍵暗号方式を用いて前記情報処理装置(カードリーダ3)が正当な機器であることを認証する上位装置側認証処理部(認証処理部20)と、前記上位装置(上位装置2)と前記情報処理装置(カードリーダ3)とが共通して保有する機器認証情報を生成する認証情報アルゴリズムを有し、前記情報処理装置(カードリーダ3)が所有する機種固有情報に基づいて前記機器認証情報を生成する認証情報生成部(認証情報生成部28)と、前記情報処理装置(カードリーダ3)と通信を行う通信部(通信部26)と、を備える。
前記情報処理装置(カードリーダ3)は、前記上位装置(上位装置2)と認証処理を行う情報処理装置側認証処理部(認証処理部30)と、前記機器認証情報および前記機種固有情報を記憶する不揮発性記憶部(EEPROM37)と、を備える。
上位装置(上位装置2)において、前記認証情報生成部(認証情報生成部28)は、前記情報処理装置(カードリーダ3)の機種固有情報からマスターキー(Km)を生成する機能を有し、前記認証情報生成部(認証情報生成部28)、前記上位装置側認証処理部(認証処理部20)及び前記通信部(通信部26)の機能は、それぞれの機能をモジュールとした制御ソフトウェア(カードリーダ制御ソフトウェア60)として構成されており、上位装置(上位装置2)は、前記情報処理装置(カードリーダ3)の前記マスターキーを書き換え、及び予め仮の機器認証情報として保持しているテンポラリーキー(Kt)に書き換え可能なツール(アプリケーション51)を備える。
【0110】
認証情報アルゴリズムについては、情報処理装置(カードリーダ3)の製造業者がソースコード(機器認証情報Kmを生成するための認証情報アルゴリズム)をモジュール(部品)として作成し、情報処理システム1の装置運用管理者に提供されることで、情報処理システム1の装置運用管理者は、モジュールとして提供されたソースコードに、機器認証情報Kmを生成する独自のアルゴリズムや機能を追加して、認証鍵生成モジュール(認証鍵生成DLL55)を作成することができる。また、認証情報生成部、上位装置側認証処理部、及び通信部の機能は、それぞれの機能をモジュールとした制御ソフトウェアとして、情報処理システムの装置運用管理者に提供されるので、装置運用管理者はモジュール単位で機能を変更・調整することができ、開発リソースを抑制でき、現実の導入がより容易になる。すなわち、装置運用管理者は、3DES等の共通鍵暗号方式のノウハウ(知識や技術)が十分でない場合でも、十分にセキュリティが確保された情報処理システム1を構築できる。一方、上位装置2の製造業者は、機器認証情報に関して、製造時に仮の機器認証情報を設定しているだけで、実際の運用時の機器認証情報Kmについては、把握することがないため、製造業者からの漏洩といったリスクを回避できる。
【0111】
前記制御ソフトウェア(リーダ制御ソフトウェア60)の前記認証情報生成部(認証情報生成部28)として機能するモジュールはDLL(認証情報生成DLL55)として構成されていることを特徴とする。
装置運用管理者は、DLLとして提供されたソースコードに、機器認証情報Kmを生成する独自のアルゴリズムや機能を追加して、認証鍵生成DLL(認証情報生成DLL55)を作成することができる。3DES等の知識と技術が必要となる部分は、上位装置2の製造業者がソースコードをDLLとして、利用が容易なパッケージ(ソフトウェア)として提供することができるため、装置運用管理者は、独自の、機器認証情報Kmを生成する認証情報アルゴリズム(認証情報を生成するDLL)を容易に導入できる。
【0112】
前記認証情報生成部(認証情報生成部28)として機能する前記DLL(認証鍵生成DLL55)のファイル名および前記DLLとの通信インターフェース(通信制御DLL62)は変更不可である。
これによって、予め用意されたDLLをベースに動的に処理プログラムが作成されるため、互換性を確保しつつ、アプリケーション51やカードリーダ制御ソフトウェア60の処理や、動作チェック等を適切に運用できる。
【0113】
前記情報処理装置(カードリーダ3)の前記機種固有情報は、前記上位装置側認証処理部(認証処理部20)のメモリに格納されて、前記上位装置側認証処理部(認証処理部20)は、入力毎に前記情報処理装置(カードリーダ3)が入れ替えられたか否かを確認する。
入力毎に入れ替えの確認がなされるので、認証処理のセキュリティを一層向上させることができる。
【0114】
(他の実施形態)
なお、上述した実施形態1では、上位装置2を備えた情報処理システム1について説明したが、上位装置2はホストコンピュータに限定されるものではなく、例えば、コンピュータに内蔵されている制御装置や演算装置といった処理装置であってもよく、または、例えば、ATM、POS等であってもよい。
【0115】
また、上述した実施形態1では、情報処理装置としてカードリーダ3を備えた情報処理システム1について説明したが、カードリーダ3以外の情報処理装置例えば、ATMやPOS端末に付属する入出力機器:タッチパネル、PINパッド、プリンター、スキャナ等を備えた情報処理システム1であってもよい。
【0116】
また、上述した実施形態1では、機種固有情報としてシリアル番号を用いる場合について説明したが、例えば、鍵を生成する種となるユニークな値を機器へ持たせる(外部から種も見えないようにする)ことも可能である。
【0117】
また、上述した実施形態1では、カードリーダ3の機種固有情報をファイルに記憶し、入力毎にカードリーダが入れ替えられたかを確認してもよい。
【0118】
また、上述した実施形態1では、不揮発性記憶部としてEEPROM37を用いる場合について説明したが、EEPROM37以外の不揮発性記憶部を代用してもよい。
【0119】
また、上述した実施形態1では、乱数や通信用交換鍵Kexを暗号化するのに3DESを用いる場合について説明したが、3DES以外の共通鍵暗号方式としての暗号アルゴリズム(例えば、DES、FEAL、IDEA、AES、Camellia、MISTY、MULTI、RC4、RC5など)を代用してもよい。
【0120】
また、上述した実施形態1では、通信用交換鍵Kexのデータと乱数Rのデータが入れ子のようにしたが、これに限定されるものではなく、2つのデータを連結したもの等のように2つのデータが混合されていればよい。
【0121】
さらに、上述した実施形態1では、1台のカードリーダ3が上位装置2に接続された情報処理システム1について説明したが、複数台(2台以上)のカードリーダ3が上位装置2に接続された情報処理システム1に本発明を同様に適用することも可能である。
【符号の説明】
【0122】
1……情報処理システム
2……ホストコンピュータ(上位装置)
20……認証処理部(上位装置側認証処理部)
21……乱数発生部
22……暗号部
23……復号部
24……認証判定部
25……制御部
26……通信部
27……記憶部
28……認証情報生成部
3……カードリーダ(情報処理装置)
30……認証処理部(情報処理装置側認証処理部)
31……暗号部
32……復号部
33……認証判定部
34……制御部
35……通信部
36……記憶部
37……EEPROM(不揮発性記憶部)
51 アプリケーション
55 認証鍵生成DLL
60 カードリーダ制御ソフトウェア
61 デバイス・暗号制御DLL
62 通信制御DLL
63 インターフェース部DLL
Kex……通信用交換鍵
Kt……仮の機器認証情報
Km……機器認証情報