(57)【要約】      （修正有）【課題】ネットワークサービスで利用されるユーザデータの電子データのセキュリティを確保する。【解決手段】クラウドサービスを受けるユーザ端末は、ウェブサーバに接続して、ウェブブラウザからＨＴＴＰ／ＨＴＴＰＳリクエストをするとき、その本文中のユーザデータをセキュリティ手段で暗号化して、ウェブサーバへ送信する。よって、ウェブサーバ側では、ユーザデータは暗号化されてクラウドデータベースに保存される。ウェブサーバからのＨＴＴＰ／ＨＴＴＰＳレスポンスの場合、その本文中の暗号されたユーザデータを、セキュリティ手段で復号化して、ウェブブラウザへ渡す。セキュリティ手段は、ユーザ端末とウェブサーバの間にプロキシサーバ又は仮想プロキシサーバとして機能する。【選択図】図１
2014092801.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ端末からネットワークを介してサーバに接続し、前記ユーザ端末がネットワークサービスを受けるとき、前記ネットワークサービスの電子データを管理するためのネットワークシステム用電子データの管理方法において、
前記ネットワークサービス用のネットワークサービス用アプリケーションプログラムを前記ユーザ端末上に動作させ、
前記ネットワークサービス用アプリケーションプログラムから前記サーバに第１電子データを所定の通信プロトコルに従って送信するとき、
前記通信プロトコルの中の前記第１電子データを含む本文を、暗号化手段によって、暗号化し、
前記暗号化された前記第１電子データを含む前記通信プロトコルを前記サーバに送信し、
前記サーバは、前記暗号化された前記第１電子データを、前記サーバに内蔵又は接続された記憶手段に保存する
ことを特徴とするネットワークシステム用電子データの管理方法。
【請求項２】
請求項１に記載のネットワークシステム用電子データの管理方法において、
前記ネットワークサービス用アプリケーションプログラムは、前記サーバから第２電子データを前記通信プロトコルに従って受信するとき、
前記通信プロトコルの中の前記第２電子データを含む本文が暗号化されている場合、前記第２電子データを復号化手段によって、復号化し、
前記復号化された前記第２電子データを前記ネットワークサービス用アプリケーションプログラムに送信する
ことを特徴とするネットワークシステム用電子データの管理方法。
【請求項３】
請求項２に記載のネットワークシステム用電子データの管理方法において、
前記暗号化手段と前記復号化手段は、プロキシサーバの機能を有する
ことを特徴とするネットワークシステム用電子データの管理方法。
【請求項４】
請求項１乃至３の中から選択される１項に記載のネットワークシステム用電子データの管理方法において、
前記ネットワークサービス用アプリケーションプログラムは、ウェブブラウザであり、
前記サーバは、ウェブサーバである
ことを特徴とするネットワークシステム用電子データの管理方法。
【請求項５】
請求項１乃至３の中から選択される１項に記載のネットワークシステム用電子データの管理方法において、
前記ネットワークサービスは、ネットワーク・クラウド・サービスであり、
前記ウェブサーバは、前記ネットワーク・クラウド・サービスを提供するサーバである
ことを特徴とするネットワークシステム用電子データの管理方法。
【請求項６】
請求項１乃至５の中から選択される１項に記載のネットワークシステム用電子データの管理方法において、
前記ユーザ端末は、スタンドアローン電子計算機、ノートパソコン、携帯電話機、スマートフォン、ネットブック、タブレットコンピュータ、及び、シンクライアント端末の中から選択される１計算機である
ことを特徴とするネットワークシステム用電子データの管理方法。
【請求項７】
ユーザ端末からネットワークを介してサーバに接続して、前記ユーザ端末がネットワークサービスを受けるとき、前記ネットワークサービスの電子データのセキュリティを確保するためのネットワークシステム用電子データ管理プログラムであって、
前記ユーザ端末上に動作する、前記ネットワークサービス用のネットワークサービス用アプリケーションプログラムから前記サーバに第１電子データを所定の通信プロトコルに従って送信するとき、
前記ネットワークシステム用電子データ管理プログラムは、
前記通信プロトコルを受信するステップ、
前記通信プロトコルを解析するステップ、
前記通信プロトコルから前記第１電子データを抽出するステップ、
前記第第１電子データを暗号化して暗号化第１電子データを作成するステップ、
前記暗号化第１電子データを前記通信プロトコルに組み込みステップ、及び、
前記暗号化第１電子データを含む前記通信プロトコルを前記サーバに送信するステップ
からなることを特徴とするネットワークシステム用電子データの管理プログラム。
【請求項８】
請求項７に記載のネットワークシステム用電子データの管理プログラムにおいて、
前記サーバから第２電子データを前記通信プロトコルに従って前記ネットワークサービス用アプリケーションプログラムに送信したとき、
前記ネットワークシステム用電子データ管理プログラムは、
該通信プロトコルを受信するステップ、
該通信プロトコルを解析するステップ、
該通信プロトコルから前記第２電子データを抽出するステップ、
前記第１電子データが暗号化されている場合、前記第２電子データを復号化して復号化第２電子データを作成するステップ、
前記復号化第２電子データを前記通信プロトコルに組み込みステップ、及び、
前記復号化第２電子データを含む前記通信プロトコルを前記ネットワークサービス用アプリケーションプログラムに送信するステップ
からなることを特徴とするネットワークシステム用電子データの管理プログラム。
【請求項９】
請求項７又は８に記載のネットワークシステム用電子データの管理プログラムにおいて、
前記ネットワークサービス用アプリケーションプログラムは、ウェブブラウザであり、
ことを特徴とするネットワークシステム用電子データの管理プログラム。
【請求項１０】
請求項８に記載のネットワークシステム用電子データの管理プログラムにおいて、
前記ネットワークサービスは、ネットワーク・クラウド・サービスである
ことを特徴とするネットワークシステム用電子データの管理プログラム。
【請求項１１】
請求項７又は８に記載のネットワークシステム用電子データの管理プログラムにおいて、
前記ネットワークシステム用電子データ管理プログラムは、プロキシサーバの機能を有する
ことを特徴とするネットワークシステム用電子データの管理プログラム。
【請求項１２】
請求項７又は８に記載のネットワークシステム用電子データの管理プログラムにおいて、
前記ユーザ端末は、スタンドアローン電子計算機、ノートパソコン、携帯電話機、スマートフォン、ネットブック、タブレットコンピュータ、及び、シンクライアント端末の中から選択される１計算機である
ことを特徴とするネットワークシステム用電子データの管理プログラム。
【請求項１３】
請求項７乃至１２の中から選択される１項に記載の前記ネットワークシステム用電子データの管理プログラムを記録したネットワークシステム用電子データの管理プログラムの記録媒体。
【請求項１４】
ユーザ端末と、
サーバと、
前記サーバに内蔵又は接続されている記憶手段と、及び、
前記ユーザ端末と前記サーバを接続し、データ通信をするためのネットワークとを含んで構成され、
前記ユーザ端末が前記ネットワークを介して前記サーバに接続して、前記サーバが提供するネットワークサービスを受けるネットワークシステムであって、
前記ユーザ端末から、前記サーバに、第１電子データを所定の通信プロトコルに従って送信するとき、
前記ユーザ端末に内蔵又は接続されたセキュリティ手段は、
前記通信プロトコルを受信する受信手段と、
前記通信プロトコルを解析する解析手段と、
前記通信プロトコルから前記第１電子データを抽出する抽出手段と、
前記第第１電子データを暗号化して暗号化第１電子データを作成する暗号化手段と、
前記暗号化第１電子データを前記通信プロトコルに組み込み組み込み手段と、及び、
前記暗号化第１電子データを含む前記通信プロトコルを前記サーバに送信する送信手段と、
からなり、
前記サーバは
前記通信プロトコルを受信する手段と、
前記通信プロトコルに含まれる前記暗号化第１電子データを抽出する手段と、及び、
前記抽出された前記暗号化第１電子データを、前記記憶手段に保存する保存手段と
を有する
ことを特徴とするネットワークシステム。
【請求項１５】
請求項１４に記載のネットワークシステムにおいて、
前記サーバから、前記ユーザ端末に、第２電子データを所定の通信プロトコルに従って送信するとき、
前記セキュリティ手段は、
前記通信プロトコルを受信する受信手段と、
前記通信プロトコルを解析する解析手段と、
前記通信プロトコルから前記第２電子データを抽出する抽出手段と、
前記第第２電子データが暗号化されている場合、前記第２電子データを復号化して復号化第２電子データを作成する復号化手段と、
前記復号化第２電子データを前記通信プロトコルに組み込み組み込み手段と、
前記復号化第２電子データを含む前記通信プロトコルを前記ユーザ端末に送信する送信手段
からなる
ことを特徴とするネットワークシステム。
【請求項１６】
請求項１４又は１５にネットワークシステムンにおいて、
前記ネットワークサービスは、ネットワーク・クラウド・サービスであり、
前記サーバは、前記ネットワーク・クラウド・サービスを提供するクラウドサーバである
ことを特徴とするネットワークシステム。
【請求項１７】
請求項１４又は１５に記載のネットワークシステムにおいて、
前記セキュリティ手段は、プロキシサーバの機能を有する
ことを特徴とするネットワークシステム。
【請求項１８】
請求項１４又は１５に記載のネットワークシステムにおいて、
前記ユーザ端末は、スタンドアローン電子計算機、ノートパソコン、携帯電話機、スマートフォン、ネットブック、タブレットコンピュータ、及び、シンクライアント端末の中から選択される１計算機である
ことを特徴とするネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上の記録媒体に保存される電子データを暗号化して保存するためのネットワークシステム、ネットワークシステム用電子データの管理方法、そのためのプログラム及び、プログラムの記録媒体に関する。具体的には、ネットワーク・クラウド・サービスに利用される電子データを暗号化して保存するためのネットワークシステム、ネットワークシステム用電子データの管理方法、そのためのプログラム及び、プログラムの記録媒体に関する。
【背景技術】
【０００２】
近年は、ユーザの電子データをネットワーク上のデータベースやストレージ等に保存するシステム、いわゆるクラウドシステムが普及している。クラウドシステムの例としては、ウェブメールサービスが広く普及しており、その他、ネットワークストレージに写真、動画、文書ファイル等の電子データを保存するネットワークストレージサービス、ネットワークストレージサービスを利用して複数のユーザでファイルを共有して閲覧、編集するファイル共有サービスも普及している。
【０００３】
また、近年は、ソーシャル・ネットワーク・サービスが世界中に人気があり、ソーシャル・ネットワーク・サービスに参加しているユーザの個人データやユーザデータ等の電子データはネットワーク上のストレージに格納されている。電子計算機と、ネットワーク上のサーバとの間のデータ通信は、通信データを暗号化して送受信している。電子計算機では、電子データが所定の通信プロトコルに従って、暗号化されてサーバへ送信される。サーバでは、この暗号化された電子データを、復号化して、記録装置に保存している。結果的に、電子データは、ネットワーク上の記録装置には、暗号化されずに記録されている。
【０００４】
例えば、Google Apps等のクラウドサービスを利用したウェブベースシステムでは、ユーザ端末とクラウド端末との間の通信は、ＳＳＬ(Secure Socket Layer)通信によってネットワーク通信路のデータが暗号化されており、そのセキュリティは確保され、電子データは保護されている。このセキュリティが確保されたデータは、クラウド端末に到達すると、復号化されて、ストレージに格納される。言い換えると、クラウドサーバの記憶装置に保存する際には、サーバ側のＳＳＬを通過することで、暗号化されていない元の電子データ、いわゆる平文データとなる。
【０００５】
この中で、電子データのセキュリティを目的とする電子データ管理システム等が多数開示されている。例えば、特許文献１には、クライアントのファイルを暗号化してウェブファイルサーバに送信するための、電子ファイル管理システムが開示されている。ファイルをウェブファイルサーバに格納した段階でもファイル自身を暗号化している。クライアントは、既存の標準ウェブブラウザ機能に加えて、暗号フィルタ処理部とリダイレクトドライバを追加した構成になっている。
【０００６】
クライアントは、標準のウェブブラウザによるウェブファイルサーバ等のサーバ又は他のクライアントとの間で、平文ファイルをＴＣＰ／ＩＰによるＨＴＴＰ通信を可能にし、ファイルを暗号化し、ウェブファイルサーバのデータベースに保存している。クライアントによる電子ファイルの管理・利用およびクライアントがアクセス権を許可した第三者のみが暗号化した電子ファイルを解読、利用できるようにしている。
【０００７】
また、特許文献２は、オンラインサービス事業者に対する機密情報の秘匿と、このオンラインサービスを利用する組織が負担するシステム運用コストの低減とを両立するデータ保護システムを開示している。このシステムは、クライアント端末のブラウザが、オンラインサービスサーバへデータを送信する際に、その組織内のネットワークを介して、鍵管理サーバから暗号スクリプトと暗号鍵を取得し、暗号スクリプトを実行して入力データの暗号化済データを取得し、その取得した暗号化済データをオンラインサービスサーバへ送信し、オンラインサービスサーバから受信したデータ表示画面を描画する際に、鍵管理サーバから復号スクリプトと暗号鍵を取得し、復号スクリプトを実行して表示データの復号済データを取得し、その手段により取得した復号済データを使用してデータ表示画面を描画する手段を備えている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１１−２１６０３４号公報
【特許文献２】特開２０１０−７２９１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかながら、クラウドシステムは、未だに、ネットワーク上に保存した電子データのセキュリティが不十分なことが指摘されている。特に、サーバやデータベースの管理を行っている事業者や管理者等による不正行為やシステム不具合によるデータ流出等への対策が不十分である。上述のクラウドサービスは、普及し始めているとは言え、ユーザ側からみると安心して利用できる環境が十分に備えられていない。上述の特許文献等のような従来技術は、ブラウザに特別な機能を追加したり、又は、特定のアプリケーションソフトウェアに依存してユーザデータを暗号化したりするものである。
【００１０】
クラウドサーバやウェブサーバ側でも、電子データの暗号化等の作業を行っている。又は、クラウドサービスでは、ユーザデータは、ネットワークストレージに暗号化されずに平文データのまま保存されている。これらの平文データは、ネットワークストレージを管理する事業者や管理者等が閲覧できる可能性もあり、ユーザ側からみると不安である。よって、上述のように、クラウドデータベース、サーバの記憶装置内の電子データの保護が課題になっている。
【００１１】
本発明は上述のような技術背景のもとになされたものであり、下記の目的を達成する。
本発明の目的は、クラウドサービスで利用されるユーザの電子データのセキュリティを確保するためのネットワークシステム、ネットワークシステム用電子データの管理方法、そのためのプログラム及び、プログラムの記録媒体を提供する
【００１２】
本発明の他の目的は、ユーザ端末上で動作するアプリケーションプログラムや、サーバ等に依存しないで、クラウドサービスで利用されるユーザデータの電子データのセキュリティを確保するためのネットワークシステム、ネットワークシステム用電子データの管理方法、そのためのプログラム及び、プログラムの記録媒体を提供する
【課題を解決するための手段】
【００１３】
本発明は、前記目的を達成するため、次の手段を採る。
本発明のネットワークシステム、ネットワークシステム用電子データの管理方法、そのためのプログラム及び、プログラムの記録媒体を提供する。
本発明のネットワークシステム用電子データの管理方法は、
ユーザ端末からネットワークを介してサーバに接続し、前記ユーザ端末がネットワークサービスを受けるとき、前記ネットワークサービスの電子データを管理するためのネットワークシステム用電子データの管理方法において、
前記ネットワークサービス用のネットワークサービス用アプリケーションプログラムを前記ユーザ端末上に動作させ、
前記ネットワークサービス用アプリケーションプログラムから前記サーバに第１電子データを所定の通信プロトコルに従って送信するとき、
前記通信プロトコルの中の前記第１電子データを含む本文を、暗号化手段によって、暗号化し、
前記暗号化された前記第１電子データを含む前記通信プロトコルを前記サーバに送信し、
前記サーバは、前記暗号化された前記第１電子データを、前記サーバに内蔵又は接続された記憶手段に保存する
ことを特徴とする。
【００１４】
本発明のネットワークシステム用電子データの管理方法は、
前記ネットワークサービス用アプリケーションプログラムは、前記サーバから第２電子データを前記通信プロトコルに従って受信するとき、
前記通信プロトコルの中の前記第２電子データを含む本文が暗号化されている場合、前記第２電子データを復号化手段によって、復号化し、
前記復号化された前記第２電子データを前記ネットワークサービス用アプリケーションプログラムに送信すると良い。
【００１５】
本発明のネットワークシステム用電子データの管理プログラムは、
ユーザ端末からネットワークを介してサーバに接続して、前記ユーザ端末がネットワークサービスを受けるとき、前記ネットワークサービスの電子データのセキュリティを確保するためのネットワークシステム用電子データ管理プログラムであって、
前記ユーザ端末上に動作する、前記ネットワークサービス用のネットワークサービス用アプリケーションプログラムから前記サーバに第１電子データを所定の通信プロトコルに従って送信するとき、
前記ネットワークシステム用電子データ管理プログラムは、
前記通信プロトコルを受信するステップ、
前記通信プロトコルを解析するステップ、
前記通信プロトコルから前記第１電子データを抽出するステップ、
前記第第１電子データを暗号化して暗号化第１電子データを作成するステップ、
前記暗号化第１電子データを前記通信プロトコルに組み込みステップ、及び、
前記暗号化第１電子データを含む前記通信プロトコルを前記サーバに送信するステップ
からなることを特徴とする。
【００１６】
本発明のネットワークシステム用電子データの管理プログラムは、
前記サーバから第２電子データを前記通信プロトコルに従って前記ネットワークサービス用アプリケーションプログラムに送信したとき、
前記ネットワークシステム用電子データ管理プログラムは、
該通信プロトコルを受信するステップ、
該通信プロトコルを解析するステップ、
該通信プロトコルから前記第２電子データを抽出するステップ、
前記第１電子データが暗号化されている場合、前記第２電子データを復号化して復号化第２電子データを作成するステップ、
前記復号化第２電子データを前記通信プロトコルに組み込みステップ、及び、
前記復号化第２電子データを含む前記通信プロトコルを前記ネットワークサービス用アプリケーションプログラムに送信するステップ
からなると良い。
【００１７】
本発明のネットワークシステム用電子データの管理プログラムの記録媒体は、上述のネットワークシステム用電子データの管理プログラムを記録したネットワークシステム用電子データの管理プログラムの記録媒体であると良い。
【００１８】
本発明のネットワークシステムは、
ユーザ端末と、
サーバと、
前記サーバに内蔵又は接続されている記憶手段と、及び、
前記ユーザ端末と前記サーバを接続し、データ通信をするためのネットワークとを含んで構成され、
前記ユーザ端末が前記ネットワークを介して前記サーバに接続して、前記サーバが提供するネットワークサービスを受けるネットワークシステムであって、
前記ユーザ端末から、前記サーバに、第１電子データを所定の通信プロトコルに従って送信するとき、
前記ユーザ端末に内蔵又は接続されたセキュリティ手段は、
前記通信プロトコルを受信する受信手段と、
前記通信プロトコルを解析する解析手段と、
前記通信プロトコルから前記第１電子データを抽出する抽出手段と、
前記第第１電子データを暗号化して暗号化第１電子データを作成する暗号化手段と、
前記暗号化第１電子データを前記通信プロトコルに組み込み組み込み手段と、及び、
前記暗号化第１電子データを含む前記通信プロトコルを前記サーバに送信する送信手段と、
からなり、
前記サーバは
前記通信プロトコルを受信する手段と、
前記通信プロトコルに含まれる前記暗号化第１電子データを抽出する手段と、及び、
前記抽出された前記暗号化第１電子データを、前記記憶手段に保存する保存手段と
を有する
ことを特徴とする。
【００１９】
また、本発明のネットワークシステムは、
前記サーバから、前記ユーザ端末に、第２電子データを所定の通信プロトコルに従って送信するとき、
前記セキュリティ手段は、
前記通信プロトコルを受信する受信手段と、
前記通信プロトコルを解析する解析手段と、
前記通信プロトコルから前記第２電子データを抽出する抽出手段と、
前記第第２電子データが暗号化されている場合、前記第２電子データを復号化して復号化第２電子データを作成する復号化手段と、
前記復号化第２電子データを前記通信プロトコルに組み込み組み込み手段と、
前記復号化第２電子データを含む前記通信プロトコルを前記ユーザ端末に送信する送信手段
からなると良い。
【００２０】
本発明のネットワークシステム、ネットワークシステム用電子データの管理方法、そのためのプログラム及び、プログラムの記録媒体は、次の特徴を更に有する。
前記ネットワークサービス用アプリケーションプログラムは、ウェブブラウザであると良い。
前記サーバは、ウェブサーバであると良い。
【００２１】
前記サーバ又は前記ネットワークサービス又は前記ウェブサーバは、前記ネットワーク・クラウド・サービスを提供するサーバであると良い。
前記ネットワークシステム用電子データ管理プログラム又は前記セキュリティ手段は、プロキシサーバの機能を有すると良い。
【００２２】
前記ユーザ端末は、スタンドアローン電子計算機、ノートパソコン、携帯電話機、スマートフォン、ネットブック、タブレットコンピュータ、及び、シンクライアント端末の中から選択される１計算機であると良い。更に、前記ユーザ端末は、仮想環境で稼働する仮想マシンでも良い。
前記暗号化手段と前記復号化手段は、プロキシサーバの機能を有すると良い。
【発明の効果】
【００２３】
本発明によると、次の効果が奏される。
本発明によると、クラウドサービスで利用されるユーザデータを暗号化して、ユーザ端末からサーバへ送信し、ユーザデータは暗号化されたままデータベースに格納されるようになり、課題のユーザデータのセキュリティが確保された。
【００２４】
本発明によると、ユーザ端末上で動作するウェブブラウザからウェブサーバに送信されるマークアップ言語で記述された送信データのボディ部を暗号化するので、ユーザデータは暗号化されたままデータベースに格納され、ユーザデータのセキュリティが確保された。
【００２５】
また、本発明によると、プロキシ機能を備えたセキュリティ手段又はセキュリティソフトウェアを利用して、ユーザデータを暗号化するので、クラウドサービスにアクセスするウェブブラウザと独立し、それに依存せず、ユーザデータもサーバにも依存しない、ウェブデータベース等に保存されるようになった。
【図面の簡単な説明】
【００２６】
【図１】図１は、本発明の第１の実施の形態のネットワークシステム１の概要を示す概念図である。
【図２】図２は、ユーザ端末３の構成の一例を図示しているブロック図である。
【図３】図３は、本発明の第１の実施の形態のネットワークシステム１のユーザ端末３とウェブサーバ４のデータ通信の概要図示した概念図である。
【図４】図４は、本発明の第１の実施の形態のネットワークシステム１において、コンテンツのアップロード開始から完了までの流れの例を示すフローチャートである。
【図５】図５は、本発明の第１の実施の形態のネットワークシステム１において、コンテンツのダウンロード開始から完了までの流れの例を示すフローチャートである。
【図６】図６は、ユーザ端末３とウェブサーバ４がプロキシサーバ８を介した通信の概要を示す概念図である。
【図７】図７は、ウェブブラウザ３１からウェブサーバ４へのアップロード及びダウンロードを行う際、セキュリティプログラム３２の処理の流れの例を示すフローチャートである。
【図８】図８は、ＨＴＴＰのヘッダを解析する流れの例を示すフローチャートである。
【図９】図９は、ＨＴＴＰのボディを解析する流れの例を示すフローチャートである。
【図１０】図１０は、ＳＳＬ接続の流れの例を示すフローチャートである。
【図１１】図１１は、インターネット上の通常の通信において、ユーザ端末３とウェブサーバ４の通信の概要を示す概念図である。
【発明を実施するための形態】
【００２７】
〔第１の実施の形態〕
図１は、本発明の第１の実施の形態のネットワークシステム１の概要を示す概念図である。ネットワークシステム１は、ネットワーク２、ネットワーク２にアクセス可能なユーザ端末３、ウェブサーバ４、ウェブデータベース５等からなる。ネットワークシステム１は、ユーザデータをネットワーク２上の記憶装置又はウェブデータベース５に保存するとき、暗号化して保存するものである。
【００２８】
ユーザデータとは、ユーザ６が利用する電子データである。ユーザデータは特に限定しないが、テキストファイル、静止画ファイル、映像ファイル、Word, pdf等の各種のフォーマットの文書ファイル、コンピュータプログラムコードのファイル、又は実行可能なファイル（.exeファイル）等の任意の形式のファイルである。ユーザデータは、マークアップ言語の記述に変更され、ユーザ６が利用するユーザ端末３から、ネットワーク２上のウェブサーバ４に送信されてウェブデータベース５に保存される。
【００２９】
ネットワーク２は、公知の任意の有線又は無線の通信ネットワークであるが、ローカルエリアネットワーク（ＬＡＮ）又はインターネットであることが好ましい。本実施の形態において、ネットワーク２は、インターネットとして説明する。ユーザ端末３は、ユーザ６が操作し、利用するための電子計算機である。ユーザ端末３は、入力装置、出力装置、中央処理装置、主記憶装置等を備えた汎用の電子計算機である。
【００３０】
図２のブロック図には、ユーザ端末３の構成の一例を図示している。ユーザ端末３は、図２に図示したように、電子計算機本体１００、それに内蔵された主記憶装置１０１、中央処理ユニット（ＣＰＵ）１０２、入力インターフェース１０３、出力インターフェース１０４、及び、入力装置１０５、出力装置１０６等を備える。また、ユーザ端末３は、補助記憶装置１０９、補助記憶装置１０９用の補助記憶装置用インターフェース１０８も備える。更に、ユーザ端末３は、ネットワークインターフェース１１０と、ネットワークカード１１１も備える。
【００３１】
主記憶装置１０１、ＣＰＵ１０２、入力インターフェース１０３、出力インターフェース１０４は、バス１０７で互いに接続されて、このバス１０８を経由して、互いにデータの送受信を行う。主記憶装置１０１は、ＲＡＭ等の記憶装置である。ＣＰＵ１０２は、ユーザ端末３の動作を制御するもので、主記憶装置１０１に格納されたプログラムによって、そのプログラムの命令を順序処理し実行しながら、ユーザ端末３の動作を制御する。マウス、キーボード等の入力装置１０５は、入力インターフェース１０３に接続される。
【００３２】
ユーザ端末３は、ハードディスクドライブ等の補助記憶装置１０９を有する。補助記憶装置１０９には、アプリケーションプログラムやユーザデータ等が格納される。補助記憶装置１０９は、本例では、電子計算機本体１００に内蔵されているが、入力装置１０５や出力装置１０６のように外付けの記憶装置であることができる。ユーザ端末３に接続されるアプリケーションプログラムやユーザのデータ等が格納される。
【００３３】
ユーザ端末３において、オペレーティングシステムは、通常、補助記憶装置１０９から呼び出されて、主記憶装置１０１に展開されて、ＣＰＵ１０２によって処理されることで動作する。また、ウェブブラウザ等のアプリケーションプログラムも、通常、補助記憶装置１０９から呼び出されて、主記憶装置１０１に展開されて、動作する。ネットワークカード１１１は、ユーザ端末３を他の電子計算機、ネットワーク２、ネットワーク２に接続するための装置に接続するためのデバイスである。ネットワークカード１１１は、有線のＬＡＮに接続するためのＬＡＮカードである。
【００３４】
また、ネットワークカード１１１は、図１に図示したように、ワイヤレスゲートウェイ７のような無線装置、無線ＬＡＮアクセスポイント等に接続するための無線ＬＡＮカードであることができる。更に、ユーザ端末３は、ネットワークインターフェース１１０とネットワークカード１１１のように、通信用のボード等の他の装置に接続するための他のインターフェースを多数備える。そのインターフェースの種類や動作は、本発明の趣旨ではないので、詳細の説明は省略する。
【００３５】
図１に図示したウェブサーバ４は、ウェブデータベース５を格納した汎用サーバである。ウェブデータベース５は、ユーザ６が利用するユーザデータを格納し、保存するためのデータベースである。ウェブデータベース５はウェブサーバ４が提供するクラウドサービスの場合は、クラウドデータベースとも言うことができる。本実施の形態においては、ウェブデータベース５は、クラウドデータベースを含め、ユーザデータを含むものであれば任意のデータベースを意味する。
【００３６】
ユーザ端末３は、ネットワーク２に直接接続されることが可能であるが、ワイヤレスゲートウェイ７、プロキシサーバ８、ルータ９等を介して接続されることが一般的である。本実施の形態においては、ユーザ端末３がネットワーク２に接続されることが発明の趣旨ではないので、詳細な説明は省略する。ユーザ端末３は、スマートフォン１０等の携帯端末であることもできる。ユーザ端末３は、スマートフォン１０等のネットワーク２にアクセスする機能を持つ携帯端末を含むものとする。
【００３７】
従来は、ユーザ端末３とウェブサーバ４とのデータ通信は、通信データを暗号化して互いに送受信している。ユーザ端末３では、ユーザデータが所定の通信プロトコルに従って、暗号化されてウェブサーバ４へ送信される。ウェブサーバ４では、この暗号化されたユーザデータを、復号化して、ウェブデータベース５に保存している。結果的に、ユーザデータは、ネットワーク２上のウェブデータベース５には、暗号化されずに記録される。
【００３８】
本発明は、ユーザ端末３から送信されたユーザデータを暗号化して、ウェブデータベース５に保存する機能を提供するものである。クラウドサービスとしては、テキスト、画像等のデータをＨＴＭＬ等の特定のフォーマットに変換して提供するサービスや、ＨＴＭＬ等の特定のフォーマットで記述されたデータを提供する単なるウェブサービスと違い、ユーザデータをネットワークストレージに保存するものである。ネットワークストレージは、ウェブデータベース５等のウェブサーバ４からアクセス可能な記録装置である。
【００３９】
ユーザ６の操作に応答し、ユーザ端末３は、ウェブサーバ４を介して、ウェブデータベース５にアクセスして、ユーザデータを閲覧、編集、ダウンロード、及び削除することができる。また、同じく、ユーザ６は、新規のユーザデータを、ウェブデータベース５にアップロードして保存することができる。このようなクラウドサービスの例としては、現在広く普及し始めているウェブメールサービス、ウェブストレージサービス、ファイル共有サービス等が例示できるが、クラウドサービスはこれらに限定されない。
【００４０】
更に、クラウドサービスの例としては、ソーシャルネットワーク、そのユーザのデータも含むことができる。
図３は、ネットワークシステム１のユーザ端末３とウェブサーバ４のデータ通信の概要図示した概念図である。ユーザ６は、ウェブサーバ４から提供されるクラウドサービスを受ける。ユーザ６は、ユーザ端末３を利用してこのクラウドサービスを受ける。まず、ユーザ６は、ユーザ端末３上にクラウドサービス用のアプリケーションプログラムを起動させる。
【００４１】
このようなアプリケーションプログラムとしては、限定されないが、ウェブブラウザが最適である。無論、同じ通信機能を有するものであれば、ウェブブラウザ以外のアプリケーションソフトでも構わない。本実施の形態では、図３に図示したように、ウェブブラウザ３１として説明する。ユーザ６の操作により、ユーザ端末３はウェブブラウザ３１を起動させる。ウェブブラウザ３１が起動すると、ユーザは、ウェブサーバ４のクラウドサービスのＵＲＬアドレス又はＩＰアドレスを入れて、ウェブサーバ４から提供されるサービスにアクセスする。
【００４２】
クラウドサービスのログイン画面がユーザ端末３の画面上に表示されると、そこに適当なユーザ名とパスワードを入れてログインする。ウェブブラウザ３１とウェブサーバ４の間の通信は、所定の通信プロトコルに従って行われる。通信プロトコルは、クラウドサービスに利用できるものであれば、既知の任意の通信プロトコルが利用できる。通信プロトコルは、通信するレイヤによって、また、用途によって、様々なプロトコルが利用されている。
【００４３】
国際標準化機構（ＩＳＯ）によって策定されたＯＳＩ参照モデル（Open Systems Interconnection reference model）は、電子計算機や通信機器の通信機能を７つの階層構造に分割して定義したモデルで、現在もっとも普及している。この７階層は、次の表１に示す通り、物理デバイスに近い階層からアプリケーションプログラムの階層まで、物理層、データリンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、及びアプリケーション層になっている。
【００４４】
表１には、通信プロトコルの代表的なものを、ＯＳＩ（Open Systems Interconnection）参照モデルの７階層それぞれに例示している。ＯＳＩ参照モデルは、国際標準化機構によって策定されたもので、電子計算機の通信機能を階層構造に分割したモデルである。
【表１】
2014092801.tif 000003
【００４５】
本実施の形態においては、限定されないが、このＯＳＩ参照モデルに採用された通信プロトコルを利用する。しかし、本発明は、通信プロトコル自体の発明ではないので、ＯＳＩ参照モデルの７階層の通信プロトコル全てについて記述せず、特に、本発明の実施に必要なものだけについて説明する。図３に図示したＴＬＳ（Transport Layer Security）３３は、セキュリティが要求される通信に利用されるプロトコルである。ＴＬＳ３３は、その前身のセキュリティ通信用のプロトコルであるＳＳＬ（Secure Socket Layer)と呼ばれることがある。
【００４６】
ＴＬＳ３３は、コネクション型のトランスポート層プロトコルの上位に位置し、通常はトランスポート層プロトコルのＴＣＰをラッピングする形で利用される。ＴＬＳ３３は、特にアプリケーション層プロトコルのＨＴＴＰ（HyperText Transfer Protocol）での利用を意識して設計されている。ＨＴＴＰは、ウェブブラウザ３１とウェブサーバ４の間でＨＴＭＬ等のコンテンツの送受信に用いられる通信プロトコルである。ＴＬＳ３３は、アプリケーション層の特定のプロトコルには依存しない特徴を持つ。
【００４７】
本実施の形態では、特に区別しない限り、ＴＬＳ３３は、ＳＳＬを含む。ＴＬＳ３３は、インターネットで広く使われているＷＷＷやＦＴＰ等のユーザデータを暗号化し、プライバシーに関わる情報、クレジットカード番号、企業秘密等に係るデータを、ユーザ端末３とウェブサーバ４の間に安全に送受信することができる。ＴＬＳ３３は、公開鍵暗号や秘密鍵暗号、デジタル証明書、ハッシュ関数等のセキュリティ技術を組み合わせ、データの盗聴、改ざん、なりすまし等を防ぐことができる。
【００４８】
ＴＬＳ３３は、セッション層とトランスポート層の境界で動作し、ＨＴＴＰやＦＴＰ等の上位のプロトコルを利用するアプリケーションソフトウェアから、特に意識することなく透過的に利用することができる。図３に図示したウェブブラウザ３１、サーバプログラム４１は、アプリケーション層で動作する。ＴＬＳ３３、ＴＬＳ４３は、ＴＬＳプロトコルであり、ウェブブラウザ３１とウェブサーバ４との間のセキュリティ通信を提供する。図３に図示したネットワーク層３４とネットワーク層４４は、ＯＳＩ参照モデルのネットワーク層である。
【００４９】
本発明は、ユーザ端末３のウェブブラウザ３１とＴＬＳ３３の間に位置し、ユーザデータを暗号化し、暗号化されたユーザデータを復号化するためのセキュリティプログラム３２を提供する。セキュリティプログラム３２は、ウェブサーバ４に送信されるユーザデータ（クラウドデータ）を自動的に暗号化し、ウェブサーバ４から送信されてきた暗号化されたユーザデータを自動的に復号化する。セキュリティプログラム３２は、ウェブブラウザ３１とウェブサーバ４間で通信するＨＴＴＰプロトコル又はＨＴＴＰＳプロトコルのデータを解析する機能を持つ。
【００５０】
具体的に、セキュリティプログラム３２は、ＨＴＴＰ又はＨＴＴＰＳのヘッダの内容及びボディの内容を解析し、アップロード及びダウンロードするユーザデータのみの暗号化又は復号化をそれぞれ行う。言い換えると、セキュリティプログラム３２は、ＨＴＴＰ又はＨＴＴＰＳのヘッダ及びボディを解析し、その本文のユーザデータを暗号化又は復号化する。
【００５１】
図４は、ネットワークシステム１において、コンテンツのアップロード開始から完了までの流れの例を示すフローチャートである。ウェブブラウザ３１は、ＨＴＴＰプロトコルを利用して、アップロード要求であるＰＯＳＴ要求を、ウェブサーバ４に対して行う。ウェブブラウザ３１から送信されたＰＯＳＴ要求は、通常、要約すると、ネットワーク層４３とネットワーク層４４を介して、ウェブサーバ４に送信される。しかし、本実施の形態において、セキュリティプログラム３２は、このＰＯＳＴ要求を受け取り、ＰＯＳＴ要求の内容を分析する。
【００５２】
そして、セキュリティプログラム３２は分析後、ＨＴＴＰのボディ内のユーザデータを暗号化する。その後、ＰＯＳＴ要求はウェブサーバ４へ送信される。ウェブサーバ４において、ＰＯＳＴ要求は、通常通り処理され、返事がウェブブラウザ３１へ送信される。この返事を示すアップロード完了の通知がウェブサーバ４から、ウェブブラウザ３１へ送信される。セキュリティプログラム３２がこのアップロード完了の通知を受信して、その内容を解析し、本文が暗号化されている場合、その暗号化された本文を復号化する。
【００５３】
通常は、アップロード要求に対するウェブサーバ４の返事は、本文にユーザデータがなく、要求を承認する等のような、ネットワーク層３４のプロトコルやＨＴＴＰプロトコル上の決まったやり取りが行われている。そのため、一般的には、セキュリティプログラム３２はＨＴＴＰのボディの本文を復号化する必要がない。ウェブブラウザ３１は、セキュリティを要する通信の場合、上述のＰＯＳＴ要求で、ウェブサーバ４と接続された後、セキュリティ通信を提供するＨＴＴＰＳプロトコルで、通信し始める。
【００５４】
そのとき、ウェブブラウザ３１は、セキュリティ通信の要求をするためのＣＯＮＮＥＣＴ要求を発行して、ウェブサーバ４へ送信する。セキュリティプログラム３２は、このウェブブラウザ３１から発行されたＣＯＮＮＥＣＴ要求を受信して、内容を解析する。そして、セキュリティプログラム３２は、ウェブサーバ４との間で、ＳＳＬ認証を行う。この認証が成功すると、セキュリティプログラム３２は、ウェブブラウザ３１にＳＳＬ通信が可能である旨の通知をする。
【００５５】
この認証が成功しない場合、セキュリティプログラム３２は、ウェブブラウザ３１にＳＳＬ通信が不可である旨の通知をする。ウェブブラウザ３１はこの不可の通知を受け取った場合は、セキュリティ通信を停止させ、画面にメッセージする等してユーザ６に通知する。ウェブブラウザ３１にＳＳＬ通信が可能である旨の通知を受信すると、ユーザデータをアップロードするためにＰＯＳＴ要求を発行して、サーバ４へ送信する。セキュリティプログラム３２は、このＰＯＳＴ要求を受信して、その内容を解析する。
【００５６】
そして、セキュリティプログラム３２は、ＰＯＳＴ要求のＨＴＴＰの本文を暗号化する。セキュリティプログラム３２は、本文が暗号化されたＰＯＳＴ要求を、ウェブサーバ４へ送信する。ウェブサーバ４は、このＰＯＳＴ要求に指定された処理をして、その処理結果のアップロード完了通知をウェブブラウザ３１へ送信する。セキュリティプログラム３２がこのアップロード完了の通知を受信して、その内容を解析し、本文が暗号化されている場合、その暗号化された本文を復号化する。
【００５７】
セキュリティプログラム３２は、このアップロード完了の通知をウェブブラウザ３１へ送信する。ウェブブラウザ３１は、このアップロード完了の通知を受信して、一連のアップロードの動作が完了する。
図５は、コンテンツのダウンロード開始から完了までの流れの例を示すフローチャートである。ウェブブラウザ３１は、ＨＴＴＰプロトコルを利用して、ダウンロードを要求するためのＧＥＴ要求を、ウェブサーバ４に対して行う。
【００５８】
ウェブブラウザ３１から送信されたＧＥＴ要求は、通常、ネットワーク層４３とネットワーク層４４を介して、ウェブサーバ４に送信される。しかし、本実施の形態において、セキュリティプログラム３２は、このＧＥＴ要求を受け取り、ＧＥＴ要求の内容を分析する。そして、セキュリティプログラム３２は分析後、ＨＴＴＰのボディのユーザデータを暗号化する。その後、ＰＯＳＴ要求はウェブサーバ４へ送信される。ウェブサーバ４においては、ＧＥＴ要求は通常通り処理され、応答がウェブブラウザ３１へ送信される。
【００５９】
この応答を示すダウンロード完了の通知がウェブサーバ４から、ウェブブラウザ３１へ送信される。セキュリティプログラム３２がこのダウンロード完了の通知を受信して、その内容を解析し、本文が暗号化されている場合、その暗号化された本文を復号化する。通常は、アップロード要求に対するウェブサーバ４の応答は、本文にユーザデータなく、要求を承認等のような、ネットワーク層３４のプロトコルやＨＴＴＰプロトコル上の決まったやり取りが行われている。
【００６０】
そのため、セキュリティプログラム３２はＨＴＴＰの本文を復号化する必要がない。ウェブブラウザ３１は、セキュリティを要する通信の場合、上述のＧＥＴ要求で、ウェブサーバ４と接続した後、セキュリティ通信を提供するＨＴＴＰＳプロトコルで、通信し始める。そのとき、ウェブブラウザ３１は、セキュリティ通信を要求するＣＯＮＮＥＣＴ要求を、ウェブサーバ４へ発行して送信する。セキュリティプログラム３２は、このウェブブラウザ３１から発行されたＣＯＮＮＥＣＴ要求を受信して、内容を解析する。
【００６１】
そして、セキュリティプログラム３２は、ウェブサーバ４との間で、ＳＳＬ認証を行う。この認証が成功すると、セキュリティプログラム３２は、ウェブブラウザ３１にＳＳＬ通信が可能である旨の通知をする。この認証が成功しない場合、セキュリティプログラム３２は、ウェブブラウザ３１にＳＳＬ通信が不可である旨の通知をする。ウェブブラウザ３１はこの不可の通知を受け取った場合は、セキュリティ通信を停止させ、画面にメッセージする等してユーザ６に通知する。
【００６２】
ウェブブラウザ３１にＳＳＬ通信が可能である旨の通知を受信すると、ユーザデータをダウンロードするためにＧＥＴ要求を発行して、サーバ４へ送信する。セキュリティプログラム３２は、このＧＥＴ要求を受信して、その内容を解析する。そして、セキュリティプログラム３２は、ＧＥＴ要求のＨＴＴＰの本文を暗号化する。セキュリティプログラム３２は、本文が暗号化されたＧＥＴ要求を、ウェブサーバ４へ送信する。ウェブサーバ４は、このＧＥＴ要求に指定された処理をする。
【００６３】
このとき、ウェブサーバ４は、ウェブデータベース５から指定されたユーザデータを検索し、検索結果のユーザデータを含むＨＴＴＰをウェブブラウザ４へ送信する。セキュリティプログラム３２は、ＨＴＴＰの内容分析し、そのボディにあるユーザデータが暗号化されている場合は、復号化し、ウェブブラウザ３１へ送信する。ウェブブラウザ３１は、要求されたユーザデータを全て受信し終わると、ウェブサーバ４は、ダウンロード完了通知をウェブブラウザ３１へ送信する。
【００６４】
セキュリティプログラム３２がこのダウンロード完了の通知を受信して、その内容を解析し、本文が暗号化されている場合、その暗号化された本文を復号化する。セキュリティプログラム３２は、このダウンロード完了の通知をウェブブラウザ３１へ送信する。ウェブブラウザ３１は、このダウンロード完了の通知を受信して、一連のダウンロードの動作が完了する。
【００６５】
〔プロキシサーバとしての機能〕
通常のＨＴＴＰ／ＨＴＴＰＳの通信は、ウェブクライアントのウェブブラウザ３１からウェブサーバ４へリクエストを送信することを、「ＨＴＴＰリクエスト」と定義し、ウェブサーバ４からウェブクライアントのウェブブラウザ３１にレスポンスを返すことを「ＨＴＴＰレスポンス」と定義する。セキュリティプログラム３２では、ウェブクライアント側でプロキシサーバとして動作するように位置し、「ＨＴＴＰリクエスト」及び「ＨＴＴＰレスポンス」の監視を行う。
【００６６】
インターネット上の通常の通信は、図１１に図示したように、ユーザ端末３はＨＴＴＰリクエストを発行し、ウェブサーバ４へ送信し、ウェブサーバ４はこのＨＴＴＰリクエストを処理して、その結果を示すＨＴＴＰレスポンスをユーザ端末３へ送信する。プロキシサーバを介した通信は、図６に図示したように、ユーザ端末３とウェブサーバ４の間に、プロキシサーバ８が介在する。この場合、ユーザ端末３はＨＴＴＰリクエストを発行し、ウェブサーバ４又はプロキシサーバ８へ送信するが、このＨＴＴＰリクエストをプロキシサーバ８が受信する。
【００６７】
プロキシサーバ８は、このＨＴＴＰリクエストを、プロキシサーバ８からウェブサーバ４へのＨＴＴＰリクエストに書き換えして、ウェブサーバ４へ送信する。ウェブサーバ４は、プロキシサーバ８が発行したこのＨＴＴＰリクエストを処理して、その結果を示すＨＴＴＰレスポンスを、プロキシサーバ８へ送信する。プロキシサーバ８は、ウェブサーバ４が発行したこのＨＴＴＰレスポンスを受信する。プロキシサーバ８は、このＨＴＴＰレスポンスを、プロキシサーバ８からユーザ端末３へのＨＴＴＰレスポンスに書き換えして、ユーザ端末３４へ送信する。
【００６８】
セキュリティプログラム３２は、プロキシサーバの上で動作する。すなわち、セキュリティプログラム３２は、ＨＴＴＰＳの通信に用いられるウェブクライアント及びウェブサーバ４の証明書を使用しＨＴＴＰリクエスト及びＨＴＴＰレスポンスのデータを書き換えることで、ＨＴＴＰリクエスト及びＨＴＴＰレスポンスのボディ内のユーザデータの暗号化又は復号化を行う。以下、このセキュリティプログラムの動作を具体的に説明する。
図６は、セキュリティプログラム３２がプロキシサーバ８として機能する概要を示すブロック図である。
【００６９】
プロキシサーバ８はユーザ端末３から発行されたＨＴＴＰリクエストを受信し、その内容を解析する。そして、このＨＴＴＰリクエストを、プロキシサーバ８からウェブサーバ４に対する新規のＨＴＴＰリクエストに変換して書き換える。この書き換えのとき、ユーザ端末３からのＨＴＴＰリクエストの本文が暗号化される。ウェブサーバ４は、プロキシサーバ８からのＨＴＴＰリクエストを処理し、その処理結果を示すＨＴＴＰレスポンスをプロキシサーバ８へ送信する。
【００７０】
プロキシサーバ８は、このＨＴＴＰレスポンスを受信して、その内容を分析する。そして、このＨＴＴＰレスポンスを、プロキシサーバ８からユーザ端末３１に対する新規のＨＴＴＰレスポンスに変換して書き換える。この書き換えのとき、ウェブサーバ４からのＨＴＴＰレスポンスの本文が復号化され。図６に破線で図示したように、ユーザ端末３、言い換えるとウェブブラウザ３１、からみると、ユーザ端末３はサーバ４に対してＨＴＴＰリクエストを発行し、その返事のＨＴＴＰレスポンスを受け取っている。
【００７１】
また、このプロキシサーバ８を介する通信は、図６に図示したように、ユーザ端末３とプロキシサーバ８間は、プロキシサーバ８が発行するプロキシサーバ証明書を用いた通信が行われる。また、プロキシサーバ８とウェブサーバ４間は、ウェブサーバ４が発行するウェブサーバ証明書を用いた通信が行われる。よって、ユーザ端末３とプロキシサーバ８間と、プロキシサーバ８とウェブサーバ４間は、別々の独立したＨＴＴＰ通信になる。
【００７２】
セキュリティプログラム３２がプロキシサーバ８として機能することで、セキュリティプログラム３２は、ユーザ端末３上に動作する特定のアプリケーションプログラムに依存せず、また、特定のウェブサーバ４、クラウドサービス等に依存しない。ユーザ端末３側、ユーザ６側からみると、ユーザデータは、暗号化されてウェブサーバ４へ送信され、ウェブデータベース５に暗号化されて保存されるため、ユーザデータの漏洩に心配する必要なく、ウェブサーバ４側の管理者も、ウェブデータベース５にアクセスできる者もこのユーザデータを見ても、暗号化されているので、意味がわからず、データセキュリティが確保できる。
【００７３】
〔ＨＴＴＰ／ＨＴＴＰＳのヘッダとボディの構造〕
以下、ＨＴＴＰ／ＨＴＴＰＳの本文を暗号化する具体的な例を示す。ウェブブラウザ３１から、ネットワーク２上のファイルストレージサービスを提供するアップロードサイト（http://firestorage.co.jpの例）に、テキストファイルを「text.txt」をアップロードした際の、ＨＴＴＰの例を以下に示す。次の表２に示すように、ＨＴＴＰのデータは、基本的に、「ＨＴＴＰリクエスト行」、「ＨＴＴＰヘッダ行」、「ＨＴＴＰボディ」、「ＨＴＴＰフッタ」から構成される。
【００７４】
ユーザデータのテキスト部分は、「text.txt」ファイルの「ＴＥＳＴ  ＴＥＳＴ」部分になっている。ＨＴＴＰプロトコルは、「text.txt」ファイルの内容の「ＴＥＳＴ  ＴＥＳＴ」のバイナリをBlowfish暗号方式で、暗号・復号を行う。また、表２の中で、「[\r\n]」のコードは、改行コードを示し、空白行になる。
【表２】
2014092801.tif 000004
【００７５】
ＨＴＴＰ／ＨＴＴＰＳの通信に用いられる各種の命令や関数は、関連の仕様書を参考することで容易に把握することができるが、ここで、特に関連性のある命令、関数について説明する。次の表３は、「ＨＴＴＰリクエスト行」に用いられる主な命令と関数を示している。
【表３】
2014092801.tif 000005
【００７６】
次の表４は、リクエストヘッダフィールド構造に用いられる主な命令と関数を示している。
【表４】
2014092801.tif 000006
【００７７】
〔ＨＴＴＰ／ＨＴＴＰＳプロトコルの解析〕
図７は、ウェブブラウザ３１からウェブサーバ４へのアップロード及びダウンロードを行う際、セキュリティプログラム３２の処理の流れを示す図である。当該図７を用いて、当該セキュリティプログラム３２の処理の流れを以下に説明する。ウェブブラウザ３１からＨＴＴＰリクエストが発行されると、それをセキュリティプログラム３２が受信する（ステップ１００）。セキュリティプログラム３２は、ＨＴＴＰリクエストの内容を分析し、通信の種類を判定する（ステップ１０１）。
【００７８】
ＣＯＮＮＥＣＴの場合、セキュリティプログラム３２は、ウェブサーバ４へＳＳＬ通信の接続要求を出し、ＳＳＬ認証をして、ハンドシェイクする（ステップ１０２）。言い換えると、ＨＴＴＰリクエストにＣＯＮＮＥＣＴが付加される場合は、ＨＴＴＰＳプロトコルを用いたセキュリティのＳＳＬ通信になる。その後、ＨＴＴＰヘッダの解析を行う（ステップ１０３）。ＰＯＳＴ要求又はＧＥＴ要求の場合、ＨＴＴＰヘッダの解析を行う（ステップ１０３）。
【００７９】
ＨＴＴＰリクエストがＰＯＳＴ要求の場合、主にアップロードに関連する通信になる。ＨＴＴＰリクエストにＧＥＴ要求が付加されている場合は、主にダウンロードに関連する通信になる。ＨＴＴＰヘッダの解析で、対象のＨＴＴＰである否かを判定する（ステップ１０４）。対象外のＨＴＴＰの場合、セキュリティプログラム３２は、そのＨＴＴＰプロトコルをウェブサーバ４に送信する（ステップ１０８）。対象のＨＴＴＰの場合、セキュリティプログラム３２は、そのＨＴＴＰのボディを解析する（ステップ１０５）。
【００８０】
セキュリティプログラム３２は、ＨＴＴＰプロトコルからボディ部を判別し、ＨＴＴＰのボディの暗号化する（ステップ１０７）。その後、セキュリティプログラム３２は、そのＨＴＴＰプロトコルをウェブサーバ４に送信する（ステップ１０８）。ステップ１０６で、ＨＴＴＰプロトコルが対象外のリクエストの場合は、セキュリティプログラム３２はＨＴＴＰプロトコルをウェブサーバ４に送信する（ステップ１０８）。
【００８１】
図８は、図７のステップ１０３における、ＨＴＴＰヘッダを解析する流れの例を示すフローチャートである。セキュリティプログラム３２は、図７のステップ１０３に示したように、ＨＴＴＰプロトコルからＨＴＴＰヘッダの内容を取得する（ステップ１２０）。ＨＴＴＰヘッダの”Content-Type”と”CONTENT-Length”の行を分析する（ステップ１２１）。セキュリティプログラム３２は、”CONTENT-Length”の内容を確認し、それが”０”であるか否かを確認する（ステップ１２２）。
【００８２】
“０”の場合は、ＨＴＴＰヘッダの解析を終了させる（ステップ１２２→終了）。“０”ではない場合は、”Content-Type”の内容からboundary情報を取得する（ステップ１２３）。boundary情報は、ＨＴＴＰの本文に複数の種類データある場合、その境を示すデータである。そして、boundary情報を保存して、ＨＴＴＰヘッダの解析を終了させる（ステップ１２３→終了）。
【００８３】
図９は、ＨＴＴＰボディを解析する流れの例を示すフローチャートである。この例のＨＴＴＰボディの解析は、図７のフローチャートのステップ１０５〜１０７である。セキュリティプログラム３２は、図８に例示したＨＴＴＰヘッダ解析で取得したboundary情報から、ファイル名を検索する（ステップ１３０）。上述の表２の例では、ファイル名は、” test.txt”である。このファイル名の検索で、ファイル名が見つからない場合、検索結果が「ＮＵＬＬ」を返し、ＨＴＴＰボディの解析を終了する（ステップ１３１→終了）。
【００８４】
このファイル名の検索で、ファイル名が見つかった場合、検索結果が「ＮＵＬＬ」ではなくなる。そして、セキュリティプログラム３２は、ファイル名を取得し、次の改行コード検索する（ステップ１３２）。そして、セキュリティプログラム３２は、ＨＴＴＰのボディをBlowfish形式で暗号化する。表２の例で、ＨＴＴＰのボディは、「ＴＥＳＴ  ＴＥＳＴ」になっており、この部分を、暗号化する（ステップ１３３）。ＨＴＴＰがウェブサーバ４からの場合は、このＨＴＴＰのボディが暗号されており、セキュリティプログラム３２は、これを復号化する。
【００８５】
まとめると、ＰＯＳＴ要求の場合は、ＨＴＴＰのボディを暗号化し、ＧＥＴ要求の場合はＨＴＴＰのボディを復号化する。そして、ＨＴＴＰのボディの解析が終了する（ステップ１３３→終了）。図１０は、ＳＳＬ接続の流れの例を示すフローチャートである。このＳＳＬ接続は図７のフローチャートのステップ１０２である。セキュリティプログラム３２はユーザ端末３とＳＳＬ接続を確立する。その後、セキュリティプログラム３２は、ウェブサーバ４とＳＳＬ接続を確立する。これにより、ユーザ端末３とウェブサーバ４は、仮想的に、ＳＳＬ通信できる、ＳＳＬ接続が確立する。
【００８６】
上述のように、セキュリティプログラム３２は、ユーザ端末３上に動作するアプリケーションプログラムであるが、図６に図示したようにプロキシサーバ８として機能している。図６には、プロキシサーバ８を、ユーザ端末３から独立した別の電子計算機として図示している。しかし、本発明のネットワークシステム１を実現するには、プロキシサーバ８はユーザ端末３内に動作する仮想プロキシサーバであることが好ましい。よって、セキュリティプログラム３２は、ユーザ端末３内に動作するプログラムで、仮想プロキシサーバの機能を持つプログラムである。
【００８７】
無論、このような実装は、セキュリティプログラム３２をユーザ端末３から独立したプロキシサーバとして動作することを限定しない。むしろ、セキュリティプログラム３２は、ユーザ端末３から独立したプロキシサーバとして動作することも本発明の別の実施の形態となる。上述のように、ユーザ端末３としては、スタンドアローン電子計算機やノートパソコン等のような汎用の電子計算機、又は、スマートフォン１０を例に説明しました。しかし、ユーザ端末３は、上述のユーザ端末３の機能を実現するものであれば、携帯電話機、ネットブック、タブレットコンピュータであることができる。更に、同じく、ユーザ端末３は、仮想環境で稼働する仮想マシン又はシンクライアント端末であることもできる。
【産業上の利用可能性】
【００８８】
本発明は、ウェブサーバを有しネットワークサービス提供するクラウドサービス等の分野で利用すると良い。
【符号の説明】
【００８９】
１…ネットワークシステム
２…ネットワーク
３…ユーザ端末
４…ウェブサーバ
５…ウェブデータベース
６…ユーザ
７…ワイヤレスゲートウェイ
８…プロキシサーバ
９…ルータ
１０…スマートフォン
３１…ウェブブラウザ
３２…セキュリティプログラム
３３,４３…ＴＬＳ
３４…ネットワーク層
４１…サーバプログラム
４４…ネットワーク層
１００…電子計算機本体
１０１…主記憶装置
１０２…中央処理ユニット（ＣＰＵ）
１０３…入力インターフェース
１０４…出力インターフェース
１０５…入力装置
１０６…出力装置
１０７…バス
１０８…補助記憶装置用インターフェース
１０９…補助記憶装置
１０９ａ…ファイルシステムドライバ
１１０…ネットワークインターフェース
１１１…ネットワークカード
【図１】
2014092801.tif 000007
【図２】
2014092801.tif 000008
【図３】
2014092801.tif 000009
【図４】
2014092801.tif 000010
【図５】
2014092801.tif 000011
【図６】
2014092801.tif 000012
【図７】
2014092801.tif 000013
【図８】
2014092801.tif 000014
【図９】
2014092801.tif 000015
【図１０】
2014092801.tif 000016
【図１１】
2014092801.tif 000017