(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-04
(45)【発行日】2023-01-13
(54)【発明の名称】エンドツーエンド暗号化通信システム
(51)【国際特許分類】
H04L 67/02 20220101AFI20230105BHJP
【FI】
H04L67/02
(21)【出願番号】P 2017200610
(22)【出願日】2017-09-27
【審査請求日】2020-08-19
(73)【特許権者】
【識別番号】506091665
【氏名又は名称】有限会社シモウサ・システムズ
(72)【発明者】
【氏名】山本 明生
【審査官】羽岡 さやか
(56)【参考文献】
【文献】特開2006-165678(JP,A)
【文献】特許第4081724(JP,B1)
【文献】特開2006-053799(JP,A)
【文献】特表2015-507901(JP,A)
【文献】国際公開第2006/067831(WO,A1)
【文献】特表2014-522014(JP,A)
【文献】特表2016-522478(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-69/40
H04L 9/00-9/40
(57)【特許請求の範囲】
【請求項1】
暗号通信路であるHTTPS上のWebSocket等のコネクション型プロトコルにて接続された2台以上のP2P E2EEクライアント通信装置と、その接続を受け付けるリレーサーバ等と呼ばれるP2P E2EEサーバ通信装置からなる通信装置構成群であり、ある瞬間に特定の2台のP2P E2EEクライアント間の通信が左記のP2P E2EEサーバ通信装置を経由して送受信される通信装置群であり、暗号通信路であるHTTPS上のWebSocket等のコネクション型プロトコルのコネクションがそれぞれのP2P E2EEクライアントとP2P E2EEサーバ間で終端されている通信装置群であり、この構成において特定の2台の通信が、中継路上でHTTPS上のWebSocket等のコネクション型プロトコルのコネクションを終端しているP2P E2EEサーバ通信装置に復号されないよう、1台目のP2P E2EEクライアントとP2PE2EEサーバ間のHTTPS上のWebSocket等のコネクション型プロトコルのコネクション、ならびに2台目のP2P E2EEクライアントとP2PE2EEサーバ間のHTTPS上のWebSocket等のコネクション型プロトコルのコネクションを経由する論理的な通信路上で、もう一つの疑似的なSSL/TLS通信を確立し、通信をする通信装置群
【発明の詳細な説明】
【技術分野】
【0001】
本発明は,OSI(Open System Interconnection)が策定するOSI参照モデル(非特許文献1参照)のトランスポート層以上の階層で中継を行う機器を経由した通信において,通信の当事者間で暗号化通信を行い,中継を行う機器における通信内容の解読を防止するものである。
【背景技術】
【0002】
家庭のLAN(Local Area Network)環境や,各種事業所のLAN環境でインターネット通信を行う場合,ルータが持つNAPT(Network Address Port Translation)機能(非特許文献2参照)により,IPアドレスやポート番号が変換され通信が行われる。
【0003】
また各種事業所のLAN環境からインターネット通信を行う場合,ファイアウォール機器により,通信可能な通信種別が制限されている環境が多い。
【先行技術文献】
【非特許文献】
【0004】
【文献】“The Basic Reference Model of Open Systems Interconnection(OSI)”,ISO/IEC 7 498、1989年
【文献】P.Srisuresh、M.Holdrege、Lucent Technologies、“IP Network Address Translator(NAT)Terminology and Considerations”、RFC2663、[online]、1999年8月、[平成29年9月27日検索]、インターネット〈https://tools.ietf.org/html/rfc2663〉
【発明の開示】
【発明が解決しようとする課題】
【0005】
このようなインターネット通信環境において,ピアツーピア通信を行う当事者はTCP(Transmission Control Protocol;非特許文献3参照),あるいはUDP(User Datagram Protocol;非特許文献4参照)等,OSI参照モデルのトランスポート層に位置する通信プロトコルを用いて,リレーサーバ,あるいはリレーエージェント等と名付けられた通信の中継を行う機器に対する通信路を確立し,中継を行う機器を介した形で通信を行うことがある。
【0006】
一方,通信当事者間での暗号化通信を実現するための暗号通信プロトコルとして広く普及しているSSL/TLS(Secure Socket Layer)/TLS(Transport Layer Security;非特許文献5、非特許文献6、非特許文献7参照)では,OSI参照モデルのトランスポート層において通信を終端するプログラム間での暗号化通信を行う。
【0007】
中継を行う機器を介したピアツーピア通信を行う場合,通信当事者であるプログラムは,中継を行う機器上の中継プログラムとの間でトランスポート層の論理的な通信セッションを確立する。この通信においてSSL/TLSを使用する場合,通信内容の暗号化は,通信当事者であるプログラムと中継を行う機器上の中継プログラムとの間で行われる。
【0008】
すると,中継を行う機器上の中継プログラムが通信内容を復号し,内容を解読することができる。このため通信の当事者は通信の中継経路を運用する者に,通信内容を解読され得るという潜在的な脅威を持つことになる。
【先行技術文献】
【非特許文献】
【0009】
【文献】Defense Advanced Research Projects Agency Information Processing Techniques Office、“Transmission Control Protocol”、RFC793、[online]、1981年9月、[平成29年9月27日検索]、インターネット〈https://tools.ietf.org/html/rfc793〉
【文献】J.Postel、“User Datagram Protocol”、RFC768、[online]、1980年8月、[平成29年9月27日検索]、インターネット〈https://tools.ietf.org/html/rfc768〉
【文献】T.Dierks、C.Allen、“The Transport Layer Security(TLS)Protocol Version 1.0”、RFC2246、[online]、1999年1月、[平成29年9月27日検索]、インターネットhttps://tools.ietf.org/html/rfc2246
【文献】T.Dierks、E.Rescorla、“The Transport Layer Security(TLS)Protocol Version 1.1”、RFC4346、[online]、2006年4月、[平成29年9月27日検索]、インターネット〈https://tools.ietf.org/html/rfc4346〉
【文献】T.Dierks、E.Rescorla、“The Transport Layer Security(TLS)Protocol Version 1.2”、RFC5246、[online]、2008年8月、[平成29年9月27日検索]、インターネット〈https://tools.ietf.org/html/rfc5246〉
【課題を解決するための手段】
【0010】
本発明は、
図1に示すとおり、P2P E2EEクライアントとP2P E2EEエージェント,並びにリレーサーバより構成される。
【0011】
通信に先立ち,まずリレーサーバが特定のTCPポートにおいて待受けを行う。
【0012】
P2P E2EEクライアント,およびP2P E2EEエージェントはリレーサーバに対して,自身の識別子を提示し,TCPコネクション,あるいはWebSocketを用いた論理的なセッションを確立し,任意のタイミングで片方向,あるいは双方向の通信ができる状態にする。
【0013】
P2P E2EEクライアントは,コンピュータ1内のTCPポート上で,外部プログラムからの待受けを行っており,TCPサーバとして振る舞う。
【0014】
P2P E2EEクライアントが外部プログラムからTCPコネクションの確立を受けると,P2P E2EEクライアントは,リレーサーバを通じて,P2P E2EEエージェントに対する擬似的なTCPコネクションを確立する。
【0015】
P2P E2EEエージェントは,コンピュータ2内で,TCPクライアントとしても振る舞い,擬似的なTCPコネクションの確立時に外部サーバへのTCPコネクションを確立する。この外部サーバのIPアドレスあるいはホスト名とTCPのポート番号は,予めP2P E2EEエージェントが設定値として保持しているか,リレーサーバより擬似的なTCPコネクションの確立時に指定されるものとする。なお,
図1では外部サーバがP2P E2EEエージェントと同じコンピュータ上に位置しているが,別のコンピュータ上にあっても良い。
【0016】
P2P E2EEクライアントとP2P E2EEエージェント間で擬似TCPコネクションが確立された後,P2P E2EEクライアントとP2P E2EEエージェントの間では,この擬似TCPコネクション上でSSL/TLSのセッションが確立される。
【0017】
[0014]から[0015]で記述された擬似TCPコネクションの確立に際し,P2P E2EEクライアントはリレーサーバに通信相手であるP2P E2EEエージェントを識別するための識別子を添えて,擬似TCPコネクションの確立を要求する。また,P2P E2EEエージェントがリレーサーバから擬似TCPコネクションの確立を要求される場合には,当該擬似TCPコネクションの確立を要求しているP2P E2EEクライアントの識別子が添えられる。 TCPコネクションの確立後SSL/TLSのセッション開始にあたって,P2P E2EEクライアントとP2P E2EEエージェントの間ではSSL/TLSのハンドシェークが行われるが,その時に交換されるX.509形式の公開鍵証明書によりお互いの正当性を相互に確認する。この時公開鍵証明書には共通名(Common Name)フィールドが備わっているが,P2P E2EEクライアント,あるいはP2P E2EEエージェントの識別子を共通名として備えた公開鍵証明書を使用する。
【0018】
以上の様に,擬似的なTCPコネクションを確立し,その上でSSL/TLSセッションを確立することで,P2P E2EEクライアントとP2P E2EEエージェントの間には,中継する機器であるリレーサーバによる通信内容の読取りが困難な論理的通信路が確立される。
【発明の効果】
【0019】
利用者は、NAPTやファイアウォール機器が介在する環境等,直接のピアツーピア通信が困難な環境においてピアツーピア通信を行う場合でも,中継路上の各種中継機器による通信内容の読取りの可能性を排除し,安全な通信を行う事ができる。
【発明を実施するための最良の形態】
【0020】
本件発明の具体的な実装の一例では、
図2に示すように,P2P E2EEクライアントからリレーサーバ,およびP2P E2EEエージェントからリレーサーバに対して論理的通信路を確立するために,RFC6455として定義されているWebSocketプロトコル(非特許文献8参照)を使用する。
【0021】
WebSocketはHTTP(Hypertext Transfer Protocol;非特許文献9参照)、あるいは一般的にHTTPSと呼ばれる(HTTP over TLS;非特許文献10参照)を利用する通信プロトコルであるが,P2P E2EEクライアントからリレーサーバ,およびP2P E2EEエージェントからリレーサーバに対する通信内容も第三者による盗聴,改ざんから防御する必要があることから,P2P E2EEクライアントからリレーサーバ,およびP2P E2EEエージェントからリレーサーバに向かって確立されるWebSocket通信ではHTTPSを利用する。
【0022】
P2P E2EEクライアントからリレーサーバ,およびP2P E2EEエージェントからリレーサーバに対するWebSocketを用いた論理的通信路が確立された後,P2P E2EEクライアント,およびP2P E2EEエージェントは,それぞれ4.リレーサーバに対して認証手続きを行うことで,各P2P E2EEクライアント,およびP2P E2EEエージェントの識別を,リレーサーバが行えるようにする。
【0023】
図2において,P2P E2EEクライアント上の2.TCPサーバ兼TLSクライアントに対して1.外部プログラムからTCPコネクションが確立されると,2.TCPサーバ兼TLSクライアントは同じくP2P E2EEクライアント内の3.TCPサーバ兼WebSocketクライアントに対してTCPコネクションを確立する。
【0024】
TCPコネクションが確立された3.TCPサーバ兼WebSocketクライアントは,リレーサーバ内の4.WebSocketサーバに対してP2P E2EEエージェント内の5.Webソケットクライアント兼TCPクライアントに対する擬似TCPコネクション確立要求を送信する。これは
図3上の「3.Webソケットクライアント兼TCPサーバ」から「4.Webソケットサーバ」へと送信されている「疑似TCPコネクション確立要求(WebSocket上)」に該当する。
【0025】
3.TCPサーバ兼WebSocketクライアントから5.Webソケットクライアント兼TCPクライアントに対する擬似TCPコネクション確立要求を受信した4.WebSocketサーバは,5.Webソケットクライアント兼TCPクライアントに対してTCPコネクション確立要求を送信する。これは
図3上の「4.Webソケットサーバ」から「5.Webソケットクライアント兼TCPクライアント」へと送信されている「疑似TCPコネクション確立要求(WebSocket上)」に該当する。
【0026】
4.WebSocketサーバから擬似TCPコネクション確立要求を受信したP2P E2EEエージェント内の5.Webソケットクライアント兼TCPクライアントは,4.WebSocketサーバに対し擬似TCPコネクション確立成功の回答を返信する。これは
図3上の「5.Webソケットクライアント兼TCPクライアント」から「4.Webソケットサーバ」からへと送信されている「疑似TCPコネクション確立回答」に該当する。
【0027】
4.WebSocketサーバは5.Webソケットクライアント兼TCPクライアントから擬似TCPコネクション確立成功の回答を受信したのち,3.TCPサーバ兼WebSocketクライアントに対して擬似TCPコネクション確立成功の回答を返信する。これは
図3上の「4.Webソケットサーバ」から「3.Webソケットクライアント兼TCPサーバ」からへと送信されている「疑似TCPコネクション確立回答」に該当する。
【0028】
擬似TCPコネクションの確立成功後,2.TCPサーバ兼TLSクライアントは,擬似TCP通信路上でSSL/TLS通信の開始時に行われるハンドシェークを6.TLSサーバ兼TCPクライアントに対して行う。これによって2.TCPサーバ兼TLSクライアントと6.TLSサーバ兼TCPクライアントは通信相手の認証と暗号化通信に使用する暗号化アルゴリズムのネゴシエーションを一般的なSSL/TLS通信のしくみに準じて行うことができる。
【0029】
SSL/TLS通信のセッションが2.TCPサーバ兼TLSクライアントと6.TLSサーバ兼TCPクライアントの間で確立されると,6.TLSサーバ兼TCPクライアントは,7.外部サーバに対してTCPコネクションを確立する。
【0030】
[0023]から[0029]で記述された通信手順を
図3として示す。
【0031】
上記の手順を終えると,1.外部プログラムから2.TCPサーバ兼TLSクライアントに対してTCPコネクションを通じて送信されたデータの内容は,透過的に6.TLSサーバ兼TCPクライアントから7.外部サーバに転送される。また,これとは反対に7.外部サーバから6.TLSサーバ兼TCPクライアントに対してTCPコネクションを通じて送信されたデータの内容は,透過的に2.TCPサーバ兼TLSクライアントから1.外部プログラムに転送される。しかしながら,SSL/TLSセッションは2.TCPサーバ兼TLSクライアントと6.TLSサーバ兼TCPクライアントの間で確立されているため,4.WebSocketサーバは,その通信内容を解読することができない。
【非特許文献】
【0032】
【非特許文献8】I.Fette、Google Inc.A.Melnikov、Isode Ltd.、“The WebSocket Protocol”、RFC6455、[online]、2011年12月、[平成29年9月27日検索]、インターネット〈https://tools.ietf.org/html/rfc6455〉
【非特許文献9】UC Irvine、J.Gettys、Compaq/W3C、J.Mogul、Compaq、H.Frystyk、W3C/MIT、L.Masinter、Xerox、P.Leach、Microsoft、T.Berners-Lee、W3C/MIT、“Hypertext Transfer Protocol”、RFC2616、[online]、1999年6月、[平成29年9月27日検索]、インターネット〈https://tools.ietf.org/html/rfc2616〉
【非特許文献10】E.Rescorla、RTFM,Inc.、“HTTP over TLS”、RFC2818、[online]、2000年5月、[平成29年9月27日検索]、インターネット〈https://tools.ietf.org/html/rfc2818〉
【産業上の利用可能性】
【0033】
本発明により、既存の通信プロトコルを利用しつつ,ピアツーピア通信における通信当事者間での暗号化通信を可能になり,利用者が通信路を運用する事業者による通信内容の傍受の心配なしにピアツーピア通信を行う事に貢献できる。
【0034】
本発明では、暗号化通信の要点である通信相手の認証,並びに使用する暗号化アルゴリズムの決定手順として既存のSSL/TLSプロトコルおよびX.509として標準化された公開鍵証明書のしくみを利用することで,既存の認証機構,暗号化通信機構と同等のセキュリティレベルを利用者に提供することができる。
【図面の簡単な説明】
【0035】
【
図2】本発明を実現するための最良の形態を構成する要素
【
図3】本発明を実現するための最良の形態における通信手順