(57)【特許請求の範囲】
【請求項１】
ソフトウェアの修正プログラムを提供する複数の提供者の装置と、前記ソフトウェアの修正プログラムを利用する複数の利用者の装置と、前記提供者の装置と前記利用者の装置との間に介在するサービス提供会社の装置と、がネットワークで接続され、
前記提供者の装置は、前記修正プログラムの提供に関する処理を行う第１のサブシステムを有し、
前記サービス提供会社の装置は、前記修正プログラムの提供と利用に介在するサービスに関する処理を行う第２のサブシステムを有し、
前記利用者の装置は、前記修正プログラムの利用に関する処理を行う第３のサブシステムを有し、
前記提供者、サービス提供会社、及び利用者の装置は、それぞれ、ファイル共有型のＰ２Ｐネットワークのノードとしてデータ情報を授受するＰ２Ｐ機能を有し、
前記サービス提供会社の装置は、前記修正プログラムの適用の判定に係わる関連データ情報を提供し、
前記提供者、サービス提供会社、及び利用者の装置は、それぞれのサブシステム及びＰ２Ｐ機能の処理を用いて、前記提供者及びサービス提供会社の装置から前記修正プログラム及び関連データ情報を提供して前記利用者の装置で取得し、前記利用者の装置で前記関連データ情報を用いて前記利用者の装置のソフトウェアに対する前記修正プログラムの適用を判定した結果に応じて当該適用を実行する処理を行い、更に前記利用者の装置から前記適用後の前記修正プログラム及び関連データ情報を前記Ｐ２Ｐ機能を用いて他の利用者の装置へ提供する処理を行うこと、を特徴とする修正プログラム提供システム。
【請求項２】
ソフトウェアの修正プログラムを提供する複数の提供者の装置と、前記ソフトウェアの修正プログラムを利用する複数の利用者の装置と、前記提供者の装置と前記利用者の装置との間に介在するサービス提供会社の装置と、がネットワークで接続され、
前記提供者の装置は、前記修正プログラムの提供に関する処理を行う第１のサブシステムを有し、
前記サービス提供会社の装置は、前記修正プログラムの提供と利用に介在するサービスに関する処理を行う第２のサブシステムを有し、
前記利用者の装置は、前記修正プログラムの利用に関する処理を行う第３のサブシステムを有し、
前記提供者、サービス提供会社、及び利用者の装置は、それぞれ、Ｐ２Ｐネットワークのノードとしてデータ情報を授受するＰ２Ｐ機能を有し、
前記第２のサブシステムは、前記提供者からの情報に基づき、前記利用者の装置のソフトウェアにおける前記修正プログラムを適用する更新対象となるソフトウェアを選択する第１の判定処理のためのセキュリティ設定チェックリスト情報である第１の情報を作成して前記Ｐ２Ｐネットワークに公開・提供する処理を行い、
前記第１のサブシステムは、前記利用者の装置のソフトウェアにおける前記更新対象ソフトウェアに対する前記修正プログラムの適用要否を判定する第２の判定処理のためのセキュリティ検査情報である第２の情報を作成し、前記修正プログラムのデータと前記第２の情報とを前記Ｐ２Ｐネットワークに公開・提供する処理を行い、
前記第３のサブシステムは、
前記Ｐ２ＰネットワークのいずれかのＰ２Ｐノードから前記第１の情報を取得し、前記第１の情報から当該利用者の装置における更新対象ソフトウェアを判定する第１の判定処理と、
前記Ｐ２ＰネットワークのいずれかのＰ２Ｐノードから前記第２の情報を取得し、前記第２の情報から前記更新対象ソフトウェアに対する前記修正プログラムの適用要否を判定する第２の判定処理と、
前記Ｐ２ＰネットワークのいずれかのＰ２Ｐノードから前記更新対象ソフトウェアの前記修正プログラムのデータを取得し、当該更新対象ソフトウェアに対する当該修正プログラムの適用を実行する処理と、
前記適用を実行した前記更新対象ソフトウェアの前記修正プログラムのデータと、当該データに関連する前記第１の情報及び前記第２の情報を、前記Ｐ２Ｐネットワークに対して公開・提供する処理と、を行うこと、を特徴とする修正プログラム提供システム。
【請求項３】
請求項２記載の修正プログラム提供システムにおいて、
前記サービス提供会社、及び利用者の装置は、それぞれ、デジタル署名情報を処理する署名機能を有し、
前記第２のサブシステムは、前記署名機能により、前記Ｐ２Ｐネットワークに公開する前記第１の情報に当該サービス提供会社のデジタル署名情報を付与する処理を行い、
前記第３のサブシステムは、前記署名機能により、前記Ｐ２Ｐネットワークから取得した前記第１の情報に付与されている前記デジタル署名情報を検証して正当性を確認する処理を行うこと、を特徴とする修正プログラム提供システム。
【請求項４】
請求項２記載の修正プログラム提供システムにおいて、
前記第１の情報のファイルに、前記第２の情報のファイルを識別するハッシュ値と、前記修正プログラムのデータを識別するハッシュ値とが記述され、
前記第３のサブシステムは、
前記Ｐ２Ｐネットワークから取得した前記第２の情報について、当該第２の情報から計算したハッシュ値と、前記第１の情報の中から抽出したハッシュ値とを比較して、当該第２の情報の正当性を検証する処理と、
前記Ｐ２Ｐネットワークから取得した前記修正プログラムのデータについて、当該修正プログラムのデータから計算したハッシュ値と、前記第１の情報の中から抽出したハッシュ値とを比較して、当該修正プログラムのデータの正当性を検証する処理と、を行うこと、を特徴とする修正プログラム提供システム。
【請求項５】
請求項２記載の修正プログラム提供システムにおいて、
前記第３のサブシステムは、前記Ｐ２Ｐネットワークから取得した各データ情報について、正当性が確認できなかった場合、当該データ情報を破棄し、前記Ｐ２Ｐネットワークに公開しないようにする処理を行うこと、を特徴とする修正プログラム提供システム。
【請求項６】
請求項２記載の修正プログラム提供システムにおいて、
前記第３のサブシステムは、前記第１の情報を用いた第１の判定処理、前記第２の情報を用いた第２の判定処理の際に、利用者の確認操作を介さずに自動的にソフトウェア更新及び修正プログラム適用を実行するかどうかを判定するための設定情報を、利用者により設定可能とする設定機能を有し、前記設定情報は、緊急度に関する閾値を含むこと、を特徴とする修正プログラム提供システム。
【請求項７】
請求項２記載の修正プログラム提供システムにおいて、
前記利用者の装置に対して接続される情報公開用装置を有し、
前記利用者の装置の第３のサブシステムは、前記更新対象ソフトウェアの前記修正プログラムのデータ、第１の情報、及び第２の情報を、前記情報公開用装置に転送して格納する処理を行い、
前記情報公開用装置は、Ｐ２Ｐ機能を用いて、前記修正プログラムのデータ、第１の情報、及び第２の情報を、前記Ｐ２Ｐネットワークに対して公開・提供する処理を行うこと、を特徴とする修正プログラム提供システム。
【請求項８】
請求項２記載の修正プログラム提供システムにおいて、
前記提供者、サービス提供会社、及び利用者の装置とは別に、前記Ｐ２Ｐネットワーク上に、Ｐ２Ｐ機能を用いて、前記修正プログラムのデータ、第１の情報、及び第２の情報の少なくともいずれかを保有して他のＰ２Ｐノードに公開・提供する処理を行う中継用装置が接続されること、を特徴とする修正プログラム提供システム。
【請求項９】
請求項２記載の修正プログラム提供システムの前記第１のサブシステムの機能を前記提供者の装置でのコンピュータ情報処理により実現させることを特徴とするプログラム。
【請求項１０】
請求項２記載の修正プログラム提供システムの前記第２のサブシステムの機能を前記サービス提供会社の装置でのコンピュータ情報処理により実現させることを特徴とするプログラム。
【請求項１１】
請求項２記載の修正プログラム提供システムの前記第３のサブシステムの機能を前記利用者の装置でのコンピュータ情報処理により実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネット等の情報処理の技術に関し、特に、ベンダがコンピュータソフトウェア（アプリケーションプログラム等）の修正プログラム（パッチ等と呼ばれるソフトウェアの脆弱性を修正するためのプログラム）をユーザのコンピュータに対して配布・提供し、ユーザが当該修正プログラムをコンピュータに適用してソフトウェアを更新する技術に関する。
【背景技術】
【０００２】
（１）  現在、ユーザのＰＣ等のコンピュータにおけるソフトウェアの脆弱性を修正（対処）するためにベンダから提供される修正プログラムに関して、修正プログラムの提供前にソフトウェアの脆弱性を悪用する攻撃、いわゆるゼロデイ攻撃、が増加している。ゼロデイ攻撃への対策はいくつか研究等がされているが、根本的な対策は、いち早く修正プログラムの適用を行うこと、である。
【０００３】
しかしながら、ベンダから修正プログラムがリリースされても、多くのユーザはなかなか修正プログラムの適用を実施していない、あるいは迅速には実施していない、という現実がある。即ち、修正プログラムの適用の不徹底性や拙速性などの問題がある。適用が遅れる理由としては、例えば修正プログラムがリリースされてもすぐには気付かない場合や、修正プログラムを適用すべきか判断に迷う場合などが考えられる。
【０００４】
上記問題（修正プログラムの適用の不徹底など）の一解決手段として、ユーザのコンピュータでネットワークを介してサーバ等から得られる修正プログラムの適用を自動的（ユーザの確認操作を不要とする場合）または半自動的（ユーザの確認操作を介在しつつその他は自動的とする場合）に実行する仕組みが考えられる（例えば後述の特許文献１等）。例えばMicrosoft社の場合、“Microsoft Update”のような自動更新技術（サービス）を提供している。
【０００５】
（２）  しかし現状（従来）のシステムでは、上記のようなソフトウェア更新（修正プログラム適用）時に、例えばベンダの更新用サーバ（修正プログラム提供サーバ）に対して一斉に多数のユーザＰＣ等からのアクセス集中などが発生してサーバ負荷が増大し、ネットワークのトラフィックが増大する。そのため、ベンダ（修正プログラム提供者）にとっては、更新用サーバ等の設備を準備・運用するコストを要するなど、負担が大きい。 特に大きいベンダ（多数のユーザが使用するソフトウェアを提供するベンダ）の場合、更新用サーバ等の設備のコストも多大となる。また小さいベンダにとっては、大きいベンダのように設備等のコストはかけられない。
【０００６】
一方、ユーザ側でも、更新用サーバへのアクセス集中などによってソフトウェア更新（修正プログラム適用）に時間を要する。また、従来のシステムでは、ソフトウェアの修正プログラムの配布・提供は、ベンダごとに個別に様々な形で行われている。そのため、ユーザのＰＣ等にインストールされている複数及び各種のソフトウェアについて、それぞれ様々な形で提供されている修正プログラム等のデータ情報を参照・確認して更新する作業は、ユーザにとって負担が大きく、利便性が低い。
【０００７】
（３）  ソフトウェアのバージョンの自動更新（修正プログラムの自動適用）に関する先行技術例として、特開平８−２４９１６３号公報（特許文献１）などがある。
【０００８】
特許文献１（「ネットワークシステムのソフトウェアバージョン管理装置」）では、目的として、ネットワークに組み込まれているコンピュータのソフトウェアのバージョンアップ作業を自動的に行うと記載されている。装置の構成として、他のコンピュータの第１のソフトウェアのバージョン情報を受信し、自己の第２のソフトウェアのバージョン情報と比較して自己の第２のソフトウェアのバージョンアップが必要か否か判断し、必要の場合、第１のソフトウェアをダウンロードして第２のソフトウェアを第１のソフトウェアのバージョンになるようにバージョンアップする、といった構成が記載されている。効果として、ネットワークに組み込まれた複数のコンピュータ間でソフトウェアのバージョンが比較され、自己のソフトウェアが自動的に最新のバージョンにされること、サーバのソフトウェアがバージョンアップするとクライアントのソフトウェアがバージョンアップされること、等が記載されている。
【０００９】
（４）  コンピュータセキュリティに関する仕様として、米国ＮＩＳＴにおいて開発された、脆弱性対策の自動化を目的とした共通仕様である、ＳＣＡＰ（Security Content Automation Prtocol）（非特許文献１）がある。ＳＣＡＰでは、標準仕様として、ＣＶＥ（Common Vulnerability and Exposures：共通脆弱性識別子），ＣＣＥ（Common Configuration Enumeration：共通セキュリティ設定一覧），ＣＰＥ（Common Platform Enumeration：共通プラットフォーム一覧），ＣＶＳＳ（Common Vulnerability Scoring System：共通脆弱性評価システム），ＸＣＣＤＦ（ezXtensible Configuration Checklist Description Format：セキュリティ設定チェックリスト），ＯＶＡＬ（Open Vulnerability and Assesment Language：セキュリティ検査言語）などがある。
【００１０】
（５）  一方、ファイル共有型のＰ２Ｐ（Peer to Peer，ピアトゥーピア）の技術として各種のシステム（プロトコル等）が知られている。Ｐ２Ｐ技術の中には、Ｐ２ＰネットワークのＰ２Ｐノード間で互いにファイル（キャッシュ）を分散保有して共有利用し、インデックス情報を保有する方式などに応じて各種のＰ２Ｐシステム（ファイル共有型Ｐ２Ｐシステム）が存在する。ファイル共有型Ｐ２Ｐシステムの特定の実装技術や利用方法に関しては問題点（例えば著作権侵害コンテンツの放流）なども指摘されているが、技術的解決も進んでおり、一般的には有用な技術である。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平８−２４９１６３号公報
【非特許文献】
【００１２】
【非特許文献１】「セキュリティ設定共通化手順ＳＣＡＰ概説」,ＩＰＡ（独立行政法人情報処理推進機構），［インターネット］，［２０１１年１１月１日検索］，＜ＵＲＬ：http://www.jpa.go.jp/security/vuln/SCAP.html＞
【発明の概要】
【発明が解決しようとする課題】
【００１３】
前述のソフトウェア更新（修正プログラム提供・利用）に関する従来技術（前記特許文献１等を含む）では、ソフトウェアの自動的な更新（バージョンアップ等）を行う記載はあるが、修正プログラム提供者（ベンダ）及び修正プログラム利用者（ユーザ）の双方を含む、前述の更新（適用）の徹底性や迅速性の問題、ネットワーク負荷の問題、作業負担や利便性の問題、コストの問題などについては、改善余地がある。
【００１４】
まとめると、従来技術では、複数のベンダ、複数のユーザ、及び一般のネットワークを含めた環境における問題点（課題）として、以下が挙げられる。
【００１５】
（Ａ）ベンダ側の問題点：  適用の徹底性・迅速性の不足からユーザのＰＣ等のセキュリティレベルが低い状態になり、ソフトウェア及びベンダの印象も悪くする点がある。また、更新時のアクセス集中などによりベンダの更新用サーバやＬＡＮ等の負荷が高くなり、設備のコストが高くなる点がある。
【００１６】
ベンダ側としては、修正プログラムを迅速にユーザに配布・提供して適切に更新を実行してもらいたい。またその際、更新用サーバ等にあまり負担をかけず低コストで安全に配布・提供を実現したい。
【００１７】
（Ｂ）ユーザ側の問題点：  適用の徹底性・迅速性の不足からユーザのＰＣ等のセキュリティレベルが低い状態になり、ユーザの業務等に影響を与える点がある。ユーザの更新作業の負担、利便性の不足、安全性（信頼性）の不安などの点がある。
【００１８】
ユーザ側としては、更新（適用）の必要時には、迅速かつ確実に、かつ作業負担などをあまり感じずにわかりやすい操作にて実行し、ＰＣ等のセキュリティレベルを維持したい。
【００１９】
以上を鑑み、本発明の主な目的は、ベンダ−ユーザ間でのソフトウェアの修正プログラム等の提供−利用に関する情報処理システム等の技術において、修正プログラムの適用の迅速性、利便性、信頼性、セキュリティレベル維持、ネットワーク負荷低減、低コスト化など、効率的なソフトウェア更新（修正プログラム流通）を実現することができる技術を提供することである。
【課題を解決するための手段】
【００２０】
前記目的を達成するため、本発明のうち代表的な形態は、ベンダ−ユーザ間でのソフトウェアの修正プログラム等の提供−利用に関する情報処理システム（修正プログラム提供システム）等であって、以下に示す構成を有することを特徴とする。
【００２１】
本システムは、ベンダ−ユーザ間での修正プログラムの適用（自動更新等）に関するデータ情報の提供−利用の効率化（前述の適用の迅速性や利便性や負荷低減など）を実現する新たな独自のシステム（モデル等）として、Ｐ２Ｐ型の修正プログラム自動適用ネットワーク（修正プログラム提供Ｐ２Ｐネットワーク）を含んで構成する。インターネット上の所定のファイル共有型のＰ２Ｐネットワーク（既存のＰ２Ｐシステムを使用してもよいし独自のＰ２Ｐシステムを使用してもよい）上で修正プログラム流通に係わる特徴的な機能層を構成し、本Ｐ２Ｐネットワーク（機能層）で修正プログラム及び関連データ情報を効率的に流通する。複数の各ベンダや各ユーザが使用するサーバやＰＣ等の装置（コンピュータ）には、本特徴的な機能の処理を行うサブシステム（プログラム等）を設ける。
【００２２】
またインターネット上、複数のベンダ−ユーザ間に、本システム（機能層）によるサービスの処理を提供するプロバイダ（サービス提供会社）のシステムを介在・構築し、サービスの処理として、修正プログラム及び関連データ情報の提供に関する処理を行う。ベンダからプロバイダに対して関連データ情報などを提供し、初期にはプロバイダからユーザの装置へ関連データ情報などを提供する。これにより、複数のベンダ−ユーザにおける、負担軽減、低コストなどを実現する。
【００２３】
ユーザのＰＣ等を含むインターネット上の任意のコンピュータ（所定のＰ２Ｐ機能を持つ）を本システムのＰ２Ｐネットワークのノードとして参加可能とする。本Ｐ２Ｐノード間で、準拠するＰ２Ｐプロトコルに応じて、修正プログラム及び関連データ情報（自動更新等の判定を実現するための所定のデータ情報）を公開、転送、分散保有し、共用し、配布・流通を効率化する。
【００２４】
修正プログラムのリリース時など、最初は例えばベンダやプロバイダのサーバや少数のＰ２Ｐノードから修正プログラム及び関連データ情報を公開・配布するが、ユーザのＰＣ等での上記修正プログラムの適用に伴い、当該ユーザのＰＣ等をＰ２Ｐノードとして当該修正プログラム及び関連データ情報を本Ｐ２Ｐネットワークへ公開する。これにより、ユーザのノード間で修正プログラム及び関連データ情報を転送しあい更新（適用）が可能となる。即ち、更新を実行したノード数に応じて本Ｐ２Ｐネットワークで更新用データ情報を提供するノード数が増大し、更新用データ情報を効率的に展開（拡散）させることができる。
【００２５】
また、上記ファイル共有型Ｐ２Ｐ技術（Ｐ２Ｐ機能）の使用に伴い、データやその提供元の信頼性などを確保するために、ＰＫＩベースのデジタル署名技術などを組み合わせて用いて機能層／サービスを構築する。ユーザのＰＣ等では、対応するデジタル署名処理の機能（署名機能）を備え、本Ｐ２Ｐネットワークから修正プログラム及び関連データ情報を取得すると、取得したデータに付与されているデジタル署名を検証する処理を行う。これによりデータ・提供元の正当性を確認し、確認できた場合は、更新（適用）を実行し、確認できない場合は、更新（適用）を実行しない。
【００２６】
本システムは、特徴的な機能として、ユーザのＰＣ等における更新対象のソフトウェアの自動的な選択（第１の判定）の機能、及び対象ソフトウェアの修正プログラムの適用の要否などの自動的な判定（第２の判定）の機能がある。修正プログラムの関連データ情報を用いて上記第１、第２の判定処理などを制御する。関連データ情報は、ベンダまたはプロバイダが作成して本Ｐ２Ｐネットワークに対して公開・提供する。また、ユーザ装置での設定機能に応じて、自動更新（ユーザ確認操作を不要とする）や非自動更新（ユーザ確認操作を介在する）などを可能とし、ユーザの利便性を高める。
【００２７】
本システム形態は、例えば、ソフトウェアの修正プログラムを提供する複数の提供者の装置と、前記ソフトウェアの修正プログラムを利用する複数の利用者の装置と、前記提供者の装置と前記利用者の装置との間に介在するサービス提供会社の装置とが、ネットワークで接続される。前記提供者の装置は、前記修正プログラムの提供に関する処理を行う第１のサブシステムを有し、前記サービス提供会社の装置は、前記修正プログラムの提供と利用に介在するサービスに関する処理を行う第２のサブシステムを有し、前記利用者の装置は、前記修正プログラムの利用に関する処理を行う第３のサブシステムを有する。前記提供者、サービス提供会社、及び利用者の装置は、それぞれ、Ｐ２Ｐネットワークのノードとしてデータ情報を授受するＰ２Ｐ機能を有する。前記第２のサブシステムは、前記提供者からの情報に基づき、前記利用者の装置のソフトウェアにおける前記修正プログラムを適用する更新対象となるソフトウェアを選択する第１の判定処理のためのセキュリティ設定チェックリスト情報である第１の情報を作成して前記Ｐ２Ｐネットワークに公開・提供する処理を行う。前記第１のサブシステムは、前記利用者の装置のソフトウェアにおける前記更新対象ソフトウェアに対する前記修正プログラムの適用要否を判定する第２の判定処理のためのセキュリティ検査情報である第２の情報を作成し、前記修正プログラムのデータと前記第２の情報とを前記Ｐ２Ｐネットワークに公開・提供する処理を行う。前記第３のサブシステムは、前記Ｐ２ＰネットワークのいずれかのＰ２Ｐノードから前記第１の情報を取得し、前記第１の情報から当該利用者の装置における更新対象ソフトウェアを判定する第１の判定処理と、前記Ｐ２ＰネットワークのいずれかのＰ２Ｐノードから前記第２の情報を取得し、前記第２の情報から前記更新対象ソフトウェアに対する前記修正プログラムの適用要否を判定する第２の判定処理と、前記Ｐ２ＰネットワークのいずれかのＰ２Ｐノードから前記更新対象ソフトウェアの前記修正プログラムのデータを取得し、当該更新対象ソフトウェアに対する当該修正プログラムの適用を実行する処理と、前記適用を実行した前記更新対象ソフトウェアの前記修正プログラムのデータと、当該データに関連する前記第１の情報及び前記第２の情報を、前記Ｐ２Ｐネットワークに対して公開・提供する処理と、を行う。
【発明の効果】
【００２８】
本発明のうち代表的な形態によれば、ベンダ−ユーザ間でのソフトウェアの修正プログラム等の提供−利用に関する情報処理システム等の技術において、修正プログラムの適用の迅速性、利便性、信頼性、セキュリティレベル維持、ネットワーク負荷低減、低コスト化など、効率的なソフトウェア更新（修正プログラム流通）を実現することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施の形態のシステム（修正プログラム提供システム）の機能ブロック構成を示す図である。
【図２】本実施の形態のシステムのハードウェア構成例を示す図である。
【図３】本実施の形態のシステムでの複数の要素間の通信などの構成例を示す図である。
【図４】本実施の形態のシステムでのネットワーク階層構造やプロトコルなどを示す説明図である。
【図５】本実施の形態のシステムでの更新対象ソフトウェア選択（第１判定処理を含む）の処理シーケンス例を示す図である。
【図６】本実施の形態のシステムでの修正プログラム適用（第２判定処理を含む）の処理シーケンス例を示す図である。
【図７】本発明の他の実施の形態のシステムの構成及び処理例を示す図である。
【図８】本実施の形態のシステムでの各データ情報のファイルの関係（構成例）を示す図である。
【図９】本実施の形態のシステムでのＳＷデータテーブルの構成例を示す図である。
【図１０】本実施の形態のシステムでの拡張ＸＣＣＤＦデータ（ＸＭＬ文書）の構成例を示す図である。
【図１１】拡張ＸＣＣＤＦ作成機能（２１）の処理フロー例を示す図である。
【図１２】拡張ＸＣＣＤＦ送信機能（２２）の処理フロー例を示す図である。
【図１３】拡張ＸＣＣＤＦ取得機能（３１）及び拡張ＸＣＣＤＦ検証機能（３４）の処理フロー例を示す図である。
【図１４】ＯＶＡＬ取得機能（３２）及びＯＶＡＬ検証機能（３５）の処理フロー例を示す図である。
【図１５】修正プログラム取得機能（３３）及び修正プログラム検証機能（３６）の処理フロー例を示す図である。
【図１６】ＯＶＡＬ検証機能（３５）の詳細処理（Ｓ４０２）のフロー例を示す図である。
【図１７】修正プログラム検証機能（３６）の詳細処理（Ｓ５０４）のフロー例を示す図である。
【図１８】修正プログラム適用機能（３７）の処理フロー例を示す図である。
【発明を実施するための形態】
【００３０】
以下、図面に基づき、本発明の一実施の形態（修正プログラム提供システム等）について詳細に説明する。本実施の形態のシステムは、図１〜図４等の構成に基づき、図５，図６のようなシーケンスで処理を行い、図８〜図１０のようなデータ情報を処理する。図１１〜図１８は処理例を示す。
【００３１】
［モデル］
本システムでは、ユーザ装置で利用されているソフトウェアに関して脆弱性が発見された場合、この脆弱性を修正するための修正プログラムを、ベンダから提供してユーザ装置で迅速に適用してもらうための仕組みを、ベンダ−ユーザ間に介在するプロバイダによるサービスとして提供する。
【００３２】
本システムは、前述のＳＣＡＰの仕様（ＣＶＥ，ＣＣＥ，ＣＰＥ，ＣＶＳＳ，ＸＣＣＤＦ，ＯＶＡＬ等）を前提（準拠）として拡張し、ファイル共有型Ｐ２Ｐネットワーク上に、デジタル署名機能による信頼性確保の仕組みを備えつつ、修正プログラム及び関連データ情報の流通（提供−利用）に係わるオーバーレイネットワーク（機能層）を構築し、ベンダ−ユーザ間に介在するプロバイダによるサービスを提供する。
【００３３】
［システム（１）］
図１において、本実施の形態のシステム（修正プログラム提供システム、及び修正プログラム提供Ｐ２Ｐネットワーク）の機能ブロック構成を示している。本システム全体は、ベンダ（修正プログラム提供者）及びそのベンダ装置１と、プロバイダ（サービス提供会社）及びそのプロバイダ装置２と、ユーザ（修正プログラム利用者）及びそのユーザ装置３と、を含む要素がインターネット（ネットワーク）４で接続される構成である。ベンダ１やユーザ３は複数存在する。
【００３４】
ベンダ１、プロバイダ２、及びユーザ３の各装置は、例えばＰＣや携帯端末やサーバ装置などのコンピュータまたはそれを含んで成る情報処理システムであり、本システムの特有の機能を実現するための対応する各サブシステム（１０，２０，３０）が具備される。各サブシステム（１０，２０，３０）は、本実施の形態のプログラム等により実現される。各装置（１，２，３）は、本Ｐ２Ｐネットワーク（１００）を構成するＰ２Ｐノードとして適宜参加する（Ｐ２Ｐ機能７１〜７３を用いる）。
【００３５】
（１）  ベンダ装置１は、ベンダ用サブシステム１０、修正プログラムデータ９１、Ｐ２Ｐ機能７１、署名機能８１などを備える。ベンダ用サブシステム１０は、構成要素となる機能（処理部）として、ＯＶＡＬ作成機能１１、申請機能１２などを有し、記憶・管理・参照するデータ情報として、ＳＷ（ソフトウェア）データテーブル４１、ＯＶＡＬデータ４２、公開鍵（ベンダ公開鍵）４３などを有する。各機能はソフトウェアプログラム処理により実現される。
【００３６】
修正プログラムデータ９１は、ベンダ１が提供するソフトウェア９０（例：図３のＳＷａ）の修正プログラム（例：図３のＰ１）のデータである。なお９１は、各ソフトウェア、バージョン、脆弱性などに応じた複数の各データを有してもよい。
【００３７】
ＳＷデータテーブル４１では、ソフトウェア情報を管理するテーブルであり、当該ベンダ１に係わるソフトウェア（９０）、修正プログラム（９１）、バージョン、脆弱性、拡張ＸＣＣＤＦデータ（５２）、ＯＶＡＬデータ（４２）、等の対応関係の情報が管理される。
【００３８】
ＯＶＡＬデータ４２は、ある修正プログラムデータ９１に係わる、当該ベンダ１によりＯＶＡＬ作成機能１１を用いて作成された所定の形式（ＯＶＡＬ）のファイルである。ＯＶＡＬは、図３でも示すように、セキュリティ検査情報（修正プログラム適用判定用情報）である。
【００３９】
公開鍵４３は、デジタル署名の処理で用いる当該ベンダ１の公開鍵情報である。
【００４０】
ＯＶＡＬ作成機能１１は、ベンダ担当者の入力操作に基づき、修正プログラムデータ９１に関するＯＶＡＬデータ４２を作成する処理を行う。
【００４１】
申請機能１２は、ベンダ担当者の入力操作に基づき、プロバイダ２（受付機能２３）に対する利用申請処理などを行う（後述）。
【００４２】
（２）  プロバイダ装置２は、複数のベンダ１のソフトウェア（９０）の修正プログラム（９１）に関して、複数のユーザ３に対し、本Ｐ２Ｐネットワーク（１００）を通じて、修正プログラム及び関連データ情報の提供を含むサービス処理を行う。
【００４３】
プロバイダ２は、プロバイダ用サブシステム２０、Ｐ２Ｐ機能７２、署名機能８２などを備える。
【００４４】
プロバイダ用サブシステム２０は、機能（処理部）として、拡張ＸＣＣＤＦ作成機能２１、拡張ＸＣＣＤＦ送信機能２２、受付機能２３などを有し、データ情報として、ＳＷデータテーブル５１、拡張ＸＣＣＤＦデータ５２、秘密鍵５３、公開鍵５４などを有する。各機能はソフトウェアプログラム処理により実現される。
【００４５】
ＳＷデータテーブル５１は、ソフトウェア情報を管理するテーブルであり、複数の各ベンダ１のソフトウェア（９０）、修正プログラム（９１）、バージョン、脆弱性、拡張ＸＣＣＤＦデータ（５２）、ＯＶＡＬデータ（４２）、などの対応関係の情報が管理される（４１と概略同様）。
【００４６】
拡張ＸＣＣＤＦデータ５２は、ベンダ１ごと、修正プログラム（９１）ごとの情報として、拡張ＸＣＣＤＦ作成機能２１を用いて作成される所定の形式（拡張ＸＣＣＤＦ）のデータである。なおＸＣＣＤＦをもとに拡張した形式（拡張ＸＣＣＤＦ）を用いる。
【００４７】
秘密鍵５３及び公開鍵５４は、デジタル署名の処理で用いる当該プロバイダ２の秘密鍵情報及び公開鍵情報である。
【００４８】
拡張ＸＣＣＤＦ作成機能２１は、プロバイダ担当者の入力操作に基づき、拡張ＸＣＣＤＦデータ５２を作成する処理を行う。この際には、署名機能８２、秘密鍵５３、公開鍵５４を用いてデジタル署名を生成し拡張ＸＣＣＤＦデータ５２内に記述する処理を含む。
【００４９】
拡張ＸＣＣＤＦ送信機能２２は、Ｐ２Ｐ連携（Ｐ２Ｐ機能７２を使用）で上記の拡張ＸＣＣＤＦデータ５２を本Ｐ２Ｐネットワーク（１００）に対し送信（公開・提供等）する処理を行う。
【００５０】
受付機能２３は、インターネット４を介して、ベンダ１（申請機能１２）からの利用申請などを受け付け、利用受理の応答をする処理などを行う（人による作業を含む）。例えば、受付機能２３は、ベンダ１から、拡張ＸＣＣＤＦデータ５２を作成するために必要な情報を受信する処理を行う。
【００５１】
（３）  ユーザ装置３は、ユーザ用サブシステム３０、ソフトウェア９３、Ｐ２Ｐ機能７３、署名機能８３などを備える。
【００５２】
ソフトウェア９３は、ユーザ装置３にインストールされている、修正プログラム（９１）による更新（適用）の対象（候補）となるアプリケーションプログラム等である。
【００５３】
ユーザ用サブシステム３０は、機能（処理部）として、拡張ＸＣＣＤＦ取得機能３１、ＯＶＡＬ取得機能３２、修正プログラム取得機能３３、拡張ＸＣＣＤＦ検証機能３４、ＯＶＡＬ検証機能３５、修正プログラム検証機能３６、修正プログラム適用機能３７、Ｐ２Ｐ連携公開機能３８、設定機能３９などを有し、データ情報として、ＳＷデータテーブル６１、ベンダ公開鍵６２、プロバイダ公開鍵６３、拡張ＸＣＣＤＦデータ６４、ＯＶＡＬデータ６５、修正プログラムデータ６６などを有する。各機能はソフトウェアプログラム処理により実現される。なお、６４，６５，６６は、本Ｐ２Ｐネットワーク（１００）から取得したデータや公開するデータとして示している（５２，４２，９１と対応する）。
【００５４】
ＳＷデータテーブル６１は、ユーザ装置３におけるソフトウェア情報を管理するテーブルである。ベンダ公開鍵６２はベンダ１（４３）から取得した情報である。プロバイダ公開鍵６３はプロバイダ２（５４）から取得した情報である。
【００５５】
拡張ＸＣＣＤＦ取得機能３１は、Ｐ２Ｐ連携（Ｐ２Ｐ機能７３を使用）で、拡張ＸＣＣＤＦデータ５２（対応する６４）をプロバイダ２から取得（受信等）する処理、または他のＰ２Ｐノード（同データを公開しているユーザ装置３）から取得する処理を行う。
【００５６】
ＯＶＡＬ取得機能３２は、Ｐ２Ｐ連携（Ｐ２Ｐ機能７３を使用）で、ＯＶＡＬデータ４２（対応する６５）をベンダ装置１から取得する処理、または他のＰ２Ｐノード（同データを公開しているユーザ装置３）から取得する処理を行う。
【００５７】
修正プログラム取得機能３３は、Ｐ２Ｐ連携（Ｐ２Ｐ機能７３を使用）で、修正プログラムデータ９１（対応する６６）をベンダ装置１から取得する処理、または他のＰ２Ｐノード（同データを公開しているユーザ装置３）から取得する処理を行う。
【００５８】
拡張ＸＣＣＤＦ検証機能３４は、拡張ＸＣＣＤＦ取得機能３１により取得した拡張ＸＣＣＤＦデータ５２を、署名機能８３及びプロバイダ公開鍵６３を用いて、正当性を検証する処理を行う。
【００５９】
ＯＶＡＬ検証機能３５は、ＯＶＡＬ取得機能３２により取得したＯＶＡＬデータ４２を、対応する拡張ＸＣＣＤＦデータ（５２）を用いて、及び署名機能８３、プロバイダ公開鍵６３を用いて、正当性を検証する処理を行う。
【００６０】
修正プログラム検証機能３６は、修正プログラム取得機能３３により取得した修正プログラムデータ９１を、対応する拡張ＸＣＣＤＦデータ（５２）を用いて、及び署名機能８３、プロバイダ公開鍵６３を用いて、正当性を検証する処理を行う。
【００６１】
修正プログラム適用機能３７は、取得・検証済みの修正プログラムデータ９１を、更新対象ソフトウェア９０に対して適用を実行する処理を行う。
【００６２】
Ｐ２Ｐ連携公開機能３８は、取得・検証済みの各データ情報（５２，４２，９１）について、当該ユーザ装置３での適用の後に、自動的に、Ｐ２Ｐ連携（Ｐ２Ｐ機能７３を使用）で本Ｐ２Ｐネットワーク（１００）に対して公開・提供する処理を行う。例えばユーザ装置３の外部公開用のフォルダに、当該データ情報（６４，６５，６６）を格納し、外部のＰ２Ｐノード（他のユーザ装置３）に対して公開する。
【００６３】
設定機能３９は、各機能に関するユーザ設定処理を行う。例えば、後述の修正プログラム適用要否の判定（第２判定処理）に係わる緊急度（ＣＶＳＳ値）の閾値などを設定可能であり、自動更新させるか否かなどを設定できる。例えばユーザ装置３のディスプレイ画面でＷｅｂページ等のインタフェースで設定情報を表示し、ユーザの入力操作により設定可能である。
【００６４】
各要素（１，２，３）におけるＰ２Ｐ機能７１，７２，７３は、インターネット４上のＰ２Ｐネットワーク上（Ｐ２Ｐノード間）でＰ２Ｐ通信を含む処理を行う同様の機能であり、公知技術による既存のＰ２Ｐシステムをそのまま使用してもよいし、あるいは独自のＰ２Ｐシステムを実装して使用してもよい。Ｐ２Ｐ機能７１〜７３は、使用するＰ２Ｐシステムに応じた一般的な処理機能として、Ｐ２ＰネットワークにＰ２Ｐノードとして参加／離脱する処理機能、Ｐ２Ｐネットワーク（他Ｐ２Ｐノード）からデータ情報を検索して取得・受信する処理機能、及びＰ２Ｐネットワーク（他Ｐ２Ｐノード）へデータ情報を公開して転送・送信する処理機能などを含む。なお本明細書（実施の形態）ではＰ２Ｐとはファイル共有型Ｐ２Ｐを指し、実装（プロトコル等）は特に限定されない。
【００６５】
各要素（１，２，３）における署名機能８１，８２，８３は、公知技術によるＰＫＩベースのデジタル署名を含む処理を行う同様の機能であり、各要素に応じて秘密鍵や公開鍵の情報の処理や暗号化・復号化の処理などを含む。
【００６６】
［システム（２）］
図２は、図１のシステムのハードウェア構成例を示している。図２のベンダ装置１、プロバイダ装置２、及びユーザ装置３は、それぞれ、ＣＰＵ，ＲＡＭ，ＲＯＭ，ＨＤＤ（二次記憶装置），入力装置、出力装置、通信Ｉ/Ｆ（インタフェース）装置、及びバスなどの一般的な要素を有するコンピュータの構成である。各装置のＣＰＵは、ＲＯＭ，ＨＤＤ等からＲＡＭへ読み出したプログラム（本実施の形態のプログラム）及びデータを実行することにより、図１に示す各機能を実現する。ベンダ装置１のプログラムは、ベンダ用サブシステム１０等を実現するプログラムを含む。ベンダ装置１のデータは、図１の各種データ（４１〜４３，９１）を含む。プロバイダ装置２のプログラムは、プロバイダ用サブシステム２０等を実現するプログラムを含む。プロバイダ装置２のデータは、図１の各種データ（５１〜５４）を含む。ユーザ装置３のプログラムは、ユーザ用サブシステム３０等を実現するプログラムを含む。ユーザ装置３のデータは、図１の各種データ（６１〜６６）を含む。なお秘密情報などはセキュアに管理・処理される。
【００６７】
各入力装置は例えばキーボードやマウス及びそのインタフェース処理部である。各出力装置は例えばディスプレイ及びそのインタフェース処理部である。各通信Ｉ/Ｆ装置はインターネット４やＬＡＮに対する通信処理を行う。グラフィカルユーザインタフェースとなる表示画面の例としては、ベンダ装置１を使用するベンダ担当者がプロバイダ装置２に対して申請や各種情報の登録を行う画面、ＯＶＡＬデータ４２を作成し、本Ｐ２Ｐネットワーク（１００）にＯＶＡＬデータ４２や修正プログラムデータ９１を公開する画面などがある。また、プロバイダ装置２でプロバイダ担当者が拡張ＸＣＣＤＦデータ５２等を作成し本Ｐ２Ｐネットワーク（１００）に公開する画面などがある。またユーザ装置３でユーザが本Ｐ２Ｐネットワーク（１００）（ベンダ装置１やプロバイダ装置２や他のユーザ装置３）から各種データ情報を参照・取得する画面、ユーザ設定情報を設定する画面などがある。
【００６８】
［システム（３）］
図３では、図１のシステムの複数の要素（１，２，３）間の通信などの構成例を示す。インターネット４上の本システムのＰ２Ｐネットワーク（１００）において、ベンダ装置１とプロバイダ装置２とユーザ装置３とが必要に応じてＰ２Ｐで接続され通信する。図３では、例えばベンダＸ，Ｙ、ユーザＡ，Ｂ，Ｃ等を有する。例えば、ベンダＸ（１Ｘ）は、あるソフトウェアＳＷａ（９０）を提供（開発・販売等）している。ユーザＡ，Ｂ，Ｃ等の装置（３Ａ，３Ｂ，……）は、ベンダＸのソフトウェアＳＷａ（９３）をインストールしている。ベンダＸは、例えばある日時に、ＳＷａの脆弱性を解消してバージョンをＶ１．１からＶ１．２に更新するための修正プログラムＰ１（９１）をリリースする。この際、従来システムであれば、例えばベンダ装置（サーバ）と複数のユーザ装置との間でそれぞれ修正プログラムデータ等の授受の処理が必要であり負荷が大きい。
【００６９】
一方、本システムでは、ベンダ装置１と複数のユーザ装置３（３Ａ，３Ｂ等）との間にプロバイダ装置２を介在する構成である。プロバイダ装置２からベンダＸのソフトウェアＳＷａの修正プログラムＰ１の関連データ情報（拡張ＸＣＣＤＦデータ５２）を本Ｐ２Ｐネットワーク（１００）に対して公開（提供）し、ベンダＸからＳＷａの修正プログラムＰ１及び関連データ情報（ＯＶＡＬデータ４２）を本Ｐ２Ｐネットワーク（１００）に対して公開（提供）する。各ユーザ装置３は、本Ｐ２Ｐネットワーク（１００）から上記修正プログラムＰ１及び関連データ情報（５２，４２）を取得する。プロバイダ装置２及びベンダ装置１はそれぞれＰ２Ｐノードとして各データ情報をユーザ装置３へ転送する。例えばユーザＡ装置３Ａは、上記取得したデータ情報（５２，４２，Ｐ１）を用いて、自身のソフトウェアＳＷａ（９３）に対する修正プログラムＰ１の適用を自動的に実行することができる。上記処理の概要は以下である（詳細は図５，図６で後述）。
【００７０】
（１）まず、ユーザ装置３（そのサブシステム３０）は、セキュリティ設定チェックリスト情報（更新対象ソフトウェア判定用情報）のファイルである拡張ＸＣＣＤＦデータ５２｛例えばベンダＸに関する情報｝の参照により、自装置内のセキュリティ設定、複数のソフトウェア等の状態をチェックし、更新対象（修正プログラム適用対象）となるソフトウェアを自動的に選択（判定）する処理を行う（第１判定処理）。これにより例えばソフトウェアＳＷａ｛Ｖ１．１｝が更新対象として選択される。また第１判定処理の際、署名機能８３により、拡張ＸＣＣＤＦデータ５２のデジタル署名を検証することで、当該データ情報（５２）の正当性を検証し確認する。
【００７１】
（２）次に、ユーザ装置３（サブシステム３０）は、更新対象のソフトウェアＳＷａ｛Ｖ１．１｝に関して、拡張ＸＣＣＤＦデータ５２の参照をもとに、セキュリティ検査情報（修正プログラム適用判定用情報）のファイルであるＯＶＡＬデータ４２｛Ｐ１に関する情報｝を参照する。拡張ＸＣＣＤＦデータ５２内には対応するＯＶＡＬデータ４２の情報が記述されている（図１０等）。ユーザ装置３は、ＯＶＡＬデータ４２の参照から、更新対象ソフトウェアＳＷａに対する修正プログラムＰ１の適用の要否を自動的に判定する（第２判定処理）。例えば、当該更新（適用）の緊急度（ＣＶＳＳ値）が閾値（設定情報）よりも大きい場合、自動的に適用実行する（ユーザ確認操作不要）と決定し、そうでない場合は、自動的な適用実行はしない、あるいはユーザ確認操作に応じて適用する（ユーザが適用有無を選択できる）等と決定する。また第２判定処理の際、拡張ＸＣＣＤＦデータ５２を用いて当該データ情報（４２）の正当性を検証し確認する。
【００７２】
（３）上記確認後、上記ソフトウェアＳＷａの適用を実行する場合、ユーザ装置３（サブシステム３０）は、本Ｐ２Ｐネットワーク（１００）から取得した対応する修正プログラムＰ１（９１）を、更新対象ＳＷａ｛Ｖ１．１｝（９３）に対し適用を実行する（修正プログラム適用機能３７）。これにより例えばユーザＡ装置３ＡのソフトウェアＳＷａ｛Ｖ１．１｝が自動更新され最新バージョンＶ１．２の状態となる。また上記適用実行の際は、拡張ＸＣＣＤＦデータ５２を用いて当該データ情報（Ｐ１）の正当性を検証し確認する。
【００７３】
（４）上記修正プログラムＰ１の適用実行（ＳＷａ更新）の後、ユーザ装置３（サブシステム３０）は、Ｐ２Ｐノードとして、正当性検証済みである修正プログラムＰ１及び関連データ情報（５２，４２）を、本Ｐ２Ｐネットワーク（１００）に対して自動的に公開・提供する（Ｐ２Ｐ連携公開機能３８、６４〜６６）。これにより、他のユーザ装置３、例えばユーザＢ装置３Ｂは、本Ｐ２Ｐネットワーク（１００）の例えばユーザＡ装置３Ａから、上記データ情報（５２，４２，Ｐ１）を取得でき、ユーザＡ装置３Ａの場合と同様にユーザＢ装置３ＢでソフトウェアＳＷａ｛Ｖ１．１｝の更新を行うことができ、同様に、ユーザＢ装置３ＢがＰ２Ｐノードとして同データ情報を本Ｐ２Ｐネットワーク（１００）に公開・提供する。以降同様に、更新した各ユーザ装置３がＰ２Ｐノードとして同データ情報を本Ｐ２Ｐネットワーク（１００）に公開・提供する。インターネット４上、同データ情報を提供するＰ２Ｐノード群が増えてゆき、負荷分散の効果が得られる。また、他の各ベンダ１（例えばベンダＹ）、各ソフトウェア（例えばＳＷｂ）の修正プログラムについても同様にプロバイダ装置２を介して本Ｐ２Ｐネットワーク（１００）で効率的に流通させることができる。
【００７４】
［ネットワーク，プロトコル］
図４で、本システムのネットワーク構造や主なプロトコル（機能）などを示す。まずＡのようにインターネット４（ＴＣＰ／ＩＰ，Ｗｅｂ等）に接続されるベンダ装置１、プロバイダ装置２、ユーザ装置３があり、Ｗｅｂインタフェース等で通信可能である。Ａの上に、Ｂのように、公知技術（既存のＰ２Ｐプロトコル等）を用いたＰ２Ｐネットワーク（Ｐ２Ｐシステム）、及びＰＫＩベースのデジタル署名（公開鍵暗号方式を用いたデジタル署名）などの層がある。図１の各装置（１，２，３）は各Ｐ２Ｐ機能７１〜７３を用いて各Ｐ２Ｐノードとして通信可能である。各装置（１，２，３）は署名機能８１〜８３を用いてデジタル署名処理が可能である。そしてＢの上に、Ｃのように、本システムで特有の機能層（修正プログラム提供・利用機能などを実現する層）を有し、図１の各サブシステム（１０，２０，３０）を用いて構成される。Ｂ，Ｃの部分が、本システムで特有のＰ２Ｐネットワーク（オーバーレイネットワーク）である修正プログラム提供Ｐ２Ｐネットワーク（１００）に対応する。
【００７５】
本システム・Ｐ２Ｐネットワーク（１００）の持つ主なプロトコル（機能等）として以下がある。各要素（１，２，３）、サブシステム（１０，２０，３０）は、対応プロトコル（機能）の実装を持つ。
【００７６】
（ａ）情報共有プロトコル：
（ａ１）データ共有プロトコル：  リリース時のベンダ１及びプロバイダ２、あるいはＰ２Ｐ連携時のユーザ３が、各種データ情報（５２，４２，９１）を本Ｐ２Ｐネットワークで共有するために公開（登録、アップロード等）するプロトコルなど
（ａ２）データ検索プロトコル：  ユーザ３が各種データ情報（５２，４２，９１）を本Ｐ２Ｐネットワークから取得（ダウンロード等）するために検索するプロトコルなど（後述、図８等）（例えばファイル名（ハッシュ値）による検索）
（ａ３）データ転送プロトコル：  ベンダ１やプロバイダ２やＰ２Ｐ連携時のユーザ３が各種データ情報（５２，４２，９１）を本Ｐ２Ｐネットワークで取得要求者に対して転送（送信）するプロトコルなど。
【００７７】
（ｂ）セキュリティプロトコル：
（ｂ１）正当性確認プロトコル：  本Ｐ２Ｐネットワークから取得される各種データ情報（５２，４２，９１）（その提供元）の正当性（信頼性）を検証して確認するプロトコル（署名機能８１〜８３などに対応）
（ｂ２）自動適用確認プロトコル：  ユーザ設定（緊急度（ＣＶＳＳ値）の閾値など）に基づき、ソフトウェア更新（修正プログラム適用）を自動的に実行するか否か等を判定し、そのユーザ確認をするためのプロトコル（５２，４２、第１判定処理、第２判定処理などに対応）
（ｂ３）自動データ削除プロトコル：  ユーザ装置３（あるいはベンダ装置１やプロバイダ装置２でも可能）において、上記正当性が確認できないデータ情報を本Ｐ２Ｐネットワークから自動的に削除（破棄）するプロトコル（後述の各検証機能（３４〜３６）に含まれる削除処理に対応）。
【００７８】
上記各プロトコルは、Ｐ２Ｐ機能７１〜７３による準拠するＰ２Ｐプロトコルに応じた内容となる。また署名機能８１〜８３による準拠するＰＫＩなどに応じた内容となる。例えば準拠するＰ２Ｐプロトコルがファイルの二次放流を自動的に実行する仕組みである場合、本システムでは、前述のように、ユーザ装置３でＰ２Ｐ公開連携機能３８を用いて自動的に各データ情報（５２，４２，９１）を公開（二次放流）する。前提Ｐ２Ｐプロトコルが二次放流をしない仕組みである場合、本サブシステム及びＰ２Ｐ機能において、独自に同様の二次放流を行う仕組みを実装する。
【００７９】
［処理］
図５と図６を用いて本システムの処理シーケンスを説明する。本システムでの一連の処理は、大別すると以下の２つのフェーズから成る。即ち、（１）更新対象ソフトウェア選択フェーズ（図５、第１判定処理等）。（２）修正プログラム適用（又は確認）フェーズ（図６、第２判定処理等）。（１）第１フェーズの処理では、ユーザ装置３の複数のソフトウェア９３のうち、セキュリティ設定などに応じて、更新する対象（候補）となるソフトウェア９３を選択する（第１判定処理）。これは基本的に殆ど自動的に実行される。ユーザは、選択された更新対象ソフトウェアを画面で確認することができる。（２）第２フェーズの処理では、（１）の処理で更新対象として選択されたソフトウェア（９３）について、修正プログラム（９１）の適用の要否を判定し（第２の判定処理）、要のソフトウェアに対し修正プログラムの適用を実行する。これはユーザ設定（設定機能３９）に応じて、自動的な更新（ユーザ確認不要）とすることも可能であるし、ユーザにより画面で適用要否を選択・確認する操作を介在することも可能である。例えばユーザは最新バージョンよりも旧バージョンでの維持を望む場合、当該更新（適用実行）をキャンセルできる。
【００８０】
［処理（１）：更新対象ソフトウェア選択］
図５において、第１フェーズの処理として、更新対象（修正プログラム適用対象）ソフトウェア選択処理シーケンスについて示す。第１フェーズでは、大別して以下の手順（人の作業、コンピュータ処理等）を有する。
【００８１】
（Ａ）ベンダ１及びプロバイダ２による手順：
ベンダ１がプロバイダ２に利用申請を行い、修正プログラム（９１）等の配布に係わる必要なデータ情報を提供する（図５、Ｓ１，Ｓ２）。プロバイダ２はユーザ装置３に対し本Ｐ２Ｐネットワーク（１００）で関連データ情報（５２）を提供する（Ｓ４等）。
【００８２】
（Ｂ）一般企業などの第１のユーザ（例えばユーザＡ装置３Ａ）による手順：
第１のユーザ装置（３Ａ）が本Ｐ２Ｐネットワーク（プロバイダ２，ベンダ１）から自動的に取得した各データ情報（５２，４２）をもとに、自身の更新対象ソフトウェア９３を選択する（Ｓ５〜Ｓ７等）。その結果、自身（３Ａ）をＰ２Ｐノードとして本Ｐ２Ｐネットワーク（１００）に上記データ情報（５２）を自動的に公開する（Ｓ８）。
【００８３】
（Ｃ）第１のユーザ装置（３Ａ）からのデータ情報の転送先となる、一般企業などの第２のユーザ（例えばユーザＢ装置３Ｂ）による手順：
第２のユーザ装置（３Ｂ）が、本Ｐ２Ｐネットワーク（１００）の第１のユーザ装置（３Ａ）から、上記データ情報（５２）を取得し、同様に自身（３Ｂ）の更新対象ソフトウェアを選択する（Ｓ９〜Ｓ１１）。その結果、自身（３Ｂ）をＰ２Ｐノードとして本Ｐ２Ｐネットワーク（１００）に上記データ情報（５２）を自動的に公開する（Ｓ１２）。
【００８４】
なお第１のユーザ装置（３Ａ）と第２のユーザ装置（３Ｂ）とは特に関係が無い任意のユーザ装置３である。プロバイダ２やベンダ１からのデータ情報の取得ではなく、なるべくユーザ装置３（Ｐ２Ｐノード）からデータ情報を取得することにより、ネットワーク負荷分散の効果が高まる。
【００８５】
図５での処理手順（Ｓ１等で示す）を順に説明する。
【００８６】
（Ｓ１）  ベンダ装置１（申請機能１２）からプロバイダ装置２（受付機能２３）へ本システム（サービス）の利用申請、及び修正プログラム（９１）配布に係わる申請の手続き処理（通信や人的作業などを含む）を行う。この内容の詳細は特に限定されない。例えばベンダＸのソフトウェアＳＷａの修正プログラムＰ１に関する手続き処理が行われる。
【００８７】
（Ｓ２）  プロバイダ装置２からベンダ装置１へＳ１に対する受理応答の手続き処理を行う。申請元の信頼性が確認できない場合は受理しない。また例えばベンダ１からプロバイダ２へ拡張ＸＣＣＤＦデータ５２の作成に必要なデータ情報を提供する。
【００８８】
（Ｓ３）  プロバイダ装置２（拡張ＸＣＣＤＦ作成機能２１）は、担当者の操作により、対象ベンダ１（Ｘ）の情報をもとに、拡張ＸＣＣＤＦデータ５２（フォーマットは図１０）を作成する。この際、拡張ＸＣＣＤＦ（５２）のファイル内には、プロバイダ２（署名機能８２、秘密鍵５３）によるデジタル署名データ（５０１）が付与（記述）される。
【００８９】
（Ｓ４）  プロバイダ装置２（拡張ＸＣＣＤＦ送信機能２２）は、上記拡張ＸＣＣＤＦデータ５２（署名５０１付き）を、本Ｐ２Ｐネットワーク（１００）に公開する。即ちプロバイダ装置２が外部（ユーザ装置３）からのアクセス（取得要求）を受けた場合は当該データ（５２）を送信する。
【００９０】
（Ｓ５）  第１のユーザ装置３（例えば３Ａ）（拡張ＸＣＣＤＦ取得機能３１）は、本Ｐ２Ｐネットワーク（１００）のプロバイダ２から、上記拡張ＸＣＣＤＦデータ５２を取得する。なおユーザ装置３は、ベンダ１の公開鍵情報（４３）、プロバイダ２の公開鍵情報（５４）を事前に入手する（６２，６３）。例えば企業ＡのＬＡＮに接続されているユーザＡ装置３Ａは、ネットワーク接続などの際に、ＬＡＮのファイアウォールサーバ等を介して、プロバイダ２（Ｐ２Ｐノード）から、拡張ＸＣＣＤＦデータ５２を取得する。
【００９１】
（Ｓ６）  ユーザ装置３Ａ（拡張ＸＣＣＤＦ検証機能３４、署名機能８２）は、Ｓ５で取得した拡張ＸＣＣＤＦデータ５２について、付属の署名５０１を検証（プロバイダ公開鍵６３での復号化などの公知の処理）し、当該データ（５２）（その提供元であるプロバイダ２）の正当性を検証する。検証結果がＮＧ（失敗）（正当性を確認できない）の場合は、当該データ（５２）を破棄する。検証結果がＯＫ（成功）の場合、当該データ（５２）及びその提供元（プロバイダ２，ベンダ１）が信頼できることを示す。
【００９２】
（Ｓ７）  ユーザ装置３Ａ（３０）は、上記正当性確認済みの拡張ＸＣＣＤＦデータ５２（更新対象ソフトウェア判定用情報）を用いて（記述を解釈する処理を行うことにより）、自身における自動更新対象ソフトウェアを選択する（第１判定処理）。例えば自身のソフトウェアＳＷａ｛Ｖ１．１｝の特定の脆弱性の解消のためにＶ１．２へ更新すべきであると判断され、ＳＷａ｛Ｖ１．１｝が自動更新対象として選択される。
【００９３】
またＳ７の際、ユーザ装置３の画面に、拡張ＸＣＣＤＦデータ５２をもとに、ベンダ名、ソフトウェア名などの関連情報を表示し、ユーザにより自動更新対象ソフトウェアを確認することができる。
【００９４】
（Ｓ８）  ユーザ装置３Ａ（Ｐ２Ｐ連携公開機能３８）は、上記正当性確認済みの拡張ＸＣＣＤＦデータ５２を、所定の公開用フォルダなどで本Ｐ２Ｐネットワーク（１００）に公開する（６４）。この公開手順は、ユーザは意識する必要無く、本システムの一部として自動的に実施される。本システムでは、効率的なデータ情報の展開（拡散）を実現するため、このように転送準備の処理手順を有する。
【００９５】
（Ｓ９）  第２のユーザ装置３（同様に例えば企業ＢのＬＡＮに接続されるユーザＢ装置３Ｂ）（３１）は、本Ｐ２Ｐネットワーク（１００）の第１のユーザ装置（３Ａ）から、上記公開された拡張ＸＣＣＤＦデータ６４を取得する（３Ａから３Ｂへデータ（６４）を転送する）。なお特にプロバイダ２からではなく他のユーザ装置３（３Ａ）から優先して取得することで効率を高める。
【００９６】
（Ｓ１０）  第２のユーザ装置３Ｂ（３４，８２）は、Ｓ６と同様に、取得した拡張ＸＣＣＤＦデータ６４について、付属のデジタル署名データを検証して正当性を確認する。
【００９７】
（Ｓ１１）  第２のユーザ装置３Ｂは、Ｓ７と同様に、拡張ＸＣＣＤＦデータ６４を用いて、自身における自動更新対象ソフトウェアを選択する。
【００９８】
（Ｓ１２）  第２のユーザ装置３Ｂは、Ｓ８と同様に、拡張ＸＣＣＤＦデータ６４を本Ｐ２Ｐネットワーク（１００）に公開する。以降、他のユーザ装置３についても同様の繰り返しである。多数のユーザ装置３が同様データにアクセスする場合にも、本システムの多数のＰ２Ｐノードの公開データへアクセスされることになるため、ネットワーク全体で効率的にデータが流通され負荷分散される。提供元のベンダ１への負荷が少ない。
【００９９】
［処理（２）：修正プログラム適用］
図６において、第２フェーズの処理として、修正プログラム適用／確認処理シーケンスについて示す。第２フェーズでは、大別して以下の手順（作業、処理等）を有する。
【０１００】
（Ｄ）ベンダ１による手順：
ベンダ装置１（例えばＸ）では、担当者により、対象ソフトウェア９０（例えばＳＷａ）の修正プログラムデータ９１（例えばＰ１）に関するＯＶＡＬデータ４２を作成し、当該データ（９１，４２）を本Ｐ２Ｐネットワークに公開する（図６、Ｔ１〜Ｔ２）。
【０１０１】
（Ｅ）第１のユーザ（例えば３Ａ）による手順：
第１のユーザ装置（３Ａ）が、前記拡張ＸＣＣＤＦデータ５２（Ｓ５等）をもとに、ベンダ１からＯＶＡＬデータ４２及び修正プログラムデータ９１を取得し、正当性を確認後、自動更新対象ソフトウェア（前述）に対する修正プログラム（９１）の適用要否を判定し、要の場合は適用を実行する（Ｔ３〜Ｔ８）。その結果、自身（３Ａ）をＰ２Ｐノードとして、本Ｐ２Ｐネットワーク（１００）に上記適用済みの各データ情報（４２，９１）を自動的に公開する（Ｔ９）（６５，６６）。
【０１０２】
（Ｆ）転送先となる第２のユーザ（例えば３Ｂ）による手順：
第２のユーザ装置（３Ｂ）が、本Ｐ２Ｐネットワーク（１００）の第１のユーザ装置（３Ａ）から、上記データ情報（６５，６６）を取得し、同様に自身（３Ｂ）の更新対象ソフトウェア（９３）に対する修正プログラム（６６）の適用要否を判定し、要の場合は適用を実行し、その結果、自身（３Ｂ）をＰ２Ｐノードとして、本Ｐ２Ｐネットワーク（１００）に上記各データ情報（６５，６６）を自動的に公開する（Ｔ１０〜Ｔ１５）。
【０１０３】
図６での処理手順（Ｔ１等で示す）を順に説明する。
【０１０４】
（Ｔ１）  ベンダ装置１（ＯＶＡＬ作成機能１１）では、担当者の操作により、修正プログラムＰ１（９１）に関するＯＶＡＬデータ４２（修正プログラム適用判定用情報）を作成する。なお本例ではＯＶＡＬデータ４２の作成はＳ１の時に済ませる。ＯＶＡＬデータ４２（所定のファイル）の内容としては、特定の脆弱性を修正するための修正プログラム（Ｐ１）を適用する対象となるソフトウェア（ＳＷａ）のバージョンや確認箇所（例えばＯＳのレジストリ値の箇所など）などの情報が記述される。
【０１０５】
（Ｔ２）  ベンダ装置１（１０）は、修正プログラムＰ１のデータ（９１）と共に、そのＰ１に関するＯＶＡＬデータ４２を、本Ｐ２Ｐネットワーク（１００）へ公開する。なお当該データ（９１，４２）については、必ずしもプロバイダ２へ提供せずともよいが、事前にプロバイダ２へ提供することで、プロバイダ２はベンダ１からのＯＶＡＬデータの内容を確認することができる。
【０１０６】
（Ｔ３）  第１のユーザ装置３（例えば３Ａ）（ＯＶＡＬ取得機能３２）は、前述の対応する拡張ＸＣＣＤＦデータ５２内のＯＶＡＬ情報（図１０、１００４）に基づき、本Ｐ２Ｐネットワーク（１００）のベンダ装置１から、上記ＯＶＡＬデータ４２を取得する。ＯＶＡＬデータ４２のファイル名（ＯＶＡＬハッシュ値（Ｈｏ））をキーとして検索を実行すれば自動的に取得することができる。
【０１０７】
（Ｔ４）  ユーザ装置（３Ａ）（ＯＶＡＬ検証機能３５）は、上記取得したＯＶＡＬデータ４２について、対応する拡張ＸＣＣＤＦデータ５２を用いて、正当性を検証し確認する。この検証は、前記Ｓ６と同様の署名５０１を用いた処理、あるいは後述のハッシュ値比較処理による。当該検証結果がＮＧの場合は当該データ（４２）を破棄する。なお検証の際に当該ユーザ装置３Ａ内に当該ベンダ名に対応した公開鍵（６２）が無い場合は検証結果を失敗とみなす。
【０１０８】
（Ｔ５）  ユーザ装置（３Ａ）（３０、修正プログラム適用機能３７）は、上記正当性確認済みのＯＶＡＬデータ４２を用いて、自身（３Ａ）の自動更新対象ソフトウェア（第１フェーズで選択された例えばＳＷａ）のバージョンを確認し（例えばＶ１．１）、ユーザ設定に基づいて、当該ＳＷａに対する修正プログラムＰ１の適用の要否を判定する（第２判定処理）。例えば当該脆弱性に対する対策の必要の緊急度が高いため、当該ＳＷａ｛Ｖ１．１｝にＰ１を適用して最新バージョンＶ１．２に更新することが決定される。
【０１０９】
（Ｔ６）  ユーザ装置（３Ａ）（修正プログラム取得機能３３）は、上記要の場合、前述の対応する拡張ＸＣＣＤＦデータ５２内の修正プログラム情報に基づき、本Ｐ２Ｐネットワーク（１００）のベンダ１から、対応する修正プログラムＰ１のデータ（９１）を取得する。修正プログラムデータ９１のファイル名（修正プログラムハッシュ値（Ｈｐ））をキーとして検索を実行すれば自動的に取得することができる。
【０１１０】
（Ｔ７）  ユーザ装置（３Ａ）（修正プログラム検証機能３６）は、上記取得した修正プログラムＰ１のデータ（９１）について、対応する拡張ＸＣＣＤＦデータ５２を用いて、正当性を検証し確認する。この検証は、前記Ｓ６と同様の署名５０１を用いた処理、あるいは、後述のハッシュ値の比較処理による。当該検証結果がＮＧの場合は当該データ（９１）を破棄する。
【０１１１】
（Ｔ８）  ユーザ装置（３Ａ）（修正プログラム適用機能３７）は、上記正当性検証済みの各データ情報（４２，９１）を用いて、自動更新対象ソフトウェアＳＷａに対し修正プログラムＰ１の適用を実行する。これによりユーザ装置（３Ａ）のソフトウェアＳＷａが最新のバージョンＶ１．２の状態となる。
【０１１２】
（Ｔ９）  ユーザ装置（３Ａ）（Ｐ２Ｐ連携公開機能３８）は、上記正当性検証済みのデータ（４２，９１）を、所定の公開用フォルダなどで本Ｐ２Ｐネットワーク（１００）に公開する（６５，６６）。
【０１１３】
（Ｔ１０〜Ｔ１５）  一方、他の第２のユーザ装置３（例えば３Ｂ）は、本Ｐ２Ｐネットワーク（１００）の第１のユーザ装置（３Ａ）から、上記公開されたＯＶＡＬデータ６５及び修正プログラムデータ６６を取得する（Ｔ１０）。Ｔ１１以降はＴ４以降と同様に繰り返しである。
【０１１４】
［詳細処理例（１）］
図５での詳細処理例は以下である：
（Ｓ１，Ｓ２）  Ｓ１，Ｓ２の際には、例えば以下の情報をベンダ１からプロバイダ２へ通知する（図８）。対応して、ベンダ１はＳＷデータテーブル４１を読み書きし、プロバイダ２はＳＷデータテーブル５１を読み書きする。：
・ベンダ名（例えばＣＰＥベンダ名）
・ソフトウェア名（例えばＣＰＥソフトウェア名）
・修正プログラム名
・ＯＶＡＬファイル名。
【０１１５】
プロバイダ２はベンダ１へ例えば以下のような情報を応答する：
・修正プログラムハッシュ値（Ｈｐ）
・ＯＶＡＬハッシュ値（Ｈｏ）
・拡張ＸＣＣＤＦデータ５２（Ｈｏ，Ｈｐ）へ付与するデジタル署名値（５０１）。
【０１１６】
ベンダ１は、上記プロバイダ２からの情報を用いて例えば以下のような管理を行う。なおハッシュ値の生成は、プロバイダ２ではなくベンダ１で行ってもよい。
【０１１７】
・ＯＶＡＬデータ（４２）のファイル名として、上記ＯＶＡＬハッシュ値（Ｈｏ）を付ける。
【０１１８】
・修正プログラムデータ（９１）のファイル名として、上記修正プログラムハッシュ値（Ｈｐ）を付ける。
【０１１９】
プロバイダ２は自身のＳＷデータテーブル５２に上記情報を記載する（図９）。Ｓ１の申請を受けたプロバイダ２は、ＯＶＡＬ（４２）で利用するユニークＩＤ（ＯＶＡＬ＿ＩＤ）を採番し、ベンダ１へ通知する（ＳＷデータテーブル５２にも記載）。また初回利用の場合などには、ＣＰＥベンダ名、ＣＰＥソフトウェア名などを割り振り、ベンダ１へ通知する（ＳＷデータテーブル５２にも記載）。
【０１２０】
［詳細処理例（２）］
図６での詳細処理例は以下である：
（Ｔ８等）  ユーザ装置３Ａのプログラム（サブシステム３０）が自動的に修正プログラムの適用を判断・実行する場合に限らず、ユーザによる画面での確認操作や、更新キャンセル操作を介在させることができる。例えば設定機能３９により、予めユーザにより上記緊急度の判定に係わる閾値（ＣＶＳＳ値の閾値）などの情報（対応するポリシー情報など）を可変に設定可能が可能である。例えば拡張ＸＣＣＤＦデータ５２内に記述される情報項目の１つとしてＣＶＳＳ値（ＣＶＳＳに基づく所定の脆弱性項目に関する緊急度（深刻度など）の指標値）を有する。サブシステム３０は、このＣＶＳＳ値と閾値とを比較して閾値以上である場合、当該脆弱性への対処のための修正プログラムの適用に関する自動的な迅速な実行が必要（望ましい）と判定し、ユーザによる確認操作等を不要として、自動的に適用を実行する。閾値未満の場合、例えば自動実行はせずにペンディングし、後にユーザによる適用実行指示を受けた時に実行する。
【０１２１】
［ファイル］
図８は、本システムのＰ２Ｐネットワーク（１００）で各データ情報（拡張ＸＣＣＤＦデータ５２、ＯＶＡＬデータ４２、及び修正プログラムデータ９１）の検索（取得）を行うためのファイルの関連を示す。なお本システムでは、準拠するＰ２Ｐシステムに応じて、各データ（５２，４２，９１）のファイル名が所定の規則で付けられる。
【０１２２】
拡張ＸＣＣＤＦデータ５２のファイル（ＸＭＬ文書）において、中に、ファイル名（拡張ＸＣＣＤＦデータファイル名）、ＯＶＡＬハッシュ値（Ｈｏ）、修正プログラムハッシュ値（Ｈｐ）などが記述されている（詳細は図１０）。ファイル名は、例えばサービス名（プロバイダ名）、ＣＰＥベンダ名、“ＸＣＣＤＦ”（準拠仕様名）、等の組み合わせで構成される。ＯＶＡＬハッシュ値（Ｈｏ）は、ＯＶＡＬデータ４２（全体）のハッシュ値であり、本Ｐ２ＰネットワークでユニークＩＤである。修正プログラムハッシュ値（Ｈｐ）は、修正プログラムデータ９１（全体）のハッシュ値であり、本Ｐ２ＰネットワークでユニークＩＤである。ハッシュ値は所定のハッシュ関数の出力値である。
【０１２３】
ＯＶＡＬデータ４２のファイル（ＸＭＬ文書）では、ファイル名（ＯＶＡＬデータファイル名）として、例えば、ＣＰＥベンダ名、ＣＰＥソフトウェア名、ＯＶＡＬハッシュ値（Ｈｏ）、“ＯＶＡＬ”（準拠仕様名）、等の組み合わせで構成される。修正プログラムデータ９１のファイルでは、ファイル名（修正プログラムデータファイル名）の中に修正プログラムハッシュ値（Ｈｐ）が記述される。
【０１２４】
上記の関係のファイル名（ハッシュ値など）を用いて、本Ｐ２Ｐネットワーク（１００）のノード間で各データ情報の検索が可能である。ユーザ装置３は、例えばベンダ名及び“ＸＣＣＤＦ”をキーワードとして、該当ベンダ１に関する拡張ＸＣＣＤデータ５２（ベンダ１毎の情報）を取得可能である。なおベンダ名を指定しない場合は特定のベンダ１に依らない複数のソフトウェアに関する情報を網羅的に取得可能である。
【０１２５】
［ＳＷデータテーブル］
図９は、プロバイダ２におけるＳＷデータテーブル５１の構成例を示す。例えば本テーブルのレコードで、ＣＰＥ-ＩＤ（ベンダ、ソフトウェアに関するユニークＩＤ）、ソフトウェア名、修正プログラムハッシュ値（Ｈｐ）、ＯＶＡＬハッシュ値（Ｈｏ）、ハッシュ方式（使用するハッシュアルゴリズム等の指定。例えばＳＨＡ−２５６）、ＯＶＡＬ＿ＩＤなどの情報を管理する。
【０１２６】
［拡張ＸＣＣＤＦ］
図１０は、拡張ＸＣＣＤＦデータ５２（ＸＭＬ文書）のフォーマット構成（一部）を示す。本システムでは、Ｐ２Ｐネットワーク（１００）で拡張ＸＣＣＤＦデータ５２を流通・交換する。この拡張ＸＣＣＤＦデータ５２は、汎用性を考慮して、準拠仕様であるＸＣＣＤＦ（非特許文献１）を基礎として、テキストフィールドからなるＸＭＬ文書ファイルである。
【０１２７】
本ファイルでは、１００１で示すサービス記述部（タグ：“SCAP2P-document”）、及び１００８で示すデジタル署名記述部（タグ：“Signature”）を有する。サービス記述部（１００１）は、ＸＣＣＤＦ記述部（１００２）と、拡張記述部（１００３）とを含む。ＸＣＣＤＦ記述部（１００２）は、基礎となるＸＣＣＤＦの情報が記述される。拡張記述部（１００３）では、ＯＶＡＬ情報（１００４）、修正プログラム情報（１００６）などが記述される。ＯＶＡＬ情報（１００４）は、前記ＯＶＡＬハッシュ値（Ｈｏ）の情報を含む。修正プログラム情報（１００６）は、前記修正プログラムハッシュ値（Ｈｐ）の情報を含む。デジタル署名記述部（１００８）では、前記プロバイダ２により本拡張ＸＣＣＤＦデータ５２に対して付与されるデジタル署名（５０１）の情報を含む。また本ファイル（５２）内には、例えばＣＰＥベンダ名情報が含まれるので、この情報から対応するベンダ１の公開鍵４３を取得することが可能である。
【０１２８】
本システム（拡張ＸＣＣＤＦデータ５２）で準拠しているＸＣＣＤＦ（非特許文献１）は、セキュリティ設定チェックリスト情報の記述フォーマットであり、セキュリティ対策適用促進のためセキュリティ設定チェックリストなどの表現を共通化することが主旨である。例えば企業などの組織としてチェックすべき項目を用意し、パスワード有効期限などの具体的な項目をＣＣＥと共にリストアップし、ＸＣＣＤＦの仕様に沿ってチェックリストが作成される。例えばソフトウェアプログラム自身に内在する脆弱性について、「セキュリティ修正プログラム適用」項目として作成される。
【０１２９】
そして、本システムでは、上記ＸＣＣＤＦの拡張として、Ｐ２Ｐ機能や署名機能などに対応した独自の形式（「拡張ＸＣＣＤＦ」）としており、図１０の拡張記述部（１００３）やデジタル署名記述部（１００８）を有する。
【０１３０】
［ＯＶＡＬ］
本システム（ＯＶＡＬデータ４２）で準拠しているＯＶＡＬ（非特許文献１）では、脆弱性対策情報を、コンピュータ処理可能なＸＭＬベースのＯＶＡＬ言語で記述する。このＯＶＡＬ言語で作成された脆弱性対策情報（ＯＶＡＬデータ）は、そのデータを解釈するインタプリタであるクライアント側プログラム（本実施の形態でのサブシステム３０）を用いてコンピュータ処理され、脆弱性対策のための確認処理作業が自動化される。
【０１３１】
［処理（２１）］
図１１は、プロバイダ装置２の拡張ＸＣＣＤＦ作成機能２１による処理例を示す。
【０１３２】
（Ｓ１０１）  拡張ＸＣＣＤＦ作成機能２１は、ＳＷデータテーブル５１を参照しながら、ベンダ１（ＳＷデータテーブル４１）からのソフトウェア情報を入力し、ＳＷデータテーブル５１に記載する。
【０１３３】
（Ｓ１０２）  ２１は、Ｓ１０１の入力情報を用いてＸＣＣＤＦファイル（５２）の基礎部分（図１０のＸＣＣＤＦ記述部（１００２）等）の情報を作成する。
【０１３４】
（Ｓ１０３）  ２１は、ＸＣＣＤＦファイル（５２）における拡張部分（図１０の拡張記述部（１００３）等）の情報を記述する。当該記述情報は、前述のハッシュ値（Ｈｏ，Ｈｐ）を含む。
【０１３５】
（Ｓ１０４）  ２１は、プロバイダ秘密鍵５３情報を入力（読み出し）する。
【０１３６】
（Ｓ１０５）  ２１は、署名機能８２により、プロバイダ秘密鍵５３情報を用いたデジタル署名値（５０１）を生成し、ＸＣＣＤＦファイル（５２）の署名記述部（１００８）に格納する。
【０１３７】
（Ｓ１０６）  ２１は、Ｓ１０５までで作成したファイルを拡張ＸＣＣＤＦデータ５２として記憶部に保存する。
【０１３８】
［処理（２２）］
図１２は、プロバイダ装置２の拡張ＸＣＣＤＦ送信機能２２等による処理例を示す。
【０１３９】
（Ｓ２０１）  拡張ＸＣＣＤＦ送信機能２２は、上記拡張ＸＣＣＤＦ作成機能２１により作成・保存された拡張ＸＣＣＤＦデータ５２を入力する。
【０１４０】
（Ｓ２０２）  ２２は、上記拡張ＸＣＣＤＦデータ５２を、Ｐ２Ｐ機能７２に受け渡す（公開指示）。
【０１４１】
（Ｓ２０３）  Ｐ２Ｐ機能７２は、上記拡張ＸＣＣＤＦデータ５２を本Ｐ２Ｐネットワーク（１００）へ公開する。
【０１４２】
（Ｓ２０４）  ７２は、ユーザ装置３（拡張ＸＣＣＤＦ取得機能３１）からデータ（５２）の取得要求を受けた場合、当該データ（５２）をユーザ装置３へ転送（送信）する。
【０１４３】
［処理（３１，３４）］
図１３は、ユーザ装置３の拡張ＸＣＣＤＦ取得機能３１及び拡張ＸＣＣＤＦ検証機能３４による処理例を示す。
【０１４４】
（Ｓ３０１）  拡張ＸＣＣＤＦ取得機能３１は、Ｐ２Ｐ機能７３を用いて、本Ｐ２Ｐネットワーク（１００）から拡張ＸＣＣＤＦデータ５２を取得する。例えば初期はプロバイダ装置２から取得され、ある程度時間経過後には他のユーザ装置３（Ｐ２Ｐノード）から取得可能となる。
【０１４５】
（Ｓ３０２）  ３１は、取得した拡張ＸＣＣＤＦデータ５２に付属しているデジタル署名値（図５の５０１）を参照し、署名機能８３により、対応するプロバイダ公開鍵６３を用いて復号を試みることで、当該拡張ＸＣＣＤＦ（５２）の正当性を検証する。
【０１４６】
（Ｓ３０３〜Ｓ３０５）  検証結果がＯＫの場合（Ｙｅｓ）、当該拡張ＸＣＣＤＦデータ５２（署名５０１付き）を記憶部（非公開領域）に保存し（Ｓ３０４）、ＮＧの場合（Ｎｏ）、当該データ（５２）を破棄する（Ｓ３０５）。
【０１４７】
上記データ（５２）の保存の後の時点で、Ｐ２Ｐ連携公開機能３８により、当該拡張ＸＣＣＤＦデータ５２（署名５０１付き）を公開用の記憶部に格納することで、本Ｐ２Ｐネットワーク（１００）に公開する。
【０１４８】
［処理（３２，３５）］
図１４は、ユーザ装置３のＯＶＡＬ取得機能３２及びＯＶＡＬ検証機能３５による処理例を示す。
【０１４９】
（Ｓ４０１）  ＯＶＡＬ取得機能３２は、前記取得済みの拡張ＸＣＣＤＦデータ５２に記述されているＯＶＡＬ情報（図１０の１００４）をもとに、Ｐ２Ｐ機能７３を用いて、本Ｐ２Ｐネットワーク（１００）から、更新対象ソフトウェア（修正プログラム）に応じたＯＶＡＬデータ４２を取得する。例えば初期はベンダ装置１から取得され、ある程度時間経過後には他のユーザ装置３（Ｐ２Ｐノード）から取得できる。
【０１５０】
（Ｓ４０２）  ＯＶＡＬ検証機能３５は、前記取得済みの拡張ＸＣＣＤＦデータ５２と、対応するＳ４０１で取得されたＯＶＡＬデータ４２とを入力し、拡張ＸＣＣＤＦデータ５２の情報の参照に基づき、当該ＯＶＡＬデータ４２の正当性を検証する処理を行う（図１６）。
【０１５１】
（Ｓ４０３）  ＯＶＡＬ取得機能３２は、上記検証済み（ＯＫ）のＯＶＡＬデータ４２を記憶部（非公開領域）に保存する。
【０１５２】
上記データ（４２）の保存の後の時点で、Ｐ２Ｐ連携公開機能３８により、当該ＯＶＡＬデータ４２を公開用の記憶部に格納することで、本Ｐ２Ｐネットワーク（１００）に公開する。
【０１５３】
［処理（３３，３６）］
図１５は、ユーザ装置３の修正プログラム取得機能３３及び修正プログラム検証機能３６による処理例を示す。
【０１５４】
（Ｓ５０１〜Ｓ５０３）  修正プログラム取得機能３３は、ＳＷデータテーブル６１に記載されている更新対象ソフトウェア情報を入力する。３３は、この情報から、更新対象ソフトウェアの有無を判断する。更新対象ソフトウェアが有る場合（Ｙｅｓ）、３３は、前記取得済みの拡張ＸＣＣＤＦデータ５２に記述されている情報（１００６）をもとに、Ｐ２Ｐ機能７３を用いて、本Ｐ２Ｐネットワーク（１００）から、該当の更新対象ソフトウェアに応じた修正プログラムデータ９１を取得する（Ｓ５０３）。例えば初期はベンダ装置１から取得され、ある程度時間経過後には他のユーザ装置３（Ｐ２Ｐノード）から取得できる。
【０１５５】
（Ｓ５０４）  修正プログラム検証機能３６は、前記取得済みの拡張ＸＣＣＤＦデータ５２と、対応するＳ５０３で取得された修正プログラムデータ９１とを入力し、拡張ＸＣＣＤＦデータ５２の情報の参照に基づき、当該修正プログラムデータ９１の正当性を検証する処理を行う（図１７）。
【０１５６】
（Ｓ５０５）  ３６は、上記検証済み（ＯＫ）の修正プログラムデータ９１を記憶部（非公開領域）に保存する。
【０１５７】
上記データ（９１）の保存の後の時点で、Ｐ２Ｐ連携公開機能３８により、当該修正プログラムデータ９１を公開用の記憶部に格納することで、本Ｐ２Ｐネットワーク（１００）に公開する。
【０１５８】
［処理（３５）］
図１６は、ＯＶＡＬ検証機能３５によるＯＶＡＬデータ４２の検証（図１４、Ｓ４０２）の処理例を示す。
【０１５９】
（Ｓ６０１）  ＯＶＡＬ検証機能３５は、前記拡張ＸＣＣＤＦデータ５２及びＯＶＡＬデータ４２を入力する。
【０１６０】
（Ｓ６０２）  ３５は、拡張ＸＣＣＤＦデータ５２の中（１００５）から、ＯＶＡＬハッシュ値（Ｈｏ１とする）を抽出する。
【０１６１】
（Ｓ６０３）  ３５は、ＯＶＡＬデータ４２をハッシュ関数の入力として、ＯＶＡＬハッシュ値（Ｈｏ２とする）を計算する。
【０１６２】
（Ｓ６０４〜Ｓ６０７）  ３５は、上記Ｓ６０２の抽出ハッシュ値（Ｈｏ１）と、上記Ｓ６０３の計算ハッシュ値（Ｈｏ２）とを比較する。一致（ＯＫ）の場合（Ｙｅｓ）、正当性が確認できたので、当該ＯＶＡＬデータ４２として記憶部に保存し（Ｓ６０６）、不一致（ＮＧ）の場合（Ｎｏ）、当該データを破棄する（Ｓ６０７）。
【０１６３】
（Ｓ６０８）  また３５は、上記一致（ＯＫ）の場合、当該ＯＶＡＬデータ４２に対応したソフトウェア９３が自動更新対象となるため、ＳＷデータテーブル６１に、当該更新対象ソフトウェア情報を保存する。
【０１６４】
［処理（３６）］
図１７は、修正プログラム検証機能３６による修正プログラムデータ９１の検証（図１５、Ｓ５０４）の処理例を示す。
【０１６５】
（Ｓ７０１）  修正プログラム検証機能３６は、前記拡張ＸＣＣＤＦデータ５２及び修正プログラムデータ９１を入力する。
【０１６６】
（Ｓ７０２）  ３６は、拡張ＸＣＣＤＦデータ５２の中（１００６）から、修正プログラムハッシュ値（Ｈｐ１とする）を抽出する。
【０１６７】
（Ｓ７０３）  ３６は、修正プログラムデータ９１をハッシュ関数の入力として、修正プログラムハッシュ値（Ｈｐ２とする）を計算する。
【０１６８】
（Ｓ７０４〜Ｓ７０７）  ３６は、上記Ｓ７０２の抽出ハッシュ値（Ｈｐ１）と、上記Ｓ７０３の計算ハッシュ値（Ｈｐ２）とを比較する。一致（ＯＫ）の場合（Ｙｅｓ）、正当性が確認できたので、当該修正プログラムデータ９１として記憶部に保存し（Ｓ７０６）、不一致（ＮＧ）の場合（Ｎｏ）、当該データを破棄する（Ｓ７０７）。
【０１６９】
［処理（３７）］
図１８は、ユーザ装置３の修正プログラム適用機能３７による処理例を示す。
【０１７０】
（Ｓ８０１）  修正プログラム適用機能３７は、対象ソフトウェアに対応した拡張ＸＣＣＤＦデータ５２及びＯＶＡＬデータ４２を入力する。
【０１７１】
（Ｓ８０２）  ３７は、上記入力データ（５２，４２）を用いて、対象ソフトウェア（９３）の修正プログラム（９１）のバージョンを確認する（特にＯＶＡＬデータ４２情報をもとに修正プログラム適用要否を判定する）。最新バージョンである場合（自ユーザ装置３側のソフトウェア９３が旧バージョン、修正プログラム（９１）側が最新バージョンに対応する場合）（Ｙｅｓ）、当該修正プログラム（９１）の適用が基本的に必要である。適用必要の場合、３７は、ＳＷデータテーブル６１から、更新対象ソフトウェア情報を入力する。
【０１７２】
（Ｓ８０３〜Ｓ８０８）  ３７は、上記更新対象ソフトウェア情報から、対象ソフトウェア（対応する修正プログラム）毎のＣＶＳＳ値（緊急度）と、その閾値（設定情報）とを抽出する。なお前述のように設定機能３９により閾値が設定されているとする。ここで、［ＣＶＳＳ値］≧［閾値］の場合（Ｙｅｓ）、３７は、当該ソフトウェア（９３）に対し当該修正プログラム（９１）を自動的に適用実行することと決定し（Ｓ８０７）、［ＣＶＳＳ値］＜［閾値］の場合（Ｎｏ）、適用実行しないこと（ユーザ確認操作への移行など）と決定する（Ｓ８０９）。
【０１７３】
上記適用実行の場合、３７は、対象ソフトウェア（９３）に対する修正プログラム（９１）の適用を実行し、対象ソフトウェアを最新バージョンの状態にする（Ｓ８０７）。そして、Ｐ２Ｐ公開連携機能３８の処理へ連携する（Ｓ８０８）。
【０１７４】
［効果等］
以上説明したように、本実施の形態のシステムによれば、複数のベンダ１−ユーザ３間で、プロバイダ２及び本Ｐ２Ｐネットワーク（１００）を介して、ソフトウェア（９３）の修正プログラム（９１）等の提供−利用に係わるサービスを提供し、ユーザ装置３での修正プログラム（９１）の適用の迅速性、利便性、信頼性、セキュリティレベル維持、ネットワーク負荷低減、低コスト化など、効率的なソフトウェア更新（修正プログラム流通）を実現することができる。
【０１７５】
ベンダ１側としては、修正プログラム（９１）を迅速にユーザ３に配布・提供して適切に更新を実行してもらうことができる。またその際、ベンダ１の更新用サーバ等に負担をかけず低コストで安全に配布・提供を実現できる。ユーザ３側としては、更新（適用）の必要時には、迅速かつ確実に、かつ作業負担などをあまり感じずにわかりやすい操作にて実行し、ＰＣ等のセキュリティレベルを維持することができる。
【０１７６】
Ｐ２Ｐ機能を用いた仕組みにより、ベンダ１の数やユーザ３の数に対応できる拡張性、ネットワーク負荷分散性能を持つ。また、署名機能を用いてデータ及び提供元の正当性を確認する仕組み、及び正当性を確認できないファイルを自動的に破棄する削除機能を持たせることにより、既存のＰ２Ｐプロトコルを用いたとしても、信頼性を確保できる。仮に偽のデータ情報（５２，４２，９１）が放流されたとしても、上記仕組みにより防止することができる。
【０１７７】
［他の実施の形態］
図７は、他の実施の形態のシステム構成及び処理シーケンスを示す。本形態は、基本構成は前述の形態（図１等）と同様であるが、本Ｐ２Ｐネットワーク（１００）に更に他のＰ２Ｐノード（７０１，Ｎ１〜Ｎ３等）が追加された構成である。例えば企業ＡのＬＡＮ３００Ａ内に、インターネット４に接続されるファイアウォールサーバ（ＦＷ）を介して、複数のユーザ装置３（前述の３Ａを含む）と、プロキシサーバ（情報公開用装置）７０１とが接続されている。各Ｐ２ＰノードＮ１〜Ｎ３及びプロキシサーバ７０１は専用のサブシステム（Ｐ２Ｐ連携公開機能３８などを含む前述同様の機能）を具備する。各Ｐ２ＰノードＮ１〜Ｎ３は任意のノードであり（個人ノード、企業ノード、公共的ノードなど）、各データ情報の中継ノードとなる。
【０１７８】
例えばＰ２ＰノードＮ１は、プロバイダ２から公開された拡張ＸＣＣＤＦデータ５２を取得して保有し公開している。例えばユーザＡ装置３Ａは、Ｎ１から拡張ＸＣＣＤＦデータ５２を取得する。また、Ｐ２ＰノードＮ２は、ベンダ１から公開されたＯＶＡＬデータ４２及び修正プログラムデータ９１を取得して保有し公開している。例えばユーザＡ装置３Ａは、Ｎ２からＯＶＡＬデータ４２及び修正プログラムデータ９１を取得する。
【０１７９】
また、例えばユーザＡ装置３Ａで取得して検証済みの各データ情報（５２，４２，９１）を、ユーザＡ装置３Ａではなく、プロキシサーバ７０１にてＰ２Ｐネットワーク（１００）に公開する（６４，６５，６６）。前記Ｐ２Ｐ連携公開機能３８を用いて、ユーザＡ装置３Ａからプロキシサーバ７０１へ各データ（６４，６５，６６）を転送する。
【０１８０】
またＰ２ＰノードＮ３は、プロキシサーバ７０１で公開された各データ情報（６４，６５，６６）を取得して保有し公開している。また例えば企業ＢのＬＡＮ３００Ｂに接続されているユーザＢ装置３Ｂは、Ｎ３から各データ情報（６４，６５，６６）を取得することができる。
【０１８１】
また図７の構成に限らず、例えば企業ＡのＬＡＮ３００Ａ内のプロキシサーバ７０１（あるいはファイアウォールサーバ（ＦＷ）等）で、企業ＡのＬＡＮ３００Ａ内に接続される複数の各ユーザ装置３のソフトウェア更新に関する各データ情報（４２，５２，９１）の取得及び公開などをすべてとりまとめて行う構成としてもよい。即ちプロキシサーバ７０１は、企業Ａ（ＬＡＮ３００Ａ）に関する統合的なソフトウェア更新管理を担当する。プロキシサーバ７０１は、各ユーザ装置３のソフトウェア情報をまとめてＳＷデータテーブルに管理する。プロキシサーバ７０１は、外部のＰ２Ｐネットワーク（１００）のノードから適宜各種データ情報（５２，４２，９１）を取得し、所定の記憶部に保存する（６４，６５，６６）。各ユーザ装置３は、自身のソフトウェア９３に関する更新管理のために適宜プロキシサーバ７０１にアクセスする。そして、プロキシサーバ７０１との間で各種データ情報（６４，６５，６６）を用いて前述同様の処理を行う。そして、プロキシサーバ７０１は、検証済みの各種データ情報（６４，６５，６６）を本Ｐ２Ｐネットワーク（１００）に対し所定の公開用フォルダで公開する。
【０１８２】
［変形例］
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。他の実施の形態（変形例）として以下が挙げられる。
【０１８３】
（１）  プロバイダ２から、拡張ＸＣＣＤＦ（５２）だけでなく、ＯＶＡＬ（４２）、修正プログラム（９１）等を含む一連のデータセット全部をまとめて管理し提供する形態としてもよい。主にプロバイダ２にサーバ設備を準備し、ベンダ１は自前で設備を準備・運用するコストが低減される。
【０１８４】
（２）  修正プログラム（９１）のリリース時（初期）のみ、本Ｐ２Ｐネットワーク（１００）ではなく、既存のクライアント・サーバ方式などの通信で提供してもよい。その後、ユーザ装置３間で本Ｐ２Ｐネットワーク（１００）を通じてデータを授受する。
【０１８５】
（３）  前述のＰ２Ｐ連携公開機能３８に関し、各データ情報の提供元（公開元）の第１のユーザ装置（例えば３Ａ）と提供先の第２のユーザ装置（例えば３Ｂ）とに、特定の関係性を持たせ連携させるようにしてもよい。例えば特定の個人同士、特定の企業同士で優先して連携するように設定可能とする。
【産業上の利用可能性】
【０１８６】
本発明は、通信ネットワーク上のソフトウェア更新（修正プログラム配布）のシステムなどに利用可能である。
【符号の説明】
【０１８７】
１…ベンダ装置（ベンダ）、２…プロバイダ装置（プロバイダ）、３…ユーザ装置（ユーザ）、４…インターネット、１０…ベンダ用サブシステム、１１…ＯＶＡＬ作成機能、１２…申請機能、２０…プロバイダ用サブシステム、２１…拡張ＸＣＣＤＦ作成機能、２２…拡張ＸＣＣＤＦ送信機能、２３…受付機能、３０…ユーザ用サブシステム、３１…拡張ＸＣＣＤＦ取得機能、３２…ＯＶＡＬ取得機能、３３…修正プログラム取得機能、３４…拡張ＸＣＣＤＦ検証機能、３５…ＯＶＡＬ検証機能、３６…修正プログラム検証機能、３７…修正プログラム適用機能、３８…Ｐ２Ｐ連携公開機能、３９…設定機能、４１，５１，６１…ＳＷ（ソフトウェア）データテーブル、４２…ＯＶＡＬデータ、４３…公開鍵、５２…拡張ＸＣＣＤＦデータ、５３…秘密鍵、５４…公開鍵、６２…ベンダ公開鍵、６３…プロバイダ公開鍵、６４…拡張ＸＣＣＤＦデータ、６５…ＯＶＡＬデータ、６６…修正プログラムデータ、７１，７２，７３…Ｐ２Ｐ機能、８１，８２，８３…署名機能、９０，９３…ソフトウェア、９１…修正プログラムデータ、１００…修正プログラム提供システム（修正プログラム提供Ｐ２Ｐネットワーク）。
【図１】
0005438140.tif 000002
【図２】
0005438140.tif 000003
【図３】
0005438140.tif 000004
【図４】
0005438140.tif 000005
【図５】
0005438140.tif 000006
【図６】
0005438140.tif 000007
【図７】
0005438140.tif 000008
【図８】
0005438140.tif 000009
【図９】
0005438140.tif 000010
【図１０】
0005438140.tif 000011
【図１１】
0005438140.tif 000012
【図１２】
0005438140.tif 000013
【図１３】
0005438140.tif 000014
【図１４】
0005438140.tif 000015
【図１５】
0005438140.tif 000016
【図１６】
0005438140.tif 000017
【図１７】
0005438140.tif 000018
【図１８】
0005438140.tif 000019