(57)【要約】      （修正有）【課題】ＩＣチップや、ＩＣカードのセキュリティ強度を向上できるＩＣチップ、ＩＣカード及びプログラムを提供する。【解決手段】自ＩＣチップのセキュリティレベルを記憶する記憶部１０３と、所定の場合に、記憶部に記憶されているセキュリティレベルを変更するセキュリティレベル設定部１１３と、セキュリティレベル設定部１１３により変更されたセキュリティレベルにしたがって処理を行う処理部１１４とを備えてＩＣチップを構成する。【選択図】図１
2020009305.tif 000002
【特許請求の範囲】
【請求項１】
自ＩＣチップのセキュリティレベルを記憶する記憶部と
所定の場合に、前記記憶部に記憶されている前記セキュリティレベルを変更するセキュリティレベル設定部と、
前記セキュリティレベル設定部により変更されたセキュリティレベルにしたがって、処理を行う処理部と
を備えるＩＣチップ。
【請求項２】
前記記憶部は、セキュリティレベルに関連して、認証に関するパラメータと、処理に関するパラメータとのいずれか一方又は両方を記憶し、
前記処理部は、前記セキュリティレベル設定部により変更されたセキュリティレベルに関連付けられているパラメータを用いて処理を行う、請求項１に記載のＩＣチップ。
【請求項３】
前記自ＩＣチップにエラーが発生したか否かを判定するエラー判定部を備え、
前記セキュリティレベル設定部は、前記エラー判定部が、エラーが発生したと判定した場合に、前記セキュリティレベルをアップする、請求項１又は請求項２に記載のＩＣチップ。
【請求項４】
前記処理部が処理した結果が前記セキュリティレベルをダウンさせる条件である復帰条件を満たすか否かを判定する処理結果判定部を備え、
前記セキュリティレベル設定部は、前記処理結果判定部が前記復帰条件を満たしたと判定した場合に、カレントセキュリティレベルが、前記ＩＣチップが発行されたときに設定されているセキュリティレベルよりも高い場合には前記セキュリティレベルをダウンし、前記ＩＣチップが発行されたときに設定されているセキュリティレベルと同じである場合には前記セキュリティレベルを変更しない、請求項１から請求項３のいずれか一項に記載のＩＣチップ。
【請求項５】
前記セキュリティレベル設定部が、前記セキュリティレベルをアップした結果、最上のセキュリティレベルを超える場合に、自ＩＣチップを再起不能の状態に変更する状態変更部を備える、請求項１から請求項４のいずれか一項に記載のＩＣチップ。
【請求項６】
外部装置と通信を行う通信部と、
自ＩＣカードのセキュリティレベルを記憶する記憶部と
所定の場合に、前記記憶部に記憶されている前記セキュリティレベルを変更するセキュリティレベル設定部と、
前記外部装置との通信路設定後の通信にあたり、前記セキュリティレベル設定部により変更されたセキュリティレベルにしたがって、処理を行う処理部と、
を備えるＩＣカード。
【請求項７】
前記記憶部は、セキュリティレベルに関連して、認証に関するパラメータと、処理に関するパラメータとのいずれか一方又は両方を記憶し、
前記処理部は、前記セキュリティレベル設定部により変更されたセキュリティレベルに関連付けられているパラメータを用いて処理を行う、請求項６に記載のＩＣカード。
【請求項８】
前記自ＩＣカードにエラーが発生したか否かを判定するエラー判定部を備え、
前記セキュリティレベル設定部は、前記エラー判定部が、エラーが発生したと判定した場合に、前記セキュリティレベルをアップする、請求項６又は請求項７に記載のＩＣカード。
【請求項９】
前記自ＩＣカードの温度を検出する温度センサーと、前記自ＩＣカードに印加された電圧を検出する電圧センサーと、前記自ＩＣカードに照射されたレーザー光を検出する受光部との少なくとも一つを備え、
前記エラー判定部は、前記温度センサーと、前記電圧センサーと、前記受光部との少なくとも一つが検出した結果に基づいて、エラーが発生したか否かを判定する、請求項８に記載のＩＣカード。
【請求項１０】
前記セキュリティレベル設定部によりセキュリティレベルが変更された後に、前記処理部が処理した結果が前記セキュリティレベルをダウンさせる条件である復帰条件を満たすか否かを判定する処理結果判定部を備え、
前記セキュリティレベル設定部は、前記処理結果判定部が前記復帰条件を満たしたと判定した場合に、前記セキュリティレベルをダウンする、請求項６から請求項９のいずれか一項に記載のＩＣカード。
【請求項１１】
前記セキュリティレベル設定部が、前記セキュリティレベルをアップした結果、最上のセキュリティレベルを超える場合に、自ＩＣカードを再起不能の状態に変更する状態変更部を備える、請求項６から請求項１０のいずれか一項に記載のＩＣカード。
【請求項１２】
自ＩＣチップのセキュリティレベルを記憶する記憶部を備えるＩＣチップのコンピュータを、
所定の場合に、前記記憶部に記憶されている前記セキュリティレベルを変更するセキュリティレベル設定部と、
前記セキュリティレベル設定部により変更されたセキュリティレベルにしたがって処理を行う処理部として機能させるためのプログラム。
【請求項１３】
自ＩＣカードのセキュリティレベルを記憶する記憶部を備え、外部装置と通信を行うＩＣカードのコンピュータを、
外部装置と通信を行う通信部と、
所定の場合に、前記記憶部に記憶されている前記セキュリティレベルを変更するセキュリティレベル設定部と、
前記外部装置との通信路設定後の通信にあたり、前記セキュリティレベル設定部により変更されたセキュリティレベルにしたがって処理を行う処理部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣチップ、ＩＣカード及びプログラムに関する。
【背景技術】
【０００２】
クレジットカード、キャッシュカード、プリペイドカード、個人証明用カードなどをはじめとする各種用途のＩＣ（Integrated Circuit）カードが普及している。
このようなＩＣカードは、外部からの不正アタックに対して、内部メモリに保持した暗号鍵や秘密データを保護するために、一又は複数のセキュリティ対策機能が実装されている。セキュリティ対策機能には、何段階かのセキュリティ強度のレベルを設定できるもの、又はオン又はオフの一段階で設定されるものがある。セキュリティ強度は、ＩＣカードの用途に応じて、ＩＣカードの発行時に決定される。セキュリティ強度は、ＩＣカードの発行データとして、ＩＣカードのメモリに書き込まれる。
ＩＣカードは、外部装置から電源が供給され、認証処理や暗号処理などのセキュリティが必要な処理を実行するまでに、セキュリティ強度に関するデータを所定のメモリから読み出し、読み出したセキュリティ強度に関するデータを確認する。ＩＣカードは、セキュリティ強度に関するデータに問題ない場合には、そのセキュリティ強度にしたがって処理を実行する。
【０００３】
ＩＣカードのセキュリティ対策機能に関して、ＩＣカードの紛失、盗難等により、所有者以外の不正使用を防止する技術が知られている（例えば、特許文献１参照）。この技術は、ＩＣカードの所有者本人の照合に使用するバイオメトリックスデータの照合機能を備えたＩＣカードであって、使用可能状態となった後のＩＣカードの継続使用の条件を複数のパラメータにより設定可能な機能を有する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１７８１４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
前述したセキュリティ対策機能は、ＩＣカードのオペレーティングシステム(Operating System: ＯＳ)に対して設定されたフラグと、上限値などの設定値とにしたがって、ＯＳが実行する。
具体的には、照合の試行回数の上限値が設定されている場合には、パスワードの照合に失敗した場合には、試行回数に一が加算される。試行回数に一が加算された結果、上限値に到達した場合には、ＩＣカードのＯＳがロックされる。
設定された上限値は変更することはできないため、仮に、攻撃者が、パスワードの照合を行っている場合には、照合の試行回数の上限値に到達するまで、攻撃と許すことになる。
不正を防止するには、必ず実施する対策と、セキュリティ要求によって実施する対策と、段階的に強度を設定できる対策とがある。セキュリティ要求によって実施する対策は、実施することによって、処理が増加するため、処理時間が増加する。段階的に強度を設定できる対策は、強度を最上位に設定することで、セキュリティ強度を高くできるが、処理時間が長くなる。また、段階的に強度を設定できる対策は、強度を低く設定することで、不正アタックを受けた場合に、短時間で暗号鍵などが破られるおそれがある。このため、ＩＣカードが発行される段階で、ＩＣカードが使用されるアプリケーション環境で要求されるセキュリティ強度に基づいて、セキュリティ強度が設定されるが、一度設定されたセキュリティ強度は変更されない。
不正アタックの方法は、日々進化しており、ＩＣカードが製造され、発行されたときから時間が経過した場合に、強化された不正技術で、不正アタックを受けることが想定される。この場合、ＩＣカードに記憶されている暗号用の秘密鍵、秘密データなどが見破られ、暴露、改ざんされるおそれがある。
以上は、ＩＣカードについて主に説明したが、ＩＣチップについても当てはまる。
【０００６】
本発明は、このような事情に鑑みてなされたもので、セキュリティ強度を変更できるＩＣチップ、ＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決する本発明の一態様は、自ＩＣチップのセキュリティレベルを記憶する記憶部と、所定の場合に、前記記憶部に記憶されている前記セキュリティレベルを変更するセキュリティレベル設定部と、前記セキュリティレベル設定部により変更されたセキュリティレベルにしたがって処理を行う処理部とを備えるＩＣチップである。
【０００８】
また、本発明の一態様は、外部装置と通信を行う通信部と、自ＩＣカードのセキュリティレベルを記憶する記憶部と、所定の場合に、前記記憶部に記憶されている前記セキュリティレベルを変更するセキュリティレベル設定部と、前記外部装置との通信路設定後の通信にあたり、前記セキュリティレベル設定部により変更されたセキュリティレベルにしたがって、処理を行う処理部とを備えるＩＣカードである。
【０００９】
また、本発明の一態様は、自ＩＣチップのセキュリティレベルを記憶する記憶部を備えるＩＣチップのコンピュータを、所定の場合に、前記記憶部に記憶されている前記セキュリティレベルを変更するセキュリティレベル設定部と、前記セキュリティレベル設定部により変更されたセキュリティレベルにしたがって処理を行う処理部として機能させるためのプログラムである。
【００１０】
自ＩＣカードのセキュリティレベルを記憶する記憶部を備え、外部装置と通信を行うＩＣカードのコンピュータを、外部装置と通信を行う通信部と、所定の場合に、前記記憶部に記憶されている前記セキュリティレベルを変更するセキュリティレベル設定部と、前記外部装置との通信路設定後の通信にあたり、前記セキュリティレベル設定部により変更されたセキュリティレベルにしたがって処理を行う処理部として機能させるためのプログラムである。
【発明の効果】
【００１１】
本発明によれば、セキュリティ強度を変更できるＩＣチップ、ＩＣカードを提供することが可能になるという効果が得られる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態のＩＣカードの一例を示す図である。
【図２】セキュリティパラメータに含まれる情報の一例を示す図である。
【図３】制御パラメータに含まれる情報の一例を示す図である。
【図４】セキュリティレベル復帰条件に含まれる情報の一例を示す図である。
【図５】セキュリティレベル遷移条件に含まれる情報の一例を示す図である。
【図６】第１の実施形態のＩＣカードの動作の一例を示すフローチャートである。
【図７】第１の実施形態の変形例のＩＣカードの一例を示す図である。
【図８】セキュリティレベル遷移条件に含まれる情報の一例を示す図である。
【図９】第２の実施形態のＩＣチップの一例を示す図である。
【図１０】第２の実施形態の変形例のＩＣカードの一例を示す図である。
【発明を実施するための形態】
【００１３】
次に、本実施形態のＩＣチップ、ＩＣカード及びプログラムを、図面を参照しつつ説明する。以下で説明する実施形態は一例に過ぎず、本発明が適用される実施形態は、以下の実施形態に限られない。
なお、実施形態を説明するための全図において、同一の機能を有するものは同一符号を用い、繰り返しの説明は省略する。
また、本願でいう「ＸＸに基づく」とは、「少なくともＸＸに基づく」ことを意味し、ＸＸに加えて別の要素に基づく場合も含む。また、「ＸＸに基づく」とは、ＸＸを直接に用いる場合に限定されず、ＸＸに対して演算や加工が行われたものに基づく場合も含む。「ＸＸ」は、任意の要素（例えば、任意の情報）である。
【００１４】
（第１の実施形態）
［ＩＣカードの構成例］
図１は、第１の実施形態のＩＣカード１００の一例を示す図である。なお、同図においては、ＩＣカード１００と通信を行う外部装置の一例として、リーダライタ２００がともに示されている。なお、本実施形態におけるリーダライタ２００は、カード所有者がＩＣカード１００を使用する運用段階において使用されるものであってもよいし、ＩＣカード１００の発行段階において、そのＩＣカード１００に対して発行処理を行う発行装置であってもよい。
【００１５】
ＩＣカード１００は、セキュリティに関するパラメータを含むセキュリティレベルを複数種類保持する。複数のセキュリティレベルの各々は、セキュリティ強度が異なる。ＩＣカード１００は、ＩＣカード１００が発行された後に、複数種類のセキュリティレベルのうちのいずれかに設定することによって、セキュリティ強度を動的に変更する。
具体的には、ＩＣカード１００は、例えば、外部から不正アタックを受けたと判断した場合に、設定されているセキュリティレベルよりも、セキュリティ強度の高いセキュリティレベルに設定する。以下、ＩＣカード１００の構成例について、説明する。
【００１６】
［ＩＣカード１００の構成］
図１に示すように、ＩＣカード１００は、通信部１０１と、情報処理部１０２と、記憶部１０３と、温度センサー１０４と、電圧センサー１０５と、受光部１０６とを備える。
通信部１０１は、リーダライタ２００と通信を実行する。通信部１０１による外部装置との通信は接触式であってもよいし非接触式であってもよい。つまり、通信部１０１は、物理層の構成として、接触式に対応する構成を有していてもよいし、非接触式に対応する構成を有していてもよい。また、通信部１０１は、物理層の構成として、接触式に対応する構成と、非接触式に対応する構成とを有していてもよい。
以降の説明では、本実施形態のＩＣカード１００が非接触式で通信を行うようにされている場合を例に挙げる。
【００１７】
記憶部１０３は、ＣＰＵが実行するプログラムと暗号鍵とのほか、情報処理部１０２が利用する各種データを記憶する。リーダライタ２００などの外部装置との通信に関連して、記憶部１０３は、セキュリティパラメータ１２１と、制御パラメータ１２２と、セキュリティレベル復帰条件１２３と、セキュリティレベル遷移条件１２４とを記憶する。
記憶部１０３は、不揮発性メモリを備えて構成される。記憶部１０３が備える不揮発性メモリとしては、例えばＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）、フラッシュメモリ、及びＲＯＭ（Read Only Memory）などを挙げることができる。
【００１８】
［セキュリティパラメータ］
セキュリティパラメータ１２１は、複数のセキュリティレベルの各々に関連して、一又は複数のパラメータを含む。複数のセキュリティレベルの各々は、ＩＣカード１００のＯＳの状態を表しており、セキュリティ強度が異なる。
図２は、セキュリティパラメータ１２１に含まれる情報の一例を示す図である。図２に示される例では、セキュリティパラメータ１２１は、セキュリティ強度が低い方から高い方へ、セキュリティレベル１（ＳＥＣ  ＬＶ１）からセキュリティレベル４（ＳＥＣ  ＬＶ４）の四種類のセキュリティレベルを含む。
さらに、セキュリティレベル１からセキュリティレベル４の各々に関連付けて、パスワード照合の試行回数とその設定値と、認証ＮＧの許容回数とその設定値と、処理時間のランダム機能ＯＮ／ＯＦＦとその設定値と、暗号強化処理ＯＮ／ＯＦＦとその設定値と、重要データのチェックコード検証ＯＮ／ＯＦＦとその設定値とが記憶されている。
【００１９】
パスワード照合の試行回数は、無効パスワードの連続試行回数であり、この連続試行回数を超えた場合に、情報処理部１０２は、ＩＣカード１００のＯＳをロックする。このように構成することによって、無効パスワードで、無制限にアタックされることを防止できる。
認証ＮＧの許容回数は、認証の失敗を許容できる回数であり、この許容回数を超えた場合に、情報処理部１０２は、ＩＣカード１００のＯＳをロックする。このように構成することによって、無制限に認証が試行されることを防止できる。
処理時間ランダム機能ＯＮ／ＯＦＦは、ＩＣカード１００の処理をランダムな間隔で開始する機能である。セキュリティレベルが高い場合（セキュリティレベル２からセキュリティレベル４）に、この機能がオンにされる。このように構成することによって、ＩＣカード１００の処理時間から、そのＩＣカード１００の内部の情報が暴露されるのを防止できる。
暗号強化処理ＯＮ／ＯＦＦは、暗号を強化する機能である。セキュリティレベルが高い場合（セキュリティレベル３とセキュリティレベル４）に、この機能がオンにされる。このように構成することによって、ＩＣカード１００の内部の情報が暴露されるのを防止できる。                                 
重要データのチェックコードの検証ＯＮ／ＯＦＦは、重要なデータについて、チェックコードを検証する機能である。セキュリティレベルにかかわらず、この機能はオンにされる。このように構成することによって、外部からのデータが改ざんされたことを検出できる。
【００２０】
セキュリティレベル１からセキュリティレベル４の各々について、具体的に説明する。
セキュリティレベル１は、ＯＳの状態が通常の状態である場合に設定される。セキュリティレベル１では、パスワード照合の試行回数の設定値が１５回、認証ＮＧの許容回数の設定値が１５回、処理時間のランダム機能ＯＮ／ＯＦＦの設定値がオフ、暗号強化処理ＯＮ／ＯＦＦの設定値がオフ、重要データのチェックコード検証ＯＮ／ＯＦＦの設定値がオンである。
セキュリティレベル１に設定されている場合、パスワード照合の試行回数が１５回を超える場合と、認証ＮＧの許容回数が１５回を超える場合とのいずれか一方または両方の場合に、情報処理部１０２は、ＩＣカード１００のＯＳをロックする。セキュリティレベル１に設定されている場合、処理時間のランダム機能がオフ、暗号強化処理がオフ、重要データのチェックコード検証がオンにされる。
セキュリティレベル２は、ＯＳの状態が低度の危険な状態である場合に設定される。セキュリティレベル２は、パスワード照合の試行回数の設定値が１０回、認証ＮＧの許容回数の設定値が１０回、処理時間のランダム機能ＯＮ／ＯＦＦの設定値がオン、暗号強化処理ＯＮ／ＯＦＦの設定値がオフ、重要データのチェックコード検証ＯＮ／ＯＦＦの設定値がオンである。
セキュリティレベル２に設定されている場合、パスワード照合の試行回数が１０回を超える場合と、認証ＮＧの許容回数が１０回を超える場合とのいずれか一方または両方の場合に、情報処理部１０２は、ＩＣカード１００のＯＳをロックする。セキュリティレベル２に設定されている場合、処理時間のランダム機能ＯＮ／ＯＦＦがオン、暗号強化処理ＯＮ／ＯＦＦがオフ、重要データのチェックコード検証ＯＮ／ＯＦＦがオンにされる。
【００２１】
セキュリティレベル３は、ＯＳの状態が中度の危険な状態である場合に設定される。セキュリティレベル３は、パスワード照合の試行回数の設定値が３回、認証ＮＧの許容回数の設定値が３回、処理時間のランダム機能ＯＮ／ＯＦＦの設定値がオン、暗号強化処理ＯＮ／ＯＦＦの設定値がオン、重要データのチェックコード検証ＯＮ／ＯＦＦの設定値がオンである。
セキュリティレベル３に設定されている場合、パスワード照合の試行回数が３回を超える場合と、認証ＮＧの許容回数が３回を超える場合とのいずれか一方または両方の場合に、情報処理部１０２は、ＩＣカード１００のＯＳをロックする。セキュリティレベル３に設定されている場合、処理時間のランダム機能ＯＮ／ＯＦＦがオン、暗号強化処理ＯＮ／ＯＦＦがオン、重要データのチェックコード検証ＯＮ／ＯＦＦがオンにされる。
セキュリティレベル４は、ＯＳの状態が非常に危険な状態である場合に設定される。セキュリティレベル４は、パスワード照合の試行回数の設定値が１回、認証ＮＧの許容回数の設定値が１回、処理時間のランダム機能ＯＮ／ＯＦＦの設定値がオン、暗号強化処理ＯＮ／ＯＦＦの設定値がオン、重要データのチェックコード検証ＯＮ／ＯＦＦの設定値がオンである。
セキュリティレベル４に設定されている場合、パスワード照合の試行回数が１回を超える場合と、認証ＮＧの許容回数が１回を超える場合とのいずれか一方または両方の場合に、情報処理部１０２は、ＩＣカード１００のＯＳをロックする。セキュリティレベル４に設定されている場合、処理時間のランダム機能ＯＮ／ＯＦＦがオン、暗号強化処理ＯＮ／ＯＦＦがオン、重要データのチェックコード検証ＯＮ／ＯＦＦがオンにされる。
【００２２】
［制御パラメータ］
図３は、制御パラメータ１２２に含まれる情報の一例を示す図である。図３に示される例では、制御パラメータ１２２には、カレントセキュリティレベルと、セキュリティレベル遷移方向設定とが含まれる。
カレントセキュリティレベルは、ＩＣカード１００に設定されている現在のセキュリティレベルであり、セキュリティレベル１からセキュリティレベル４のいずれかが設定される。
セキュリティレベル遷移方向設定は、セキュリティレベルを、セキュリティレベル１からセキュリティレベル４の方向、換言すればセキュリティ強度が高くなる方向へ変更した後に、セキュリティレベル４からセキュリティレベル１の方向、換言すればセキュリティ強度が低くなる方向へ変更できるか否かを指定する情報である。セキュリティレベル遷移方向設定には、変更できる場合には可逆を示す情報が設定され、変更できない場合には不可逆を示す情報が設定される。
以下、セキュリティレベル１からセキュリティレベル４の方向、換言すればセキュリティ強度が高くなる方向を「遷移方向」という。また、セキュリティレベル４からセキュリティレベル１の方向、換言すればセキュリティ強度が低くなる方向を「復帰方向」という。
図３に示される例では、カレントセキュリティはレベル１であり、セキュリティレベル遷移方向設定は可逆である。この場合、セキュリティレベルを、遷移方向と復帰方向のいずれでも変更できる。
【００２３】
［セキュリティレベル復帰条件］
図４は、セキュリティレベル復帰条件１２３に含まれる情報の一例を示す図である。図４に示される例では、セキュリティレベル復帰条件１２３には、トランザクション数と、セキュリティレベル遷移日からの経過日数と、パスワード認証連続ＯＫ回数とが含まれる。セキュリティレベル復帰条件１２３には、トランザクション数とセキュリティレベル遷移日からの経過日数とパスワード認証連続ＯＫ回数との各々について、復帰条件値と現在値とが関連付けて記憶される。
トランザクション数は、ＩＣカード１００が行う情報処理の数である。
セキュリティレベル遷移日からの経過日数は、セキュリティレベルを変更してからの経過日数である。例えば、ＩＣカード１００の処理部１１４は、セキュリティレベルを変更した日時情報を外部装置から取得し、取得した日時情報を保持する。その後、ＩＣカード１００の処理部１１４は、外部装置に接続した場合に、その外部装置から現在の日時情報を取得し、取得した日時情報と、保持している日時情報とに基づいて、保持している日時情報から、取得した日時情報までの経過日数を導出する。
パスワード認証連続ＯＫ回数は、パスワードによる認証の連続成功回数である。
図４に示される例では、トランザクション数の復帰条件値は１００回であり、現在値は１０回である。この場合、トランザクション数が１００回となった場合に、セキュリティレベルを復帰方向へ変更可能であるが、現在のトランザクション数は１０回である。このため、現在のセキュリティレベルは変更されない。
セキュリティレベル遷移日からの経過日数の復帰条件値は３０日であり、現在値は１０日である。この場合、セキュリティレベルを遷移させた日から３０日を経過した場合に、セキュリティレベルを復帰方向へ変更できるが、現在のセキュリティレベル遷移日からの経過日数は１０日である。このため、現在のセキュリティレベルは変更されない。
パスワード認証連続ＯＫ回数の復帰条件値は５回であり、現在値は２回である。この場合、パスワード認証の連続成功回数が５回となった場合に、セキュリティレベルを復帰方向へ変更可能であるが、現在のパスワード認証の連続成功回数は２回である。このため、現在のセキュリティレベルは変更されない。
【００２４】
［セキュリティレベル遷移条件］
図５は、セキュリティレベル遷移条件１２４に含まれる情報の一例を示す図である。図５に示される例では、セキュリティレベル遷移条件１２４には、不正アタックの原因と想定される事象について、遷移条件が関連付けて記憶される。以下、不正アタックの原因と想定される事象の例として、ハードウェアエラー検知と、レーザーアタック検知と、重要処理のバイパス検知と、暗号処理の異常検知とを使用した場合について説明を続ける。
ハードウェアエラー検知は、ＩＣカード１００のハードウェアにエラーを検知した状態である。例えば、温度センサー１０４が検出した温度が、所定の温度範囲を満足しない場合、電圧センサー１０５が検出した印加電圧が所定の電圧範囲を満足しない場合などに、情報処理部１０２は、ＩＣカード１００のハードウェアにエラーが生じたと判定する。
レーザーアタック検知は、ＩＣカード１００にレーザー光が照射されたことを検知した状態である。受光部１０６がレーザー光を受光した場合などに、情報処理部１０２は、ＩＣカード１００にレーザーアタックが行われたと判定する。
重要処理のバイパス検知は、ＩＣカード１００の処理において、重要な処理がバイパスされたことを検知したことである。情報処理部１０２は、処理部１１４が重要な処理をバイパスした場合に、重要な処理がバイパスされたと判定する。
暗号処理の異常検知は、ＩＣカード１００の処理において、認証処理と、暗号処理関連のコマンドとのいずれか一方又は両方が頻繁に実行されるなどの信号処理の異常を検知した状態である。情報処理部１０２は、処理部１１４が行う信号処理の異常を検知した場合に、信号処理の異常を検知したと判定する。
【００２５】
図５に示される例では、ハードウェアエラー検知の遷移条件はレベルを一段階上げる（＋１する）ことである。この場合、仮に、現在のセキュリティレベルが１である場合には、セキュリティレベルが２に変更される。
レーザーアタック検知の遷移条件はレベルを三段階上げる（＋３する）ことである。この場合、仮に、現在のセキュリティレベルが１である場合には、セキュリティレベルが４に変更される。
重要処理のバイパス検知の遷移条件はレベルを二段階上げる（＋２する）ことである。この場合、仮に、現在のセキュリティレベルが１である場合には、セキュリティレベルが３に変更される。
暗号処理の異常検知の遷移条件はレベルを二段階上げる（＋２）ことである。この場合、仮に、セキュリティレベルが１である場合には、セキュリティレベルが３に変更される。図１に戻り、説明を続ける。
【００２６】
温度センサー１０４は、ＩＣカード１００の温度を検出し、検出した温度を示す情報を、情報処理部１０２へ出力する。
電圧センサー１０５は、ＩＣカード１００に印加された電圧を検出し、検出した印加電圧を示す情報を、情報処理部１０２へ出力する。
受光部１０６は、ＩＣカード１００に照射されたレーザー光を検出する。受光部１０６は、レーザー光を検出した場合に、レーザー光を検出したことを示す情報（以下「レーザー光検出情報」という）を、情報処理部１０２へ出力する。
【００２７】
情報処理部１０２は、ＩＣカード１００における各種情報処理を実行する。情報処理部１０２としての機能は、例えばＩＣカード１００が備えるＣＰＵ（Central Processing Unit）などのプロセッサが記憶部１０３に記憶されたプログラム（ＯＳ）を実行することにより実現される機能部（以下「ソフトウエア機能部」という）である。なお、情報処理部１０２の全部または一部は、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＦＰＧＡ（Field-Programmable Gate Array）などのハードウェアにより実現されてもよく、ソフトウェア機能部とハードウェアとの組み合わせによって実現されてもよい。
本実施形態の情報処理部１０２は、セキュリティに関連する機能部として、エラー判定部１１１と、処理結果判定部１１２と、セキュリティレベル設定部１１３と、処理部１１４と、状態変更部１１５とを備える。
【００２８】
エラー判定部１１１は、ＩＣカード１００にエラーが発生したか否かを判定する。エラー判定部１１１は、ＩＣカード１００にエラーが発生したと判定した場合、エラーの原因を示す情報を含むエラーが発生したことを示す情報（以下「エラー発生情報」という）を作成し、作成したエラー発生情報を、セキュリティレベル設定部１１３へ出力する。
具体的には、エラー判定部１１１は、温度センサー１０４が出力した温度を示す情報を取得し、取得した温度を示す情報が、所定の温度範囲を満足するか否かを判定する。エラー判定部１１１は、取得した温度を示す情報が、所定の温度範囲を満足しない場合に、エラーが発生したと判定する。エラー判定部１１１は、エラーが発生したと判定しない場合には、そのまま処理を継続する。エラー判定部１１１は、エラーが発生したと判定した場合に、ハードウェアのエラーを検知したことを示す情報を含むエラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部１１３へ出力する。
エラー判定部１１１は、電圧センサー１０５が出力した印加電圧を示す情報を取得し、取得した印加電圧を示す情報が、所定の電圧範囲を満足するか否かを判定する。エラー判定部１１１は、印加電圧を示す情報が、所定の電圧範囲を満足しない場合に、エラーが発生したと判定する。エラー判定部１１１は、エラーが発生したと判定しない場合には、そのまま処理を継続する。エラー判定部１１１は、エラーが発生したと判定した場合に、ハードウェアのエラーを検知したことを示す情報を含むエラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部１１３へ出力する。
【００２９】
エラー判定部１１１は、受光部１０６が出力したレーザー光検出情報を取得した場合に、エラーが発生したと判定する。エラー判定部１１１は、エラーが発生したと判定した場合、レーザー光のアタックを検知したことを示す情報を含むエラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部１１３へ出力する。
エラー判定部１１１は、処理部１１４が、パスワード照合、署名検証などの重要な処理をバイパスしていることを検知した場合に、エラーが発生したと判定する。エラー判定部１１１は、エラーが発生したと判定した場合に、重要な処理がバイパスされていることを検知したことを示す情報を含むエラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部１１３へ出力する。
また、エラー判定部１１１は、処理部１１４が実行する信号処理において、重要データの改変、認証処理と暗号処理関連のコマンドとのいずれか一方又は両方が頻繁に実行されるなどの異常を検知した場合に、エラーが発生したと判定する。ここで、頻繁に実行されたことは、認証処理が１０回連続して実行された場合と、暗号処理関連のコマンドが１００コマンドのうち、３０コマンドが連続して実行された場合とのいずれか一方又は両方によって判断されてもよい。
エラー判定部１１１は、カウンタが計数した結果によって、認証処理が１０回連続実行されたか否か、暗号処理関連のコマンドが１００コマンドのうち、３０コマンドが連続して実行されたか否かを判定する。このように構成することによって、通常の使用を行っている場合に生じうる認証失敗は、外部からの攻撃とは見なされないため、悪意のある攻撃者による認証失敗を判定できる。ここで、エラー判定部１１１は、カウンタが計数した結果によって、一連の処理で、認証処理が１０回連続実行されたか否か、一連の処理で、暗号処理関連のコマンドが１００コマンドのうち、３０コマンドが連続して実行されたか否かを判定するようにしてもよい。エラー判定部１１１は、エラーが発生したと判定した場合に、信号処理の異常を検知したことを示す情報を含むエラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部１１３へ出力する。
【００３０】
セキュリティレベル設定部１１３は、ＩＣカード１００のセキュリティレベルを設定する。
セキュリティレベル設定部１１３は、エラー判定部１１１が出力したエラー発生情報を取得し、取得したエラー発生情報に含まれるエラーの原因を示す情報を取得する。セキュリティレベル設定部１１３は、記憶部１０３のセキュリティレベル遷移条件１２４を参照し、取得したエラーの原因を示す情報が、セキュリティレベル遷移条件１２４に含まれるパラメータのいずれかに該当するか否かを判定する。
【００３１】
セキュリティレベル設定部１１３は、エラーの原因を示す情報が、セキュリティレベル遷移条件１２４に含まれるパラメータのいずれかに該当する場合、ＣＰＵの割り込み処理を実行することによって、そのエラーの原因を示す情報に該当するパラメータに関連付けられている遷移条件にしたがって、セキュリティレベルを、遷移方向へ変更する。
具体的には、セキュリティレベル設定部１１３は、エラーの原因を示す情報が、ハードウェアエラー検知である場合、ＣＰＵの割り込み処理を実行することによって、セキュリティレベルを、遷移方向へ一段階上げる。つまり、セキュリティレベル設定部１１３は、記憶部１０３に記憶されている制御パラメータ１２２のカレントセキュリティレベルの設定値を遷移方向に一段階上げる。また、セキュリティレベル設定部１１３は、エラーの原因を示す情報が、レーザーアタック検知である場合、ＣＰＵの割り込み処理を実行することによって、セキュリティレベルを、遷移方向へ三段階上げる。つまり、セキュリティレベル設定部１１３は、記憶部１０３に記憶されている制御パラメータ１２２のカレントセキュリティレベルの設定値を遷移方向に三段階上げる。
また、セキュリティレベル設定部１１３は、エラーの原因を示す情報が、重要処理のバイパス検知である場合、ＣＰＵの割り込み処理を実行することによって、セキュリティレベルを、遷移方向へ二段階上げる。つまり、セキュリティレベル設定部１１３は、記憶部１０３に記憶されている制御パラメータ１２２のカレントセキュリティレベルの設定値を遷移方向に二段階上げる。また、セキュリティレベル設定部１１３は、エラーの原因を示す情報が、信号処理の異常検知である場合、ＣＰＵの割り込み処理を実行することによって、セキュリティレベルを、遷移方向へ二段階上げる。つまり、セキュリティレベル設定部１１３は、記憶部１０３に記憶されている制御パラメータ１２２のカレントセキュリティレベルの設定値を遷移方向に二段階上げる。
このように、記憶部１０３に記憶されている制御パラメータ１２２のカレントセキュリティレベルの設定値を変更することによって、セキュリティレベルを更新できる。カレントセキュリティレベルの設定値が更新された後は、更新された設定値に該当するセキュリティレベルにしたがって、処理が実行される。
ＩＣカード１００が発行されたときには、ＩＣカード１００の用途と、ＩＣカード１００が使用されるアプリケーション環境で要求されるセキュリティ強度とのいずれか一方又は両方に基づいて、セキュリティレベルが設定される。仮に、ＩＣカード１００が発行されたときに、セキュリティレベル１に設定されている場合、エラーの原因にかかわらず、セキュリティレベル４を超えることはない。つまり、エラーの原因を示す情報が、セキュリティレベル遷移条件１２４に含まれるパラメータのいずれかに一度該当しただけでは、ＩＣカード１００を再起不能にさせない。
【００３２】
セキュリティレベル設定部１１３は、セキュリティレベルを遷移方向に変更した結果、最高のセキュリティレベル（セキュリティレベル４）を超える場合には、以下の処理を行う。セキュリティレベル設定部１１３は、取得したエラー発生情報に含まれるエラーの原因を示す情報が、セキュリティレベル遷移条件１２４に含まれるパラメータのいずれかに該当し、セキュリティレベルを遷移方向に変更した結果、セキュリティレベル４を超える場合には、状態を変更することを要求する情報（以下「状態変更要求」という）を作成し、作成した状態変更要求を、状態変更部１１５へ出力する。
セキュリティ強度が最高のセキュリティレベル（セキュリティレベル４）を超える場合には、これ以上セキュリティレベルを遷移方向に変更することはできない。セキュリティレベルを遷移方向に変更することができない場合に、ＩＣカード１００に記憶されている暗号鍵や秘密データが漏洩することを防止する必要があるため、ＩＣカード１００の状態を変更することを要求する。
一方、セキュリティレベル設定部１１３は、取得したエラー発生情報に含まれるエラーの原因を示す情報が、セキュリティレベル遷移条件１２４に含まれるパラメータのいずれにも該当しない場合には、そのまま処理を継続する。
また、セキュリティレベル設定部１１３は、後述する処理結果判定部１１２が出力したセキュリティレベル復帰要求を取得し、取得したセキュリティレベル復帰要求に基づいて、セキュリティレベルを、復帰方向へ変更する。ただし、ＩＣカード１００が発行されたときに設定されていたセキュリティレベルよりもセキュリティ強度が低くなるセキュリティレベルには変更されない。
具体的には、ＩＣカード１００が発行されたときに設定されていたセキュリティレベルがセキュリティレベル２であり、且つ現在のセキュリティレベルがセキュリティレベル２である場合には、セキュリティレベル復帰要求を取得した場合でも、セキュリティレベルは変更されない。
ＩＣカード１００が発行されたときには、ＩＣカード１００の用途と、ＩＣカード１００が使用されるアプリケーション環境で要求されるセキュリティ強度とのいずれか一方又は両方に基づいて、セキュリティレベルが設定される。つまり、ＩＣカード１００が発行されたときに設定されたセキュリティレベルよりもセキュリティ強度が低くなった場合には、ＩＣカード１００の用途と、ＩＣカード１００が使用されるアプリケーション環境で要求されるセキュリティ強度とのいずれか一方又は両方を満たさないおそれがある。ＩＣカード１００が発行されたときに設定されていたセキュリティレベルよりもセキュリティ強度が低くなるセキュリティレベルには変更されないことによって、ＩＣカード１００の用途と、ＩＣカード１００が使用されるアプリケーション環境で要求されるセキュリティ強度とのいずれか一方又は両方を満たし続けることができる。
【００３３】
処理部１１４は、セキュリティレベル設定部１１３が設定したセキュリティレベルにしたがって、処理を行う。ＩＣカード１００がリーダライタ２００などの外部装置と通信できる範囲に入ると、ＩＣカード１００がリーダライタ２００などの外部装置から電源供給を受けて起動し、通信路設定に対応する待機モードとなる。処理部１１４は、待機モードで、リーダライタ２００などの外部装置から送信された通信要求を受信すると、通信路設定モードに移行し、通信要求に対する応答として、通信応答をリーダライタ２００などの外部装置に送信する。これによって、ＩＣカード１００とリーダライタ２００などの外部装置との間で、通信路が設定される。
処理部１１４は、外部装置との通信路の設定が終了した後に、外部装置との通信にあたり、セキュリティレベル設定部１１３が設定したセキュリティレベルにしたがって、処理を行う。具体的には、処理部１１４は、記憶部１０３の制御パラメータ１２２に含まれるカレントセキュリティレベルを読み出す。処理部１１４は、記憶部１０３のセキュリティパラメータ１２１に含まれる複数のセキュリティレベルのうち、読み出したカレントセキュリティレベルと一致するセキュリティレベルを読み出す。処理部１１４は、読み出したセキュリティレベルに含まれるパラメータ（パスワード照合の試行回数、認証ＮＧの許容回数、処理時間のランダム機能、暗号強化処理、重要データのチェックコード検証）にしたがって、ＯＳや、アプリケーションによって処理を行う。
【００３４】
状態変更部１１５は、セキュリティレベル設定部１１３が出力した状態変更要求を取得し、取得した状態変更要求にしたがって、ＩＣカード１００を再起不能な状態へ遷移させる。このように構成することによって、危険な状態にあるＩＣカード１００を、再起不能な状態へ遷移させることができる。このため、ＩＣカード１００は使用できなくなるが、ＩＣカード１００に記憶されている暗号鍵、秘密情報などの情報が漏洩するのを防止できる。
【００３５】
処理結果判定部１１２は、セキュリティレベルを変更した後のトランザクション数、セキュリティレベルを変更してからの経過時間、セキュリティレベルを変更してからの認証成功回数などの処理結果がセキュリティレベル復帰条件を満たすか否かを判定する。ここで、セキュリティレベル復帰条件とは、セキュリティレベルを復帰方向へ変更させる条件である。
具体的には、処理結果判定部１１２は、セキュリティレベル設定部１１３が、セキュリティレベルを変更した場合に、記憶部１０３のセキュリティレベル復帰条件１２３の現在値をリセットする。
処理結果判定部１１２は、セキュリティレベルを変更した後のトランザクション数を累積し、トランザクション数を累積した結果を、記憶部１０３のセキュリティレベル復帰条件１２３のトランザクション数に関連付けられている現在値に記憶する。
【００３６】
処理結果判定部１１２は、セキュリティレベル復帰条件１２３のトランザクション数に関連付けられている現在値に記憶したトランザクション数を累積した結果が、トランザクションの復帰条件値を超えるか否かを判定する。処理結果判定部１１２は、トランザクション数を累積した結果が、トランザクションの復帰条件値を超える場合、セキュリティレベルを復帰方向に変更することを要求する情報（以下、「セキュリティレベル復帰要求」という）を作成し、作成したセキュリティレベル復帰要求を、セキュリティレベル設定部１１３に、出力する。
セキュリティレベル設定部１１３は、処理結果判定部１１２が出力したセキュリティレベル復帰要求を取得し、取得したセキュリティレベル復帰要求にしたがって、記憶部１０３の制御パラメータ１２２に含まれるカレントセキュリティレベルの設定値を一段階下げる（−１する）。ただし、現在のセキュリティレベルがセキュリティレベル１である場合には、セキュリティレベルの設定値を一段階下げることはできないため、カレントセキュリティレベルは変更されない。
一方、処理結果判定部１１２は、トランザクション数を累積した結果が、トランザクションの復帰条件値を超えない場合、トランザクション数を累積する処理を継続する。
図４に示される例では、処理結果判定部１１２は、トランザクション数を累積した結果である１０回が、トランザクションの復帰条件値である１００回を超えないため、トランザクション数を累積する処理を継続する。この場合、セキュリティレベルは変更されない。
【００３７】
処理結果判定部１１２は、セキュリティレベルを変更してからの経過日数を導出し、セキュリティレベルを変更してからの経過日数を導出した結果を、記憶部１０３のセキュリティレベル復帰条件１２３のセキュリティレベル遷移日からの経過日数に関連付けられている現在値に記憶する。
処理結果判定部１１２は、セキュリティレベル復帰条件１２３のセキュリティレベル遷移日からの経過日数に関連付けられている現在値に記憶したセキュリティレベル遷移日からの経過日数が、セキュリティレベル遷移日からの経過日数の復帰条件値を超えるか否かを判定する。処理結果判定部１１２は、セキュリティレベル遷移日からの経過日数が、セキュリティレベル遷移日からの経過日数の復帰条件値を超える場合、セキュリティレベル復帰要求を作成し、作成したセキュリティレベル復帰要求を、セキュリティレベル設定部１１３に、出力する。
セキュリティレベル設定部１１３は、処理結果判定部１１２が出力したセキュリティレベル復帰要求を取得し、取得したセキュリティレベル復帰要求にしたがって、記憶部１０３の制御パラメータ１２２に含まれるカレントセキュリティレベルの設定値を一段階下げる（−１する）。ただし、現在のセキュリティレベルがセキュリティレベル１である場合には、セキュリティレベルの設定値を一段階下げることはできないため、カレントセキュリティレベルは変更されない。
一方、処理結果判定部１１２は、セキュリティレベル遷移日からの経過日数が、セキュリティレベル遷移日からの経過日数の復帰条件値を超えない場合、セキュリティレベル遷移日からの経過日数を導出する処理を継続する。
図４に示される例では、処理結果判定部１１２は、セキュリティレベル遷移日からの経過日数である１０日が、セキュリティレベル遷移日からの経過日数の復帰条件値である３０日を超えないため、トランザクション数を累積する処理を継続する。この場合、セキュリティレベルは変更されない。
【００３８】
処理結果判定部１１２は、セキュリティレベルを変更してからのパスワード認証連続成功回数を導出し、セキュリティレベルを変更してからのパスワード認証連続成功回数を導出した結果を、記憶部１０３のセキュリティレベル復帰条件１２３のパスワード認証連続ＯＫ回数に関連付けられている現在値に記憶する。
処理結果判定部１１２は、セキュリティレベル復帰条件１２３のパスワード認証連続ＯＫ回数に関連付けられている現在値に記憶したセキュリティレベルを変更してからのパスワード認証連続成功回数が、パスワード認証連続ＯＫ回数の復帰条件値を超えるか否かを判定する。処理結果判定部１１２は、セキュリティレベルを変更してからのパスワード認証連続成功回数が、パスワード認証連続ＯＫ回数の復帰条件値を超える場合、セキュリティレベル復帰要求を作成し、作成したセキュリティレベル復帰要求を、セキュリティレベル設定部１１３に、出力する。
セキュリティレベル設定部１１３は、処理結果判定部１１２が出力したセキュリティレベル復帰要求を取得し、取得したセキュリティレベル復帰要求にしたがって、記憶部１０３の制御パラメータ１２２に含まれるカレントセキュリティレベルの設定値を一段階下げる（−１する）。ただし、現在のセキュリティレベルがセキュリティレベル１である場合には、セキュリティレベルの設定値を一段階下げることはできないため、カレントセキュリティレベルは変更されない。
一方、処理結果判定部１１２は、セキュリティレベルを変更してからのパスワード認証連続成功回数が、パスワード認証連続ＯＫ回数の復帰条件値を超えない場合、セキュリティレベルを変更してからのパスワード認証連続成功回数を導出する処理を継続する。
図４に示される例では、処理結果判定部１１２は、セキュリティレベルを変更してからのパスワード認証連続成功回数である２回が、パスワード認証連続ＯＫ回数である５回を超えないため、セキュリティレベルを変更してからのパスワード認証連続成功回数を導出する処理を継続する。この場合、セキュリティレベルは変更されない。
上記のエラー判定部１１１と、処理結果判定部１１２と、セキュリティレベル設定部１１３と、処理部１１４と、状態変更部１１５との少なくとも一部は、例えばＯＳにより実現される機能である。
【００３９】
［ＩＣカード１００の動作］
図６は、第１の実施形態のＩＣカード１００の動作の一例を示すフローチャートである。ＩＣカード１００は、外部装置からコマンドを受信して、受信したコマンドに含まれる指示にしたがって処理を実行する。ＩＣカード１００は、処理を実行した結果を含むレスポンスを作成し、作成したレスポンスを、外部装置へ送信する。ＩＣカード１００は、外部装置から電源の供給がある場合に、以下のステップにしたがって処理を行う。
（ステップＳ１）
ＩＣカード１００の処理部１１４は、ＩＣカード１００へ電源が投入されたタイミングと、外部からの命令であるコマンドを受信したタイミングと、ＯＳ処理中とのいずれかに、記憶部１０３の制御パラメータ１２２に含まれるカレントセキュリティレベルを読み出す。図３に示した制御パラメータ１２２がＩＣカード１００に記憶されている場合には、処理部１１４は、カレントセキュリティレベルとして、レベル１を読み出す。
（ステップＳ２）
ＩＣカード１００の処理部１１４は、記憶部１０３のセキュリティパラメータ１２１に含まれる複数のセキュリティレベルのうち、ステップＳ１で読み出したカレントセキュリティレベルと一致するセキュリティレベルを読み出す。図２に示したセキュリティパラメータ１２１がＩＣカード１００に記憶されている場合には、処理部１１４は、セキュリティレベル１に含まれるパラメータ（パスワード照合の試行回数、認証ＮＧの許容回数、処理時間のランダム機能、暗号強化処理、重要データのチェックコード検証）を読み出す。
【００４０】
（ステップＳ３）
ＩＣカード１００の処理部１１４は、ステップＳ２で読み出したセキュリティレベル１に含まれるパラメータ（パスワード照合の試行回数、認証ＮＧの許容回数、処理時間のランダム機能、暗号強化処理、重要データのチェックコード検証）にしたがって、ＯＳや、アプリケーションによって処理を行う。
（ステップＳ４）
セキュリティレベル設定部１１３は、記憶部１０３に記憶されたセキュリティレベル遷移条件１２４に適合する事象が発生したか否かを判定する。具体的には、ＩＣカード１００のエラー判定部１１１は、ＩＣカード１００にエラーが発生したか否かを判定する。エラー判定部１１１は、ＩＣカード１００にエラーが発生したと判定した場合、エラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部１１３へ出力する。
セキュリティレベル設定部１１３は、エラー判定部１１１が出力したエラー発生情報を取得し、取得したエラー発生情報に含まれるエラーの原因を示す情報を取得する。セキュリティレベル設定部１１３は、記憶部１０３のセキュリティレベル遷移条件１２４を参照し、取得したエラーの原因を示す情報が、セキュリティレベル遷移条件１２４に含まれるパラメータのいずれかに該当するか否かを判定することによって、セキュリティ遷移条件１２４に適合するか否かを判定する。
【００４１】
（ステップＳ５）
セキュリティレベル設定部１１３は、取得したエラーの原因を示す情報が、セキュリティレベル遷移条件１２４に含まれるパラメータのいずれにも該当しないと判定した場合、記憶部１０３に記憶された制御パラメータ１２２に含まれるセキュリティレベル遷移方向設定を読み出し、読み出したセキュリティレベル遷移方向設定が可逆であるか否かを判定する。読み出したセキュリティレベル遷移方向設定が可逆でない場合、ステップＳ３へ移行する。
【００４２】
（ステップＳ６）
セキュリティレベル設定部１１３は、読み出したセキュリティレベル遷移方向設定が可逆である場合、記憶部１０３に記憶されたセキュリティレベル復帰条件１２３に適合する事象が発生したか否かを判定する。
具体的には、ＩＣカード１００の処理結果判定部１１２は、記憶部１０３に記憶されたセキュリティレベル復帰条件１２３を参照し、セキュリティレベルを変更した後のトランザクション数、セキュリティレベルを変更してからの経過時間、セキュリティレベルを変更してからの認証成功回数などの処理結果がセキュリティレベル復帰条件を満たすか否かを判定する。処理結果判定部１１２は、処理結果が、セキュリティレベル復帰条件１２３を満たすと判定した場合に、セキュリティレベル復帰要求を作成する。処理結果判定部１１２は、作成したセキュリティレベル復帰要求を、セキュリティレベル設定部１１３へ出力する。
セキュリティレベル設定部１１３は、処理結果判定部１１２が出力したセキュリティレベル復帰要求を取得したか否かによって、セキュリティレベル復帰条件１２３に適合する事象が発生したか否かを判定する。セキュリティレベル設定部１１３は、セキュリティレベル復帰要求を取得した場合にはセキュリティレベル復帰条件１２３に適合する事象が発生したと判定し、セキュリティレベル復帰要求を取得しない場合にはセキュリティレベル復帰条件１２３に適合する事象が発生していないと判定する。セキュリティレベル設定部１１３がセキュリティレベル復帰条件１２３に適合する事象が発生していないと判定した場合、ステップＳ３へ移行する。
【００４３】
（ステップＳ７）
セキュリティレベル復帰条件１２３に適合する事象が発生した場合、セキュリティレベル設定部１１３は、処理結果判定部１１２が出力したセキュリティレベル復帰要求にしたがって、記憶部１０３の制御パラメータ１２２のカレントセキュリティレベルを復帰方向へ変更する。その後、ステップＳ１に移行する。
（ステップＳ８）
セキュリティレベル設定部１１３は、取得したエラーの原因を示す情報が、セキュリティレベル遷移条件１２４に含まれるパラメータのいずれかに該当すると判定した場合、記憶部１０３に記憶された制御パラメータ１２２に含まれるセキュリティレベルの設定値を、遷移方向へ変更する。その後、ステップＳ１に移行する。ここで、セキュリティレベルの設定値を遷移方向へ変更した場合に、セキュリティレベル４を超える場合には、セキュリティレベル設定部１１３は、状態変更要求を作成し、作成した状態変更要求を、状態変更部１１５へ出力する。状態変更部１１５は、セキュリティレベル設定部１１３が出力した状態変更要求を取得し、取得した状態変更要求にしたがって、ＩＣカード１００を再起不能な状態へ遷移させる。
図６に示されるフローチャートにおいて、ステップＳ４とステップＳ５とステップＳ６との順序を入れ替えてもよい。
【００４４】
前述した第１の実施形態では、ＩＣカード１００に、セキュリティレベル１からセキュリティレベル４の四種類のセキュリティレベルを設定できる場合について説明したがこの例に限られない。例えば、ＩＣカード１００に設定できるセキュリティレベルは二種類から三種類であってもよいし、五種類以上であってもよい。
前述した第１の実施形態では、ＩＣカード１００の処理部１１４が、記憶部１０３のセキュリティパラメータ１２１に含まれる複数のセキュリティレベルのうち、読み出したカレントセキュリティレベルと一致するセキュリティレベルを読み出す場合について説明したが、この例に限られない。例えば、ＩＣチップの各種レジスタが、セキュリティレベル１からセキュリティレベル４とのうち、設定されたセキュリティレベルに応じて更新されてもよい。
前述した第１の実施形態では、認証処理が１０回連続実行された場合と、暗号処理関連のコマンドが１００コマンドのうち３０コマンド実行された場合とのいずれか一方又は両方によって、異常を検知したとする場合について説明したが、この例に限られない。例えば、異常を検知したとする認証処理の回数と、暗号処理関連のコマンドの実行数については、適宜変更可能である。
前述した第１の実施形態では、セキュリティレベル遷移条件に該当する事象が一回発生した場合に、セキュリティレベルを遷移方向に変更する場合について説明したがこの限りでない。例えば、セキュリティレベル遷移条件に該当する事象が複数回発生した場合に、セキュリティレベルを遷移方向に変更するようにしてもよい。
前述した第１の実施形態では、各セキュリティレベルに四種類のパラメータが含まれる場合について説明したが、この限りでない。例えば、各セキュリティレベルに一種類から三種類のパラメータが含まれてもよいし、五種類以上のパラメータが含まれてもよい。さらに、セキュリティレベルが、セキュリティレベル１からセキュリティレベル４とセキュリティ強度が高くなるにしたがって、パラメータ数を増加させるようにしてもよい。
前述した第１の実施形態では、ＩＣカード１００の記憶部１０３に四種類のセキュリティレベルが記憶される場合について説明したが、この限りでない。例えば、ＩＣカード１００の記憶部１０３に、一種類のセキュリティレベルが記憶されてもよい。この場合、セキュリティレベル設定部１１３は、設定したセキュリティレベルに応じて、セキュリティレベルの設定値に記憶する。このように構成することによって、記憶部１０３の記憶容量を削減できる。
【００４５】
第１の実施形態のＩＣカード１００によれば、ＩＣカード１００は、セキュリティに関するパラメータを含むセキュリティレベルを複数種類保持し、外部から不正アタックを受けたと判断した場合に、保持したセキュリティレベルのうち、設定されているセキュリティレベルよりも、セキュリティ強度の高いセキュリティレベルに設定する。
従来のＩＣカードは、発行されたときに設定されているセキュリティレベルを、自発で気に変更することはできなかった。
このように構成することによって、第１の実施形態のＩＣカード１００は、セキュリティ強度を動的に変更できる。また、第１の実施形態のＩＣカード１００は、セキュリティレベルを変更することによって、セキュリティ強度を上げることができるため、ＩＣカード１００の信頼性を向上できる。また、第１の実施形態のＩＣカード１００は、不正アタックの方法が高度化した場合にも対応できる。
また、第１の実施形態のＩＣカード１００は、ＩＣカード１００が発行されたときに設定されているセキュリティレベルから、環境の変化に則したセキュリティレベルに変更できる。環境の変化に則したセキュリティレベルに変更できることによって、環境に応じた処理が行われるため、処理時間の環境に則したものとなる。このため、必要以上に、処理が増加することによって、処理時間が長くなることを防止できる。
また、第１の実施形態のＩＣカード１００は、セキュリティレベルを、遷移方向の一方向のみに変更できるように設定できる。このように構成することによって、攻撃を一度受けた段階でセキュリティレベルを厳しくできるため、早期にセキュリティ強度を上げることができる。
また、第１の実施形態のＩＣカード１００は、セキュリティレベルを、遷移方向と復帰方向との両方向に可逆的に変更できるようにも設定できる。この場合、ＩＣカード１００のセキュリティレベルを厳しくした後、トランザクション数を累積した結果がトランザクションの復帰条件値を超える場合と、セキュリティレベル遷移日からの経過日数がセキュリティレベル遷移日からの経過日数の復帰条件値を超える場合とのいずれか一方又は両方を満たさなければ、セキュリティレベルを低くできない。このため、攻撃者にとっては、攻撃に要する時間が増加するため、攻撃することを困難にできる。
【００４６】
（変形例）
図７は、第１の実施形態の変形例のＩＣカード１００ａの一例を示す図である。なお、同図においては、ＩＣカード１００ａと通信を行う外部装置の一例として、リーダライタ２００がともに示されている。なお、本変形例におけるリーダライタ２００は、カード所有者がＩＣカード１００ａを使用する運用段階において使用されるものであってもよいし、ＩＣカード１００ａの発行段階において、そのＩＣカード１００ａに対して発行処理を行う発行装置であってもよい。
【００４７】
ＩＣカード１００ａは、セキュリティに関するパラメータを含むセキュリティレベルを複数種類保持する。複数のセキュリティレベルの各々は、セキュリティ強度が異なる。ＩＣカード１００ａは、ＩＣカード１００ａが発行された後に、複数種類のセキュリティレベルのうちのいずれかに設定することによって、セキュリティ強度を動的に変更する。
具体的には、ＩＣカード１００ａは、例えば、信号処理の異常を検知した場合に、設定されているセキュリティレベルよりも、セキュリティ強度の高いセキュリティレベルに設定する。以下、ＩＣカード１００ａの構成例について、説明する。
【００４８】
［ＩＣカード１００ａの構成］
図７に示すように、ＩＣカード１００ａは、通信部１０１と、情報処理部１０２ａと、記憶部１０３ａとを備える。
記憶部１０３ａは、ＣＰＵが実行するプログラムと暗号鍵とのほか、情報処理部１０２ａが利用する各種データを記憶する。リーダライタ２００などの外部装置との通信に関連して、記憶部１０３ａは、セキュリティパラメータ１２１と、制御パラメータ１２２と、セキュリティレベル復帰条件１２３と、セキュリティレベル遷移条件１２４ａとを記憶する。
記憶部１０３ａは、不揮発性メモリを備えて構成される。記憶部１０３ａが備える不揮発性メモリとしては、例えばＥＥＰＲＯＭ、フラッシュメモリ、及びＲＯＭなどを挙げることができる。
【００４９】
［セキュリティレベル遷移条件］
図８は、セキュリティレベル遷移条件１２４ａに含まれる情報の一例を示す図である。図８に示される例では、セキュリティレベル遷移条件１２４ａには、不正アタックの原因と想定される事象について、遷移条件が関連付けて記憶される。以下、不正アタックの原因と想定される事象の例として、重要処理のバイパス検知と、暗号処理の異常検知とを使用した場合について説明を続ける。
重要処理のバイパス検知は、ＩＣカード１００ａの処理において、重要な処理がバイパスされたことを検知したことである。情報処理部１０２ａは、処理部１１４が重要な処理をバイパスした場合に、重要な処理がバイパスされたと判定する。
暗号処理の異常検知は、ＩＣカード１００ａの処理において、コマンドを取得したとき、信号処理を実行したとき、認証処理を実行したときの少なくとも一つの場合に乱数を発生し、発生した乱数に基づいて、エラーが発生したか否かを判定した結果、エラーが発生したと判定したことによって、信号処理の異常を検知した状態である。情報処理部１０２は、処理部１１４が行う信号処理の異常を検知した場合に、信号処理の異常を検知したと判定する。
【００５０】
図８に示される例では、重要処理のバイパス検知の遷移条件はレベルを二段階上げる（＋２する）ことである。この場合、仮に、現在のセキュリティレベルが１である場合には、セキュリティレベルが３に変更される。
暗号処理の異常検知の遷移条件はレベルを二段階上げる（＋２）ことである。この場合、仮に、セキュリティレベルが１である場合には、セキュリティレベルが３に変更される。図７に戻り、説明を続ける。
【００５１】
情報処理部１０２ａは、ＩＣカード１００ａにおける各種情報処理を実行する。情報処理部１０２ａとしての機能は、例えばＩＣカード１００ａが備えるＣＰＵなどのプロセッサが記憶部１０３に記憶されたプログラム（ＯＳ）を実行することにより実現されるソフトウェア機能部である。なお、情報処理部１０２ａの全部または一部は、ＬＳＩ、ＡＳＩＣ、またはＦＰＧＡなどのハードウェアにより実現されてもよく、ソフトウェア機能部とハードウェアとの組み合わせによって実現されてもよい。
変形例の情報処理部１０２ａは、セキュリティに関連する機能部として、エラー判定部１１１ａと、処理結果判定部１１２と、セキュリティレベル設定部１１３ａと、処理部１１４と、状態変更部１１５とを備える。
【００５２】
エラー判定部１１１ａは、ＩＣカード１００ａにエラーが発生したか否かを判定する。エラー判定部１１１ａは、ＩＣカード１００ａにエラーが発生したと判定した場合、エラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部１１３ａへ出力する。
具体的には、エラー判定部１１１ａは、処理部１１４が、パスワード照合、署名検証などの重要な処理をバイパスしていることを検知した場合に、エラーが発生したと判定する。エラー判定部１１１ａは、エラーが発生したと判定した場合に、重要な処理がバイパスされていることを検知したことを示す情報を含むエラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部１１３ａへ出力する。
また、エラー判定部１１１ａは、処理部１１４がコマンドを取得したとき、信号処理を実行したとき、認証処理を実行したときの少なくとも一つの場合に、乱数を発生し、発生した乱数に基づいて、エラーが発生したか否かを判定する。エラー判定部１１１ａは、エラーが発生したと判定した場合に、信号処理の異常を検知したことを示す情報を含むエラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部１１３ａへ出力する。
【００５３】
セキュリティレベル設定部１１３ａは、ＩＣカード１００ａのセキュリティレベルを設定する。
セキュリティレベル設定部１１３ａは、エラー判定部１１１ａが出力したエラー発生情報を取得し、取得したエラー発生情報に含まれるエラーの原因を示す情報を取得する。セキュリティレベル設定部１１３ａは、記憶部１０３ａのセキュリティレベル遷移条件１２４ａを参照し、取得したエラーの原因を示す情報が、セキュリティレベル遷移条件１２４ａに含まれるパラメータのいずれかに該当するか否かを判定する。
【００５４】
セキュリティレベル設定部１１３ａは、エラーの原因を示す情報が、セキュリティレベル遷移条件１２４ａに含まれるパラメータのいずれかに該当する場合、ＣＰＵの割り込み処理を実行することによって、そのエラーの原因を示す情報に該当するパラメータに関連付けられている遷移条件にしたがって、セキュリティレベルを、遷移方向へ変更する。
具体的には、セキュリティレベル設定部１１３ａは、エラーの原因を示す情報が、重要処理のバイパス検知である場合、ＣＰＵの割り込み処理を実行することによって、セキュリティレベルを、遷移方向へ二段階上げる。つまり、セキュリティレベル設定部１１３ａは、記憶部１０３ａに記憶されている制御パラメータ１２２のカレントセキュリティレベルの設定値を遷移方向に二段階上げる。また、セキュリティレベル設定部１１３ａは、エラーの原因を示す情報が、信号処理の異常検知である場合、ＣＰＵの割り込み処理を実行することによって、セキュリティレベルを、遷移方向へ二段階上げる。つまり、セキュリティレベル設定部１１３ａは、記憶部１０３ａに記憶されている制御パラメータ１２２のカレントセキュリティレベルの設定値を遷移方向に二段階上げる。
このように、記憶部１０３ａに記憶されている制御パラメータ１２２のカレントセキュリティレベルの設定値を変更することによって、セキュリティレベルを更新できる。カレントセキュリティレベルの設定値が更新された後は、更新された設定値に該当するセキュリティレベルにしたがって、処理が実行される。
ＩＣカード１００ａが発行されたときには、ＩＣカード１００ａの用途と、ＩＣカード１００ａが使用されるアプリケーション環境で要求されるセキュリティ強度とのいずれか一方又は両方に基づいて、セキュリティレベルが設定される。仮に、ＩＣカード１００ａが発行されたときに、セキュリティレベル１に設定されている場合、エラーの原因にかかわらず、セキュリティレベル４を超えることはない。つまり、エラーの原因を示す情報が、セキュリティレベル遷移条件１２４ａに含まれるパラメータのいずれかに一度該当しただけでは、ＩＣカード１００ａを再起不能にさせない。
【００５５】
セキュリティレベル設定部１１３ａは、セキュリティレベルを遷移方向に変更した結果、最高のセキュリティレベル（セキュリティレベル４）を超える場合には、以下の処理を行う。セキュリティレベル設定部１１３ａは、取得したエラー発生情報に含まれるエラーの原因を示す情報が、セキュリティレベル遷移条件１２４ａに含まれるパラメータのいずれかに該当し、セキュリティレベルを遷移方向に変更した結果、セキュリティレベル４を超える場合には、状態変更要求を作成し、作成した状態変更要求を、状態変更部１１５へ出力する。セキュリティ強度が最高のセキュリティレベル（セキュリティレベル４）を超える場合には、これ以上セキュリティレベルを遷移方向に変更することはできない。セキュリティレベルを遷移方向に変更することができない場合に、ＩＣカード１００ａに記憶されている暗号鍵や秘密データが漏洩することを防止する必要があるため、ＩＣカード１００ａの状態を変更することを要求する。
【００５６】
一方、セキュリティレベル設定部１１３ａは、取得したエラー発生情報に含まれるエラーの原因を示す情報が、セキュリティレベル遷移条件１２４ａに含まれるパラメータのいずれにも該当しない場合には、そのまま処理を継続する。
また、セキュリティレベル設定部１１３ａは、後述する処理結果判定部１１２が出力したセキュリティレベル復帰要求を取得し、取得したセキュリティレベル復帰要求に基づいて、セキュリティレベルを、復帰方向へ変更する。ただし、ＩＣカード１００ａが発行されたときに設定されていたセキュリティレベルよりもセキュリティ強度が低くなるセキュリティレベルには変更されない。具体的には、ＩＣカード１００ａが発行されたときに設定されていたセキュリティレベルがセキュリティレベル２であり、且つ現在のセキュリティレベルがセキュリティレベル２である場合には、セキュリティレベル復帰要求を取得した場合でも、セキュリティレベルは変更されない。
ＩＣカード１００ａが発行されたときには、ＩＣカード１００ａの用途と、ＩＣカード１００ａが使用されるアプリケーション環境で要求されるセキュリティ強度とのいずれか一方又は両方に基づいて、セキュリティレベルが設定される。つまり、ＩＣカード１００ａが発行されたときに設定されたセキュリティレベルよりもセキュリティ強度が低くなった場合には、ＩＣカード１００ａの用途と、ＩＣカード１００ａが使用されるアプリケーション環境で要求されるセキュリティ強度とのいずれか一方又は両方を満たさないおそれがある。ＩＣカード１００ａが発行されたときに設定されていたセキュリティレベルよりもセキュリティ強度が低くなるセキュリティレベルには変更されないことによって、ＩＣカード１００ａの用途と、ＩＣカード１００ａが使用されるアプリケーション環境で要求されるセキュリティ強度とのいずれか一方又は両方を満たし続けることができる。
上記のエラー判定部１１１ａと、処理結果判定部１１２と、セキュリティレベル設定部１１３ａと、処理部１１４と、状態変更部１１５との少なくとも一部は、例えばＯＳにより実現される機能である。
【００５７】
［ＩＣカード１００ａの動作］
ＩＣカード１００ａの動作は、図６を適用できる。ただし、ステップＳ４からステップＳ８の処理が異なる。
（ステップＳ４）
セキュリティレベル設定部１１３ａは、記憶部１０３ａに記憶されたセキュリティレベル遷移条件１２４ａに適合する事象が発生したか否かを判定する。具体的には、ＩＣカード１００ａのエラー判定部１１１ａは、ＩＣカード１００ａにエラーが発生したか否かを判定する。エラー判定部１１１ａは、ＩＣカード１００ａにエラーが発生したと判定した場合、エラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部１１３ａへ出力する。
セキュリティレベル設定部１１３ａは、エラー判定部１１１ａが出力したエラー発生情報を取得し、取得したエラー発生情報に含まれるエラーの原因を示す情報を取得する。セキュリティレベル設定部１１３ａは、記憶部１０３ａのセキュリティレベル遷移条件１２４ａを参照し、取得したエラーの原因を示す情報が、セキュリティレベル遷移条件１２４ａに含まれるパラメータのいずれかに該当するか否かを判定することによって、セキュリティ遷移条件１２４ａに適合するか否かを判定する。
【００５８】
（ステップＳ５）
セキュリティレベル設定部１１３ａは、取得したエラーの原因を示す情報が、セキュリティレベル遷移条件１２４ａに含まれるパラメータのいずれにも該当しないと判定した場合、記憶部１０３ａに記憶された制御パラメータ１２２に含まれるセキュリティレベル遷移方向設定を読み出し、読み出したセキュリティレベル遷移方向設定が可逆であるか否かを判定する。読み出したセキュリティレベル遷移方向設定が可逆でない場合、ステップＳ３へ移行する。
【００５９】
（ステップＳ６）
セキュリティレベル設定部１１３ａは、読み出したセキュリティレベル遷移方向設定が可逆である場合、記憶部１０３ａに記憶されたセキュリティレベル復帰条件１２３に適合する事象が発生したか否かを判定する。
具体的には、ＩＣカード１００ａの処理結果判定部１１２は、記憶部１０３ａに記憶されたセキュリティレベル復帰条件１２３を参照し、セキュリティレベルを変更した後のトランザクション数、セキュリティレベルを変更してからの経過時間、セキュリティレベルを変更してからの認証成功回数などの処理結果がセキュリティレベル復帰条件を満たすか否かを判定する。処理結果判定部１１２は、処理結果が、セキュリティレベル復帰条件１２３を満たすと判定した場合に、セキュリティレベル復帰要求を作成する。処理結果判定部１１２は、作成したセキュリティレベル復帰要求を、セキュリティレベル設定部１１３ａへ出力する。
セキュリティレベル設定部１１３ａは、処理結果判定部１１２が出力したセキュリティレベル復帰要求を取得したか否かによって、セキュリティレベル復帰条件１２３に適合する事象が発生したか否かを判定する。セキュリティレベル設定部１１３ａは、セキュリティレベル復帰要求を取得した場合にはセキュリティレベル復帰条件１２３に適合する事象が発生したと判定し、セキュリティレベル復帰要求を取得しない場合にはセキュリティレベル復帰条件１２３に適合する事象が発生していないと判定する。セキュリティレベル設定部１１３ａがセキュリティレベル復帰条件１２３に適合する事象が発生していないと判定した場合、ステップＳ３へ移行する。
【００６０】
（ステップＳ７）
セキュリティレベル復帰条件１２３に適合する事象が発生した場合、セキュリティレベル設定部１１３ａは、処理結果判定部１１２が出力したセキュリティレベル復帰要求にしたがって、記憶部１０３の制御パラメータ１２２のカレントセキュリティレベルを復帰方向へ変更する。その後、ステップＳ１に移行する。
（ステップＳ８）
セキュリティレベル設定部１１３ａは、取得したエラーの原因を示す情報が、セキュリティレベル遷移条件１２４ａに含まれるパラメータのいずれかに該当すると判定した場合、記憶部１０３ａに記憶された制御パラメータ１２２に含まれるセキュリティレベルの設定値を、遷移方向へ変更する。その後、ステップＳ１に移行する。ここで、セキュリティレベルの設定値を、遷移方向へ変更した場合に、セキュリティレベル４を超える場合には、セキュリティレベル設定部１１３ａは、状態変更要求を作成し、作成した状態変更要求を、状態変更部１１５へ出力する。状態変更部１１５は、セキュリティレベル設定部１１３ａが出力した状態変更要求を取得し、取得した状態変更要求にしたがって、ＩＣカード１００ａを再起不能な状態へ遷移させる。
【００６１】
第１の実施形態の変形例のＩＣカード１００ａによれば、ＩＣカード１００ａは、セキュリティに関するパラメータを含むセキュリティレベルを複数種類保持し、信号処理の異常を検知した場合に、保持したセキュリティレベルのうち、設定されているセキュリティレベルよりも、セキュリティ強度の高いセキュリティレベルに設定する。
従来のＩＣカードは、発行されたときに設定されているセキュリティレベルを自発的に変更することはできなかった。
このように構成することによって、第１の実施形態の変形例のＩＣカード１００ａは、セキュリティ強度を動的に変更できる。また、第１の実施形態の変形例のＩＣカード１００ａは、セキュリティレベルを変更することによって、セキュリティ強度を上げることができるため、ＩＣカード１００ａの信頼性を向上できる。また、第１の実施形態の変形例のＩＣカード１００ａは、不正アタックの方法が高度化した場合にも対応できる。
また、第１の実施形態の変形例のＩＣカード１００ａは、ＩＣカード１００ａが発行されたときに設定されているセキュリティレベルから、環境の変化に則したセキュリティレベルに変更できる。環境の変化に則したセキュリティレベルに変更できることによって、環境に応じた処理が行われるため、処理時間の環境に則したものとなる。このため、必要以上に、処理が増加することによって、処理時間が長くなることを防止できる。
【００６２】
また、第１の実施形態の変形例のＩＣカード１００ａは、セキュリティレベルを、遷移方向の一方向のみに変更できるように設定できる。このように構成することによって、攻撃を一度受けた段階でセキュリティレベルを厳しくできるため、早期にセキュリティ強度を上げることができる。
また、第１の実施形態の変形例のＩＣカード１００ａは、セキュリティレベルを、遷移方向と復帰方向との両方向に可逆的に変更できるようにも設定できる。この場合、ＩＣカード１００ａのセキュリティレベルを厳しくした後、トランザクション数を累積した結果がトランザクションの復帰条件値を超える場合と、セキュリティレベル遷移日からの経過日数がセキュリティレベル遷移日からの経過日数の復帰条件値を超える場合とのいずれか一方又は両方を満たさなければ、セキュリティレベルを低くできない。このため、攻撃者にとっては、攻撃に要する時間が増加するため、攻撃することを困難にできる。
また、第１の実施形態の変形例のＩＣカード１００ａは、コマンドを取得したとき、信号処理を実行したとき、認証処理を実行したときの少なくとも一つの場合に乱数を発生し、発生した乱数に基づいて、エラーが発生したか否かを判定する。このように構成することによって、セキュリティ対策にばらつきを発生させることができるため、仮に、サイドチャネル攻撃が行われた場合に、測定波形に、そのばらつきが加算されるため、セキュリティ強度を向上できる。
【００６３】
（第２の実施形態）
［ＩＣチップの構成例］
図９は、第２の実施形態のＩＣチップ３００の一例を示す図である。
ＩＣチップ３００は、セキュリティに関するパラメータを含むセキュリティレベルを複数種類保持する。複数のセキュリティレベルの各々は、セキュリティ強度が異なる。ＩＣチップ３００は、ＩＣチップ３００が発行された後に、複数種類のセキュリティレベルのうちのいずれかに設定することによって、セキュリティ強度を動的に変更する。
具体的には、ＩＣチップ３００は、例えば、外部から不正アタックを受けたと判断した場合に、設定されているセキュリティレベルよりも、セキュリティ強度の高いセキュリティレベルに設定する。
ＩＣチップ３００の構成例については、第１の実施形態で、説明したので、ここでの説明は省略する。また、ＩＣチップ３００の動作は、図６を適用できる。
【００６４】
前述した第２の実施形態では、ＩＣチップ３００に、セキュリティレベル１からセキュリティレベル４の四種類のセキュリティレベルを設定できる場合について説明したがこの例に限られない。例えば、ＩＣチップ３００に設定できるセキュリティレベルは二種類から三種類であってもよいし、五種類以上であってもよい。
前述した第２の実施形態では、ＩＣチップ３００の処理部１１４が、記憶部１０３のセキュリティパラメータ１２１に含まれる複数のセキュリティレベルのうち、読み出したカレントセキュリティレベルと一致するセキュリティレベルを読み出す場合について説明したが、この例に限られない。例えば、ＩＣチップ３００の各種レジスタが、セキュリティレベル１からセキュリティレベル４とのうち、設定されたセキュリティレベルに応じて更新されてもよい。
前述した第２の実施形態では、認証処理が１０回連続実行された場合と、暗号処理関連のコマンドが１００コマンドのうち３０コマンド実行された場合とのいずれか一方又は両方によって、異常を検知したとする場合について説明したが、この例に限られない。例えば、異常を検知したとする認証処理の回数と、暗号処理関連のコマンドの実行数については、適宜変更可能である。
【００６５】
前述した第２の実施形態では、セキュリティレベル遷移条件に該当する事象が一回発生した場合に、セキュリティレベルを遷移方向に変更する場合について説明したがこの限りでない。例えば、セキュリティレベル遷移条件に該当する事象が複数回発生した場合に、セキュリティレベルを遷移方向に変更するようにしてもよい。
前述した第２の実施形態では、各セキュリティレベルに四種類のパラメータが含まれる場合について説明したが、この限りでない。例えば、各セキュリティレベルに一種類から三種類のパラメータが含まれてもよいし、五種類以上のパラメータが含まれてもよい。さらに、セキュリティレベルが、セキュリティレベル１からセキュリティレベル４とセキュリティ強度が高くなるにしたがって、パラメータ数を増加させるようにしてもよい。
前述した第２の実施形態では、ＩＣチップ３００の記憶部１０３に四種類のセキュリティレベルが記憶される場合について説明したが、この限りでない。例えば、ＩＣチップ3００の記憶部１０３に、一種類のセキュリティレベルが記憶されてもよい。この場合、セキュリティレベル設定部１１３ａは、設定したセキュリティレベルに応じて、セキュリティレベルの設定値に記憶する。このように構成することによって、記憶部１０３の記憶容量を削減できる。
【００６６】
第２の実施形態のＩＣチップ３００によれば、ＩＣチップ３００は、セキュリティに関するパラメータを含むセキュリティレベルを複数種類保持し、外部から不正アタックを受けたと判断した場合に、保持したセキュリティレベルのうち、設定されているセキュリティレベルよりも、セキュリティ強度の高いセキュリティレベルに設定する。
このように構成することによって、第２の実施形態のＩＣチップ３００は、セキュリティ強度を動的に変更できる。また、第２の実施形態のＩＣチップ３００は、セキュリティレベルを変更することによって、セキュリティ強度を上げることができるため、ＩＣチップ３００の信頼性を向上できる。また、第２の実施形態のＩＣチップ３００は、不正アタックの方法が高度化した場合にも対応できる。
また、第２の実施形態のＩＣチップ３００は、ＩＣチップ３００が発行されたときに設定されているセキュリティレベルから、環境の変化に則したセキュリティレベルに変更できる。環境の変化に則したセキュリティレベルに変更できることによって、環境に応じた処理が行われるため、処理時間の環境に則したものとなる。このため、必要以上に、処理が増加することによって、処理時間が長くなることを防止できる。
【００６７】
また、第２の実施形態のＩＣチップ３００は、セキュリティレベルを、遷移方向の一方向のみに変更できるように設定できる。このように構成することによって、攻撃を一度受けた段階でセキュリティレベルを厳しくできるため、早期にセキュリティ強度を上げることができる。
また、第２の実施形態のＩＣチップ３００は、セキュリティレベルを、遷移方向と復帰方向との両方向に可逆的に変更できるようにも設定できる。この場合、ＩＣチップ３００のセキュリティレベルを厳しくした後、トランザクション数を累積した結果がトランザクションの復帰条件値を超える場合と、セキュリティレベル遷移日からの経過日数がセキュリティレベル遷移日からの経過日数の復帰条件値を超える場合とのいずれか一方又は両方を満たさなければ、セキュリティレベルを低くできない。このため、攻撃者にとっては、攻撃に要する時間が増加するため、攻撃することを困難にできる。
第２の実施形態のＩＣチップ３００によれば、ＩＣカード１００と比較して、不正アタックがあったことを確認しやすくできる。つまり、ＩＣチップ３００が製造される段階と出荷される段階との間で、ハードウェア又はソフトウェアで対応できる。ＩＣカード１００での実装確認は、アタックしてみないと起動せず、軌道した場合でも、不正アタックか否かの判断は難しいが、ＩＣチップ３００とすることによって、データシートに記載されるため、確認しやすくできる。
【００６８】
（変形例）
［ＩＣチップの構成例］
図１０は、第２の実施形態の変形例のＩＣチップ３００ａの一例を示す図である。
ＩＣチップ３００ａは、セキュリティに関するパラメータを含むセキュリティレベルを複数種類保持する。複数のセキュリティレベルの各々は、セキュリティ強度が異なる。ＩＣチップ３００ａは、ＩＣチップ３００ａが発行された後に、複数種類のセキュリティレベルのうちのいずれかに設定することによって、セキュリティ強度を動的に変更する。
具体的には、ＩＣチップ３００ａは、例えば、信号処理の異常を検知した場合に、設定されているセキュリティレベルよりも、セキュリティ強度の高いセキュリティレベルに設定する。
ＩＣチップ３００ａの構成例については、第１の実施形態の変形例で、説明したので、ここでの説明は省略する。また、ＩＣチップ３００ａの動作は、図６を適用できる。
【００６９】
第２の実施形態の変形例のＩＣチップ３００ａによれば、ＩＣチップ３００ａは、セキュリティに関するパラメータを含むセキュリティレベルを複数種類保持し、信号処理の異常を検知した場合に、保持したセキュリティレベルのうち、設定されているセキュリティレベルよりも、セキュリティ強度の高いセキュリティレベルに設定する。
このように構成することによって、第２の実施形態の変形例のＩＣチップ３００ａは、セキュリティ強度を動的に変更できる。また、第２の実施形態の変形例のＩＣチップ３００ａは、セキュリティレベルを変更することによって、セキュリティ強度を上げることができるため、ＩＣチップ３００ａの信頼性を向上できる。
また、第２の実施形態の変形例のＩＣチップ３００ａは、不正アタックの方法が高度化した場合にも対応できる。また、第２の実施形態の変形例のＩＣチップ３００ａは、ＩＣチップ３００ａが発行されたときに設定されているセキュリティレベルから、環境の変化に則したセキュリティレベルに変更できる。環境の変化に則したセキュリティレベルに変更できることによって、環境に応じた処理が行われるため、処理時間の環境に則したものとなる。このため、必要以上に、処理が増加することによって、処理時間が長くなることを防止できる。
【００７０】
また、第２の実施形態の変形例のＩＣチップ３００ａは、セキュリティレベルを、遷移方向の一方向のみに変更できるように設定できる。このように構成することによって、攻撃を一度受けた段階でセキュリティレベルを厳しくできるため、早期にセキュリティ強度を上げることができる。
また、第２の実施形態の変形例のＩＣチップ３００ａは、セキュリティレベルを、遷移方向と復帰方向との両方向に可逆的に変更できるようにも設定できる。この場合、ＩＣチップ３００ａのセキュリティレベルを厳しくした後、トランザクション数を累積した結果がトランザクションの復帰条件値を超える場合と、セキュリティレベル遷移日からの経過日数がセキュリティレベル遷移日からの経過日数の復帰条件値を超える場合とのいずれか一方又は両方を満たさなければ、セキュリティレベルを低くできない。このため、攻撃者にとっては、攻撃に要する時間が増加するため、攻撃することを困難にできる。
第２の実施形態の変形例のＩＣチップ３００ａによれば、ＩＣカード１００ａと比較して、不正アタックがあったことを確認しやすくできる。つまり、ＩＣチップ３００ａが製造される段階と出荷される段階との間で、ハードウェア又はソフトウェアで対応できる。ＩＣカード１００ａでの実装確認は、アタックしてみないと起動せず、軌道した場合でも、不正アタックか否かの判断は難しいが、ＩＣチップ３００ａとすることによって、データシートに記載されるため、確認しやすくできる。
また、第２の実施形態の変形例のＩＣチップ３００ａは、コマンドを取得したとき、信号処理を実行したとき、認証処理を実行したときの少なくとも一つの場合に乱数を発生し、発生した乱数に基づいて、エラーが発生したか否かを判定する。このように構成することによって、セキュリティ対策にばらつきを発生させることができるため、仮に、サイドチャネル攻撃が行われた場合に、測定波形に、そのばらつが加算されるため、セキュリティ強度を向上できる。
【００７１】
なお、上述のＩＣカード１００、ＩＣカード１００ａ、ＩＣチップ３００、ＩＣチップ３００ａの機能を実現するためのプログラムをコンピュータ読み取り可能な記録部に記録して、この記録部に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述のＩＣカード１００、ＩＣカード１００ａ、ＩＣチップ３００、ＩＣチップ３００ａとしての処理を行ってもよい。
ここで、「記録部に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやＷＡＮ、ＬＡＮ、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録部」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬部、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録部は、ＣＤ−ＲＯＭ等の非一過性の記録部であってもよい。
【００７２】
また、記録部には、当該プログラムを配信するために配信サーバからアクセス可能な内部または外部に設けられた記録部も含まれる。配信サーバの記録部に記憶されるプログラムのコードは、端末装置で実行可能な形式のプログラムのコードと異なるものでもよい。すなわち、配信サーバからダウンロードされて端末装置で実行可能な形でインストールができるものであれば、配信サーバで記憶される形式は問わない。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に端末装置で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録部」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００７３】
１００、１００ａ  ＩＣカード、１０１  通信部、１０２  情報処理部、１０３  記憶部、１０４  温度センサー、１０５  電圧センサー、１０６  受光部、１１１  エラー判定部、１１２  処理結果判定部、１１３、１１３ａ  セキュリティレベル設定部、１１４  処理部、１１５  状態変更部、１２１  セキュリティパラメータ、１２２  制御パラメータ、１２３  セキュリティレベル復帰条件、１２４、１２４ａ  セキュリティレベル遷移条件、２００  リーダライタ、３００、３００ａ  ＩＣチップ
【図１】
2020009305.tif 000003
【図２】
2020009305.tif 000004
【図３】
2020009305.tif 000005
【図４】
2020009305.tif 000006
【図５】
2020009305.tif 000007
【図６】
2020009305.tif 000008
【図７】
2020009305.tif 000009
【図８】
2020009305.tif 000010
【図９】
2020009305.tif 000011
【図１０】
2020009305.tif 000012