説明

送信端末、受信端末、通信システム

【課題】暗号化/認証子付与処理されたパケットの復号化/認証子検証処理を終える前に、当該パケットが不正パケットであるか否かを容易に判断する。
【解決手段】通信パケットを送信する送信部140と、通信パケットの送信前に当該通信パケットを暗号化する暗号化部120と、通信パケットが不正パケットであるか否かを通信パケットの受信端末が判断するための不正判断データを当該通信パケットへ付与する不正判断データ設定部130と、を備え、不正判断データ設定部130は、受信端末との間であらかじめ共有された規則に基づき、通信パケットの少なくとも一部を用いて不正判断データを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信パケットを送信する送信端末、通信パケットを受信する受信端末、これらの端末を有する通信システムに関するものである。
【背景技術】
【0002】
受信バッファや処理能力に制約がある通信端末が、受信パケット落ちや遅延を少なくデータを受信することに価値があるようなシステムにおいては、不当なパケットの過負荷投入によるサービス妨害(DoS:Denial of Service)攻撃等を緩和するために、上記不当なパケットを早期に不当であると判断して破棄させることが好ましい。
【0003】
サービス妨害 (DoS)攻撃とは、攻撃目標のサーバなどに大量のパケットデータを送りつけるなどして、サーバのリソースを消耗させることで、正当な要求者へのサービス提供を不能にさせる攻撃である。
例えば、WEBサービスを停止させることを目的に、WEBサーバに対してコンテンツの配信要求(HTTPリクエスト)を大量に送付する等の攻撃がある。
また、無線ネットワークに対するサービス妨害攻撃も存在する。攻撃者は、無線の帯域を占有したり、無線ネットワークに対してパケットを大量に投入したりすることで、無線ネットワークの機能を妨害し得る。
【0004】
しかし、このような無線ネットワークに対する妨害攻撃への対策は、現時点ではあまり考慮されていない。
この理由は、現在広く利用されている、ユーザが自身の無線通信端末装置を用いてWEBの閲覧やメールの送受信を行う無線ネットワークの利用モデルにおいては、無線ネットワークの機能を妨害することは、攻撃で得られる価値が少ない、もしくは、ある特定のユーザを狙っての突発的な嫌がらせ攻撃が大半であるためと考えられる。
即ち、サービスを妨害することが目的ならば、インターネット上のサーバを直接攻撃するほうが手っ取り早く、したがってこのような個人利用を目的とする無線ネットワークに対する妨害攻撃への対策は、現時点ではあまり考慮されていないものと思われる。
【0005】
一方、近年では、無線センサネットワークが提案されている。
無線センサネットワークとは、無線通信機能を備えたセンサ機器により形成されるネットワークであり、センサ機器で収集したセンシングデータをもとにデジタル情報機器を制御したり、設備や環境の状態をモニタリングしたり、といった用途が考えられている。
このようなセンサネットワークでは、センサ機器により収集されるデータに価値があるため、センシングデータの収集を妨害するような、無線ネットワークに対するサービス妨害攻撃は、大きな脅威となり得る。
したがって、上述のような個人利用を目的とする無線ネットワークと異なり、攻撃により得られる価値が存在し得るため、妨害攻撃により甚大な影響が発生する可能性がある。
【0006】
上述のような無線ネットワークにおける不正パケットに関し、『無線マルチホップネットワークにおいて不正な無線端末が送信するパケットがネットワーク上の無線回線や認証済の正規な無線端末に及ぼす悪影響を低減すること』を目的とする技術として、『送信端末では認証済の全無線端末で共有される第1の秘密情報を用いて第1の検査データを作成し、自局と宛先の無線端末との間で共有される第2の秘密情報を用いて第2の検査データを作成し、これらの検査データを付加したパケットを送信し、受信端末では第1の検査データを自局の第1の秘密情報を用いて検証し、検証結果が誤りの場合にはパケットを破棄し検証結果が正しい場合は自局が宛先か否かを識別し、宛先でなければパケットを他の無線端末に送信し、自局が宛先である場合は第2の検査データを自局の保持する第2の秘密情報で検査し、結果が誤りの場合はパケットを破棄し結果が正しい場合には受信パケットを受け取る。』というものが提案されている(特許文献1)。
【0007】
【特許文献1】特開2003−69581号公報(要約)
【発明の開示】
【発明が解決しようとする課題】
【0008】
上記特許文献1に記載の技術では、パケットを受信した通信端末装置が、受信したパケットを不正なパケットであるか否かを判断するには、パケット検査データが正しいかどうかの検証処理を終える必要がある。
しかし、センサネットワークを形成する無線通信端末装置は、一般的に低コストを重視して開発されるため、コンピュータ装置などと比較すると計算能力やメモリ容量が非常に乏しいと想定される。
そのため、センサネットワークを形成する無線通信端末装置は、検証処理を必要時間内に終えるだけの処理能力を備えていない場合も考えられる。
【0009】
通信端末装置が単位時間あたりに受信するパケット量に対し単位時間あたりに処理できるパケット量が少ない場合は、例えば、無線ネットワークに対してパケットを大量投入することで、無線ネットワークの機能を妨害しようとする攻撃を受けると、受信バッファがオーバフローしてしまい、受信パケット落ちや遅延が生じてしまう。
【0010】
特に、パケットに暗号化や認証子付与がなされているときには、以下に述べるような課題が更に発生する。
なお、認証子とは、例えばメッセージ認証子(MAC:Message Authentication Code)のように、当該パケットの正当性を証明するための識別符号を指す。
【0011】
一般に、通信端末装置がパケットを受信したときには、そのパケットが暗号化されていて復号する必要があるのか、または、認証子が付与されていてその認証子を検証する必要があるのか、を知る必要がある。
パケットが暗号化/認証子付与処理されているかどうかを知る手段のーつとして、暗号化されていないへッダに暗号化/認証子付与処理の有無を記述しておく方法がある。
パケットを受信した通信端末装置は、へッダを見ることによって、そのパケットのペイロード部分が暗号化/認証子付与処理されていて、復号化/認証子検証の必要があるのか否かを判断することになる。
【0012】
この場合、ネットワークに認証されていない攻撃者であっても、へッダに暗号化/認証子付与処理の”有”を指定した、一見正当な暗号化/認証子付与パケットをネットワークに大量投入することが可能である。
これらのパケットの暗号化/認証子付与処理は、正当な鍵を用いて処理されていないため、上記パケットを受信した通信端末装置が復号化/認証子検証処理することにより、不正であると判断されることになり、最終的には排除することができる。
【0013】
しかし、上記のパケットを受信した通信端末装置は、上記パケットが正当なものであるか否かを判断するため、復号処理/認証子検証処理を実行する必要が生じ、これらの処理を終えるまでは、当該パケットが不正パケットであるか否かを判断できない。
したがって、計算能力やメモリ容量が非常に乏しい通信端末装置にとっては、上述のような不正パケットを自己の処理能力以上に受信すると、妨害攻撃を受けたものと同様の被害を受ける可能性がある。
【0014】
このように、攻撃者は、へッダに暗号化/認証子付与処理の”有”を指定した無意味なパケットをネットワークに大量投入することにより、それらパケットを受信する通信端末装置に対して、復号化/認証子検証処理をさせしめることが可能になる。
その結果、通信端末装置に対してパケット処理負荷をかけることによって、センシングデータの受信遅延を発生させしめたり、受信パケット落ちを発生させしめたりすることが可能になる。
【0015】
以上のような理由から、暗号化/認証子付与処理されたパケットの復号化/認証子検証処理を終える前に、当該パケットが不正パケットであるか否かを容易に判断することのできる送信端末、受信端末が望まれていた。
【課題を解決するための手段】
【0016】
本発明に係る送信端末は、通信パケットを送信する送信部と、前記通信パケットの送信前に当該通信パケットを暗号化する暗号化部と、前記通信パケットが不正パケットであるか否かを前記通信パケットの受信端末が判断するための不正判断データを当該通信パケットへ付与する不正判断データ設定部と、を備え、前記不正判断データ設定部は、前記受信端末との間であらかじめ共有された規則に基づき、前記通信パケットの少なくとも一部を用いて前記不正判断データを生成するものである。
【0017】
また、本発明に係る受信端末は、通信パケットを受信する受信部と、前記通信パケットを受信後に復号化する復号化部と、前記通信パケットが不正パケットであるか否かを判断する不正パケット判断部と、を備え、前記不正パケット判断部は、前記復号化部が前記通信パケットを復号化する前に、前記通信パケットの送信元端末との間であらかじめ共有された規則に基づき、前記通信パケットに付与された不正判断データを用いて前記通信パケットが不正パケットであるか否かを判断し、前記復号化部は、前記不正パケット判断部が不正パケットではないと判断した前記通信パケットのみその後の復号化を実行するものである。
【発明の効果】
【0018】
本発明によれば、受信端末は、受信パケットを全て復号することなく、当該パケットに付与された不正判断データのみを用いて、当該パケットが不正パケットであるか否かを判断することができるので、処理能力等が限られている端末であっても、容易に上述の判断が可能となる。
【発明を実施するための最良の形態】
【0019】
実施の形態1.
図1は、本発明の実施の形態1に係る送信端末100の機能ブロック図である。
送信端末100は、送信データ取得部110、暗号化/認証子生成部120、不正判断データ設定部130、および送信部140を備える。
【0020】
送信データ取得部110は、送信端末100が送信するデータを例えば上位のアプリケーション等から取得し、その送信データを、暗号化/認証子生成部120へ出力する。
暗号化/認証子生成部120は、送信データ取得部110より受け取った送信データに対して暗号化/認証子生成処理を行う。また、暗号化/認証子付与処理を施した送信データを、不正判断データ設定部130へ出力する。
【0021】
不正判断データ設定部130は、暗号化/認証子生成部120より受け取った暗号化/認証子付与処理済みの送信データから任意長kのビット列を選択し、不正判断データとして送信データに付与する。また、不正判断データを付与した送信パケットを、送信部140へ出力する。
【0022】
任意長kのビット列の選択方法は、送信端末100と後述の受信端末200で共有しておく必要がある。これには、例えば以下のような手法が考えられる。
【0023】
(1)ネットワークに認証された通信端末装置のみが知ることができる所定位置のkビット列を選択する。
(2)ネットワークに認証される各通信端末装置に固有の位置のkビット列を選択する。
【0024】
なお、暗号化/認証子付加データ内における複数の位置から任意長kのビット列を選択してもよい。
【0025】
上記の所定位置の決定方法としては、以下のようなものが考えられる。
【0026】
(1)別途与えられる秘密鍵情報を使って算出する。
(2)別途与えられる秘密鍵情報で位置情報を暗号化して受信側の通信端末装置に秘密裏に通知する。
(3)ネットワークに認証された通信端末装置のみが知ることができる所定位置を設定する場合には、例えば、ネットワークに認証された通信端末装置のみが取得できる秘密鍵を用いて所定位置を算出することができる。
(4)ネットワークに認証される各通信端末装置に固有の位置のkビットを設定する場合には、送信端末と受信端末との間に個別に設定される秘密鍵や、互いのID情報を用いて所定位置を算出することができる。
【0027】
上記の所定位置が、送信データ長よりも大きい場合には、送信データ長でmod演算処理した位置を設定することもできる。
【0028】
なお、上述の任意長kは、数ビット程度のなるべく小さいデータとするのが好ましい。kを大きくすればするほど、送受信されるパケットの統計解析により、kビットの位置を攻撃者に特定されやすくなるからである。
また、この任意長kのビット列は、送信端末と受信端末との同意の下で、定期的または不定期に変更しても構わない。
【0029】
送信部140は、不正判断データが付与された暗号化/認証子付与処理済の送信パケットを、後述の受信端末200に宛てて送信する。
【0030】
送信データ取得部110、暗号化/認証子生成部120、および不正判断データ設定部130は、これらの機能を実現する回路デバイス等のハードウェアで構成することもできるし、マイコンやCPU(Central Processing Unit)等の演算装置とその動作を規定するソフトウェアで構成することもできる。
送信部140は、有線・無線等の必要な通信インターフェースを適宜備える。
【0031】
暗号化/認証子生成部120は、暗号化を行う機能部と、認証子を生成する機能部とに分割して構成することもできる。
【0032】
図2は、本実施の形態1に係る受信端末200の機能ブロック図である。
受信端末200は、受信部210、不正パケット判断部220、復号化/認証子検証部230、および受信データ取得部240を備える。
【0033】
受信部210は、不正判断データが付与された暗号化/認証子付与処理済の受信パケットを、送信端末100より受信する。また、受信したパケットを不正パケット判断部220へ出力する。
【0034】
不正パケット判断部220は、受信部210より不正判断データが付与された暗号化/認証子付与処理済の受信パケットを受け取り、そのパケットが不正パケットであるか否かを判断する。
不正パケット判断部220は、パケットに付与された任意長kのビット列が、受信パケット内における所定位置のkビットと一致するかどうかを検証する。
両者が一致すれば当該パケットは正当である可能性があると判断し、一致しなければ当該パケットは不当であると判断して破棄する。正当である「可能性」としたのは、後の復号化や認証子検証により、不正パケットであると判断される可能性があるからである。以後の説明でも同様である。
不正パケット判断部220は、正当である可能性があると判断した暗号化/認証子付与パケットを、復号化/認証子検証部230へ出力する。
【0035】
なお、任意長kビットの所定の位置の選択方法に関しては、送信端末100と受信端末200で一致している必要がある。
また、任意長kビットの位置が一定期間変更しない場合には、RAM(Random Access Memory)等の記憶装置に格納する管理テーブル等にその位置を保持させておき、常時簡易に参照できる形にしておくことが望ましい。
【0036】
復号化/認証子検証部230は、不正パケット判断部220より受け取った、正当である可能性があると判断された受信パケットに対して、復号化/認証子検証処理を行なう。また、復号化/認証した平文データを、受信データ取得部240へ出力する。
受信データ取得部240は、復号化/認証子検証部230より、復号化/認証された平文データを取得する。
【0037】
不正パケット判断部220、復号化/認証子検証部230、および受信データ取得部240は、これらの機能を実現する回路デバイス等のハードウェアで構成することもできるし、マイコンやCPU等の演算装置とその動作を規定するソフトウェアで構成することもできる。
受信部210は、有線・無線等の必要な通信インターフェースを適宜備える。
【0038】
復号化/認証子検証部230は、復号化を行う機能部と、認証子検証を行う機能部とに分割して構成することもできる。
【0039】
以上、本実施の形態1に係る送信端末100と受信端末200の構成を説明した。
次に、本実施の形態1に係る送信端末100と受信端末200の動作を説明する。
【0040】
図3は、送信端末100のパケット送信動作を説明する図である。以下、図3の各ステップについて説明する。
【0041】
(S101:送信データの取得)
送信データ取得部110は、送信データを取得する。
(S102:暗号化/認証子付与)
暗号化/認証子生成部120は、送信データに対して暗号化/認証子付与処理を行う。
【0042】
(S103:不正判断データの設定)
不正判断データ設定部130は、暗号化/認証子付与処理が行われた送信データから、秘密位置のビット長kのビット列をコピーし、不正判断データとして送信データに付与する。
(S104:データの送信)
送信部140は、不正判断データを付与した、暗号化/認証子付与処理済みの送信パケットを、受信端末200に宛てて送信する。
【0043】
図4は、受信端末200のパケット受信動作を説明する図である。以下、図4の各ステップについて説明する。
【0044】
(S105:暗号化データの受信)
受信部210は、不正判断データが付与され、暗号化/認証子付与処理されたパケットを受信する。
(S106:不正パケットの判断)
不正パケット判断部220は、受信したパケットに含まれる不正判断データと、暗号化/認証子付与処理された受信パケットの中の、秘密位置のkビットとが一致するかどうかを検証する。
一致すれば、受信したパケットを正当である可能性があると判断する。一致しなければ、受信したパケットを不当であると判断し、その後の処理を破棄する。
【0045】
(S107:復号化/認証子検証)
復号化/認証子検証部230は、正当である可能性があると判断された受信パケットの復号化/認証子検証処理を行なう。検証結果が失敗した場合は、当該パケットを不当であると判断し、そのデータを破棄する。
(S108:平文データの取得)
受信データ取得部240は、復号化/認証された平文データを取得する。
【0046】
以上のように、本実施の形態1に係る送信端末100は、暗号化/認証子付与された送信パケットから、正当な送信端末100のみ知る秘密位置のkビット列を選択し、そのkビットをコピーして送信データに付与する。
また、本実施の形態1に係る受信端末200は、受信したパケットを復号化/認証子検証する前に、正しい場所のkビットが送信データに付与されているかどうかによって、受信したパケットが不正な暗号化パケットであるか否かを判断する。
【0047】
したがって、受信端末200は、パケットの復号化/検証処理を行なう前に、たかだかkビットの参照処理のみによって、不正パケットを排除することが可能となる。
これにより、受信端末200の受信バッファや処理能力に制約がある場合でも、受信パケット落ちや遅延を少なくし、不当な暗号化パケットの過負荷投入によるサービス妨害(DoS)攻撃等を緩和することができる。
【0048】
また、本実施の形態1では、攻撃者による送信パケット偽造が成功する確率につき、以下のような効果がある。
【0049】
攻撃者は、ネットワークに認証された正当な送信端末100と同様に、自身の生成した不正な送信データにランダムなkビットを付加し、その送信データをネットワークに投入することができる。
この場合、攻撃者は、「正当なパケットである可能性がある」と判断される不正判断データを偽造することが可能となる。
しかし、攻撃者は生成した不正判断データが受信端末200にどのように判断されたかを外部から判断することは困難である。
したがって、攻撃者が投入した妨害暗号化パケットが正当なパケットであると判断される確率を1/(2^k)に抑えることができ、攻撃者の動機を減らす効果がある。
【0050】
実施の形態2.
実施の形態1において、攻撃者が不正に付与した不正判断データが、偶然にも正当な位置のkビットと一致する場合、パケットを受信した受信端末200は、その後に復号化/認証子検証処理を行って、不正パケットを排除する必要がある。
本発明の実施の形態2では、受信端末200は、受信したパケットの復号化/認証子検証処理の途中過程において、復号化/認証子検証処理と、不正判断データの検証とを一体的に行い、以後の復号化/認証子検証処理を続けるか否かを判断する。
【0051】
なお、暗号化/認証子付与処理には、暗号化処理を行ってから、暗号化されたデータに対する認証子を生成して付与するものと、平文データに対する認証子を生成して付与してから、それら認証子が付加されたデータを暗号化処理する場合とがある。
本実施の形態2では、暗号化処理を行ってから認証子を生成する場合における処理について説明する。
【0052】
図5は、本実施の形態2に係る送信端末100の機能ブロック図である。
本実施の形態2に係る送信端末100は、送信データ取得部110、暗号化部150、認証子/不正判断データ生成部160、不正判断データ設定部130、および送信部140を備える。
【0053】
送信データ取得部110は、送信端末100が送信するデータを例えば上位のアプリケーション等から取得し、その送信データを暗号化部150へ出力する。
暗号化部150は、送信データ取得部110より受け取った送信データに対して暗号化処理を行う。また、暗号化処理を施した送信データを、認証子/不正判断データ生成部160へ出力する。
【0054】
認証子/不正判断データ生成部160は、暗号化部150より受け取った暗号化送信データに対する認証子生成処理を行うとともに、認証子生成の過程で任意長のビット列を抽出する。
認証子生成処理には、例えば後述の図6で説明するCBC−MAC(Cipher Block Chaining − Message Authentication Code)を使用することができる。
認証子/不正判断データ生成部160は、CBC−MACを使用して生成した認証子を付与した暗号化送信データと、生成した不正判断データを、不正判断データ設定部130へ出力する。
【0055】
不正判断データ設定部130は、認証子/不正判断データ生成部160より受け取った認証子を付与された暗号化送信データに、同じく認証子/不正判断データ生成部160より受け取った不正判断データを付与する。
不正判断データ設定部130は、不正判断データを付与した暗号化/認証子付与処理済の送信データを、送信部140へ出力する。
【0056】
送信部140は、不正判断データが付与された暗号化/認証子付与処理済の送信パケットを、受信端末200に宛てて送信する。
【0057】
送信データ取得部110、暗号化部150、認証子/不正判断データ生成部160、および不正判断データ設定部130は、これらの機能を実現する回路デバイス等のハードウェアで構成することもできるし、マイコンやCPU等の演算装置とその動作を規定するソフトウェアで構成することもできる。
送信部140は、有線・無線等の必要な通信インターフェースを適宜備える。
【0058】
認証子/不正判断データ生成部160は、認証子を生成する機能部と、不正判断データを生成する機能部とに分割して構成することもできる。
【0059】
図6は、CBC−MACの処理概要と、その処理過程において不正判断データを抽出する処理とを説明する図である。
CBC−MACは、ブロック暗号の処理過程を利用して認証子を生成するアルゴリズムである。以下、図6の処理手順について説明する。
【0060】
(1)暗号化部150は、暗号化する送信データを、複数(n個)のブロック(図6のブロック1〜ブロックn)に分割する。
【0061】
(2)暗号化部150は、送信データとは別に定められた被暗号ブロック0(図6のブロック0:Nonce)を、所定の暗号化関数Eで暗号化する。
なお、ブロック0(Nonce)とは,同じ送信データに対し同じ鍵を用いて認証子を生成した場合でも、暗号化の都度異なる認証子を生成させるために設定される一時的な情報である。
例えば、送信端末100の識別子や、送信端末100と受信端末200とが共有するフレームカウンタ値等が、ブロック0(Nonce)として用いられる。
【0062】
(3)暗号化部150は、前のブロックの暗号化結果と、次のブロックとの排他的論理和をとり、その結果を暗号化関数で暗号化する。
(4)認証子/不正判断データ生成部160は、ブロックt(t<n)の暗号化結果から任意長のビット列を抽出し、これを不正判断データとして用いる。
【0063】
(5)暗号化部150は、ステップ(3)〜(4)の手順をブロックnまで繰り返し実行する。
(6)認証子/不正判断データ生成部160は、ブロックnの暗号化結果を認証子として用いる。
【0064】
図6のような仕組みにより、受信端末200は、再生攻撃を検知することができる。
なお、図6では1箇所のブロックの暗号結果から1つの任意長ビット列を抽出することを説明したが、これらの個数に制限はなく、例えば複数個所のブロックの暗号結果それぞれから複数の任意長ビット列を抽出して不正判断データとしても構わない。
本実施の形態2では、説明の簡単のため、図6で説明した手順を前提にする。
【0065】
図7は、本実施の形態2に係る受信端末200の機能ブロック図である。
本実施の形態2に係る受信端末200は、受信部210、認証子検証/不正パケット判断部250、復号化部260、および受信データ取得部240を備える。
【0066】
受信部210は、不正判断データを付与された暗号化/認証子付与処理済の受信パケットを送信端末100より受信する。また、受信パケットを認証子検証/不正パケット判断部250へ出力する。
【0067】
認証子検証/不正パケット判断部250は、受信部210より不正判断データを付与された暗号化/認証子付与パケットを受け取り、そのパケットが不正なバケットであるか否かを判断する。
認証子検証/不正パケット判断部250は、受信したパケットに対し、図6と同様の手順により認証子を生成してその検証を行う。また、その過程で図6と同様の手順により同じビット長のビット列を抽出し、不正判断データと一致するか否かを検証する。
【0068】
認証子検証/不正パケット判断部250は、認証子の検証途中過程で、抽出したビット列が不正判断データと一致するか否かを検証することができる。
その時点で両者の一致が確認できれば、当該受信パケットは正当である可能性があるとして以後の認証子検証処理を継続する。不一致であれば不正パケットであると判断して認証子検証処理を中止し、当該受信パケットを破棄する。
【0069】
認証子検証/不正パケット判断部250は、上述の認証子検証処理の結果、正当であると判断した受信パケットに限り、認証子を除去した暗号化パケットを復号化部260へ出力する。
【0070】
復号化部260は、認証子検証/不正パケット判断部250より受け取った暗号化パケットに対して復号化処理を行なう。また、復号化された平文データを受信データ取得部240へ出力する。
受信データ取得部240は、復号化部260より平文データを受け取る。
【0071】
認証子検証/不正パケット判断部250、復号化部260、および受信データ取得部240は、これらの機能を実現する回路デバイス等のハードウェアで構成することもできるし、マイコンやCPU等の演算装置とその動作を規定するソフトウェアで構成することもできる。
受信部210は、有線・無線等の必要な通信インターフェースを適宜備える。
【0072】
認証子検証/不正パケット判断部250は、認証子検証を行う機能部と、不正パケット判断を行う機能部とに分割して構成することもできる。
【0073】
以上、本実施の形態2に係る送信端末100と受信端末200の構成を説明した。
次に、本実施の形態2に係る送信端末100と受信端末200の動作を説明する。
【0074】
図8は、本実施の形態2に係る送信端末100のパケット送信動作を説明する図である。以下、図8の各ステップについて説明する。
【0075】
(S201:送信データの取得)
送信データ取得部110は、送信データを取得する。
(S202:暗号化処理部)
暗号化部150は、送信データに対して暗号化処理を行う。
(S203:認証子と不正判断データの生成)
認証子/不正判断データ生成部160は、暗号化された送信データから認証子と不正判断データを生成する。不正判断データの生成手順は、図6で説明した通りである。
【0076】
(S204:不正判断データの設定)
不正判断データ設定部130は、認証子/不正判断データ生成部160が生成した不正判断データを、暗号化/認証子付与処理された送信データに付与する。
(S205:データの送信)
送信部140は、不正判断データを付与した、暗号化/認証子付与処理されたパケットを、受信端末200に宛てて送信する。
【0077】
図9は、本実施の形態2に係る受信端末200のパケット受信動作を説明する図である。以下、図9の各ステップについて説明する。
【0078】
(S206:データの受信)
受信部210は、不正判断データが付与され、暗号化/認証子付与処理されたパケットを受信する。
【0079】
(S207:認証子の検証と不正パケットの判断)
認証子検証/不正パケット判断部250は、受信したパケットの認証子検証を行なうとともに、認証子検証処理の過程で図6で説明した手順により抽出した任意長ビット列と、不正判断データとが一致するか否かを検証する。
任意長ビット列を抽出して不正判断データと一致するか否かを検証した時点で両者の一致が確認できれば、当該受信パケットは正当である可能性があるとして以後の認証子検証処理を継続する。不一致であれば不正パケットであると判断して認証子検証処理を中止し、当該受信パケットを破棄する。
【0080】
(S208:認証子の検証)
認証子検証/不正パケット判断部250は、認証子検証処理を行う。
認証子検証/不正パケット判断部250は、生成された認証子とパケットに付与されている認証子とが一致する場合は、受け取った暗号化/認証子付与パケットが正当パケットであると判断し、認証子を除去した暗号化データを復号化部260へ出力する。
両者が一致しなかった場合は、受け取った暗号化/認証子付与パケットが不正パケットであると判断し、当該パケットを破棄する。
【0081】
(S209:復号処理)
復号化部260は、正当であると判断された暗号化データを復号する。
(S210:平文データの取得)
受信データ取得部240は、復号された平文データを取得する。
【0082】
なお、CBC−MACの処理過程におけるいずれの位置のビット列を不正判断データとするかについての規則は、送信端末100と受信端末200の間であらかじめ共有しておく。
【0083】
以上のように、本実施の形態2に係る送信端末100は、暗号化処理を行ってから認証子を生成する処理モードにおいて、認証子生成処理の途中演算結果から任意長のビット列を抽出し、抽出したビット列を不正判断データとして送信データに付与する。
また、本実施の形態2に係る受信端末200は、認証子検証処理の過程で生成された任意ビット列が不正判断データと一致するかどうかによって、受信したパケットが不正な暗号化パケットであるか否かを判断する。
【0084】
したがって、受信端末200は、実施の形態1と同様に、受信したパケットの復号化/検証処理を終える前に、受信したパケットが不正パケットであるか否かを判断することができる上に、上記の判断を、認証子検証処理の過程で実施できる。
即ち、認証子検証処理は正当なパケットである可能性があると判断された場合に必須となる処理であり、認証子検証処理と不正パケット判断を一体的に行うことにより、これらの処理を効率的に行うことができるのである。
【0085】
実施の形態3.
実施の形態2において、暗号化/認証子付与処理には、暗号化処理を行ってから、暗号化されたデータに対する認証子を生成して付与するものと、平文データに対する認証子を生成して付与してから、それら認証子が付加されたデータを暗号化処理する場合とがあることを説明した。
本実施の形態3では、認証子を生成してから暗号化する場合における処理について説明する。
【0086】
図10は、本実施の形態3に係る送信端末100の機能ブロック図である。
本実施の形態3に係る送信端末100は、送信データ取得部110、認証子生成部170、暗号化/不正判断データ設定部180、および送信部140を備える。
【0087】
送信データ取得部110は、送信端末100が送信するデータを例えば上位のアプリケーション等から取得する。また、取得した送信データを認証子生成部170へ出力する。
認証子生成部170は、送信データ取得部110より受け取った送信データに対する認証子を生成して付与する。また、認証子を付与した送信データを暗号化/不正判断データ設定部180へ出力する。
【0088】
暗号化/不正判断データ設定部180は、認証子生成部170より受け取った認証子付与された送信データに対して、任意のビット列(不正判断データ)を挿入した上で暗号化処理を行う。
暗号化処理には、例えば後述の図11で説明するようなブ口ック暗号を利用したCTR(Counter) モードを利用する。
暗号化/不正判断データ設定部180は、暗号化処理を施した送信データを送信部140へ出力する。
送信部140は、不正判断データを付与された暗号化/認証子付与パケットを、受信端末200に宛てて送信する。
【0089】
送信データ取得部110、認証子生成部170、および暗号化/不正判断データ設定部180は、これらの機能を実現する回路デバイス等のハードウェアで構成することもできるし、マイコンやCPU等の演算装置とその動作を規定するソフトウェアで構成することもできる。
送信部140は、有線・無線等の必要な通信インターフェースを適宜備える。
【0090】
暗号化/不正判断データ設定部180は、暗号化を行う機能部と、不正判断データの付与を行う機能部とに分割して構成することもできる。
【0091】
図11は、CTRモードの暗号化および復号化の処理概要と、平文データに不正判断データを挿入する処理とを説明する図である。以下、図11の処理手順について説明する。
【0092】
(1)暗号化/不正判断データ設定部180は、暗号化する平文データを、後述する不正判断データを挿入した後、ブロック暗号のブロック長単位で分割(図11の平文ブロック1〜平文ブロックn)に分割する。
【0093】
(2)暗号化/不正判断データ設定部180は、tブロック目(t<n)に任意長の任意ビット列を挿入し、このビット列を不正判断データとする。
この不正判断データとして用いる任意長のビット列は、例えば、tブロック目に設定することが規定されている送信端末100や受信端末200の識別情報など、送信端末100と受信端末200との間で予め規定された情報を用いることができる。
【0094】
(3)暗号化/不正判断データ設定部180は、平文データとは別に定められたデータ(図11のNonce)と、ブロックカウンタとの和をとり、その結果を所定の暗号化関数で暗号化する。
なお、Nonceとは、実施の形態2と同様に、同じ送信データに対し同じ鍵を用いて認証子を生成した場合でも、暗号化の都度異なる認証子を生成させるために設定される一時的な情報である。
例えば、送信端末100の識別子や、送信端末100と受信端末200とが共有するフレームカウンタ値等が、Nonceとして用いられる。
【0095】
(4)暗号化/不正判断データ設定部180は、ステップ(3)の暗号化結果と、被暗号化ブロックとの排他的論理和をとり、その結果を暗号化ブロックとする。
(5)暗号化/不正判断データ設定部180は、ステップ(3)〜(4)の手順を平文ブロックnまで繰り返し実行する。
【0096】
図11のような仕組みにより、受信端末200は、再生攻撃を検知することができる。
なお、図11では1つの平文ブロックに1つの任意長ビット列を挿入して不正判断データとすることを説明したが、これらの個数に制限はなく、例えば複数個所の平文ブロックそれぞれに複数の任意長ビット列を挿入して不正判断データとしても構わない。
本実施の形態3では、説明の簡単のため、図11で説明した手順を前提にする。
【0097】
図12は、本実施の形態3に係る受信端末200の機能ブロック図である。
本実施の形態3に係る受信端末200は、受信部210、復号化/不正パケット判断部270、認証子検証部280、および受信データ取得部240を備える。
【0098】
受信部210は、不正判断データを付与された暗号化/認証子付与処理済のパケットを送信端末100よりより受信する。また、受信したパケットを復号化/不正パケット判断部270へ出力する。
【0099】
復号化/不正パケット判断部270は、受信部210より不正判断データを付与された受信パケットを受け取り、そのパケットが不正パケットであるか否かを判断する。
復号化/不正パケット判断部270は、受信したパケットのtブロック目(t<n)を復号して得たビット列と、不正判断データとが一致するか否かを検証することで、受け取ったパケットが不正パケットであるか否かを判断する。
正当パケットである可能性があると判断した場合は復号化を継続し、不正パケットであると判断した場合は復号化を中止して当該パケットを破棄する。
復号化/不正パケット判断部270は、正当である可能性があると判断した受信パケットに対して復号化を行い、認証子が付与された平文データを認証子検証部280へ出力する。
【0100】
認証子検証部280は、復号化/不正パケット判断部270から受け取った、認証子が付与された平文データに対して、認証子の検証処理を行なう。
認証子検証部280は、認証子の検証に成功すると、認証された平文データを受信データ取得部240へ出力する。認証子の検証に失敗すると、平文データを不正であると判断して破棄する。
受信データ取得部240は、認証子検証部280より平文データを取得する。
【0101】
復号化/不正パケット判断部270、認証子検証部280、および受信データ取得部240は、これらの機能を実現する回路デバイス等のハードウェアで構成することもできるし、マイコンやCPU等の演算装置とその動作を規定するソフトウェアで構成することもできる。
受信部210は、有線・無線等の必要な通信インターフェースを適宜備える。
【0102】
復号化/不正パケット判断部270は、復号化を行う機能部と、不正パケットの判断を行う機能部とに分割して構成することもできる。
【0103】
以上、本実施の形態3に係る送信端末100と受信端末200の構成を説明した。
次に、本実施の形態3に係る送信端末100と受信端末200の動作を説明する。
【0104】
図13は、本実施の形態3に係る送信端末100のパケット送信動作を説明する図である。以下、図13の各ステップについて説明する。
【0105】
(S301:送信データの取得)
送信データ取得部110は、送信データを取得する。
(S302:認証子の生成・付与)
認証子生成部170は、送信データに対する認証子生成と付与を行う。
(S303:不正判断データの挿入と暗号化)
暗号化/不正判断データ設定部180は、認証子付与された送信データのtブロック目(t<n)に不正判断データを挿入し、不正判断データを挿入した平文データに対して暗号化処理を行う。
【0106】
(S304:不正判断データの設定)
暗号化/不正判断データ設定部180は、ステップS303で挿入した不正判断データを、暗号化/認証子付与処理された送信データにさらに付与する。
(S305:データ送信)
送信部140は、不正判断データを付与した、暗号化/認証子付与処理されたパケットを、受信端末200に宛てて送信する。
【0107】
なお、tブロック目に挿入する不正判断データの内容や挿入位置が送信端末100と受信端末200の間で共有されている場合は、ステップS304において、送信パケットに不正判断データをさらに付与しなくてもよい。
図13では、不正判断データとして用いる任意長のビット列が送信端末100と受信端末200との間で共有ないし規定されていないことを前提とし、送信パケットの先頭にも不正判断データを付与する動作例を説明した。
【0108】
図14は、本実施の形態3に係る受信端末200のパケット受信動作を説明する図である。以下、図14の各ステップについて説明する。
【0109】
(S306:データの受信)
受信部210は、不正判断データが付与され、暗号化/認証子付与処理されたパケットを受信する。
【0110】
(S307:復号化と不正パケット判断)
復号化/不正パケット判断部270は、受信したパケットのtブ口ック目(t<n)を復号して得たビット列と、不正判断データとが一致するか否かを検証することで、受け取った暗号化/認証子付与パケットが不正パケットであるか否かを判断する。
正当パケットである可能性があると判断した場合は復号化を継続し、不正パケットであると判断した場合は復号化を中止して当該パケットを破棄する。
復号化/不正パケット判断部270は、正当である可能性があると判断した受信パケットに対して復号化を行い、認証子が付与された平文データを認証子検証部280へ出力する。
【0111】
(S308:認証子の検証)
認証子検証部280は、認証子の検証を行なう。認証子検証部280は、認証子の検証に成功すると、認証された平文データを受信データ取得部240へ出力する。認証子の検証に失敗すると、平文データを不正であると判断して破棄する。
(S309:平文データの取得)
受信データ取得部240は、復号された平文データを取得する。
【0112】
本実施の形態3では、認証子を付与した後に不正判断データを挿入することを説明したが、これに限られるものではなく、あらかじめ不正判断データを挿入した送信データに対しで認証子を生成・付与してもよい。
【0113】
以上のように、本実施の形態3に係る送信端末100は、認証子生成/付与処理を行ってから暗号化処理をする処理モードにおいて、認証子が付与された送信データに対して、任意のビット列を含めて暗号化処理を行い、送信データに挿入した任意長のビット列を不正判断データとして送信データに付与して送信する。
また、受信端末200は、tブロック目(t<n)の復号処理で復号された任意ビット列が不正判断データと一致するかどうかによって、受信したパケットが不正な暗号化パケットであるか否かを判断する。
【0114】
したがって、受信端末200は、実施の形態1と同様に、受信したパケットの復号化/検証処理を終える前に、受信したパケットが不正パケットであるか否かを判断することができる上に、上記の判断を、認証子検証処理の前段階で実施される復号処理の過程で実施することができる。
これにより、復号処理と認証子検証処理を終えてから不正パケットであるか否かを判断する場合と比べて、不正パケットであるか否かの判断に必要な処理が少なくてすむ。
【0115】
実施の形態4.
実施の形態1〜3では、復号化/認証子検証処理を開始する前に不正判断データの検証を行うことを説明したが、暗号化フラグが”有”であることを確認してから、復号化/認証子検証処理を開始するまでの間に、パケットに付加されているフレームカウンタ値のチェック処理を行ってもよい。この場合の処理手順は、以下のようになる。
【0116】
(1)受信端末200は、受信したパケットの復号化/認証子検証処理に成功したことを受けて、当該パケットの送信端末100の識別子と、その送信端末100に関連付く最新のフレームカウンタ値とを把握しておく。
(2)受信端末200は、暗号化フラグ”有”のパケットを受信すると、復号化/認証子検証処理を実施するかどうかの判断にあたり、受信したパケットのフレームカウンタ値が、当該パケットの送信端末100のフレームカウンタ値と比較して、更新されているか否かを判断する。
【0117】
(3)受信端末200は、このフレームカウンタ値が更新されている場合に限り、不正判断データの検証を行う。
(4)受信端末200は、当該受信パケットが正当なパケットである可能性があると判断した場合に限り、復号化/認証子検証処理を実施する。
【0118】
実施の形態5.
以上の実施の形態1〜4では、送信端末100と受信端末200とが別端末であるものとして説明を行ったが、これらが一体的に構成された通信端末に対しても、本発明を適用することができる。
例えば、送信端末と受信端末の構成をともに備える中継装置に本発明を適用することもできる。
【0119】
また、本発明は、マルチホップネットワークを構成する通信端末に対して適用することもできる。
【図面の簡単な説明】
【0120】
【図1】実施の形態1に係る送信端末100の機能ブロック図である。
【図2】実施の形態1に係る受信端末200の機能ブロック図である。
【図3】送信端末100のパケット送信動作を説明する図である。
【図4】受信端末200のパケット受信動作を説明する図である。
【図5】実施の形態2に係る送信端末100の機能ブロック図である。
【図6】CBC−MACの処理概要と、その処理過程において不正判断データを抽出する処理とを説明する図である。
【図7】実施の形態2に係る受信端末200の機能ブロック図である。
【図8】実施の形態2に係る送信端末100のパケット送信動作の説明図である。
【図9】実施の形態2に係る受信端末200のパケット受信動作の説明図である。
【図10】実施の形態3に係る送信端末100の機能ブロック図である。
【図11】CTRモードの暗号化および復号化の処理概要と、平文データに不正判断データを挿入する処理とを説明する図である。
【図12】実施の形態3に係る受信端末200の機能ブロック図である。
【図13】実施の形態3に係る送信端末100のパケット送信動作の説明図である。
【図14】実施の形態3に係る受信端末200のパケット受信動作の説明図である。
【符号の説明】
【0121】
100 送信端末、110 送信データ取得部、120 暗号化/認証子生成部、130 不正判断データ設定部、140 送信部、150 暗号化部、160 認証子/不正判断データ生成部、170 認証子生成部、180 暗号化/不正判断データ設定部、200 受信端末、210 受信部、220 不正パケット判断部、230 復号化/認証子検証部、240 受信データ取得部、250 認証子検証/不正パケット判断部、260 復号化部、270 復号化/不正パケット判断部、280 認証子検証部。

【特許請求の範囲】
【請求項1】
通信パケットを送信する送信部と、
前記通信パケットの送信前に当該通信パケットを暗号化する暗号化部と、
前記通信パケットが不正パケットであるか否かを前記通信パケットの受信端末が判断するための不正判断データを当該通信パケットへ付与する不正判断データ設定部と、
を備え、
前記不正判断データ設定部は、
前記受信端末との間であらかじめ共有された規則に基づき、
前記通信パケットの少なくとも一部を用いて前記不正判断データを生成する
ことを特徴とする送信端末。
【請求項2】
前記不正判断データ設定部は、
前記暗号化部が暗号化した前記通信パケットの少なくとも一部をコピーして前記不正判断データを生成する
ことを特徴とする請求項1記載の送信端末。
【請求項3】
前記暗号化部は、
ブロック暗号を用いて前記通信パケットを暗号化し、
前記不正判断データ設定部は、
前記暗号化部が暗号化を行ったブロックの少なくとも一部をコピーして前記不正判断データを生成する
ことを特徴とする請求項1記載の送信端末。
【請求項4】
通信パケットを送信する送信部と、
前記通信パケットの送信前に当該通信パケットを暗号化する暗号化部と、
前記通信パケットが不正パケットであるか否かを受信端末が判断するための不正判断データを当該通信パケットへ付与する不正判断データ設定部と、
を備え、
前記不正判断データ設定部は、
前記受信端末との間であらかじめ共有された規則に基づき、
前記通信パケットに任意ビット列で構成される前記不正判断データを挿入し、
前記暗号化部は、
前記不正判断データを挿入した後の前記通信パケットを暗号化する
ことを特徴とする送信端末。
【請求項5】
前記不正判断データ設定部は、
前記暗号化部が暗号化した後の前記通信パケットに前記不正判断データを付与する
ことを特徴とする請求項4記載の送信端末。
【請求項6】
通信パケットを受信する受信部と、
前記通信パケットを受信後に復号化する復号化部と、
前記通信パケットが不正パケットであるか否かを判断する不正パケット判断部と、
を備え、
前記不正パケット判断部は、
前記復号化部が前記通信パケットを復号化する前に、
前記通信パケットの送信元端末との間であらかじめ共有された規則に基づき、
前記通信パケットに付与された不正判断データを用いて前記通信パケットが不正パケットであるか否かを判断し、
前記復号化部は、
前記不正パケット判断部が不正パケットではないと判断した前記通信パケットのみその後の復号化を実行する
ことを特徴とする受信端末。
【請求項7】
前記不正パケット判断部は、
前記通信パケットに付与された不正判断データと、
前記復号化部が復号化する前における前記通信パケットの所定箇所のビット列とが一致するか否かにより、
前記通信パケットが不正パケットであるか否かを判断する
ことを特徴とする請求項6記載の受信端末。
【請求項8】
前記復号化部は、
ブロック暗号を用いて前記通信パケットを復号化し、
前記不正パケット判断部は、
前記通信パケットに付与された不正判断データと、
前記復号化部が復号化を行った所定箇所のビット列とが一致するか否かにより、
前記通信パケットが不正パケットであるか否かを判断する
ことを特徴とする請求項6記載の受信端末。
【請求項9】
通信パケットを受信する受信部と、
前記通信パケットを受信後に復号化する復号化部と、
前記通信パケットが不正パケットであるか否かを判断する不正パケット判断部と、
を備え、
前記不正パケット判断部は、
前記通信パケットの送信元端末との間であらかじめ共有された規則に基づき、
前記復号化部が復号化を行った所定箇所のビット列が所定のビット列と一致するか否かにより、
前記通信パケットが不正パケットであるか否かを判断する
ことを特徴とする受信端末。
【請求項10】
通信パケットを受信する受信部と、
前記通信パケットを受信後に復号化する復号化部と、
前記通信パケットが不正パケットであるか否かを判断する不正パケット判断部と、
を備え、
前記不正パケット判断部は、
前記通信パケットの送信元端末との間であらかじめ共有された規則に基づき、
前記通信パケットに付与された不正判断データと、
前記復号化部が復号化を行った所定箇所のビット列とが一致するか否かにより、
前記通信パケットが不正パケットであるか否かを判断する
ことを特徴とする受信端末。
【請求項11】
請求項1記載の送信端末と、請求項6記載の受信端末と、
を有し、
前記受信端末は、
前記送信端末が送信した通信パケットを受信し、
その通信パケットが不正パケットであるか否かを前記規則に基づき判断する
ことを特徴とする通信システム。
【請求項12】
請求項2記載の送信端末と、請求項7記載の受信端末と、
を有し、
前記受信端末は、
前記送信端末が送信した通信パケットを受信し、
その通信パケットが不正パケットであるか否かを前記規則に基づき判断する
ことを特徴とする通信システム。
【請求項13】
請求項3記載の送信端末と、請求項8記載の受信端末と、
を有し、
前記受信端末は、
前記送信端末が送信した通信パケットを受信し、
その通信パケットが不正パケットであるか否かを前記規則に基づき判断する
ことを特徴とする通信システム。
【請求項14】
請求項4記載の送信端末と、請求項9記載の受信端末と、
を有し、
前記受信端末は、
前記送信端末が送信した通信パケットを受信し、
その通信パケットが不正パケットであるか否かを前記規則に基づき判断する
ことを特徴とする通信システム。
【請求項15】
請求項5記載の送信端末と、請求項10記載の受信端末と、
を有し、
前記受信端末は、
前記送信端末が送信した通信パケットを受信し、
その通信パケットが不正パケットであるか否かを前記規則に基づき判断する
ことを特徴とする通信システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2009−272973(P2009−272973A)
【公開日】平成21年11月19日(2009.11.19)
【国際特許分類】
【出願番号】特願2008−122926(P2008−122926)
【出願日】平成20年5月9日(2008.5.9)
【出願人】(000000295)沖電気工業株式会社 (6,645)
【Fターム(参考)】