暗号通信装置
【課題】異常な暗号特有データを検出することにより、データ保護と外部進入に対して解析困難な応答をして、耐タンパ性を向上する。
【解決手段】この発明の暗号通信装置は、通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する際に、一連のデータのやり取りを示す同一通信トランザクション内で認証用チャレンジデータとして時刻情報を受信した回数であるチャレンジデータ受信回数をカウントするチャレンジデータカウント手段と、チャレンジデータカウント手段がカウントしたチャレンジデータ受信回数を、予め装置内に記憶している最小チャレンジカウント値と比較し、比較結果に基づいて、不正終了の処理を行う制御手段とを備えて、執拗な攻撃者によるアクセスを早期に、容易に検出する。
【解決手段】この発明の暗号通信装置は、通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する際に、一連のデータのやり取りを示す同一通信トランザクション内で認証用チャレンジデータとして時刻情報を受信した回数であるチャレンジデータ受信回数をカウントするチャレンジデータカウント手段と、チャレンジデータカウント手段がカウントしたチャレンジデータ受信回数を、予め装置内に記憶している最小チャレンジカウント値と比較し、比較結果に基づいて、不正終了の処理を行う制御手段とを備えて、執拗な攻撃者によるアクセスを早期に、容易に検出する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、暗号通信におけるデータの特殊性に着目して、検出し、あるいは相手を幻惑して、秘密情報を読み出す困難性(耐タンパ性)を向上させる安全な装置を容易に得るものである。
【背景技術】
【0002】
暗号通信分野における認証方法としては数多くの提案がなされているが、通常、ある秘密情報を知っている者を本人と(検証者が)確かめることで、認証が行われる。例えば、特開2000−182102号公報に示された従来の認証方法では、あらかじめ共通鍵をA(証明者側暗号通信装置)とB(検証者側暗号通信装置)の双方で保持しておき、以下の手順で相手を認証していた。
(1)Aは乱数R1を生成し、Bに乱数R1を送信する。
(2)Bは乱数R1と共通鍵から認証子1を生成し、また、乱数R2も生成する。そして、認証子1と乱数R2をAに送信する。
(3)Aは乱数R1と共通鍵から認証子を生成し、Bから受信した認証子1と一致するかを検査する(これによりAはBを認証)。
(4)次に、Aは乱数R2と共通鍵から認証子2を生成し、認証子2をBに送信する。
(5)Bは乱数R2と共通鍵から認証子を生成し、Aから受信した認証子2と一致するかを検査する(これによりBはAを認証)。
【0003】
また、共通鍵(秘密鍵)生成のために複数の情報を別々に保持しておき、共通鍵(秘密鍵)を共有せず、認証時や鍵共有時に共通鍵(秘密鍵)を生成することで認証する方法も開示されている。さらに、零知識証明技術に基づいた暗号認証方法(Fiat−Shamir法等)や、公開鍵と秘密鍵の2つの非対称なデータ暗号鍵を用いる方法(公開鍵暗号方式)、即ち、暗号化を公開された鍵(あるいは秘密鍵)で行い、秘密鍵(あるいは公開鍵)で復号化を行う方法も様々な装置で使用されている。
これらの認証方法が搭載された暗号通信装置では、通常、秘密情報(暗号処理で用いる鍵等)を不揮発性メモリに記録し、これをマイクロプロセッサがアクセス制御することで、容易な読み出しを不可能とする耐タンパ性を実現していた。例えば、モバイルコマースシステムの基地局、携帯電話とスマートカード等で構成される複数の暗号通信装置やノンストップ自動料金収受システムの路側機と車載器及びスマートカードで構成される複数の暗号通信装置等では、所定のコマンドを送信(または受信)し、これに対するレスポンスを受信(または送信)する、という方法でアクセスが行われる。
このようなコマンドとレスポンスは、暗号通信装置間の通信ラインを介して行われるが、通信ラインは外部から物理的にアクセスすることが比較的容易であるため、通信ラインを流れるデータを外部から観測されたり、不正データを意図的に挿入されたりする可能性が高い。さらに近年、故障解析、タイミング解析、電力解析、テンペスト(過渡的電磁気パルス解析)などの各種解析/攻撃法が提案されたことにより、不揮発性メモリ上の秘密情報は読み出せないとする考え方が覆されはじめている。
【特許文献1】特開2000−182102号公報
【特許文献2】特開平10−154976号公報
【特許文献3】特開2001−16655号公報
【特許文献4】特開2001−282739号公報
【特許文献5】特開2000−47987号公報
【特許文献6】特開平11−8702号公報
【特許文献7】特開平3−139717号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
従来の暗号通信装置は以上のように構成されており、先ず読み出しが困難になるように秘密情報を不揮発性メモリに持っているが、これらへのアクセスと解析の機会が増えて、電力波形解析や、その間の処理時間解析により、秘密情報を解く鍵情報が流出する危険性が増して、システムへのなりすまし進入や、その結果によるデータの改ざん等が発生する可能性が高くなり、装置またはシステムが安全であるとは言えなくなっているという課題がある。
【0005】
この発明は上記の課題を解決するためになされたもので、暗号データ及び関連データに着目し、暗号通信システムに外部からアクセスしようとするハッカーに対して、早期に異常な暗号特有データを比較的簡易に検出することにより、内部の情報保護及び外部進入に対して解析困難な応答をしたり、正常でない応答を正常であるかのように応答することにより、耐タンパ性を向上することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る暗号通信装置は、
以下の要素を有することを特徴とする
(1)少なくともデータフィールドを有する通信データの送受信を行う通信手段
(2)通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する暗号処理手段
(3)通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する際に、不正データを受信した回数である不正データ受信回数をカウントする不正データ検出・カウント手段
(4)不正データ受信回数を、予め装置内に記憶している最小不正データカウント値と比較し、比較結果に基づいて、不正終了の処理を行う制御手段。
【0007】
本発明に係る暗号通信装置は、
以下の要素を有することを特徴とする
(1)少なくともデータフィールドを有する通信データの送受信を行う通信手段
(2)通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する暗号処理手段
(3)通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する際に、通信トランザクションが不正に終了した回数である不正終了回数をカウントする不正終了・検出カウント手段
(4)不正終了回数を、予め装置内に記憶している最小不正終了カウント値と比較し、比較結果に基づいて、暗号通信装置内で記憶する秘密情報に対する情報資産保護の処理を行う制御手段。
【0008】
本発明に係る暗号通信装置は、
以下の要素を有することを特徴とする
(1)少なくともデータフィールドを有する通信データの送受信を行う通信手段
(2)通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する暗号処理手段
(3)通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する際に、同一通信トランザクション内で認証用チャレンジデータを受信した回数であるチャレンジデータ受信回数をカウントするチャレンジデータカウント手段
(4)チャレンジデータ受信回数を、予め装置内に記憶している最小チャレンジカウント値と比較し、比較結果に基づいて、不正終了の処理を行う制御手段。
【0009】
この発明に係る暗号通信装置は、共通鍵または秘密鍵を用いて受信データを暗号あるいは復号する通信装置において、
受信データ、あるいは受信データを上記鍵を用いて復号した結果に対して、所定の値と比較して秘密通信関連データの不正を検出し、かつ設定回数以上の不正受信回数を検出する不正データ検出・カウント手段を備えて、設定回数以上の不正な受信データに対してはこれを破棄あるいは無視し、または自通信装置内の情報を保護するようにした。
【0010】
また更に、不正データ検出・カウント手段が持つ不正データの検出基準として、データのレングスと、データのフィールド・レングスとを設け、かつカウント基準をシステムで可変指定するようにした。
【0011】
また更に、不正データ検出・カウント手段は、設定回数以上の不正な受信データに対しては、装置として不正終了を行ってこの不正受信データの送信者に意図的なダミーデータを応答指示する、不正終了検出・カウント手段とした。
【0012】
また更に、不正データ検出・カウント手段は、設定回数以上の不正な受信データに対しては、正常な鍵とは異なるダミー鍵を用いて復号し、この復号結果のデータを元の不正受信データの送信者に応答指示するようにした。
【0013】
また更に、不正データ検出・カウント手段は、チャレンジデータに対しては鍵を用いずに受信データを直接に所定の値と比較し、また不正受信回数を調べるチャレンジデータ検出・カウント手段とした。
【0014】
また更に、不正データ検出・カウント手段を省き、特定データ部分に対して鍵を用いて復号した結果が正常であると、送信者に対する該特定データの返送時に予め取り決めた順序に変更して送るようにした。
【0015】
また更に、通信トランザクションが正常に終了すると、設定回数をリセットして不正回数のカウントを初期化するようにした。
【発明の効果】
【0016】
この発明によれば、チャレンジデータ検出・カウント手段を備えたので、執拗な攻撃者によるアクセスを早期に、容易に検出できる効果がある。
【発明を実施するための最良の形態】
【0017】
実施の形態1.
まず、この発明の主旨である耐タンパ性向上の概要を説明する。
従来の暗号通信装置では、秘密情報を用いて演算を行う際に、電力波形や処理時間など攻撃者に有益な情報が外部にもれてしまい、その結果、偽造被害が増加するという不具合があった。さらに詳しく説明すると、例えば、攻撃者は暗号通信装置内の電源ラインを観測しつつ、通信ラインから不正データを意図的に挿入して、秘密情報を用いた演算を行う際の電力波形や処理時間などを解析することで秘密情報を暴露し、なりすましや改ざん、通信の回線盗聴などの悪事を働く可能性を秘めていた。とすれば、様々な外部脅威から充分なセキュリティを確保しつつ、耐タンパ性に優れた暗号通信装置を得るためには、以下のような対抗策を講じるようにすればよい。本発明では、(A)〜(C)の具体的対抗策について述べる。
(A)不正データの意図的挿入等を検出し、攻撃者に有益情報をもらさない。
(B)攻撃者に意図的に誤った情報を流して、解読を不可能にする。
(C)情報フロー(通信手順や認証データのデータ構造等)を複雑にする。
【0018】
以下、上記概念の(A)の不正侵入を検出し、読み出しを阻止する形態を実施の形態1として、図1〜図4を用いて説明する。
図1は、この発明の実施の形態1における暗号通信装置の構成と動作を示す図である。
図3は、暗号通信装置間の通信データ構成を示す図、図4は、通信データ内の暗号化されたデータ(または署名データ)を復号する(または署名検証する)手順や平文データを署名生成する手順を示す図である。
図1において、1は通信手段で、少なくともレングスフィールドとデータフィールドを有した通信データ9の送受信を行う。例えば、スマートカード用の接触式インタフェースや非接触式インタフェース、セントロニクス社準拠のパラレルインタフェースやRS232Cなどのシリアルインタフェース、IEEE1394やUSB(Universal Serial Bus)などの有線インタフェース、赤外線通信、Bluetooth(登録商標)、無線LANやDSRC(Dedicated short Range Communication)、あるいは携帯電話に用いられているような無線インタフェースや専用のインタフェースなどが用いられる。2は制御手段で、通信手段1で受信した通信データ9を解読するとともに(または送信する通信データ9を生成するとともに)装置全体を制御する。例えば、CPUやロジック回路、あるいは必要に応じてROMやRAMなどから構成される。3は不揮発性メモリで、暗号処理時に使用する鍵等の秘密情報を記憶する。4は乱数を生成する乱数生成手段で、後の実施の形態では更に他の機能もある。5は通信データのデータフィールド内のデータを暗号あるいは復号処理する(または署名生成あるいは署名検証する)暗号生成・復号手段、6は通信データのデータフィールド内のデータを暗号あるいは復号処理する際に通信データ9の不正データを検出して、その不正データを受信した回数である不正データ受信回数を計数し、所定回数範囲にあるかを調べる不正データ検出・カウント手段、8は装置全体としての暗号通信装置であり、本実施の形態1では、通信データ9の受信を通じて、送信側を検証する構成の例を示している。
【0019】
また、9は通信データであり、図3(a)に概念、図3(b)にいくつかの例で示すように、少なくともレングスフィールド10とデータフィールド11から構成されており、データフィールド11の長さは可変である。レングスフィールド10には、認証データ等が格納されるデータフィールド11のレングス値が格納されている。なお、データフィールド11内には、図3(b)に示すように、暗号化されたデータ(暗号文)、暗号化されていないチャレンジデータとしての平文データ、あるいは両者が混在したデータのいずれかで構成される。
【0020】
次に、動作を図1(b)と図4を用いて説明する。
まず、送信側の暗号通信装置8では、装置全体を制御する制御手段2が、例えば、以下のステップ(以下、Sと略記)1ないしS4の手順にて受信側の暗号通信装置8に向けて通信データ9を送信する。
S1:乱数生成手段4用いて乱数R1を生成する。
S2:次に、受信側の暗号通信装置8内に存在する(アプリケーションの種類を示す)アプリケーションIDと上記乱数R1を連結する。
S3:連結したデータを暗号生成・復号手段5に入力して暗号化する。この時の暗号生成用の鍵としては、不揮発性メモリ3内に記憶している秘密情報Hを使用する。
S4:そして、送信側の暗号通信装置8では、通信手段1を通して受信側の暗号通信装置8に通信データ9を送信する。ここで、通信データ9のレングスフィールド10にはデータフィールド11のデータ長を示す「24」、データフィールド11には24バイトの「(暗号化された)アプリケーションIDと乱数R1、(暗号化されていない)アプリケーションID」が格納されている。
【0021】
一方、データ受信側となる検証側の暗号通信装置8では、図1(b)に示すように、装置全体を制御する制御手段2が、例えば、以下の手順でデータを処理する。
S20:通信手段1を介して通信データ9を受信する。
S21:通信データ9が不正データであるかどうかを検出する。
S22:不正データと判断した場合には(S30,S31,S32)、不正データ検出・カウント手段6にて不正データの受信回数を計数し(S22−1〜S22−3)、
S23:正常データと判断した場合には、正常処理を実行する。
ここで、不正データであるかどうかを検出するには、例えば、図1(b)のようなフローにすればよい。まず、通信データ9のレングスフィールド10の値とデータフィールド11のデータ長を通信手段1あるいは制御手段2で比較し、一致していればS31に進み、一致していなければS22−1に進む。そして、S31では、レングスフィールド10の値と予め装置内に格納している最小レングス値とレングスフィールド10の値を比較し、レングスフィールド10の値が最小レングス値以上であればS32へ進み、レングスフィールド10の値が最小レングス値未満であればS22−2へ進む。ここで、最小レングス値とは、正常な通信データ9のやりとりにおけるデータフィールド11の最小データ長に相当する値のことで、通信トランザクション中の、あるいはトランザクション毎の値を指す。S30又はS31のいずれかの判断を省略する場合も有効である。
なお、最小レングス値は予め求めておくことができ、テーブル形式などで装置内の不揮発性メモリ3や制御手段2等に格納される。
【0022】
そして、S32では、データフィールド11を制御手段2で解読しながら不正データかどうかを判定する。例えば、以下の基準を適用する。
1)平文データであれば、アプリケーションIDなどの所定のデータが存在するか否かを判定する。
2)予め証明者側と検証者側とが規定したデータが正しく存在するか等を判定する。
一方、暗号化(あるいは復号化)データであれば、図4(a)や図4(b)に示すように、データフィールド11内の暗号化データ(あるいは復号化データ)を不揮発性メモリ3内に格納している秘密鍵12から復号化データ(あるいは暗号化データ)を生成する(S13a,13b,13c)。規定したデータが正しく存在しているか(例えば、送信した乱数との一致や所定の管理番号が一致するか等)を判定したり、あるいは署名検証した結果が正当かどうか等を判定する(S32で、詳しくは、S32a,32b,32c等)。
一方、S32で不正データを検出しなくて、不正のない通信データ9と解釈できた場合は、例えば、図4(a)の動作フローを用いて復号化されたアプリケーションIDとデータフィールド11内の暗号化されていないアプリケーションIDを比較し、一致していれば正しい送信者であることを認証する。
なお、暗号生成・復号手段5を使用したフローとしては、暗号化データを復号してから、復号化データに対して署名生成したり、暗号化データを署名検証(S13aの復号化データに相当)するようにしてもよい。さらに、図4(b)のように、復号化データから暗号化データを生成してもよく、また、図4(c)に示すように、平文データを署名生成処理するようにしてもよい。
【0023】
次に、S24では、時間内に不正データと検出した回数が装置内に予め設定している最小不正データカウント値(例えば、3)以上か否かを不正データ検出・カウント手段6で調べて、設定回数より少なければ、不正終了(1)のS25へ進む。
最小不正データカウント値とは、不正データの受信許容回数を示しており、守るべき情報資産に応じた強度と考えてよい。例えば、重要な情報資産であれば3程度、通常の情報資産であれば5程度を、制御手段2や不揮発性メモリ3等に設定しておく。そして、設定回数以上の検出回数であれば、不正終了(2)のS26へ進む。
そして、S25の不正終了(1)では、後述するように、暗号生成・復号手段5の入力データとしてダミーデータを用いて処理したり、ダミー鍵を用いて処理したり、あるいはデータ破棄の例として、復号処理(あるいは暗号処理または署名処理)をしないようにしたり、データ長不一致エラー、認証エラー、不正データエラーのようなレスポンス等を出力したりする。
一方、S26の不正終了(2)の場合には、装置内データ保護の例として、不揮発性メモリ3内の秘密情報を消去したり、暗号通信装置8が使用できないようにブロックしたり、あるいは、他の装置内情報の保護の例として、特定コマンドと特定データを受信後にのみ正常動作が可能になるようにする等、情報資産に応じて暗号通信装置内で記憶する秘密情報に対する外部からの読み取りを制限する処理を実施する。これらは、例えば、攻撃者が通信ラインから不正データを意図的に挿入したり、装置内の信号を観測することによる、秘密情報を用いた演算を行う際の電力波形/処理時間などの解析や情報フローの解読を未然に防ぐもので、特に、不揮発性メモリ3に記憶している秘密情報を読み出すような攻撃や解読に対する困難性を向上させたものである。
【0024】
以上のように、本実施の形態においては、通信データの不正データ受信回数を計数し、不正の場合は、更にその回数が設定範囲内か調べる不正データ検出・カウント手段を備えたので、情報資産に応じて攻撃者の不正アクセスに対する強度を設定でき、利便性に優れ、また、簡易に不正アクセスを見抜ける暗号通信装置が得られる。
【0025】
なお、この実施の形態では、本発明の主旨を逸脱しない範囲で種々の変更や組み合わせが可能である。例えば、図1(b)のS21の構成(不正データの検出)をS30,S31,S32を組み合わせた構成ではなく、図5(a),(b),(c)のような単独の構成としてもよい。あるいは、S31とS30を組み合わせた構成、またはS30とS32を組み合わせた構成などにしてもよい。また、S30とS31とS32の組み合わせ等におけるステップの順番についても特に限定されない。また、図2(c)や(d)のように、利便性を考慮して設定回数未満のときには正常処理S23として、設定回数以上のときには不正終了(1)や不正終了(2)を実施するようにしてもよい。
さらに、一方向性関数のハッシュ値をデータフィールド11内に設けたり、あるいはデジタル署名を施して不正データを検証するようにしてもよい。
さらに、通信トランザクション毎にセッション鍵を変更したり、あるいは通信データの伝送エラーを検出するために水平冗長符号(LRC)や巡回冗長検査(CRC)を加えるようにしてもよい。
また、データフィールド11内の暗号化(あるいは復号化)されたデータまたは平文データに対して復号化(あるいは暗号化、署名生成または署名検証)する際には、複数の暗号生成・復号手段5を有して高速に処理するようにしてもよい。
さらに、上述した実施の形態では、最小不正データカウント値を制御手段2や不揮発性メモリ3内に記憶しているように記述したが、装置内であればよく、特に限定しない。
また、「〜より小さい場合」を「〜以下の場合」、あるいは「〜以上の場合」を「〜より大きい場合」のような範囲設定としてもよい。
【0026】
また、本実施の形態に示す暗号通信装置8は、相互認証、本人認証、データ認証等、暗号と通信を必要とする分野であれば、特に用途や構成を限定せず種々の変更が可能である。例えば、受信認証を複数回繰り返す構成にしてもよい。
また、認証時には、共通鍵を用いる方法や公開鍵を用いる方法(署名生成・署名検証含)等を採用してもよく、特に限定しない。加えて、通信データ9を一方の暗号通信装置8内で暗号化してから他方で復号化するのではなく、復号化してから暗号化するようにしてもよく、また、公開鍵方式で乱数を交換後に、その乱数をセッション鍵として暗号通信するようにしてもよい。
さらに、一方の暗号通信装置8で平文データを受信後に一方向性関数でハッシュ値を求めて、このハッシュ値に対する署名生成処理を行い、他方の暗号通信装置8で署名検証するようにしてもよく、特に限定しない。加えて、上述した実施の形態では、アプリケーションIDで認証するようにしたが、乱数での認証や契約情報などを認証するようにしてもよく、特に限定しない。
上述した動作フローは、認証フェーズの一例を示したものであり、適宜追加したり変更したりすることができる。
【0027】
また、図1の構成において、図面左側の暗号通信装置8を携帯電話とし、図面右側の暗号通信装置8をスマートカードと想定した場合には、図示しない携帯電話用基地局やクレジットカード認証局との通信手段や通信フローを適宜追加することができる。加えて、図1においては、説明を容易にするために、暗号通信装置8において、受信データを検証する場合を例として説明したが、本発明の暗号通信装置8と他の暗号通信装置を組み合わせるようにしてもよい。
【0028】
また、図6に示すように、正常処理後に不正データ検出・カウント手段6のカウント値を初期化するようにしてもよい。即ち、同図において、S20の通信データ9を受信後に、S34の不正データ検出処理などの様々な処理を施し、S23の正常処理が実施されて、通信トランザクションが正常に終了した場合には(S35でYes)、不正データ検出・カウント手段6のカウント値を初期化して(S36)、正常終了するようにしてもよい。これは不正アクセス以外の、例えば、通信状態の不安定さなどに起因する異常データに対して冗長性をもたせたものであり、セキュリティを確保しつつ装置の利便性を向上させたものである。
この場合にも、種々の変更が可能である。例えば、通信トランザクションが正常に3回連続終了した場合に、不正データ検出・カウント手段6を初期化するようにしてもよく、また、正常トランザクション1回毎に不正データ検出・カウント手段6を1つダウンカウントしたり、連続した正常トランザクション2回毎に不正データ検出・カウント手段6を1つダウンカウントしたり、あるいは通信トランザクション10回中7回が正常であれば初期化するような処理も、S36に含めるものとする。さらに、S36をS23とS35の間に入れたり、S37の後に入れたり、適宜変更可能である。
【0029】
加えて、図1(b)に示すように、S22の不正データ受信回数を計数する際には、図5に示すように、不正データの種類に応じた計数(S22−1ないしS22−3)をするようにしてもよい。例えば、レングスフィールド10の値とデータフィールド11のデータ長不一致回数(S22−1)、レングスフィールド10が最小レングス値より小さい回数(S22−2)及び不正データそのものを受信した回数(S22−3)等を不正データ検出・カウント手段6でそれぞれ計数して調べるようにしてもよい。この場合には、不正データ検出・カウント手段6の機能が強化され、対応したきめ細かな処理が可能になる。
さらに、当事者しか分からないようなコマンドを設けて、上記不正データ検出・カウント手段6の値を読み出せるようにしてもよいことは言うまでもない。
さらに、図3(b)の点線付加部分に示すように、通信データ9においてコマンドフィールド38をレングスフィールド10やデータフィールド11の先頭に加えるようにしてもよい。コマンドフィールド38を設けることは、互いに定めた固定的な通信トランザクションを汎用的にできるという効果がある。例えば、先頭のコマンドフィールド38を制御手段2等で解読することで、現在のフェーズが認証データであることや特定データの読みだし要求等であることが分かり、より利便性に優れた装置となる。
【0030】
また、上述した例では、最小不正データカウント値を固定としているが、通信状態/状況に対応したり、あるいはデバックやメンテナンス時へ利便性を考慮して、図7に示すような動作としてもよい。即ち、S20の通信データ9の受信後、コマンドフィールド38を解釈し、最小不正データ検出・カウント値を変更するコマンドであれば、S39で装置内に格納している最小不正データ検出・カウント値を変更できるようにしてもよい。この場合には、当事者しか分からないようなコマンドにしたり、あるいは暗証番号による認証や署名検証することで、セキュリティを確保した方が望ましい。また、受信したデータフィールド11のデータを暗号処理(あるいは復号処理または署名処理)する場合には、受信データを全て暗号処理してから制御手段2にて解読しても、暗号処理しながら解読するようにしてもよく、特に限定しない。
【0031】
以上のように、不正データ検出・カウント手段を備えたので、システムの重要度に応じて容易に不正アクセスを検出できる効果がある。
【0032】
実施の形態2.
以下、本発明の概念(B)である攻撃者に意図的に誤り情報を与える形態を実施の形態2として、図1及び図8を用いて説明する。
具体的なシステムとしては、駐車場システムがあり、図1(a)の暗号通信装置8が路側機としてある。これに対して、図の右側の交信先で、他の図示と同じ暗号通信装置8が車載器に相当する。また、図1(a)において、不正データ検出・カウント手段に換えて、不正終了検出・カウント手段40を用いた構成となっている。その他の構成要素は、図1(a)に示す通りである。
駐車場システムは、車両の車種情報や車両が通過した時刻などの料金計算に必要な情報と、クレジットカード番号等の決済に必要な利用者の情報とを車両に装着されている車載器と料金所に設置されている路側機との間で無線通信することにより、料金所でも停止することなく車両の通行を可能とするシステムである。暗号通信装置8である路側機と、図示していないが、同様の構成を持つ車載器は、相互に認証するとともに、決済情報を含む様々なデータをやり取りするため、セキュリティの確保は必須である。
【0033】
本実施の形態における動作フローは、図1(b)に換えて例を図8(a),(b)に示すものとなる。
動作としては、実施の形態1における動作とほぼ同様で、まず、車載器側の暗号通信装置8から制御手段2が実施の形態1で説明したS1ないしS4の処理を行って、図1(a)の路側機の暗号通信装置8に通信データ9を送信してくる。
一方、データ受信側となる路側機の暗号通信装置8では、図8(a)に示すように、装置全体を制御する制御手段2が、以下の手順でデータを処理する。
S20:通信データ9を受信する。
S21:通信データ9の不正データ検出を行う。
不正データが検出された場合には、不正終了(S42)に進み、検出されない場合には、正常処理(S23)に進む。ここで、S42の不正終了処理とは、例えば、攻撃者へのエラー処理後の送信のことを指し、具体的にはデータ長不一致エラーや認証エラー、あるいは不正データエラーのようなレスポンス等を出力し、これに基づいて制御手段2により攻撃者へ意図的に誤り情報を返送する。さらには、後述するように、暗号生成・復号手段5の入力データとしてダミーデータを用いて処理したり、ダミー鍵を用いて処理した結果を攻撃者へ返送したり、あるいは復号処理(あるいは暗号処理または署名処理)をしないようにしたりしてもよい。
【0034】
意図的なダミー情報と返送について説明する。
図9は、不正終了42の具体的な例42aと42bの動作を示す図である。
図9では、実施の形態1の検出結果に対しても、意図的な誤情報を送信できることも示しているので、不正データ検出・カウント手段6の出力値が最小不正データカウント値より大きい場合、あるいは不正終了検出・カウント手段40の出力値が最小不正終了カウント値より大きい場合、あるいは後述のチャレンジデータ検出・カウント手段50の出力値が最小チャレンジカウント値より大きい場合には、受信データ以外のダミーデータを用いて復号処理(あるいは暗号処理または署名処理)する動作も示している。
図9において、60は不正終了検出・カウント手段40の出力値と最小不正終了カウント値等を比較するステップ、61はデータフィールド11内のデータを用いて復号処理(あるいは暗号処理または署名処理)するステップ、62はダミーデータを用いて復号処理するステップである。
【0035】
動作は、以下のようになる。
まず、通信データ9を受信した後(S20)、不正終了検出・カウント手段40の出力値と最小不正終了カウント値等を比較し(S60)、規定の最小不正終了カウント値以上等の場合には、異常として、データフィールド11内のデータではなくダミーデータを用いて復号処理し(S62)、不正終了検出・カウント手段40の出力値が最小不正終了カウント値等より小さい場合には、正常であるとして、データフィールド11内の正常データで復号処理する(S61)。
なお、S62の処理では、図9(b)に示すように、暗号生成・復号手段5には正常データとは異なるダミーデータ63を入力し、不揮発性メモリ3に格納している秘密鍵12を用いて復号化データ13を得て、それを攻撃者側に送信するようにしている。
【0036】
ここで、ダミーデータについてもう少し詳細に説明する。
ダミーデータとは、攻撃者に対し、あたかも正常のデータを用いて復号処理(あるいは暗号処理または署名処理)しているようにみせかけるもので、例えば、正常な受信データを1バイトずらしたり、反転させたデータを使用したり、あるいは制御手段2内のメモリ内容そのものをダミーデータとしたりする。または、予めダミーデータを不揮発性メモリ3に格納しておき、上記データを使用したり、複数のダミーデータを切り替えたり、あるいは図示しないカウンタ手段の出力値をダミーデータとしてもよい。
さらに、上述した正常な受信データを1バイトずらしたものに、予め不揮発性メモリ3に格納しておいたダミーデータを排他的論理和演算してから最終的なダミーデータとしたり、様々な演算や加工を施してダミーデータとすることもできる。加えて、復号化データ13自身をダミーデータとして使いまわしてもよい。
なお、更に、S60の不正データを検出する場合には、3つの比較を全て実施したり、あるいはいずれかの一つにしたり、あるいはダミーデータとして乱数発生手段4の出力を用いたり適宜変更が可能である。
【0037】
S43では、不正終了の回数を計数して調査する不正終了検出・カウント手段40が格納している最小不正終了カウント値と比較して調べて、S42で検出した不正終了の回数が最小不正終了カウント値より大きい場合には、S44の不正終了処理へ進み、最小不正終了カウント値が最小不正終了カウント値以下の場合には、S45の未処理へ進む。ここで、S45の未処理とは、通信データ9の受信待機状態にもどることを意味している。
S44の不正終了処理(情報資産保護の処理)では、不正終了回数が所定の値を超えたため、不揮発性メモリ3内の秘密情報を消去したり、暗号通信装置8が使用できないようにブロックしたり、あるいは特定コマンドと特定データを受信後にのみ正常動作が可能になるようにする等、情報資産に応じて暗号通信装置内で記憶する秘密情報に対する外部からの読み取りを制限する処理を実施する。これは、受信側のブロックである。
【0038】
本実施の形態においては、通信トランザクションが不正に終了した回数を計数する不正終了検出・カウント手段と、これに基づいて攻撃者に意図的な誤り情報を流す制御手段とを備えたので、攻撃者のデータ解読を困難にするという耐タンパ性に優れた暗号通信装置が得られる。
【0039】
なお、この実施の形態においても種々の変更が可能で、例えば、実施の形態1で述べたような内容の適用や種々の変更が可能である。さらに、実施の形態1と実施の形態2を組み合わせることも可能である。また、図8(b)に示すように動作させることも可能である。即ち、通信データ9を受信した後、不正データか否かをS21で検出し、不正データであれば、さらに、不正終了検出・カウント手段40の出力値が最小不正終了カウント値より大きい場合にはS44の不正終了処理へ進み、最小不正終了カウント値が最小不正終了カウント値以下の場合には、S42の不正終了へ進むようにしてもよい。
【0040】
また、上述した例では、アプリケーションIDを解読することで不正データかどうかを区別したが、検証できるデータであれば特に限定しない。例えば、レングスフィールド10の値を暗号化データの中に格納してチェックしたり、一方向性関数を用いた認証子や署名データ、あるいは相互の乱数や読み出すレコード番号の値など特に規定しない。
いずれにしても、認証データや更新データのやり取り等を示す一連の通信トランザクションが正常に終了していない回数を計数し、予め格納している許容回数以上かどうかを判定する比較手段を有していれば、種々の変更が可能である。例えば、通信トランザクションが3回正常に終了した場合には、不正終了検出・カウント手段40を初期化するようにしてもよい。
【0041】
以上のように、不正終了を行って、装置として攻撃者にダミーデータを返送するので、攻撃者によるデータ解読を困難にする効果がある。
【0042】
実施の形態3.
以下、本発明の概念(A)の不正侵入の限定された形態を実施の形態3として、図1(a)と図10を用いて説明する。
本実施の形態では、同一通信トランザクション内(認証データや更新データのやり取り等を示す一連の通信トランザクションを指す)で認証用のチャレンジデータ(例えば、乱数、ある規定値のハッシュ値、カウンタ値、時刻、あるいは暗証番号等)の受信回数を検出し、規定値と比較するチャレンジデータ検出・カウント手段とを備えた構成としている。即ち、図1(a)において、不正データ検出・カウント手段に換えて50のチャレンジデータ検出・カウント手段を設けており、その他の要素は、図1(a)の通りである。
【0043】
次に、動作について、図10の動作フローを用いて説明する。
S33のスタートから始まり、通信データ9を受信した後(S20)、通信データ9を解釈し、認証用のチャレンジデータであれば、上記チャレンジデータの受信回数をチャレンジデータ検出・カウント手段50で計数する(S52)。
そもそもチャレンジデータ受信回数が異常に多いことは、相手が攻撃者である可能性が高いことを示している。従って、チャレンジデータ検出・カウント手段50の検出回数出力値と予め装置内に記憶されている最小チャレンジカウント値をS53で比較し、規定最小チャレンジカウント値より小さければS23の正常処理に進み、最小チャレンジカウント値以上であればS44の不正終了処理に進む。
ここで、最小チャレンジカウント値とは、一連の通信トランザクションにおけるチャレンジデータの受信許容回数を示しており、守るべき情報資産に応じた強度と考えてもよい。例えば、重要な情報資産であれば2程度、通常の情報資産であれば5程度を設定しておき、攻撃者による不正なチャレンジデータ攻撃(複数のチャレンジデータを送りつけ、秘密情報を用いた処理状態の観測等)にして対策を施している。
即ち、S44の不正終了処理では、不揮発性メモリ3内の秘密情報を消去したり、暗号通信装置8が使用できないようにブロックしたり、あるいは特定コマンドと特定データを受信後にのみ正常動作が可能になるようにする等の情報資産に応じた処理を実施し、S23の正常処理後は、一連の通信トランザクションが終了したかどうかを判定し(S35)、終了していればS37の正常終了へ進み、トランザクションが終了していない場合には、再び、通信データ9を受信する(S20)。
更に、実施の形態2のように、攻撃者へ意図的に誤り情報を流す。
【0044】
以上のように、同一通信トランザクション内で認証用チャレンジデータの受信回数を計数し、規定値と比較するチャレンジデータ検出・カウント手段を備えた構成にしたので、耐タンパ性に優れた装置を得ることができる。
【0045】
なお、この実施の形態においても、実施の形態1や2で述べたような内容の適用や種々の変更が可能である。例えば、図6に示したように、S35とS37の間にチャレンジデータ検出・カウント手段50を初期化するようなステップを挿入したり、実施の形態1や実施の形態2と本実施の形態3を組み合わせて構成してもよい。
また、通信データ受信(S20)後に、データフィールド11の内容がチャレンジデータであるかどうかを判定する手段を設けたり、不正データか否かを判定する手段を設けたりすることも可能である。
【0046】
以上のように、チャレンジデータ検出・カウント手段を備えたので、執拗な攻撃者によるアクセスを早期に、容易に検出できる効果がある。
【0047】
実施の形態4.
以下、本発明の概念(B)の他の例と、概念(C)である返送情報フローの内容を複雑にする形態を実施の形態として、図11,12を用いて説明する。
図11のフローは、概念(B)の改良例であり、正常な秘密鍵12の代わりにダミー鍵を用いるようにしたものである。
図において、70は正常な秘密鍵12を用いて復号処理するステップ、71はダミー鍵72を用いて復号処理するステップである。
次に、動作について説明する。
まず、S20の通信データ9を受信した後、S60で不正データか否かを判定し、不正データを検出した場合、データフィールド11内の正常データとダミー鍵72を用いて復号処理し、正常なデータであればデータフィールド11内の正常データを復号処理する。
【0048】
ここで、ダミー鍵72についてもう少し詳細に説明する。
ダミー鍵72としては、例えば、正常な鍵の値に所定の値を加算したり、シフトさせた値を使用したり、あるいは制御手段2内のメモリ内容やプログラムカウンタの値をダミー鍵72としたりしてもよい。また、予めダミー鍵72を不揮発性メモリ3に格納しておき、このダミー鍵72を使用したり、複数のダミー鍵72を切り替えたり、様々な演算や加工を施してしてダミー鍵72とすることができる。いずれにしてもダミー鍵72は、正常な鍵と異なる鍵であればよい。
【0049】
以上のように、不正データを検出した場合には、不揮発性メモリ3内に格納している暗号生成・復号手段5用の鍵以外のダミー鍵72を用いて復号処理(あるいは暗号処理または署名処理)し、攻撃者に送信するので、より耐タンパ性に優れた暗号通信装置が得られる。
なお、この実施の形態においても、実施の形態1〜3で述べたような内容の適用、種々の変更や組み合わせが可能である。例えば、ダミー鍵72として乱数発生手段4の出力値を用いるようにしてもよい。
【0050】
図13は、本実施の形態における本発明の概念(C)を適用する場合を説明するための図である。
装置構成は、図1(a)において、乱数発生手段に換えて乱数発生及び順序設定手段4Bとしたものである。この場合の暗号通信装置8は、例えば、自動販売機システムに適用可能であり、図1の暗号通信装置8が自動販売機、図示していない右側の交信相手の暗号通信装置8が携帯電話に相当する。
また、図13(a),(b)は、通信データ9におけるデータフィールド11の構成を示した図である。
本実施の形態において、概念(C)の情報フローの複雑化は、具体的には、予め正常送信者には既知の逆転したデータ順序を返送し、照合しようとするものである。
【0051】
自動販売機システムは、現金を使用せずに携帯電話を用いた自動販売機の利用が可能となるもので、両者の相互認証後に携帯電話が所望の商品に対応する番号を自動販売機に送信すると、自動販売機では商品を出力すると共に、決済センターに対し、携帯電話の個別番号やクレジットカード番号等、決済に必要な利用者の情報(携帯情報)を送信することで、課金されるシステムである。本実施の形態においても、決済情報を含む様々なデータをやり取りするため、セキュリティの確保は必須である。
【0052】
次に、動作について、特に本発明のポイントである認証フローについて簡単に説明する。
図示していない図1(a)右側の交信相手である携帯電話側の暗号通信装置8は、乱数発生手段4用いて乱数R1を生成する。次に、図13(a)に示すように、装置内に存在するアプリケーションIDと上記乱数R1及び携帯情報を順番に連結し、この連結データを秘密鍵12で暗号化して、図1(a)に示す自動販売機側の暗号通信装置8に送信する。
図示の自動販売機側の暗号通信装置8は、受信した通信データ9を秘密鍵12で復号処理後、規定のアプリケーションIDと携帯情報が存在する場合には、証明者側を認証すると共に、図13(b)に示すように、例えば、乱数、次いで携帯情報、更に、アプリケーションIDと順番を変更してから秘密鍵12で暗号化し、携帯電話側の暗号通信装置8に送信する。
図示していない携帯電話側の暗号通信装置8は、受信した通信データ9を秘密鍵12で復号化し、既知の逆転順序(図13(a))に戻して後、受信したアプリケーションID、乱数R1と携帯情報の順番と内容が所定通りであるかどうかを確認する。もし一致していれば、自動販売機を認証したことになる。
【0053】
本実施の形態においては、正常データ受信時にはデータフィールド内の認証データ順を異ならせてデータ送信するようにしたので、情報フローが複雑になると共に、攻撃者には情報を漏れにくくするという耐タンパ性に優れた暗号通信装置が得られる。
なお、この実施の形態においても、種々の変更が可能で、例えば、実施の形態1から実施の形態3で述べたような内容の適用や種々の変更が可能である。さらに、実施の形態1から実施の形態3を組み合わせることも可能である。また、上述した例では、アプリケーションID等の順番を変更するように説明したが、特に限定するものではなく、また、認証フローにおいても適宜変更が可能である。
また、上記実施の形態においては、順序設定手段を乱数発生手段4と兼用化するようにしたが、制御手段2で実施するようにしてもよいことはいうまでもない。
【0054】
以上のように、特定データに対しては返送時に予め取り決めた順序に変更して送るので、比較的簡易に攻撃者によるデータ解読を困難にする効果がある。
【図面の簡単な説明】
【0055】
【図1】この発明の実施の形態1における暗号通信装置の構成と動作を示す図である。
【図2】実施の形態1における暗号通信装置の他の動作を示す図である。
【図3】実施の形態1における暗号通信装置間の通信データの例を示す図である。
【図4】実施の形態1における暗号通信装置の暗号生成・復号手段が行う動作を示すフロー図である。
【図5】実施の形態1における暗号通信装置が行う他の動作を示すフロー図である。
【図6】実施の形態1における暗号通信装置が行う不正データ検出・カウント手段の初期化動作フロー図である。
【図7】実施の形態1における暗号通信装置へのシステムによる不正データ検出・カウント手段への検出基準値の変更指示動作フロー図である。
【図8】この発明の実施の形態2における暗号通信装置が行う動作を示すフロー図である。
【図9】図8の不正終了における詳細動作フローの例を示す図である。
【図10】この発明の実施の形態3における暗号通信装置が行う動作を示すフロー図である。
【図11】この発明の実施の形態4における暗号通信装置が行う動作を示すフロー図である。
【図12】実施の形態4における暗号通信装置が行う動作を示すフロー図である。
【図13】実施の形態4における他の暗号通信装置が行う動作を示すフロー図である。
【符号の説明】
【0056】
1 通信手段、2 制御手段、3 不揮発メモリ、4 乱数発生(及び4Bは順序設定)手段、5 暗号生成・復号手段、6 不正データ検出・カウント手段、8 暗号通信装置、9 通信データ、10 レングス・フィールド、11 データ・フィールド、21 受信データの不正検出ステップ、22 不正データ受信回数係数ステップ、24 不正データ受信回数の設定値との比較ステップ、30 (データ)レングス値の基準値との比較ステップ、31 (データ)フィールド値の基準値との比較ステップ、32 不正データの検出ステップ、40 不正終了検出・カウント手段、42 不正終了ステップ、44 不正終了処理ステップ、50 チャレンジデータ検出・カウント手段。
【技術分野】
【0001】
この発明は、暗号通信におけるデータの特殊性に着目して、検出し、あるいは相手を幻惑して、秘密情報を読み出す困難性(耐タンパ性)を向上させる安全な装置を容易に得るものである。
【背景技術】
【0002】
暗号通信分野における認証方法としては数多くの提案がなされているが、通常、ある秘密情報を知っている者を本人と(検証者が)確かめることで、認証が行われる。例えば、特開2000−182102号公報に示された従来の認証方法では、あらかじめ共通鍵をA(証明者側暗号通信装置)とB(検証者側暗号通信装置)の双方で保持しておき、以下の手順で相手を認証していた。
(1)Aは乱数R1を生成し、Bに乱数R1を送信する。
(2)Bは乱数R1と共通鍵から認証子1を生成し、また、乱数R2も生成する。そして、認証子1と乱数R2をAに送信する。
(3)Aは乱数R1と共通鍵から認証子を生成し、Bから受信した認証子1と一致するかを検査する(これによりAはBを認証)。
(4)次に、Aは乱数R2と共通鍵から認証子2を生成し、認証子2をBに送信する。
(5)Bは乱数R2と共通鍵から認証子を生成し、Aから受信した認証子2と一致するかを検査する(これによりBはAを認証)。
【0003】
また、共通鍵(秘密鍵)生成のために複数の情報を別々に保持しておき、共通鍵(秘密鍵)を共有せず、認証時や鍵共有時に共通鍵(秘密鍵)を生成することで認証する方法も開示されている。さらに、零知識証明技術に基づいた暗号認証方法(Fiat−Shamir法等)や、公開鍵と秘密鍵の2つの非対称なデータ暗号鍵を用いる方法(公開鍵暗号方式)、即ち、暗号化を公開された鍵(あるいは秘密鍵)で行い、秘密鍵(あるいは公開鍵)で復号化を行う方法も様々な装置で使用されている。
これらの認証方法が搭載された暗号通信装置では、通常、秘密情報(暗号処理で用いる鍵等)を不揮発性メモリに記録し、これをマイクロプロセッサがアクセス制御することで、容易な読み出しを不可能とする耐タンパ性を実現していた。例えば、モバイルコマースシステムの基地局、携帯電話とスマートカード等で構成される複数の暗号通信装置やノンストップ自動料金収受システムの路側機と車載器及びスマートカードで構成される複数の暗号通信装置等では、所定のコマンドを送信(または受信)し、これに対するレスポンスを受信(または送信)する、という方法でアクセスが行われる。
このようなコマンドとレスポンスは、暗号通信装置間の通信ラインを介して行われるが、通信ラインは外部から物理的にアクセスすることが比較的容易であるため、通信ラインを流れるデータを外部から観測されたり、不正データを意図的に挿入されたりする可能性が高い。さらに近年、故障解析、タイミング解析、電力解析、テンペスト(過渡的電磁気パルス解析)などの各種解析/攻撃法が提案されたことにより、不揮発性メモリ上の秘密情報は読み出せないとする考え方が覆されはじめている。
【特許文献1】特開2000−182102号公報
【特許文献2】特開平10−154976号公報
【特許文献3】特開2001−16655号公報
【特許文献4】特開2001−282739号公報
【特許文献5】特開2000−47987号公報
【特許文献6】特開平11−8702号公報
【特許文献7】特開平3−139717号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
従来の暗号通信装置は以上のように構成されており、先ず読み出しが困難になるように秘密情報を不揮発性メモリに持っているが、これらへのアクセスと解析の機会が増えて、電力波形解析や、その間の処理時間解析により、秘密情報を解く鍵情報が流出する危険性が増して、システムへのなりすまし進入や、その結果によるデータの改ざん等が発生する可能性が高くなり、装置またはシステムが安全であるとは言えなくなっているという課題がある。
【0005】
この発明は上記の課題を解決するためになされたもので、暗号データ及び関連データに着目し、暗号通信システムに外部からアクセスしようとするハッカーに対して、早期に異常な暗号特有データを比較的簡易に検出することにより、内部の情報保護及び外部進入に対して解析困難な応答をしたり、正常でない応答を正常であるかのように応答することにより、耐タンパ性を向上することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る暗号通信装置は、
以下の要素を有することを特徴とする
(1)少なくともデータフィールドを有する通信データの送受信を行う通信手段
(2)通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する暗号処理手段
(3)通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する際に、不正データを受信した回数である不正データ受信回数をカウントする不正データ検出・カウント手段
(4)不正データ受信回数を、予め装置内に記憶している最小不正データカウント値と比較し、比較結果に基づいて、不正終了の処理を行う制御手段。
【0007】
本発明に係る暗号通信装置は、
以下の要素を有することを特徴とする
(1)少なくともデータフィールドを有する通信データの送受信を行う通信手段
(2)通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する暗号処理手段
(3)通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する際に、通信トランザクションが不正に終了した回数である不正終了回数をカウントする不正終了・検出カウント手段
(4)不正終了回数を、予め装置内に記憶している最小不正終了カウント値と比較し、比較結果に基づいて、暗号通信装置内で記憶する秘密情報に対する情報資産保護の処理を行う制御手段。
【0008】
本発明に係る暗号通信装置は、
以下の要素を有することを特徴とする
(1)少なくともデータフィールドを有する通信データの送受信を行う通信手段
(2)通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する暗号処理手段
(3)通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する際に、同一通信トランザクション内で認証用チャレンジデータを受信した回数であるチャレンジデータ受信回数をカウントするチャレンジデータカウント手段
(4)チャレンジデータ受信回数を、予め装置内に記憶している最小チャレンジカウント値と比較し、比較結果に基づいて、不正終了の処理を行う制御手段。
【0009】
この発明に係る暗号通信装置は、共通鍵または秘密鍵を用いて受信データを暗号あるいは復号する通信装置において、
受信データ、あるいは受信データを上記鍵を用いて復号した結果に対して、所定の値と比較して秘密通信関連データの不正を検出し、かつ設定回数以上の不正受信回数を検出する不正データ検出・カウント手段を備えて、設定回数以上の不正な受信データに対してはこれを破棄あるいは無視し、または自通信装置内の情報を保護するようにした。
【0010】
また更に、不正データ検出・カウント手段が持つ不正データの検出基準として、データのレングスと、データのフィールド・レングスとを設け、かつカウント基準をシステムで可変指定するようにした。
【0011】
また更に、不正データ検出・カウント手段は、設定回数以上の不正な受信データに対しては、装置として不正終了を行ってこの不正受信データの送信者に意図的なダミーデータを応答指示する、不正終了検出・カウント手段とした。
【0012】
また更に、不正データ検出・カウント手段は、設定回数以上の不正な受信データに対しては、正常な鍵とは異なるダミー鍵を用いて復号し、この復号結果のデータを元の不正受信データの送信者に応答指示するようにした。
【0013】
また更に、不正データ検出・カウント手段は、チャレンジデータに対しては鍵を用いずに受信データを直接に所定の値と比較し、また不正受信回数を調べるチャレンジデータ検出・カウント手段とした。
【0014】
また更に、不正データ検出・カウント手段を省き、特定データ部分に対して鍵を用いて復号した結果が正常であると、送信者に対する該特定データの返送時に予め取り決めた順序に変更して送るようにした。
【0015】
また更に、通信トランザクションが正常に終了すると、設定回数をリセットして不正回数のカウントを初期化するようにした。
【発明の効果】
【0016】
この発明によれば、チャレンジデータ検出・カウント手段を備えたので、執拗な攻撃者によるアクセスを早期に、容易に検出できる効果がある。
【発明を実施するための最良の形態】
【0017】
実施の形態1.
まず、この発明の主旨である耐タンパ性向上の概要を説明する。
従来の暗号通信装置では、秘密情報を用いて演算を行う際に、電力波形や処理時間など攻撃者に有益な情報が外部にもれてしまい、その結果、偽造被害が増加するという不具合があった。さらに詳しく説明すると、例えば、攻撃者は暗号通信装置内の電源ラインを観測しつつ、通信ラインから不正データを意図的に挿入して、秘密情報を用いた演算を行う際の電力波形や処理時間などを解析することで秘密情報を暴露し、なりすましや改ざん、通信の回線盗聴などの悪事を働く可能性を秘めていた。とすれば、様々な外部脅威から充分なセキュリティを確保しつつ、耐タンパ性に優れた暗号通信装置を得るためには、以下のような対抗策を講じるようにすればよい。本発明では、(A)〜(C)の具体的対抗策について述べる。
(A)不正データの意図的挿入等を検出し、攻撃者に有益情報をもらさない。
(B)攻撃者に意図的に誤った情報を流して、解読を不可能にする。
(C)情報フロー(通信手順や認証データのデータ構造等)を複雑にする。
【0018】
以下、上記概念の(A)の不正侵入を検出し、読み出しを阻止する形態を実施の形態1として、図1〜図4を用いて説明する。
図1は、この発明の実施の形態1における暗号通信装置の構成と動作を示す図である。
図3は、暗号通信装置間の通信データ構成を示す図、図4は、通信データ内の暗号化されたデータ(または署名データ)を復号する(または署名検証する)手順や平文データを署名生成する手順を示す図である。
図1において、1は通信手段で、少なくともレングスフィールドとデータフィールドを有した通信データ9の送受信を行う。例えば、スマートカード用の接触式インタフェースや非接触式インタフェース、セントロニクス社準拠のパラレルインタフェースやRS232Cなどのシリアルインタフェース、IEEE1394やUSB(Universal Serial Bus)などの有線インタフェース、赤外線通信、Bluetooth(登録商標)、無線LANやDSRC(Dedicated short Range Communication)、あるいは携帯電話に用いられているような無線インタフェースや専用のインタフェースなどが用いられる。2は制御手段で、通信手段1で受信した通信データ9を解読するとともに(または送信する通信データ9を生成するとともに)装置全体を制御する。例えば、CPUやロジック回路、あるいは必要に応じてROMやRAMなどから構成される。3は不揮発性メモリで、暗号処理時に使用する鍵等の秘密情報を記憶する。4は乱数を生成する乱数生成手段で、後の実施の形態では更に他の機能もある。5は通信データのデータフィールド内のデータを暗号あるいは復号処理する(または署名生成あるいは署名検証する)暗号生成・復号手段、6は通信データのデータフィールド内のデータを暗号あるいは復号処理する際に通信データ9の不正データを検出して、その不正データを受信した回数である不正データ受信回数を計数し、所定回数範囲にあるかを調べる不正データ検出・カウント手段、8は装置全体としての暗号通信装置であり、本実施の形態1では、通信データ9の受信を通じて、送信側を検証する構成の例を示している。
【0019】
また、9は通信データであり、図3(a)に概念、図3(b)にいくつかの例で示すように、少なくともレングスフィールド10とデータフィールド11から構成されており、データフィールド11の長さは可変である。レングスフィールド10には、認証データ等が格納されるデータフィールド11のレングス値が格納されている。なお、データフィールド11内には、図3(b)に示すように、暗号化されたデータ(暗号文)、暗号化されていないチャレンジデータとしての平文データ、あるいは両者が混在したデータのいずれかで構成される。
【0020】
次に、動作を図1(b)と図4を用いて説明する。
まず、送信側の暗号通信装置8では、装置全体を制御する制御手段2が、例えば、以下のステップ(以下、Sと略記)1ないしS4の手順にて受信側の暗号通信装置8に向けて通信データ9を送信する。
S1:乱数生成手段4用いて乱数R1を生成する。
S2:次に、受信側の暗号通信装置8内に存在する(アプリケーションの種類を示す)アプリケーションIDと上記乱数R1を連結する。
S3:連結したデータを暗号生成・復号手段5に入力して暗号化する。この時の暗号生成用の鍵としては、不揮発性メモリ3内に記憶している秘密情報Hを使用する。
S4:そして、送信側の暗号通信装置8では、通信手段1を通して受信側の暗号通信装置8に通信データ9を送信する。ここで、通信データ9のレングスフィールド10にはデータフィールド11のデータ長を示す「24」、データフィールド11には24バイトの「(暗号化された)アプリケーションIDと乱数R1、(暗号化されていない)アプリケーションID」が格納されている。
【0021】
一方、データ受信側となる検証側の暗号通信装置8では、図1(b)に示すように、装置全体を制御する制御手段2が、例えば、以下の手順でデータを処理する。
S20:通信手段1を介して通信データ9を受信する。
S21:通信データ9が不正データであるかどうかを検出する。
S22:不正データと判断した場合には(S30,S31,S32)、不正データ検出・カウント手段6にて不正データの受信回数を計数し(S22−1〜S22−3)、
S23:正常データと判断した場合には、正常処理を実行する。
ここで、不正データであるかどうかを検出するには、例えば、図1(b)のようなフローにすればよい。まず、通信データ9のレングスフィールド10の値とデータフィールド11のデータ長を通信手段1あるいは制御手段2で比較し、一致していればS31に進み、一致していなければS22−1に進む。そして、S31では、レングスフィールド10の値と予め装置内に格納している最小レングス値とレングスフィールド10の値を比較し、レングスフィールド10の値が最小レングス値以上であればS32へ進み、レングスフィールド10の値が最小レングス値未満であればS22−2へ進む。ここで、最小レングス値とは、正常な通信データ9のやりとりにおけるデータフィールド11の最小データ長に相当する値のことで、通信トランザクション中の、あるいはトランザクション毎の値を指す。S30又はS31のいずれかの判断を省略する場合も有効である。
なお、最小レングス値は予め求めておくことができ、テーブル形式などで装置内の不揮発性メモリ3や制御手段2等に格納される。
【0022】
そして、S32では、データフィールド11を制御手段2で解読しながら不正データかどうかを判定する。例えば、以下の基準を適用する。
1)平文データであれば、アプリケーションIDなどの所定のデータが存在するか否かを判定する。
2)予め証明者側と検証者側とが規定したデータが正しく存在するか等を判定する。
一方、暗号化(あるいは復号化)データであれば、図4(a)や図4(b)に示すように、データフィールド11内の暗号化データ(あるいは復号化データ)を不揮発性メモリ3内に格納している秘密鍵12から復号化データ(あるいは暗号化データ)を生成する(S13a,13b,13c)。規定したデータが正しく存在しているか(例えば、送信した乱数との一致や所定の管理番号が一致するか等)を判定したり、あるいは署名検証した結果が正当かどうか等を判定する(S32で、詳しくは、S32a,32b,32c等)。
一方、S32で不正データを検出しなくて、不正のない通信データ9と解釈できた場合は、例えば、図4(a)の動作フローを用いて復号化されたアプリケーションIDとデータフィールド11内の暗号化されていないアプリケーションIDを比較し、一致していれば正しい送信者であることを認証する。
なお、暗号生成・復号手段5を使用したフローとしては、暗号化データを復号してから、復号化データに対して署名生成したり、暗号化データを署名検証(S13aの復号化データに相当)するようにしてもよい。さらに、図4(b)のように、復号化データから暗号化データを生成してもよく、また、図4(c)に示すように、平文データを署名生成処理するようにしてもよい。
【0023】
次に、S24では、時間内に不正データと検出した回数が装置内に予め設定している最小不正データカウント値(例えば、3)以上か否かを不正データ検出・カウント手段6で調べて、設定回数より少なければ、不正終了(1)のS25へ進む。
最小不正データカウント値とは、不正データの受信許容回数を示しており、守るべき情報資産に応じた強度と考えてよい。例えば、重要な情報資産であれば3程度、通常の情報資産であれば5程度を、制御手段2や不揮発性メモリ3等に設定しておく。そして、設定回数以上の検出回数であれば、不正終了(2)のS26へ進む。
そして、S25の不正終了(1)では、後述するように、暗号生成・復号手段5の入力データとしてダミーデータを用いて処理したり、ダミー鍵を用いて処理したり、あるいはデータ破棄の例として、復号処理(あるいは暗号処理または署名処理)をしないようにしたり、データ長不一致エラー、認証エラー、不正データエラーのようなレスポンス等を出力したりする。
一方、S26の不正終了(2)の場合には、装置内データ保護の例として、不揮発性メモリ3内の秘密情報を消去したり、暗号通信装置8が使用できないようにブロックしたり、あるいは、他の装置内情報の保護の例として、特定コマンドと特定データを受信後にのみ正常動作が可能になるようにする等、情報資産に応じて暗号通信装置内で記憶する秘密情報に対する外部からの読み取りを制限する処理を実施する。これらは、例えば、攻撃者が通信ラインから不正データを意図的に挿入したり、装置内の信号を観測することによる、秘密情報を用いた演算を行う際の電力波形/処理時間などの解析や情報フローの解読を未然に防ぐもので、特に、不揮発性メモリ3に記憶している秘密情報を読み出すような攻撃や解読に対する困難性を向上させたものである。
【0024】
以上のように、本実施の形態においては、通信データの不正データ受信回数を計数し、不正の場合は、更にその回数が設定範囲内か調べる不正データ検出・カウント手段を備えたので、情報資産に応じて攻撃者の不正アクセスに対する強度を設定でき、利便性に優れ、また、簡易に不正アクセスを見抜ける暗号通信装置が得られる。
【0025】
なお、この実施の形態では、本発明の主旨を逸脱しない範囲で種々の変更や組み合わせが可能である。例えば、図1(b)のS21の構成(不正データの検出)をS30,S31,S32を組み合わせた構成ではなく、図5(a),(b),(c)のような単独の構成としてもよい。あるいは、S31とS30を組み合わせた構成、またはS30とS32を組み合わせた構成などにしてもよい。また、S30とS31とS32の組み合わせ等におけるステップの順番についても特に限定されない。また、図2(c)や(d)のように、利便性を考慮して設定回数未満のときには正常処理S23として、設定回数以上のときには不正終了(1)や不正終了(2)を実施するようにしてもよい。
さらに、一方向性関数のハッシュ値をデータフィールド11内に設けたり、あるいはデジタル署名を施して不正データを検証するようにしてもよい。
さらに、通信トランザクション毎にセッション鍵を変更したり、あるいは通信データの伝送エラーを検出するために水平冗長符号(LRC)や巡回冗長検査(CRC)を加えるようにしてもよい。
また、データフィールド11内の暗号化(あるいは復号化)されたデータまたは平文データに対して復号化(あるいは暗号化、署名生成または署名検証)する際には、複数の暗号生成・復号手段5を有して高速に処理するようにしてもよい。
さらに、上述した実施の形態では、最小不正データカウント値を制御手段2や不揮発性メモリ3内に記憶しているように記述したが、装置内であればよく、特に限定しない。
また、「〜より小さい場合」を「〜以下の場合」、あるいは「〜以上の場合」を「〜より大きい場合」のような範囲設定としてもよい。
【0026】
また、本実施の形態に示す暗号通信装置8は、相互認証、本人認証、データ認証等、暗号と通信を必要とする分野であれば、特に用途や構成を限定せず種々の変更が可能である。例えば、受信認証を複数回繰り返す構成にしてもよい。
また、認証時には、共通鍵を用いる方法や公開鍵を用いる方法(署名生成・署名検証含)等を採用してもよく、特に限定しない。加えて、通信データ9を一方の暗号通信装置8内で暗号化してから他方で復号化するのではなく、復号化してから暗号化するようにしてもよく、また、公開鍵方式で乱数を交換後に、その乱数をセッション鍵として暗号通信するようにしてもよい。
さらに、一方の暗号通信装置8で平文データを受信後に一方向性関数でハッシュ値を求めて、このハッシュ値に対する署名生成処理を行い、他方の暗号通信装置8で署名検証するようにしてもよく、特に限定しない。加えて、上述した実施の形態では、アプリケーションIDで認証するようにしたが、乱数での認証や契約情報などを認証するようにしてもよく、特に限定しない。
上述した動作フローは、認証フェーズの一例を示したものであり、適宜追加したり変更したりすることができる。
【0027】
また、図1の構成において、図面左側の暗号通信装置8を携帯電話とし、図面右側の暗号通信装置8をスマートカードと想定した場合には、図示しない携帯電話用基地局やクレジットカード認証局との通信手段や通信フローを適宜追加することができる。加えて、図1においては、説明を容易にするために、暗号通信装置8において、受信データを検証する場合を例として説明したが、本発明の暗号通信装置8と他の暗号通信装置を組み合わせるようにしてもよい。
【0028】
また、図6に示すように、正常処理後に不正データ検出・カウント手段6のカウント値を初期化するようにしてもよい。即ち、同図において、S20の通信データ9を受信後に、S34の不正データ検出処理などの様々な処理を施し、S23の正常処理が実施されて、通信トランザクションが正常に終了した場合には(S35でYes)、不正データ検出・カウント手段6のカウント値を初期化して(S36)、正常終了するようにしてもよい。これは不正アクセス以外の、例えば、通信状態の不安定さなどに起因する異常データに対して冗長性をもたせたものであり、セキュリティを確保しつつ装置の利便性を向上させたものである。
この場合にも、種々の変更が可能である。例えば、通信トランザクションが正常に3回連続終了した場合に、不正データ検出・カウント手段6を初期化するようにしてもよく、また、正常トランザクション1回毎に不正データ検出・カウント手段6を1つダウンカウントしたり、連続した正常トランザクション2回毎に不正データ検出・カウント手段6を1つダウンカウントしたり、あるいは通信トランザクション10回中7回が正常であれば初期化するような処理も、S36に含めるものとする。さらに、S36をS23とS35の間に入れたり、S37の後に入れたり、適宜変更可能である。
【0029】
加えて、図1(b)に示すように、S22の不正データ受信回数を計数する際には、図5に示すように、不正データの種類に応じた計数(S22−1ないしS22−3)をするようにしてもよい。例えば、レングスフィールド10の値とデータフィールド11のデータ長不一致回数(S22−1)、レングスフィールド10が最小レングス値より小さい回数(S22−2)及び不正データそのものを受信した回数(S22−3)等を不正データ検出・カウント手段6でそれぞれ計数して調べるようにしてもよい。この場合には、不正データ検出・カウント手段6の機能が強化され、対応したきめ細かな処理が可能になる。
さらに、当事者しか分からないようなコマンドを設けて、上記不正データ検出・カウント手段6の値を読み出せるようにしてもよいことは言うまでもない。
さらに、図3(b)の点線付加部分に示すように、通信データ9においてコマンドフィールド38をレングスフィールド10やデータフィールド11の先頭に加えるようにしてもよい。コマンドフィールド38を設けることは、互いに定めた固定的な通信トランザクションを汎用的にできるという効果がある。例えば、先頭のコマンドフィールド38を制御手段2等で解読することで、現在のフェーズが認証データであることや特定データの読みだし要求等であることが分かり、より利便性に優れた装置となる。
【0030】
また、上述した例では、最小不正データカウント値を固定としているが、通信状態/状況に対応したり、あるいはデバックやメンテナンス時へ利便性を考慮して、図7に示すような動作としてもよい。即ち、S20の通信データ9の受信後、コマンドフィールド38を解釈し、最小不正データ検出・カウント値を変更するコマンドであれば、S39で装置内に格納している最小不正データ検出・カウント値を変更できるようにしてもよい。この場合には、当事者しか分からないようなコマンドにしたり、あるいは暗証番号による認証や署名検証することで、セキュリティを確保した方が望ましい。また、受信したデータフィールド11のデータを暗号処理(あるいは復号処理または署名処理)する場合には、受信データを全て暗号処理してから制御手段2にて解読しても、暗号処理しながら解読するようにしてもよく、特に限定しない。
【0031】
以上のように、不正データ検出・カウント手段を備えたので、システムの重要度に応じて容易に不正アクセスを検出できる効果がある。
【0032】
実施の形態2.
以下、本発明の概念(B)である攻撃者に意図的に誤り情報を与える形態を実施の形態2として、図1及び図8を用いて説明する。
具体的なシステムとしては、駐車場システムがあり、図1(a)の暗号通信装置8が路側機としてある。これに対して、図の右側の交信先で、他の図示と同じ暗号通信装置8が車載器に相当する。また、図1(a)において、不正データ検出・カウント手段に換えて、不正終了検出・カウント手段40を用いた構成となっている。その他の構成要素は、図1(a)に示す通りである。
駐車場システムは、車両の車種情報や車両が通過した時刻などの料金計算に必要な情報と、クレジットカード番号等の決済に必要な利用者の情報とを車両に装着されている車載器と料金所に設置されている路側機との間で無線通信することにより、料金所でも停止することなく車両の通行を可能とするシステムである。暗号通信装置8である路側機と、図示していないが、同様の構成を持つ車載器は、相互に認証するとともに、決済情報を含む様々なデータをやり取りするため、セキュリティの確保は必須である。
【0033】
本実施の形態における動作フローは、図1(b)に換えて例を図8(a),(b)に示すものとなる。
動作としては、実施の形態1における動作とほぼ同様で、まず、車載器側の暗号通信装置8から制御手段2が実施の形態1で説明したS1ないしS4の処理を行って、図1(a)の路側機の暗号通信装置8に通信データ9を送信してくる。
一方、データ受信側となる路側機の暗号通信装置8では、図8(a)に示すように、装置全体を制御する制御手段2が、以下の手順でデータを処理する。
S20:通信データ9を受信する。
S21:通信データ9の不正データ検出を行う。
不正データが検出された場合には、不正終了(S42)に進み、検出されない場合には、正常処理(S23)に進む。ここで、S42の不正終了処理とは、例えば、攻撃者へのエラー処理後の送信のことを指し、具体的にはデータ長不一致エラーや認証エラー、あるいは不正データエラーのようなレスポンス等を出力し、これに基づいて制御手段2により攻撃者へ意図的に誤り情報を返送する。さらには、後述するように、暗号生成・復号手段5の入力データとしてダミーデータを用いて処理したり、ダミー鍵を用いて処理した結果を攻撃者へ返送したり、あるいは復号処理(あるいは暗号処理または署名処理)をしないようにしたりしてもよい。
【0034】
意図的なダミー情報と返送について説明する。
図9は、不正終了42の具体的な例42aと42bの動作を示す図である。
図9では、実施の形態1の検出結果に対しても、意図的な誤情報を送信できることも示しているので、不正データ検出・カウント手段6の出力値が最小不正データカウント値より大きい場合、あるいは不正終了検出・カウント手段40の出力値が最小不正終了カウント値より大きい場合、あるいは後述のチャレンジデータ検出・カウント手段50の出力値が最小チャレンジカウント値より大きい場合には、受信データ以外のダミーデータを用いて復号処理(あるいは暗号処理または署名処理)する動作も示している。
図9において、60は不正終了検出・カウント手段40の出力値と最小不正終了カウント値等を比較するステップ、61はデータフィールド11内のデータを用いて復号処理(あるいは暗号処理または署名処理)するステップ、62はダミーデータを用いて復号処理するステップである。
【0035】
動作は、以下のようになる。
まず、通信データ9を受信した後(S20)、不正終了検出・カウント手段40の出力値と最小不正終了カウント値等を比較し(S60)、規定の最小不正終了カウント値以上等の場合には、異常として、データフィールド11内のデータではなくダミーデータを用いて復号処理し(S62)、不正終了検出・カウント手段40の出力値が最小不正終了カウント値等より小さい場合には、正常であるとして、データフィールド11内の正常データで復号処理する(S61)。
なお、S62の処理では、図9(b)に示すように、暗号生成・復号手段5には正常データとは異なるダミーデータ63を入力し、不揮発性メモリ3に格納している秘密鍵12を用いて復号化データ13を得て、それを攻撃者側に送信するようにしている。
【0036】
ここで、ダミーデータについてもう少し詳細に説明する。
ダミーデータとは、攻撃者に対し、あたかも正常のデータを用いて復号処理(あるいは暗号処理または署名処理)しているようにみせかけるもので、例えば、正常な受信データを1バイトずらしたり、反転させたデータを使用したり、あるいは制御手段2内のメモリ内容そのものをダミーデータとしたりする。または、予めダミーデータを不揮発性メモリ3に格納しておき、上記データを使用したり、複数のダミーデータを切り替えたり、あるいは図示しないカウンタ手段の出力値をダミーデータとしてもよい。
さらに、上述した正常な受信データを1バイトずらしたものに、予め不揮発性メモリ3に格納しておいたダミーデータを排他的論理和演算してから最終的なダミーデータとしたり、様々な演算や加工を施してダミーデータとすることもできる。加えて、復号化データ13自身をダミーデータとして使いまわしてもよい。
なお、更に、S60の不正データを検出する場合には、3つの比較を全て実施したり、あるいはいずれかの一つにしたり、あるいはダミーデータとして乱数発生手段4の出力を用いたり適宜変更が可能である。
【0037】
S43では、不正終了の回数を計数して調査する不正終了検出・カウント手段40が格納している最小不正終了カウント値と比較して調べて、S42で検出した不正終了の回数が最小不正終了カウント値より大きい場合には、S44の不正終了処理へ進み、最小不正終了カウント値が最小不正終了カウント値以下の場合には、S45の未処理へ進む。ここで、S45の未処理とは、通信データ9の受信待機状態にもどることを意味している。
S44の不正終了処理(情報資産保護の処理)では、不正終了回数が所定の値を超えたため、不揮発性メモリ3内の秘密情報を消去したり、暗号通信装置8が使用できないようにブロックしたり、あるいは特定コマンドと特定データを受信後にのみ正常動作が可能になるようにする等、情報資産に応じて暗号通信装置内で記憶する秘密情報に対する外部からの読み取りを制限する処理を実施する。これは、受信側のブロックである。
【0038】
本実施の形態においては、通信トランザクションが不正に終了した回数を計数する不正終了検出・カウント手段と、これに基づいて攻撃者に意図的な誤り情報を流す制御手段とを備えたので、攻撃者のデータ解読を困難にするという耐タンパ性に優れた暗号通信装置が得られる。
【0039】
なお、この実施の形態においても種々の変更が可能で、例えば、実施の形態1で述べたような内容の適用や種々の変更が可能である。さらに、実施の形態1と実施の形態2を組み合わせることも可能である。また、図8(b)に示すように動作させることも可能である。即ち、通信データ9を受信した後、不正データか否かをS21で検出し、不正データであれば、さらに、不正終了検出・カウント手段40の出力値が最小不正終了カウント値より大きい場合にはS44の不正終了処理へ進み、最小不正終了カウント値が最小不正終了カウント値以下の場合には、S42の不正終了へ進むようにしてもよい。
【0040】
また、上述した例では、アプリケーションIDを解読することで不正データかどうかを区別したが、検証できるデータであれば特に限定しない。例えば、レングスフィールド10の値を暗号化データの中に格納してチェックしたり、一方向性関数を用いた認証子や署名データ、あるいは相互の乱数や読み出すレコード番号の値など特に規定しない。
いずれにしても、認証データや更新データのやり取り等を示す一連の通信トランザクションが正常に終了していない回数を計数し、予め格納している許容回数以上かどうかを判定する比較手段を有していれば、種々の変更が可能である。例えば、通信トランザクションが3回正常に終了した場合には、不正終了検出・カウント手段40を初期化するようにしてもよい。
【0041】
以上のように、不正終了を行って、装置として攻撃者にダミーデータを返送するので、攻撃者によるデータ解読を困難にする効果がある。
【0042】
実施の形態3.
以下、本発明の概念(A)の不正侵入の限定された形態を実施の形態3として、図1(a)と図10を用いて説明する。
本実施の形態では、同一通信トランザクション内(認証データや更新データのやり取り等を示す一連の通信トランザクションを指す)で認証用のチャレンジデータ(例えば、乱数、ある規定値のハッシュ値、カウンタ値、時刻、あるいは暗証番号等)の受信回数を検出し、規定値と比較するチャレンジデータ検出・カウント手段とを備えた構成としている。即ち、図1(a)において、不正データ検出・カウント手段に換えて50のチャレンジデータ検出・カウント手段を設けており、その他の要素は、図1(a)の通りである。
【0043】
次に、動作について、図10の動作フローを用いて説明する。
S33のスタートから始まり、通信データ9を受信した後(S20)、通信データ9を解釈し、認証用のチャレンジデータであれば、上記チャレンジデータの受信回数をチャレンジデータ検出・カウント手段50で計数する(S52)。
そもそもチャレンジデータ受信回数が異常に多いことは、相手が攻撃者である可能性が高いことを示している。従って、チャレンジデータ検出・カウント手段50の検出回数出力値と予め装置内に記憶されている最小チャレンジカウント値をS53で比較し、規定最小チャレンジカウント値より小さければS23の正常処理に進み、最小チャレンジカウント値以上であればS44の不正終了処理に進む。
ここで、最小チャレンジカウント値とは、一連の通信トランザクションにおけるチャレンジデータの受信許容回数を示しており、守るべき情報資産に応じた強度と考えてもよい。例えば、重要な情報資産であれば2程度、通常の情報資産であれば5程度を設定しておき、攻撃者による不正なチャレンジデータ攻撃(複数のチャレンジデータを送りつけ、秘密情報を用いた処理状態の観測等)にして対策を施している。
即ち、S44の不正終了処理では、不揮発性メモリ3内の秘密情報を消去したり、暗号通信装置8が使用できないようにブロックしたり、あるいは特定コマンドと特定データを受信後にのみ正常動作が可能になるようにする等の情報資産に応じた処理を実施し、S23の正常処理後は、一連の通信トランザクションが終了したかどうかを判定し(S35)、終了していればS37の正常終了へ進み、トランザクションが終了していない場合には、再び、通信データ9を受信する(S20)。
更に、実施の形態2のように、攻撃者へ意図的に誤り情報を流す。
【0044】
以上のように、同一通信トランザクション内で認証用チャレンジデータの受信回数を計数し、規定値と比較するチャレンジデータ検出・カウント手段を備えた構成にしたので、耐タンパ性に優れた装置を得ることができる。
【0045】
なお、この実施の形態においても、実施の形態1や2で述べたような内容の適用や種々の変更が可能である。例えば、図6に示したように、S35とS37の間にチャレンジデータ検出・カウント手段50を初期化するようなステップを挿入したり、実施の形態1や実施の形態2と本実施の形態3を組み合わせて構成してもよい。
また、通信データ受信(S20)後に、データフィールド11の内容がチャレンジデータであるかどうかを判定する手段を設けたり、不正データか否かを判定する手段を設けたりすることも可能である。
【0046】
以上のように、チャレンジデータ検出・カウント手段を備えたので、執拗な攻撃者によるアクセスを早期に、容易に検出できる効果がある。
【0047】
実施の形態4.
以下、本発明の概念(B)の他の例と、概念(C)である返送情報フローの内容を複雑にする形態を実施の形態として、図11,12を用いて説明する。
図11のフローは、概念(B)の改良例であり、正常な秘密鍵12の代わりにダミー鍵を用いるようにしたものである。
図において、70は正常な秘密鍵12を用いて復号処理するステップ、71はダミー鍵72を用いて復号処理するステップである。
次に、動作について説明する。
まず、S20の通信データ9を受信した後、S60で不正データか否かを判定し、不正データを検出した場合、データフィールド11内の正常データとダミー鍵72を用いて復号処理し、正常なデータであればデータフィールド11内の正常データを復号処理する。
【0048】
ここで、ダミー鍵72についてもう少し詳細に説明する。
ダミー鍵72としては、例えば、正常な鍵の値に所定の値を加算したり、シフトさせた値を使用したり、あるいは制御手段2内のメモリ内容やプログラムカウンタの値をダミー鍵72としたりしてもよい。また、予めダミー鍵72を不揮発性メモリ3に格納しておき、このダミー鍵72を使用したり、複数のダミー鍵72を切り替えたり、様々な演算や加工を施してしてダミー鍵72とすることができる。いずれにしてもダミー鍵72は、正常な鍵と異なる鍵であればよい。
【0049】
以上のように、不正データを検出した場合には、不揮発性メモリ3内に格納している暗号生成・復号手段5用の鍵以外のダミー鍵72を用いて復号処理(あるいは暗号処理または署名処理)し、攻撃者に送信するので、より耐タンパ性に優れた暗号通信装置が得られる。
なお、この実施の形態においても、実施の形態1〜3で述べたような内容の適用、種々の変更や組み合わせが可能である。例えば、ダミー鍵72として乱数発生手段4の出力値を用いるようにしてもよい。
【0050】
図13は、本実施の形態における本発明の概念(C)を適用する場合を説明するための図である。
装置構成は、図1(a)において、乱数発生手段に換えて乱数発生及び順序設定手段4Bとしたものである。この場合の暗号通信装置8は、例えば、自動販売機システムに適用可能であり、図1の暗号通信装置8が自動販売機、図示していない右側の交信相手の暗号通信装置8が携帯電話に相当する。
また、図13(a),(b)は、通信データ9におけるデータフィールド11の構成を示した図である。
本実施の形態において、概念(C)の情報フローの複雑化は、具体的には、予め正常送信者には既知の逆転したデータ順序を返送し、照合しようとするものである。
【0051】
自動販売機システムは、現金を使用せずに携帯電話を用いた自動販売機の利用が可能となるもので、両者の相互認証後に携帯電話が所望の商品に対応する番号を自動販売機に送信すると、自動販売機では商品を出力すると共に、決済センターに対し、携帯電話の個別番号やクレジットカード番号等、決済に必要な利用者の情報(携帯情報)を送信することで、課金されるシステムである。本実施の形態においても、決済情報を含む様々なデータをやり取りするため、セキュリティの確保は必須である。
【0052】
次に、動作について、特に本発明のポイントである認証フローについて簡単に説明する。
図示していない図1(a)右側の交信相手である携帯電話側の暗号通信装置8は、乱数発生手段4用いて乱数R1を生成する。次に、図13(a)に示すように、装置内に存在するアプリケーションIDと上記乱数R1及び携帯情報を順番に連結し、この連結データを秘密鍵12で暗号化して、図1(a)に示す自動販売機側の暗号通信装置8に送信する。
図示の自動販売機側の暗号通信装置8は、受信した通信データ9を秘密鍵12で復号処理後、規定のアプリケーションIDと携帯情報が存在する場合には、証明者側を認証すると共に、図13(b)に示すように、例えば、乱数、次いで携帯情報、更に、アプリケーションIDと順番を変更してから秘密鍵12で暗号化し、携帯電話側の暗号通信装置8に送信する。
図示していない携帯電話側の暗号通信装置8は、受信した通信データ9を秘密鍵12で復号化し、既知の逆転順序(図13(a))に戻して後、受信したアプリケーションID、乱数R1と携帯情報の順番と内容が所定通りであるかどうかを確認する。もし一致していれば、自動販売機を認証したことになる。
【0053】
本実施の形態においては、正常データ受信時にはデータフィールド内の認証データ順を異ならせてデータ送信するようにしたので、情報フローが複雑になると共に、攻撃者には情報を漏れにくくするという耐タンパ性に優れた暗号通信装置が得られる。
なお、この実施の形態においても、種々の変更が可能で、例えば、実施の形態1から実施の形態3で述べたような内容の適用や種々の変更が可能である。さらに、実施の形態1から実施の形態3を組み合わせることも可能である。また、上述した例では、アプリケーションID等の順番を変更するように説明したが、特に限定するものではなく、また、認証フローにおいても適宜変更が可能である。
また、上記実施の形態においては、順序設定手段を乱数発生手段4と兼用化するようにしたが、制御手段2で実施するようにしてもよいことはいうまでもない。
【0054】
以上のように、特定データに対しては返送時に予め取り決めた順序に変更して送るので、比較的簡易に攻撃者によるデータ解読を困難にする効果がある。
【図面の簡単な説明】
【0055】
【図1】この発明の実施の形態1における暗号通信装置の構成と動作を示す図である。
【図2】実施の形態1における暗号通信装置の他の動作を示す図である。
【図3】実施の形態1における暗号通信装置間の通信データの例を示す図である。
【図4】実施の形態1における暗号通信装置の暗号生成・復号手段が行う動作を示すフロー図である。
【図5】実施の形態1における暗号通信装置が行う他の動作を示すフロー図である。
【図6】実施の形態1における暗号通信装置が行う不正データ検出・カウント手段の初期化動作フロー図である。
【図7】実施の形態1における暗号通信装置へのシステムによる不正データ検出・カウント手段への検出基準値の変更指示動作フロー図である。
【図8】この発明の実施の形態2における暗号通信装置が行う動作を示すフロー図である。
【図9】図8の不正終了における詳細動作フローの例を示す図である。
【図10】この発明の実施の形態3における暗号通信装置が行う動作を示すフロー図である。
【図11】この発明の実施の形態4における暗号通信装置が行う動作を示すフロー図である。
【図12】実施の形態4における暗号通信装置が行う動作を示すフロー図である。
【図13】実施の形態4における他の暗号通信装置が行う動作を示すフロー図である。
【符号の説明】
【0056】
1 通信手段、2 制御手段、3 不揮発メモリ、4 乱数発生(及び4Bは順序設定)手段、5 暗号生成・復号手段、6 不正データ検出・カウント手段、8 暗号通信装置、9 通信データ、10 レングス・フィールド、11 データ・フィールド、21 受信データの不正検出ステップ、22 不正データ受信回数係数ステップ、24 不正データ受信回数の設定値との比較ステップ、30 (データ)レングス値の基準値との比較ステップ、31 (データ)フィールド値の基準値との比較ステップ、32 不正データの検出ステップ、40 不正終了検出・カウント手段、42 不正終了ステップ、44 不正終了処理ステップ、50 チャレンジデータ検出・カウント手段。
【特許請求の範囲】
【請求項1】
以下の要素を有することを特徴とする暗号通信装置
(1)少なくともデータフィールドを有する通信データの送受信を行う通信手段
(2)通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する暗号処理手段
(3)通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する際に、一連のデータのやり取りを示す同一通信トランザクション内で認証用チャレンジデータとして時刻情報を受信した回数であるチャレンジデータ受信回数をカウントするチャレンジデータカウント手段
(4)チャレンジデータ受信回数を、予め装置内に記憶している最小チャレンジカウント値と比較し、比較結果に基づいて、不正終了の処理を行う制御手段。
【請求項2】
制御手段は、チャレンジデータ受信回数が最小チャレンジカウント値より大きい場合に、不正終了の処理を行うことを特徴とする請求項1記載の暗号通信装置。
【請求項3】
制御手段は、不正終了の処理として、暗号化処理あるいは復号化処理を施さないように制御することを特徴とする請求項1記載の暗号通信装置。
【請求項4】
制御手段は、不正終了の処理として、データフィールド内のデータと異なるダミーデータに対して、暗号化処理あるいは復号化処理を施すように制御することを特徴とする請求項1記載の暗号通信装置。
【請求項5】
暗号通信装置は、更に、暗号処理手段に入力する入力データを切り替える切り替え手段を有し、
制御部は、切り替え手段をデータフィールド内の正常データとは異なるダミーデータ側に切り替えることにより、ダミーデータに対して、暗号化処理あるいは復号化処理を施すように制御することを特徴とする請求項4に記載の暗号通信装置。
【請求項6】
暗号通信装置は、更に、乱数を生成する乱数生成手段を有し、
制御手段は、乱数制御手段により生成された乱数を、上記ダミーデータとして用いることを特徴とする請求項4又は5のいずれかに記載の暗号通信装置。
【請求項7】
制御手段は、不正終了の処理として、正常な鍵以外のダミー鍵を用いて、暗号化処理あるいは復号化処理を施すように制御することを特徴とする請求項1記載の暗号通信装置。
【請求項8】
暗号通信手段は、更に、暗号処理手段で使用する鍵を切り替える鍵切り替え手段を有し、
上記制御部は、鍵切り替え手段を正常な鍵以外のダミー鍵に切り替えることにより、暗号化処理あるいは復号化処理を施すように制御することを特徴とする請求項7に記載の暗号通信装置。
【請求項9】
暗号通信装置は、更に、乱数を生成する乱数生成手段を有し、
制御手段は、乱数制御手段により生成された乱数を、ダミー鍵として用いることを特徴とする請求項8に記載の暗号通信装置。
【請求項10】
制御手段は、不正終了の処理として、暗号通信装置内で記憶する秘密情報に対する情報資産保護の処理を行うことを特徴とする請求項1記載の暗号通信装置。
【請求項11】
制御手段は、情報資産保護の処理として、不揮発メモリ内の秘密情報を消去することを特徴とする請求項10記載の暗号通信装置。
【請求項12】
制御手段は、情報資産保護の処理として、暗号通信装置を使用できないようにブロックすることを特徴とする請求項10記載の暗号通信装置。
【請求項13】
制御手段は、情報資産保護の処理として、特定コマンドと特定データを受信後にのみ正常動作することを特徴とする請求項10記載の暗号通信装置。
【請求項14】
最小チャレンジカウント値は、通信手段を介して変更可能でることを特徴とする請求項1記載の暗号通信装置。
【請求項15】
通信トランザクションが正常に終了した場合には、最小チャレンジカウント値を初期化することを特徴とする請求項1記載の暗号通信装置。
【請求項1】
以下の要素を有することを特徴とする暗号通信装置
(1)少なくともデータフィールドを有する通信データの送受信を行う通信手段
(2)通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する暗号処理手段
(3)通信データのデータフィールド内のデータを暗号化処理あるいは復号化処理する際に、一連のデータのやり取りを示す同一通信トランザクション内で認証用チャレンジデータとして時刻情報を受信した回数であるチャレンジデータ受信回数をカウントするチャレンジデータカウント手段
(4)チャレンジデータ受信回数を、予め装置内に記憶している最小チャレンジカウント値と比較し、比較結果に基づいて、不正終了の処理を行う制御手段。
【請求項2】
制御手段は、チャレンジデータ受信回数が最小チャレンジカウント値より大きい場合に、不正終了の処理を行うことを特徴とする請求項1記載の暗号通信装置。
【請求項3】
制御手段は、不正終了の処理として、暗号化処理あるいは復号化処理を施さないように制御することを特徴とする請求項1記載の暗号通信装置。
【請求項4】
制御手段は、不正終了の処理として、データフィールド内のデータと異なるダミーデータに対して、暗号化処理あるいは復号化処理を施すように制御することを特徴とする請求項1記載の暗号通信装置。
【請求項5】
暗号通信装置は、更に、暗号処理手段に入力する入力データを切り替える切り替え手段を有し、
制御部は、切り替え手段をデータフィールド内の正常データとは異なるダミーデータ側に切り替えることにより、ダミーデータに対して、暗号化処理あるいは復号化処理を施すように制御することを特徴とする請求項4に記載の暗号通信装置。
【請求項6】
暗号通信装置は、更に、乱数を生成する乱数生成手段を有し、
制御手段は、乱数制御手段により生成された乱数を、上記ダミーデータとして用いることを特徴とする請求項4又は5のいずれかに記載の暗号通信装置。
【請求項7】
制御手段は、不正終了の処理として、正常な鍵以外のダミー鍵を用いて、暗号化処理あるいは復号化処理を施すように制御することを特徴とする請求項1記載の暗号通信装置。
【請求項8】
暗号通信手段は、更に、暗号処理手段で使用する鍵を切り替える鍵切り替え手段を有し、
上記制御部は、鍵切り替え手段を正常な鍵以外のダミー鍵に切り替えることにより、暗号化処理あるいは復号化処理を施すように制御することを特徴とする請求項7に記載の暗号通信装置。
【請求項9】
暗号通信装置は、更に、乱数を生成する乱数生成手段を有し、
制御手段は、乱数制御手段により生成された乱数を、ダミー鍵として用いることを特徴とする請求項8に記載の暗号通信装置。
【請求項10】
制御手段は、不正終了の処理として、暗号通信装置内で記憶する秘密情報に対する情報資産保護の処理を行うことを特徴とする請求項1記載の暗号通信装置。
【請求項11】
制御手段は、情報資産保護の処理として、不揮発メモリ内の秘密情報を消去することを特徴とする請求項10記載の暗号通信装置。
【請求項12】
制御手段は、情報資産保護の処理として、暗号通信装置を使用できないようにブロックすることを特徴とする請求項10記載の暗号通信装置。
【請求項13】
制御手段は、情報資産保護の処理として、特定コマンドと特定データを受信後にのみ正常動作することを特徴とする請求項10記載の暗号通信装置。
【請求項14】
最小チャレンジカウント値は、通信手段を介して変更可能でることを特徴とする請求項1記載の暗号通信装置。
【請求項15】
通信トランザクションが正常に終了した場合には、最小チャレンジカウント値を初期化することを特徴とする請求項1記載の暗号通信装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2007−129783(P2007−129783A)
【公開日】平成19年5月24日(2007.5.24)
【国際特許分類】
【出願番号】特願2007−43358(P2007−43358)
【出願日】平成19年2月23日(2007.2.23)
【分割の表示】特願2002−298828(P2002−298828)の分割
【原出願日】平成14年10月11日(2002.10.11)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】
【公開日】平成19年5月24日(2007.5.24)
【国際特許分類】
【出願日】平成19年2月23日(2007.2.23)
【分割の表示】特願2002−298828(P2002−298828)の分割
【原出願日】平成14年10月11日(2002.10.11)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】
[ Back to top ]