説明

情報処理装置および情報処理方法

【課題】データおよびコマンドのパラメータの少なくとも一方が改ざんされたことを検出する。
【解決手段】ICカードのコマンド受信部は、アンテナを介して、リーダライタから読み出しコマンドを受信する。MAC演算部は、読み出しコマンドのパラメータに含まれる読み出しアドレス、および、リーダライタに送信する読み出しデータに基づいて、MACを演算する。レスポンス送信部は、アンテナを介して、読み出しデータおよびMACをリーダライタに送信する。本技術は、例えば、ICカードに適用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は、情報処理装置および情報処理方法に関し、特に、データの改ざんを検出する場合に用いて好適な情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
従来、ICカードからデータを読み出す場合に、伝送路におけるデータの改ざんを検出するためにメッセージダイジェストが用いられている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−141639号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のメッセージダイジェストを用いた方法では、通信に用いられるコマンドのパラメータの改ざんに対応することができない。
【0005】
例えば、ICカードからデータを読み出すための読み出しコマンドのパラメータに含まれるアドレスが改ざんされ、改ざんされたアドレスからデータが読み出された場合、ICカードとリーダライタで、同じデータに基づいてメッセージダイジェストが生成される。従って、両者のメッセージダイジェストが一致するため、アドレスの改ざんにより別のデータが読み出されたことを検出することができない。
【0006】
本技術の目的は、データおよびコマンドのパラメータの少なくとも一方が改ざんされたことを検出できるようにするものである。
【課題を解決するための手段】
【0007】
本技術の第1の側面の情報処理装置は、他の情報処理装置から所定のコマンドを受信する受信部と、受信した前記コマンドのパラメータの少なくとも一部、および、前記コマンドに対応して前記他の情報処理装置に送信する第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第2のデータを算出する演算部と、前記第1のデータおよび前記第2のデータを前記他の情報処理装置に送信する送信部とを備える。
【0008】
記憶媒体からのデータの読み出しを制御する読み出し制御部をさらに設け、前記コマンドを、前記第1のデータを読み出す位置を示す位置情報をパラメータに含み、前記位置情報により示される位置から前記第1のデータを読み出すためのコマンドとし、前記読み出し制御部には、前記位置情報に示される前記記憶媒体の位置から前記第1のデータを読み出させ、前記演算部には、受信した前記コマンドのパラメータに含まれる前記位置情報、および、前記記憶媒体から読み出された前記第1のデータに基づいて、前記第2のデータを算出させることができる。
【0009】
前記演算部には、前記位置情報および前記第1のデータに加えて、前記第1のデータの個数に基づいて、前記第2のデータを算出させることができる。
【0010】
本技術の第1の側面の情報処理方法は、他の情報処理装置から所定のコマンドを受信し、受信した前記コマンドのパラメータの少なくとも一部、および、前記コマンドに対応して前記他の情報処理装置に送信する第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第2のデータを算出し、前記第1のデータおよび前記第2のデータを前記他の情報処理装置に送信するステップを含む。
【0011】
本技術の第2の側面の情報処理装置は、他の情報処理装置に所定のコマンドを送信する送信部と、前記コマンドに対応して前記他の情報処理装置から送信されてくる、第1のデータ、および、受信した前記コマンドのパラメータの少なくとも一部と前記第1のデータとに基づいて前記他の情報処理装置が所定のアルゴリズムにより算出した認証用の第2のデータを受信する受信部と、前記他の情報処理装置に送信した前記コマンドのパラメータの少なくとも一部、および、前記他の情報処理装置から受信した前記第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第3のデータを算出する演算部と、前記第2のデータと前記第3のデータの認証を行う認証部とを備える。
【0012】
前記コマンドを、前記第1のデータを読み出す位置を示す位置情報をパラメータに含み、前記位置情報により示される位置から前記第1のデータを読み出すためのコマンドとし、前記他の情報処理装置には、受信した前記コマンドのパラメータに含まれる前記位置情報、および、前記位置情報により示される位置から読み出した前記第1のデータに基づいて、前記第2のデータを算出させ、前記演算部には、送信した前記コマンドのパラメータに含まれる前記位置情報、および、前記他の情報処理装置から受信した前記第1のデータに基づいて、前記第3のデータを算出させることができる。
【0013】
前記他の情報処理装置には、前記位置情報および前記第1のデータに加えて、前記第1のデータの個数に基づいて、前記第2のデータを算出させ、前記演算部には、前記位置情報および前記第1のデータに加えて、前記第1のデータの個数に基づいて、前記第3のデータを算出させることができる。
【0014】
本技術の第2の側面の情報処理方法は、他の情報処理装置に所定のコマンドを送信し、前記コマンドに対応して前記他の情報処理装置から送信されてくる、第1のデータ、および、受信した前記コマンドのパラメータの少なくとも一部と前記第1のデータとに基づいて前記他の情報処理装置が所定のアルゴリズムにより算出した認証用の第2のデータを受信し、前記他の情報処理装置に送信した前記コマンドのパラメータの少なくとも一部、および、前記他の情報処理装置から受信した前記第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第3のデータを算出し、前記第2のデータと前記第3のデータの認証を行うステップを含む。
【0015】
本技術の第3の側面の情報処理装置は、他の情報処理装置に送信するコマンドのパラメータの少なくとも一部、および、前記コマンドとともに前記他の情報処理装置に送信する第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第2のデータを算出する演算部と、前記コマンド、前記第1のデータおよび前記第2のデータを前記他の情報処理装置に送信する送信部とを備える。
【0016】
前記コマンドを、前記第1のデータを書き込む位置を示す位置情報をパラメータに含み、前記位置情報により示される位置に前記第1のデータを書き込むためのコマンドとし、前記演算部には、前記位置情報および前記第1のデータに基づいて、前記第2のデータを算出させることができる。
【0017】
前記演算部には、前記位置情報および前記第1のデータに加えて、前記第1のデータの個数に基づいて、前記第2のデータを算出させることができる。
【0018】
本技術の第3の側面の情報処理方法は、他の情報処理装置に送信するコマンドのパラメータの少なくとも一部、および、前記コマンドとともに前記他の情報処理装置に送信する第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第2のデータを算出し、前記コマンド、前記第1のデータおよび前記第2のデータを前記他の情報処理装置に送信するステップを含む。
【0019】
本技術の第4の側面の情報処理装置は、他の情報処理装置から送信されてくる、所定のコマンド、第1のデータ、および、前記コマンドのパラメータの少なくとも一部と前記第1のデータとに基づいて所定のアルゴリズムにより算出された認証用の第2のデータを受信する受信部と、受信した前記コマンドのパラメータの少なくとも一部、および、前記第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第3のデータを算出する演算部と、前記第2のデータと前記第3のデータの認証を行う認証部とを備える。
【0020】
記憶媒体へのデータの書き込みを制御する書き込み制御部をさらに設け、前記コマンドを、前記第1のデータを書き込む位置を示す位置情報をパラメータに含み、前記位置情報により示される位置に前記第1のデータを書き込むためのコマンドとし、前記他の情報処理装置には、送信する前記コマンドのパラメータに含まれる前記位置情報、および、送信する前記第1のデータに基づいて、前記第2のデータを算出させ、前記演算部には、受信した前記コマンドのパラメータに含まれる前記位置情報、および、受信した前記第1のデータに基づいて、前記第3のデータを算出させることができる。
【0021】
前記他の情報処理装置には、前記位置情報および前記第1のデータに加えて、前記第1のデータの個数に基づいて、前記第2のデータを算出させ、前記演算部には、前記位置情報および前記第1のデータに加えて、前記第1のデータの個数に基づいて、前記第3のデータを算出させることができる。
【0022】
本技術の第4の側面の情報処理方法は、他の情報処理装置から送信されてくる、所定のコマンド、第1のデータ、および、前記コマンドのパラメータの少なくとも一部と前記第1のデータとに基づいて所定のアルゴリズムにより算出された認証用の第2のデータを受信し、受信した前記コマンドのパラメータの少なくとも一部、および、前記第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第3のデータを算出し、前記第2のデータと前記第3のデータの認証を行うステップを含む。
【0023】
本技術の第1の側面においては、他の情報処理装置から所定のコマンドが受信され、受信された前記コマンドのパラメータの少なくとも一部、および、前記コマンドに対応して前記他の情報処理装置に送信する第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第2のデータが算出され、前記第1のデータおよび前記第2のデータが前記他の情報処理装置に送信される。
【0024】
本技術の第2の側面においては、他の情報処理装置に所定のコマンドが送信され、前記コマンドに対応して前記他の情報処理装置から送信されてくる、第1のデータ、および、受信した前記コマンドのパラメータの少なくとも一部と前記第1のデータとに基づいて前記他の情報処理装置が所定のアルゴリズムにより算出した認証用の第2のデータが受信され、前記他の情報処理装置に送信された前記コマンドのパラメータの少なくとも一部、および、前記他の情報処理装置から受信された前記第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第3のデータが算出され、前記第2のデータと前記第3のデータの認証が行われる。
【0025】
本技術の第3の側面においては、他の情報処理装置に送信するコマンドのパラメータの少なくとも一部、および、前記コマンドとともに前記他の情報処理装置に送信する第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第2のデータが算出され、前記コマンド、前記第1のデータおよび前記第2のデータが前記他の情報処理装置に送信される。
【0026】
本技術の第4の側面においては、他の情報処理装置から送信されてくる、所定のコマンド、第1のデータ、および、前記コマンドのパラメータの少なくとも一部と前記第1のデータとに基づいて所定のアルゴリズムにより算出された認証用の第2のデータが受信され、受信された前記コマンドのパラメータの少なくとも一部、および、前記第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第3のデータが算出され、前記第2のデータと前記第3のデータの認証が行われる。
【発明の効果】
【0027】
本技術の第1乃至第4の側面によれば、データおよびコマンドのパラメータの少なくとも一方が改ざんされたことを検出することができる。
【図面の簡単な説明】
【0028】
【図1】本技術を適用した情報処理システムの一実施の形態を示すブロック図である。
【図2】認証部の構成例を示すブロック図である。
【図3】リーダライタがICカードからデータを読み出す場合の処理を説明するためのフローチャートである。
【図4】MAC演算の具体例を説明するための図である。
【図5】リーダライタからICカードにデータを書き込む場合の処理を説明するためのフローチャートである。
【図6】コンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【0029】
以下、本技術を実施するための形態(以下、実施の形態という)について説明する。なお、説明は以下の順序で行う。
1.実施の形態
2.変形例
【0030】
<1.実施の形態>
[情報処理システムの構成例]
図1は、本技術を適用した情報処理システムの一実施の形態を示すブロック図である。
【0031】
図1の情報処理システム1は、リーダライタ11およびICカード12を含むように構成される。
【0032】
リーダライタ11は、ICカード12と所定の通信方式による近接通信を行い、ICカード12にデータを書き込んだり、ICカード12からデータを読み込んだりする。
【0033】
なお、リーダライタ11とICカード12の間の通信方式は、例えばNFC(Near Field Communication)等、任意の方式を採用することができる。
【0034】
リーダライタ11は、入力部21、コマンド生成部22、コマンド送信部23、アンテナ24、レスポンス受信部25、MAC演算部26、および、認証部27を含むように構成される。
【0035】
入力部21は、例えば、ボタン、キー、スイッチなどの入力装置により構成され、リーダライタ11への各種の指令等の入力に用いられる。入力部21は、入力された指令等をコマンド生成部22に供給する。
【0036】
コマンド生成部22は、入力部21から供給される指令に基づいて、各種のコマンドを生成する。
【0037】
例えば、コマンド生成部22は、ICカード12のメモリ46の指定したアドレス(以下、読み出しアドレスと称する)からデータを読み出すための読み出しコマンドを生成する。そして、コマンド生成部22は、生成した読み出しコマンドをコマンド送信部23に供給し、読み出しアドレスをMAC演算部26に供給する。
【0038】
また、例えば、コマンド生成部22は、ICカード12のメモリ46の指定したアドレス(以下、書き込みアドレスと称する)にデータ(以下、書き込みデータと称する)を書き込むための書き込みコマンドを生成する。このとき、コマンド生成部22は、書き込みデータと書き込みアドレスをMAC演算部26に供給し、書き込みデータと書き込みアドレスに基づくMAC(Message Authentication Code)を算出させ、算出されたMACを取得する。そして、コマンド生成部22は、書き込みアドレスをパラメータに設定し、書き込みデータおよびMACを添付した書き込みコマンドを生成し、コマンド送信部23に供給する。
【0039】
コマンド送信部23は、コマンド生成部22から供給されるコマンドを、アンテナ24を介してICカード12に送信する。
【0040】
レスポンス受信部25は、リーダライタ11が送信したコマンドに対応してICカード12から送信されてくる応答コマンドを、アンテナ24を介して受信する。また、レスポンス受信部25は、読み出しコマンドに対する応答コマンドを受信した場合、応答コマンドに添付されている、メモリ46から読み出されたデータ(以下、読み出しデータと称する)をMAC演算部26に供給し、MACを認証部27に供給する。
【0041】
MAC演算部26は、コマンド生成部22から供給される読み出しアドレス、および、レスポンス受信部25から供給される読み出しデータに基づいて、所定のアルゴリズムによりMACを算出し、算出したMACを認証部27に供給する。
【0042】
また、MAC演算部26は、コマンド生成部22から供給される書き込みデータおよび書き込みアドレスに基づいて、所定のアルゴリズムによりMACを算出し、算出したMACをコマンド生成部22に供給する。
【0043】
認証部27は、MAC演算部26により算出されたMACとICカード12から受信したMACとの認証を行う。
【0044】
ICカード12は、アンテナ41、コマンド受信部42、MAC演算部43、認証部44、メモリアクセス部45、メモリ46、レスポンス生成部47、および、レスポンス送信部48を含むように構成される。
【0045】
コマンド受信部42は、リーダライタ11から送信されてくる各種のコマンドを、アンテナ41を介して受信する。
【0046】
また、コマンド受信部42は、読み出しコマンドを受信した場合、読み出しコマンドに設定されている読み出しアドレスをメモリアクセス部45に供給する。
【0047】
さらに、コマンド受信部42は、書き込みコマンドを受信した場合、書き込みコマンドに添付されている書き込みデータ、および、書き込みコマンドに設定されている書き込みアドレスをMAC演算部43に供給する。また、コマンド受信部42は、書き込みコマンドに添付されているMACを認証部44に供給する。
【0048】
MAC演算部43は、コマンド受信部42から供給される書き込みデータおよび書き込みアドレスに基づいて、リーダライタ11のMAC演算部26と共通のアルゴリズムによりMACを算出する。そして、MAC演算部43は、算出したMAC、並びに、算出に用いた書き込みデータおよび書き込みアドレスを認証部44に供給する。
【0049】
また、MAC演算部43は、コマンド受信部42から供給される読み出しアドレス、および、メモリアクセス部45から供給される読み出しデータに基づいて、リーダライタ11のMAC演算部26と共通のアルゴリズムによりMACを算出する。そして、MAC演算部43は、算出したMACをレスポンス生成部47に供給する。
【0050】
認証部44は、リーダライタ11から受信した書き込みコマンドに添付されているMACと、MAC演算部43により算出されたMACとの認証を行う。認証部44は、認証に成功した場合、書き込みデータと書き込みアドレスをメモリアクセス部45に供給する。
【0051】
メモリアクセス部45は、メモリ46からのデータの読み出し、および、メモリ46へのデータの書き込みを制御する。
【0052】
例えば、メモリアクセス部45は、読み出しコマンドに設定されている読み出しアドレスにより示されるメモリ46のアドレスからデータを読み出し、読み出したデータ(読み出しデータ)をMAC演算部43およびレスポンス生成部47に供給する。
【0053】
また、例えば、メモリアクセス部45は、書き込みコマンドに設定されている書き込みアドレスにより示されるメモリ46のアドレスに書き込みデータを書き込み、書き込みの完了をレスポンス生成部47に通知する。
【0054】
レスポンス生成部47は、リーダライタ11から受信したコマンドに対する応答コマンドを生成し、レスポンス送信部48に供給する。
【0055】
例えば、レスポンス生成部47は、読み出しコマンドに対して、メモリ46から読み出されたデータ(読み出しデータ)、および、MAC演算部43により算出されたMACを添付した応答コマンドを生成し、レスポンス送信部48に供給する。
【0056】
また、例えば、レスポンス送信部48は、書き込みコマンドに対して、書き込みデータの書き込みの完了を通知するための応答コマンドを生成し、レスポンス送信部48に供給する。
【0057】
レスポンス送信部48は、レスポンス生成部47から供給される応答コマンドを、アンテナ41を介してリーダライタ11に送信する。
【0058】
[MAC演算部26の構成例]
図2は、リーダライタ11のMAC演算部26の構成例を示すブロック図である。
【0059】
MAC演算部26は、入力されたデータをDES-CBC(Data Encryption Standard for Cipher Block Chaining)により暗号化することにより、MACを算出する。MAC演算部26は、トリプルDES暗号化部101−1乃至101−n、および、EXOR演算部102−1乃至102−(n−1)を含むように構成される。
【0060】
MAC演算部26は、入力されたデータを所定のバイト(例えば、8バイト)数毎に分割して処理する。そして、分割後の先頭のデータ1が、トリプルDES暗号化部101−1に入力され、2番目以降のデータi(i=2〜n)が、それぞれEXOR演算部102−(i−1)に入力される。
【0061】
トリプルDES暗号化部101−1は、データ1に対してトリプルDESによる暗号化を行い、得られた暗号化データをEXOR演算部102−1に供給する。
【0062】
EXOR演算部102−1は、トリプルDES暗号化部101−1から取得した暗号化データとデータ2の排他的論理和を算出し、算出したデータをトリプルDES暗号化部101−2に供給する。
【0063】
トリプルDES暗号化部101−2は、EXOR演算部102−1から取得したデータに対してトリプルDESによる暗号化を行い、得られた暗号化データをEXOR演算部102−2に供給する。
【0064】
EXOR演算部102−2(不図示)は、トリプルDES暗号化部101−2から取得した暗号化データとデータ3の排他的論理和を算出し、算出したデータをトリプルDES暗号化部101−3(不図示)に供給する。
【0065】
トリプルDES暗号化部101−3は、EXOR演算部102−2から取得したデータに対してトリプルDESによる暗号化を行い、得られた暗号化データをEXOR演算部102−3(不図示)に供給する。
【0066】
MAC演算部26は、以上の処理を最後のn番目のデータnが、トリプルDES101−nにより暗号化されるまで繰り返す。そして、MAC演算部26は、トリプルDES101−nによる暗号化データをMACとして出力する。
【0067】
なお、ICカード12のMAC演算部43は、MAC演算部26と同様の構成を有しており、その説明は繰り返しになるため省略する。
【0068】
また、図2に示されるMAC演算部26およびMAC演算部43の構成は、その一例であり、例えば、DES-CBCとは異なるアルゴリズムによりMAC演算を行う構成にすることが可能である。
【0069】
[データ読み出し処理]
次に、図3のフローチャートを参照して、リーダライタ11がICカード12からデータを読み出す場合の処理について説明する。
【0070】
なお、この処理は、例えば、ICカード12の指定したアドレス(読み出しアドレス)からデータを読み出す旨の指令が、リーダライタ11の入力部21を介して、コマンド生成部22に入力されたとき開始される。
【0071】
なお、図3のフローチャートでは、リーダライタ11がICカード12を捕捉し、リーダライタ11とICカード12との間で相互認証を行う処理の記載を省略している。また、以下、すでにリーダライタ11とICカード12の間の認証処理が実行済みであるものとして説明する。
【0072】
ステップS1において、リーダライタ11のコマンド生成部22は、読み出しコマンドを生成する。具体的には、コマンド生成部22は、入力部21から取得した読み出しアドレスをパラメータに設定した読み出しコマンドを生成する。そして、コマンド生成部22は、生成した読み出しコマンドをコマンド送信部23に供給する。また、コマンド生成部22は、読み出しアドレスをMAC演算部26に供給する。
【0073】
ステップS2において、コマンド送信部23は、アンテナ24を介して、ICカード12に読み出しコマンドを送信する。
【0074】
ステップS11において、ICカード12のコマンド受信部42は、アンテナ41を介して、リーダライタ11から送信された読み出しコマンドを受信する。コマンド受信部42は、受信した読み出しコマンドのパラメータに含まれる読み出しアドレスをMAC演算部43およびメモリアクセス部45に供給する。
【0075】
ステップS12において、メモリアクセス部45は、読み出しコマンドにより指定されたメモリ46のアドレス(すなわち、読み出しアドレス)からデータを読み出す。メモリアクセス部45は、読み出したデータ(読み出しデータ)をMAC演算部43およびレスポンス生成部47に供給する。
【0076】
ステップS13において、MAC演算部43は、メモリ46から読み出しデータ、および、リーダライタ11から受信した読み出しアドレスに基づいて、MACを算出する。MAC演算部43は、算出したMACをレスポンス生成部47に供給する。
【0077】
ここで、図4を参照して、MACの演算方法を具体例について説明する。なお、以下、読み出しコマンドにメモリ46の0001乃至0005番地が設定されており、当該アドレスから合計5つのデータが読み出されたものとする。
【0078】
この場合、トリプルDES暗号化部101−1には、読み出しコマンドによりデータの読み出しが指示されたアドレスの数、換言すれば、読み出されたデータの個数(0x0005)、および、データを読み出したアドレスの先頭から3番目までの値(0x0001,0x0002,0x0003)からなる8バイトのデータ(0x0005000100020003)が入力される。
【0079】
また、EXOR演算部102−1には、データを読み出したアドレスの4番目と5番目の値(0004,0005)、および、入力データを8バイトにするためのフィラー(0x00000000)からなる8バイトのデータ(0x0004000500000000)が入力される。
【0080】
また、0001番地から読み出されたデータ1の前半8バイトがEXOR演算部102−2に入力され、データ1の後半8バイトがEXOR演算部102−3に入力される。0002番地から読み出されたデータ2の前半8バイトがEXOR演算部102−4(不図示)に入力され、データ2の後半8バイトがEXOR演算部102−5(不図示)に入力される。0003番地から読み出されたデータ3の前半8バイトがEXOR演算部102−6(不図示)に入力され、データ3の後半8バイトがEXOR演算部102−7(不図示)に入力される。0004番地から読み出されたデータ4の前半8バイトがEXOR演算部102−8(不図示)に入力され、データ4の後半8バイトがEXOR演算部102−9(不図示)に入力される。0005番地から読み出されたデータ5の前半8バイトがEXOR演算部102−10に入力され、データ5の後半8バイトがEXOR演算部102−11に入力される。
【0081】
そして、図2を参照して上述したアルゴリズムにより、リーダライタ11から受信した読み出しコマンドに設定されている読み出しアドレス、並びに、メモリ46から読み出されたデータおよびその個数に基づいてMACが演算される。
【0082】
なお、必ずしも読み出されたデータの個数をMACの演算に用いる必要はない。ただし、データの個数を用いるようにした方が、実際のアドレスと、入力データを8バイトにするためのフィラーとを正確に区別することが可能になる。例えば、上述した例では、フィラーとして追加したデータが、値だけではアドレスかフィラーか区別できないが、データの個数に基づいて、フィラーであると認識することが可能になる。
【0083】
ステップS14において、レスポンス生成部47は、メモリ46から読み出したデータ、および、算出したMACを添付した応答コマンドを生成する。すなわち、レスポンス生成部47は、読み出しコマンドに対応して、メモリ46から読み出した読み出しデータおよびMAC演算部43により算出されたMACを添付した応答コマンドを生成する。そして、レスポンス生成部47は、生成した応答コマンドをレスポンス送信部48に供給する。
【0084】
ステップS15において、レスポンス送信部48は、アンテナ41を介してリーダライタ11に応答コマンドを送信する。このとき、応答コマンドに添付されている読み出しデータは、暗号化されずにICカード12からリーダライタ11に送信される。
【0085】
ステップS3において、リーダライタ11のレスポンス受信部25は、アンテナ24を介して、ICカード12から応答コマンドを受信する。レスポンス受信部25は、応答コマンドに添付されている読み出しデータをMAC演算部26に供給し、MACを認証部27に供給する。
【0086】
ステップS4において、MAC演算部26は、ICカード12から受信したデータ、および、ICカード12に送信した読み出しアドレスに基づいて、MACを算出する。このとき、MAC演算部26は、ICカード12のMAC演算部43と同様のアルゴリズムによりMACを算出する。すなわち、MAC演算部26は、ICカードに送信した読み出しコマンドに設定した読み出しアドレス、および、読み出しを指示したデータの個数(=アドレスの数)、並びに、ICカード11から受信した読み出しデータに基づいて、図4を参照して上述したアルゴリズムによりMACを算出する。MAC演算部26は、算出したMACを認証部27に供給する。
【0087】
ステップS5において、認証部27は、算出したMACとICカード12から受信したMACの認証を行う。そして、認証部27は、両者が一致する場合、リーダライタ11とICカード12との間の伝送路において改ざんが行われていないと判定する。
【0088】
一方、認証部27は、両者が一致しない場合、リーダライタ11とICカード12との間の伝送路において改ざんが行われた可能性があると判定する。すなわち、認証部27は、リーダライタ11とICカード12との間の伝送路において、読み出しコマンドに設定された読み出しアドレスおよび応答コマンドに添付された読み出しデータのうち少なくとも一方が改ざんされた可能性があると判定する。
【0089】
その後、リーダライタ11とICカード12との間で通信を終了させるための処理が行われ、一連の処理は終了する。
【0090】
このようにして、読み出しコマンドに設定された読み出しアドレスおよび応答コマンドに添付された読み出しデータのうち少なくとも一方が改ざんされたことを、複雑な処理を行わずに、簡単に検出することができる。
【0091】
[データ書き込み処理]
次に、図5のフローチャートを参照して、リーダライタ11からICカード12にデータを書き込む場合の処理について説明する。
【0092】
なお、この処理は、例えば、ICカード12の指定したアドレス(書き込みアドレス)に入力データ(書き込みデータ)を書き込む旨の指令が、リーダライタ11の入力部21を介して、コマンド生成部22に入力されたとき開始される。
【0093】
なお、図5のフローチャートでは、リーダライタ11がICカード12を捕捉し、リーダライタ11とICカード12との間で相互認証を行う処理の記載を省略している。また、以下、すでにリーダライタ11とICカード12の間の認証処理が実行済みであるものとして説明する。
【0094】
ステップS51において、MAC演算部26は、書き込みデータと書き込みアドレスに基づいて、MACを算出する。具体的には、コマンド生成部22は、入力部21から取得した書き込みデータと書き込みアドレスをMAC演算部26に供給する。MAC演算部26は、送信する書き込みデータおよびその個数、並びに、書き込みアドレスに基づいて、図4を参照して上述したアルゴリズムによりMACを算出する。MAC演算部26は、算出したMACをコマンド生成部22に供給する。
【0095】
ステップS52において、コマンド生成部22は、書き込みデータ、書き込みアドレス、および、MACを含む書き込みコマンドを生成する。具体的には、コマンド生成部22は、書き込みアドレスをパラメータに設定し、書き込みデータおよびMAC演算部26により算出されたMACを添付した書き込みコマンドを生成する。コマンド生成部22は、生成した書き込みコマンドをコマンド送信部23に供給する。
【0096】
ステップS53において、コマンド送信部23は、アンテナ24を介してICカード12に書き込みコマンドを送信する。このとき、書き込みコマンドに添付されている書き込みデータは、暗号化されずにリーダライタ11からICカード12に送信される。
【0097】
ステップS61において、ICカード12のコマンド受信部42は、アンテナ41を介して、リーダライタ11から送信された書き込みコマンドを受信する。コマンド受信部42は、受信した書き込みコマンドのパラメータに含まれる書き込みアドレス、および、書き込みコマンドに添付されている書き込みデータをMAC演算部43に供給する。また、コマンド受信部42は、受信した書き込みコマンドに添付されているMACを認証部44に供給する。
【0098】
ステップS62において、MAC演算部43は、リーダライタ11から受信した書き込みデータおよび書き込みアドレスに基づいて、MACを算出する。このとき、MAC演算部43は、リーダライタ11のMAC演算部26と同様のアルゴリズムによりMACを算出する。すなわち、MAC演算部43は、受信した書き込みデータおよびその個数、並びに、受信した書き込みアドレスに基づいて、図4を参照して上述したアルゴリズムによりMACを算出する。MAC演算部43は、算出したMAC、並びに、算出に用いた書き込みデータおよび書き込みアドレスを認証部44に供給する。
【0099】
ステップS63において、認証部44は、算出したMACとリーダライタ11から受信したMACの認証を行い、両者が一致するか否かを判定する。両者が一致すると判定された場合、処理はステップS64に進む。
【0100】
ステップS64において、メモリアクセス部45は、指定されたメモリ46のアドレスに書き込みデータを書き込む。具体的には、認証部44は、書き込みデータおよび書き込みアドレスをメモリアクセス部45に供給する。メモリアクセス部45は、書き込みアドレスにより示されるメモリ46のアドレスに書き込みデータを書き込む。メモリアクセス部45は、書き込みの完了をレスポンス生成部47に通知する。
【0101】
ステップS65において、レスポンス生成部47は、書き込みコマンドに対応し、データの書き込み完了を通知するための応答コマンドを生成する。そして、レスポンス生成部47は、生成した応答コマンドをレスポンス送信部48に供給する。
【0102】
ステップS66において、レスポンス送信部48は、アンテナ41を介してリーダライタ11に応答コマンドを送信する。
【0103】
ステップS54において、リーダライタ11のレスポンス受信部25は、アンテナ24を介して、ICカード12から送信された応答コマンドを受信する。
【0104】
その後、リーダライタ11とICカード12との間で通信を終了させるための処理が行われ、一連の処理は終了する。
【0105】
一方、ステップS63において、ICカード12の認証部44が、算出したMACとリーダライタ11から受信したMACが一致しないと判定した場合、ステップS64乃至S66の処理はスキップされ、ICカード12の処理は終了する。
【0106】
すなわち、この場合、リーダライタ11とICカード12との間の伝送路において、書き込みコマンドに設定された書き込みアドレスおよび添付された書き込みデータの少なくとも一方が改ざんされた可能性がある。従って、メモリ46へのデータの書き込みは行われずに、一連の処理が終了する。
【0107】
このようにして、書き込みコマンドに設定された書き込みアドレスおよび添付された書き込みデータのうち少なくとも一方が改ざんされたことを、複雑な処理を行わずに、簡単に検出することができる。
【0108】
<2.変形例>
以下、本技術の実施の形態の変形例について説明する。
【0109】
[変形例1]
以上の説明では、データの読み出し時および書き込み時の両方において、本技術を適用する例を示したが、いずれか一方のみに適用することも可能である。例えば、データの書き込みを行わないシステムにおいては、データの読み出し時のみに本技術を適用することが可能である。
【0110】
[変形例2]
また、本技術は、上述したリーダライタ11とICカード12との間の通信に限定されるものではなく、各種の装置間の通信に適用することができる。例えば、ICカード12の代わりに、近接通信が可能なICチップ、または、ICチップを搭載した各種の装置(例えば、ICタグ、携帯電話機、携帯情報端末等)を用いた通信に適用することができる。また、例えば、ICカード12のように記憶媒体を内蔵した装置だけでなく、記憶媒体が外付けの装置を用いた通信にも適用することが可能である。
【0111】
さらに、通信方式も近接通信に限定されるものではなく、有線または無線を問わず、任意の通信方式を採用することが可能である。
【0112】
[変形例3]
また、改ざんの検出対象である、コマンドに設定する読み出しアドレスおよび書き込みアドレス等の位置情報は、任意の態様にすることが可能である。
【0113】
例えば、全てのアドレスを個々に指定するようにしてもよいし、アドレスの範囲を、開始アドレスと終了アドレスにより指定したり、開始アドレスとアドレス数により指定したりするようにしてもよい。また、例えば、絶対アドレスまたは相対アドレスのいずれを用いてもよい。さらに、例えば、ブロック番号や領域名など、アドレス以外の単位で位置を示すようにしてもよい。
【0114】
[変形例4]
さらに、以上の説明では、読み出しアドレスまたは書き込みアドレスを改ざんの検出対象とする例を示したが、本技術は、それ以外のパラメータの改ざんを検出する場合にも適用することができる。
【0115】
例えば、読み出しを開始するアドレス、読み出すデータの数、および、データを読み出す方向(アドレスの昇順または降順)を、読み出しコマンドにパラメータとして設定する場合、それらの全てのパラメータを用いてMACを演算することにより、当該全てのパラメータの改ざんを検出することが可能になる。
【0116】
[変形例5]
また、本技術では、必ずしもコマンドの全てのパラメータをMACの演算に用いる必要はなく、少なくとも一部のみ(例えば、改ざんを検出したいパラメータのみ)を用いて演算するようにしてもよい。
【0117】
[変形例6]
また、例えば、リーダライタ11がICカード12にデータを書き込むときに、ICカード12に保持されているカウンタをインクリメントするようにするとともに、そのカウンタの値も含めてMAC演算を行うようにしてもよい。例えば、リーダライタ11が、MACを演算する前にICカード12からカウンタの値を読み出し、書き込みデータ、書き込みアドレス、および、読み出したカウンタの値に基づいて、MACを算出するようにしてもよい。
【0118】
[変形例7]
さらに、上述したMAC演算のアルゴリズムは、その一例であり、他のセキュリティ強度の高いアルゴリズムを採用することが可能である。
【0119】
また、改ざんの検出に用いる認証用データには、上述したMAC以外にも、送信側と受信側で共通のセキュリティ強度の高いアルゴリズムにより算出されるデータを採用することができる。
【0120】
さらに、認証用データの演算アルゴリズムには、共通鍵暗号化方式および公開鍵暗号化方式のいずれの暗号化方式を採用してもよい。なお、公開鍵暗号化方式を採用した場合、認証用データの送信側が秘密鍵を用いて演算し、受信側が公開鍵を用いて演算するようにすればよい。
【0121】
あるいは、セッション毎に生成され、送信側と受信側で共有されるセッション鍵を用いて認証用データを演算するようにしてもよい。
【0122】
なお、セッション鍵の生成方法には、任意の方法を採用することができる。例えば、情報処理システム1においては、リーダライタ11がICカード12に乱数を書き込み、その乱数に基づいて、ICカード12がセッション鍵を生成するようにすることが可能である。生成されたセッション鍵は、例えば、電源が切断されたり、再度ICカード12に乱数が書き込まれるまで有効とされる。
【0123】
また、認証用データの演算アルゴリズムには、鍵を用いないアルゴリズムを採用することも可能である。ただし、この場合、得られた認証用データを、共通鍵暗号化方式および公開鍵暗号化方式のいずれかの暗号化方式により暗号化して送信する必要がある。なお、公開鍵暗号化方式を採用した場合、認証用データの送信側が秘密鍵を用いて暗号化し、受信側が公開鍵を用いて復号するようにすればよい。
【0124】
[変形例8]
さらに、本技術は、データを暗号化して送受信する場合にも適用することができる。この場合、伝送路上でデータが改ざんされる可能性が低くなるため、認証用データが一致しない場合、コマンドのパラメータが改ざんされた可能性が高いことを検出することができる。
【0125】
[コンピュータの構成例]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【0126】
図6は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【0127】
コンピュータにおいて、CPU(Central Processing Unit)201,ROM(Read Only Memory)202,RAM(Random Access Memory)203は、バス204により相互に接続されている。
【0128】
バス204には、さらに、入出力インタフェース205が接続されている。入出力インタフェース205には、入力部206、出力部207、記憶部208、通信部209、及びドライブ210が接続されている。
【0129】
入力部206は、キーボード、マウス、マイクロフォンなどよりなる。出力部207は、ディスプレイ、スピーカなどよりなる。記憶部208は、ハードディスクや不揮発性のメモリなどよりなる。通信部209は、ネットワークインタフェースなどよりなる。ドライブ210は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア211を駆動する。
【0130】
以上のように構成されるコンピュータでは、CPU201が、例えば、記憶部208に記憶されているプログラムを、入出力インタフェース205及びバス204を介して、RAM203にロードして実行することにより、上述した一連の処理が行われる。
【0131】
コンピュータ(CPU201)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア211に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【0132】
コンピュータでは、プログラムは、リムーバブルメディア211をドライブ210に装着することにより、入出力インタフェース205を介して、記憶部208にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部209で受信し、記憶部208にインストールすることができる。その他、プログラムは、ROM202や記憶部208に、あらかじめインストールしておくことができる。
【0133】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0134】
また、本明細書において、システムの用語は、複数の装置、手段などより構成される全体的な装置を意味するものとする。
【0135】
さらに、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0136】
1 情報処理システム, 11 リーダライタ, 12 ICカード, 22 コマンド生成部, 23 コマンド送信部, 25 レスポンス受信部, 26 MAC演算部, 27 認証部, 42 コマンド受信部, 43 MAC演算部, 44 認証部, 45 メモリアクセス部, 46 メモリ, 47 レスポンス生成部, 48 レスポンス送信部

【特許請求の範囲】
【請求項1】
他の情報処理装置から所定のコマンドを受信する受信部と、
受信した前記コマンドのパラメータの少なくとも一部、および、前記コマンドに対応して前記他の情報処理装置に送信する第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第2のデータを算出する演算部と、
前記第1のデータおよび前記第2のデータを前記他の情報処理装置に送信する送信部と
を備える情報処理装置。
【請求項2】
記憶媒体からのデータの読み出しを制御する読み出し制御部をさらに備え、
前記コマンドは、前記第1のデータを読み出す位置を示す位置情報をパラメータに含み、前記位置情報により示される位置から前記第1のデータを読み出すためのコマンドであり、
前記読み出し制御部は、前記位置情報に示される前記記憶媒体の位置から前記第1のデータを読み出し、
前記演算部は、受信した前記コマンドのパラメータに含まれる前記位置情報、および、前記記憶媒体から読み出された前記第1のデータに基づいて、前記第2のデータを算出する
請求項1に記載の情報処理装置。
【請求項3】
前記演算部は、前記位置情報および前記第1のデータに加えて、前記第1のデータの個数に基づいて、前記第2のデータを算出する
請求項2に記載の情報処理装置。
【請求項4】
他の情報処理装置から所定のコマンドを受信し、
受信した前記コマンドのパラメータの少なくとも一部、および、前記コマンドに対応して前記他の情報処理装置に送信する第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第2のデータを算出し、
前記第1のデータおよび前記第2のデータを前記他の情報処理装置に送信する
ステップを含む情報処理方法。
【請求項5】
他の情報処理装置に所定のコマンドを送信する送信部と、
前記コマンドに対応して前記他の情報処理装置から送信されてくる、第1のデータ、および、受信した前記コマンドのパラメータの少なくとも一部と前記第1のデータとに基づいて前記他の情報処理装置が所定のアルゴリズムにより算出した認証用の第2のデータを受信する受信部と、
前記他の情報処理装置に送信した前記コマンドのパラメータの少なくとも一部、および、前記他の情報処理装置から受信した前記第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第3のデータを算出する演算部と、
前記第2のデータと前記第3のデータの認証を行う認証部と
を備える情報処理装置。
【請求項6】
前記コマンドは、前記第1のデータを読み出す位置を示す位置情報をパラメータに含み、前記位置情報により示される位置から前記第1のデータを読み出すためのコマンドであり、
前記他の情報処理装置は、受信した前記コマンドのパラメータに含まれる前記位置情報、および、前記位置情報により示される位置から読み出した前記第1のデータに基づいて、前記第2のデータを算出し、
前記演算部は、送信した前記コマンドのパラメータに含まれる前記位置情報、および、前記他の情報処理装置から受信した前記第1のデータに基づいて、前記第3のデータを算出する
請求項5に記載の情報処理装置。
【請求項7】
前記他の情報処理装置は、前記位置情報および前記第1のデータに加えて、前記第1のデータの個数に基づいて、前記第2のデータを算出し、
前記演算部は、前記位置情報および前記第1のデータに加えて、前記第1のデータの個数に基づいて、前記第3のデータを算出する
請求項6に記載の情報処理装置。
【請求項8】
他の情報処理装置に所定のコマンドを送信し、
前記コマンドに対応して前記他の情報処理装置から送信されてくる、第1のデータ、および、受信した前記コマンドのパラメータの少なくとも一部と前記第1のデータとに基づいて前記他の情報処理装置が所定のアルゴリズムにより算出した認証用の第2のデータを受信し、
前記他の情報処理装置に送信した前記コマンドのパラメータの少なくとも一部、および、前記他の情報処理装置から受信した前記第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第3のデータを算出し、
前記第2のデータと前記第3のデータの認証を行う
ステップを含む情報処理方法。
【請求項9】
他の情報処理装置に送信するコマンドのパラメータの少なくとも一部、および、前記コマンドとともに前記他の情報処理装置に送信する第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第2のデータを算出する演算部と、
前記コマンド、前記第1のデータおよび前記第2のデータを前記他の情報処理装置に送信する送信部と
を備える情報処理装置。
【請求項10】
前記コマンドは、前記第1のデータを書き込む位置を示す位置情報をパラメータに含み、前記位置情報により示される位置に前記第1のデータを書き込むためのコマンドであり、
前記演算部は、前記位置情報および前記第1のデータに基づいて、前記第2のデータを算出する
請求項9に記載の情報処理装置。
【請求項11】
前記演算部は、前記位置情報および前記第1のデータに加えて、前記第1のデータの個数に基づいて、前記第2のデータを算出する
請求項10に記載の情報処理装置。
【請求項12】
他の情報処理装置に送信するコマンドのパラメータの少なくとも一部、および、前記コマンドとともに前記他の情報処理装置に送信する第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第2のデータを算出し、
前記コマンド、前記第1のデータおよび前記第2のデータを前記他の情報処理装置に送信する
ステップを含む情報処理方法。
【請求項13】
他の情報処理装置から送信されてくる、所定のコマンド、第1のデータ、および、前記コマンドのパラメータの少なくとも一部と前記第1のデータとに基づいて所定のアルゴリズムにより算出された認証用の第2のデータを受信する受信部と、
受信した前記コマンドのパラメータの少なくとも一部、および、前記第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第3のデータを算出する演算部と、
前記第2のデータと前記第3のデータの認証を行う認証部と
を備える情報処理装置。
【請求項14】
記憶媒体へのデータの書き込みを制御する書き込み制御部をさらに備え、
前記コマンドは、前記第1のデータを書き込む位置を示す位置情報をパラメータに含み、前記位置情報により示される位置に前記第1のデータを書き込むためのコマンドであり、
前記他の情報処理装置は、送信する前記コマンドのパラメータに含まれる前記位置情報、および、送信する前記第1のデータに基づいて、前記第2のデータを算出し、
前記演算部は、受信した前記コマンドのパラメータに含まれる前記位置情報、および、受信した前記第1のデータに基づいて、前記第3のデータを算出する
請求項13に記載の情報処理装置。
【請求項15】
前記他の情報処理装置は、前記位置情報および前記第1のデータに加えて、前記第1のデータの個数に基づいて、前記第2のデータを算出し、
前記演算部は、前記位置情報および前記第1のデータに加えて、前記第1のデータの個数に基づいて、前記第3のデータを算出する
請求項14に記載の情報処理装置。
【請求項16】
他の情報処理装置から送信されてくる、所定のコマンド、第1のデータ、および、前記コマンドのパラメータの少なくとも一部と前記第1のデータとに基づいて所定のアルゴリズムにより算出された認証用の第2のデータを受信し、
受信した前記コマンドのパラメータの少なくとも一部、および、前記第1のデータに基づいて、前記他の情報処理装置と共通のアルゴリズムにより認証用の第3のデータを算出し、
前記第2のデータと前記第3のデータの認証を行う
ステップを含む情報処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−226711(P2012−226711A)
【公開日】平成24年11月15日(2012.11.15)
【国際特許分類】
【出願番号】特願2011−96439(P2011−96439)
【出願日】平成23年4月22日(2011.4.22)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】