(57)【要約】【課題】レーザー攻撃が行われメモリに格納されたデータが改竄された際、データが改竄されたことを検知できるセキュリティデバイスを提供する。【解決手段】セキュリティトークン１の制御手段１０は、誤り検出符号が付加されたデータファイルからデータを読み出して処理を行う際、データファイルが読み書き可能なメモリに格納されている場合、データファイルから所定のデータを読み出し、読み出したデータを元の場所に書き戻した後、データを書き戻した後のデータファイルの誤り検出符号を検証し、データファイルに誤りがある場合、読み出したデータが改竄されたと判定するデータ改竄検知処理を実行する。【選択図】図３
2014052955.tif 000002
【特許請求の範囲】
【請求項１】
誤り検出符号が付加されたデータファイルからデータを読み出して処理を行う際、前記データファイルが読み書き可能なメモリに格納されている場合、前記データファイルから所定のデータを読み出し、読み出したデータを元の場所に書き戻した後、データを書き戻した後の前記データファイルの誤り検出符号を検証し、前記データファイルに誤りがある場合、読み出したデータが改竄されたと判定するデータ改竄検知処理を実行する制御手段を備えていることを特徴とするセキュリティトークン。
【請求項２】
前記制御手段は、前記データファイルからデータを読み出す際、前記データファイルが所定のメモリに格納されている場合、前記所定のメモリに格納されている前記データファイルをＲＡＭにコピーした後、ＲＡＭにコピーした前記データファイルの誤り検出符号を検証し、ＲＡＭにコピーした前記データファイルに誤りがない場合のみ、ＲＡＭにコピーした前記データファイルを用いて処理を行い、ＲＡＭにコピーした前記データファイルからデータを読み出す際、前記データ改竄検知処理を実行することを特徴とする、請求項１に記載したセキュリティトークン。
【請求項３】
セキュリティトークンのＣＰＵが、誤り検出符号が付加されたデータファイルからデータを読み出して処理を行う際、前記データファイルが読み書き可能なメモリに格納されている場合、前記データファイルから所定のデータを読み出し、読み出したデータを元の場所に書き戻した後、データを書き戻した後の前記データファイルの誤り検出符号を検証し、前記データファイルに誤りがある場合、読み出したデータが改竄されたと判定するデータ改竄検知処理を実行することを特徴とするデータ改竄検知方法。
【請求項４】
前記セキュリティトークンのＣＰＵは、前記データファイルからデータを読み出す際、前記データファイルが所定のメモリに格納されている場合、前記所定のメモリに格納されている前記データファイルをＲＡＭにコピーした後、ＲＡＭにコピーした前記データファイルの誤り検出符号を検証し、ＲＡＭにコピーした前記データファイルに誤りがない場合のみ、ＲＡＭにコピーした前記データファイルを用いて処理を行い、ＲＡＭにコピーした前記データファイルからデータを読み出す際、前記データ改竄検知処理を実行することを特徴とする、請求項３に記載したデータ改竄検知方法。
【請求項５】
誤り検出符号が付加されたデータファイルからデータを読み出して処理を行う際、前記データファイルが読み書き可能なメモリに格納されている場合、前記データファイルから所定のデータを読み出し、読み出したデータを元の場所に書き戻した後、データを書き戻した後の前記データファイルの誤り検出符号を検証し、前記データファイルに誤りがある場合、読み出したデータが改竄されたと判定するデータ改竄検知処理を実行する制御手段として、セキュリティトークンのＣＰＵを機能させるためのコンピュータプログラム。
【請求項６】
前記制御手段は、前記データファイルからデータを読み出す際、前記データファイルが所定のメモリに格納されている場合、前記所定のメモリに格納されている前記データファイルをＲＡＭにコピーした後、ＲＡＭにコピーした前記データファイルの誤り検出符号を検証し、ＲＡＭにコピーした前記データファイルに誤りがない場合のみ、ＲＡＭにコピーした前記データファイルを用いて処理を行い、ＲＡＭにコピーした前記データファイルからデータを読み出す際、前記データ改竄判定処理を実行することを特徴とする、請求項５に記載したコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路を実装したセキュリティトークンに関し、更に詳しくは、レーザーを用いてメモリに格納されたデータを変化させるレーザー攻撃に対する耐タンパ性を高める技術に関する。
【背景技術】
【０００２】
半導体集積回路が実装されたセキュリティトークンは高いセキュリティを要する用途に利用され、例えば、セキュリティトークンの一つであるＩＣカードは、既に、金融用途においてキャッシュカードやクレジットカードに実用化されている。また、セキュリティトークンの一つであるチェーン付きのＵＳＢキーは、ユーザ認証に利用するワンタイムパスワードを生成する装置としての利用が検討されている。
【０００３】
高いセキュリティを要する用途に利用されるセキュリティトークン内には、セキュリティトークンの用途に合わせて、外部への漏洩が許されないセキュリティデータが記憶されるが、セキュリティデータの取得を目的とした様々なセキュリティ攻撃法が考案され、セキュリティトークンには該セキュリティ攻撃法に対する耐タンパ性が求められている。
【０００４】
新しく考案されたセキュリティ攻撃法の一つにレーザー攻撃がある。レーザー攻撃は、セキュリティトークンに実装された半導体集積回路の読み書き可能なメモリに対してレーザーを照射し、読み書き可能なメモリの状態を一時的に高エネルギー状態にすることにより、読み書き可能なメモリに記録されているデータを意図的に変化させ、レーザーを照射した時のセキュリティトークンから得られる出力とレーザーを照射しない時のセキュリティトークンから得られる出力を比較するなどして、セキュリティデータを得ようとするセキュリティ攻撃方法である。
【０００５】
図６は、レーザー攻撃を説明する図である。図６（ａ）に図示しているように、読み書き可能なメモリから一時的に利用するデータ（ここでは、１バイト目）を読み出す場合、通常であれば、正常値（ここでは、１１ｈ）が読み出される。
【０００６】
しかし、読み書き可能なメモリからデータを読み出すときに、読み出し対象となるデータが格納されている箇所にレーザーが照射されると、レーザーが照射された箇所のデータが別の値に変化し、正常値でない値が読み出されてしまう。
【０００７】
このようなレーザー攻撃の危険性は以前から指摘されていたが、読み書き可能なメモリの極小範囲のみにレーザーを照射することは技術的に難しく、レーザー攻撃の実効性は低く対策は不要と考えられていた。
【０００８】
しかし、近年、レーザーの照射技術が飛躍的に向上したことで、読み書き可能なメモリの極小範囲のみにレーザーを照射することが可能となり、レーザー攻撃も現実味が出てきたため、レーザー攻撃への対策も要求されるようになった。
【０００９】
本出願人は、特許文献１においてレーザー攻撃法対策の一つとして、セキュリティトークンの電気的に書き換え可能な不揮発性メモリに記憶するセキュリティデータを暗号化するケースであっても、セキュリティデータを暗号化するときに利用したスクランブル鍵の漏洩を防止できる発明を開示している。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１０-２５８６３０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述した発明は、セキュリティデータを暗号化するときに利用したスクランブル鍵の漏洩を防止する発明で、レーザー攻撃によりセキュリティデータが改竄されたことを検知するための発明ではない。
【００１２】
そこで、本発明は、レーザー攻撃が行われメモリに格納されたデータが改竄された際、データが改竄されたことを検知できるセキュリティデバイス、データ改竄検知方法およびコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決する第１の発明は、誤り検出符号が付加されたデータファイルからデータを読み出して処理を行う際、前記データファイルが読み書き可能なメモリに格納されている場合、前記データファイルから所定のデータを読み出し、読み出したデータを元の場所に書き戻した後、データを書き戻した後の前記データファイルの誤り検出符号を検証し、前記データファイルに誤りがある場合、読み出したデータが改竄されたと判定するデータ改竄検知処理を実行する制御手段を備えていることを特徴とするセキュリティトークンである。
【００１４】
更に、第２の発明は、第１の発明に記載のセキュリティトークンにおいて、前記制御手段は、前記データファイルからデータを読み出す際、前記データファイルが所定のメモリに格納されている場合、前記所定のメモリに格納されている前記データファイルをＲＡＭにコピーした後、ＲＡＭにコピーした前記データファイルの誤り検出符号を検証し、ＲＡＭにコピーした前記データファイルに誤りがない場合のみ、ＲＡＭにコピーした前記データファイルを用いて処理を行い、ＲＡＭにコピーした前記データファイルからデータを読み出す際、前記データ改竄検知処理を実行することを特徴とする。
【００１５】
更に、第３の発明は、セキュリティトークンのＣＰＵが、誤り検出符号が付加されたデータファイルからデータを読み出して処理を行う際、前記データファイルが読み書き可能なメモリに格納されている場合、前記データファイルから所定のデータを読み出し、読み出したデータを元の場所に書き戻した後、データを書き戻した後の前記データファイルの誤り検出符号を検証し、前記データファイルに誤りがある場合、読み出したデータが改竄されたと判定するデータ改竄検知処理を実行することを特徴とするデータ改竄検知方法である。
【００１６】
更に、第４の発明は、第３の発明に記載のデータ改竄検知方法において、前記セキュリティトークンのＣＰＵは、前記データファイルからデータを読み出す際、前記データファイルが所定のメモリに格納されている場合、前記所定のメモリに格納されている前記データファイルをＲＡＭにコピーした後、ＲＡＭにコピーした前記データファイルの誤り検出符号を検証し、ＲＡＭにコピーした前記データファイルに誤りがない場合のみ、ＲＡＭにコピーした前記データファイルを用いて処理を行い、ＲＡＭにコピーした前記データファイルからデータを読み出す際、前記データ改竄判定処理を実行することを特徴とする。
【００１７】
更に、第５の発明は、誤り検出符号が付加されたデータファイルからデータを読み出して処理を行う際、前記データファイルが読み書き可能なメモリに格納されている場合、前記データファイルから所定のデータを読み出し、読み出したデータを元の場所に書き戻した後、データを書き戻した後の前記データファイルの誤り検出符号を検証し、前記データファイルに誤りがある場合、読み出したデータが改竄されたと判定するデータ改竄検知処理を実行する制御手段として、セキュリティトークンのＣＰＵを機能させるためのコンピュータプログラムである。
【００１８】
更に、第６の発明は、前記セキュリティトークンのＣＰＵを、前記データファイルからデータを読み出す際、前記データファイルが所定のメモリに格納されている場合、前記所定のメモリに格納されている前記データファイルをＲＡＭにコピーした後、ＲＡＭにコピーした前記データファイルの誤り検出符号を検証し、ＲＡＭにコピーした前記データファイルに誤りがない場合のみ、ＲＡＭにコピーした前記データファイルを用いて処理を行い、ＲＡＭにコピーした前記データファイルからデータを読み出す際、前記データ改竄判定処理を実行する前記制御手段として機能させるためのコンピュータプログラムである。
【発明の効果】
【００１９】
上述した本発明によれば、誤り検出符号が付加されたデータファイルからデータを読み出して処理を行う際、レーザー攻撃を受けてデータが改竄されると、正常値でないデータがデータファイルに書き戻され、データを書き戻した後のデータファイルの誤り検出符号の検証に失敗するため、データファイルから読み取ったデータが改竄されたことを検知できる。
【図面の簡単な説明】
【００２０】
【図１】セキュリティトークンを説明する図。
【図２】データファイルを説明する図。
【図３】データ改竄検知処理を説明する図。
【図４】発明の効果の説明に用いる図。
【図５】データ改竄検知処理の前に実行する動作を説明する図。
【図６】レーザー攻撃を説明する図。
【発明を実施するための形態】
【００２１】
ここから、本発明に係るセキュリティトークンについて説明する。
【００２２】
［第１実施形態］
図１は、本実施形態のセキュリティトークン１を説明する図である。本実施形態のセキュリティトークン１は、高いセキュリティが要求されるコンピュータシステムに利用されるデバイスで、図１に図示したように、本実施形態のセキュリティトークン１には半導体集積回路２が実装される。
【００２３】
このようなセキュリティトークン１としては、ＩＣカードやＵＳＢキーに加え、本出願人がすでに販売しているＴｉｎｙＳｍａｒｔのように、ＩＣカード用のオペレーティングシステムを搭載したＳＤカードも利用できる。
【００２４】
図１に図示したように、セキュリティトークン１に実装される半導体集積回路２は、マイクロプロセッサであるＣＰＵ２０（Central Processing Unit）に加え、読み書き可能なメモリとして、揮発性メモリであるＲＡＭ２１（Random Access Memory）と、電気的に書換え可能な不揮発性メモリであるＥＥＰＲＯＭ２３（Electrically Erasable and Programmable Read Only Memory）を備え、更に、書き込み不可能なメモリとして、ＲＯＭ２２（Read Only Memory）を備え、ＣＰＵ２０とそれぞれのメモリは、アドレスバス２４およびデータバス２５を介して接続している。
【００２５】
なお、図１では、電気的に書換え可能な不揮発性メモリをＥＥＰＲＯＭ２３として記載しているが、電気的に書換え可能な不揮発性メモリはＦｅＲＡＭであってもよい。また、セキュリティトークン１には、乱数を生成する乱数生成器（Random Number Generator）、所定の暗号アルゴリズム（例えば、ＤＥＳ）の演算機能に特化した暗号演算コプロセッサ（Cryptographic Co-processer）、外部装置とのデータの送受信に利用するインターフェースなどを備えるが、これらの周辺回路は本発明とは係わりないため、図１では図示していない。
【００２６】
図２は、読み書き可能なメモリに格納されているデータファイルを説明する図である。第１実施形態において、セキュリティトークン１に実装された半導体集積回路２の読み書き可能なメモリ（ここでは、ＲＡＭ２１、ＥＥＰＲＯＭ２３）には、外部装置から受信したコマンドを処理する時に用いられるデータを含むデータファイルが格納され、このデータファイルの最後には、データファイルに含まれる全てのデータから演算した誤り検出符号（CC: CheckCode）が付加されている
【００２７】
図６を用いて説明したように、半導体集積回路２のＣＰＵ２０が利用するデータをデータファイルから読み出す時にレーザー攻撃を受けると、半導体集積回路２のＣＰＵ２０が読み出したデータが正常値ではなくなるため、第１実施形態のセキュリティトークン１には、データファイルに付加された誤り検出符号を利用してデータの改竄を検知するデータ改竄検知処理を実行する制御手段１０が備えられ、データ改竄検知処理を実行するためのコンピュータプログラムがＣＰＵ２０で実行されることで、ＣＰＵ２０は制御手段１０として機能する。
【００２８】
図３は、第１実施形態における制御手段１０が実行するデータ改竄検知処理を説明する図である。セキュリティトークン１の制御手段１０が、読み書き可能なメモリに格納されているデータファイルから、処理に利用するデータを読み出すと（Ｓ１）、制御手段１０は、読み出したデータを読み書き可能なメモリの元の場所に書き戻す処理を実行する（Ｓ２）。
【００２９】
次に、制御手段１０は、データを書き戻した後のデータファイルの誤り検出符号を再度算出し、データを書き戻したデータファイルに付加されている誤り検出符号と照合することで、データを書き戻した後のデータファイルの誤り検出符号を検証する（Ｓ３）。
【００３０】
次に、制御手段１０は、データファイルの誤り検出符号の検証結果に応じて処理を分岐させ（Ｓ４）、誤り検出符号の検証に成功すると、データの改竄がなかったと判定し、それ以降の処理を続行して（Ｓ５）、この手順は終了し、誤り検出符号の検証に失敗すると、データの改竄があったと判定し、それ以降の処理を中断して（Ｓ６）、この手順は終了する。
【００３１】
ここから、発明の効果について説明する。図４は、発明の効果の説明に用いる図である。
【００３２】
図６では、レーザーが照射される場所を読み書き可能なメモリとしているが、半導体集積回路２のアドレスバス２４、データバス２５またはＣＰＵ２０にレーザーが照射されても、読み書き可能なメモリからＣＰＵ２０（制御手段１０）が読み出したデータが正常値でなくなる可能性がある。
【００３３】
図４（ａ）は、ＣＰＵ２０がデータを読み出し可能なメモリから読み出すタイミングで、読み出すデータにレーザーが照射された場合を説明する図である。このケースでは、読み出し可能なメモリに格納されたデータは正常値ではなくなり、読み書き可能なメモリからＣＰＵ２０が読み出したデータも正常値ではなくなる。
【００３４】
図４（ｂ）は、ＣＰＵ２０がデータを読み出し可能なメモリから読み出すタイミングで、アドレスバス２４、データバス２５またはＣＰＵ２０にレーザーが照射された場合を説明する図である。このケースでは、読み書き可能なメモリに格納されているデータは正常値のままであるが、読み書き可能なメモリからＣＰＵ２０が読み出したデータが正常値ではなくなる。
【００３５】
ＣＰＵ２０がデータを読み出し可能なメモリから読み出すタイミングでアドレスバス２４にレーザーが照射されると、正常値でないアドレスからデータが読み出されるため、ＣＰＵ２０が読み書き可能なメモリから読み出したデータは正常値ではなくなる。
【００３６】
また、ＣＰＵ２０がデータを読み出し可能なメモリから読み出すタイミングでデータバス２５にレーザーが照射されると、データバス２５上にてデータが変化し、データバス２５を介してＣＰＵ２０に引き渡されるデータが正常値ではなくなるため、ＣＰＵ２０が読み書き可能なメモリから読み出したデータは正常値ではなくなる。
【００３７】
また、ＣＰＵ２０がデータを読み出し可能なメモリから読み出すタイミングでＣＰＵ２０にレーザーが照射された場合、ＣＰＵ２０の内部に格納されたデータが変化するため、ＣＰＵ２０が読み書き可能なメモリから読み出したデータは正常値ではなくなる。
【００３８】
図４（ａ）、（ｂ）のいずれの場合であっても、ＣＰＵ２０が読み書き可能なメモリから読み出したデータは正常値でなくなり、正常値でないデータが読み書き可能なメモリのデータファイルに書き戻されるため、データを書き戻した後にデータファイルの誤り検出符号を検証すると、誤り検出符号の検証に失敗しＣＰＵ２０はデータの改竄があったことを検知できる。
【００３９】
［第２実施形態］
第２実施形態は、第１実施形態において、読み出すデータが書き込み不可能なメモリ（ここでは、ＲＯＭ２２）に格納されている場合についても対応が取れるようにした形態である。レーザー攻撃によって、ＲＯＭ２２に格納されているデータは変化しにくいが、アドレスバス２４、データバス２５またはＣＰＵ２０にレーザーが照射されると、読み出すデータがＲＯＭ２２に格納されている場合であっても、ＣＰＵ２０が読み出したデータは正常値ではなくなる。
【００４０】
図５は、第２実施形態における制御手段１０がデータ改竄検知処理の前に実行する動作を説明する図である。図５の処理において、セキュリティトークン１の制御手段１０は、データファイルからデータを読み出す際、まず、データファイルが格納されているメモリの種別を確認する（Ｓ１０）。
【００４１】
制御手段１０は、データファイルが格納されているメモリの種別によって処理を分岐させ（Ｓ１１）、データを読み出すデータファイルが格納されているメモリの種別が、所定の種別（ここでは、ＲＯＭ２２）でない場合、図３を用いて説明したデータ改竄検知処理を実行する（Ｓ１５）。
【００４２】
また、制御手段１０は、データを読み出すデータファイルが格納されているメモリの種別が、所定の種別（ここでは、ＲＯＭ２２）の場合、所定の種別のメモリ（ここでは、ＲＯＭ２２）に格納されているデータファイルを読み書き可能なメモリの一つであるＲＡＭ２１へコピーする（Ｓ１２）。
【００４３】
次に、制御手段１０は、この時点で、レーザー攻撃がないことを判定するために、ＲＡＭ２１にコピーしたデータファイルの誤り検出符号を検証する（Ｓ１３）。
【００４４】
次に、制御手段１０は、誤り検出符号の検証結果に応じて処理を分岐させ（Ｓ１４）、誤り検出符号の検証に失敗した場合、制御手段１０は、これ以降の処理を中断して（Ｓ１６）、この手順を終了する。
【００４５】
また、誤り検出符号の検証に成功した場合、制御手段１０は、ＲＡＭ２１のデータファイルを利用して処理を続行し、ＲＡＭ２１のデータファイルからデータを読み出す際、図３を用いて説明したデータ改竄検知処理を実行する（Ｓ１５）。
【００４６】
なお、第２実施形態の内容は、書き込み不可能なＲＯＭ２２ばかりではなく、所定の種別にＥＥＰＲＯＭ２３を含ませることで、書き込み時間に時間のかかるＥＥＰＲＯＭ２３にも適用することもできる。
【符号の説明】
【００４７】
１    セキュリティトークン
１０  制御手段
２    半導体集積回路
２０  ＣＰＵ
２１  ＲＡＭ
２２  ＲＯＭ
２３  ＥＥＰＲＯＭ
２４  アドレスバス
２５  データバス
【図１】
2014052955.tif 000003
【図２】
2014052955.tif 000004
【図３】
2014052955.tif 000005
【図４】
2014052955.tif 000006
【図５】
2014052955.tif 000007
【図６】
2014052955.tif 000008