特許第6844908号(P6844908)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ タタ コンサルタンシー サービシズ リミテッドの特許一覧

特許6844908セキュアセッションの確立と暗号化データ交換のためのコンピュータ利用システム及びコンピュータ利用方法
<>
  • 特許6844908-セキュアセッションの確立と暗号化データ交換のためのコンピュータ利用システム及びコンピュータ利用方法 図000005
  • 特許6844908-セキュアセッションの確立と暗号化データ交換のためのコンピュータ利用システム及びコンピュータ利用方法 図000006
  • 特許6844908-セキュアセッションの確立と暗号化データ交換のためのコンピュータ利用システム及びコンピュータ利用方法 図000007
  • 特許6844908-セキュアセッションの確立と暗号化データ交換のためのコンピュータ利用システム及びコンピュータ利用方法 図000008
  • 特許6844908-セキュアセッションの確立と暗号化データ交換のためのコンピュータ利用システム及びコンピュータ利用方法 図000009
  • 特許6844908-セキュアセッションの確立と暗号化データ交換のためのコンピュータ利用システム及びコンピュータ利用方法 図000010
  • 特許6844908-セキュアセッションの確立と暗号化データ交換のためのコンピュータ利用システム及びコンピュータ利用方法 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6844908
(24)【登録日】2021年3月1日
(45)【発行日】2021年3月17日
(54)【発明の名称】セキュアセッションの確立と暗号化データ交換のためのコンピュータ利用システム及びコンピュータ利用方法
(51)【国際特許分類】
   H04L 9/08 20060101AFI20210308BHJP
   G06F 21/60 20130101ALI20210308BHJP
【FI】
   H04L9/00 601C
   H04L9/00 601E
   G06F21/60 360
【請求項の数】13
【全頁数】21
(21)【出願番号】特願2020-158667(P2020-158667)
(22)【出願日】2020年9月23日
(62)【分割の表示】特願2015-205253(P2015-205253)の分割
【原出願日】2015年10月19日
(65)【公開番号】特開2020-202594(P2020-202594A)
(43)【公開日】2020年12月17日
【審査請求日】2020年10月21日
(31)【優先権主張番号】3349/MUM/2014
(32)【優先日】2014年10月20日
(33)【優先権主張国】IN
【早期審査対象出願】
(73)【特許権者】
【識別番号】510337621
【氏名又は名称】タタ コンサルタンシー サービシズ リミテッド
【氏名又は名称原語表記】TATA Consultancy Services Limited
(74)【代理人】
【識別番号】100121083
【弁理士】
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【弁理士】
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100137903
【弁理士】
【氏名又は名称】菅野 亨
(74)【代理人】
【識別番号】100132067
【弁理士】
【氏名又は名称】岡田 喜雅
(74)【代理人】
【識別番号】100166408
【弁理士】
【氏名又は名称】三浦 邦陽
(72)【発明者】
【氏名】アビジャン バタチャリア
(72)【発明者】
【氏名】トゥリカ ボース
(72)【発明者】
【氏名】ソマ ボンドパッダエ
(72)【発明者】
【氏名】アージット ウキル
(72)【発明者】
【氏名】アルパン パル
【審査官】 行田 悦資
(56)【参考文献】
【文献】 米国特許出願公開第2006/0095758(US,A1)
【文献】 DIERKS, T. et al.,The TLS Protocol Version 1.0,1999年 1月,RFC 2246,p.1-80,[online],[令和1年7月23日検索],<インターネットURL:http://tools.ietf.org/html/rfc2246>
【文献】 UKIL, A. et al.,Lightweight security scheme for vehicle tracking system using CoAP,Proceedings of the International Workshop on Adaptive Security,2013年 9月 8日,p.1-8,<doi:10.1145/2523501.2523504>
【文献】 JAN, M. A. et al.,A Robust Authentication Scheme for Observing Resources in the Internet of Things Environment,2014 IEEE 13th International Conference on Trust, Security and Privacy in Computing and Communicatio,米国,IEEE,2014年 9月24日,p.205-211,<doi:10.1109/TrustCom.2014.31>
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
複数のクライアントデバイスと複数のサーバとの間の、軽量でセキュアなセッションの確立及びセキュアな暗号化データ交換のためのネットワーク内で、稼働するコンピュータ利用システムであって、
前記ネットワークと関連づけられているアプリケーションレイヤーにおいてCoAPを用いてグループ化されて、前記複数のクライアントデバイスと前記複数のサーバとの間の相互認証によるセキュアなセッションの確立を容易にするように構成された、前記セキュアなセッション確立のためのコンポーネント:及び
前記ネットワークと関連づけられているトランスポートレイヤーにおいてグループ化されて、クロスレイヤーアプローチに基づいて、前記複数のクライアントデバイスと前記複数のサーバとの間でのセキュアな暗号化されたデータ交換を可能にするように構成された、前記セキュアな暗号化データ交換のためのコンポーネント:
を具備し、
前記セキュアなセッション確立のためのコンポーネントは、
各クライアントデバイスに設けられた、第一鍵生成器、第一ランダム数生成器、及び第二ランダム数生成器と、
各サーバに設けられた第三ランダム数生成器及び第二鍵生成器と、
を具備し、
前記セキュアな暗号化データ交換のためのコンポーネントは、
セッション初期化ベクトル発生器を有していて、各サーバ及び各クライアントデバイスがセッションキータプルを生成できるようにするように構成された、セッションキータプル発生器
を具備しており、
前記クロスレイヤーアプローチを適用する前記システムは、前記アプリケーションレイヤーを含む上位レイヤーを用いてセキュアなセッションを確立し、前記トランスポートレイヤーを含む下位レイヤーを用いてチャンネル暗号化を実行することにより、制約のあるドメインにおける使用に前記コンピュータ利用システムを適合させる前記上位レイヤーに対する制御を可能にし、
前記セッションキータプル発生器は、クライアントデバイス及びサーバそれぞれによって認証後に生成された、クライアントキー、サーバキー、及びランダム数を受信するように構成され、
前記セッション初期化ベクトル発生器は、前記受信したランダム数を用いて、クライアント初期化ベクトル及びサーバ初期化ベクトルを生成するように構成され、
前記セッションキータプル発生器は、さらに、前記受信したクライアントキー、前記受信したサーバキー、前記クライアント初期化ベクトル、及び前記サーバ初期化ベクトルを含むセッションキータプルを前記クライアントデバイス及びサーバそれぞれにおいて生成し、前記クライアントデバイスと前記サーバとの間のセキュアな暗号化されたデータ交換を可能にするように構成され、
前記クライアントデバイスは、前記クライアントキー及び前記クライアント初期化ベクトルを用いてデータを暗号化し、前記サーバキー及びサーバ初期化ベクトルを用いてデータを復号化し、前記サーバは、前記サーバキー及び前記サーバ初期化ベクトルを用いてデータを暗号化し、前記クライアントキー及び前記クライアント初期化ベクトルを用いてデータを復号化し、前記クライアントデバイス及び前記サーバで、前記トランスポートレイヤーにおいてUDPを用いて、暗号化キーと復号化キーを別々に維持しており、
複数の前記クライアントデバイスのそれぞれは、
ルールの第1セットに基づいて、処理コマンドの第1セットを供給するように構成された第一プロセッサ、
前記第一プロセッサと協業するように構成されると共に、前記処理コマンドの第1セットに基づいて、第一ランダム数を生成するように構成された第一ランダム数生成器、
前記処理コマンドの第1セットに基づいて、前記第一ランダム数及び所定の固有識別子を含むセッション開始要求を生成し、該生成したセッション開始要求をサーバへ送信するように構成されたセッションイニシエータ、
前記サーバと協業して暗号化されたチャレンジコードを受信し、前記第一鍵生成器と協業して秘密鍵を受信すると共に、前記処理コマンドの第1セットに基づき且つ受信した秘密鍵を用いて、第三ランダム数及びクライアントキーを取得するために、前記暗号化されたチャレンジコードを復号するように構成された第一復号器、
前記第一復号器と協業して、前記クライアントキーを受信して保存するように構成された第二レポジトリ、
前記第一プロセッサと協業して、前記処理コマンドの第1セットに基づいて、第二ランダム数を生成するように構成された第二ランダム数生成器、
前記第一復号器と協業して前記第三ランダム数を受信し、前記第二ランダム数生成器と協業して前記生成された第二のランダム数を受信すると共に、前記受信した第三ランダム数及び前記受信した第二ランダム数に基づいて、応答コードを生成するように構成された応答生成器、
前記第二レポジトリと協業して前記クライアントキーを受信し、前記応答生成器と協業して前記応答コードを受信すると共に、前記受信したクライアントキーで前記応答コードを暗号化し、暗号化された応答コードを取得して送信するように構成された第二暗号化器、
前記サーバと協業して、暗号化された最終メッセージを受信し、前記第一鍵生成器と協業して前記秘密鍵を受信するように構成されると共に、前記受信した秘密鍵を用い且つ前記処理コマンドの第1セットに基づいて、第二ランダム数及びサーバキーを取得するために、前記暗号化された最終メッセージを復号化して、前記サーバキーを第二レポジトリに保存するように構成された第三復号器、および
前記第三復号器と協業して前記取得された第二ランダム数を受信し、前記第二ランダム数生成器と協業して前記生成された第二ランダム数を受信するように構成されると共に、前記生成された第二のランダム数を前記受け取った第二のランダム数と比較して前記サーバを認証することにより、前記サーバとのデータ交換のためにセキュアなセッションを確立する第二コンパレータ、
を具備しており、
前記第一ランダム数生成器、前記第二ランダム数生成器、及び前記第三ランダム数生成器によって生成されたランダム数は、再現不可能であり且つセッションごとに異なる、
コンピュータ利用システム。
【請求項2】
複数のクライアントデバイスと複数のサーバとの間の、軽量でセキュアなセッションの確立及びセキュアな暗号化データ交換のためのネットワーク内で、稼働するコンピュータ利用システムであって、
前記ネットワークと関連づけられているアプリケーションレイヤーにおいてCoAPを用いてグループ化されて、前記複数のクライアントデバイスと前記複数のサーバとの間の相互認証によるセキュアなセッションの確立を容易にするように構成された、前記セキュアなセッション確立のためのコンポーネント:及び
前記ネットワークと関連づけられているトランスポートレイヤーにおいてグループ化されて、クロスレイヤーアプローチに基づいて、前記複数のクライアントデバイスと前記複数のサーバとの間でのセキュアな暗号化されたデータ交換を可能にするように構成された、前記セキュアな暗号化データ交換のためのコンポーネント:
を具備し、
前記セキュアなセッション確立のためのコンポーネントは、
各クライアントデバイスに設けられた、第一鍵生成器、第一ランダム数生成器、及び第二ランダム数生成器と、
各サーバに設けられた第三ランダム数生成器及び第二鍵生成器と、
を具備し、
前記セキュアな暗号化データ交換のためのコンポーネントは、
セッション初期化ベクトル発生器を有していて、各サーバ及び各クライアントデバイスがセッションキータプルを生成できるようにするように構成された、セッションキータプル発生器
を具備しており、
前記クロスレイヤーアプローチを適用する前記システムは、前記アプリケーションレイヤーを含む上位レイヤーを用いてセキュアなセッションを確立し、前記トランスポートレイヤーを含む下位レイヤーを用いてチャンネル暗号化を実行することにより、制約のあるドメインにおける使用に前記コンピュータ利用システムを適合させる前記上位レイヤーに対する制御を可能にし、
前記セッションキータプル発生器は、クライアントデバイス及びサーバそれぞれによって認証後に生成された、クライアントキー、サーバキー、及びランダム数を受信するように構成され、
前記セッション初期化ベクトル発生器は、前記受信したランダム数を用いて、クライアント初期化ベクトル及びサーバ初期化ベクトルを生成するように構成され、
前記セッションキータプル発生器は、さらに、前記受信したクライアントキー、前記受信したサーバキー、前記クライアント初期化ベクトル、及び前記サーバ初期化ベクトルを含むセッションキータプルを前記クライアントデバイス及びサーバそれぞれにおいて生成し、前記クライアントデバイスと前記サーバとの間のセキュアな暗号化されたデータ交換を可能にするように構成され、
前記クライアントデバイスは、前記クライアントキー及び前記クライアント初期化ベクトルを用いてデータを暗号化し、前記サーバキー及びサーバ初期化ベクトルを用いてデータを復号化し、前記サーバは、前記サーバキー及び前記サーバ初期化ベクトルを用いてデータを暗号化し、前記クライアントキー及び前記クライアント初期化ベクトルを用いてデータを復号化し、前記クライアントデバイス及び前記サーバで、前記トランスポートレイヤーにおいてUDPを用いて、暗号化キーと復号化キーを別々に維持しており、
複数の前記サーバのそれぞれは、
所定のルールの第2セットに基づいて、処理コマンドの第二セットを供給するように構成された第二プロセッサ、
複数の固有識別子を保存するように構成され、各固有識別子はクライアントデバイスに対応する、第一レポジトリ、
前記第二プロセッサ、前記第一レポジトリ、及び前記クライアントデバイスと協業して、前記処理コマンドの第2セット、前記保存された固有識別子、及び、第一ランダム数と固有識別子を含むセッション開始要求をそれぞれ受信するように構成されると共に、前記クライアントデバイスを識別するために、前記受信した固有識別子を前記保存された固有識別子と照合するように構成された、識別器、
前記第二プロセッサと協業して、前記処理コマンドの第2セットに基づいて、クライアントキー及びサーバキーを生成して送信するように構成された第二鍵生成器、
前記第二プロセッサと協業して、前記処理コマンドの第2セットに基づいて、第三ランダム数を生成して送信するように構成された第三ランダム数生成器、
前記識別器と協業して前記第一ランダム数を受信し、前記第二鍵生成器と協業して前記クライアントキーを受信し、前記第三ランダム数生成器と協業して前記第三ランダム数を受信するように構成されると共に、前記第一ランダム数、前記クライアントキー、及び前記第三ランダム数に基づいて、チャレンジコードを生成するように構成されたチャレンジコード生成器、
前記チャレンジコード生成器と協業して前記生成されたチャレンジコードを受信し、前記第一鍵生成器と協業して秘密鍵を受信するように構成されると共に、前記処理コマンドの第2セットに基づき且つ前記秘密鍵を用いて、前記受信したチャレンジコードを暗号化し、暗号化されたチャレンジコードを取得して送信するように構成された第一暗号化器、
第二鍵生成器と協業して、前記クライアントキーを受信し、前記クライアントデバイスと協業して、暗号化された応答コードを受信するように構成されると共に、前記受信した暗号化された応答コードを、前記クライアントキーで復号化して、前記応答コードに含まれている第二ランダム数及び第三ランダム数を取得するように構成された第二復号器、
前記第二復号器と協業して前記取得された第三ランダム数を受信し、前記第三ランダム数生成器と協業して前記生成された第三ランダム数を受信するように構成されると共に、前記生成された第三ランダム数を、前記受信した第三ランダム数と比較して、前記クライアントデバイスを認証するように構成された第一コンパレータ、および
前記第二復号器、前記第一コンパレータ、及び前記第一鍵生成器と協業するように構成されると共に、前記第三ランダム数、前記サーバキー、及び前記秘密鍵で暗号化された第二ランダム数を含む最終メッセージを暗号化し、暗号化された最終メッセージを取得して前記クライアントデバイスへ送信することにより、前記クライアントデバイスとのデータ交換のためのセキュアなセッションを確立するように構成された、第三暗号化器、
を具備しており、
前記第一ランダム数生成器、前記第二ランダム数生成器、及び前記第三ランダム数生成器によって生成されたランダム数は、再現不可能であり且つセッションごとに異なる、
コンピュータ利用システム。
【請求項3】
請求項1又は請求項2に記載のコンピュータ利用システムであって、
前記第一鍵生成器は、クライアントデバイスとサーバとの間のセキュアなセッションを確立する前に秘密鍵を生成し、該生成した秘密鍵を、前記複数のクライアントデバイス及び前記複数のサーバに対して送信する、コンピュータ利用システム。
【請求項4】
請求項3に記載のコンピュータ利用システムであって、
前記第一鍵生成器によって生成された秘密鍵は、セッションの初めに生成される固有鍵であり、且つ、前記セッションの進行中でのみ有効である、コンピュータ利用システム。
【請求項5】
請求項1から請求項4のいずれかに記載のコンピュータ利用システムであって、
セキュアなセッションの確立を可能にするためのCoAPを含む制約のあるデバイスのためのアプリケーションレイヤーと統合される、コンピュータ利用システム。
【請求項6】
請求項1から請求項5のいずれかに記載のコンピュータ利用システムであって、
セキュアな暗号化されたデータ交換を可能にするためのDTLSを含むトランスポートレイヤーセキュリティスキームと統合される、コンピュータ利用システム。
【請求項7】
請求項1から請求項6のいずれかに記載のコンピュータ利用システムであって、
インターフェイスレイヤーを使いセッションキータプルを作成してマップする、コンピュータ利用システム。
【請求項8】
請求項1から請求項7のいずれかに記載のコンピュータ利用システムであって、
メッセージ認証を用いた完全性確認を伴う対称的暗号化を使って、暗号化されたドメインにおける前記アプリケーションレイヤーを介した、セッションの確立を可能にする、コンピュータ利用システム。
【請求項9】
請求項1から請求項8のいずれかに記載のコンピュータ利用システムであって、
DTLS-PSK記録暗号化と同様のセッション構造によってマッピングされるセッションパラメータを導出する、コンピュータ利用システム。
【請求項10】
請求項1から請求項9のいずれかに記載のコンピュータ利用システムであって、
CoAPを含む制約のあるアプリケーションプロトコルを介したセキュアなセッション暗号化、および、それに続く、UDP転送においてセキュアなチャンネルを介した、暗号化されたデータの交換を可能にする、コンピュータ利用システム。
【請求項11】
複数のクライアントデバイスと複数のサーバとの間の、軽量でセキュアなセッションの確立及びセキュアな暗号化データ交換のためのネットワーク内で、稼働するコンピュータ利用方法であって、
各クライアントデバイスに設けられた第一鍵生成器、第一ランダム数生成器、及び第二ランダム数生成器と、各サーバに設けられた第三ランダム数生成器及び第二鍵生成器とを含む、グループ化されたコンポーネントによって、前記ネットワークに関連づけられたアプリケーションレイヤー(CoAP)において、前記各クライアントデバイスと前記各サーバとの間にセキュアなセッションの確立を可能にするステップと:
セッション初期化ベクトル発生器を有するセッションキータプル発生器を含むグループ化されたコンポーネントによって、前記ネットワークと関連付けられたトランスポートレイヤーにおいてセキュアな暗号化されたデータ交換を可能にするステップと:
を具備し、
前記セキュアなセッションの確立を可能にするステップは、
前記第一鍵生成器によって、前記クライアントデバイスと前記サーバとの間のセキュアなセッションを確立する前に秘密鍵を生成し、該生成した秘密鍵を、前記複数のクライアントデバイス及び前記複数のサーバに対して送信するステップと;
前記クライアントデバイス側から前記サーバとのセッションを開始し、前記送信された秘密鍵を使用して前記サーバを認証することにより、前記サーバと前記クライアントデバイスとの間のデータ交換のためのセキュアなセッションを相互認証によって確立するステップと;
前記サーバ側において前記クライアントデバイスからのセッション開始要求を受け取り、前記送信された秘密鍵を用いて前記クライアントデバイスを識別及び認証するステップと;
前記アプリケーションレイヤーにおいてCoAPを用いてグループ化された前記コンポーネントを構成して、前記複数のクライアントデバイスと前記複数のサーバとの間のセキュアなデータ交換セッションの確立を相互認証によって可能にするステップと;
を有し、
前記セキュアな暗号化されたデータ交換を可能にするステップは、
前記セッションキータプル発生器が、クライアントデバイス及びサーバそれぞれによって認証後に生成されたクライアントキー、サーバキー、及びランダム数を受信するステップと;
前記セッション初期化ベクトル発生器が、前記受信したランダム数を用いて、クライアント初期化ベクトル及びサーバ初期化ベクトルを作成するステップと;
前記受信したクライアントキー、前記受信したサーバキー、前記クライアント初期化ベクトル、及び前記サーバ初期化ベクトルを含むセッションキータプルを前記クライアントデバイス及びサーバそれぞれにおいて作成し、前記クライアントデバイスと前記サーバとの間のセキュアな暗号化されたデータ交換を可能にするステップと;
トランスポートレイヤーにおいてグループ化された前記セキュアな暗号化データ交換のためのコンポーネントを構成して、前記複数のクライアントデバイスと前記複数のサーバとの間のセキュアな暗号化されたデータ交換を、クロスレイヤーアプローチに基づいて可能にするステップと;
を有し、
前記クロスレイヤーアプローチを適用する前記システムは、前記アプリケーションレイヤーを含む上位レイヤーを用いてセキュアなセッションを確立し、前記トランスポートレイヤーを含む下位レイヤーを用いてチャンネル暗号化を実行することにより、前記上位レイヤーに対する制御を可能にし、
前記クライアントデバイスと前記サーバとの間の暗号化されたデータ交換の前記ステップは、前記セッションキータプル発生器による前記セッションキータプルを用いた鍵の確立ステップに基づいており、前記クライアントデバイス及び前記サーバで、前記トランスポートレイヤー(UDP)において、暗号化キーと復号化キーを別々に維持するステップを有し、該ステップは、
前記クライアントデバイスにおいて、前記クライアントキー及び前記クライアント初期化ベクトルを用いて、データを暗号化するステップ;
前記クライアントデバイスにおいて、前記サーバキー及び前記サーバ初期化ベクトルを用いて、データを復号化するステップ;
前記サーバにおいて、前記サーバキー及び前記サーバ初期化ベクトルを用いて、データを暗号化するステップ;及び
前記サーバにおいて、前記クライアントキー及び前記クライアント初期化ベクトルを用いて、データを復号化するステップ;
を有し、
複数の前記クライアントデバイスのそれぞれは、
第一プロセッサにより、ルールの第1セットに基づいて、処理コマンドの第1セットを供給するステップと、
第一ランダム数生成器により、前記第一プロセッサと協業して、前記処理コマンドの第1セットに基づいて、第一ランダム数を生成するステップと、
セッションイニシエータにより、前記処理コマンドの第1セットに基づいて、前記第一ランダム数及び所定の固有識別子を含むセッション開始要求を生成し、該生成したセッション開始要求をサーバへ送信するステップと、
第一復号器により、前記サーバと協業して暗号化されたチャレンジコードを受信し、前記第一鍵生成器と協業して秘密鍵を受信すると共に、前記処理コマンドの第1セットに基づき且つ受信した秘密鍵を用いて、第三ランダム数及びクライアントキーを取得するために、前記暗号化されたチャレンジコードを復号するステップと、
第二レポジトリにより、前記第一復号器と協業して、前記クライアントキーを受信して保存するステップと、
第二ランダム数生成器により、前記第一プロセッサと協業して、前記処理コマンドの第1セットに基づいて、第二ランダム数を生成するステップと、
応答生成器により、前記第一復号器と協業して前記第三ランダム数を受信し、前記第二ランダム数生成器と協業して前記生成された第二のランダム数を受信すると共に、前記受信した第三ランダム数及び前記受信した第二ランダム数に基づいて、応答コードを生成するステップと、
第二暗号化器により、前記第二レポジトリと協業して前記クライアントキーを受信し、前記応答生成器と協業して前記応答コードを受信すると共に、前記受信したクライアントキーで前記応答コードを暗号化し、暗号化された応答コードを取得して送信するステップと、
第三復号器により、前記サーバと協業して、暗号化された最終メッセージを受信し、前記第一鍵生成器と協業して前記秘密鍵を受信すると共に、前記受信した秘密鍵を用い且つ前記処理コマンドの第1セットに基づいて、第二ランダム数及びサーバキーを取得するために、前記暗号化された最終メッセージを復号化して、前記サーバキーを第二レポジトリに保存するステップと、
第二コンパレータにより、前記第三復号器と協業して前記取得された第二ランダム数を受信し、前記第二ランダム数生成器と協業して前記生成された第二ランダム数を受信すると共に、前記生成された第二のランダム数を前記受け取った第二のランダム数と比較して前記サーバを認証することにより、前記サーバとのデータ交換のためにセキュアなセッションを確立するステップと、
を実行し、
前記第一ランダム数生成器、前記第二ランダム数生成器、及び前記第三ランダム数生成器によって生成されたランダム数は、再現不可能であり且つセッションごとに異なる、
コンピュータ利用方法。
【請求項12】
複数のクライアントデバイスと複数のサーバとの間の、軽量でセキュアなセッションの確立及びセキュアな暗号化データ交換のためのネットワーク内で、稼働するコンピュータ利用方法であって、
各クライアントデバイスに設けられた第一鍵生成器、第一ランダム数生成器、及び第二ランダム数生成器と、各サーバに設けられた第三ランダム数生成器及び第二鍵生成器とを含む、グループ化されたコンポーネントによって、前記ネットワークに関連づけられたアプリケーションレイヤー(CoAP)において、前記各クライアントデバイスと前記各サーバとの間にセキュアなセッションの確立を可能にするステップと:
セッション初期化ベクトル発生器を有するセッションキータプル発生器を含むグループ化されたコンポーネントによって、前記ネットワークと関連付けられたトランスポートレイヤーにおいてセキュアな暗号化されたデータ交換を可能にするステップと:
を具備し、
前記セキュアなセッションの確立を可能にするステップは、
前記第一鍵生成器によって、前記クライアントデバイスと前記サーバとの間のセキュアなセッションを確立する前に秘密鍵を生成し、該生成した秘密鍵を、前記複数のクライアントデバイス及び前記複数のサーバに対して送信するステップと;
前記クライアントデバイス側から前記サーバとのセッションを開始し、前記送信された秘密鍵を使用して前記サーバを認証することにより、前記サーバと前記クライアントデバイスとの間のデータ交換のためのセキュアなセッションを相互認証によって確立するステップと;
前記サーバ側において前記クライアントデバイスからのセッション開始要求を受け取り、前記送信された秘密鍵を用いて前記クライアントデバイスを識別及び認証するステップと;
前記アプリケーションレイヤーにおいてCoAPを用いてグループ化された前記コンポーネントを構成して、前記複数のクライアントデバイスと前記複数のサーバとの間のセキュアなデータ交換セッションの確立を相互認証によって可能にするステップと;
を有し、
前記セキュアな暗号化されたデータ交換を可能にするステップは、
前記セッションキータプル発生器が、クライアントデバイス及びサーバそれぞれによって認証後に生成されたクライアントキー、サーバキー、及びランダム数を受信するステップと;
前記セッション初期化ベクトル発生器が、前記受信したランダム数を用いて、クライアント初期化ベクトル及びサーバ初期化ベクトルを作成するステップと;
前記受信したクライアントキー、前記受信したサーバキー、前記クライアント初期化ベクトル、及び前記サーバ初期化ベクトルを含むセッションキータプルを前記クライアントデバイス及びサーバそれぞれにおいて作成し、前記クライアントデバイスと前記サーバとの間のセキュアな暗号化されたデータ交換を可能にするステップと;
トランスポートレイヤーにおいてグループ化された前記セキュアな暗号化データ交換のためのコンポーネントを構成して、前記複数のクライアントデバイスと前記複数のサーバとの間のセキュアな暗号化されたデータ交換を、クロスレイヤーアプローチに基づいて可能にするステップと;
を有し、
前記クロスレイヤーアプローチを適用する前記システムは、前記アプリケーションレイヤーを含む上位レイヤーを用いてセキュアなセッションを確立し、前記トランスポートレイヤーを含む下位レイヤーを用いてチャンネル暗号化を実行することにより、前記上位レイヤーに対する制御を可能にし、
前記クライアントデバイスと前記サーバとの間の暗号化されたデータ交換の前記ステップは、前記セッションキータプル発生器による前記セッションキータプルを用いた鍵の確立ステップに基づいており、前記クライアントデバイス及び前記サーバで、前記トランスポートレイヤー(UDP)において、暗号化キーと復号化キーを別々に維持するステップを有し、該ステップは、
前記クライアントデバイスにおいて、前記クライアントキー及び前記クライアント初期化ベクトルを用いて、データを暗号化するステップ;
前記クライアントデバイスにおいて、前記サーバキー及び前記サーバ初期化ベクトルを用いて、データを復号化するステップ;
前記サーバにおいて、前記サーバキー及び前記サーバ初期化ベクトルを用いて、データを暗号化するステップ;及び
前記サーバにおいて、前記クライアントキー及び前記クライアント初期化ベクトルを用いて、データを復号化するステップ;
を有し、
複数の前記サーバのそれぞれは、
第二プロセッサにより、所定のルールの第2セットに基づいて、処理コマンドの第二セットを供給するステップと、
第一レポジトリにより、各々がクライアントデバイスに対応する複数の固有識別子を保存するステップと、
識別器により、前記第二プロセッサ、前記第一レポジトリ、及び前記クライアントデバイスと協業して、前記処理コマンドの第2セット、前記保存された固有識別子、及び、第一ランダム数と固有識別子を含むセッション開始要求をそれぞれ受信すると共に、前記クライアントデバイスを識別するために、前記受信した固有識別子を前記保存された固有識別子と照合するステップと、
第二鍵生成器により、前記第二プロセッサと協業して、前記処理コマンドの第2セットに基づいて、クライアントキー及びサーバキーを生成して送信するステップと、
第三ランダム数生成器により、前記第二プロセッサと協業して、前記処理コマンドの第2セットに基づいて、第三ランダム数を生成して送信するステップと、
チャレンジコード生成器により、前記識別器と協業して前記第一ランダム数を受信し、前記第二鍵生成器と協業して前記クライアントキーを受信し、前記第三ランダム数生成器と協業して前記第三ランダム数を受信すると共に、前記第一ランダム数、前記クライアントキー、及び前記第三ランダム数に基づいて、チャレンジコードを生成するステップと、
第一暗号化器により、前記チャレンジコード生成器と協業して前記生成されたチャレンジコードを受信し、前記第一鍵生成器と協業して秘密鍵を受信すると共に、前記処理コマンドの第2セットに基づき且つ前記秘密鍵を用いて、前記受信したチャレンジコードを暗号化し、暗号化されたチャレンジコードを取得して送信するステップと、
第二復号器により、第二鍵生成器と協業して、前記クライアントキーを受信し、前記クライアントデバイスと協業して、暗号化された応答コードを受信すると共に、前記受信した暗号化された応答コードを、前記クライアントキーで復号化して、前記応答コードに含まれている第二ランダム数及び第三ランダム数を取得するステップと、
第一コンパレータにより、前記第二復号器と協業して前記取得された第三ランダム数を受信し、前記第三ランダム数生成器と協業して前記生成された第三ランダム数を受信すると共に、前記生成された第三ランダム数を、前記受信した第三ランダム数と比較して、前記クライアントデバイスを認証するステップと、
第三暗号化器により、前記第二復号器、前記第一コンパレータ、及び前記第一鍵生成器と協業して、前記第三ランダム数、前記サーバキー、及び前記秘密鍵で暗号化された第二ランダム数を含む最終メッセージを暗号化し、暗号化された最終メッセージを取得して前記クライアントデバイスへ送信することにより、前記クライアントデバイスとのデータ交換のためのセキュアなセッションを確立するステップと、
を実行し、
前記第一ランダム数生成器、前記第二ランダム数生成器、及び前記第三ランダム数生成器によって生成されたランダム数は、再現不可能であり且つセッションごとに異なる、
コンピュータ利用方法。
【請求項13】
請求項11又は請求項12に記載のコンピュータ利用方法であって、
前記セキュアなセッションの確立を可能にするステップは、
前記第一鍵生成器により、前記クライアントデバイスと前記サーバとの間にセキュアなセッションを確立する前に、秘密鍵を生成し、該生成した秘密鍵を前記複数のサーバと前記複数のクライアントデバイスへ送信するステップと;
前記クライアントデバイス側から前記サーバとのセッションを開始し、前記送信された秘密鍵を使用してサーバを認証することにより、サーバとクライアントデバイスとの間のデータ交換のためのセキュアなセッションを相互認証によって確立するステップと;
前記クライアントデバイスからのセッション開始要求を前記サーバが受け取り、前記送信された秘密鍵を用いて前記クライアントデバイスを認証することにより、前記サーバと前記クライアントデバイスとの間のデータ交換のためのセキュアなセッションの確立を可能にするステップと;
を有する、コンピュータ利用方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバとクライアント間のセキュアな認証と暗号化データ交換に関する。
【背景技術】
【0002】
<明細書に使用される用語の定義>
本明細書において以下で使用される「IoT」という用語は、モノのインターネット(Internet of Things)を指し、固有識別されるオブジェクトがインターネット構造の中で仮想的に表される。
本明細書において以下で使用される「M2M」という用語は、ワイヤレスと有線のシステムが異質なデバイスと通信可能なマシンツーマシン技術(Machine to Machine technologies)を指す。
本明細書において以下で使用される「ノンス(nonce)」という用語は、一回限り使用されるランダム数を指す。
本明細書において以下で使用される「データグラム転送(datagram transport)」という用語は、非接続式転送プロトコルを指し、その代表的で普及した実装形態がユーザーデータグラムプロトコル(UDP)である。
本明細書において以下で使用される「プロビジョンフェーズ(provisioning phase)」という用語は、クライアント側とサーバ側を通信前に準備し装備するプロセスを指す。このプロセスは、事前共有秘密鍵(pre-shared-secret key)の埋め込みといった手順を含む。
本明細書において以下で使用される「セッションイニシエータ(session initiator)」という用語は、初期「HELLO」メッセージ(セッション開始要求)をサーバへ送ることにより、セッションを開始するデバイス/クライアントを指す。
本明細書において以下で使用される「セッションキータプル(session key tuple)」という用語は、クライアントデバイスとサーバがセッション中に暗号化データ交換のために必要とする、順序のついた要素一覧を指す。
本明細書において以下で使用される「制約のあるデバイス(constrained devices)」という用語は、制約のある処理リソース(時間と電力を含む)を有するデバイスを指す。
本明細書において以下で使用される「トランスポート層セキュリティスキーム(transport layer security scheme)」という用語は、インターネットで通信するデバイス間のプライバシーを確保するプロトコルを指す。
本明細書において以下で使用される「DTLSスキーム(DTLS scheme)」という用語は、データグラムを伝送する転送プロトコルのために通信セキュリティを確保する、データグラム転送レイヤーのセキュリティプロトコル(Datagram Transport Layer Security protocol)を指す。このプロトコルは、ネットワーク攻撃(傍聴、改ざん、メッセージ偽造など)を防止することにより、データグラムを利用したアプリケーション間のセキュア通信を可能にする。
本明細書において以下で使用される「DTLS-PSK」という用語は、事前共有鍵(PSKs:pre-shared keys)に基づいてセキュア通信を提供するDTLSプロトコルを指す。これらの事前共有鍵は、通信デバイス間で事前に共有され、対称な形態を具備したものである。本明細書において以下で使用される「アプリケーションレイヤー(application layer)」という用語は、通信網でサーバが使用する共有プロトコルとインターフェイス方法を指定する抽象化レイヤー(abstraction layer)を指す。ネットワーク内の異なるアプリケーションの間に効果的な通信を確実にするためのサービスを提供する。
本明細書において以下で使用される「トランスポート層(transport layer)」という用語は、ネットワークのコンポーネントとプロトコルの層化アーキテクチャ(layered architecture)内部での、アプリケーション用のエンドツーエンド通信サービスを指す。「トランスポート層(transport layer)」は、メッセージの信頼性のある着信を確実にし、エラー検証メカニズムとデータフロー制御を提供する。
本明細書において以下で使用される「クロスレイヤーアプローチ(cross layer approach)」という用語は、レイヤー間ネットワーキングモデルに付随する境界を取り除く技術(technique of removing boundaries)を指す。これによってレイヤー間の通信においてあるレイヤーが他のレイヤーのデータにアクセスできるようになり、レイヤー間での相互作用と情報交換を可能にするものである。
以上の定義は本分野での表現に追加される。
【0003】
ネットワーキング通信業界において、IoT/M2M通信端末は、ネットワーキングアプリケーションの重要な形態となってきている。モノのインターネット(IoT)は、オブジェクト、動物や人が、人間間、ヒューマンツーコンピュータの相互作用やM2M通信せずとも、ネットワークを介してデータを転送する能力を有するというシナリオである。モノのインターネットにいうモノとは、心臓モニターインプラントを装着した人、道路の隅に設置されたワイヤレスセキュリティカメラ、タイヤ空気圧が下がると運転手に注意を促す内蔵センサを具備した自動車、又は、IPアドレスを割り当て可能で且つデータのネットワーク転送機能を有する、自然の若しくは人造のオブジェクトであってもよい。
【0004】
IoT/M2M通信に関して直面する課題は、データの堅固でセキュアな伝送であり、これは、このようなデータがリークしてしまうと、セキュリティ、健康、環境や金融に深遠なるインパクトを及ぼし得ることが理由である。
【0005】
公開鍵暗号化システム、トランスポート層セキュリティスキームやIPレイヤーセキュリティなどの従来の通信セキュリティソリューションは、処理能力、エネルギーと帯域要件からして割に合わない。一方、IoTにいう「モノ」とは、処理能力もバッテリーストレージも限定された小型デバイスである。
【0006】
リソース制約のあるデバイスでウェブを介してデータを転送するために使用される軽いアプリケーションレイヤープロトコル(CoAPなど)があるが、セキュリティ機能を具備していない。従って、セキュア通信を実現するために、CoAPは、DTLSの使用が必須要件である。DTLSはいくつかの設定を有しており、DTLSの最大リソース消費バリエーションは、公開鍵インフラを使用する認証に基づく証明書を利用するものである一方、DTLSの最小リソース消費バリエーションは、事前共有鍵(PSK)モードである。これらのバリエーション/構成は、端末(end-point)認証を提供する。しかし、認証の確立のために必要なデータ交換は、あまり軽量ではない。
【0007】
従って、処理リソース、帯域幅、及び電力の使用量を抑えると共にスループットを増大させつつ、制約のあるデバイス用にデータをセキュアに転送する、システムの必要性が存在する。
【発明の概要】
【発明が解決しようとする課題】
【0008】
既知の技術の1つまたは複数の課題を改善するか少なくとも有用な代替手段を提供することを意図する本発明の目的のうちいくつかのものについて、以下で説明する。
【0009】
本発明の目的は、制約のあるデバイス間で軽量なセキュアセッションの確立を可能にするシステムであって、処理リソース、帯域幅、時間、及び電力の使用量を抑えることができるシステムを提供することである。
【0010】
本発明のシステムのもう一つの目的は、暗号化データをセキュアセッションで交換しチャンネルのセキュリティを確保するためにDTLSで使用されているような従来のトランスポート層暗号化メカニズムに統合できるシステムを提供することにある。
【0011】
本発明のさらにもう1つの目的は、制約のあるデバイス間でのセキュアセッションの確立のための軽量なシステムであって、端末間での暗号化データ交換のための相互認証及び鍵の照合を含むセキュアセッション確立を可能とするシステムを提供することである。
【0012】
本発明のさらにもう1つの目的は、セキュアセッションを確立すると共に、「反射攻撃(replay attack)」および「中間一致攻撃(meet in the middle attack)」から守るセキュアな転送チャンネルを通して通信する、軽量なシステムを提供することである。
【0013】
本発明のその他の目的と優位性は、本発明の範囲をこれに限定することは意図されていない付随する図面を参照しつつ読むと、以下の説明からさらに明らかとなる。
【課題を解決するための手段】
【0014】
本発明は、端末間の軽量なセキュアセッションの確立及びセキュアな暗号化データ交換のための、コンピュータ利用システム及びコンピュータ利用方法に関する。一つの実施形態において、同システムは、ネットワーク上で運用することができる。その端末は、複数のクライアントデバイスと複数のサーバであってもよい。同システムは、クロスレイヤーアプローチ(cross layer approach)を実現するために、そのネットワークに関連するアプリケーションレイヤーにおいてセキュアセッションを確立するためのコンポーネント(要素)、及び、そのシステムプロトコルに関連する転送レイヤにおけるセキュア暗号化データ交換のためのコンポーネント(要素)をグループ化してもよい。複数のクライアントデバイスと複数のサーバとの間のセキュアセッションを確立するためのそのシステムに存在するコンポーネントは、第一鍵生成器、第一ランダム数生成器、第二ランダム数生成器、第三ランダム数生成器、及び第二鍵生成器を有しており、第一鍵生成器、第一ランダム数生成器、及び第二ランダム数生成器は、各クライアントデバイスごとに設けられ、第三ランダム数生成器、及び第二鍵生成器は、各サーバ一ごとに設けられている。これによって、相互認証によるセキュアセッションの確立を容易にしている。複数のクライアントデバイスと複数のサーバとの間でのセキュアな暗号化データ交換用システムに存在するコンポーネントは、セッション初期化ベクトル発生器を具備したセッションキータプル発生器を有していてもよい。このセッションキータプル発生器は、セッションキータプルを作成して認証済みのクライアントデバイスとサーバの間で転送するように構成されており、これにより、クライアントデバイスとサーバの間でのセキュアな暗号化データ交換が可能になっている。
【0015】
この要約はグローバルなコンテキストを利用する計装を具備してソフトウェアの品質を提供することに関わる発想を導入することを目的とし、このコンセプトは以下でさらに詳しく説明される。この要約は本発明のすべての本質的特長を特定するものでも、本発明の範囲を規定し限定することも意図していない。
【図面の簡単な説明】
【0016】
本発明のシステムを付帯図面を用いて説明する。図面は以下の通りである。
図1】端末間に軽量なセキュアセッションの確立と暗号化データ交換を提供するシステムの一実施形態の概念図を図解したものである。
図2】セキュアセッションと暗号化メッセージ交換を確立するためのシステムフローを図解したものである。
図3】サーバとクライアント間のハンドシェイク中にセッションの確立に関わる手順を図解したものである。
図4】従来型DTLS記録暗号化メカニズムで使用されているようなAES暗号化で必要なサーバとクライアントの初期化ベクトルを取得するための代表的方法を図解したものである。
図5】CoAPを利用したセッション確立の代表的実施形態と、その後に続くクライアントとサーバ端末間でのUDP転送による暗号化メッセージ交換を図解したものである。
図6】セキュアセッションの確立から帰結したセッションパラメータをセッションパラメータ構造にマップする仕組みを図解したものである。この構造はDTLS-PSKで使用されている暗号化メカニズムの記録方式と同様である。
図7】代表的プロトコルを使用した、アプリケーションレイヤーでのセッションの確立プロセスとトランスポート層でのチャンネル暗号化プロセス間のインターフェイスを提供するシステムの一実施形態のフローチャートを図解したものである。
【発明を実施するための形態】
【0017】
本発明のシステムを附録図面に示す実施形態を参照しながら以下で説明する。この実施例は本発明の範囲を限定するものではない。説明はあくまでも例示および開示されたシステムの優先的実施形態とその用途提案のために行われる。
【0018】
本発明のシステムならびに様々な特長および優位性の詳細を限定することのない実施例を参照することによって以下に説明する。確立している既存のパラメータならびに処理技術についての説明は省略し、本発明の実施例についての理解を不要に困難にしないようにした。本発明に使用されている例は単に本発明の実施例を実用化可能にする方法の理解を容易にし、この分野の技能を持つ者が本発明の実施例を実施することを可能にすることのみを目的としている。従って、例によって本発明の実施例の範囲を限定するものと解釈されてはならない。
【0019】
本発明に従い、このシステムは、チャレンジと応答を利用した、軽量で堅固なスキームを提供して、典型的な制約のあるIoT/M2M環境の鍵共有メカニズムが統合された端末の相互認証を用いた、セキュアセッションを確立するものである。同システムは、一般ネットワーキング/通信システムの認証要件を満たす。同システムは、DTLS-PSKなどのスキームをすでに使用するシステムとも容易に統合可能である。同システムにおいては、セッションの確立任務は、ここに提案されているジェネリックスキームを使用したCoAPなどの軽量なアプリケーションレイヤーが担う。セッション鍵を含むこのようなセッションの確立プロセスから生じるパラメータは、トランスポート層記録暗号化メカニズムへ渡される。このトランスポート層記録暗号化メカニズムは、DTLSなどのスキームで、暗号化データのセキュアセッションを介する交換のために使用されているものと同様である。このように、データ交換は、トランスポート層の任務になる。このようにして、転送されるデータは、トランスポート層記録暗号化メカニズムがこの種の保護を提供するので、反射攻撃(replay attack)から保護される。
【0020】
付帯図面を参照すると、図1は、端末間の軽量なセキュアセッションの確立と暗号化データ交換を提供するシステム100の一実施形態が示している。この実施形態においては、クライアントデバイスとサーバは、端末間でセキュアセッションが確立されて暗号化データ交換が行われる、端末である。一実施形態において、システム100は、ネットワーク上で稼働しており、アプリケーションレイヤーでグループ化されたセッション確立コンポーネントと、トランスポート層でグループ化されたセキュアな暗号化データ交換用コンポーネントとを有している。これによって、セッションの確立任務と暗号化データ交換任務を、アプリケーションレイヤーとトランスポート層の間で分けることが可能になる。システム100は、第一鍵生成器102、複数のクライアントデバイス104、複数のサーバ106、及び、セッションキータプル発生器108を有している。第一鍵生成器102は、プロビジョンフェーズにおいてセキュアセッションが確立される前に、秘密鍵を生成してサーバ106及びクライアントデバイス104へ送信する。各クライアントデバイス104は、固有識別子を持っており、また、第1のルールセットに基づいて、第1の処理コマンドセットをクライアントデバイス104上にあるコンポーネントに送る(提供する)第一プロセッサ110を有している。各サーバ106は、第2の処理コマンドセットを予め決められた第2のルールセットに従って、サーバ106上のコンポーネントに送る第二プロセッサ130を有している。クライアントデバイス104は、サーバ106とのセッションを開始するために、セッション開始要求をサーバ106に送る。セッション開始要求は、セッションイニシエータ114が第一ランダム数生成器112と協力して生成する。第一ランダム数生成器112は、第一ランダム数を生成し、セッションイニシエータ114へ転送する。そして、セッションイニシエータ114は、第一ランダム数とクライアントデバイス104の固有識別子とを含む、セッション開始要求を生成する。このセッション開始要求は、サーバ106に存在する識別器134によって受け取られる。サーバ106は、複数のクライアントデバイス104に対応する複数の固有識別子を格納する第一レポジトリ132を含む。セッション開始要求を受け取ると、識別器134は、受け取ったセッション開始要求に含まれている固有識別子と、第一レポジトリ132に格納されている固有識別子とを照合し、セッション開始要求を送信してきたクライアントデバイス104を識別する。クライアントデバイス104が識別されると、チャレンジコード生成器140は、チャレンジコードを生成する。このチャレンジコードには、セッション開始要求に含まれていた第一ランダム数、第二鍵生成器136によって生成されたクライアントキー、及び、第三ランダム数生成器138によって生成された第三のランダム数が含まれる。次に、この生成されたチャレンジコードは、第一鍵生成器102によって事前共有されている機密鍵を用いて、第一暗号化器142によって暗号化される。そして、暗号化されチャレンジコードは、サーバ106に置かれた第一暗号化器142によって、クライアントデバイス104へ転送される。クライアントデバイス104に置かれた第一復号器116は、暗号化されたチャレンジコードを受け取り、第一鍵生成器102によって事前共有された秘密鍵でチャレンジコードを復号する。これにより、チャレンジコードに含まれるクライアントキーと第三ランダム数を取得する。取得されたクライアントキーは、第二レポジトリ118に格納される。クライアントデバイス104は、第二ランダム数を生成する第二ランダム数生成器122を含んでいる。クライアントデバイス104に置かれた応答生成器120は、生成された第二ランダム数及び復号後に受け取られた第三ランダム数を含む応答コードを生成する。この応答コードは、第二レポジトリ118に格納されたクライアントキーを用いて、第二暗号化器124によって暗号化される。そして、クライアントデバイス104にある第二暗号化器124は、この暗号化応答コードをサーバ106へ送る。そのサーバにある第二復号器 144は、クライアントキーで暗号化されたこの応答コードを受け取り、暗号化された応答コードを第二鍵生成器136で生成されたクライアントキーで復号する。復号に成功すると、第二復号器144は、応答コードに含まれる第三ランダム数と第二ランダム数を取得する。サーバ106に置かれた第一コンパレータ146は、この取得された第三ランダム数を、第三ランダム数生成器138によって生成された第三ランダム数と照合する(比較する)。照合された第三ランダム数が一致すると、サーバ106は、クライアントデバイス104を認証する。
【0021】
認証に成功すると、相互認証を完了するために、サーバ106に置かれた第三暗号化器148は、最終メッセージを生成し暗号化する。この最終メッセージは、応答コードで受け取った第二ランダム数、第三ランダム数、及び、第二鍵生成器136によって生成されたサーバキーを含んでいる。この最終メッセージは、第一鍵生成器102で生成された秘密鍵を用いて、第三暗号化器148によって暗号化される。暗号化された最終メッセージは、サーバ106からクライアントデバイス104へ転送される。クライアントデバイス104に置かれた第三復号器126は、暗号化された最終メッセージを受け取り、この最終メッセージを第一鍵生成器102から先に受信済みの秘密鍵で復号する。復号に成功すると、第三復号器126は、最終メッセージから、第三ランダム数、第二ランダム数、及びサーバキーを取得する。サーバキーは、将来的に使用するために第二レポジトリ118に格納される。クライアントデバイス104に置かれた第二コンパレータ128は、復号化後に取得された第二ランダム数を、第二ランダム数生成器122によって生成された第二ランダム数と照合する(比較する)。照合された第二ランダム数が両方一致すれば、クライアントデバイス104は、そのサーバ106を認証し、サーバ106とクライアントデバイス104と間のデータ交換セキュアセッションが確立される。この時点で、クライアントデバイス104とサーバ106の両者が、クライアントキーとサーバキーを持つ。
【0022】
セキュアセッションが確立されると、セッションキータプル発生器108は、クライアントキー、サーバキー、第二ランダム数、及び第三ランダム数を受け取る。セッションキータプル発生器108は、受信済みの第二ランダム数及び受信済みの第三ランダム数に基づいて、サーバ初期化ベクトル及びクライアント初期化ベクトルを生成する、初期化ベクトル発生器150を含んでいる。これらの初期化ベクトル、クライアントキー、及びサーバキーに基づいて、セッションキータプル発生器108は、クライアントキー、サーバキー、クライアント初期化ベクトル、及びサーバ初期化ベクトルを含むセッションキータプルを作成し、このセッションキータプルをクライアントデバイス104及びサーバ106へ送る。これにより、クライアントデバイス104とサーバ106との間のセキュア暗号化データ交換が可能となる。セッションキータプルの受信後、クライアントデバイス104は、クライアントキー及びクライアント初期化ベクトルを用いて、データを暗号化し、サーバキー及びサーバ初期化ベクトルを用いて、データを復号する。同様に、サーバ106は、セッションキータプルの受信後、サーバキー及びサーバ初期化ベクトルを用いて、データを暗号化し、クライアントキー及びクライアント初期化ベクトルを用いて、データを復号する。このためセキュアな暗号化データ交換が実現する。
【0023】
付帯図面を参照すると、図2は、セキュアセッションの確立及びセキュアチャンネルを通した暗号化メッセージ交換のための、システムフローを図示している。本発明のシステムは、対称キーを使用するセキュリティメカニズムを提供する。このセキュリティメカニズムでは、鍵管理は認証と一体化されている。また、このセキュリティメカニズムは、所与の端末のために、上り下り通信チャンネルの個別鍵も維持する。サーバとクライアントは、プロビジョンフェーズにおいて事前共有秘密(Y)が設定された、二個の端末である。セキュアチャンネルの確立要求は、クライアントがサーバにHELLOメッセージを送信することにより開始され、このHELLOメッセージには、そのクライアントにとって固有の識別子(ID)と、‘hello_rand’と呼ばれるランダム数とが用いられている(ステップ200)。このメッセージを受信すると、サーバは、最初に、設定済みデータベースにおいて、そのIDをルックアップする(調べる)。しかし、悪意のあるクライアントによるなりすましを防止するために、そのサーバは、サーバランダム数‘server_rand’が付加されたK_c(クライアント書込み鍵:client-write-key)から成る固有鍵チャレンジコードを生成する。この鍵K_cは、クライアントからサーバへのチャンネル用の暗号化・復号用の対称キーであり、トラフィック解析攻撃から鍵を守るために、‘hello_rand’でマスクされる。このようにして取得されたチャレンジコードは、事前共有秘密(Y)と‘hello_rand’をもとに生成されるノンスとによって、暗号化される(ステップ202)。一つの実施形態において、チャレンジコードは、AES_CCM_128を用いて暗号化されて、クライアントへ送信される。このAES_CCM_128では、AES_CCM_128暗号化で要求されるノンスとして、hello_randが用いられる。
【0024】
正当なクライアントは、チャレンジコードを復号/解読でき、サーバから送られたserver_randと鍵(K_c)を受け取ることができる(ステップ204)。クライアントは、応答として、こちらもサーバへのチャレンジを含む応答メッセージを作成する。サーバに対するチャレンジ/応答メッセージ(challenge for the server/response message)は、server_randに加えて、クライアントで作成されたランダム数‘client_rand’を含む。この応答メッセージは、K_cを用いて暗号化される(ステップ206)。一つの実施形態において、同暗号化方法は、暗号化に必要なノンスを与えるためにserver_randを使用する、AES_CCM_128である。
【0025】
サーバは、クライアントからの応答を復号し、server_randをそれ自身のコピーと照合し、クライアント応答がサーバチャレンジを満たしているかを確認する(ステップ208)。この両方が一致すれば、サーバは、クライアントを認証し(ステップ210)、一致しない場合、クライアントは認証されない(ステップ212)。クライアントが認証されると、サーバは、最終メッセージでクライアントチャレンジに応答する。最終メッセージは、server_randでマスクされると共にclient_randに付加された、サーバが生成した鍵K_s(サーバ書込み鍵:server-write-key)を含む。この最終メッセージは、次にY(事前共有秘密鍵:pre-shared secret key)で暗号化される(ステップ214)。一つの実施形態において、client_randを使用するAES_CCM_128は、暗号化のために必要なノンスを送る。鍵K_sは、サーバによって最終メッセージに含められ、これにより、クライアントに対して、成功した認証後にメッセージを暗号化するための鍵を使用することを通知することができる。このメッセージを受け取ると、クライアントは、サーバ応答がクライアントチャレンジを満たすか否かを確認する(ステップ216)。クライアントが復号でき且つclient_randとそれ自身のコピーとが一致すれば、クライアントは、サーバを認証し(ステップ218)、一致しなければ、サーバは認証されない(ステップ220)。
【0026】
この交換後、両端末(クライアントとサーバ)は、鍵ペア(サーバ書込み鍵(server-write-key)、クライアント書込み鍵(client-write-key))を受信しており、セキュアチャンネルが確立する。セキュアチャンネルが確立されると、鍵を含むセッションパラメータが、クロスレイヤーインターフェイスに与えられ(付帯図面の図7に図解)、その次に、セキュアな情報交換のためのトランスポート層へ提供される。鍵ペアとは別に、記録暗号化は、さらに、サーバ初期化ベクトル(サーバIV)とクライアント初期化ベクトル(クライアントIV)も必要とする。代用的一実施形態において、これらの初期化ベクトル(IV)は、server_nonce及びclient_nonceを用いて、導出される。このIV生成は、ステップ222に示されている。鍵ペア及びIVsを含む暗号化パラメータが取得されると、トランスポート層セキュリティを使用して、暗号化メッセージの交換が実行される(ステップ224)。
【0027】
このようにしてセキュアセッションの確立とトランザクションが、反射攻撃(replay attack)からの防御を保証する本発明のシステムによって実現される。
【0028】
図3図5で使用されている記号の意味は、次の通りである。
【数1】
【0029】
付帯図面を参照すると、図3は、サーバとクライアント間のハンドシェイク中にセッションの確立に関わる手順を図解したものである。この図は、軽量なセキュアセッションの確立アルゴリズムを示しており、Ciはクライアントを示し、Sはサーバを示す。セキュアセッションの確立プロセスが始まる前に、プロビジョンフェーズにおいてオフラインで、秘密Y={0,1}128がCiとSとの間で共有される。次に、セキュアセッションの確立プロセスは、セッション開始に伴い開始され、ここでは、クライアントCiが、‘HELLO, #Ci’及びhello_randをサーバSへ送る(ステップ300)。ここで、#Ciは固有なクライアントデバイスIDであり、hello_rand={0,1}96である。セッションが開始されると、サーバSは、サーバチャレンジコード
【数2】
を、クライアントへ送って応答する(ステップ302)。ここで、K_c={0,1}128であり、server_rand={0,1}96であり、ext_hello_rand=hello_rand || hello_rand[0:31]である。クライアントCiは、チャレンジコードを復号し、サーバに別のチャレンジコード'AES{(server_rand || client_rand)}K_c’を送り返すことにより応答する(ステップ304)。ここで、client_rand={0,1}96は、クライアント応答とチャレンジを示す。サーバ側においては、サーバは、server_randを確認し、クライアントに対して
【数2】
を送り返すことにより応答する(ステップ306)。ここで、ext_server_rand = server_rand || server_rand[0:31]K_sである。
【0030】
一実施形態においては、AES暗号化は、代替的にはAES_128_CCM_8として実行される。CCMモードは、各暗号化について12ビットノンスと、一つの追加データとを必要とする。‘hello_rand’、‘server_rand’、及び‘client_rand’は、ステップ302、ステップ304、及びステップ306でそれぞれ必要なノンス値として機能する。この追加データは、アプリケーションレイヤープロトコル(ex. CoAP)の各メッセージのヘッダであってよい。
【0031】
付帯図面を参照すると、図4は、AES暗号化のために必要なサーバとクライアントの初期化ベクトルを取得するための代表的方法を図解している。これは、従来式のDTLS記録暗号化メカニズムで使用されるのと同様である。本発明のシステムは、セキュアなトランスポート層(DTLS)とのインターフェイスを可能にする。同インターフェイスは、本質的には、暗号化メッセージ交換のための基盤をなすセキュリティレイヤーで使用されるために必要なセッションパラメータを作成する。セッションパラメータの主要コンポーネントは、K_cとK_sである。その他の必要なパラメータは、別の方法で生成されてもよい。DTLS記録(DTLS-record)を、メッセージをセキュアに転送する代表的メカニズムとして見ると、セッションキーパラメタタプル‘{K_c, K_s, client_IV, server_IV}’は、クライアントとサーバの両方で必要とされる。ここで、「IV」とは、初期化ベクトルを意味する。IVを作成するには数種類の代替方法がある。クライアントとサーバは、同じパラメータ値に関しては同じメカニズムに従い、同じ{client_IV, server_IV}ペアを担保する。AES_128_CCM 暗号化DTLS記録(AES_128_CCM encrypted DTLS record)において、IVの長さは4バイトである。演算オーバーヘッドが低い代表的メカニズムを図4に示す。
【0032】
本発明に開示されるセキュアセッションの確立には、cCoAPが組み込まれたペイロードが統合されてもよい。確認可能な(CON)データ転送モードによるPOST法は、クライアントとサーバとの間のセキュアセッションを確立するために適用される。新規フィールド「AUTH」が、セキュア(認証)モードを可能にするために、CoAPヘッダに導入されている。このフィールドは、基幹的オプションクラスを示す未使用オプションを使用する。「AUTH_MSG_TYPE」という名前のもう一つのオプションも、「AUTH」とともに導入され、認証セッションを確立するための異なるメッセージを示す。
【0033】
CoAPヘッダにある同オプションフィールドは、CoAPメッセージのオプション要求/応答機能の担体である。本発明において定義された同フィールドは、次の通りである。
・AUTH:認証/認証無効のモードの使用可能性を表す。このフィールドには、真偽値を設定可能である。
・AUTH_MSG_TYPE:このフィールドは、0または1をとることができる。ここで、0=auth_initであり、1=‘response_against_challenge’である。
【0034】
認証セッションは、‘AUTH=true’と設定して有効化されると、認証フェイズ中に交換される関連するすべてのメッセージに対して、ヘッダに一定の「トークン」値を用いることにより、維持される。
【0035】
付帯図面を参照すると、図5は、クライアントとサーバ端末との間での、CoAPを介するセッション確立、及び、その後に続くUDP転送による暗号化メッセージ交換の代表的実施形態を図解したものである。次の手順が、そのフローを表している。
・開始時に、クライアントは、CONモードでPOSTメッセージを、セッション開始専用の特定サーバURIへ送る(ステップ400)。例えば、AUTH=‘True’でAUTH_MSG_TYPE=‘auth_init’である、/some_uri_for_session_initiationと、ペイロード内の‘device identifier’(DevID)及び一個のランダム数‘hello_rand’である。
・サーバは、オプション「AUTH」、及び、AUTH_MSG_TYPEに対する「auth_init」値を受信した後に、デバイス識別子(device identifier)をペイロードから取得し、同デバイス識別子と関連付けられた事前共有秘密(pre-shared secret)を決定する。サーバは、次に、セッション確立のために、ランダム数、チャレンジとしてのserver_rand、クライアント書込み鍵K_cを生成する(ステップ402)。
・サーバは、クライアントに、新たなリソースが作成されたことを示す応答コードで応答する。応答に含まれるURIは、セキュアセッション用のセッションIDを示す。デバイス識別子が無効であれば、サーバは、応答コード「Unauthorized(未認証)」を送り返す。ステップ402の暗号化されたペイロードは、ビギーバックされるか又は別個にクライアントへ送られる。
・クライアントは、サーバから受け取った応答を復号し、server_rand及び‘K_c’を取得する。クライアントは、また、ランダム数client_randを生成することでチャレンジを作成し、次にアルゴリズム1の手順3で説明された同ペイロードを、POSTメッセージを使って送る(ステップ404)。このPOSTメッセージには、‘AUTH=true’のオプションフィールド、‘response_against_challenge’であるAUTH_MSG_TYPEの値、最後のPOSTメッセージと同様のトークン値が含まれている。
・サーバは、上記POSTのペイロード(ヘッダに上記オプション値を含んでいる)を、‘K_c’を用いて復号し、受信したserver_randを確認する。サーバは、server_randが直前値(ステップ402で生成された値)と等しい場合には、応答コード「Changed」である応答を送信し、異なる場合には、この値が異なると「Unauthorized」を送る。このステップ406で、クライアントの認証は完了する。
・クライアントは、サーバからの応答をYで復号し、受信したclient_randを自己のコピーと照合する。クライアントは、K_sも受け取る。サーバ認証は、このステップで完了する。
・認証が完了すると、クライアント及びサーバの両者は、セッションキータプル{K_c,K_s, client_IV, server_IV}を作成する。そのIVは、図4に示される通りに生成される。
・ここで、クライアントとサーバは、オプションとしては、DTLS-PSK記録暗号化(DTLS-PSK record encryption)と同様に、セキュアトランスポート層を介して通信してもよい。クライアントは、K_c及びclient_IVを用いて暗号化し(ステップ408)、サーバは、K_s及びserver_IVを用いて暗号化する(ステップ410)。
ステップ400、ステップ402、ステップ404、及びステップ406は、セキュアセッションの確立(つまり、CoAP)を示す。一方、ステップ408及びステップ410は、再生保護付の暗号化メッセージ交換(つまり、DTLS)を示している。
【0036】
セキュアセッション確立中のAES暗号化は、オプションとしては、AES_128_CCM_8として実現してもよい。CCMモードは、各暗号化のための12ビットノンスと、一つの追加データとを必要とする。‘hello_rand’、‘server_rand、‘client_rand’は、図3のステップ302、ステップ304、及びステップ306でそれぞれ必要なノンス値として機能する。CCM暗号化のために必要な「追加データ」は、CoAPヘッダ部に由来してもよい。
【0037】
付帯図面を参照すると、図6は、本発明で開示されたセキュアセッションの確立の結果である、異なるセッションパラメータ間のマッピングと、従来式DTLS記録暗号化メカニズム(DTLS record encryption mechanism)で必要なセッションパラメータ構造とを図解したものである。同図は、DTLS-PSK記録暗号化(DTLS-PSK record encryption)に使用するセッションタプルの要素を示しており、同図において、符号500、符号502、及び符号504は、セキュアセッションの確立のために使用されるセッションパラメータを表す。
【0038】
付帯図面を参照すると、図7は、代表的プロトコルを使用した、アプリケーションレイヤーでのセッション確立プロセスとトランスポート層でのチャンネル暗号化プロセスとの間のインターフェイスを提供するシステムの一実施形態のフローチャートを図解したものである。この実施形態において、システムは、アプリケーションレイヤー(CoAP)で軽量なセキュアセッションの確立を実行する(ステップ702)。セキュアセッションが確立すると、クライアントキー及びサーバキーを含むセッションパラメータが取得される。これらのセッションパラメータは、クロスレイヤーインターフェイスを提供するインターフェイスレイヤーに渡される。このレイヤーでは、暗号化パラメタタプル{client write key(K_c), server write key (K_s), client initialization vector (client_IV), server initialization vector (server_IV)}が導出され、必要な暗号化パラメータは、DTLS-PSKでの記録暗号化と同様な暗号化スキームにおいて必要なセッションパラメータに対してマップされる(ステップ704)。このため、アプリケーションレイヤーに存在する暗号化データ交換を、対称キーによるDTLS記録暗号化と同様なメカニズムを使用するUDPトランスポート層上のセキュアチャンネルを介して行うことができる(ステップ706)。
図1
図2
図3
図4
図5
図6
図7