IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社リコーの特許一覧

特開2023-57813情報処理装置、情報処理システム、情報処理方法、及びプログラム
<>
  • 特開-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図1
  • 特開-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図2
  • 特開-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図3
  • 特開-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図4
  • 特開-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図5
  • 特開-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図6
  • 特開-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図7
  • 特開-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図8
  • 特開-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図9
  • 特開-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図10
  • 特開-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図11
  • 特開-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図12
  • 特開-情報処理装置、情報処理システム、情報処理方法、及びプログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023057813
(43)【公開日】2023-04-24
(54)【発明の名称】情報処理装置、情報処理システム、情報処理方法、及びプログラム
(51)【国際特許分類】
   H04L 9/08 20060101AFI20230417BHJP
   H04L 9/16 20060101ALI20230417BHJP
   H04L 67/2871 20220101ALI20230417BHJP
【FI】
H04L9/08 C
H04L9/08 E
H04L9/16
H04L67/2871
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021167492
(22)【出願日】2021-10-12
(71)【出願人】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】山本 暁
(57)【要約】      (修正有)
【課題】通信プロトコルを終端する情報処理装置を跨いで暗号化通信を行う情報処理装置、方法及びプログラムを提供する。
【解決手段】セキュアボックス4は、サービスを利用する接続元装置及びサービスを提供する接続先装置と通信を行う情報処理装置であって、接続元装置と接続先装置の間で暗号化セッション確立に関する情報を含む第1のデータを接続元装置から受信したことを検出する検出部と、第1のデータをセッション確立における通信プロトコルに従う第1のメッセージに変換し、第1のメッセージに対する返信として接続先装置から受信した第2のメッセージを暗号化通信で用いる共通鍵の生成に必要な情報を少なくとも含む第2のデータに変換する変換部と、セッション確立後は、サービスで用いるデータを変換することなく、接続元装置から受信したデータを接続先装置に送信し、接続先装置から受信したデータを接続元装置に送信する通信部と、を有する。
【選択図】図3
【特許請求の範囲】
【請求項1】
サービスを利用する接続元装置、および前記サービスを提供する接続先装置と通信を行う情報処理装置であって、
前記接続元装置と前記接続先装置の間で暗号化通信を行うセッションの確立に関する情報を含む第1のデータを前記接続元装置から受信したことを検出する検出部と、
前記第1のデータを前記セッションの確立における通信プロトコルに従う第1のメッセージに変換し、前記第1のメッセージに対する返信として前記接続先装置から受信した第2のメッセージを前記暗号化通信で用いる共通鍵の生成に必要な情報を少なくとも含む第2のデータに変換する変換部と、
前記セッションが確立する前は、前記第1のメッセージを前記接続先装置に送信し、前記第2のデータを前記接続元装置に送信し、前記セッションが確立した後は、前記接続元装置から受信した前記サービスで用いるデータを変換することなく前記接続先装置に送信し、前記接続先装置から受信した前記サービスで用いるデータを変換することなく前記接続元装置に送信する通信部と、
を有する情報処理装置。
【請求項2】
前記セッションの状態を管理する管理情報を有し、前記セッションが確立する前は、前記セッションが未接続であることを示すように前記管理情報を設定し、前記セッションが確立した後に、前記セッションが接続中であることを示すように前記管理情報を設定する設定部を更に有し、
前記検出部は、前記管理情報を用いて、前記第1のデータを前記接続元装置から受信したことを検出する請求項1に記載の情報処理装置。
【請求項3】
前記検出部は、前記接続元装置から受信するデータに含まれるデータの種類を示す情報を用いて、前記第1のデータを前記接続元装置から受信したことを検出する請求項1に記載の情報処理装置。
【請求項4】
前記セッションが確立した後、さらに予め定めた時間が経過した後に前記共通鍵の更新を前記接続元装置と前記接続先装置に要求する更新部を更に有する請求項1に記載の情報処理装置。
【請求項5】
前記通信部は、前記接続元装置が前記セッションを確立するための処理を行うウェブブラウザのアプリケーションを前記接続元装置に送信する請求項1乃至請求項4のいずれか一項に記載の情報処理装置。
【請求項6】
サービスを利用する接続元装置、および前記サービスを提供する接続先装置と通信を行う情報処理装置であって、
前記接続元装置と前記接続先装置の間で暗号化通信を行うセッションの確立に関する情報を含む第1のデータを前記接続元装置から受信したことを検出する検出部と、
前記第1のデータに含まれる乱数値を用いて、前記暗号化通信で用いる共通鍵を交換するための情報を生成する生成部と、
前記共通鍵を交換するための情報を含む前記セッションの確立における通信プロトコルに従う第1のメッセージを前記接続先装置に送信し、前記第1のメッセージに対する返信として前記接続先装置から第2のメッセージを受信し、前記第2のメッセージに含まれる前記共通鍵の生成に必要な情報を前記接続元装置に送信し、前記セッションが確立した後は、前記接続元装置から受信した前記サービスで用いるデータを変換することなく前記接続先装置に送信し、前記接続先装置から受信した前記サービスで用いるデータを変換することなく前記接続元装置に送信する通信部と、
を有する情報処理装置。
【請求項7】
サービスを利用する接続元装置、および前記サービスを提供する接続先装置と通信を行う情報処理装置であって、
前記接続元装置と前記接続先装置の間で暗号化通信を行うセッションの確立を行う要求メッセージを前記接続元装置から受信したことを検出する検出部と、
前記暗号化通信で用いる共通鍵を交換するための情報を生成する生成部と、
前記共通鍵を前記接続元装置に送信するために前記共通鍵を暗号化する暗号処理部と、
前記共通鍵を交換するための情報を含む前記セッションの確立における通信プロトコルに従う第1のメッセージを前記接続先装置に送信し、前記第1のメッセージに対する返信として前記接続先装置から第2のメッセージを受信し、前記第2のメッセージを用いて生成して暗号化した前記共通鍵を前記接続元装置に送信し、前記セッションが確立した後は、前記接続元装置から受信した前記サービスで用いるデータを変換することなく前記接続先装置に送信し、前記接続先装置から受信した前記サービスで用いるデータを変換することなく前記接続元装置に送信する通信部と、
を有する情報処理装置。
【請求項8】
サービスを利用する接続元装置、前記サービスを提供する接続先装置、及び情報処理装置を有する情報処理システムであって、
前記情報処理装置は、
前記接続元装置と前記接続先装置の間で暗号化通信を行うセッションの確立に関する情報を含む第1のデータを前記接続元装置から受信したことを検出する検出部と、
前記第1のデータを前記セッションの確立における通信プロトコルに従う第1のメッセージに変換し、前記第1のメッセージに対する返信として前記接続先装置から受信した第2のメッセージを前記暗号化通信で用いる共通鍵の生成に必要な情報を少なくとも含む第2のデータに変換する変換部と、
前記セッションが確立する前は、前記第1のメッセージを前記接続先装置に送信し、前記第2のデータを前記接続元装置に送信し、前記セッションが確立した後は、前記接続元装置から受信した前記サービスで用いるデータを変換することなく前記接続先装置に送信し、前記接続先装置から受信した前記サービスで用いるデータを変換することなく前記接続元装置に送信する第1通信部と、
を有し、
前記接続元装置は、
前記第1のデータを前記情報処理装置に送信し、前記第2のメッセージを前記情報処理装置から受信する第2通信部と、
前記第2のメッセージを用いて前記共通鍵を生成する生成部と、
前記セッションが確立した後は、前記共通鍵を用いて、前記暗号化通信で用いる送信データの暗号化と受信データの暗号の復号を行う第1暗号処理部と、
を有し、
前記接続先装置は、
前記第1のメッセージを前記情報処理装置から受信し、前記第2のメッセージを前記情報処理装置に送信する第3通信部と、
前記第1のメッセージを用いて前記共通鍵を生成する生成部と、
前記セッションが確立した後は、前記共通鍵を用いて、前記サービスで用いる送信データの暗号化と前記サービスで用いる受信データの暗号の復号を行う第1暗号処理部と、
を有する情報処理システム。
【請求項9】
サービスを利用する接続元装置、および前記サービスを提供する接続先装置と通信を行う情報処理装置が実行する情報処理方法であって、
前記接続元装置と前記接続先装置の間で暗号化通信を行うセッションの確立に関する情報を含む第1のデータを前記接続元装置から受信したことを検出するステップと、
前記第1のデータを前記セッションの確立における通信プロトコルに従う第1のメッセージに変換し、前記第1のメッセージに対する返信として前記接続先装置から受信した第2のメッセージを前記暗号化通信で用いる共通鍵の生成に必要な情報を少なくとも含む第2のデータに変換するステップと、
前記セッションが確立する前は、前記第1のメッセージを前記接続先装置に送信し、前記第2のデータを前記接続元装置に送信し、前記セッションが確立した後は、前記接続元装置から受信した前記サービスで用いるデータを変換することなく前記接続先装置に送信し、前記接続先装置から受信した前記サービスで用いるデータを変換することなく前記接続元装置に送信するステップと、
を有する情報処理方法。
【請求項10】
サービスを利用する接続元装置、および前記サービスを提供する接続先装置と通信を行う情報処理装置に、
前記接続元装置と前記接続先装置の間で暗号化通信を行うセッションの確立に関する情報を含む第1のデータを前記接続元装置から受信したことを検出するステップ、
前記第1のデータを前記セッションの確立における通信プロトコルに従う第1のメッセージに変換し、前記第1のメッセージに対する返信として前記接続先装置から受信した第2のメッセージを前記暗号化通信で用いる共通鍵の生成に必要な情報を少なくとも含む第2のデータに変換するステップ、
前記セッションが確立する前は、前記第1のメッセージを前記接続先装置に送信し、前記第2のデータを前記接続元装置に送信し、前記セッションが確立した後は、前記接続元装置から受信した前記サービスで用いるデータを変換することなく前記接続先装置に送信し、前記接続先装置から受信した前記サービスで用いるデータを変換することなく前記接続元装置に送信するステップ、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
近年、自宅などからインターネットを経由して、企業内のイントラネットやクラウドネットワークなどに配置された装置またはサービスに接続する技術が普及している。特許文献1には、インターネットを介してリモート接続した端末装置を用いて、遠隔地に配置された電子機器を操作する技術が公開されている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、従来の技術では、暗号化を行う通信プロトコルを終端する中継サーバやファイアウォール等の情報処理装置を跨いで、エンドツーエンドの暗号化通信を行うことができなかった。
【0004】
また、暗号化を行う通信プロトコルを終端する情報処理装置で、暗号化されたデータを復号して再度暗号化する場合、該情報処理装置においてデータが漏洩することが問題となる場合がある。
【0005】
本発明の実施形態は、上記課題に鑑み、暗号化を行う通信プロトコルを終端する情報処理装置を跨いで暗号化通信を行うことを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決するために、本発明は、サービスを利用する接続元装置、および前記サービスを提供する接続先装置と通信を行う情報処理装置であって、前記接続元装置と前記接続先装置の間で暗号化通信を行うセッションの確立に関する情報を含む第1のデータを前記接続元装置から受信したことを検出する検出部と、前記第1のデータを前記セッションの確立における通信プロトコルに従う第1のメッセージに変換し、前記第1のメッセージに対する返信として前記接続先装置から受信した第2のメッセージを前記暗号化通信で用いる共通鍵の生成に必要な情報を少なくとも含む第2のデータに変換する変換部と、前記セッションが確立する前は、前記第1メッセージを前記接続先装置に送信し、前記第2のデータを前記接続元装置に送信し、前記セッションが確立した後は、前記接続元装置から受信した前記サービスで用いるデータを変換することなく前記接続先装置に送信し、前記接続先装置から受信した前記サービスで用いるデータを変換することなく前記接続元装置に送信する通信部と、を有することを特徴とする。
【発明の効果】
【0007】
本発明の実施形態によれば、暗号化を行う通信プロトコルを終端する情報処理装置を跨いで暗号化通信を行うことができる。
【図面の簡単な説明】
【0008】
図1】本発明の実施形態に係る情報処理システムの概略図の一例を示す図である。
図2】本発明の実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。
図3】本発明の実施形態に係る情報処理システムにおける機能ブロックの構成図の一例を示す図である。
図4】本発明の実施形態に係るリモートデスクトップサービスの開始処理のシーケンスの一例を示す図である。
図5】本発明の実施形態に係るリモートデスクトップサービスにおける認証情報の一例を示す図である。
図6】本発明の実施形態に係るリモートデスクトップサービスにおける管理情報の一例を示す図である。
図7】本発明の実施形態に係るTLSハンドシェイク処理のシーケンスの一例を示す図である。
図8】本発明の実施形態に係るDH鍵交換処理のシーケンスの一例を示す図である。
図9】本発明の実施形態に係るRSA鍵交換処理のシーケンスの一例を示す図である。
図10】本発明の第1の実施形態に係るセッション接続処理のシーケンスの一例を示す図である。
図11】本発明の実施形態に係るセキュアボックスにおけるデータ処理に関するフローチャートの一例を示す図である。
図12】本発明の第2の実施形態に係るセッション接続処理のシーケンスの一例を示す図である。
図13】本発明の第3の実施形態に係るセッション接続処理のシーケンスの一例を示す図である。
【発明を実施するための形態】
【0009】
以下、添付図面を参照しながら、本発明に係る情報処理装置、情報処理システム、情報処理方法、及びプログラムの実施形態を詳細に説明する。
【0010】
[第1の実施形態]
<システム概要>
図1は、本発明の実施形態に係る情報処理システムの概略図の一例を示す図である。情報処理システム1は、例えば、インターネット等の通信ネットワーク2に接続するアプリサービスシステム8、サービスプラットフォーム9、リレーサーバ3、及びローカルネットワーク10に接続するセキュアボックス4等を含む。情報処理システム1はローカルネットワーク10に接続されたサーバ装置12及び画像形成装置13等の電子機器を、リモートネットワーク11等の外部ネットワークに接続された端末装置6から利用するためのシステムである。ここで、電子機器を接続先または接続先装置とも呼び、端末装置6を接続元または接続元装置とも呼ぶ。また、セキュアボックス4は、サービスを利用する接続元装置、およびサービスを提供する接続先装置と通信を行う情報処理装置である。
【0011】
ローカルネットワーク10は、例えば、ファイアウォール等により、通信ネットワーク2及びリモートネットワーク11等の外部ネットワークからのアクセスが制限された、例えば、社内LAN(Local Area Network)等のネットワークである。
【0012】
リモートネットワーク11は、例えば、リモートオフィス等に設けられた、ローカルネットワーク10とは異なる外部ネットワークである。
【0013】
サービスプラットフォーム9とセキュアボックス4とは予め通信可能に設定されているものとする。また、端末装置6及びリレーサーバ3等から、ローカルネットワーク10内のセキュアボックス4、サーバ装置12、及び画像形成装置13等へのアクセスは禁止されている、もしくは、アクセスできないものとする。また、接続先におけるサービスはリモートデスクトップとファクスを例示しているが、これらに限定する必要はない。本発明におけるセキュアボックス4のプロトコル変換を介して、接続元の端末装置6と送受信できるデータを有するデバイス・サーバであれば、接続先として用いることが可能である。以降は、特に記載がない限り、リモートデスクトップサービスを提供するサーバ装置12を接続先として用いることを前提とする。
【0014】
アプリサービスシステム8は、接続元の端末装置6に対し、認証に対応したWebUIを介して要求されたサービスを提供する。また、要求されたサービスに応じてリレーサーバ3の情報を提供する。アプリサービスシステム8の主な役割を以下に示す。
・WebUIの提供(サービスに応じた利用手段、各種管理機能)
・情報の管理(利用者、サービス/接続先、セキュアボックス4、ポリシなど)
・セキュアボックス4に対する指示(設定変更、リレーサーバ3への接続)
・サービス利用中の利用者に対する指示(メッセージ通知、サービスの利用制御)
セキュアボックス4は、アプリサービスシステム8の指示に応じてリレーサーバ3に接続し、接続元の端末装置6による接続先への操作、接続先から接続元の端末装置6への応答を中継および/またはプロトコル変換する。即ち、接続元の端末装置6は、セキュアボックス4を経由して、接続先のサーバ装置12や画像形成装置13等とリモート接続する。また、セキュアボックス4は、アプリサービスシステム8による指示(セキュアボックス設定、接続先となるデバイスの登録、リモート接続サービスの利用)を遂行する。
【0015】
リレーサーバ3は、接続元の端末装置6とセキュアボックス4との接続を仲介する。リレーサーバ3の主な役割を以下に示す。
・セッション管理(端末装置6とリレーサーバ3の間、セキュアボックス4とリレーサーバ3の間)
・端末装置6とセキュアボックス4の間で送受信されるデータ中継
ここで、セッションとは、2つの装置間で通信が可能な状態となっている接続を意味し、セッションを確立するとは、2つの装置間で通信を行うための接続を確保することを意味する。
【0016】
サービスプラットフォーム9は、利用者およびデバイスの認証、セキュアボックス4に対する双方向通信、通信などのログ機能、顧客の契約などの管理、課金機能、データレイクといった基盤機能を提供する。
【0017】
端末装置6は、サービスの利用者であるユーザが利用する、例えば、PC(Personal Computer)、タブレット端末、スマートフォン等のウェブブラウザ等のウェブ通信機能を備えた情報処理装置である。端末装置6は、リモートネットワーク11、及び通信ネットワーク2を介して、アプリサービスシステム8、及びリレーサーバ3等にアクセス可能である。
【0018】
端末装置7は、例えば、情報処理システム1を管理する管理者等が利用する、ウェブブラウザ等のウェブ通信機能を備えた装置である。
【0019】
サーバ装置12は、ローカルネットワーク10に接続されたPC等の情報処理装置であり、リモートデスクトップなどのサービスを提供する。画像形成装置13は、ローカルネットワーク10に接続された、例えば、MFP(Multifunction Peripheral)等の画像形成機能を有する電子機器であり、ファクスサービスなどを提供する。
【0020】
なお、サーバ装置12及び画像形成装置13は、ローカルネットワーク10に接続され、所定のサービスを提供する情報処理装置または電子機器の一例である。他の例として、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ等の出力装置であっても良い。あるいは、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ等であっても良い。さらには、仮想サーバ等の仮想的な情報処理装置または電子機器でも良い。
【0021】
端末装置6は、サーバ装置12及び画像形成装置13が提供するサービスを利用するために、端末装置6にインストールされたアプリケーションを用いて、セッション確立処理や暗号化通信を実行する。このアプリケーションは、端末装置6で動作するOS(Operating Sytem)で実行されるものであってもよいし、ウェブブラウザの拡張機能などとしてインストールされるものであってもよい。ウェブブラウザのアプリケーションの場合、ウェブブラウザの画面情報を提供する接続元がアプリケーションを管理するしてもよい。これにより、ユーザはアプリケーションのインストールや更新を容易に行うことができ、さらに、セッション確立や暗号化通信における設定値(暗号化方式など)、暗号化で用いる鍵などをウェブブラウザのアプリケーションに記憶させることもできる。
【0022】
アプリサービスシステム8、サービスプラットフォーム9、リレーサーバ3及びセキュアボックス4は、例えば、コンピュータの構成を有する情報処理装置、又は複数の情報処理装置を含むシステムである。
【0023】
アプリサービスシステム8及びサービスプラットフォーム9は、例えば、1つの管理サーバ5に含まれていても良い。また、アプリサービスシステム8及びサービスプラットフォーム9は様々なシステム構成が可能であり、以下の説明では、アプリサービスシステム8とサービスプラットフォーム9とを区別せず、単に管理サーバ5と呼ぶ。
【0024】
なお、図1に示す情報処理システム1のシステム構成は一例である。例えば、端末装置6は、リモートネットワーク11に限らず、通信ネットワーク2、又は通信ネットワーク2に接続可能な様々なネットワーク接続されていても良い。また、リレーサーバ3は、管理サーバ5に含まれていても良い。さらに、情報処理システム1は、複数のリレーサーバ3、又は複数のセキュアボックス4を有していても良い。さらに、通信ネットワーク2には、例えば、移動体通信、又は無線LAN等の無線通信による接続区間が含まれていても良い。
【0025】
<ハードウェア構成例>
図2は、本発明の実施形態に係るセキュアボックス4、端末装置6、サーバ装置12等を構成する情報処理装置のハードウェア構成の一例を示す図である。図2に示されるように、情報処理装置はコンピュータによって構築されており、CPU501、ROM502、RAM503、HD(Hard Disk)504、HDD(Hard Disk Drive)コントローラ505、ディスプレイ506、外部機器接続I/F(Interface)508、ネットワークI/F509、バスライン510、キーボード511、ポインティングデバイス512、DVD-RW(Digital Versatile Disk Rewritable)ドライブ514、メディアI/F516を備えている。
【0026】
これらのうち、CPU501は、情報処理装置全体の動作を制御する。ROM502は、IPL等のCPU501の駆動に用いられるプログラムを記憶する。RAM503は、CPU501のワークエリアとして使用される。HD504は、プログラム等の各種データを記憶する。HDDコントローラ505は、CPU501の制御にしたがってHD504に対する各種データの読み出し又は書き込みを制御する。ディスプレイ506は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。外部機器接続I/F508は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、例えば、USB(Universal Serial Bus)メモリやプリンタ等である。ネットワークI/F509は、通信ネットワーク2を利用してデータ通信をするためのインターフェースである。バスライン510は、図2に示されているCPU501等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
【0027】
また、キーボード511は、文字、数値、又は各種指示などの入力に使用される複数のキーを備えた入力手段の一種である。ポインティングデバイス512は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。DVD-RWドライブ514は、着脱可能な記録媒体の一例としてのDVD-RW513に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RWドライブ514は、DVD-RWに限らず、DVD-R等であってもよい。メディアI/F516は、フラッシュメモリ等の記録メディア515に対するデータの読み出し又は書き込み(記憶)を制御する。
【0028】
<機能について>
図3は、本発明の実施形態に係る情報処理システムにおける機能ブロックの構成図の一例を示す図である。セキュアボックス4は、第1通信部20、第1暗号処理部21、第1生成部22、検出部23、変換部24、設定部25、第1検証部26、および第1更新部28を有する。これら各部は、セキュアボックス4を構成する情報処理装置にインストールされた1以上のプログラムに含まれる命令をCPU501が実行することで実現される機能又は手段である。第1記憶部27は、例えば、セキュアボックス4が有するHD504などの記憶装置によって実現可能である。
【0029】
第1通信部20は、セキュアボックス4が有する通信機能であり、通信ネットワーク2を介してリレーサーバ3と情報の送受信を行う。また、第1通信部20は、ローカルネットワーク10内のサーバ装置12や画像形成装置13などの装置との情報の送受信を行う。
【0030】
第1暗号処理部21は、セキュアボックス4の第1通信部20が送信する送信データに対して暗号化処理を行う、あるいは、セキュアボックス4の第1通信部20が受信した暗号化されたデータの暗号の復号処理を行う。
【0031】
第1生成部22は、TLSハンドシェイクなど処理により得た情報を用いて、共通鍵を生成する。また、第1生成部22は、鍵の生成や鍵交換のために必要となる乱数値の生成を行う。
【0032】
検出部23は、セキュアボックス4の第1通信部20が受信したデータに関して、サービスを要求する接続元とサービスを提供する接続先の装置間で、セッションが確立されているか否かを検出する。検出する方法として、管理情報に含まれるセッション状態に関する情報を確認する方法と、データを送信する装置がデータの種類を区別するためにデータの中に格納した検出情報を確認する方法がある。
【0033】
変換部24は、端末装置6から受信したTLSハンドシェイクに関する情報を含むデータをサーバ装置12に送信するTLSハンドシェイクのメッセージに変換する。あるいは、変換部24は、サーバ装置12から受信したTLSハンドシェイクのメッセージを端末装置6に送信するTLSハンドシェイクに関する情報を含むデータに変換する。
【0034】
設定部25は、端末装置6とサーバ装置12間のセッションが確立した後に、セッション状態に関する情報を「接続中」に設定する。あるいは、設定部25は、端末装置6とサーバ装置12間のセッションが終了した後に、セッション状態に関する情報を「未接続」に設定する。
【0035】
第1検証部26は、証明書を発行した装置の正当性を確認するために、セキュアボックス4の第1通信部20が受信した証明書を検証する。検証方法は、一般的な方法を用いればよく、例えば、証明書に含まれる電子署名を公開鍵で復号した値と証明書をハッシュ化したデータが一致するか否かを検証する。
【0036】
第1記憶部27は、TLSハンドシェイクに関する情報や、生成または他の装置から受信した乱数や暗号鍵(共通鍵など)を生成日時、受信日時、記憶日時、有効期限などの情報とともに記憶する。
【0037】
第1更新部28は、暗号鍵の生成日時、受信日時、記憶日時、有効期限、および現在の日時、セッション確立後から予め定めた経過時間、セキュリティポリシなどに基づいて、暗号鍵を更新する、あるいは、同じ暗号鍵を保持する他の装置に更新を要求する。更新の方法は、通信の双方で同じ値を生成する必要があるため、例えば、現在の暗号鍵の値を予め定められたハッシュ関数に入力した出力値を用いる。あるいは、TLSプロトコルで定められた方法と同じ、または同等の方法で更新してもよい。
【0038】
端末装置6は、第2通信部30、第2暗号処理部31、第2生成部32、表示制御部33、操作受付部34、第2検証部35、および第2更新部37を有する。これら各部は、端末装置6を構成する情報処理装置にインストールされた1以上のプログラムに含まれる命令をCPU501が実行することで実現される機能又は手段である。第2記憶部36は、例えば、端末装置6が有するHD504などの記憶装置によって実現可能である。
【0039】
第2通信部30は、端末装置6が有する通信機能であり、通信ネットワーク2を介してアプリサービスシステム8またはリレーサーバ3との間で情報の送受信を行う。
【0040】
第2暗号処理部31は、端末装置6の第2通信部30が送信する送信データに対して暗号化処理を行う、あるいは、端末装置6の第2通信部30が受信した暗号化されたデータの暗号の復号処理を行う。
【0041】
第2生成部32は、TLSハンドシェイクなど処理により得た情報を用いて、共通鍵を生成する。また、第2生成部32は、鍵の生成や鍵交換のために必要となる乱数値の生成を行う。
【0042】
表示制御部33は、受信した画面情報を用いて、ログイン画面などを端末装置6の画面に表示する。
【0043】
操作受付部34は、端末装置6のキーボードやポインティングデバイスを介して、ユーザによる文字入力やボタンの押下などの操作を受け付ける。
【0044】
第2検証部35は、証明書を発行した装置の正当性を確認するために、端末装置6の第2通信部30が受信した証明書を検証する。検証方法は、一般的に行われる方法でよく、例えば、証明書に含まれる電子署名を公開鍵で復号した値と証明書をハッシュ化したデータが一致するか否かを検証する。
【0045】
第2記憶部36は、TLSハンドシェイクに関する情報や、生成または他の装置から受信した乱数や暗号鍵(共通鍵など)を生成日時、受信日時、記憶日時、有効期限などの情報とともに記憶する。
【0046】
第2更新部37は、暗号鍵の生成日時、受信日時、記憶日時、有効期限、および現在の日時、セキュリティポリシなどに基づいて、暗号鍵を更新する、あるいは、同じ暗号鍵を保持する他の装置に更新を要求する。更新の方法は、通信の双方で同じ値を生成する必要があるため、例えば、現在の暗号鍵の値を予め定められたハッシュ関数に入力した出力値を用いる。あるいは、TLSプロトコルで定められた方法と同じ、または同等の方法で更新してもよい。
【0047】
サーバ装置12は、第3通信部40、第3暗号処理部41、第3生成部42、および第3更新部44を有する。これら各部は、サーバ装置12を構成する情報処理装置にインストールされた1以上のプログラムに含まれる命令をCPU501が実行することで実現される機能又は手段である。第3記憶部43は、例えば、サーバ装置12が有するHD504などの記憶装置によって実現可能である。
【0048】
第3通信部40は、ローカルネットワーク10内に配備されたセキュアボックス4との情報の送受信を行う。
【0049】
第3暗号処理部41は、サーバ装置12の第3通信部40が送信する送信データに対して暗号化処理を行う、あるいは、サーバ装置12の第3通信部40が受信した暗号化されたデータの暗号の復号処理を行う。
【0050】
第3生成部42は、TLSハンドシェイクなど処理により得た情報を用いて、共通鍵を生成する。また、第3生成部42は、鍵の生成や鍵交換のために必要となる乱数値の生成を行う。
【0051】
第3記憶部43は、TLSハンドシェイクに関する情報や、生成または他の装置から受信した乱数や暗号鍵(共通鍵など)を生成日時、受信日時、記憶日時、有効期限などの情報とともに記憶する。
【0052】
第3更新部44は、暗号鍵の生成日時、受信日時、記憶日時、有効期限、および現在の日時、セキュリティポリシなどに基づいて、暗号鍵を更新する、あるいは、同じ暗号鍵を保持する他の装置に更新を要求する。更新の方法は、通信の双方で同じ値を生成する必要があるため、例えば、現在の暗号鍵の値を予め定められたハッシュ関数に入力した出力値を用いる。あるいは、TLSプロトコルで定められた方法と同じ、または同等の方法で更新してもよい。
【0053】
<リモートデスクトップサービスの開始処理>
図4は、本発明の実施形態に係るリモートデスクトップサービスの開始処理のシーケンスの一例を示す図である。本シーケンスでは、まず、ユーザが、リモートデスクトップサービスを利用するために、端末装置6を操作して、サービスの選択とシステムへのログインを行う。ログイン処理が成功すると、セキュアボックス4とリレーサーバ3の間、および端末装置6とリレーサーバ3の間で、暗号化通信を行うためのセッションが確立される。最後に、端末装置6とリモートデスクトップサービスを提供するサーバ装置12の間で暗号化通信を行うためのセッションが確立された後、リモートデスクトップサービスの利用が可能となる。この最後のセッション確立の処理については、以降の図で説明する。
【0054】
以下、図4の各ステップの処理について説明する。
【0055】
ステップS100:端末装置6の操作受付部34は、ユーザによるリモートデスクトップサービスを選択する操作を受け付ける。
【0056】
ステップS101:端末装置6の第2通信部30は、リモートデスクトップサービスの開始を要求するサービス要求メッセージを管理サーバ5に送信する。サービス要求メッセージには、接続先装置を特定する情報が含まれる。
【0057】
ステップS102:管理サーバ5は、ログイン画面の画面情報を端末装置6の第2通信部30に送信する。端末装置6の表示制御部33は、端末装置6の画面にログイン画面を表示する。ここで、サービス要求メッセージで特定された接続先装置は、別のユーザにより利用されている等のことは無く、利用可能であるとする。
【0058】
ステップS103:端末装置6の操作受付部34は、ログイン画面におけるユーザによる認証情報(ユーザ名とパスワード)の入力操作を受け付ける。
【0059】
ステップS104:端末装置6の第2通信部30は、ユーザが入力した認証情報を管理サーバ5に送信する。管理サーバ5は、受信した認証情報を用いて、ユーザの認証を実行する。図5は、本発明の実施形態に係るリモートデスクトップサービスにおける認証情報の一例を示す図である。図5に示す認証情報50は、ユーザID51、ユーザ名52、およびパスワード53を有する。
【0060】
ユーザID51は、ユーザを特定するために用いられる情報であり、文字、記号、数字などで構成される。IDはIdentificationの略であり、識別子とも呼ばれる。以降、IDは同じ意味で用いられる。
【0061】
ユーザ名52は、ユーザIDで特定されるユーザの名前である。
【0062】
パスワード53は、ユーザ認証時にユーザID51とともに用いられる。セキュリティの観点から、一般に設定されたパスワードの値をそのまま保存するのではなく、パスワードの値をハッシュ関数に入力した出力値(すなわち、ハッシュ化した値)を保持する。ユーザ認証時には、受信したパスワードをハッシュ化した値を算出して、保持されている値と一致するか否かを確認する。図4に戻って説明する。
【0063】
ステップS105:ここでは、ユーザ認証は成功するものとし、管理サーバ5は、セキュアボックス4の第1通信部20に接続要求メッセージを送信する。接続要求メッセージは、セキュアボックス4が接続するリレーサーバ3およびサーバ装置12の宛先を特定する情報(識別子やIPアドレス)などの情報を含む。
【0064】
ステップS106:セキュアボックス4の第1通信部20は、受信した接続要求メッセージに含まれるリレーサーバ3のIPアドレスの情報を用いて、セッション確立要求メッセージをリレーサーバ3に送信する。図6は、本発明の実施形態に係るリモートデスクトップサービスにおける管理情報の一例を示す図である。図6に示す管理情報54は、接続先ID55、接続先名56、接続先IPアドレス57、セッション状態58、セッションID59、ユーザID60、および最終利用日時61を含む。管理情報54は、管理サーバ5やセキュアボックス4などで保持され、サービスの利用可能の決定やデータの転送先の決定などのために用いられる。
【0065】
接続先ID55は、リモートデスクトップサービスを提供するサーバ装置12を特定するために用いられる情報であり、文字、記号、数字などで構成される。
【0066】
接続先名56は、リモートデスクトップサービスを提供する接続先の名前である。
【0067】
接続先IPアドレス57は、リモートデスクトップサービスを提供するサーバ装置12のIPアドレスである。
【0068】
セッション状態58は、ユーザが操作する端末装置6とリモートデスクトップサービスを提供するサーバ装置12の間でセッションが確立されているか否かを示す情報である。例えば、セッションが確立されていない場合は「未接続」、セッションが確立されている場合は「接続中」と表示される。
【0069】
セッションID59は、確立されたセッションを識別するために用いられる。
【0070】
ユーザID60は、サービス要求を管理サーバ5に要求したユーザを特定する情報である。
【0071】
最終利用日時61は、接続先ID55で指定されるサービスが最後に利用された(利用を終了した)日時である。図4に戻って説明する。
【0072】
ステップS107:セキュアボックス4とリレーサーバ3の間でセッションを確立する。セッションを確立する方法として、例えば、TLS(Transport Layer Security)と呼ばれる通信プロトコルを用いる。図7は、本発明の実施形態に係るTLSハンドシェイク処理のシーケンスの一例を示す図である。ハンドシェイクとは、通信を行う2つの装置間で必要な情報などを交換するために実行する処理である。ここでは、接続要求を送信する装置をクライアント14と呼び、接続要求を受信する装置をサーバ15と呼ぶ。図4のステップS107においては、セキュアボックス4がクライアント14に対応し、リレーサーバ3がサーバ15に対応する。以下、図7の各ステップの処理について説明する。
【0073】
ステップS200:クライアント14は、第1フェーズメッセージをサーバ15に送信する。第1フェーズメッセージは、ClientHelloを含む。ClientHelloは、後術する鍵交換のために用いるクライアント14が生成した乱数の値、プロトコルのバージョン、セッション確立後に用いる暗号化方式などの情報を含む。
【0074】
ステップS201:サーバ15は、第1フェーズメッセージの返信として、第2フェーズメッセージをクライアント14に送信する。第2フェーズメッセージは、ServerHello、ServerCertificate、ServerKeyExchage、およびServerHelloDoneを含む。ServerHelloは、鍵交換のために用いるサーバ15が生成した乱数の値、プロトコルのバージョン、セッション確立後に用いる暗号化方式などの情報を含む。ServerKeyExchageは、鍵交換のために用いる情報を含む。ServerCertificateは、サーバ15の証明書を含む。ServerHelloDoneは、第2フェーズメッセージにはこれ以上情報が含まれないこと、すなわちメッセージの終端を意味する。
【0075】
ステップS202:クライアント14は、受信したサーバ15の証明書を検証することにより、サーバ15の正当性を確認する。検証方法は、一般的に用いられる方法を用いればよい。
【0076】
ステップS203:クライアント14は、第2フェーズメッセージの返信として、第3フェーズメッセージをサーバ15に送信する。第3フェーズメッセージは、ClientKeyExchage、ChangeCipherSpec、およびFinishedを含む。ClientKeyExchageは、鍵交換のために用いる情報を含む。ChangeCipherSpecは、以降に送信される情報は暗号化されることを意味する。Finishedは、これ以降、クライアント14はハンドシェイクに関する情報を送信しないことを意味する。
【0077】
ステップS204:サーバ15は、クライアント14とサーバ15間の通信において送受信するデータを暗号化および復号するための共通鍵を生成する。生成方法は、後述の鍵交換において説明する。
【0078】
ステップS205:
サーバ15は、第3フェーズメッセージの返信として、第4フェーズメッセージをクライアント14に送信する。第4フェーズメッセージは、ChangeCipherSpecおよびFinishedを含む。ChangeCipherSpecは、以降に送信される情報は暗号化されることを意味する。Finishedは、これ以降、サーバ15はハンドシェイクに関する情報を送信しないことを意味する。
【0079】
ステップS206:クライアント14は、クライアント14とサーバ15間の通信において送受信するデータを暗号化および暗号を復号するための共通鍵を生成する。生成方法は、後述する。
【0080】
ステップS207:クライアント14とサーバ15間で暗号化通信を開始する。すなわち、クライアント14およびサーバ15は、共通鍵を用いて暗号化したデータを送信し、共通鍵を用いて受信したデータの暗号を復号する。図4に戻って説明する。
【0081】
ステップS108:セキュアボックス4の第1通信部20は、リレーサーバ3との接続が完了したことを示す接続完了通知のメッセージを管理サーバ5に送信する。
【0082】
ステップS109:管理サーバ5は、端末装置6の第2通信部30に接続要求メッセージを送信する。接続要求メッセージは、端末装置6が接続するリレーサーバ3の宛先を特定する情報(識別子やIPアドレス)などの情報を含む。
【0083】
ステップS110:端末装置6の第1通信部20は、受信した接続要求メッセージに含まれるリレーサーバ3のIPアドレスの情報を用いて、セッション確立要求メッセージをリレーサーバ3に送信する。
【0084】
ステップS111:端末装置6とリレーサーバ3の間でセッションを確立する。セッションを確立する方法は、ステップS107で説明した方法と同様に、例えば、TLSを用いる。
【0085】
ステップS112:端末装置6の第2通信部30は、リレーサーバ3との接続が完了したことを示す接続完了通知のメッセージを管理サーバ5に送信する。
【0086】
ステップS113:端末装置6とサーバ装置12間でセッションを確立する処理を行う。この処理については、以降、別のシーケンス図を用いて説明する。
【0087】
以上により、リモートデスクトップサービスが開始される。なお、セキュアボックス4とサーバ装置12は、ともにローカルネットワーク10内に存在する装置であるため、これらの装置間の通信の暗号化は不要であると考えられるが、必要に応じて、TLS通信のセッションを確立して、暗号化してもよい。
【0088】
続いて、図7で説明したTLSハンドシェイク処理において実行される鍵交換の方法について説明する。図8は、本発明の実施形態に係るDH鍵交換処理のシーケンスの一例を示す図である。TLSハンドシェイク処理において利用可能な鍵交換の方法は複数存在し、DH(Diffie-Hellman)鍵交換は、その中の一つの方法である。鍵交換は、中継装置などにおいて、第3者への漏洩を防止した上で、暗号化通信を行う2つの装置間で共通に用いる共通鍵を共有する処理である。以下、図7の各ステップの処理について説明する。
【0089】
ステップS210:サーバ15は、乱数を生成してその値をbとし、以下の式1で示すBの値を算出する。ここで、modについて、例えば、X mod Yは、XをYで除算した余りを示し、以降の式についても同じである。
【0090】
【数1】
ここで、gおよびpの値は予め決められた値が用いられる。
【0091】
ステップS211:サーバ15は、Bの値をクライアント14に送信する。このBは、図7のステップS201における第2フェーズメッセージのServerKeyExchageに含まれる値に相当する。
【0092】
ステップS212:クライアント14は、乱数を生成してその値をaとし、以下の式2で示すAの値を算出する。
【0093】
【数2】
ここで、gおよびpの値はステップS210で用いられた値と同じ値である。
【0094】
ステップS213:クライアント14は、Aの値をサーバ15に送信する。このAは、図7のステップS203における第3フェーズメッセージのClientKeyExchageに含まれる値に相当する。
【0095】
ステップS214:クライアント14は、以下の式3を計算することにより共通鍵Kを生成する。
【0096】
【数3】
ステップS215:クライアント14は、以下の式4を計算することにより共通鍵Kを生成する。
【0097】
【数4】
以上の処理により、クライアント14とサーバ15の間で共通鍵Kの値を共有することが可能である。また、クライアント14とサーバ15間で送受信されるAおよびBの値を第3者が傍受したとしても、それらの値から共通鍵Kを算出することは現実的な演算量では不可能とされている。なお、DH鍵交換を改良したDHE(Diffie-Hellman Ephemeral)鍵交換やEC(Ecliptic Curve)鍵交換による方法もTLSハンドシェイクにおいて利用可能である。更に、中間者攻撃のようななりすましなどを防ぐための電子署名を加えた方法(DHE_DSSなど)も利用可能である。これらの方式は、A、BおよびKをクライアント14とサーバ15で算出する数式が異なること、及びDHE鍵交換では、gとpの値について接続毎に異なる値を用いる違いあるが、図7および図8で示した鍵交換における手順は基本的に同じである。すなわち、一方が他方にそれぞれある値を送信して、それらの値を傍受した第3者では算出不可能な共通の値(共通鍵)をそれぞれが算出する手順は同じである。
【0098】
次に、別の鍵交換の方法について説明する。図9は、本発明の実施形態に係るRSA鍵交換処理のシーケンスの一例を示す図である。図8で示したDH鍵交換と同様に、RSA鍵交換もTLSハンドシェイク処理において利用可能な鍵交換の方法の一つである。以下、図9の各ステップの処理について説明する。
【0099】
ステップS230:クライアント14は、クライアント14とサーバ15間の暗号化通信で用いる共通鍵の値を生成する。クライアント14が生成した乱数の値を共通鍵の値として用いればよい。クライアント14は、サーバ15の公開鍵を用いて共通鍵を暗号化する。
【0100】
ステップS231:クライアント14は、暗号化された共通鍵をサーバ15に送信する。この暗号化された共通鍵は、図7のステップS203における第3フェーズメッセージのClientKeyExchageに含まれる値に相当する。
【0101】
ステップS232:サーバ15は、受信した暗号化された共通鍵をサーバ15の秘密鍵を用いて復号することで、共通鍵を得る。
【0102】
以上の処理により、第3者に漏洩する危険性無く、クライアント14とサーバ15の間で共通鍵Kの値を共有することが可能である。
【0103】
続いて、図10を用いて、図4のステップS113の処理の詳細を説明する。図10は、本発明の第1の実施形態に係るセッション接続処理のシーケンスの一例を示す図である。
【0104】
本シーケンスでは、端末装置6とサーバ装置12の間で暗号化通信を行うためのセッションを確立するが、両者の間にあるセキュアボックス4が暗号化通信のプロトコルを終端するため、従来の技術では、セッションを確立することができなかった。第1の実施形態では、端末装置6とセキュアボックス4の間で、TLSハンドシェイクで必要となる情報を共有しながら、セキュアボックス4とサーバ装置12の間でTLSハンドシェイクを実行する。TLSハンドシェイク完了後、端末装置6は共通鍵を得ることが可能である。セキュアボックス4が端末装置6とサーバ装置12から受信するデータを転送することにより、端末装置6とサーバ装置12間の暗号化通信が可能となる。以下、図10の各ステップの処理について説明する。
【0105】
ステップS150:TLSハンドシェイクの第1フェーズメッセージで用いる情報は、図4のステップS200で示したように、ClientHelloに含まれる鍵交換のために用いる乱数の値、プロトコルのバージョン、セッション確立後で用いる暗号化方式などである。ここで、端末装置6は、セキュアボックス4がサーバ装置12とTLSハンドシェイクを実行する際に、端末装置6から入手する必要がある情報のみを送信すればよい。例えば、プロトコルのバージョンはTLSハンドシェイクを実行するセキュアボックス4が設定する情報であるため、端末装置6から送信する必要はない。また、暗号化方式については、予め用いる方式を決めておけば、端末装置6から送信する必要はない。一方で、セキュアボックス4が、端末装置6から受信したデータに対して、TLSハンドシェイクの第1フェーズメッセージに関する情報を含むデータであることを検出可能とするため、予め決められた形式(フォーマット)の情報(検出情報と呼ぶ)を含めておく。例えば、データの先頭の決められたサイズ(1バイト、2バイト、または4バイトなど)などに、検出情報として、データの種類に応じて予め定めた値を格納する。例えば、TLSハンドシェイクに関係ないデータであれば0の値、TLSハンドシェイクの第1~4フェーズメッセージであればそれぞれ1~4の値を格納する。ここで、検出情報は、端末装置6からセキュアボックス4へのデータだけでなく、セキュアボックス4から端末装置6へのデータに対しても同様に用いるものとする。
【0106】
また、図4のステップS111により、端末装置6とリレーサーバ3間は暗号化通信のセッションが確立しており、ここでの暗号化で用いる共通鍵を共通鍵Aとする。従って、まず、端末装置6の第2暗号処理部31は、共通鍵Aを用いて、セキュアボックス4が第1フェーズメッセージで用いる情報を含むデータを暗号化する。次に、端末装置6の第2通信部30は、暗号化したデータをリレーサーバ3に送信する。
【0107】
ステップS151:リレーサーバ3は、共通鍵Aを用いて端末装置6の第2通信部30から受信したデータの暗号を復号する。リレーサーバ3とセキュアボックス4間も同様に、図4のステップS107により、暗号化通信のセッションが確立しており、ここでの暗号化で用いる共通鍵を共通鍵Bとする。リレーサーバ3は、共通鍵Bを用いて、受信したデータを暗号化し、暗号化したデータをセキュアボックス4に送信する。
【0108】
ステップS152:セキュアボックス4の第1通信部20は、リレーサーバ3から共通鍵Bで暗号化されたデータを受信する。次に、セキュアボックス4の第1暗号処理部21は、共通鍵Bを用いて受信したデータの暗号を復号する。更に、セキュアボックス4の検出部23は、受信したデータにTLSハンドシェイクの第1フェーズメッセージに関する情報であることを示す検出情報が含まれていることを検出する。セキュアボックス4の変換部24は、受信したデータをTLSハンドシェイクの第1フェーズメッセージに変換する。セキュアボックス4の第1通信部20は、変換したデータをサーバ装置12の第3通信部40に送信する。
【0109】
ステップS153:サーバ装置12の第3通信部40は、受信したTLSハンドシェイクの第1フェーズメッセージに対するTLSハンドシェイクの第2フェーズメッセージをセキュアボックス4の第1通信部20に送信する。
【0110】
ステップS154:セキュアボックス4は、受信したTLSハンドシェイクの第2フェーズメッセージに関する情報を端末装置6にリレーサーバ3を介して送信する。ここで、セキュアボックス4の変換部24は、予め定めた形式(フォーマット)で必要な情報のみとなるように送信するデータを変換し、更に、ステップS150で説明した検出情報をデータに含める。セキュアボックス4の第1暗号処理部21は、共通鍵Bを用いて送信するデータを暗号化する。セキュアボックス4の第1通信部20は、暗号化したデータをリレーサーバ3に送信する。
【0111】
ステップS155:リレーサーバ3は、共通鍵Bを用いてセキュアボックス4の第1通信部20から受信したデータの暗号を復号する。さらに、リレーサーバ3は、共通鍵Aを用いて、受信したデータを暗号化し、暗号化したデータを端末装置6の第2通信部30に送信する。
【0112】
ステップS156:端末装置6の第2暗号処理部31は、共通鍵Aを用いて、受信したデータの暗号を復号する。さらに、端末装置6の第2検証部35は、受信したデータに含まれるサーバ装置12の証明書の検証を実行する。検証方法は、図7のステップS201~S202で示した方法と同様である。
【0113】
ステップS157:端末装置6は、ステップS150の処理と同様の手順で、TLSハンドシェイクの第3フェーズメッセージで用いる情報をセキュアボックス4にリレーサーバ3を介して送信する。図7のステップS203で示したように、第3フェーズメッセージには、ClientKeyExchage、ChangeCipherSpec、およびFinishedを含む。ここで、端末装置6が送信する必要がある情報は、鍵交換に関するClientKeyExchageであり、ChangeCipherSpecやFinishedは、セキュアボックス4で設定すればよいため、送信しないようにしてもよい。
【0114】
従って、まず、端末装置6の第2生成部32は、鍵交換に関するClientKeyExchageの情報を作成するための乱数を生成する。更に、DH鍵交換の場合は、図8のステップS212で示したAの値を生成し、RSA鍵交換の場合は、図9のステップS230で示したように、生成した乱数の値を共通鍵とし、サーバ装置12の公開鍵で共通鍵を暗号化したデータを生成する。端末装置6の第2暗号処理部31は、共通鍵Aを用いて、第3フェーズメッセージに関する情報およびステップS150で説明した検出情報を含めたデータを暗号化する。端末装置6の第2通信部30は、暗号化したデータをリレーサーバ3に送信する。
【0115】
ステップS158:リレーサーバ3は、共通鍵Aを用いて端末装置6から受信したデータの暗号を復号する。更に、リレーサーバ3は、共通鍵Bを用いて、データを暗号化し、暗号化したデータをセキュアボックス4に送信する。
【0116】
ステップS159:セキュアボックス4の第1通信部20は、リレーサーバ3から共通鍵Bで暗号化されたデータを受信する。次に、セキュアボックス4の第1暗号処理部21は、共通鍵Bを用いて受信したデータの暗号を復号する。更に、セキュアボックス4の検出部23は、受信したデータにTLSハンドシェイクの第3フェーズメッセージに関する情報であることを示す検出情報が含まれていることを検出する。セキュアボックス4の変換部24は、受信したデータをTLSハンドシェイクの第3フェーズメッセージに変換する。セキュアボックス4の第1通信部20は、変換したデータをサーバ装置12の第3通信部40に送信する。
【0117】
ステップS160:サーバ装置12の第3生成部42は、受信したデータを用いて、端末装置6とサーバ装置12間の暗号化で用いる共通鍵(共通鍵Cとする)を生成する。鍵の生成方法については、前述のDH鍵交換(図8)またはRSA鍵交換(図9)における処理を参照できる。サーバ装置12の第3記憶部43は、生成した共通鍵を記憶する。ここで、セッションID、生成日時、受信日時、記憶日時、有効期限などの情報とともに共通鍵を記憶してもよい。
【0118】
ステップS161:サーバ装置12の第3通信部40は、受信したTLSハンドシェイクの第3フェーズメッセージに対するTLSハンドシェイクの第4フェーズメッセージをセキュアボックス4の第1通信部20に送信する。
【0119】
ステップS162:セキュアボックス4は、受信したTLSハンドシェイクの第4フェーズメッセージに関する情報を端末装置6にリレーサーバ3を介して送信する。ここで、セキュアボックス4の変換部24は、予め定めた形式(フォーマット)で必要な情報のみとなるように送信するデータを変換し、更に、ステップS150で説明した検出情報をデータに含める。セキュアボックス4の第1暗号処理部21は、共通鍵Bを用いて送信するデータを暗号化する。セキュアボックス4の第1通信部20は、暗号化したデータをリレーサーバ3に送信する。また、セキュアボックス4の設定部25は、端末装置6とサーバ装置12間のセッションが確立したとみなし、管理しているセッション状態を未接続から接続中に変更する設定を行う。このセッション状態は、例えば、図6で示した管理情報54に含まれるセッション状態58に相当するものとする。あるいは、セキュアボックス4の設定部25は、端末装置6の第1通信部20あるいは管理サーバ5などから送信されたセッションの確立が完了した通知(接続完了通知)を受信した後、未接続となっているセッション状態を接続中に設定してもよい。
【0120】
ステップS163:リレーサーバ3は、共通鍵Bを用いてセキュアボックス4の第1通信部20から受信したデータの暗号を復号する。さらに、リレーサーバ3は、共通鍵Aを用いて、受信したデータを暗号化し、暗号化したデータを端末装置6の第2通信部30に送信する。
【0121】
ステップS164:端末装置6の第2暗号処理部31は、共通鍵Aを用いて、受信したデータの暗号を復号する。さらに、端末装置6の第2生成部32は、受信したデータを用いて、端末装置6とサーバ装置12間の暗号化で用いる共通鍵(共通鍵C)を生成する。鍵の生成方法については、前述のDH鍵交換(図8)またはRSA鍵交換(図9)における処理を参照できる。端末装置6の第2通信部30は、セッション確立を通知するメッセージ(接続完了通知)をセキュアボックス4の第1通信部20や管理サーバ5などに送信してもよい。端末装置6の第2記憶部36は、生成した共通鍵を記憶する。ここで、セッションID、生成日時、受信日時、記憶日時、有効期限などの情報とともに共通鍵を記憶してもよい。
【0122】
ステップS165:端末装置6とサーバ装置12の間で共通鍵Cを用いた暗号化通信とが可能となる。端末装置6の第1暗号処理部21は、リレーサーバ3に送信するデータに対して、まず共通鍵Cを用いて暗号化したデータを更に共通鍵Aを用いて暗号化する。また、端末装置6の第1暗号処理部21は、リレーサーバ3からの受信したデータに対して、まず共通鍵Aを用いて暗号を復号した後、更に共通鍵Cを用いて暗号を復号する。また、端末装置6の第2更新部37およびサーバ装置12の第3更新部44は、セッション確立して予め定めた時間が経過後に、共通鍵Cを更新するようにしてもよい。あるいは、セキュアボックス4の第1更新部28は、端末装置6の第2更新部37およびサーバ装置12の第3更新部44に共通鍵Cの更新を要求してもよい。
【0123】
以上の処理により、情報処理システム1は、端末装置6とサーバ装置12との間で、エンドツーエンドの暗号化通信を実行することが可能である。ここで、従来の方法では、端末装置6とサーバ装置12の間にあるセキュアボックス4が、TLSなどのプロトコルを終端するために、エンドツーエンドの暗号化通信が実現できない問題があった。そこで、情報処理システム1では、正式なTLSハンドシェイクは、セキュアボックス4とサーバ装置12で実行し、TLSハンドシェイクで必要となる情報を端末装置6とセキュアボックス4の間で交換する。これにより、本来、セキュアボックス4で生成する共通鍵を端末装置6が生成して、暗号化通信に利用する。また、TLSハンドシェイクの情報は、暗号が解除された状態でリレーサーバ3を経由するが、リレーサーバ3で共通鍵を生成することは不可能である。この理由は、鍵交換における元となる情報(DH鍵交換では乱数値、RSA鍵交換では暗号化前の共通鍵)は、端末装置6の外部には送信されないからである。
【0124】
続いて、セキュアボックス4における受信データの処理方法について説明する。図11は、本発明の実施形態に係るセキュアボックスにおけるデータ処理に関するフローチャートの一例を示す図である。以下、図11の各ステップの処理について説明する。
【0125】
ステップS170:セキュアボックス4の第1通信部20は、リレーサーバ3またはサーバ装置12の第3通信部40からデータを受信する。リレーサーバ3からデータを受信した場合、セキュアボックス4の第1暗号処理部21は、受信したデータの暗号を復号する。
【0126】
ステップS171:セキュアボックス4の検出部23は、受信したデータに対する端末装置6(接続元装置)とサーバ装置12(接続先装置)間のセッション状態を確認して、セッションが確立しているか否かを検出する。このセッション状態は、例えば、図6で示した管理情報54に含まれるセッション状態58として、セキュアボックス4が管理しているものとする。あるいは、セキュアボックス4の検出部23は、図10のステップ150で説明した受信したデータに含まれる検出情報を確認することにより、セッション状態を検出してもよい。すなわち、受信したデータがTLSハンドシェイクに関するデータであれば、セッションは未確立(未接続)であり、そうでなければ、セッションは確立済とする。セッションが確立済であれば、処理をステップS172に遷移させ、そうでないならば、処理をステップS173に遷移させる。
【0127】
ステップS172:リレーサーバ3からデータを受信した場合、セキュアボックス4の第1暗号処理部21は、共通鍵Bを用いて受信したデータの暗号を復号する。更に、セキュアボックス4の第1通信部20は、暗号を復号したデータをサーバ装置12の第3通信部40に送信する。
【0128】
サーバ装置12の第3通信部40からデータを受信した場合、セキュアボックス4の第1暗号処理部21は、共通鍵Bを用いて受信したデータを暗号化する。更に、セキュアボックス4の第1通信部20は、暗号化したデータをリレーサーバ3に送信する。
【0129】
ステップS173:リレーサーバ3からデータを受信した場合、まず、セキュアボックス4の第1暗号処理部21は、共通鍵Bを用いて受信したデータの暗号を復号する。次に、セキュアボックス4の変換部24は、復号したTLSハンドシェイクに関するデータをTLSハンドシェイクのメッセージに変換する。最後に、セキュアボックス4の第1通信部20は、変換したメッセージをサーバ装置12の第3通信部40に送信する。
【0130】
サーバ装置12の第3通信部40からデータを受信した場合、まず、セキュアボックス4の変換部24は、サーバ装置12の第3通信部40から受信したTLSハンドシェイクのメッセージを端末装置6が用いるためのTLSハンドシェイクに関するデータに変換する。次に、セキュアボックス4の第1暗号処理部21は、共通鍵Bを用いて変換したデータを暗号化する。最後に、セキュアボックス4の第1通信部20は、暗号化したデータをリレーサーバ3に送信する。
【0131】
以上の処理により、セキュアボックス4の検出部は、端末装置6とサーバ装置12間で、セッションが確立済みか否かを検出する。セッション確立前、セキュアボックス4の変換部24は、接続元装置から受信したデータをセッションの確立における通信プロトコル(TLSプロトコル)に従うメッセージに変換し、接続先装置から受信した通信プロトコルに従うメッセージを共通鍵の生成に必要な情報を少なくとも含むデータに変換する。セッション確立後、セキュアボックス4の変換部24は、接続元装置から受信したデータを変換することなく接続先装置に送信し、接続元装置から受信したデータを変換することなく接続先装置に送信する。ここで、「データを変換することなく」とは、接続元装置と接続先装置の間で扱うアプリケーションまたはサービスにおけるデータとしての意味であり、中間装置(リレーサーバ3など)との通信における暗号化処理による変換などは考慮しない。
【0132】
[第2の実施形態]
第2の実施形態に関して、第1の実施形態と異なる内容のみを説明する。第2の実施形態では、端末装置6とセキュアボックス4は、事前にTLSハンドシェイクで必要となる情報を交換した後、セキュアボックス4とサーバ装置12間で、TLSハンドシェイクを実行する。図12は、本発明の第2の実施形態に係るセッション接続処理のシーケンスの一例を示す図である。第1の実施形態と同様に、端末装置6とリレーサーバ3間、およびリレーサーバ3とセキュアボックス4間は、それぞれ共通鍵Aと共通鍵Bを用いた暗号化通信によりデータが送受信されるが、以降、その処理の説明は省略する。以下、図12の各ステップの処理について説明する。
【0133】
ステップS170:端末装置6の第2通信部30は、接続先(サーバ装置12)への接続要求メッセージをリレーサーバ3に送信する。このメッセージには、セキュアボックス4がTLSハンドシェイクにおける鍵交換で用いる乱数の値を端末装置6とセキュアボックス4の間で交換するための情報を含む。この方法として、図8で説明したDH鍵交換を用いる。すなわち、図8におけるクライアント14とサーバ15をそれぞれ端末装置6とセキュアボックス4とみなし、共有される共通鍵の値を、セキュアボックス4がTLSハンドシェイクにおいて鍵交換のための用いる乱数とする。ここで、図8では、先にサーバ15がクライアント14にBの値を送信しているが、どちらが先に送信するかは関係なく、今回は、先にクライアント14がサーバ15にAの値を送信するものと考える。従って、端末装置6の第2通信部30は、図8におけるAに相当する値をリレーサーバ3に送信する。
【0134】
ステップS171:リレーサーバ3は、受信したデータをセキュアボックス4に転送する。前述のように、暗号化の処理の説明は省略する。
【0135】
ステップS172:セキュアボックス4の第1通信部20は、図8におけるBに相当する値をリレーサーバ3に送信する。
【0136】
ステップS173:リレーサーバ3は、受信したデータを端末装置6に転送する。
【0137】
ステップS174:セキュアボックス4の第1通信部20は、TLSハンドシェイクの第1フェーズメッセージをサーバ装置12の第3通信部40に送信する。送信するメッセージの内容は、図7のステップS200で示した通りである。
【0138】
ステップS175:サーバ装置12の第3通信部40は、TLSハンドシェイクの第2フェーズメッセージをセキュアボックス4の第1通信部20に送信する。送信するメッセージの内容は、図7のステップS201で示した通りである。
【0139】
ステップS176:セキュアボックス4の第1検証部26は、受信したデータに含まれるサーバ装置12の証明書の検証を実行する。検証方法は、図7のステップS201~S202で示した方法と同様である。
【0140】
ステップS177:セキュアボックス4の第1通信部20は、TLSハンドシェイクの第3フェーズメッセージをサーバ装置12の第3通信部40に送信する。送信するメッセージの内容は、図7のステップS203で示した通りである。
【0141】
ステップS178:サーバ装置12の第3生成部42は、受信したデータを用いて、端末装置6とサーバ装置12間の暗号化で用いる共通鍵(共通鍵Cとする)を生成する。鍵の生成方法については、前述のDH鍵交換(図8)またはRSA鍵交換(図9)における処理を参照できる。
【0142】
ステップS179:サーバ装置12の第3通信部40は、TLSハンドシェイクの第4フェーズメッセージをセキュアボックス4の第1通信部20に送信する。送信するメッセージの内容は、図7のステップS205で示した通りである。
【0143】
ステップS180:セキュアボックス4の第1生成部22は、受信したデータを用いて、端末装置6とサーバ装置12間の暗号化で用いる共通鍵(共通鍵C)を生成する。鍵の生成方法については、前述のDH鍵交換(図8)またはRSA鍵交換(図9)における処理を参照できる。なお、共通鍵Cは、端末装置6で生成して用いるためのものであり、セキュアボックス4は必ずしも生成する必要はない。
【0144】
ステップS181:セキュアボックス4の第1通信部20は、リレーサーバ3に接続完了通知のメッセージを送信する。ここで、メッセージにはTLSハンドシェイクで用いられた鍵交換方式に関する情報を含める。更に、TLSハンドシェイクでDH鍵交換が用いられた場合は、図8におけるBに相当する値をメッセージに含める。RSA鍵交換が用いられた場合は、共通鍵Cの値は、既にステップS170~S173で端末装置6とセキュアボックス4の間で共有済みの値であるため、送信する必要はない。
【0145】
ステップS182:リレーサーバ3は、受信したデータを端末装置6に転送する。
【0146】
ステップS183:TLSハンドシェイクでDH鍵交換が用いられた場合、端末装置6の第2生成部32は、受信したデータを用いて共通鍵(共通鍵C)を生成する。鍵の生成方法については、前述のDH鍵交換(図8)を参照できる。
【0147】
ステップS184:端末装置6とサーバ装置12の間で共通鍵Cを用いた暗号化通信とが可能となる。
【0148】
以上の処理により、第1の実施形態と同様に、端末装置6とサーバ装置12の間で共通鍵Cを用いた暗号化通信とが可能であり、且つ、リレーサーバ3は、共通鍵Cを取得できないため、この暗号化通信の復号できない。ただし、第2の実施形態では、第1の実施形態と異なり、セキュアボックス4が、共通鍵Cを取得することが可能である。しかし、セキュアボックス4は、ローカルネットワーク10内に存在する装置であるため、共通鍵Cを保有することは問題にならないと考えられる。
【0149】
[第3の実施形態]
第3の実施形態に関して、第1および第2の実施形態と異なる内容のみを説明する。第3の実施形態では、予め端末装置6とセキュアボックス4の間において、TLSハンドシェイクで必要となる設定情報(暗号化方法など)が共有されているとする。セキュアボックス4とサーバ装置12間のTLSハンドシェイクは、端末装置6からの接続要求によって開始される。TLSハンドシェイク完了後、セキュアボックス4は端末装置6に共通鍵を第3者に情報が漏洩しない安全な形で送信する。図13は、本発明の第3の実施形態に係るセッション接続処理のシーケンスの一例を示す図である。以下、図13の各ステップの処理について説明する。
【0150】
ステップS190:端末装置6の第2通信部30は、接続先(サーバ装置12)への接続要求メッセージをリレーサーバ3に送信する。
【0151】
ステップS191:リレーサーバ3は、受信したデータをセキュアボックス4に転送する。
【0152】
ステップS192~S198は、図12に示した第2の実施形態のステップS174~
S180と同等の処理であるため説明を省略する。ただし、第3の実施形態では、セキュアボックス4の第1生成部22が、TLSハンドシェイクにおける鍵交換で必要な乱数値または共通鍵などを生成する。
【0153】
ステップS199:セキュアボックス4の第1暗号処理部21は、TLSハンドシェイクにより取得した端末装置6とサーバ装置12間の暗号化通信で用いる共通鍵Cを端末装置6の公開鍵を用いて暗号化する。ここで、端末装置6の公開鍵はセキュアボックス4に配備されているものとする。セキュアボックス4の第1通信部20は、リレーサーバ3に接続完了通知のメッセージを送信する。メッセージには、端末装置6の公開鍵で暗号化した共通鍵Cを含む。
【0154】
ステップS200:リレーサーバ3は、受信したデータを端末装置6に転送する。
【0155】
ステップS201:端末装置6の第2暗号処理部31は、自身の秘密鍵を用いて受信した暗号化された共通鍵Cを復号する。
【0156】
ステップS202:端末装置6とサーバ装置12の間で共通鍵Cを用いた暗号化通信が可能となる。
【0157】
以上の処理により、第1および第2の実施形態と同様に、端末装置6とサーバ装置12の間で共通鍵Cを用いた暗号化通信とが可能であり、且つ、リレーサーバ3は、共通鍵Cを取得できないため、この暗号化通信の復号できない。また、第3の実施形態では、第2の実施形態と同様に、セキュアボックス4が、共通鍵Cを取得することが可能である。
【0158】
[変形例1]
変形例1として、第1の実施形態と異なる内容のみを説明する。図4に示したステップS113を実行する際に、端末装置6の第2記憶部36が、端末装置6とサーバ装置12間の通信で用いる共通鍵を記憶しているとする。この場合、端末装置6の第2通信部30は、保持している共通鍵を用いた暗号化通信のセッションを確立することを要求するメッセージをリレーサーバ3に送信する。メッセージには、共通鍵を特定する情報(セッションIDなど)、共通鍵の生成日時、受信日時、記憶日時、有効期限などの情報を含めてもよい。
【0159】
リレーサーバ3は、受信したメッセージをセキュアボックス4の第1通信部20に送信する。
【0160】
セキュアボックス4の第1通信部20は、受信したメッセージをサーバ装置12の第3通信部40に送信する。
【0161】
以上の処理により、端末装置6とサーバ装置12間の暗号化通信が可能となる。
【0162】
ただし、サーバ装置12の第3記憶部43が共通鍵を記憶していない場合、あるいは、共通鍵の生成日時、受信日時、記憶日時、および有効期限などの情報に基づく判断により、セキュアボックス4またはサーバ装置12は、端末装置6からの要求を拒否してもよい。この場合、セキュアボックス4またはサーバ装置12は、新しい共通鍵を用いた暗号化通信を行うために、セッション確立の実行を要求するメッセージを端末装置6に送信してもよい。
【0163】
[変形例2]
変形例2として、第2の実施形態と異なる内容のみを説明する。まず、端末装置6とセキュアボックス4の間で、TLSハンドシェイクを実行してセッションを確立し、暗号化通信を可能とする。これにより、リレーサーバ3などの第3者に情報が漏洩することなく、端末装置6とセキュアボックス4の間で、情報の送受信を行うことが可能となる。次に、図12に示したステップS170~S173の処理で共有した乱数値を前述の暗号化通信により、端末装置6からセキュアボックス4に送信する。
【0164】
[変形例3]
変形例3として、第3の実施形態と異なる内容のみを説明する。まず、変形例1と同様に、端末装置6とセキュアボックス4の間で、TLSハンドシェイクを実行してセッションを確立し、暗号化通信を可能とする。次に、図13に示したステップS199~S200の処理で送信した共通鍵Cを暗号化通信により送信する。
【0165】
以上、本発明を実施するための幾つかの形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【0166】
例えば、図3の機能ブロックの構成図の一例は、情報処理システム1およびセキュアボックス4、端末装置6、サーバ装置12などを構成する情報処理装置による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。情報処理システム1および情報処理装置における処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、1つの処理単位が更に多くの処理を含むように分割することもできる。
【0167】
また、上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
【0168】
また、記載された装置群は、本明細書に開示された実施形態を実施するための複数のコンピューティング環境のうちの1つを示すものにすぎない。ある実施形態では、情報処理システム1および情報処理装置は、サーバクラスタといった複数のコンピューティングデバイスを含む。複数のコンピューティングデバイスは、ネットワークや共有メモリなどを含む任意のタイプの通信リンクを介して互いに通信するように構成されており、本明細書に開示された処理を実施する。
【0169】
また、第1通信部20、第2通信部30は、第3通信部40は、単に通信部と呼んでもよく、明確に区別ができるならば、第1、第2、第3の付与順序を変更してもよいものとする。第1暗号処理部21、第1生成部22、第1検証部26などについても同様である。
【符号の説明】
【0170】
1 情報処理システム
2 通信ネットワーク
3 リレーサーバ
4 セキュアボックス
5 管理サーバ
6、7 端末装置
8 アプリサービスシステム
9 サービスプラットフォーム
10 ローカルネットワーク
11 リモートネットワーク
12 サーバ装置
13 画像形成装置
14 クライアント
15 サーバ
20 第1通信部
21 第1暗号処理部
22 第1生成部
23 検出部
24 変換部
25 設定部
26 第1検証部
27 第1記憶部
28 第1更新部
30 第2通信部
31 第2暗号処理部
32 第2生成部
33 表示制御部
34 操作受付部
35 第2検証部
36 第2記憶部
37 第2更新部
40 第3通信部
41 第3暗号処理部
42 第3生成部
43 第3記憶部
44 第3更新部
【先行技術文献】
【特許文献】
【0171】
【特許文献1】特開2019-62495号
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13