特許第6031997号(P6031997)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 大日本印刷株式会社の特許一覧

特許6031997ICカード、データ複製制御方法及びデータ複製制御プログラム
<>
  • 特許6031997-ICカード、データ複製制御方法及びデータ複製制御プログラム 図000002
  • 特許6031997-ICカード、データ複製制御方法及びデータ複製制御プログラム 図000003
  • 特許6031997-ICカード、データ複製制御方法及びデータ複製制御プログラム 図000004
  • 特許6031997-ICカード、データ複製制御方法及びデータ複製制御プログラム 図000005
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6031997
(24)【登録日】2016年11月4日
(45)【発行日】2016年11月24日
(54)【発明の名称】ICカード、データ複製制御方法及びデータ複製制御プログラム
(51)【国際特許分類】
   G06K 19/073 20060101AFI20161114BHJP
   G06F 21/10 20130101ALI20161114BHJP
   B42D 25/305 20140101ALI20161114BHJP
   G06F 3/08 20060101ALI20161114BHJP
   G06F 3/06 20060101ALI20161114BHJP
【FI】
   G06K19/073 009
   G06F21/10
   B42D15/10 307
   G06F3/08 C
   G06F3/06 304H
   G06F3/06 301R
【請求項の数】9
【全頁数】13
(21)【出願番号】特願2012-281455(P2012-281455)
(22)【出願日】2012年12月25日
(65)【公開番号】特開2014-126935(P2014-126935A)
(43)【公開日】2014年7月7日
【審査請求日】2015年10月29日
(73)【特許権者】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】110000958
【氏名又は名称】特許業務法人 インテクト国際特許事務所
(74)【代理人】
【識別番号】100083839
【弁理士】
【氏名又は名称】石川 泰男
(74)【代理人】
【識別番号】100120189
【弁理士】
【氏名又は名称】奥 和幸
(72)【発明者】
【氏名】稲村 孝彦
(72)【発明者】
【氏名】神力 哲夫
(72)【発明者】
【氏名】福永 正剛
【審査官】 梅沢 俊
(56)【参考文献】
【文献】 特開2006−172005(JP,A)
【文献】 特開2011−150495(JP,A)
【文献】 特開2010−033121(JP,A)
【文献】 特開平07−078126(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06K 19/073
B42D 25/305
G06F 3/06
G06F 3/08
G06F 21/10
(57)【特許請求の範囲】
【請求項1】
外部端末から受信したコマンドに対応した所定の処理を実行するコントローラと、当該処理の結果に基づいて前記外部端末へ出力するためのレスポンスデータを記憶するメモリとを備え、前記レスポンスデータを前記メモリから通信用バッファに複製した後、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力するICカードにおいて、
前記メモリの所定のアドレスに記憶された前記レスポンスデータを所定サイズ毎に前記通信用バッファに複製するデータ複製手段と、
前記レスポンスデータの複製開始前に前記アドレスを示す値の反転値を前記メモリに複製するアドレス複製手段と、
前記所定サイズの複製毎に複製元の前記アドレスが正当であるかを判定する判定手段と、
前記判定手段により前記複製元の前記アドレスが正当でないと判定された場合、前記レスポンスデータの複製を中断する制御手段と、
を備え
前記判定手段は、前記レスポンスデータの複製元のアドレスを示す値と、前記メモリに複製された前記反転値との整合性が取れているか確認し、整合性が取れていない場合、当該アドレスが正当でないと判定することを特徴とするICカード。
【請求項2】
外部端末から受信したコマンドに対応した所定の処理を実行するコントローラと、当該処理の結果に基づいて前記外部端末へ出力するためのレスポンスデータを記憶するメモリとを備え、前記レスポンスデータを前記メモリから通信用バッファに複製した後、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力するICカードにおいて、
前記メモリの所定のアドレスに記憶された前記レスポンスデータを所定サイズ毎に前記通信用バッファに複製するデータ複製手段と、
前記所定サイズの複製毎に複製元の前記アドレスが正当であるかを判定する判定手段と、
前記データ複製手段により前記レスポンスデータの複製が完了した場合に、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力する制御手段と、
を備え、
前記制御手段は、前記判定手段により前記複製元の前記アドレスが正当でないと判定された場合にも、前記レスポンスデータの前記所定サイズ毎の複製を継続させ、前記通信用バッファに複製された当該レスポンスデータの前記外部端末への出力を不能にすることを特徴とするICカード。
【請求項3】
請求項に記載のICカードにおいて、
前記レスポンスデータの複製開始前に前記アドレスを示す値を前記メモリに複製するアドレス複製手段を更に備え、
前記判定手段は、前記レスポンスデータの複製元のアドレスを示す値と、前記メモリに複製されたアドレスを示す値とが一致しているかを判定し、一致していない場合、当該アドレスが正当でないと判定することを特徴とするICカード。
【請求項4】
請求項に記載のICカードにおいて、
前記レスポンスデータの複製開始前に前記アドレスを示す値の反転値を前記メモリに複製するアドレス複製手段を更に備え、
前記判定手段は、前記レスポンスデータの複製元のアドレスを示す値と、前記メモリに複製された前記反転値との整合性が取れているか確認し、整合性が取れていない場合、当該アドレスが正当でないと判定することを特徴とするICカード。
【請求項5】
請求項1乃至4の何れか一項に記載のICカードにおいて、
前記制御手段は、前記判定手段により前記複製元の前記アドレスが正当でないと判定された場合、前記レスポンスデータとは異なるダミーデータを前記外部端末へ出力することを特徴とするICカード。
【請求項6】
外部端末から受信したコマンドに対応した所定の処理を実行するコントローラと、当該処理の結果に基づいて前記外部端末へ出力するためのレスポンスデータを記憶するメモリとを備え、前記レスポンスデータを前記メモリから通信用バッファに複製した後、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力するICカードの前記コントローラにより行われるデータ複製制御方法であって、
前記メモリの所定のアドレスに記憶された前記レスポンスデータを所定サイズ毎に前記通信用バッファに複製するステップと、
前記レスポンスデータの複製開始前に前記アドレスを示す値の反転値を前記メモリに複製するステップと、
前記所定サイズの複製毎に複製元の前記アドレスが正当であるかを判定するステップと、
前記複製元の前記アドレスが正当でないと判定された場合、前記レスポンスデータの複製を中断するステップと、
を含み、
前記アドレスが正当であるかを判定するステップでは、前記レスポンスデータの複製元のアドレスを示す値と、前記メモリに複製された前記反転値との整合性が取れているか確認し、整合性が取れていない場合、当該アドレスが正当でないと判定することを特徴とするデータ複製制御方法。
【請求項7】
外部端末から受信したコマンドに対応した所定の処理を実行するコントローラと、当該処理の結果に基づいて前記外部端末へ出力するためのレスポンスデータを記憶するメモリとを備え、前記レスポンスデータを前記メモリから通信用バッファに複製した後、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力するICカードにおける前記コントローラを、
前記メモリの所定のアドレスに記憶された前記レスポンスデータを所定サイズ毎に前記通信用バッファに複製するデータ複製手段、
前記レスポンスデータの複製開始前に前記アドレスを示す値の反転値を前記メモリに複製するアドレス複製手段、
前記所定サイズの複製毎に複製元の前記アドレスが正当であるかを判定する判定手段、及び、
前記判定手段により前記複製元の前記アドレスが正当でないと判定された場合、前記レスポンスデータの複製を中断する制御手段として機能させるデータ複製制御プログラムであって
前記判定手段は、前記レスポンスデータの複製元のアドレスを示す値と、前記メモリに複製された前記反転値との整合性が取れているか確認し、整合性が取れていない場合、当該アドレスが正当でないと判定することを特徴とするデータ複製制御プログラム。
【請求項8】
外部端末から受信したコマンドに対応した所定の処理を実行するコントローラと、当該処理の結果に基づいて前記外部端末へ出力するためのレスポンスデータを記憶するメモリとを備え、前記レスポンスデータを前記メモリから通信用バッファに複製した後、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力するICカードの前記コントローラにより行われるデータ複製制御方法であって、
前記メモリの所定のアドレスに記憶された前記レスポンスデータを所定サイズ毎に前記通信用バッファに複製するステップと、
前記所定サイズの複製毎に複製元の前記アドレスが正当であるかを判定するステップと、
前記レスポンスデータの複製が完了した場合に、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力するステップと、
を含み、
前記データ複製制御方法は、前記複製元の前記アドレスが正当でないと判定された場合にも、前記レスポンスデータの前記所定サイズ毎の複製を継続させ、前記通信用バッファに複製された当該レスポンスデータの前記外部端末への出力を不能にすることを特徴とするデータ複製制御方法。
【請求項9】
外部端末から受信したコマンドに対応した所定の処理を実行するコントローラと、当該処理の結果に基づいて前記外部端末へ出力するためのレスポンスデータを記憶するメモリとを備え、前記レスポンスデータを前記メモリから通信用バッファに複製した後、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力するICカードにおける前記コントローラを、
前記メモリの所定のアドレスに記憶された前記レスポンスデータを所定サイズ毎に前記通信用バッファに複製するデータ複製手段、
前記所定サイズの複製毎に複製元の前記アドレスが正当であるかを判定する判定手段、及び、
前記データ複製手段により前記レスポンスデータの複製が完了した場合に、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力する制御手段として機能させ、
前記制御手段は、前記判定手段により前記複製元の前記アドレスが正当でないと判定された場合にも、前記レスポンスデータの前記所定サイズ毎の複製を継続させ、前記通信用バッファに複製された当該レスポンスデータの前記外部端末への出力を不能にすることを特徴とするデータ複製制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、外部端末から受信したコマンドに対応した所定の処理を実行するコントローラと、当該処理の結果に基づいて前記外部端末へ出力するためのレスポンスデータを記憶するメモリとを備え、前記レスポンスデータを前記メモリから通信用バッファに複製した後、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力するICカードの技術に関する。
【背景技術】
【0002】
セキュリティ性が重要視されるICカードでは、外部からの攻撃などによる不正動作に対する防止手段を備えていなければならない。外部からの攻撃とは、故障解析と呼ばれるICカードに搭載されたICチップに誤動作を起こさせるための手段であり、代表的なものとしてDFA(Differential Fault Analysis)が挙げられる。
【0003】
ICカードは、外部端末との通信に接触I/Fや非接触I/Fを利用する。外部端末から送信されたコマンドをそれらのI/Fにて受信し、解釈、実行した後、レスポンスデータを応答する。このレスポンスデータは、ICカード内に保持する値であったり、カード内で演算した結果の値であったりするが、これらのデータをICカードから外部端末へと返送する際、ICカードは当該データを通信用のバッファへと複製(コピー)し、そこからレスポンスデータとして外部端末へ返送する。この時、通信用バッファへの複製時に外部から攻撃を受けると、誤ったアドレスのデータが通信用のバッファへと複製されることになり、本来は出力してはいけないアドレスのデータが出力されてしまう恐れがある。
【0004】
特許文献1には、外部から不正な攻撃が行なわれた場合に、内部の秘匿したいデータ等を外部へ応答することを防止する技術が開示されている。特許文献1の技術では、ICカードにおいて外部へ応答するための応答データを記憶する応答データエリアを持つメモリから送信バッファに対してデータを転送する前に、当該データの転送元が当該メモリの応答データエリアであることを確認し、この確認の結果、当該データの転送元が当該メモリの応答データエリアである場合は送信バッファへのデータ転送を許可し、そうでない場合は送信バッファへのデータ転送を停止するようになっている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第4713878号
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、外部からの攻撃が複数回繰り返し行われる場合、特許文献1の技術では、データの転送元がメモリの応答データエリアであることの確認により送信バッファへのデータ転送が許可された後に、外部からの攻撃が行なわれ、不正にデータが複製される可能性がある。
【0007】
そこで、本発明は、外部からの攻撃が複数回繰り返し行われる場合であっても、不正にデータが外部に複製されることを防止することが可能なICカード、データ複製制御方法、及びデータ複製制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、請求項1に記載の発明は、外部端末から受信したコマンドに対応した所定の処理を実行するコントローラと、当該処理の結果に基づいて前記外部端末へ出力するためのレスポンスデータを記憶するメモリとを備え、前記レスポンスデータを前記メモリから通信用バッファに複製した後、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力するICカードにおいて、前記メモリの所定のアドレスに記憶された前記レスポンスデータを所定サイズ毎に前記通信用バッファに複製するデータ複製手段と、前記レスポンスデータの複製開始前に前記アドレスを示す値の反転値を前記メモリに複製するアドレス複製手段と、前記所定サイズの複製毎に複製元の前記アドレスが正当であるかを判定する判定手段と、前記判定手段により前記複製元の前記アドレスが正当でないと判定された場合、前記レスポンスデータの複製を中断する制御手段と、を備え、前記判定手段は、前記レスポンスデータの複製元のアドレスを示す値と、前記メモリに複製された前記反転値との整合性が取れているか確認し、整合性が取れていない場合、当該アドレスが正当でないと判定することを特徴とする。
【0009】
請求項2に記載の発明は、外部端末から受信したコマンドに対応した所定の処理を実行するコントローラと、当該処理の結果に基づいて前記外部端末へ出力するためのレスポンスデータを記憶するメモリとを備え、前記レスポンスデータを前記メモリから通信用バッファに複製した後、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力するICカードにおいて、前記メモリの所定のアドレスに記憶された前記レスポンスデータを所定サイズ毎に前記通信用バッファに複製するデータ複製手段と、前記所定サイズの複製毎に複製元の前記アドレスが正当であるかを判定する判定手段と、前記データ複製手段により前記レスポンスデータの複製が完了した場合に、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力する制御手段と、を備え、前記制御手段は、前記判定手段により前記複製元の前記アドレスが正当でないと判定された場合にも、前記レスポンスデータの前記所定サイズ毎の複製を継続させ、前記通信用バッファに複製された当該レスポンスデータの前記外部端末への出力を不能にすることを特徴とする。
【0010】
請求項3に記載の発明は、請求項に記載のICカードにおいて、前記レスポンスデータの複製開始前に前記アドレスを示す値を前記メモリに複製するアドレス複製手段を更に備え、前記判定手段は、前記レスポンスデータの複製元のアドレスを示す値と、前記メモリに複製されたアドレスを示す値とが一致しているかを判定し、一致していない場合、当該アドレスが正当でないと判定することを特徴とする。
【0011】
請求項4に記載の発明は、請求項に記載のICカードにおいて、前記レスポンスデータの複製開始前に前記アドレスを示す値の反転値を前記メモリに複製するアドレス複製手段を更に備え、前記判定手段は、前記レスポンスデータの複製元のアドレスを示す値と、前記メモリに複製された前記反転値との整合性が取れているか確認し、整合性が取れていない場合、当該アドレスが正当でないと判定することを特徴とする。
【0012】
請求項5に記載の発明は、請求項1乃至4の何れか一項に記載のICカードにおいて、前記制御手段は、前記判定手段により前記複製元の前記アドレスが正当でないと判定された場合、前記レスポンスデータとは異なるダミーデータを前記外部端末へ出力することを特徴とする。
【0013】
請求項6に記載の発明は、外部端末から受信したコマンドに対応した所定の処理を実行するコントローラと、当該処理の結果に基づいて前記外部端末へ出力するためのレスポンスデータを記憶するメモリとを備え、前記レスポンスデータを前記メモリから通信用バッファに複製した後、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力するICカードの前記コントローラにより行われるデータ複製制御方法であって、前記メモリの所定のアドレスに記憶された前記レスポンスデータを所定サイズ毎に前記通信用バッファに複製するステップと、前記レスポンスデータの複製開始前に前記アドレスを示す値の反転値を前記メモリに複製するステップと、前記所定サイズの複製毎に複製元の前記アドレスが正当であるかを判定するステップと、前記複製元の前記アドレスが正当でないと判定された場合、前記レスポンスデータの複製を中断するステップと、を含み、前記アドレスが正当であるかを判定するステップでは、前記レスポンスデータの複製元のアドレスを示す値と、前記メモリに複製された前記反転値との整合性が取れているか確認し、整合性が取れていない場合、当該アドレスが正当でないと判定することを特徴とする。
【0014】
請求項7に記載のデータ複製制御プログラムの発明は、外部端末から受信したコマンドに対応した所定の処理を実行するコントローラと、当該処理の結果に基づいて前記外部端末へ出力するためのレスポンスデータを記憶するメモリとを備え、前記レスポンスデータを前記メモリから通信用バッファに複製した後、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力するICカードにおける前記コントローラを、前記メモリの所定のアドレスに記憶された前記レスポンスデータを所定サイズ毎に前記通信用バッファに複製するデータ複製手段、前記レスポンスデータの複製開始前に前記アドレスを示す値の反転値を前記メモリに複製するアドレス複製手段、前記所定サイズの複製毎に複製元の前記アドレスが正当であるかを判定する判定手段、及び、前記判定手段により前記複製元の前記アドレスが正当でないと判定された場合、前記レスポンスデータの複製を中断する制御手段として機能させるデータ複製制御プログラムであって前記判定手段は、前記レスポンスデータの複製元のアドレスを示す値と、前記メモリに複製された前記反転値との整合性が取れているか確認し、整合性が取れていない場合、当該アドレスが正当でないと判定することを特徴とする。
【0015】
請求項8に記載の発明は、外部端末から受信したコマンドに対応した所定の処理を実行するコントローラと、当該処理の結果に基づいて前記外部端末へ出力するためのレスポンスデータを記憶するメモリとを備え、前記レスポンスデータを前記メモリから通信用バッファに複製した後、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力するICカードの前記コントローラにより行われるデータ複製制御方法であって、前記メモリの所定のアドレスに記憶された前記レスポンスデータを所定サイズ毎に前記通信用バッファに複製するステップと、前記所定サイズの複製毎に複製元の前記アドレスが正当であるかを判定するステップと、前記レスポンスデータの複製が完了した場合に、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力するステップと、を含み、前記データ複製制御方法は、前記複製元の前記アドレスが正当でないと判定された場合にも、前記レスポンスデータの前記所定サイズ毎の複製を継続させ、前記通信用バッファに複製された当該レスポンスデータの前記外部端末への出力を不能にすることを特徴とする。
【0016】
請求項9に記載のデータ複製制御プログラムの発明は、外部端末から受信したコマンドに対応した所定の処理を実行するコントローラと、当該処理の結果に基づいて前記外部端末へ出力するためのレスポンスデータを記憶するメモリとを備え、前記レスポンスデータを前記メモリから通信用バッファに複製した後、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力するICカードにおける前記コントローラを、前記メモリの所定のアドレスに記憶された前記レスポンスデータを所定サイズ毎に前記通信用バッファに複製するデータ複製手段、前記所定サイズの複製毎に複製元の前記アドレスが正当であるかを判定する判定手段、及び、前記データ複製手段により前記レスポンスデータの複製が完了した場合に、当該通信用バッファに複製された前記レスポンスデータを前記外部端末へ出力する制御手段として機能させ、前記制御手段は、前記判定手段により前記複製元の前記アドレスが正当でないと判定された場合にも、前記レスポンスデータの前記所定サイズ毎の複製を継続させ、前記通信用バッファに複製された当該レスポンスデータの前記外部端末への出力を不能にすることを特徴とする。
【発明の効果】
【0017】
本発明によれば、メモリの所定のアドレスに記憶されたレスポンスデータを所定サイズ毎に通信用バッファに複製し、当該複製毎に複製元のアドレスが正当であるかを判定して複製元のアドレスが正当でないと判定された場合(レスポンスデータの複製元のアドレスを示す値と、レスポンスデータの複製開始前にメモリに複製された当該アドレスを示す値の反転値との整合性が取れているか確認し、整合性が取れていない場合、当該アドレスが正当でないと判定する)、レスポンスデータの複製を中断するか、または、レスポンスデータの所定サイズ毎の複製を継続させ通信用バッファに複製されたレスポンスデータの外部端末への出力を不能にするように構成したので、外部からの攻撃が複数回繰り返し行われる場合であっても、不正にデータが外部に複製されることを防止することができる。
【図面の簡単な説明】
【0018】
図1】ICカード1の概要構成例を示す図である。
図2】複製元のアドレスsrcが、二重化されたアドレスsrc_dualとして複製される様子を示す概念図である。
図3】(A)は、データ複製制御方法1における処理を示すフローチャートであり、(B)は、(A)に示す処理に対応する疑似コードの一例を示す図である。
図4】(A)は、データ複製制御方法2における処理を示すフローチャートであり、(B)は、(A)に示す処理による効果を説明するための図である。
【発明を実施するための形態】
【0019】
以下、図面を参照して本発明の実施形態について詳細に説明する。
【0020】
先ず、図1を参照して、本実施形態に係るICカードについて説明する。図1は、ICカード1の概要構成例を示す図である。なお、ICカード1は、キャッシュカード、クレージットカード、社員カード等として使用される。或いは、ICカード1は、スマートフォンや携帯電話機等に組み込まれる。
【0021】
図1に示すように、ICカード1には、ICチップ1aが搭載されている。ICチップ1aは、CPU(Central Processing Unit)11、RAM(Random Access Memory)12、フラッシュメモリ13、及びI/O回路14を備えて構成される。なお、フラッシュメモリの代わりにEEPROM(Electrically Erasable Programmable Read-Only Memory)であっても構わない。
【0022】
CPU11は、各種プログラムを実行するコントローラであり、本発明のデータ複製制御プログラムにしたがって、外部端末2から受信したコマンドに対応した所定のコマンド処理を実行し、RAM12及びフラッシュメモリ13に対するデータの読み書き処理を行う。外部端末2は、ICカード1との間で接触または非接触で通信を行うためのリーダーライタを備える。外部端末2の例としてはATM、改札機、認証用ゲート等が挙げられる。或いは、ICカード1が携帯端末に搭載される場合、外部端末2には携帯端末の機能を担う制御部が該当する。なお、外部からの攻撃者の外部端末がICカード1の通信相手となる場合もあり、ICカード1は、この場合にも、内部の秘匿したいデータ(本来は出力してはいけないアドレスのデータ)が出力されないように構成される。
【0023】
RAM12は、データを一時的に記憶する揮発性メモリである。RAM12の所定の記憶領域は、通信用バッファとして使用される。通信用バッファに格納されたデータは、I/O回路14を介して外部端末2へ出力されることになる。
【0024】
フラッシュメモリ13は、プログラム(本発明のデータ複製制御プログラムを含む)やデータを格納する不揮発性メモリである。フラッシュメモリ13には、CPU11によるコマンド処理の結果に基づいて外部端末2へ出力するためのレスポンスデータが記憶される。このレスポンスデータは、例えば、ICチップ1a内に保持する値(例えば鍵データ)、またはICチップ1a内で演算した結果の値である。
【0025】
I/O回路14は、外部端末2とのインターフェイスを担う。I/O回路14には、例えばISO/IEC7816によって定められたC1〜C8の8個の端子が設けられている。例えば、C1端子は電源端子、C2端子はリセット端子、C3端子はクロック端子、C5端子はグランド端子、C7端子は外部端末2とのデータ通信を行う端子である。
【0026】
CPU11は、上記コマンド処理において、本発明におけるデータ複製手段として機能することにより、フラッシュメモリ13の所定のアドレスに記憶されたレスポンスデータ(つまり、コマンド処理の結果に基づいて外部端末2へ出力するためのレスポンスデータ)を所定サイズ毎に通信用バッファに複製(コピー)する複製処理を行う。例えばレスポンスデータの先頭から一定長のバイト毎に複数回に亘って通信用バッファに繰り返し複製される。
【0027】
また、CPU11は、本発明における判定手段として機能することにより、レスポンスデータの所定サイズの複製毎に複製元のアドレス(フラッシュメモリ13のアドレス)が正当であるか否かを判定する判定処理を行う。つまり、上記所定サイズ毎の複製が行われる度に複製元のアドレスがチェックされる。このチェック方法としては、アドレス(アドレスを示す値)の二重化(三重化以上でもよい)により検証する方法や、アドレス(アドレスを示す値)の誤り検出符号により検証する方法が挙げられる。
【0028】
アドレスの二重化により検証する方法では、レスポンスデータの所定サイズの複製開始前に、複製元のアドレスを二重化して保持する。つまり、CPU11は、本発明におけるアドレス複製手段として機能することにより、レスポンスデータの複製開始前に複製元のアドレスをメモリ(例えば、RAM12またはフラッシュメモリ13に設けられたスタック)に複製することで保持する。このとき保持される値は、「複製元のアドレス」と「複製元のアドレスと同じ値」である。
【0029】
図2は、複製元のアドレスsrcが、二重化されたアドレスsrc_dualとして複製される様子を示す概念図である。そして、二重化されたアドレスが、レスポンスデータの所定サイズの複製時に比較(srcとsrc_dualとが比較)され、互いのアドレスが一致する場合、複製元のアドレスが正当であると判定するように構成する。一方、互いのアドレスが一致しない場合、当該アドレスが正当でないと判定される。或いは、このとき保持される値は、「複製元のアドレス」と「複製元のアドレスの反転値」であってもよい。この場合、「複製元のアドレス」と「複製元のアドレスの反転値」との整合性が取れていることが、レスポンスデータの所定サイズの複製時に確認され、整合性が取れている場合、複製元のアドレスが正当であると判定するように構成する。一方、整合性が取れていない場合、当該アドレスが正当でないと判定される。例えば、図2において、srcに複製元のアドレス、Src_dualに複製元のアドレスの反転値が格納されていた場合、srcと、src_dualの反転値が一致する場合、複製元のアドレスが正当であると判定される。このように反転値を保持しておくことにより、セキュリティ性を向上させることはできる。メモリは特性として「攻撃を受けると特定の値に変化しやすい」という場合がある。この場合、元の値をそのまま二重化して保持していた場合、両方へ攻撃されてしまうと両方とも同じ値に変化してしまう。しかし、反転値を保持していた場合では、両方へ攻撃されて同じ値になっても攻撃を検知することが可能になる。
【0030】
一方、アドレスの誤り検出符号により検証する方法では、レスポンスデータの所定サイズの複製開始前に、複製元のアドレスをCRC(Cyclic Redundancy Check, CRC)演算してCRCの値を保持する。そして、レスポンスデータの所定サイズの複製時に複製元のアドレスをCRC演算することで得られたCRCの値と、所定サイズの複製前に演算され保持されたCRCの値とが比較され、互いのCRCの値が一致する場合、複製元のアドレスが正当であると判定するように構成する。或いは、アドレスの誤り検出符号により検証する別の方法では、レスポンスデータの所定サイズの複製開始前に複製元のアドレスのチェックサムを演算してチェックサムの値を保持する。そして、レスポンスデータの所定サイズの複製時に複製元のアドレスのチェックサムを演算することで得られた値と、所定サイズの複製前に演算され保持されたチェックサムの値とが比較され、互いのチェックサムの値が一致する場合、複製元のアドレスが正当であると判定するように構成する。
【0031】
アドレスの二重化により検証する方法とアドレスの誤り検出符号により検証する方法とを比較すると、アドレスの二重化により検証する方法の方が、アドレスの誤り検出符号により検証する方法よりも処理時間を短縮することができる。一方、アドレスの誤り検出符号により検証する方法の方が、アドレスの二重化により検証する方法よりもメモリ容量を抑えることができる。
【0032】
そして、CPU11は、本発明における制御手段として機能することにより、複製元のアドレスが正当でないと判定されることなく複製が完了した場合に、当該通信用バッファに複製されたレスポンスデータをI/O回路14を介して外部端末2へ出力する。一方、CPU11は、上記複製処理及び判定処理の途中で、複製元のアドレスが正当でないと判定した場合、レスポンスデータの複製処理を中断する(データ複製制御方法1)。或いは、CPU11は、上記複製処理及び判定処理の途中で、複製元のアドレスが正当でないと判定された場合にも、レスポンスデータの所定サイズ毎の複製を継続させ複製完了した後に以降の処理を中断する(データ複製制御方法2)。データ複製制御方法2の場合、CPU11は、通信用バッファに複製されたレスポンスデータの外部端末2への出力を不能にする。
【0033】
次に、図3及び図4を参照して、外部端末2からコマンドを受信したときのCPU11の処理について説明する。図3(A)は、データ複製制御方法1における処理を示すフローチャートであり、図3(B)は、図3(A)に示す処理に対応する疑似コードの一例を示す図である。図4(A)は、データ複製制御方法2における処理を示すフローチャートであり、図4(B)は、図4(A)に示す処理による効果を説明するための図である。なお、図3(A)及び図4(A)は、アドレスの二重化により検証する方法を適用した場合の処理であり、例えばデータの読み出しコマンドを受信した場合に開始される。
【0034】
先ず、図3(A)に示すデータ複製制御方法1における処理について説明する。図3(A)に示すステップS1では、CPU11は、上述したように、複製元のアドレスを二重化して保持する。次いで、CPU11は、複製処理を開始し(ステップS2)、レスポンスデータの複製元のアドレスが正当であるか否かを判定する(ステップS3)。例えば、CPU11は、レスポンスデータの複製元のアドレスと、ステップS1で保持されたアドレスとが一致しているかを判定し、一致している場合、当該アドレスが正当であると判定する(ステップS3:YES)。このようにアドレスが正当であると判定された場合、CPU11は、レスポンスデータの一定長を通信用バッファに複製(言い換えれば、通信用バッファに転送)する(ステップS4)。
【0035】
次いで、CPU11は、レスポンスデータの複製が完了したか否かを判定する(ステップS5)。そして、レスポンスデータの複製が完了していない場合(ステップS5:NO)、CPU11は、ステップS2に戻り、レスポンスデータの一定長毎の複製処理を継続する。一方、レスポンスデータの複製が完了した場合(ステップS5:YES)、CPU11は、通信用バッファに複製されたレスポンスデータをI/O回路14を介して外部端末2へ出力する(ステップS6)。
【0036】
一方、ステップS3において、レスポンスデータの複製元のアドレスと、ステップS1で保持されたアドレスとが一致していない場合、CPU11は、当該アドレスが正当でないと判定(異常検知)し(ステップS3:NO)、レスポンスデータの複製を中断して動作停止(システム停止)する(ステップS7)。つまり、上記アドレスが一致しないことにより異常が検知された場合、外部からの攻撃があったものとみなし、複製処理が中断される。なお、ステップS7において、CPU11は、外部端末2へエラーを応答してもよい。また、ステップS7において、CPU11は、レスポンスデータとは異なるダミーデータ(固定値または乱数)を外部(例えば、攻撃者の外部端末)へ出力するように構成すれば、当該攻撃者に対して、出力されたデータが内部の秘匿したいデータであるか否かを絞らせないようにすることができる。
【0037】
以上説明したように、上記データ複製制御方法1によれば、CPU11は、レスポンスデータを所定サイズ毎に通信用バッファに複製する複製処理を行い、所定サイズの複製毎に複製元のアドレスが正当であるかを判定し、当該複製処理の途中で複製元のアドレスが正当でないと判定した場合、当該複製処理を中断するように構成したので、外部からの攻撃が複数回繰り返し行われる場合であっても、内部の秘匿したいデータが外部へ出力されることを防止(データが不正に外部に複製されることを防止)することができる。
【0038】
次に、図4(A)に示すデータ複製制御方法2における処理について説明する。データ複製制御方法2における処理の前提として、異常が検知されたことを記録する領域(以下、「異常検知フラグ」という)が用意される。図4(A)に示すステップS11では、図3(A)に示すステップS1と同様、CPU11は、複製元のアドレスを二重化して保持する。次いで、CPU11は、異常検知フラグをオフに(つまり、リセット)する(ステップS12)。次いで、CPU11は、複製処理を開始し(ステップS13)、図3(A)に示すステップS3と同様、レスポンスデータの複製元のアドレスが正当であるか否かを判定する(ステップS14)。そして、上記アドレスが正当であると判定された場合(ステップS14:YES)、図3(A)に示すステップS4と同様、CPU11は、レスポンスデータの一定長を通信用バッファに複製する(ステップS15)。一方、上記アドレスが正当でないと判定(異常検知)された場合(ステップS14:NO)、CPU11は、異常検知フラグをオンに(例えば、異常が検知されたことを記録する領域のデータ“0”を“1”に更新)し(ステップS16)、レスポンスデータの一定長を通信用バッファに複製する(ステップS15)。つまり、CPU11は、複製処理の途中で異常が検知された場合、外部からの攻撃があったものとみなし、異常検知フラグをオンするが、複製処理は継続して実行する。
【0039】
次いで、CPU11は、レスポンスデータの複製が完了したか否かを判定し(ステップS17)、レスポンスデータの複製が完了していない場合(ステップS17:NO)、ステップS13に戻り、レスポンスデータの一定長毎の複製処理を継続する。一方、レスポンスデータの複製が完了した場合(ステップS17:YES)、CPU11は、異常検知フラグがオンであるか否かを判定する(ステップS18)。そして、異常検知フラグがオンでないと判定された場合(ステップS18:NO)、CPU11は、通信用バッファに複製されたレスポンスデータをI/O回路14を介して外部端末2へ出力する(ステップS19)。一方、異常検知フラグがオンであると判定された場合(ステップS18:YES)、動作停止する(ステップS20)。つまり、データ複製制御方法2では、CPU11は、全ての複製処理が完了した後、異常検知フラグを確認し、オフの場合はそのまま処理を継続してレスポンスデータの出力し、オンになっていた場合は以降の処理を中断することで通信用バッファに複製されたレスポンスデータの外部端末2への出力を不能にする。なお、ステップS20において、CPU11は、外部端末2へエラーを応答してもよい。また、ステップS20において、CPU11は、ステップS7と同様、レスポンスデータとは異なるダミーデータ(固定値または乱数)を外部(例えば、攻撃者の外部端末)へ出力するように構成してもよい。
【0040】
以上説明したように、上記データ複製制御方法2によれば、CPU11は、レスポンスデータを所定サイズ毎に通信用バッファに複製する複製処理を行い、所定サイズの複製毎に複製元のアドレスが正当であるかを判定し、当該複製処理の途中で複製元のアドレスが正当でないと判定した場合、当該複製処理を継続して複製完了した後に以降の処理を中断することで通信用バッファに複製されたレスポンスデータの外部端末2への出力を不能にするように構成したので、外部からの攻撃が複数回繰り返し行われる場合であっても、内部の秘匿したいデータが外部へ出力されることを防止することができる。更に、上記データ複製制御方法2によれば、複製処理の途中で複製元のアドレスが正当でないと判定された場合であっても当該複製処理を継続して複製完了した後に以降の処理を中断するように構成したので、どのタイミングで異常が検知されたかを攻撃者に観測(把握)させないようにすることができる。つまり、図4(B)に示すように、所定サイズ毎の複製が、1回目から4回目まであったと仮定した場合において、複製2回目で攻撃があったとすると、その攻撃タイミングでは複製が中断されず、複製4回目まで完了した後に動作停止するので、攻撃者は攻撃タイミングが間違っていないかどうかを判断することができない。
【符号の説明】
【0041】
1 ICカード
1a ICチップ
11 CPU
12 RAM
13 フラッシュメモリ
14 I/O回路
図1
図2
図3
図4