JP2020009305A - Icチップ、icカード及びプログラム - Google Patents
Icチップ、icカード及びプログラム Download PDFInfo
- Publication number
- JP2020009305A JP2020009305A JP2018131499A JP2018131499A JP2020009305A JP 2020009305 A JP2020009305 A JP 2020009305A JP 2018131499 A JP2018131499 A JP 2018131499A JP 2018131499 A JP2018131499 A JP 2018131499A JP 2020009305 A JP2020009305 A JP 2020009305A
- Authority
- JP
- Japan
- Prior art keywords
- security level
- unit
- card
- security
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Credit Cards Or The Like (AREA)
Abstract
Description
このようなICカードは、外部からの不正アタックに対して、内部メモリに保持した暗号鍵や秘密データを保護するために、一又は複数のセキュリティ対策機能が実装されている。セキュリティ対策機能には、何段階かのセキュリティ強度のレベルを設定できるもの、又はオン又はオフの一段階で設定されるものがある。セキュリティ強度は、ICカードの用途に応じて、ICカードの発行時に決定される。セキュリティ強度は、ICカードの発行データとして、ICカードのメモリに書き込まれる。
ICカードは、外部装置から電源が供給され、認証処理や暗号処理などのセキュリティが必要な処理を実行するまでに、セキュリティ強度に関するデータを所定のメモリから読み出し、読み出したセキュリティ強度に関するデータを確認する。ICカードは、セキュリティ強度に関するデータに問題ない場合には、そのセキュリティ強度にしたがって処理を実行する。
具体的には、照合の試行回数の上限値が設定されている場合には、パスワードの照合に失敗した場合には、試行回数に一が加算される。試行回数に一が加算された結果、上限値に到達した場合には、ICカードのOSがロックされる。
設定された上限値は変更することはできないため、仮に、攻撃者が、パスワードの照合を行っている場合には、照合の試行回数の上限値に到達するまで、攻撃と許すことになる。
不正を防止するには、必ず実施する対策と、セキュリティ要求によって実施する対策と、段階的に強度を設定できる対策とがある。セキュリティ要求によって実施する対策は、実施することによって、処理が増加するため、処理時間が増加する。段階的に強度を設定できる対策は、強度を最上位に設定することで、セキュリティ強度を高くできるが、処理時間が長くなる。また、段階的に強度を設定できる対策は、強度を低く設定することで、不正アタックを受けた場合に、短時間で暗号鍵などが破られるおそれがある。このため、ICカードが発行される段階で、ICカードが使用されるアプリケーション環境で要求されるセキュリティ強度に基づいて、セキュリティ強度が設定されるが、一度設定されたセキュリティ強度は変更されない。
不正アタックの方法は、日々進化しており、ICカードが製造され、発行されたときから時間が経過した場合に、強化された不正技術で、不正アタックを受けることが想定される。この場合、ICカードに記憶されている暗号用の秘密鍵、秘密データなどが見破られ、暴露、改ざんされるおそれがある。
以上は、ICカードについて主に説明したが、ICチップについても当てはまる。
なお、実施形態を説明するための全図において、同一の機能を有するものは同一符号を用い、繰り返しの説明は省略する。
また、本願でいう「XXに基づく」とは、「少なくともXXに基づく」ことを意味し、XXに加えて別の要素に基づく場合も含む。また、「XXに基づく」とは、XXを直接に用いる場合に限定されず、XXに対して演算や加工が行われたものに基づく場合も含む。「XX」は、任意の要素(例えば、任意の情報)である。
[ICカードの構成例]
図1は、第1の実施形態のICカード100の一例を示す図である。なお、同図においては、ICカード100と通信を行う外部装置の一例として、リーダライタ200がともに示されている。なお、本実施形態におけるリーダライタ200は、カード所有者がICカード100を使用する運用段階において使用されるものであってもよいし、ICカード100の発行段階において、そのICカード100に対して発行処理を行う発行装置であってもよい。
具体的には、ICカード100は、例えば、外部から不正アタックを受けたと判断した場合に、設定されているセキュリティレベルよりも、セキュリティ強度の高いセキュリティレベルに設定する。以下、ICカード100の構成例について、説明する。
図1に示すように、ICカード100は、通信部101と、情報処理部102と、記憶部103と、温度センサー104と、電圧センサー105と、受光部106とを備える。
通信部101は、リーダライタ200と通信を実行する。通信部101による外部装置との通信は接触式であってもよいし非接触式であってもよい。つまり、通信部101は、物理層の構成として、接触式に対応する構成を有していてもよいし、非接触式に対応する構成を有していてもよい。また、通信部101は、物理層の構成として、接触式に対応する構成と、非接触式に対応する構成とを有していてもよい。
以降の説明では、本実施形態のICカード100が非接触式で通信を行うようにされている場合を例に挙げる。
記憶部103は、不揮発性メモリを備えて構成される。記憶部103が備える不揮発性メモリとしては、例えばEEPROM(Electrically Erasable Programmable Read-Only Memory)、フラッシュメモリ、及びROM(Read Only Memory)などを挙げることができる。
セキュリティパラメータ121は、複数のセキュリティレベルの各々に関連して、一又は複数のパラメータを含む。複数のセキュリティレベルの各々は、ICカード100のOSの状態を表しており、セキュリティ強度が異なる。
図2は、セキュリティパラメータ121に含まれる情報の一例を示す図である。図2に示される例では、セキュリティパラメータ121は、セキュリティ強度が低い方から高い方へ、セキュリティレベル1(SEC LV1)からセキュリティレベル4(SEC LV4)の四種類のセキュリティレベルを含む。
さらに、セキュリティレベル1からセキュリティレベル4の各々に関連付けて、パスワード照合の試行回数とその設定値と、認証NGの許容回数とその設定値と、処理時間のランダム機能ON/OFFとその設定値と、暗号強化処理ON/OFFとその設定値と、重要データのチェックコード検証ON/OFFとその設定値とが記憶されている。
認証NGの許容回数は、認証の失敗を許容できる回数であり、この許容回数を超えた場合に、情報処理部102は、ICカード100のOSをロックする。このように構成することによって、無制限に認証が試行されることを防止できる。
処理時間ランダム機能ON/OFFは、ICカード100の処理をランダムな間隔で開始する機能である。セキュリティレベルが高い場合(セキュリティレベル2からセキュリティレベル4)に、この機能がオンにされる。このように構成することによって、ICカード100の処理時間から、そのICカード100の内部の情報が暴露されるのを防止できる。
暗号強化処理ON/OFFは、暗号を強化する機能である。セキュリティレベルが高い場合(セキュリティレベル3とセキュリティレベル4)に、この機能がオンにされる。このように構成することによって、ICカード100の内部の情報が暴露されるのを防止できる。
重要データのチェックコードの検証ON/OFFは、重要なデータについて、チェックコードを検証する機能である。セキュリティレベルにかかわらず、この機能はオンにされる。このように構成することによって、外部からのデータが改ざんされたことを検出できる。
セキュリティレベル1は、OSの状態が通常の状態である場合に設定される。セキュリティレベル1では、パスワード照合の試行回数の設定値が15回、認証NGの許容回数の設定値が15回、処理時間のランダム機能ON/OFFの設定値がオフ、暗号強化処理ON/OFFの設定値がオフ、重要データのチェックコード検証ON/OFFの設定値がオンである。
セキュリティレベル1に設定されている場合、パスワード照合の試行回数が15回を超える場合と、認証NGの許容回数が15回を超える場合とのいずれか一方または両方の場合に、情報処理部102は、ICカード100のOSをロックする。セキュリティレベル1に設定されている場合、処理時間のランダム機能がオフ、暗号強化処理がオフ、重要データのチェックコード検証がオンにされる。
セキュリティレベル2は、OSの状態が低度の危険な状態である場合に設定される。セキュリティレベル2は、パスワード照合の試行回数の設定値が10回、認証NGの許容回数の設定値が10回、処理時間のランダム機能ON/OFFの設定値がオン、暗号強化処理ON/OFFの設定値がオフ、重要データのチェックコード検証ON/OFFの設定値がオンである。
セキュリティレベル2に設定されている場合、パスワード照合の試行回数が10回を超える場合と、認証NGの許容回数が10回を超える場合とのいずれか一方または両方の場合に、情報処理部102は、ICカード100のOSをロックする。セキュリティレベル2に設定されている場合、処理時間のランダム機能ON/OFFがオン、暗号強化処理ON/OFFがオフ、重要データのチェックコード検証ON/OFFがオンにされる。
セキュリティレベル3に設定されている場合、パスワード照合の試行回数が3回を超える場合と、認証NGの許容回数が3回を超える場合とのいずれか一方または両方の場合に、情報処理部102は、ICカード100のOSをロックする。セキュリティレベル3に設定されている場合、処理時間のランダム機能ON/OFFがオン、暗号強化処理ON/OFFがオン、重要データのチェックコード検証ON/OFFがオンにされる。
セキュリティレベル4は、OSの状態が非常に危険な状態である場合に設定される。セキュリティレベル4は、パスワード照合の試行回数の設定値が1回、認証NGの許容回数の設定値が1回、処理時間のランダム機能ON/OFFの設定値がオン、暗号強化処理ON/OFFの設定値がオン、重要データのチェックコード検証ON/OFFの設定値がオンである。
セキュリティレベル4に設定されている場合、パスワード照合の試行回数が1回を超える場合と、認証NGの許容回数が1回を超える場合とのいずれか一方または両方の場合に、情報処理部102は、ICカード100のOSをロックする。セキュリティレベル4に設定されている場合、処理時間のランダム機能ON/OFFがオン、暗号強化処理ON/OFFがオン、重要データのチェックコード検証ON/OFFがオンにされる。
図3は、制御パラメータ122に含まれる情報の一例を示す図である。図3に示される例では、制御パラメータ122には、カレントセキュリティレベルと、セキュリティレベル遷移方向設定とが含まれる。
カレントセキュリティレベルは、ICカード100に設定されている現在のセキュリティレベルであり、セキュリティレベル1からセキュリティレベル4のいずれかが設定される。
セキュリティレベル遷移方向設定は、セキュリティレベルを、セキュリティレベル1からセキュリティレベル4の方向、換言すればセキュリティ強度が高くなる方向へ変更した後に、セキュリティレベル4からセキュリティレベル1の方向、換言すればセキュリティ強度が低くなる方向へ変更できるか否かを指定する情報である。セキュリティレベル遷移方向設定には、変更できる場合には可逆を示す情報が設定され、変更できない場合には不可逆を示す情報が設定される。
以下、セキュリティレベル1からセキュリティレベル4の方向、換言すればセキュリティ強度が高くなる方向を「遷移方向」という。また、セキュリティレベル4からセキュリティレベル1の方向、換言すればセキュリティ強度が低くなる方向を「復帰方向」という。
図3に示される例では、カレントセキュリティはレベル1であり、セキュリティレベル遷移方向設定は可逆である。この場合、セキュリティレベルを、遷移方向と復帰方向のいずれでも変更できる。
図4は、セキュリティレベル復帰条件123に含まれる情報の一例を示す図である。図4に示される例では、セキュリティレベル復帰条件123には、トランザクション数と、セキュリティレベル遷移日からの経過日数と、パスワード認証連続OK回数とが含まれる。セキュリティレベル復帰条件123には、トランザクション数とセキュリティレベル遷移日からの経過日数とパスワード認証連続OK回数との各々について、復帰条件値と現在値とが関連付けて記憶される。
トランザクション数は、ICカード100が行う情報処理の数である。
セキュリティレベル遷移日からの経過日数は、セキュリティレベルを変更してからの経過日数である。例えば、ICカード100の処理部114は、セキュリティレベルを変更した日時情報を外部装置から取得し、取得した日時情報を保持する。その後、ICカード100の処理部114は、外部装置に接続した場合に、その外部装置から現在の日時情報を取得し、取得した日時情報と、保持している日時情報とに基づいて、保持している日時情報から、取得した日時情報までの経過日数を導出する。
パスワード認証連続OK回数は、パスワードによる認証の連続成功回数である。
図4に示される例では、トランザクション数の復帰条件値は100回であり、現在値は10回である。この場合、トランザクション数が100回となった場合に、セキュリティレベルを復帰方向へ変更可能であるが、現在のトランザクション数は10回である。このため、現在のセキュリティレベルは変更されない。
セキュリティレベル遷移日からの経過日数の復帰条件値は30日であり、現在値は10日である。この場合、セキュリティレベルを遷移させた日から30日を経過した場合に、セキュリティレベルを復帰方向へ変更できるが、現在のセキュリティレベル遷移日からの経過日数は10日である。このため、現在のセキュリティレベルは変更されない。
パスワード認証連続OK回数の復帰条件値は5回であり、現在値は2回である。この場合、パスワード認証の連続成功回数が5回となった場合に、セキュリティレベルを復帰方向へ変更可能であるが、現在のパスワード認証の連続成功回数は2回である。このため、現在のセキュリティレベルは変更されない。
図5は、セキュリティレベル遷移条件124に含まれる情報の一例を示す図である。図5に示される例では、セキュリティレベル遷移条件124には、不正アタックの原因と想定される事象について、遷移条件が関連付けて記憶される。以下、不正アタックの原因と想定される事象の例として、ハードウェアエラー検知と、レーザーアタック検知と、重要処理のバイパス検知と、暗号処理の異常検知とを使用した場合について説明を続ける。
ハードウェアエラー検知は、ICカード100のハードウェアにエラーを検知した状態である。例えば、温度センサー104が検出した温度が、所定の温度範囲を満足しない場合、電圧センサー105が検出した印加電圧が所定の電圧範囲を満足しない場合などに、情報処理部102は、ICカード100のハードウェアにエラーが生じたと判定する。
レーザーアタック検知は、ICカード100にレーザー光が照射されたことを検知した状態である。受光部106がレーザー光を受光した場合などに、情報処理部102は、ICカード100にレーザーアタックが行われたと判定する。
重要処理のバイパス検知は、ICカード100の処理において、重要な処理がバイパスされたことを検知したことである。情報処理部102は、処理部114が重要な処理をバイパスした場合に、重要な処理がバイパスされたと判定する。
暗号処理の異常検知は、ICカード100の処理において、認証処理と、暗号処理関連のコマンドとのいずれか一方又は両方が頻繁に実行されるなどの信号処理の異常を検知した状態である。情報処理部102は、処理部114が行う信号処理の異常を検知した場合に、信号処理の異常を検知したと判定する。
レーザーアタック検知の遷移条件はレベルを三段階上げる(+3する)ことである。この場合、仮に、現在のセキュリティレベルが1である場合には、セキュリティレベルが4に変更される。
重要処理のバイパス検知の遷移条件はレベルを二段階上げる(+2する)ことである。この場合、仮に、現在のセキュリティレベルが1である場合には、セキュリティレベルが3に変更される。
暗号処理の異常検知の遷移条件はレベルを二段階上げる(+2)ことである。この場合、仮に、セキュリティレベルが1である場合には、セキュリティレベルが3に変更される。図1に戻り、説明を続ける。
電圧センサー105は、ICカード100に印加された電圧を検出し、検出した印加電圧を示す情報を、情報処理部102へ出力する。
受光部106は、ICカード100に照射されたレーザー光を検出する。受光部106は、レーザー光を検出した場合に、レーザー光を検出したことを示す情報(以下「レーザー光検出情報」という)を、情報処理部102へ出力する。
本実施形態の情報処理部102は、セキュリティに関連する機能部として、エラー判定部111と、処理結果判定部112と、セキュリティレベル設定部113と、処理部114と、状態変更部115とを備える。
具体的には、エラー判定部111は、温度センサー104が出力した温度を示す情報を取得し、取得した温度を示す情報が、所定の温度範囲を満足するか否かを判定する。エラー判定部111は、取得した温度を示す情報が、所定の温度範囲を満足しない場合に、エラーが発生したと判定する。エラー判定部111は、エラーが発生したと判定しない場合には、そのまま処理を継続する。エラー判定部111は、エラーが発生したと判定した場合に、ハードウェアのエラーを検知したことを示す情報を含むエラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部113へ出力する。
エラー判定部111は、電圧センサー105が出力した印加電圧を示す情報を取得し、取得した印加電圧を示す情報が、所定の電圧範囲を満足するか否かを判定する。エラー判定部111は、印加電圧を示す情報が、所定の電圧範囲を満足しない場合に、エラーが発生したと判定する。エラー判定部111は、エラーが発生したと判定しない場合には、そのまま処理を継続する。エラー判定部111は、エラーが発生したと判定した場合に、ハードウェアのエラーを検知したことを示す情報を含むエラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部113へ出力する。
エラー判定部111は、処理部114が、パスワード照合、署名検証などの重要な処理をバイパスしていることを検知した場合に、エラーが発生したと判定する。エラー判定部111は、エラーが発生したと判定した場合に、重要な処理がバイパスされていることを検知したことを示す情報を含むエラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部113へ出力する。
また、エラー判定部111は、処理部114が実行する信号処理において、重要データの改変、認証処理と暗号処理関連のコマンドとのいずれか一方又は両方が頻繁に実行されるなどの異常を検知した場合に、エラーが発生したと判定する。ここで、頻繁に実行されたことは、認証処理が10回連続して実行された場合と、暗号処理関連のコマンドが100コマンドのうち、30コマンドが連続して実行された場合とのいずれか一方又は両方によって判断されてもよい。
エラー判定部111は、カウンタが計数した結果によって、認証処理が10回連続実行されたか否か、暗号処理関連のコマンドが100コマンドのうち、30コマンドが連続して実行されたか否かを判定する。このように構成することによって、通常の使用を行っている場合に生じうる認証失敗は、外部からの攻撃とは見なされないため、悪意のある攻撃者による認証失敗を判定できる。ここで、エラー判定部111は、カウンタが計数した結果によって、一連の処理で、認証処理が10回連続実行されたか否か、一連の処理で、暗号処理関連のコマンドが100コマンドのうち、30コマンドが連続して実行されたか否かを判定するようにしてもよい。エラー判定部111は、エラーが発生したと判定した場合に、信号処理の異常を検知したことを示す情報を含むエラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部113へ出力する。
セキュリティレベル設定部113は、エラー判定部111が出力したエラー発生情報を取得し、取得したエラー発生情報に含まれるエラーの原因を示す情報を取得する。セキュリティレベル設定部113は、記憶部103のセキュリティレベル遷移条件124を参照し、取得したエラーの原因を示す情報が、セキュリティレベル遷移条件124に含まれるパラメータのいずれかに該当するか否かを判定する。
具体的には、セキュリティレベル設定部113は、エラーの原因を示す情報が、ハードウェアエラー検知である場合、CPUの割り込み処理を実行することによって、セキュリティレベルを、遷移方向へ一段階上げる。つまり、セキュリティレベル設定部113は、記憶部103に記憶されている制御パラメータ122のカレントセキュリティレベルの設定値を遷移方向に一段階上げる。また、セキュリティレベル設定部113は、エラーの原因を示す情報が、レーザーアタック検知である場合、CPUの割り込み処理を実行することによって、セキュリティレベルを、遷移方向へ三段階上げる。つまり、セキュリティレベル設定部113は、記憶部103に記憶されている制御パラメータ122のカレントセキュリティレベルの設定値を遷移方向に三段階上げる。
また、セキュリティレベル設定部113は、エラーの原因を示す情報が、重要処理のバイパス検知である場合、CPUの割り込み処理を実行することによって、セキュリティレベルを、遷移方向へ二段階上げる。つまり、セキュリティレベル設定部113は、記憶部103に記憶されている制御パラメータ122のカレントセキュリティレベルの設定値を遷移方向に二段階上げる。また、セキュリティレベル設定部113は、エラーの原因を示す情報が、信号処理の異常検知である場合、CPUの割り込み処理を実行することによって、セキュリティレベルを、遷移方向へ二段階上げる。つまり、セキュリティレベル設定部113は、記憶部103に記憶されている制御パラメータ122のカレントセキュリティレベルの設定値を遷移方向に二段階上げる。
このように、記憶部103に記憶されている制御パラメータ122のカレントセキュリティレベルの設定値を変更することによって、セキュリティレベルを更新できる。カレントセキュリティレベルの設定値が更新された後は、更新された設定値に該当するセキュリティレベルにしたがって、処理が実行される。
ICカード100が発行されたときには、ICカード100の用途と、ICカード100が使用されるアプリケーション環境で要求されるセキュリティ強度とのいずれか一方又は両方に基づいて、セキュリティレベルが設定される。仮に、ICカード100が発行されたときに、セキュリティレベル1に設定されている場合、エラーの原因にかかわらず、セキュリティレベル4を超えることはない。つまり、エラーの原因を示す情報が、セキュリティレベル遷移条件124に含まれるパラメータのいずれかに一度該当しただけでは、ICカード100を再起不能にさせない。
セキュリティ強度が最高のセキュリティレベル(セキュリティレベル4)を超える場合には、これ以上セキュリティレベルを遷移方向に変更することはできない。セキュリティレベルを遷移方向に変更することができない場合に、ICカード100に記憶されている暗号鍵や秘密データが漏洩することを防止する必要があるため、ICカード100の状態を変更することを要求する。
一方、セキュリティレベル設定部113は、取得したエラー発生情報に含まれるエラーの原因を示す情報が、セキュリティレベル遷移条件124に含まれるパラメータのいずれにも該当しない場合には、そのまま処理を継続する。
また、セキュリティレベル設定部113は、後述する処理結果判定部112が出力したセキュリティレベル復帰要求を取得し、取得したセキュリティレベル復帰要求に基づいて、セキュリティレベルを、復帰方向へ変更する。ただし、ICカード100が発行されたときに設定されていたセキュリティレベルよりもセキュリティ強度が低くなるセキュリティレベルには変更されない。
具体的には、ICカード100が発行されたときに設定されていたセキュリティレベルがセキュリティレベル2であり、且つ現在のセキュリティレベルがセキュリティレベル2である場合には、セキュリティレベル復帰要求を取得した場合でも、セキュリティレベルは変更されない。
ICカード100が発行されたときには、ICカード100の用途と、ICカード100が使用されるアプリケーション環境で要求されるセキュリティ強度とのいずれか一方又は両方に基づいて、セキュリティレベルが設定される。つまり、ICカード100が発行されたときに設定されたセキュリティレベルよりもセキュリティ強度が低くなった場合には、ICカード100の用途と、ICカード100が使用されるアプリケーション環境で要求されるセキュリティ強度とのいずれか一方又は両方を満たさないおそれがある。ICカード100が発行されたときに設定されていたセキュリティレベルよりもセキュリティ強度が低くなるセキュリティレベルには変更されないことによって、ICカード100の用途と、ICカード100が使用されるアプリケーション環境で要求されるセキュリティ強度とのいずれか一方又は両方を満たし続けることができる。
処理部114は、外部装置との通信路の設定が終了した後に、外部装置との通信にあたり、セキュリティレベル設定部113が設定したセキュリティレベルにしたがって、処理を行う。具体的には、処理部114は、記憶部103の制御パラメータ122に含まれるカレントセキュリティレベルを読み出す。処理部114は、記憶部103のセキュリティパラメータ121に含まれる複数のセキュリティレベルのうち、読み出したカレントセキュリティレベルと一致するセキュリティレベルを読み出す。処理部114は、読み出したセキュリティレベルに含まれるパラメータ(パスワード照合の試行回数、認証NGの許容回数、処理時間のランダム機能、暗号強化処理、重要データのチェックコード検証)にしたがって、OSや、アプリケーションによって処理を行う。
具体的には、処理結果判定部112は、セキュリティレベル設定部113が、セキュリティレベルを変更した場合に、記憶部103のセキュリティレベル復帰条件123の現在値をリセットする。
処理結果判定部112は、セキュリティレベルを変更した後のトランザクション数を累積し、トランザクション数を累積した結果を、記憶部103のセキュリティレベル復帰条件123のトランザクション数に関連付けられている現在値に記憶する。
セキュリティレベル設定部113は、処理結果判定部112が出力したセキュリティレベル復帰要求を取得し、取得したセキュリティレベル復帰要求にしたがって、記憶部103の制御パラメータ122に含まれるカレントセキュリティレベルの設定値を一段階下げる(−1する)。ただし、現在のセキュリティレベルがセキュリティレベル1である場合には、セキュリティレベルの設定値を一段階下げることはできないため、カレントセキュリティレベルは変更されない。
一方、処理結果判定部112は、トランザクション数を累積した結果が、トランザクションの復帰条件値を超えない場合、トランザクション数を累積する処理を継続する。
図4に示される例では、処理結果判定部112は、トランザクション数を累積した結果である10回が、トランザクションの復帰条件値である100回を超えないため、トランザクション数を累積する処理を継続する。この場合、セキュリティレベルは変更されない。
処理結果判定部112は、セキュリティレベル復帰条件123のセキュリティレベル遷移日からの経過日数に関連付けられている現在値に記憶したセキュリティレベル遷移日からの経過日数が、セキュリティレベル遷移日からの経過日数の復帰条件値を超えるか否かを判定する。処理結果判定部112は、セキュリティレベル遷移日からの経過日数が、セキュリティレベル遷移日からの経過日数の復帰条件値を超える場合、セキュリティレベル復帰要求を作成し、作成したセキュリティレベル復帰要求を、セキュリティレベル設定部113に、出力する。
セキュリティレベル設定部113は、処理結果判定部112が出力したセキュリティレベル復帰要求を取得し、取得したセキュリティレベル復帰要求にしたがって、記憶部103の制御パラメータ122に含まれるカレントセキュリティレベルの設定値を一段階下げる(−1する)。ただし、現在のセキュリティレベルがセキュリティレベル1である場合には、セキュリティレベルの設定値を一段階下げることはできないため、カレントセキュリティレベルは変更されない。
一方、処理結果判定部112は、セキュリティレベル遷移日からの経過日数が、セキュリティレベル遷移日からの経過日数の復帰条件値を超えない場合、セキュリティレベル遷移日からの経過日数を導出する処理を継続する。
図4に示される例では、処理結果判定部112は、セキュリティレベル遷移日からの経過日数である10日が、セキュリティレベル遷移日からの経過日数の復帰条件値である30日を超えないため、トランザクション数を累積する処理を継続する。この場合、セキュリティレベルは変更されない。
処理結果判定部112は、セキュリティレベル復帰条件123のパスワード認証連続OK回数に関連付けられている現在値に記憶したセキュリティレベルを変更してからのパスワード認証連続成功回数が、パスワード認証連続OK回数の復帰条件値を超えるか否かを判定する。処理結果判定部112は、セキュリティレベルを変更してからのパスワード認証連続成功回数が、パスワード認証連続OK回数の復帰条件値を超える場合、セキュリティレベル復帰要求を作成し、作成したセキュリティレベル復帰要求を、セキュリティレベル設定部113に、出力する。
セキュリティレベル設定部113は、処理結果判定部112が出力したセキュリティレベル復帰要求を取得し、取得したセキュリティレベル復帰要求にしたがって、記憶部103の制御パラメータ122に含まれるカレントセキュリティレベルの設定値を一段階下げる(−1する)。ただし、現在のセキュリティレベルがセキュリティレベル1である場合には、セキュリティレベルの設定値を一段階下げることはできないため、カレントセキュリティレベルは変更されない。
一方、処理結果判定部112は、セキュリティレベルを変更してからのパスワード認証連続成功回数が、パスワード認証連続OK回数の復帰条件値を超えない場合、セキュリティレベルを変更してからのパスワード認証連続成功回数を導出する処理を継続する。
図4に示される例では、処理結果判定部112は、セキュリティレベルを変更してからのパスワード認証連続成功回数である2回が、パスワード認証連続OK回数である5回を超えないため、セキュリティレベルを変更してからのパスワード認証連続成功回数を導出する処理を継続する。この場合、セキュリティレベルは変更されない。
上記のエラー判定部111と、処理結果判定部112と、セキュリティレベル設定部113と、処理部114と、状態変更部115との少なくとも一部は、例えばOSにより実現される機能である。
図6は、第1の実施形態のICカード100の動作の一例を示すフローチャートである。ICカード100は、外部装置からコマンドを受信して、受信したコマンドに含まれる指示にしたがって処理を実行する。ICカード100は、処理を実行した結果を含むレスポンスを作成し、作成したレスポンスを、外部装置へ送信する。ICカード100は、外部装置から電源の供給がある場合に、以下のステップにしたがって処理を行う。
(ステップS1)
ICカード100の処理部114は、ICカード100へ電源が投入されたタイミングと、外部からの命令であるコマンドを受信したタイミングと、OS処理中とのいずれかに、記憶部103の制御パラメータ122に含まれるカレントセキュリティレベルを読み出す。図3に示した制御パラメータ122がICカード100に記憶されている場合には、処理部114は、カレントセキュリティレベルとして、レベル1を読み出す。
(ステップS2)
ICカード100の処理部114は、記憶部103のセキュリティパラメータ121に含まれる複数のセキュリティレベルのうち、ステップS1で読み出したカレントセキュリティレベルと一致するセキュリティレベルを読み出す。図2に示したセキュリティパラメータ121がICカード100に記憶されている場合には、処理部114は、セキュリティレベル1に含まれるパラメータ(パスワード照合の試行回数、認証NGの許容回数、処理時間のランダム機能、暗号強化処理、重要データのチェックコード検証)を読み出す。
ICカード100の処理部114は、ステップS2で読み出したセキュリティレベル1に含まれるパラメータ(パスワード照合の試行回数、認証NGの許容回数、処理時間のランダム機能、暗号強化処理、重要データのチェックコード検証)にしたがって、OSや、アプリケーションによって処理を行う。
(ステップS4)
セキュリティレベル設定部113は、記憶部103に記憶されたセキュリティレベル遷移条件124に適合する事象が発生したか否かを判定する。具体的には、ICカード100のエラー判定部111は、ICカード100にエラーが発生したか否かを判定する。エラー判定部111は、ICカード100にエラーが発生したと判定した場合、エラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部113へ出力する。
セキュリティレベル設定部113は、エラー判定部111が出力したエラー発生情報を取得し、取得したエラー発生情報に含まれるエラーの原因を示す情報を取得する。セキュリティレベル設定部113は、記憶部103のセキュリティレベル遷移条件124を参照し、取得したエラーの原因を示す情報が、セキュリティレベル遷移条件124に含まれるパラメータのいずれかに該当するか否かを判定することによって、セキュリティ遷移条件124に適合するか否かを判定する。
セキュリティレベル設定部113は、取得したエラーの原因を示す情報が、セキュリティレベル遷移条件124に含まれるパラメータのいずれにも該当しないと判定した場合、記憶部103に記憶された制御パラメータ122に含まれるセキュリティレベル遷移方向設定を読み出し、読み出したセキュリティレベル遷移方向設定が可逆であるか否かを判定する。読み出したセキュリティレベル遷移方向設定が可逆でない場合、ステップS3へ移行する。
セキュリティレベル設定部113は、読み出したセキュリティレベル遷移方向設定が可逆である場合、記憶部103に記憶されたセキュリティレベル復帰条件123に適合する事象が発生したか否かを判定する。
具体的には、ICカード100の処理結果判定部112は、記憶部103に記憶されたセキュリティレベル復帰条件123を参照し、セキュリティレベルを変更した後のトランザクション数、セキュリティレベルを変更してからの経過時間、セキュリティレベルを変更してからの認証成功回数などの処理結果がセキュリティレベル復帰条件を満たすか否かを判定する。処理結果判定部112は、処理結果が、セキュリティレベル復帰条件123を満たすと判定した場合に、セキュリティレベル復帰要求を作成する。処理結果判定部112は、作成したセキュリティレベル復帰要求を、セキュリティレベル設定部113へ出力する。
セキュリティレベル設定部113は、処理結果判定部112が出力したセキュリティレベル復帰要求を取得したか否かによって、セキュリティレベル復帰条件123に適合する事象が発生したか否かを判定する。セキュリティレベル設定部113は、セキュリティレベル復帰要求を取得した場合にはセキュリティレベル復帰条件123に適合する事象が発生したと判定し、セキュリティレベル復帰要求を取得しない場合にはセキュリティレベル復帰条件123に適合する事象が発生していないと判定する。セキュリティレベル設定部113がセキュリティレベル復帰条件123に適合する事象が発生していないと判定した場合、ステップS3へ移行する。
セキュリティレベル復帰条件123に適合する事象が発生した場合、セキュリティレベル設定部113は、処理結果判定部112が出力したセキュリティレベル復帰要求にしたがって、記憶部103の制御パラメータ122のカレントセキュリティレベルを復帰方向へ変更する。その後、ステップS1に移行する。
(ステップS8)
セキュリティレベル設定部113は、取得したエラーの原因を示す情報が、セキュリティレベル遷移条件124に含まれるパラメータのいずれかに該当すると判定した場合、記憶部103に記憶された制御パラメータ122に含まれるセキュリティレベルの設定値を、遷移方向へ変更する。その後、ステップS1に移行する。ここで、セキュリティレベルの設定値を遷移方向へ変更した場合に、セキュリティレベル4を超える場合には、セキュリティレベル設定部113は、状態変更要求を作成し、作成した状態変更要求を、状態変更部115へ出力する。状態変更部115は、セキュリティレベル設定部113が出力した状態変更要求を取得し、取得した状態変更要求にしたがって、ICカード100を再起不能な状態へ遷移させる。
図6に示されるフローチャートにおいて、ステップS4とステップS5とステップS6との順序を入れ替えてもよい。
前述した第1の実施形態では、ICカード100の処理部114が、記憶部103のセキュリティパラメータ121に含まれる複数のセキュリティレベルのうち、読み出したカレントセキュリティレベルと一致するセキュリティレベルを読み出す場合について説明したが、この例に限られない。例えば、ICチップの各種レジスタが、セキュリティレベル1からセキュリティレベル4とのうち、設定されたセキュリティレベルに応じて更新されてもよい。
前述した第1の実施形態では、認証処理が10回連続実行された場合と、暗号処理関連のコマンドが100コマンドのうち30コマンド実行された場合とのいずれか一方又は両方によって、異常を検知したとする場合について説明したが、この例に限られない。例えば、異常を検知したとする認証処理の回数と、暗号処理関連のコマンドの実行数については、適宜変更可能である。
前述した第1の実施形態では、セキュリティレベル遷移条件に該当する事象が一回発生した場合に、セキュリティレベルを遷移方向に変更する場合について説明したがこの限りでない。例えば、セキュリティレベル遷移条件に該当する事象が複数回発生した場合に、セキュリティレベルを遷移方向に変更するようにしてもよい。
前述した第1の実施形態では、各セキュリティレベルに四種類のパラメータが含まれる場合について説明したが、この限りでない。例えば、各セキュリティレベルに一種類から三種類のパラメータが含まれてもよいし、五種類以上のパラメータが含まれてもよい。さらに、セキュリティレベルが、セキュリティレベル1からセキュリティレベル4とセキュリティ強度が高くなるにしたがって、パラメータ数を増加させるようにしてもよい。
前述した第1の実施形態では、ICカード100の記憶部103に四種類のセキュリティレベルが記憶される場合について説明したが、この限りでない。例えば、ICカード100の記憶部103に、一種類のセキュリティレベルが記憶されてもよい。この場合、セキュリティレベル設定部113は、設定したセキュリティレベルに応じて、セキュリティレベルの設定値に記憶する。このように構成することによって、記憶部103の記憶容量を削減できる。
従来のICカードは、発行されたときに設定されているセキュリティレベルを、自発で気に変更することはできなかった。
このように構成することによって、第1の実施形態のICカード100は、セキュリティ強度を動的に変更できる。また、第1の実施形態のICカード100は、セキュリティレベルを変更することによって、セキュリティ強度を上げることができるため、ICカード100の信頼性を向上できる。また、第1の実施形態のICカード100は、不正アタックの方法が高度化した場合にも対応できる。
また、第1の実施形態のICカード100は、ICカード100が発行されたときに設定されているセキュリティレベルから、環境の変化に則したセキュリティレベルに変更できる。環境の変化に則したセキュリティレベルに変更できることによって、環境に応じた処理が行われるため、処理時間の環境に則したものとなる。このため、必要以上に、処理が増加することによって、処理時間が長くなることを防止できる。
また、第1の実施形態のICカード100は、セキュリティレベルを、遷移方向の一方向のみに変更できるように設定できる。このように構成することによって、攻撃を一度受けた段階でセキュリティレベルを厳しくできるため、早期にセキュリティ強度を上げることができる。
また、第1の実施形態のICカード100は、セキュリティレベルを、遷移方向と復帰方向との両方向に可逆的に変更できるようにも設定できる。この場合、ICカード100のセキュリティレベルを厳しくした後、トランザクション数を累積した結果がトランザクションの復帰条件値を超える場合と、セキュリティレベル遷移日からの経過日数がセキュリティレベル遷移日からの経過日数の復帰条件値を超える場合とのいずれか一方又は両方を満たさなければ、セキュリティレベルを低くできない。このため、攻撃者にとっては、攻撃に要する時間が増加するため、攻撃することを困難にできる。
図7は、第1の実施形態の変形例のICカード100aの一例を示す図である。なお、同図においては、ICカード100aと通信を行う外部装置の一例として、リーダライタ200がともに示されている。なお、本変形例におけるリーダライタ200は、カード所有者がICカード100aを使用する運用段階において使用されるものであってもよいし、ICカード100aの発行段階において、そのICカード100aに対して発行処理を行う発行装置であってもよい。
具体的には、ICカード100aは、例えば、信号処理の異常を検知した場合に、設定されているセキュリティレベルよりも、セキュリティ強度の高いセキュリティレベルに設定する。以下、ICカード100aの構成例について、説明する。
図7に示すように、ICカード100aは、通信部101と、情報処理部102aと、記憶部103aとを備える。
記憶部103aは、CPUが実行するプログラムと暗号鍵とのほか、情報処理部102aが利用する各種データを記憶する。リーダライタ200などの外部装置との通信に関連して、記憶部103aは、セキュリティパラメータ121と、制御パラメータ122と、セキュリティレベル復帰条件123と、セキュリティレベル遷移条件124aとを記憶する。
記憶部103aは、不揮発性メモリを備えて構成される。記憶部103aが備える不揮発性メモリとしては、例えばEEPROM、フラッシュメモリ、及びROMなどを挙げることができる。
図8は、セキュリティレベル遷移条件124aに含まれる情報の一例を示す図である。図8に示される例では、セキュリティレベル遷移条件124aには、不正アタックの原因と想定される事象について、遷移条件が関連付けて記憶される。以下、不正アタックの原因と想定される事象の例として、重要処理のバイパス検知と、暗号処理の異常検知とを使用した場合について説明を続ける。
重要処理のバイパス検知は、ICカード100aの処理において、重要な処理がバイパスされたことを検知したことである。情報処理部102aは、処理部114が重要な処理をバイパスした場合に、重要な処理がバイパスされたと判定する。
暗号処理の異常検知は、ICカード100aの処理において、コマンドを取得したとき、信号処理を実行したとき、認証処理を実行したときの少なくとも一つの場合に乱数を発生し、発生した乱数に基づいて、エラーが発生したか否かを判定した結果、エラーが発生したと判定したことによって、信号処理の異常を検知した状態である。情報処理部102は、処理部114が行う信号処理の異常を検知した場合に、信号処理の異常を検知したと判定する。
暗号処理の異常検知の遷移条件はレベルを二段階上げる(+2)ことである。この場合、仮に、セキュリティレベルが1である場合には、セキュリティレベルが3に変更される。図7に戻り、説明を続ける。
変形例の情報処理部102aは、セキュリティに関連する機能部として、エラー判定部111aと、処理結果判定部112と、セキュリティレベル設定部113aと、処理部114と、状態変更部115とを備える。
具体的には、エラー判定部111aは、処理部114が、パスワード照合、署名検証などの重要な処理をバイパスしていることを検知した場合に、エラーが発生したと判定する。エラー判定部111aは、エラーが発生したと判定した場合に、重要な処理がバイパスされていることを検知したことを示す情報を含むエラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部113aへ出力する。
また、エラー判定部111aは、処理部114がコマンドを取得したとき、信号処理を実行したとき、認証処理を実行したときの少なくとも一つの場合に、乱数を発生し、発生した乱数に基づいて、エラーが発生したか否かを判定する。エラー判定部111aは、エラーが発生したと判定した場合に、信号処理の異常を検知したことを示す情報を含むエラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部113aへ出力する。
セキュリティレベル設定部113aは、エラー判定部111aが出力したエラー発生情報を取得し、取得したエラー発生情報に含まれるエラーの原因を示す情報を取得する。セキュリティレベル設定部113aは、記憶部103aのセキュリティレベル遷移条件124aを参照し、取得したエラーの原因を示す情報が、セキュリティレベル遷移条件124aに含まれるパラメータのいずれかに該当するか否かを判定する。
具体的には、セキュリティレベル設定部113aは、エラーの原因を示す情報が、重要処理のバイパス検知である場合、CPUの割り込み処理を実行することによって、セキュリティレベルを、遷移方向へ二段階上げる。つまり、セキュリティレベル設定部113aは、記憶部103aに記憶されている制御パラメータ122のカレントセキュリティレベルの設定値を遷移方向に二段階上げる。また、セキュリティレベル設定部113aは、エラーの原因を示す情報が、信号処理の異常検知である場合、CPUの割り込み処理を実行することによって、セキュリティレベルを、遷移方向へ二段階上げる。つまり、セキュリティレベル設定部113aは、記憶部103aに記憶されている制御パラメータ122のカレントセキュリティレベルの設定値を遷移方向に二段階上げる。
このように、記憶部103aに記憶されている制御パラメータ122のカレントセキュリティレベルの設定値を変更することによって、セキュリティレベルを更新できる。カレントセキュリティレベルの設定値が更新された後は、更新された設定値に該当するセキュリティレベルにしたがって、処理が実行される。
ICカード100aが発行されたときには、ICカード100aの用途と、ICカード100aが使用されるアプリケーション環境で要求されるセキュリティ強度とのいずれか一方又は両方に基づいて、セキュリティレベルが設定される。仮に、ICカード100aが発行されたときに、セキュリティレベル1に設定されている場合、エラーの原因にかかわらず、セキュリティレベル4を超えることはない。つまり、エラーの原因を示す情報が、セキュリティレベル遷移条件124aに含まれるパラメータのいずれかに一度該当しただけでは、ICカード100aを再起不能にさせない。
また、セキュリティレベル設定部113aは、後述する処理結果判定部112が出力したセキュリティレベル復帰要求を取得し、取得したセキュリティレベル復帰要求に基づいて、セキュリティレベルを、復帰方向へ変更する。ただし、ICカード100aが発行されたときに設定されていたセキュリティレベルよりもセキュリティ強度が低くなるセキュリティレベルには変更されない。具体的には、ICカード100aが発行されたときに設定されていたセキュリティレベルがセキュリティレベル2であり、且つ現在のセキュリティレベルがセキュリティレベル2である場合には、セキュリティレベル復帰要求を取得した場合でも、セキュリティレベルは変更されない。
ICカード100aが発行されたときには、ICカード100aの用途と、ICカード100aが使用されるアプリケーション環境で要求されるセキュリティ強度とのいずれか一方又は両方に基づいて、セキュリティレベルが設定される。つまり、ICカード100aが発行されたときに設定されたセキュリティレベルよりもセキュリティ強度が低くなった場合には、ICカード100aの用途と、ICカード100aが使用されるアプリケーション環境で要求されるセキュリティ強度とのいずれか一方又は両方を満たさないおそれがある。ICカード100aが発行されたときに設定されていたセキュリティレベルよりもセキュリティ強度が低くなるセキュリティレベルには変更されないことによって、ICカード100aの用途と、ICカード100aが使用されるアプリケーション環境で要求されるセキュリティ強度とのいずれか一方又は両方を満たし続けることができる。
上記のエラー判定部111aと、処理結果判定部112と、セキュリティレベル設定部113aと、処理部114と、状態変更部115との少なくとも一部は、例えばOSにより実現される機能である。
ICカード100aの動作は、図6を適用できる。ただし、ステップS4からステップS8の処理が異なる。
(ステップS4)
セキュリティレベル設定部113aは、記憶部103aに記憶されたセキュリティレベル遷移条件124aに適合する事象が発生したか否かを判定する。具体的には、ICカード100aのエラー判定部111aは、ICカード100aにエラーが発生したか否かを判定する。エラー判定部111aは、ICカード100aにエラーが発生したと判定した場合、エラー発生情報を作成し、作成したエラー発生情報を、セキュリティレベル設定部113aへ出力する。
セキュリティレベル設定部113aは、エラー判定部111aが出力したエラー発生情報を取得し、取得したエラー発生情報に含まれるエラーの原因を示す情報を取得する。セキュリティレベル設定部113aは、記憶部103aのセキュリティレベル遷移条件124aを参照し、取得したエラーの原因を示す情報が、セキュリティレベル遷移条件124aに含まれるパラメータのいずれかに該当するか否かを判定することによって、セキュリティ遷移条件124aに適合するか否かを判定する。
セキュリティレベル設定部113aは、取得したエラーの原因を示す情報が、セキュリティレベル遷移条件124aに含まれるパラメータのいずれにも該当しないと判定した場合、記憶部103aに記憶された制御パラメータ122に含まれるセキュリティレベル遷移方向設定を読み出し、読み出したセキュリティレベル遷移方向設定が可逆であるか否かを判定する。読み出したセキュリティレベル遷移方向設定が可逆でない場合、ステップS3へ移行する。
セキュリティレベル設定部113aは、読み出したセキュリティレベル遷移方向設定が可逆である場合、記憶部103aに記憶されたセキュリティレベル復帰条件123に適合する事象が発生したか否かを判定する。
具体的には、ICカード100aの処理結果判定部112は、記憶部103aに記憶されたセキュリティレベル復帰条件123を参照し、セキュリティレベルを変更した後のトランザクション数、セキュリティレベルを変更してからの経過時間、セキュリティレベルを変更してからの認証成功回数などの処理結果がセキュリティレベル復帰条件を満たすか否かを判定する。処理結果判定部112は、処理結果が、セキュリティレベル復帰条件123を満たすと判定した場合に、セキュリティレベル復帰要求を作成する。処理結果判定部112は、作成したセキュリティレベル復帰要求を、セキュリティレベル設定部113aへ出力する。
セキュリティレベル設定部113aは、処理結果判定部112が出力したセキュリティレベル復帰要求を取得したか否かによって、セキュリティレベル復帰条件123に適合する事象が発生したか否かを判定する。セキュリティレベル設定部113aは、セキュリティレベル復帰要求を取得した場合にはセキュリティレベル復帰条件123に適合する事象が発生したと判定し、セキュリティレベル復帰要求を取得しない場合にはセキュリティレベル復帰条件123に適合する事象が発生していないと判定する。セキュリティレベル設定部113aがセキュリティレベル復帰条件123に適合する事象が発生していないと判定した場合、ステップS3へ移行する。
セキュリティレベル復帰条件123に適合する事象が発生した場合、セキュリティレベル設定部113aは、処理結果判定部112が出力したセキュリティレベル復帰要求にしたがって、記憶部103の制御パラメータ122のカレントセキュリティレベルを復帰方向へ変更する。その後、ステップS1に移行する。
(ステップS8)
セキュリティレベル設定部113aは、取得したエラーの原因を示す情報が、セキュリティレベル遷移条件124aに含まれるパラメータのいずれかに該当すると判定した場合、記憶部103aに記憶された制御パラメータ122に含まれるセキュリティレベルの設定値を、遷移方向へ変更する。その後、ステップS1に移行する。ここで、セキュリティレベルの設定値を、遷移方向へ変更した場合に、セキュリティレベル4を超える場合には、セキュリティレベル設定部113aは、状態変更要求を作成し、作成した状態変更要求を、状態変更部115へ出力する。状態変更部115は、セキュリティレベル設定部113aが出力した状態変更要求を取得し、取得した状態変更要求にしたがって、ICカード100aを再起不能な状態へ遷移させる。
従来のICカードは、発行されたときに設定されているセキュリティレベルを自発的に変更することはできなかった。
このように構成することによって、第1の実施形態の変形例のICカード100aは、セキュリティ強度を動的に変更できる。また、第1の実施形態の変形例のICカード100aは、セキュリティレベルを変更することによって、セキュリティ強度を上げることができるため、ICカード100aの信頼性を向上できる。また、第1の実施形態の変形例のICカード100aは、不正アタックの方法が高度化した場合にも対応できる。
また、第1の実施形態の変形例のICカード100aは、ICカード100aが発行されたときに設定されているセキュリティレベルから、環境の変化に則したセキュリティレベルに変更できる。環境の変化に則したセキュリティレベルに変更できることによって、環境に応じた処理が行われるため、処理時間の環境に則したものとなる。このため、必要以上に、処理が増加することによって、処理時間が長くなることを防止できる。
また、第1の実施形態の変形例のICカード100aは、セキュリティレベルを、遷移方向と復帰方向との両方向に可逆的に変更できるようにも設定できる。この場合、ICカード100aのセキュリティレベルを厳しくした後、トランザクション数を累積した結果がトランザクションの復帰条件値を超える場合と、セキュリティレベル遷移日からの経過日数がセキュリティレベル遷移日からの経過日数の復帰条件値を超える場合とのいずれか一方又は両方を満たさなければ、セキュリティレベルを低くできない。このため、攻撃者にとっては、攻撃に要する時間が増加するため、攻撃することを困難にできる。
また、第1の実施形態の変形例のICカード100aは、コマンドを取得したとき、信号処理を実行したとき、認証処理を実行したときの少なくとも一つの場合に乱数を発生し、発生した乱数に基づいて、エラーが発生したか否かを判定する。このように構成することによって、セキュリティ対策にばらつきを発生させることができるため、仮に、サイドチャネル攻撃が行われた場合に、測定波形に、そのばらつきが加算されるため、セキュリティ強度を向上できる。
[ICチップの構成例]
図9は、第2の実施形態のICチップ300の一例を示す図である。
ICチップ300は、セキュリティに関するパラメータを含むセキュリティレベルを複数種類保持する。複数のセキュリティレベルの各々は、セキュリティ強度が異なる。ICチップ300は、ICチップ300が発行された後に、複数種類のセキュリティレベルのうちのいずれかに設定することによって、セキュリティ強度を動的に変更する。
具体的には、ICチップ300は、例えば、外部から不正アタックを受けたと判断した場合に、設定されているセキュリティレベルよりも、セキュリティ強度の高いセキュリティレベルに設定する。
ICチップ300の構成例については、第1の実施形態で、説明したので、ここでの説明は省略する。また、ICチップ300の動作は、図6を適用できる。
前述した第2の実施形態では、ICチップ300の処理部114が、記憶部103のセキュリティパラメータ121に含まれる複数のセキュリティレベルのうち、読み出したカレントセキュリティレベルと一致するセキュリティレベルを読み出す場合について説明したが、この例に限られない。例えば、ICチップ300の各種レジスタが、セキュリティレベル1からセキュリティレベル4とのうち、設定されたセキュリティレベルに応じて更新されてもよい。
前述した第2の実施形態では、認証処理が10回連続実行された場合と、暗号処理関連のコマンドが100コマンドのうち30コマンド実行された場合とのいずれか一方又は両方によって、異常を検知したとする場合について説明したが、この例に限られない。例えば、異常を検知したとする認証処理の回数と、暗号処理関連のコマンドの実行数については、適宜変更可能である。
前述した第2の実施形態では、各セキュリティレベルに四種類のパラメータが含まれる場合について説明したが、この限りでない。例えば、各セキュリティレベルに一種類から三種類のパラメータが含まれてもよいし、五種類以上のパラメータが含まれてもよい。さらに、セキュリティレベルが、セキュリティレベル1からセキュリティレベル4とセキュリティ強度が高くなるにしたがって、パラメータ数を増加させるようにしてもよい。
前述した第2の実施形態では、ICチップ300の記憶部103に四種類のセキュリティレベルが記憶される場合について説明したが、この限りでない。例えば、ICチップ300の記憶部103に、一種類のセキュリティレベルが記憶されてもよい。この場合、セキュリティレベル設定部113aは、設定したセキュリティレベルに応じて、セキュリティレベルの設定値に記憶する。このように構成することによって、記憶部103の記憶容量を削減できる。
このように構成することによって、第2の実施形態のICチップ300は、セキュリティ強度を動的に変更できる。また、第2の実施形態のICチップ300は、セキュリティレベルを変更することによって、セキュリティ強度を上げることができるため、ICチップ300の信頼性を向上できる。また、第2の実施形態のICチップ300は、不正アタックの方法が高度化した場合にも対応できる。
また、第2の実施形態のICチップ300は、ICチップ300が発行されたときに設定されているセキュリティレベルから、環境の変化に則したセキュリティレベルに変更できる。環境の変化に則したセキュリティレベルに変更できることによって、環境に応じた処理が行われるため、処理時間の環境に則したものとなる。このため、必要以上に、処理が増加することによって、処理時間が長くなることを防止できる。
また、第2の実施形態のICチップ300は、セキュリティレベルを、遷移方向と復帰方向との両方向に可逆的に変更できるようにも設定できる。この場合、ICチップ300のセキュリティレベルを厳しくした後、トランザクション数を累積した結果がトランザクションの復帰条件値を超える場合と、セキュリティレベル遷移日からの経過日数がセキュリティレベル遷移日からの経過日数の復帰条件値を超える場合とのいずれか一方又は両方を満たさなければ、セキュリティレベルを低くできない。このため、攻撃者にとっては、攻撃に要する時間が増加するため、攻撃することを困難にできる。
第2の実施形態のICチップ300によれば、ICカード100と比較して、不正アタックがあったことを確認しやすくできる。つまり、ICチップ300が製造される段階と出荷される段階との間で、ハードウェア又はソフトウェアで対応できる。ICカード100での実装確認は、アタックしてみないと起動せず、軌道した場合でも、不正アタックか否かの判断は難しいが、ICチップ300とすることによって、データシートに記載されるため、確認しやすくできる。
[ICチップの構成例]
図10は、第2の実施形態の変形例のICチップ300aの一例を示す図である。
ICチップ300aは、セキュリティに関するパラメータを含むセキュリティレベルを複数種類保持する。複数のセキュリティレベルの各々は、セキュリティ強度が異なる。ICチップ300aは、ICチップ300aが発行された後に、複数種類のセキュリティレベルのうちのいずれかに設定することによって、セキュリティ強度を動的に変更する。
具体的には、ICチップ300aは、例えば、信号処理の異常を検知した場合に、設定されているセキュリティレベルよりも、セキュリティ強度の高いセキュリティレベルに設定する。
ICチップ300aの構成例については、第1の実施形態の変形例で、説明したので、ここでの説明は省略する。また、ICチップ300aの動作は、図6を適用できる。
このように構成することによって、第2の実施形態の変形例のICチップ300aは、セキュリティ強度を動的に変更できる。また、第2の実施形態の変形例のICチップ300aは、セキュリティレベルを変更することによって、セキュリティ強度を上げることができるため、ICチップ300aの信頼性を向上できる。
また、第2の実施形態の変形例のICチップ300aは、不正アタックの方法が高度化した場合にも対応できる。また、第2の実施形態の変形例のICチップ300aは、ICチップ300aが発行されたときに設定されているセキュリティレベルから、環境の変化に則したセキュリティレベルに変更できる。環境の変化に則したセキュリティレベルに変更できることによって、環境に応じた処理が行われるため、処理時間の環境に則したものとなる。このため、必要以上に、処理が増加することによって、処理時間が長くなることを防止できる。
また、第2の実施形態の変形例のICチップ300aは、セキュリティレベルを、遷移方向と復帰方向との両方向に可逆的に変更できるようにも設定できる。この場合、ICチップ300aのセキュリティレベルを厳しくした後、トランザクション数を累積した結果がトランザクションの復帰条件値を超える場合と、セキュリティレベル遷移日からの経過日数がセキュリティレベル遷移日からの経過日数の復帰条件値を超える場合とのいずれか一方又は両方を満たさなければ、セキュリティレベルを低くできない。このため、攻撃者にとっては、攻撃に要する時間が増加するため、攻撃することを困難にできる。
第2の実施形態の変形例のICチップ300aによれば、ICカード100aと比較して、不正アタックがあったことを確認しやすくできる。つまり、ICチップ300aが製造される段階と出荷される段階との間で、ハードウェア又はソフトウェアで対応できる。ICカード100aでの実装確認は、アタックしてみないと起動せず、軌道した場合でも、不正アタックか否かの判断は難しいが、ICチップ300aとすることによって、データシートに記載されるため、確認しやすくできる。
また、第2の実施形態の変形例のICチップ300aは、コマンドを取得したとき、信号処理を実行したとき、認証処理を実行したときの少なくとも一つの場合に乱数を発生し、発生した乱数に基づいて、エラーが発生したか否かを判定する。このように構成することによって、セキュリティ対策にばらつきを発生させることができるため、仮に、サイドチャネル攻撃が行われた場合に、測定波形に、そのばらつが加算されるため、セキュリティ強度を向上できる。
ここで、「記録部に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録部」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬部、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録部は、CD−ROM等の非一過性の記録部であってもよい。
Claims (13)
- 自ICチップのセキュリティレベルを記憶する記憶部と
所定の場合に、前記記憶部に記憶されている前記セキュリティレベルを変更するセキュリティレベル設定部と、
前記セキュリティレベル設定部により変更されたセキュリティレベルにしたがって、処理を行う処理部と
を備えるICチップ。 - 前記記憶部は、セキュリティレベルに関連して、認証に関するパラメータと、処理に関するパラメータとのいずれか一方又は両方を記憶し、
前記処理部は、前記セキュリティレベル設定部により変更されたセキュリティレベルに関連付けられているパラメータを用いて処理を行う、請求項1に記載のICチップ。 - 前記自ICチップにエラーが発生したか否かを判定するエラー判定部を備え、
前記セキュリティレベル設定部は、前記エラー判定部が、エラーが発生したと判定した場合に、前記セキュリティレベルをアップする、請求項1又は請求項2に記載のICチップ。 - 前記処理部が処理した結果が前記セキュリティレベルをダウンさせる条件である復帰条件を満たすか否かを判定する処理結果判定部を備え、
前記セキュリティレベル設定部は、前記処理結果判定部が前記復帰条件を満たしたと判定した場合に、カレントセキュリティレベルが、前記ICチップが発行されたときに設定されているセキュリティレベルよりも高い場合には前記セキュリティレベルをダウンし、前記ICチップが発行されたときに設定されているセキュリティレベルと同じである場合には前記セキュリティレベルを変更しない、請求項1から請求項3のいずれか一項に記載のICチップ。 - 前記セキュリティレベル設定部が、前記セキュリティレベルをアップした結果、最上のセキュリティレベルを超える場合に、自ICチップを再起不能の状態に変更する状態変更部を備える、請求項1から請求項4のいずれか一項に記載のICチップ。
- 外部装置と通信を行う通信部と、
自ICカードのセキュリティレベルを記憶する記憶部と
所定の場合に、前記記憶部に記憶されている前記セキュリティレベルを変更するセキュリティレベル設定部と、
前記外部装置との通信路設定後の通信にあたり、前記セキュリティレベル設定部により変更されたセキュリティレベルにしたがって、処理を行う処理部と、
を備えるICカード。 - 前記記憶部は、セキュリティレベルに関連して、認証に関するパラメータと、処理に関するパラメータとのいずれか一方又は両方を記憶し、
前記処理部は、前記セキュリティレベル設定部により変更されたセキュリティレベルに関連付けられているパラメータを用いて処理を行う、請求項6に記載のICカード。 - 前記自ICカードにエラーが発生したか否かを判定するエラー判定部を備え、
前記セキュリティレベル設定部は、前記エラー判定部が、エラーが発生したと判定した場合に、前記セキュリティレベルをアップする、請求項6又は請求項7に記載のICカード。 - 前記自ICカードの温度を検出する温度センサーと、前記自ICカードに印加された電圧を検出する電圧センサーと、前記自ICカードに照射されたレーザー光を検出する受光部との少なくとも一つを備え、
前記エラー判定部は、前記温度センサーと、前記電圧センサーと、前記受光部との少なくとも一つが検出した結果に基づいて、エラーが発生したか否かを判定する、請求項8に記載のICカード。 - 前記セキュリティレベル設定部によりセキュリティレベルが変更された後に、前記処理部が処理した結果が前記セキュリティレベルをダウンさせる条件である復帰条件を満たすか否かを判定する処理結果判定部を備え、
前記セキュリティレベル設定部は、前記処理結果判定部が前記復帰条件を満たしたと判定した場合に、前記セキュリティレベルをダウンする、請求項6から請求項9のいずれか一項に記載のICカード。 - 前記セキュリティレベル設定部が、前記セキュリティレベルをアップした結果、最上のセキュリティレベルを超える場合に、自ICカードを再起不能の状態に変更する状態変更部を備える、請求項6から請求項10のいずれか一項に記載のICカード。
- 自ICチップのセキュリティレベルを記憶する記憶部を備えるICチップのコンピュータを、
所定の場合に、前記記憶部に記憶されている前記セキュリティレベルを変更するセキュリティレベル設定部と、
前記セキュリティレベル設定部により変更されたセキュリティレベルにしたがって処理を行う処理部として機能させるためのプログラム。 - 自ICカードのセキュリティレベルを記憶する記憶部を備え、外部装置と通信を行うICカードのコンピュータを、
外部装置と通信を行う通信部と、
所定の場合に、前記記憶部に記憶されている前記セキュリティレベルを変更するセキュリティレベル設定部と、
前記外部装置との通信路設定後の通信にあたり、前記セキュリティレベル設定部により変更されたセキュリティレベルにしたがって処理を行う処理部として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018131499A JP2020009305A (ja) | 2018-07-11 | 2018-07-11 | Icチップ、icカード及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018131499A JP2020009305A (ja) | 2018-07-11 | 2018-07-11 | Icチップ、icカード及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020009305A true JP2020009305A (ja) | 2020-01-16 |
Family
ID=69151893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018131499A Pending JP2020009305A (ja) | 2018-07-11 | 2018-07-11 | Icチップ、icカード及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020009305A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021149789A1 (ja) | 2020-01-23 | 2021-07-29 | デンカ株式会社 | セラミックス-銅複合体、及びセラミックス-銅複合体の製造方法 |
CN117349811A (zh) * | 2023-10-18 | 2024-01-05 | 广州元沣智能科技有限公司 | 一种基于用户身份的信息认证系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005049957A (ja) * | 2003-07-30 | 2005-02-24 | Dainippon Printing Co Ltd | Icカード及びicカードシステム |
JP2010250364A (ja) * | 2009-04-10 | 2010-11-04 | Dainippon Printing Co Ltd | Icチップ及びデータ保護方法等 |
JP2012203800A (ja) * | 2011-03-28 | 2012-10-22 | Sony Corp | 情報処理装置及び方法、並びにプログラム |
JP2016085520A (ja) * | 2014-10-23 | 2016-05-19 | 株式会社東芝 | 携帯可能電子装置 |
-
2018
- 2018-07-11 JP JP2018131499A patent/JP2020009305A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005049957A (ja) * | 2003-07-30 | 2005-02-24 | Dainippon Printing Co Ltd | Icカード及びicカードシステム |
JP2010250364A (ja) * | 2009-04-10 | 2010-11-04 | Dainippon Printing Co Ltd | Icチップ及びデータ保護方法等 |
JP2012203800A (ja) * | 2011-03-28 | 2012-10-22 | Sony Corp | 情報処理装置及び方法、並びにプログラム |
JP2016085520A (ja) * | 2014-10-23 | 2016-05-19 | 株式会社東芝 | 携帯可能電子装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021149789A1 (ja) | 2020-01-23 | 2021-07-29 | デンカ株式会社 | セラミックス-銅複合体、及びセラミックス-銅複合体の製造方法 |
CN117349811A (zh) * | 2023-10-18 | 2024-01-05 | 广州元沣智能科技有限公司 | 一种基于用户身份的信息认证系统 |
CN117349811B (zh) * | 2023-10-18 | 2024-04-05 | 广州元沣智能科技有限公司 | 一种基于用户身份的信息认证系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6373888B2 (ja) | 情報処理装置及び制御方法 | |
JP5740646B2 (ja) | ソフトウェアのダウンロード方法 | |
US9262631B2 (en) | Embedded device and control method thereof | |
JP6659180B2 (ja) | 制御装置および制御方法 | |
CN118051919B (zh) | 数据处理方法、芯片、电子设备以及存储介质 | |
JP2020009305A (ja) | Icチップ、icカード及びプログラム | |
US20060289656A1 (en) | Portable electronic apparatus and data output method therefor | |
JP6622360B2 (ja) | 情報処理装置 | |
WO2001097010A2 (en) | Data processing method and device for protected execution of instructions | |
US9298533B2 (en) | Portable data carrier having operating error counter | |
US9912471B2 (en) | Method for operating a portable data carrier, and such a portable data carrier | |
JP7380603B2 (ja) | セキュアデバイス,コマンド実行管理方法およびicチップ | |
CN103105783A (zh) | 嵌入式元件与控制方法 | |
EP3667533A1 (en) | Method for securing a system in case of an undesired power-loss | |
US10853476B2 (en) | Method for the security of an electronic operation | |
JP2020013249A (ja) | Icチップ及びicカード | |
JP5019210B2 (ja) | 携帯可能電子装置、icカード、および携帯可能電子装置の制御方法 | |
JP5740644B2 (ja) | 電子機器装置、そのペアリング処理方法及びペアリング監視方法 | |
JP7559492B2 (ja) | Icカード、icカードのロギング情報処理方法、及びプログラム | |
JP5293113B2 (ja) | 半導体装置、半導体装置の制御方法および半導体装置の制御プログラム | |
JP2014052955A (ja) | セキュリティトークン、データ改竄検知方法およびコンピュータプログラム | |
JP2008033549A (ja) | 携帯可能電子装置、icカードおよび携帯可能電子装置の重要データ隠匿方法 | |
JP5895271B2 (ja) | ソフトウェアのダウンロード方法 | |
WO2023174755A1 (en) | Method to prevent anti-replay attack | |
JP2004102885A (ja) | 非接触icカードリーダ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210623 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220322 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220405 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220518 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220726 |