JP5614465B2 - 暗号通信装置、代行サーバ、暗号通信装置プログラム及び代行サーバプログラム - Google Patents

暗号通信装置、代行サーバ、暗号通信装置プログラム及び代行サーバプログラム Download PDF

Info

Publication number
JP5614465B2
JP5614465B2 JP2013015931A JP2013015931A JP5614465B2 JP 5614465 B2 JP5614465 B2 JP 5614465B2 JP 2013015931 A JP2013015931 A JP 2013015931A JP 2013015931 A JP2013015931 A JP 2013015931A JP 5614465 B2 JP5614465 B2 JP 5614465B2
Authority
JP
Japan
Prior art keywords
communication device
verification data
cryptographic communication
tls
proxy server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013015931A
Other languages
English (en)
Other versions
JP2014147039A (ja
Inventor
純 中嶋
純 中嶋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2013015931A priority Critical patent/JP5614465B2/ja
Publication of JP2014147039A publication Critical patent/JP2014147039A/ja
Application granted granted Critical
Publication of JP5614465B2 publication Critical patent/JP5614465B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、暗号通信装置、代行サーバ、暗号通信装置プログラム及び代行サーバプログラムに関し、例えば、TLS(Transport Layer Security)ハンドシェイクのクライアント機能を代行サーバが代行するシステムにおいて、代行サーバがTLSサーバの正当性をTLSクライアントに代わって検証するシステムに適用し得る。
近年、IP−reachableな(インターネットに接続可能な)無線マルチホップネットワークの研究開発が進められている。
従来の無線マルチホップネットワークでは、サービスサーバとノードとが事前に対称鍵を共有しておくことが想定されてきたが、今後IP化が加速し、様々なIPネットワークノードと連携するようになってくると、必ずしも事前に暗号鍵を共有していないインターネット上のホストコンピュータともセキュアな通信をするケースがでてくることが想定される。このような場合にセキュアな通信路を構築するプロトコルとして、証明書ベースのTLSプロトコルがインターネットで広く普及している(非特許文献1参照)。TLSプロトコルは、一般に、クライアント(以下、TLSクライアントという)と、サーバ(以下、TLSサーバという)とが証明書を交換して互いを認証し、対称鍵を共有するクライアント認証付きハンドシェイクフェーズ(以下、TLSハンドシェイクという)と、その後の前述の対称鍵を用いた暗号通信フェーズとからなる。
しかし、TLSハンドシェイクでは、計算リソースを比較的多く消費する公開鍵暗号アルゴリズムを用いるので、省電力性が重視される無線マルチホップネットワークのノードに対しては大きな負担になると考えられる。
そこで、TLSクライアントの秘密鍵情報を利用することなく、代行サーバが負荷の高い計算の代行を行う代行システム(TLSハンドシェイクに準拠しているので、以下、TLS代行システムという)が提案されている(非特許文献2参照)。
図5は、非特許文献2で提案されているTLS代行システムの接続動作(TLSハンドシェイク)を示すラダー図である。
例えば、TLSクライアント1は、無線マルチホップネットワークのノードであり、TLSサーバ2は、無線マルチホップネットワークのサービスサーバである。TLSクライアント1は、代行サーバ3にTLSハンドシェイクの代行を依頼し、最終的に対称鍵の生成と自己証明のためのディジタル署名の生成をして署名情報を代行サーバに渡す通信装置である。
代行サーバ3は、TLSクライアント1に代わってTLSハンドシェイクを代行する。図5におけるTLSサーバ2が授受するメッセージは、代行サーバ3を利用しないTLSハンドシェイクと同様である。代行サーバ3には、鍵共有とディジタル署名に必要な秘密情報は与えられていないため、鍵共有プロトコルによって、共有される対称鍵情報、及び、これを必要とする処理や、ディジタル署名の作成処理はできない。但し、代行サーバ3は、これら鍵共有やディジタル署名計算において、負荷の高い一部の計算を行うことで、TLSクライアント1側では少ない計算量で対称鍵の導出やディジタル署名の生成を行うことができる。
RFC5246 中嶋純、八百健嗣共著、"無線マルチホップネットワークノードの認証・鍵共有計算の一部計算委託方式の提案"、2012年度暗号と情報セキュリティシンポジウム、2012年1月
通常のTLSハンドシェイク(代行サーバを利用しないTLSハンドシェイク)においては、TLSクライアントがTLSサーバの正当性を検証する方法として、(1)TLSサーバの公開鍵証明書の検証を行うステップと、(2)当該公開鍵証明書に記載の公開鍵と自らの秘密鍵情報とを用いて対称鍵を生成するステップと、(3)対称鍵で暗号化された所定のTLSハンドシェイクメッセージ(Server−Finishedメッセージ)を受け取って正しく暗号化されていることを確認するステップを実行することで、対向するTLSサーバが該公開鍵証明書に記載の公開鍵に対応する秘密鍵を所持することを確認する。
上述した提案されている代行システムでは、ステップ(1)の公開鍵証明書の検証において、公開鍵暗号アルゴリズムを利用しているので、TLSクライアント1の処理負荷の一段の軽減のため、TLSサーバ2の公開鍵証明書の検証を代行サーバ3で行うことが望ましい。
しかし、従来の代行システムの場合、TLSサーバ2の公開鍵証明書の検証を代行サーバ3で行おうとすると、代行サーバ3には秘密にしておくべき対称鍵を代行サーバ3に教えなければならなくなる。
そのため、代行サーバが対称鍵を知得していなくても、第1の暗号通信装置の検証を、第2の暗号通信装置に代わって代行サーバが実行できる、暗号通信装置、代行サーバ、暗号通信装置プログラム及び代行サーバプログラムが望まれている。
第1の本発明は、第2の暗号通信装置に代わって、代行サーバが、第1の暗号通信装置との間で、所定の通信セキュリティプロトコルに従ったハンドシェイクを実行すると共に、所定のパラメータ情報に従って上記第2の暗号通信装置が対称鍵を生成する暗号通信システムにおける上記第2の暗号通信装置が該当する暗号通信装置において、(1)上記第1の暗号通信装置が、合意したばかりの暗号通信アルゴリズムで保護されたハンドシェイク終了メッセージに含める第1の検証データを生成するのに利用したパラメータ情報のうち、当該暗号通信装置が上記第1の暗号通信装置との間で共有していない一部のパラメータ情報を上記代行サーバから取得し、この一部のパラメータ情報の取得により完備した、上記第1の検証データを生成したパラメータ情報を入力パラメータ情報として第2の検証データを生成し、上記代行サーバに返信する第2の検証データ生成手段を有し、(2)上記所定の通信セキュリティプロトコルがTLSであり、(3)上記代行サーバから取得する、当該暗号通信装置が上記第1の暗号通信装置との間で共有していない一部のパラメータ情報が、少なくとも、ハッシュ値と、上記第1の検証データのバイト数情報と、初期ベクタ情報とであり、(4)上記第2の検証データ生成手段は、(4−1)上記第1の検証データのバイト数から、メッセージ認証アルゴリズムに規定のメッセージ認証符号長と、上記ハッシュ値のバイト数と、その他実装に依存するヘッダ等の情報のバイト数を差し引いた値をパディング長とし、(4−2)初期ベクタとして、上記代行サーバから受信した初期ベクタを適用し、(4−3)上記ハッシュ値を引数として所定の演算を行った結果を、所定の暗号化プロトコルの入力として、(4−4)上記第2の検証データを生成することを特徴とする。
第2の本発明の暗号通信装置プログラムは、第2の暗号通信装置に代わって、代行サーバが、第1の暗号通信装置との間で、所定の通信セキュリティプロトコルに従ったハンドシェイクを実行すると共に、所定のパラメータ情報に従って上記第2の暗号通信装置が対称鍵を生成する暗号通信システムにおける上記第2の暗号通信装置が該当する暗号通信装置に搭載されるコンピュータを、(1)上記第1の暗号通信装置が、合意したばかりの暗号通信アルゴリズムで保護されたハンドシェイク終了メッセージに含める第1の検証データを生成するのに利用したパラメータ情報のうち、当該暗号通信装置が上記第1の暗号通信装置との間で共有していない一部のパラメータ情報を上記代行サーバから取得し、この一部のパラメータ情報の取得により完備した、上記第1の検証データを生成したパラメータ情報を入力パラメータ情報として第2の検証データを生成し、上記代行サーバに返信する第2の検証データ生成手段として機能させるプログラムであって、(2)上記所定の通信セキュリティプロトコルがTLSであり、(3)上記代行サーバから取得する、当該暗号通信装置プログラムを実行する上記コンピュータを搭載した上記暗号通信装置が上記第1の暗号通信装置との間で共有していない一部のパラメータ情報が、少なくとも、ハッシュ値と、上記第1の検証データのバイト数情報と、初期ベクタ情報とであり、(4)上記第2の検証データ生成手段は、(4−1)上記第1の検証データのバイト数から、メッセージ認証アルゴリズムに規定のメッセージ認証符号長と、上記ハッシュ値のバイト数と、その他実装に依存するヘッダ等の情報のバイト数を差し引いた値をパディング長とし、(4−2)初期ベクタとして、上記代行サーバから受信した初期ベクタを適用し、(4−3)上記ハッシュ値を引数として所定の演算を行った結果を、所定の暗号化プロトコルの入力として、(4−4)上記第2の検証データを生成することを特徴とする。
第3の本発明は、第2の暗号通信装置に代わって、第1の暗号通信装置との間で、所定の通信セキュリティプロトコルに従ったハンドシェイクを実行すると共に、所定のパラメータ情報を与えて上記第2の暗号通信装置に対称鍵を生成させる代行サーバにおいて、(1)上記第1の暗号通信装置から到来した、合意したばかりの暗号通信アルゴリズムで保護されたハンドシェイク終了メッセージから、その一部を抽出して得たデータを第1の検証データとして保持する第1検証データ保持手段と、(2)上記第2の暗号通信装置へ、上記第1の暗号通信装置が上記第1の検証データを生成するのに利用したパラメータ情報のうち、上記第2の暗号通信装置が上記第1の暗号通信装置との間で共有していない一部のパラメータ情報を与え、上記第2の暗号通信装置が生成した上記第2の検証データを取込む第2の検証データ生成依頼・取込手段と、(3)上記第1検証データ保持手段に保持されている第1の検証データと、上記第2の暗号通信装置から取り込んだ第2の検証データとを比較し、上記第1の暗号通信装置の正当性を検証する検証データ比較手段とを有し、(4)上記所定の通信セキュリティプロトコルがTLSであり、(5)上記第2の検証データ生成依頼・取込手段が上記第2の暗号通信装置へ与える、上記第2の暗号通信装置が上記第1の暗号通信装置との間で共有していない一部のパラメータ情報が、少なくとも、ハッシュ値と、上記第1の検証データのバイト数情報と、初期ベクタ情報とであることを特徴とする。
第4の本発明の代行サーバプログラムは、第2の暗号通信装置に代わって、第1の暗号通信装置との間で、所定の通信セキュリティプロトコルに従ったハンドシェイクを実行すると共に、所定のパラメータ情報を与えて上記第2の暗号通信装置に対称鍵を生成させる代行サーバに搭載されるコンピュータを、(1)上記第1の暗号通信装置から到来した、合意したばかりの暗号通信アルゴリズムで保護されたハンドシェイク終了メッセージから、その一部を抽出して得たデータを第1の検証データとして保持する第1検証データ保持手段と、(2)上記第2の暗号通信装置へ、上記第1の暗号通信装置が上記第1の検証データを生成するのに利用したパラメータ情報のうち、上記第2の暗号通信装置が上記第1の暗号通信装置との間で共有していない一部のパラメータ情報を与え、上記第2の暗号通信装置が生成した上記第2の検証データを取込む第2の検証データ生成依頼・取込手段と、(3)上記第1検証データ保持手段に保持されている第1の検証データと、上記第2の暗号通信装置から取り込んだ第2の検証データとを比較し、上記第1の暗号通信装置の正当性を検証する検証データ比較手段として機能させるプログラムであって、(4)上記所定の通信セキュリティプロトコルがTLSであり、(5)上記第2の検証データ生成依頼・取込手段が上記第2の暗号通信装置へ与える、上記第2の暗号通信装置が上記第1の暗号通信装置との間で共有していない一部のパラメータ情報が、少なくとも、ハッシュ値と、上記第1の検証データのバイト数情報と、初期ベクタ情報とであることを特徴とする。
ことを特徴とする。
本発明によれば、代行サーバが対称鍵を知得していなくても、第1の暗号通信装置の検証を、第2の暗号通信装置に代わって代行サーバが実行できる、暗号通信装置、代行サーバ、暗号通信装置プログラム及び代行サーバプログラムを実現できる。
実施形態の代行システムの全体構成を示すブロック図である。 実施形態のTLSクライアントにおけるTLSハンドシェイク中の特徴の実現に係る機能的構成を示すブロック図である。 実施形態の代行サーバにおけるTLSハンドシェイク中の特徴の実現に係る機能的構成を示すブロック図である。 実施形態の代行システムにおけるTLSハンドシェイクのフェーズでの動作を示すラダー図である。 非特許文献2で提案されているTLS代行システムの接続動作(TLSハンドシェイク)を示すラダー図である。
(A)主たる実施形態
以下、本発明による暗号通信装置、代行サーバ、暗号通信装置プログラム及び代行サーバプログラムの一実施形態を、図面を参照しながら説明する。
実施形態の暗号通信システム(以下、実施形態の説明において代行システムという)は、TLSクライアント(第2の暗号通信装置)に代わって代行サーバが、TLSサーバ(第1の暗号通信装置)との間でクライアント認証付きハンドシェイクを実行し、代行サーバがTLSサーバの正当性をTLSクライアントに代わって検証するシステムである。
なお、実施形態の代行システムは、TLSハンドシェイク(のフェーズ)後の暗号通信フェーズにおいては、当然に、実施形態のTLSクライアント及びTLSサーバ間で、代行サーバを介さずに、対称鍵を用いた暗号通信を行うものである。
実施形態の代行システムは、非特許文献2に記載の代行システムを基本としながら、さらに、代行サーバが、対称鍵を知ることなく、TLSクライアントとTLSサーバとの間で正しく対称鍵を共有できていることを確認できるシーケンスを追加したことを特徴としているものである。すなわち、後述するように、代行サーバが、Server−Finishedメッセージの生成に必要なパラメータをTLSクライアントに与えて、TLSクライアントがServer−Finishedメッセージを生成して代行サーバに送信し、代行サーバが、TLSサーバから受信したServer−Finishedメッセージから得られたデータと、TLSクライアントから受信したServer−Finishedメッセージから得られたデータとを比較することで、対称鍵を知ることなく、TLSクライアントとTLSサーバとの間で正しく対称鍵を共有できていることを確認できることを特徴とする。
なお、実施形態の代行システムでは、TLSの暗号通信プロトコルとして、ブロック暗号アルゴリズムとメッセージ認証アルゴリズムを用いた認証暗号アルゴリズムを用いた暗号化を採用しているものとする。
(A−1)実施形態の構成
実施形態の代行システム10も、図1に示すように、TLSクライアント100、代行サーバ200及びTLSサーバ300を構成要素とし、TLSハンドシェイクのフェーズでは、基本的には、TLSクライアント100に代わって代行サーバ200が、TLSサーバ300との間でクライアント認証付きハンドシェイクを実行し、代行サーバ200がTLSサーバ300の正当性をTLSクライアント100に代わって検証し、その後の暗号通信フェーズにおいては、当然に、TLSクライアント100及びTLSサーバ300間で、代行サーバ200を介さずに、対称鍵を用いた暗号通信を行う。
図2は、実施形態のTLSクライアント100におけるTLSハンドシェイク中の特徴の実現に係る機能的構成を示すブロック図である。図2は、上述した実施形態の特徴を理解し易いように機能分けしたブロック図である。実施形態のTLSクライアント100は、後述する送受信部101におけるハードウェア構成を除いた部分を、CPUと、CPUが実行するプログラム(暗号通信装置プログラム)で実現することも可能であるが、このようなソフトウェアを利用した実現構成でも、機能的には、図2で表すことができる。
図2において、TLSクライアント100は、送受信部101、代行計算処理部102、検証データ生成部103及び結果処理部104を有する。
送受信部101は、TLSハンドシェイクフェーズにおいて、代行サーバ200と通信を行うものである。
代行計算処理部102は、代行サーバ200から、対称鍵の生成と、ディジタル署名の生成に必要な代行パラメータ(Parameters(1))を受信して、対称鍵の生成と、ディジタル署名の生成とを行う。代行パラメータは、この実施形態の代行システム10において予め定義されている。
上記ディジタル署名については、送受信部101を介して代行サーバ200に送信する。
この実施形態では、上述のように、TLSクライアント100(の代行計算処理部102)が対称鍵を生成し、代行サーバ200は対称鍵を知得することができない。
また、代行計算処理部102は、代行サーバ200から、Client−Finishedメッセージの生成に必要な代行パラメータ(Parameters(2))を受信して、Client−Finishedメッセージの生成を行う。これは、Client−Finishedメッセージの生成を行うことを通じて、それまでのハンドシェイク処理が正当に実行されていることを、TLSサーバ300に証明するためである。
検証データ生成部103は、代行サーバ200から受信した、ハッシュ値Hashと、第1の検証データ(TLSサーバ300が生成した検証データをいう)のバイト数情報と、初期ベクタ等の暗号アルゴリズムに依存するパラメータ(この実施形態では初期ベクタ情報のみとする)とを適用して(これら3種類のパラメータは後述する図4ではParameters(3)と表記している)、RFC5246の7.4.9節に記載の(1)式で表されるverify_dataを計算し、このverify_dataを適用して検証データ(第2の検証データ;TLSクライアント100が生成した検証データをいう)を生成する。
verify_data=PRF(master_secret,finished_label,Hash) …(1)
ここで、master_secretは対称鍵のことであり、finished_labelとはアスキー文字列”server finished”であり、Hashは前述のハッシュ値Hashであり、PRF()関数はRFC5246のセクション5に記載の擬似乱数関数(Pseudorandom Function)である。TLSクライアント100に設けられた検証データ生成部103ではあるが、finished_labelに、アスキー文字列“client finished”ではなく、上述のようにアスキー文字列”server finished”を導入することにより、TLSクライアント100が、TLSサーバ300が実行するverify_dataの生成操作と同様な操作を行う。
検証データ生成部103は、verify_dataをRFC5246の6.2.3節に記載の暗号化プロトコルに従って暗号化して、第2の検証データを生成する。
ここで、受信した第1の検証データのバイト数をLとし、メッセージ認証符号アルゴリズムに規定の符号長と、ハッシュ値Hashのバイト数と、その他実装に依存するヘッダ等の情報のバイト数との総和をMとしたとき、検証データ生成部103は、パディング長Pを(2)式に従って計算する。検証データ生成部103は、verify_dataを入力とし、初期ベクタには代行サーバ200から受信した初期ベクタを適用し、(2)式に従って得たパディング長Pを適用して、所定の暗号化プロトコルを実行することにより、第2の検証データを生成し、Server Finishedメッセージに含めて代行サーバ200に送信する。
P=L−M …(2)
結果処理部104は、代行サーバ200からの、TLSサーバ300の正当性に係る検証結果を受けて、検証結果に応じた処理を行う。例えば、結果処理部104は、検証が成功ならば暗号通信フェーズに移行させて通信を続行させ、検証が失敗ならば暗号通信フェーズに移行させずに通信を中断させる。なお、検証結果に応じた処理の内容は、この例に限定されるものではない。
図3は、実施形態の代行サーバ200におけるTLSハンドシェイク中の特徴の実現に係る機能的構成を示すブロック図である。図3は、上述した実施形態の特徴を理解し易いように機能分けしたブロック図である。実施形態の代行サーバ200は、後述する送受信部201におけるハードウェア構成を除いた部分を、CPUと、CPUが実行するプログラム(代行サーバプログラム)で実現することも可能であるが、このようなソフトウェアを利用した実現構成でも、機能的には、図3で表すことができる。また、実施形態の代行サーバ200は、1台の物理的なサーバでなっている必要はなく、複数のサーバの分散配置構成で実現されていても良い(非特許文献2参照)。
図3において、代行サーバ200は、送受信部201、代行計算処理部202、検証データ比較部203及びパラメータ通知部204を有する。
送受信部201は、TLSハンドシェイクフェーズにおいて、TLSクライアント100及びTLSサーバと通信を行う。
代行計算処理部202は、TLSハンドシェイクの代行を行う。
代行計算処理部202は、代行処理の中で、TLSクライアント100に必要なパラメータ情報(Prameters(1))をパラメータ通知部204を介して与え、TLSクライアント100からディジタル署名情報(Signature)を受け取り、CertificateVerifyメッセージを生成してTLSサーバ300に送信する。
また、代行計算処理部202は、代行処理の中で、TLSクライアント100に必要なパラメータ情報(Prameters(2))をパラメータ通知部204を介して与え、TLSクライアント100からClient−Finishedメッセージを受け取り、TLSサーバ300に送信する。
さらに、代行計算処理部202は、TLSクライアント100からClient−Finishedメッセージを受信したときに、ハンドシェイクメッセージのハッシュ値Hashを所定のハッシュ関数を適用して計算した後、TLSクライアント100がServer Finishedメッセージに含める第2の検証データの生成に必要なパラメータ情報(Parameters(3))を、パラメータ通知部204を介して、TLSクライアント100に与えると共に、TLSサーバ300からのServer−Finishedメッセージに含まれている第1の検証データを検証データ比較部203に与える。上述したように、TLSクライアント100がServer Finishedメッセージに含める第2の検証データの生成に必要なパラメータ情報は、計算で得られたハッシュ値Hashと、TLSサーバ300からのServer−Finishedメッセージに含まれている第1の検証データのバイト数情報と、初期ベクタ情報とである。
検証データ比較部203は、代行計算処理部202から第1の検証データを受け取り、送受信部201から第2の検証データを受け取って、第1の検証データ及び第2の検証データを比較し、両者が同一である場合には成功とし(TLSクライアントとTLSサーバとの間で正しく対称鍵を共有できているとし)、そうでない場合には失敗として、結果をTLSクライアント100に送信する。
パラメータ通知部204は、代行計算処理部202から供給されたパラメータ情報(Parameters(1)、(2)、(3))をTLSクライアント端末100に通知する。
この実施形態の場合、TLSサーバ300の構成には特徴はなく、図示は省略するが、TLSサーバ300は、TLSハンドシェイクにおけるTLSサーバプロトコルを実行できる一般的な構成を有する。
(A−2)実施形態の動作
次に、実施形態の代行システム10におけるTLSハンドシェイクのフェーズでの動作を説明する。
図4は、実施形態の代行システム10におけるTLSハンドシェイクのフェーズでの動作を示すラダー図である。
例えば、TLSクライアント100がTLSサーバ300との通信が必要となったときに、代行サーバ200による代行処理を起動する。また例えば、TLSクライアント100及びTLSサーバ300間の通信を、所定期間毎の定時に実行するような場合であれば、代行サーバ200が定時になると自動的に代行処理を起動する。
代行処理が起動されると、代行サーバ200(の代行計算処理部202)は、TLSハンドシェイクの代行プロトコルに従って、まず、TLSサーバ300に、TLSクライアント100が提示する暗号技術に関するパラメータや、鍵生成に使用する乱数等を含むClientHelloメッセージをTLSサーバ300に送信する。
ClientHelloメッセージの到来に応じて、TLSサーバ300は、ServerHelloメッセージ、Server−Certificateメッセージ、CertificateRequestメッセージ、ServerHelloDoneメッセージを代行サーバ200に順次送信する。
TLSサーバ300は、ServerHelloメッセージによって、例えば、選択した暗号化や圧縮化のアルゴリズムや、TLSサーバ300側の乱数を通知する。TLSサーバ300は、Server−Certificateメッセージによって、例えば、TLSサーバ300側の公開鍵を通知する。TLSサーバ300は、CertificateRequestメッセージによって、例えば、クライアント認証を要求すると共に、証明書の種類に関する情報を通知する。TLSサーバ300は、ServerHelloDoneメッセージによって、ClientHelloメッセージの到来に応じて送信するメッセージ群の終了を通知する。
ServerHelloDoneメッセージの到来に応じて、代行サーバ200は、Client−Certificateメッセージ、ClientKeyExchangeメッセージ、CertificateVerifyメッセージ、ChangeCipherSpecメッセージ、Client−FinishedメッセージをTLSサーバ300に順次送信する。
ここで、Client−Certificateメッセージ及びCertificateVerifyメッセージは、クライアント認証の要求に応じて送信するものであり、Client−CertificateメッセージはTLSクライアント100の証明書を送信するものであり、CertificateVerifyメッセージは、TLSサーバ300がTLSクライアント100を認証するものである。代行サーバ200(の代行計算処理部202)は、TLSクライアント100に第1のパラメータ情報(Prameters(1))を与えて、TLSクライアント100に、ディジタル署名情報(Signature)を生成させて受け取り、ディジタル署名情報をCertificateVerifyメッセージに盛り込んでTLSサーバ300に送信する。なお、TLSクライアント100は、ディジタル署名情報の生成に先立ち、対称鍵の生成を行う。
また、代行サーバ200が送信するClientKeyExchangeメッセージは、鍵交換用のメッセージであり、この実施形態では、暗号スイートの鍵共有プロトコルがDiffie−Hellman鍵共有プロトコルであり、当該メッセージには、クライアント公開鍵が含まれていることとする。その後に送信するChangeCipherSpecメッセージは、後続する全てのメッセージを、今取り決めた暗号スイートで暗号化することを通知する。Client−Finishedメッセージには、接続全体のチェック値を含み、これにより、TLSサーバ300は、暗号スイートが安全に取り決められたことを確信できる。この実施形態の場合、Client−Finishedメッセージの生成をTLSクライアント100が行うこととしており、代行サーバ200(の代行計算処理部202)は、TLSクライアント100に第2のパラメータ情報(Prameters(2))を与えて、TLSクライアント100にClient−Finishedメッセージを生成させ、そのClient−FinishedメッセージをTLSサーバ300に転送する。
Client−Finishedメッセージを受信したTLSサーバ300は、ChangeCipherSpecメッセージ、Server−Finishedメッセージを代行サーバ200に順次送信する。
これらメッセージの送受信を通じて、一般的には、アプリケーションデータの送信が開始できる状態になる。
しかし、この実施形態では、代行サーバ200は、TLSクライアント100とTLSサーバ300間で共有する対称鍵情報を知らないため、当該対称鍵を用いて行うServer−Finishedメッセージの処理をすることができない。ただし、ChangeCipherSpecメッセージやServer−Finishedメッセージを代行サーバ200が受信する前においても、TLSサーバ300の公開鍵証明書の検証を代行サーバ200で行うための前処理等も実行されるものとする。
そこで以下、当該対称鍵を知ることなく代行サーバ200がServer−Finishedメッセージを処理するための一連の処理を取り上げて説明する。
代行サーバ200の代行計算処理部202は、TLSクライアント100から受信したClient−FinishedメッセージをTLSサーバ300に送信したときにハッシュ値Hashを計算し、パラメータ通知部204に与え、パラメータ通知部204は、このハッシュ値Hashを一時的に保持する。
その後、該代行計算処理部202は、TLSサーバ300からChangeCipherSpecメッセージ及びServer−Finishedメッセージを受信すると、Server−FinishedメッセージのTLSペイロード部から、まず初期ベクタを抽出し、次に残りの部分を第1の検証データとして抽出する。ここで、初期ベクタの長さは、TLS暗号通信プロトコルで利用するブロック暗号アルゴリズムのブロックサイズと同じである。代行計算処理部202は、抽出した初期ベクタと、第1の検証データのバイト数とをパラメータ通知部204に与えると共に、抽出した第1の検証データを検証データ比較部203に与える。検証データ比較部203は、第1の検証データを一時的に保持する。パラメータ通知部204は、ハッシュ値Hashと、初期ベクタと、第1の検証データのバイト数とを、TLSクライアント100に送信する(図4ではParameters(3)と表記している)。
TLSクライアント100は、ハッシュ値Hashと、初期ベクタと、第1の検証データのバイト数とを受信すると、検証データ生成部103に渡し、検証データ生成部103は、ハッシュ値Hashを入力として、(1)式に従ってverify_dataを計算する。また、検証データ生成部103は、第1の検証データのバイト数から、メッセージ認証符号のバイト数と、ハッシュ値hashのバイト数と、その他実装に依存するヘッダ情報等のバイト数を差し引いた数値をパディング長とし、初期ベクタを代行サーバ200から受信した初期ベクタとして、verify_dataをRFC5246の6.2.3節に記載の暗号化プロトコルに従って暗号化して、第2の検証データを生成して照合用のServer−Finishedメッセージに盛り込んで代行サーバ200に送信する。
代行サーバ200は、第2の検証データを受信すると、検証データ比較部203に送り、検証データ比較部203は、保持してある第1の検証データと、この第2の検証データとを比較する。そして、代行サーバ200は、双方の検証データが一致すれば成功を示す所定のメッセージ(その内容は特に限定しない)をTLSクライアント100に送信し、そうでなければ失敗を示すメッセージをTLSクライアント100に送信する(図4ではResultと表記している)。
TLSクライアント100は、2つの検証データの比較結果のメッセージを受信すると、結果処理部104に与え、比較結果のメッセージに応じた所定の処理(特に限定されない)を実行する。例えば、成功を示す比較結果のメッセージが与えられた際には、TLSクライアント100は、暗号通信フェーズに移行する。なお、この実施形態の場合、TLSクライアント100がアプリケーションデータの暗号通信を実行するために必要な情報は、比較結果のメッセージが与えられる前に、TLSクライアント100は取得できている。
(A−3)実施形態の効果
上記実施形態によれば、代行サーバ200がTLSハンドシェイク中で生成される対称鍵を知らなくても、TLSサーバ300の正当性を検証することができる。
(B)他の実施形態
背景技術等では、無線マルチホップネットワークに言及したが、本発明の暗号通信システムが適用されるシステムは無線マルチホップネットワークに限定されるものではない。言い換えると、TLSクライアント100やTLSサーバ300を搭載している具体的な暗号通信装置の種類は限定されないものである。
上記実施形態では、通信セキュリティプロトコルがTLSである場合を示したが、TLSと同様な構成を有する他の通信セキュリティプロトコル(例えば、SSLv3)を適用しているシステムにも、本発明を適用することができる。
10…代行システム、
100…TLSクライアント、
101…送受信部、102…代行計算処理部、103…検証データ生成部、104…結果処理部、
200…代行サーバ、
201…送受信部、202…代行計算処理部、203…検証データ比較部、204…パラメータ通知部、
300…TLSサーバ。

Claims (4)

  1. 第2の暗号通信装置に代わって、代行サーバが、第1の暗号通信装置との間で、所定の通信セキュリティプロトコルに従ったハンドシェイクを実行すると共に、所定のパラメータ情報に従って上記第2の暗号通信装置が対称鍵を生成する暗号通信システムにおける上記第2の暗号通信装置が該当する暗号通信装置において、
    上記第1の暗号通信装置が、合意したばかりの暗号通信アルゴリズムで保護されたハンドシェイク終了メッセージに含める第1の検証データを生成するのに利用したパラメータ情報のうち、当該暗号通信装置が上記第1の暗号通信装置との間で共有していない一部のパラメータ情報を上記代行サーバから取得し、この一部のパラメータ情報の取得により完備した、上記第1の検証データを生成したパラメータ情報を入力パラメータ情報として第2の検証データを生成し、上記代行サーバに返信する第2の検証データ生成手段を有し、
    上記所定の通信セキュリティプロトコルがTLSであり、
    上記代行サーバから取得する、当該暗号通信装置が上記第1の暗号通信装置との間で共有していない一部のパラメータ情報が、少なくとも、ハッシュ値と、上記第1の検証データのバイト数情報と、初期ベクタ情報とであり、
    上記第2の検証データ生成手段は、
    上記第1の検証データのバイト数から、メッセージ認証アルゴリズムに規定のメッセージ認証符号長と、上記ハッシュ値のバイト数と、その他実装に依存するヘッダ等の情報のバイト数を差し引いた値をパディング長とし、
    初期ベクタとして、上記代行サーバから受信した初期ベクタを適用し、
    上記ハッシュ値を引数として所定の演算を行った結果を、所定の暗号化プロトコルの入力として
    上記第2の検証データを生成する
    ことを特徴とする暗号通信装置。
  2. 第2の暗号通信装置に代わって、代行サーバが、第1の暗号通信装置との間で、所定の通信セキュリティプロトコルに従ったハンドシェイクを実行すると共に、所定のパラメータ情報に従って上記第2の暗号通信装置が対称鍵を生成する暗号通信システムにおける上記第2の暗号通信装置が該当する暗号通信装置に搭載されるコンピュータを、
    上記第1の暗号通信装置が、合意したばかりの暗号通信アルゴリズムで保護されたハンドシェイク終了メッセージに含める第1の検証データを生成するのに利用したパラメータ情報のうち、当該暗号通信装置が上記第1の暗号通信装置との間で共有していない一部のパラメータ情報を上記代行サーバから取得し、この一部のパラメータ情報の取得により完備した、上記第1の検証データを生成したパラメータ情報を入力パラメータ情報として第2の検証データを生成し、上記代行サーバに返信する第2の検証データ生成手段として機能させる暗号通信装置プログラムであって、
    上記所定の通信セキュリティプロトコルがTLSであり、
    上記代行サーバから取得する、当該暗号通信装置プログラムを実行する上記コンピュータを搭載した上記暗号通信装置が上記第1の暗号通信装置との間で共有していない一部のパラメータ情報が、少なくとも、ハッシュ値と、上記第1の検証データのバイト数情報と、初期ベクタ情報とであり、
    上記第2の検証データ生成手段は、
    上記第1の検証データのバイト数から、メッセージ認証アルゴリズムに規定のメッセージ認証符号長と、上記ハッシュ値のバイト数と、その他実装に依存するヘッダ等の情報のバイト数を差し引いた値をパディング長とし、
    初期ベクタとして、上記代行サーバから受信した初期ベクタを適用し、
    上記ハッシュ値を引数として所定の演算を行った結果を、所定の暗号化プロトコルの入力として
    上記第2の検証データを生成する
    ことを特徴とする暗号通信装置プログラム。
  3. 第2の暗号通信装置に代わって、第1の暗号通信装置との間で、所定の通信セキュリティプロトコルに従ったハンドシェイクを実行すると共に、所定のパラメータ情報を与えて上記第2の暗号通信装置に対称鍵を生成させる代行サーバにおいて、
    上記第1の暗号通信装置から到来した、合意したばかりの暗号通信アルゴリズムで保護されたハンドシェイク終了メッセージから、その一部を抽出して得たデータを第1の検証データとして保持する第1検証データ保持手段と、
    上記第2の暗号通信装置へ、上記第1の暗号通信装置が上記第1の検証データを生成するのに利用したパラメータ情報のうち、上記第2の暗号通信装置が上記第1の暗号通信装置との間で共有していない一部のパラメータ情報を与え、上記第2の暗号通信装置が生成した上記第2の検証データを取込む第2の検証データ生成依頼・取込手段と、
    上記第1検証データ保持手段に保持されている第1の検証データと、上記第2の暗号通信装置から取り込んだ第2の検証データとを比較し、上記第1の暗号通信装置の正当性を検証する検証データ比較手段とを有し、
    上記所定の通信セキュリティプロトコルがTLSであり、
    上記第2の検証データ生成依頼・取込手段が上記第2の暗号通信装置へ与える、上記第2の暗号通信装置が上記第1の暗号通信装置との間で共有していない一部のパラメータ情報が、少なくとも、ハッシュ値と、上記第1の検証データのバイト数情報と、初期ベクタ情報とである
    ことを特徴とする代行サーバ。
  4. 第2の暗号通信装置に代わって、第1の暗号通信装置との間で、所定の通信セキュリティプロトコルに従ったハンドシェイクを実行すると共に、所定のパラメータ情報を与えて上記第2の暗号通信装置に対称鍵を生成させる代行サーバに搭載されるコンピュータを、
    上記第1の暗号通信装置から到来した、合意したばかりの暗号通信アルゴリズムで保護されたハンドシェイク終了メッセージから、その一部を抽出して得たデータを第1の検証データとして保持する第1検証データ保持手段と、
    上記第2の暗号通信装置へ、上記第1の暗号通信装置が上記第1の検証データを生成するのに利用したパラメータ情報のうち、上記第2の暗号通信装置が上記第1の暗号通信装置との間で共有していない一部のパラメータ情報を与え、上記第2の暗号通信装置が生成した上記第2の検証データを取込む第2の検証データ生成依頼・取込手段と、
    上記第1検証データ保持手段に保持されている第1の検証データと、上記第2の暗号通信装置から取り込んだ第2の検証データとを比較し、上記第1の暗号通信装置の正当性を検証する検証データ比較手段として機能させる代行サーバプログラムであって、
    上記所定の通信セキュリティプロトコルがTLSであり、
    上記第2の検証データ生成依頼・取込手段が上記第2の暗号通信装置へ与える、上記第2の暗号通信装置が上記第1の暗号通信装置との間で共有していない一部のパラメータ情報が、少なくとも、ハッシュ値と、上記第1の検証データのバイト数情報と、初期ベクタ情報とである
    ことを特徴とする代行サーバプログラム。
JP2013015931A 2013-01-30 2013-01-30 暗号通信装置、代行サーバ、暗号通信装置プログラム及び代行サーバプログラム Expired - Fee Related JP5614465B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013015931A JP5614465B2 (ja) 2013-01-30 2013-01-30 暗号通信装置、代行サーバ、暗号通信装置プログラム及び代行サーバプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013015931A JP5614465B2 (ja) 2013-01-30 2013-01-30 暗号通信装置、代行サーバ、暗号通信装置プログラム及び代行サーバプログラム

Publications (2)

Publication Number Publication Date
JP2014147039A JP2014147039A (ja) 2014-08-14
JP5614465B2 true JP5614465B2 (ja) 2014-10-29

Family

ID=51426947

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013015931A Expired - Fee Related JP5614465B2 (ja) 2013-01-30 2013-01-30 暗号通信装置、代行サーバ、暗号通信装置プログラム及び代行サーバプログラム

Country Status (1)

Country Link
JP (1) JP5614465B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190021736A (ko) * 2017-08-23 2019-03-06 세종대학교산학협력단 계산 검증 방법과 이를 수행하기 위한 장치 및 시스템

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101688118B1 (ko) * 2015-05-13 2016-12-22 주식회사 퓨쳐시스템 사물인터넷 환경에서의 보안 통신 장치 및 그 방법
CN105471896B (zh) * 2015-12-28 2019-01-15 深信服科技股份有限公司 基于ssl的代理方法、装置及系统
CN106453380B (zh) * 2016-10-28 2019-12-31 美的智慧家居科技有限公司 密钥协商方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001134534A (ja) * 1999-11-08 2001-05-18 Ntt Communications Kk 認証代行方法、認証代行サービスシステム、認証代行サーバ装置及びクライアント装置
JP2002082907A (ja) * 2000-09-11 2002-03-22 Nec Corp データ通信におけるセキュリティ機能代理方法、セキュリティ機能代理システム、及び、記録媒体
JP2002158650A (ja) * 2000-11-21 2002-05-31 Fujitsu Ltd 認証・暗号化処理代行用のサーバ、アクセスカード、プログラム記録媒体及び携帯端末
JP2003179592A (ja) * 2001-12-12 2003-06-27 Sony Corp ネットワークシステム、情報処理装置および方法、記録媒体、並びにプログラム
EP1397014A1 (en) * 2002-09-04 2004-03-10 SCHLUMBERGER Systèmes WIM (WAP Identification module) Primitives for handling the secure socket layer protocol (SSL)
JP2006041726A (ja) * 2004-07-23 2006-02-09 Matsushita Electric Ind Co Ltd 共有鍵交換システム、共有鍵交換方法及び方法プログラム
US9055107B2 (en) * 2006-12-01 2015-06-09 Microsoft Technology Licensing, Llc Authentication delegation based on re-verification of cryptographic evidence
US8291231B2 (en) * 2007-11-07 2012-10-16 Nippon Telegraph And Telephone Corporation Common key setting method, relay apparatus, and program
JP4879347B2 (ja) * 2009-12-25 2012-02-22 キヤノンItソリューションズ株式会社 中継処理装置、中継処理方法及びプログラム
JP5494603B2 (ja) * 2011-09-29 2014-05-21 沖電気工業株式会社 セキュリティ処理代行システム
JP5333613B2 (ja) * 2012-01-25 2013-11-06 沖電気工業株式会社 代行パラメータ情報生成装置、代行装置、代行パラメータ情報生成プログラム、代行プログラム及び通信システム
JP5464232B2 (ja) * 2012-05-23 2014-04-09 沖電気工業株式会社 セキュア通信システム及び通信装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190021736A (ko) * 2017-08-23 2019-03-06 세종대학교산학협력단 계산 검증 방법과 이를 수행하기 위한 장치 및 시스템
KR101998853B1 (ko) 2017-08-23 2019-07-10 세종대학교산학협력단 계산 검증 방법과 이를 수행하기 위한 장치 및 시스템

Also Published As

Publication number Publication date
JP2014147039A (ja) 2014-08-14

Similar Documents

Publication Publication Date Title
CN114651421B (zh) 使用临时密钥的传输层安全中的正向安全
CN110380852B (zh) 双向认证方法及通信系统
CN109088889B (zh) 一种ssl加解密方法、系统及计算机可读存储介质
JP4709815B2 (ja) 認証方法および装置
US9021552B2 (en) User authentication for intermediate representational state transfer (REST) client via certificate authority
WO2017045552A1 (zh) 一种在ssl或tls通信中加载数字证书的方法和装置
WO2022021992A1 (zh) 一种基于NB-IoT通信的数据传输方法、系统及介质
US9172753B1 (en) Methods for optimizing HTTP header based authentication and devices thereof
CN107800675B (zh) 一种数据传输方法、终端以及服务器
CN109413201B (zh) Ssl通信方法、装置及存储介质
Ha et al. Efficient authentication of resource-constrained IoT devices based on ECQV implicit certificates and datagram transport layer security protocol
WO2019178942A1 (zh) 一种进行ssl握手的方法和系统
RU2530691C1 (ru) Способ защищенного удаленного доступа к информационным ресурсам
JP2015115893A (ja) 通信方法、通信プログラム、および中継装置
US20170155647A1 (en) Method for setting up a secure end-to-end communication between a user terminal and a connected object
Claeys et al. Securing complex IoT platforms with token based access control and authenticated key establishment
EP3375133B1 (fr) Procede de securisation et d'authentification d'une telecommunication
CN112564912A (zh) 建立安全连接的方法、系统、装置和电子设备
CN112714053A (zh) 通信连接方法及装置
JP5614465B2 (ja) 暗号通信装置、代行サーバ、暗号通信装置プログラム及び代行サーバプログラム
CN110839240A (zh) 一种建立连接的方法及装置
CN110690969A (zh) 一种多方协同完成双向ssl/tls认证的方法和系统
CN108667761B (zh) 一种利用安全套接字层会话保护单点登录的方法
CN110581829A (zh) 通信方法及装置
Gerez et al. Energy and processing demand analysis of tls protocol in internet of things applications

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140716

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140812

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140825

R150 Certificate of patent or registration of utility model

Ref document number: 5614465

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees