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

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

▶ 三菱電機株式会社の特許一覧

特許7685940ウェブ会議システム、クライアント装置、クライアントプログラム、サーバ装置、およびサーバプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-05-22
(45)【発行日】2025-05-30
(54)【発明の名称】ウェブ会議システム、クライアント装置、クライアントプログラム、サーバ装置、およびサーバプログラム
(51)【国際特許分類】
   H04L 9/08 20060101AFI20250523BHJP
   H04L 9/32 20060101ALI20250523BHJP
【FI】
H04L9/08 B
H04L9/08 E
H04L9/32 200D
【請求項の数】 13
(21)【出願番号】P 2021196392
(22)【出願日】2021-12-02
(65)【公開番号】P2023082548
(43)【公開日】2023-06-14
【審査請求日】2024-05-24
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110002491
【氏名又は名称】弁理士法人クロスボーダー特許事務所
(72)【発明者】
【氏名】山口 晃由
(72)【発明者】
【氏名】鈴木 大輔
【審査官】酒井 大門
(56)【参考文献】
【文献】特開平08-256145(JP,A)
【文献】特開2002-290940(JP,A)
【文献】特開2019-047430(JP,A)
【文献】特開2005-311527(JP,A)
【文献】特表2014-530554(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/00- 9/40
(57)【特許請求の範囲】
【請求項1】
ウェブ会議に参加する複数のクライアント装置を備え、
前記複数のクライアント装置のそれぞれは、
前記ウェブ会議に1番目に参加したときに、前記ウェブ会議でのメッセージの通信に用いられる通信鍵を生成して保管し、
前記ウェブ会議に2番目以降に参加したときに、前記ウェブ会議に参加中で親クライアントになったクライアント装置と鍵共有を行い、前記親クライアントからの暗号化済み通信鍵を受信し、前記親クライアントとの共有鍵を用いて前記暗号化済み通信鍵から前記通信鍵を復号し、前記通信鍵を保管し、
前記ウェブ会議に参加中で子クライアントとの前記鍵共有を行っていない場合、前記ウェブ会議に新たに参加したクライアント装置を前記子クライアントにして前記鍵共有を行い、保管中の前記通信鍵をハッシュ化によって更新し、更新済みで保管中の前記通信鍵を前記子クライアントとの共有鍵を用いて暗号化し、前記子クライアントに対して暗号化済み通信鍵を送信し、前記親クライアントに対して参加通知を送信し、
前記子クライアントからの参加通知を受信した場合、保管中の前記通信鍵を前記ハッシュ化によって更新する
ウェブ会議システム。
【請求項2】
前記ウェブ会議に参加済みの各クライアント装置は、
前記ウェブ会議から離脱したときに、前記親クライアントと前記子クライアントのそれぞれに対して離脱通知を送信し、
前記ウェブ会議に参加中の各クライアント装置は、
前記親クライアントの離脱通知を受信した場合、前記親クライアントに対する親クライアントを新たな親クライアントにして前記新たな親クライアントと前記鍵共有を行い、前記新たな親クライアントからの暗号化通信鍵を受信し、前記新たな親クライアントとの共有鍵を用いて前記暗号化通信鍵から新たな通信鍵を復号し、保管中の前記通信鍵の代わりに前記新たな通信鍵を保管し、前記新たな通信鍵を前記子クライアントとの前記共有鍵を用いて暗号化し、前記子クライアントに対して暗号化通信鍵を送信し、
前記親クライアントからの暗号化通信鍵を受信した場合、前記親クライアントとの前記共有鍵を用いて前記暗号化通信鍵から新たな通信鍵を復号し、保管中の前記通信鍵の代わりに前記新たな通信鍵を保管し、
前記子クライアントの離脱通知を受信した場合、前記子クライアントに対する子クライアントを新たな子クライアントにして前記新たな子クライアントと前記鍵共有を行い、新たな通信鍵を生成して保管中の前記通信鍵の代わりに保管し、前記新たな通信鍵を前記新たな子クライアントとの共有鍵を用いて暗号化し、前記新たな子クライアントに対して暗号化通信鍵を送信する
請求項1に記載のウェブ会議システム。
【請求項3】
前記ウェブ会議に参加中の各クライアント装置は、
前記ウェブ会議からの離脱済みを確認するための確認要求を受信した場合、前記確認要求に対する確認応答を送信し、
任意のタイミングになったときに、前記確認要求を送信し、前記ウェブ会議に参加中のクライアント装置からの前記確認応答を受信し、前記ウェブ会議から離脱済みでなく前記確認応答の送信元でないクライアント装置を離脱済みクライアントとして検出し、前記離脱済みクライアントの離脱通知を送信する
請求項2に記載のウェブ会議システム。
【請求項4】
前記複数のクライアント装置のそれぞれは、前記親クライアントと前記子クライアントのいずれかが前記ウェブ会議から離脱しない限り他のクライアント装置と前記鍵共有を行わない
請求項1から請求項3のいずれか1項に記載のウェブ会議システム。
【請求項5】
前記ウェブ会議システムは、サーバ装置を備え、
前記複数のクライアント装置のそれぞれは、前記ウェブ会議に参加するときに、参加要求クライアントになって識別コードを示す参加要求を前記サーバ装置へ送信し、
前記サーバ装置は、
前記ウェブ会議に1番目に参加する参加要求クライアントの参加要求を受信した場合、受信した参加要求に示される識別コードを前記ウェブ会議のメンバーリストと照合し、照合結果に基づいて前記参加要求クライアントの参加可否を判定し、判定結果を示す参加応答を前記参加要求クライアントへ送信し、
前記ウェブ会議に2番目以降に参加する参加要求クライアントの参加要求を受信した場合、前記参加要求クライアントのための認証要求を前記ウェブ会議に参加中の全てのクライアント装置へ送信し、
前記ウェブ会議に参加中の各クライアント装置は、
前記認証要求を受信したときに子クライアントとの前記鍵共有を行っていない場合、前記参加要求クライアントから送信される署名付き交換鍵を受信し、前記署名付き交換鍵の署名を検証し、前記署名付き交換鍵の前記署名が正しい場合に前記参加要求クライアントを前記子クライアントにして前記交換鍵を用いて前記鍵共有を行う
請求項1から請求項4のいずれか1項に記載のウェブ会議システム。
【請求項6】
前記複数のクライアント装置のいずれかは、前記メンバーリストを生成し、署名付きメンバーリストを前記サーバ装置へ送信し、
前記サーバ装置は、前記署名付きメンバーリストを受信し、前記署名付きメンバーリストの署名を検証し、前記署名付きメンバーリストの前記署名が正しい場合に前記メンバーリストを保管し、
前記複数のクライアント装置のそれぞれは、前記サーバ装置から前記メンバーリストを受信し、前記メンバーリストを修正し、署名付き修正済みリストを前記サーバ装置へ送信し、
前記サーバ装置は、前記署名付き修正済みリストを受信し、前記署名付き修正済みリストの署名を検証し、前記署名付き修正済みリストの前記署名が正しい場合に保管中の前記メンバーリストを前記修正済みリストで更新する
請求項5に記載のウェブ会議システム。
【請求項7】
前記ウェブ会議システムは、認証局装置を備え、
前記サーバ装置は、前記複数のクライアント装置のそれぞれの前記識別コードを生成し、前記複数のクライアント装置のそれぞれに前記識別コードを送信し、
前記複数のクライアント装置のそれぞれは、前記識別コードを受信し、署名鍵ペアを生成し、署名公開鍵と前記識別コードを示す証明書要求を前記認証局装置へ送信し、
前記認証局装置は、前記証明書要求を受信し、前記証明書要求に示される前記識別コードを示す照会要求を前記サーバ装置へ送信し、
前記サーバ装置は、前記照会要求を受信し、前記照会要求に示される前記識別コードを前記複数のクライアント装置のそれぞれの前記識別コードと照合し、照合結果を示す照会応答を前記認証局装置へ送信し、
前記認証局装置は、前記照会応答を受信し、前記照会要求に示される前記識別コードが前記複数のクライアント装置のいずれかの前記識別コードである場合に前記証明書要求に示される前記署名公開鍵を含む電子証明書を前記証明書要求の送信元であるクライアント装置のために発行する
請求項5または請求項6に記載のウェブ会議システム。
【請求項8】
請求項1から請求項7のいずれか1項に記載のウェブ会議システムで使用されるクライアント装置。
【請求項9】
請求項8に記載のクライアント装置としてコンピュータを機能させるためのクライアントプログラム。
【請求項10】
請求項に記載のウェブ会議システムで使用されるサーバ装置であり、
複数のクライアント装置のいずれかは、ウェブ会議のメンバーリストを生成し、署名付きメンバーリストを前記サーバ装置へ送信し、
前記サーバ装置は、前記署名付きメンバーリストを受信し、前記署名付きメンバーリストの署名を検証し、前記署名付きメンバーリストの前記署名が正しい場合に前記メンバーリストを保管し、
前記複数のクライアント装置のそれぞれは、前記サーバ装置から前記メンバーリストを受信し、前記メンバーリストを修正し、署名付き修正済みリストを前記サーバ装置へ送信し、
前記サーバ装置は、前記署名付き修正済みリストを受信し、前記署名付き修正済みリストの署名を検証し、前記署名付き修正済みリストの前記署名が正しい場合に保管中の前記メンバーリストを前記修正済みリストで更新し、
前記複数のクライアント装置のそれぞれは、前記ウェブ会議に参加するときに、参加要求クライアントになって識別コードを示す参加要求を前記サーバ装置へ送信し、
前記サーバ装置は、
前記ウェブ会議に1番目に参加する参加要求クライアントの参加要求を受信した場合、受信した参加要求に示される識別コードを前記メンバーリストと照合し、照合結果に基づいて前記参加要求クライアントの参加可否を判定し、判定結果を示す参加応答を前記参加要求クライアントへ送信し、
前記ウェブ会議に2番目以降に参加する参加要求クライアントの参加要求を受信した場合、前記参加要求クライアントのための認証要求を前記ウェブ会議に参加中の全てのクライアント装置へ送信し、
前記ウェブ会議に参加中の各クライアント装置は、前記認証要求を受信したときに子クライアントとの前記鍵共有を行っていない場合、前記参加要求クライアントから送信される署名付き交換鍵を受信し、前記署名付き交換鍵の署名を検証し、前記署名付き交換鍵の前記署名が正しい場合に前記参加要求クライアントを前記子クライアントにして前記交換鍵を用いて前記鍵共有を行い、
前記複数のクライアント装置のそれぞれは、
前記ウェブ会議に1番目に参加したときに、前記ウェブ会議でのメッセージの通信に用いられる通信鍵を生成して保管し、
前記ウェブ会議に2番目以降に参加したときに、前記ウェブ会議に参加中で親クライアントになったクライアント装置と鍵共有を行い、前記親クライアントからの暗号化済み通信鍵を受信し、前記親クライアントとの共有鍵を用いて前記暗号化済み通信鍵から前記通信鍵を復号し、前記通信鍵を保管し、
前記ウェブ会議に参加中で子クライアントとの前記鍵共有を行っていない場合、前記ウェブ会議に新たに参加したクライアント装置を前記子クライアントにして前記鍵共有を行い、保管中の前記通信鍵をハッシュ化によって更新し、更新済みで保管中の前記通信鍵を前記子クライアントとの共有鍵を用いて暗号化し、前記子クライアントに対して暗号化済み通信鍵を送信し、前記親クライアントに対して参加通知を送信し、
前記子クライアントからの参加通知を受信した場合、保管中の前記通信鍵を前記ハッシュ化によって更新する。
【請求項11】
請求項に記載のウェブ会議システムで使用されるサーバ装置であり、
前記サーバ装置は、複数のクライアント装置のそれぞれの識別コードを生成し、前記複数のクライアント装置のそれぞれに前記識別コードを送信し、
前記複数のクライアント装置のそれぞれは、前記識別コードを受信し、署名鍵ペアを生成し、署名公開鍵と前記識別コードを示す証明書要求を前記認証局装置へ送信し、
認証局装置は、前記証明書要求を受信し、前記証明書要求に示される前記識別コードを示す照会要求を前記サーバ装置へ送信し、
前記サーバ装置は、前記照会要求を受信し、前記照会要求に示される前記識別コードを前記複数のクライアント装置のそれぞれの前記識別コードと照合し、照合結果を示す照会応答を前記認証局装置へ送信し、
前記認証局装置は、前記照会応答を受信し、前記照会要求に示される前記識別コードが前記複数のクライアント装置のいずれかの前記識別コードである場合に前記証明書要求に示される前記署名公開鍵を含む電子証明書を前記証明書要求の送信元であるクライアント装置のために発行し、
前記複数のクライアント装置のそれぞれは、前記ウェブ会議に参加するときに、参加要求クライアントになって識別コードを示す参加要求を前記サーバ装置へ送信し、
前記サーバ装置は、
前記ウェブ会議に1番目に参加する参加要求クライアントの参加要求を受信した場合、受信した参加要求に示される識別コードを前記ウェブ会議のメンバーリストと照合し、照合結果に基づいて前記参加要求クライアントの参加可否を判定し、判定結果を示す参加応答を前記参加要求クライアントへ送信し、
前記ウェブ会議に2番目以降に参加する参加要求クライアントの参加要求を受信した場合、前記参加要求クライアントのための認証要求を前記ウェブ会議に参加中の全てのクライアント装置へ送信し、
前記ウェブ会議に参加中の各クライアント装置は、前記認証要求を受信したときに子クライアントとの前記鍵共有を行っていない場合、前記参加要求クライアントから送信される署名付き交換鍵を受信し、前記署名付き交換鍵の署名を検証し、前記署名付き交換鍵の前記署名が正しい場合に前記参加要求クライアントを前記子クライアントにして前記交換鍵を用いて前記鍵共有を行い、
前記複数のクライアント装置のそれぞれは、
前記ウェブ会議に1番目に参加したときに、前記ウェブ会議でのメッセージの通信に用いられる通信鍵を生成して保管し、
前記ウェブ会議に2番目以降に参加したときに、前記ウェブ会議に参加中で親クライアントになったクライアント装置と鍵共有を行い、前記親クライアントからの暗号化済み通信鍵を受信し、前記親クライアントとの共有鍵を用いて前記暗号化済み通信鍵から前記通信鍵を復号し、前記通信鍵を保管し、
前記ウェブ会議に参加中で子クライアントとの前記鍵共有を行っていない場合、前記ウェブ会議に新たに参加したクライアント装置を前記子クライアントにして前記鍵共有を行い、保管中の前記通信鍵をハッシュ化によって更新し、更新済みで保管中の前記通信鍵を前記子クライアントとの共有鍵を用いて暗号化し、前記子クライアントに対して暗号化済み通信鍵を送信し、前記親クライアントに対して参加通知を送信し、
前記子クライアントからの参加通知を受信した場合、保管中の前記通信鍵を前記ハッシュ化によって更新する。
【請求項12】
請求項10に記載のサーバ装置としてコンピュータを機能させるためのサーバプログラムであり、
複数のクライアント装置のいずれかは、ウェブ会議のメンバーリストを生成し、署名付きメンバーリストを前記サーバ装置へ送信し、
前記サーバ装置は、前記署名付きメンバーリストを受信し、前記署名付きメンバーリストの署名を検証し、前記署名付きメンバーリストの前記署名が正しい場合に前記メンバーリストを保管し、
前記複数のクライアント装置のそれぞれは、前記サーバ装置から前記メンバーリストを受信し、前記メンバーリストを修正し、署名付き修正済みリストを前記サーバ装置へ送信し、
前記サーバ装置は、前記署名付き修正済みリストを受信し、前記署名付き修正済みリストの署名を検証し、前記署名付き修正済みリストの前記署名が正しい場合に保管中の前記メンバーリストを前記修正済みリストで更新し、
前記複数のクライアント装置のそれぞれは、前記ウェブ会議に参加するときに、参加要求クライアントになって識別コードを示す参加要求を前記サーバ装置へ送信し、
前記サーバ装置は、
前記ウェブ会議に1番目に参加する参加要求クライアントの参加要求を受信した場合、受信した参加要求に示される識別コードを前記メンバーリストと照合し、照合結果に基づいて前記参加要求クライアントの参加可否を判定し、判定結果を示す参加応答を前記参加要求クライアントへ送信し、
前記ウェブ会議に2番目以降に参加する参加要求クライアントの参加要求を受信した場合、前記参加要求クライアントのための認証要求を前記ウェブ会議に参加中の全てのクライアント装置へ送信し、
前記ウェブ会議に参加中の各クライアント装置は、前記認証要求を受信したときに子クライアントとの前記鍵共有を行っていない場合、前記参加要求クライアントから送信される署名付き交換鍵を受信し、前記署名付き交換鍵の署名を検証し、前記署名付き交換鍵の前記署名が正しい場合に前記参加要求クライアントを前記子クライアントにして前記交換鍵を用いて前記鍵共有を行い、
前記複数のクライアント装置のそれぞれは、
前記ウェブ会議に1番目に参加したときに、前記ウェブ会議でのメッセージの通信に用いられる通信鍵を生成して保管し、
前記ウェブ会議に2番目以降に参加したときに、前記ウェブ会議に参加中で親クライアントになったクライアント装置と鍵共有を行い、前記親クライアントからの暗号化済み通信鍵を受信し、前記親クライアントとの共有鍵を用いて前記暗号化済み通信鍵から前記通信鍵を復号し、前記通信鍵を保管し、
前記ウェブ会議に参加中で子クライアントとの前記鍵共有を行っていない場合、前記ウェブ会議に新たに参加したクライアント装置を前記子クライアントにして前記鍵共有を行い、保管中の前記通信鍵をハッシュ化によって更新し、更新済みで保管中の前記通信鍵を前記子クライアントとの共有鍵を用いて暗号化し、前記子クライアントに対して暗号化済み通信鍵を送信し、前記親クライアントに対して参加通知を送信し、
前記子クライアントからの参加通知を受信した場合、保管中の前記通信鍵を前記ハッシュ化によって更新する。
【請求項13】
請求項11に記載のサーバ装置としてコンピュータを機能させるためのサーバプログラムであり、
前記サーバ装置は、複数のクライアント装置のそれぞれの識別コードを生成し、前記複数のクライアント装置のそれぞれに前記識別コードを送信し、
前記複数のクライアント装置のそれぞれは、前記識別コードを受信し、署名鍵ペアを生成し、署名公開鍵と前記識別コードを示す証明書要求を前記認証局装置へ送信し、
認証局装置は、前記証明書要求を受信し、前記証明書要求に示される前記識別コードを示す照会要求を前記サーバ装置へ送信し、
前記サーバ装置は、前記照会要求を受信し、前記照会要求に示される前記識別コードを前記複数のクライアント装置のそれぞれの前記識別コードと照合し、照合結果を示す照会応答を前記認証局装置へ送信し、
前記認証局装置は、前記照会応答を受信し、前記照会要求に示される前記識別コードが前記複数のクライアント装置のいずれかの前記識別コードである場合に前記証明書要求に示される前記署名公開鍵を含む電子証明書を前記証明書要求の送信元であるクライアント装置のために発行し、
前記複数のクライアント装置のそれぞれは、前記ウェブ会議に参加するときに、参加要求クライアントになって識別コードを示す参加要求を前記サーバ装置へ送信し、
前記サーバ装置は、
前記ウェブ会議に1番目に参加する参加要求クライアントの参加要求を受信した場合、受信した参加要求に示される識別コードを前記ウェブ会議のメンバーリストと照合し、照合結果に基づいて前記参加要求クライアントの参加可否を判定し、判定結果を示す参加応答を前記参加要求クライアントへ送信し、
前記ウェブ会議に2番目以降に参加する参加要求クライアントの参加要求を受信した場合、前記参加要求クライアントのための認証要求を前記ウェブ会議に参加中の全てのクライアント装置へ送信し、
前記ウェブ会議に参加中の各クライアント装置は、前記認証要求を受信したときに子クライアントとの前記鍵共有を行っていない場合、前記参加要求クライアントから送信される署名付き交換鍵を受信し、前記署名付き交換鍵の署名を検証し、前記署名付き交換鍵の前記署名が正しい場合に前記参加要求クライアントを前記子クライアントにして前記交換鍵を用いて前記鍵共有を行い、
前記複数のクライアント装置のそれぞれは、
前記ウェブ会議に1番目に参加したときに、前記ウェブ会議でのメッセージの通信に用いられる通信鍵を生成して保管し、
前記ウェブ会議に2番目以降に参加したときに、前記ウェブ会議に参加中で親クライアントになったクライアント装置と鍵共有を行い、前記親クライアントからの暗号化済み通信鍵を受信し、前記親クライアントとの共有鍵を用いて前記暗号化済み通信鍵から前記通信鍵を復号し、前記通信鍵を保管し、
前記ウェブ会議に参加中で子クライアントとの前記鍵共有を行っていない場合、前記ウェブ会議に新たに参加したクライアント装置を前記子クライアントにして前記鍵共有を行い、保管中の前記通信鍵をハッシュ化によって更新し、更新済みで保管中の前記通信鍵を前記子クライアントとの共有鍵を用いて暗号化し、前記子クライアントに対して暗号化済み通信鍵を送信し、前記親クライアントに対して参加通知を送信し、
前記子クライアントからの参加通知を受信した場合、保管中の前記通信鍵を前記ハッシュ化によって更新する。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ウェブ会議システムに関するものである。
【背景技術】
【0002】
ウェブ会議システムにおいて、メッセージが暗号化され各参加者に送信される。メッセージ通信用の暗号鍵は、暗号化され各参加者に送信される。
非特許文献1には、各参加者が参加者全員と2者間鍵共有を行うことが記載されている。
【0003】
n者がウェブ会議に参加すると回の鍵共有が必要となる。鍵共有には多大なコストがかかるため、鍵共有の回数をできるだけ減らす必要がある。
【先行技術文献】
【非特許文献】
【0004】
【文献】Paul Rosler, et.al., “More is Less: On the End-to-End Security of Group Chats in Signal, WhatsApp, and Threema”, 2018 IEEE European Symposium on Security and Privacy (EuroS&P)
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示は、ウェブ会議の各参加者が、少ない回数の2者間鍵共有によって、メッセージ通信用の暗号鍵を取得できるようにすることを目的とする。
【課題を解決するための手段】
【0006】
本開示のウェブ会議システムは、
ウェブ会議に参加する複数のクライアント装置を備える。
前記複数のクライアント装置のそれぞれは、
前記ウェブ会議に1番目に参加したときに、前記ウェブ会議でのメッセージの通信に用いられる通信鍵を生成して保管し、
前記ウェブ会議に2番目以降に参加したときに、前記ウェブ会議に参加中で親クライアントになったクライアント装置と鍵共有を行い、前記親クライアントからの暗号化通信鍵を受信し、前記親クライアントとの共有鍵を用いて前記暗号化通信鍵から前記通信鍵を復号し、前記通信鍵を保管し、
前記ウェブ会議に参加中で子クライアントとの前記鍵共有を行っていない場合、前記ウェブ会議に新たに参加したクライアント装置を前記子クライアントにして前記鍵共有を行い、保管中の前記通信鍵をハッシュ化によって更新し、更新済みで保管中の前記通信鍵を前記子クライアントとの共有鍵を用いて暗号化し、前記子クライアントに対して暗号化通信鍵を送信し、前記親クライアントに対して参加通知を送信し、
前記子クライアントからの参加通知を受信した場合、保管中の前記通信鍵を前記ハッシュ化によって更新する。
【発明の効果】
【0007】
本開示によれば、ウェブ会議の各参加者(クライアント装置)が、親となる参加者と子となる参加者との2回の2者間鍵共有によって、メッセージ通信用の暗号鍵(通信鍵)を取得することができる。
【図面の簡単な説明】
【0008】
図1】実施の形態1におけるウェブ会議システム100の構成図。
図2】実施の形態1におけるクライアント装置200の構成図。
図3】実施の形態1におけるクライアント装置200の機能構成図。
図4】実施の形態1におけるサーバ装置300の構成図。
図5】実施の形態1における認証局装置400の構成図。
図6】実施の形態1における準備処理および登録処理のフローチャート。
図7】実施の形態1における準備処理のフローチャート。
図8】実施の形態1における登録処理のフローチャート(1/2)。
図9】実施の形態1における登録処理のフローチャート(2/2)。
図10】実施の形態1における設定処理(概要)のフローチャート。
図11】実施の形態1における設定処理(具体例)のフローチャート(1/2)。
図12】実施の形態1における設定処理(具体例)のフローチャート(2/2)。
図13】実施の形態1における署名付きメンバーリスト111を示す図。
図14】実施の形態1における修正済みメンバーリスト112を示す図。
図15】実施の形態1における参加処理および離脱処理の概要図。
図16】実施の形態1における参加処理および離脱処理のデータフロー図。
図17】実施の形態1における参加処理のフローチャート(1/4)。
図18】実施の形態1における参加処理のフローチャート(2/4)。
図19】実施の形態1における参加処理のフローチャート(3/4)。
図20】実施の形態1における参加処理のフローチャート(4/4)。
図21】実施の形態1における離脱処理のフローチャート(1/2)。
図22】実施の形態1における離脱処理のフローチャート(2/2)。
図23】実施の形態1における通信処理のフローチャート。
図24】実施の形態2におけるクライアント装置200の構成図。
図25】実施の形態2における検知部270の構成図。
図26】実施の形態2におけるサーバ装置300の構成図。
図27】実施の形態2における検知処理のデータフロー図。
図28】実施の形態2における検知処理のフローチャート。
【発明を実施するための形態】
【0009】
実施の形態および図面において、同じ要素または対応する要素には同じ符号を付している。説明した要素と同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
【0010】
実施の形態1.
ウェブ会議システム100について、図1から図23に基づいて説明する。
【0011】
***構成の説明***
図1に基づいて、ウェブ会議システム100の構成を説明する。
ウェブ会議システム100は、ウェブ会議に参加する複数のクライアント装置200を備える。
ウェブ会議システム100は、さらに、サーバ装置300と、認証局装置400と、を備える。
複数のクライアント装置200とサーバ装置300と認証局装置400は、ネットワーク101を介して互いに通信する。ネットワーク101の具体例はインターネットである。
【0012】
図2に基づいて、クライアント装置200の構成を説明する。
クライアント装置200は、プロセッサ201とメモリ202と補助記憶装置203と通信装置204と入出力インタフェース205といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【0013】
プロセッサ201は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ201はCPUである。
ICは、Integrated Circuitの略称である。
CPUは、Central Processing Unitの略称である。
【0014】
メモリ202は揮発性または不揮発性の記憶装置である。メモリ202は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ202はRAMである。メモリ202に記憶されたデータは必要に応じて補助記憶装置203に保存される。
RAMは、Random Access Memoryの略称である。
【0015】
補助記憶装置203は不揮発性の記憶装置である。例えば、補助記憶装置203は、ROM、HDD、フラッシュメモリまたはこれらの組み合わせである。補助記憶装置203に記憶されたデータは必要に応じてメモリ202にロードされる。
ROMは、Read Only Memoryの略称である。
HDDは、Hard Disk Driveの略称である。
【0016】
通信装置204はレシーバ及びトランスミッタである。例えば、通信装置204は通信チップまたはNICである。クライアント装置200の通信は通信装置204を用いて行われる。
NICは、Network Interface Cardの略称である。
【0017】
入出力インタフェース205は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース205はUSB端子であり、入力装置はキーボード、マウスおよびマイクであり、出力装置はディスプレイおよびスピーカである。クライアント装置200の入出力は入出力インタフェース205を用いて行われる。
USBは、Universal Serial Busの略称である。
【0018】
クライアント装置200は、準備部210と登録部220と設定部230と参加部240と離脱部250と通信部260といった要素を備える。これらの要素はソフトウェアで実現される。
【0019】
補助記憶装置203には、準備部210と登録部220と設定部230と参加部240と離脱部250と通信部260としてコンピュータを機能させるためのクライアントプログラムが記憶されている。クライアントプログラムは、メモリ202にロードされて、プロセッサ201によって実行される。
補助記憶装置203には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ202にロードされて、プロセッサ201によって実行される。
プロセッサ201は、OSを実行しながら、クライアントプログラムを実行する。
OSは、Operating Systemの略称である。
【0020】
クライアントプログラムの入出力データは記憶部290に記憶される。
メモリ202は記憶部290として機能する。但し、補助記憶装置203、プロセッサ201内のレジスタおよびプロセッサ201内のキャッシュメモリなどの記憶装置が、メモリ202の代わりに、又は、メモリ202と共に、記憶部290として機能してもよい。
【0021】
クライアント装置200は、プロセッサ201を代替する複数のプロセッサを備えてもよい。
【0022】
クライアントプログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
【0023】
図3に基づいて、クライアント装置200の機能構成を説明する。
準備部210は、CA証明書取得部211を備える。
登録部220は、識別コード取得部221と、署名鍵生成部222と、CL証明書取得部223と、を備える。
設定部230は、メンバーリスト生成部231と、会議情報取得部232と、メンバーリスト修正部233と、を備える。
参加部240は、会議参加部241と、通信鍵生成部242と、鍵共有部243と、通信鍵更新部244と、通信鍵取得部245と、参加通知部246と、を備える。
離脱部250は、離脱通知部251と、再共有部252と、新鍵生成部253と、新鍵伝送部254と、を備える。
通信部260は、メッセージ送信部261と、メッセージ受信部262と、を備える。
「CA」は、認証局を意味する。
「CL」は、クライアントを意味する。
【0024】
図4に基づいて、サーバ装置300の構成を説明する。
サーバ装置300は、プロセッサ301とメモリ302と補助記憶装置303と通信装置304と入出力インタフェース305といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【0025】
プロセッサ301は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ301はCPUである。
メモリ302は揮発性または不揮発性の記憶装置である。メモリ302は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ302はRAMである。メモリ302に記憶されたデータは必要に応じて補助記憶装置303に保存される。
補助記憶装置303は不揮発性の記憶装置である。例えば、補助記憶装置303は、ROM、HDD、フラッシュメモリまたはこれらの組み合わせである。補助記憶装置303に記憶されたデータは必要に応じてメモリ302にロードされる。
通信装置304はレシーバ及びトランスミッタである。例えば、通信装置304は通信チップまたはNICである。サーバ装置300の通信は通信装置304を用いて行われる。
入出力インタフェース305は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース305はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。サーバ装置300の入出力は入出力インタフェース305を用いて行われる。
【0026】
サーバ装置300は、識別コード管理部321と会議情報管理部331と参加管理部341と離脱管理部351と通信管理部361といった要素を備える。これらの要素はソフトウェアで実現される。
【0027】
補助記憶装置303には、識別コード管理部321と会議情報管理部331と参加管理部341と離脱管理部351と通信管理部361としてコンピュータを機能させるためのサーバプログラムが記憶されている。サーバプログラムは、メモリ302にロードされて、プロセッサ301によって実行される。
補助記憶装置303には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ302にロードされて、プロセッサ301によって実行される。
プロセッサ301は、OSを実行しながら、サーバプログラムを実行する。
【0028】
サーバプログラムの入出力データは記憶部390に記憶される。
メモリ302は記憶部390として機能する。但し、補助記憶装置303、プロセッサ301内のレジスタおよびプロセッサ301内のキャッシュメモリなどの記憶装置が、メモリ302の代わりに、又は、メモリ302と共に、記憶部390として機能してもよい。
【0029】
サーバ装置300は、プロセッサ301を代替する複数のプロセッサを備えてもよい。
【0030】
サーバプログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
【0031】
図5に基づいて、認証局装置400の構成を説明する。
認証局装置400は、プロセッサ401とメモリ402と補助記憶装置403と通信装置404と入出力インタフェース405といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
【0032】
プロセッサ401は、演算処理を行うICであり、他のハードウェアを制御する。例えば、プロセッサ401はCPUである。
メモリ402は揮発性または不揮発性の記憶装置である。メモリ402は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ402はRAMである。メモリ402に記憶されたデータは必要に応じて補助記憶装置403に保存される。
補助記憶装置403は不揮発性の記憶装置である。例えば、補助記憶装置403は、ROM、HDD、フラッシュメモリまたはこれらの組み合わせである。補助記憶装置403に記憶されたデータは必要に応じてメモリ402にロードされる。
通信装置404はレシーバ及びトランスミッタである。例えば、通信装置404は通信チップまたはNICである。認証局装置400の通信は通信装置404を用いて行われる。
入出力インタフェース405は、入力装置および出力装置が接続されるポートである。例えば、入出力インタフェース405はUSB端子であり、入力装置はキーボードおよびマウスであり、出力装置はディスプレイである。認証局装置400の入出力は入出力インタフェース405を用いて行われる。
【0033】
認証局装置400は、CA証明書発行部411とCL証明書発行部421といった要素を備える。これらの要素はソフトウェアで実現される。
【0034】
補助記憶装置403には、CA証明書発行部411とCL証明書発行部421としてコンピュータを機能させるための認証局プログラムが記憶されている。認証局プログラムは、メモリ402にロードされて、プロセッサ401によって実行される。
補助記憶装置403には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ402にロードされて、プロセッサ401によって実行される。
プロセッサ401は、OSを実行しながら、認証局プログラムを実行する。
【0035】
認証局プログラムの入出力データは記憶部490に記憶される。
メモリ402は記憶部490として機能する。但し、補助記憶装置403、プロセッサ401内のレジスタおよびプロセッサ401内のキャッシュメモリなどの記憶装置が、メモリ402の代わりに、又は、メモリ402と共に、記憶部490として機能してもよい。
【0036】
認証局装置400は、プロセッサ401を代替する複数のプロセッサを備えてもよい。
【0037】
認証局プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
【0038】
***動作の説明***
ウェブ会議システム100の動作の手順はウェブ会議方法に相当する。
ウェブ会議システム100の動作の手順はウェブ会議プログラムによる処理の手順に相当する。ウェブ会議プログラムは、クライアントプログラム、サーバプログラムおよび認証局プログラムを含む。
【0039】
ウェブ会議方法は、準備処理と、登録処理と、設定処理と、参加処理と、離脱処理と、通信処理と、を含む。
【0040】
図6に基づいて、準備処理および登録処理の概要を説明する。
準備処理は、各クライアント装置200がCA証明書を取得する処理である。
登録処理は、ウェブ会議の各メンバーが識別コードとCL証明書を取得する処理である。
CA証明書は、認証局装置400の電子証明書である。
識別コードは、メンバーまたはメンバー用のクライアント装置200を識別する。
CL証明書は、クライアント装置200の電子証明書である。
【0041】
「クライアント」は、クライアント装置200を表す。
「サーバ」は、サーバ装置300を表す。
「認証局」は、認証局装置400を表す。
【0042】
まず、クライアント装置200は、認証局装置400からCA証明書を取得する。
【0043】
次に、クライアント装置200は、利用者情報をサーバ装置300へ送信する。
利用者情報は、クライアント装置200の利用者に関する情報を示すデータである。例えば、利用者情報は、氏名およびメールアドレスなどを示す。
サーバ装置300は、本人確認要求をクライアント装置200へ送信する。
本人確認要求は、利用者本人に確認を要求するためのデータである。
クライアント装置200は、本人確認応答をサーバ装置300へ送信する。
本人確認応答は、本人確認要求に対する応答である。
サーバ装置300は、識別コードをクライアント装置200へ送信する。
そして、クライアント装置200は、識別コードを受信する。
【0044】
次に、クライアント装置200は、証明書署名要求(CSR)を生成する。
CSRは、CL証明書を要求するためのデータである。CSRは識別コードを含む。
クライアント装置200は、CSRを認証局装置400へ送信する。
認証局装置400は、照会要求をサーバ装置300へ送信する。
照会要求は、識別コードの照会を要求するためのデータである。照会要求は、CSRに含まれる識別コードと同じ識別コードを含む。
サーバ装置300は、照会応答を認証局装置400へ送信する。
照会応答は、照会要求に対する応答である。照会応答は、照会要求に含まれる識別コードがクライアント装置200へ送信された識別コード(正しい識別コード)であるか否かを示す。照会要求に含まれる識別コードが正しい識別コードであると仮定して説明を続ける。
【0045】
次に、認証局装置400は、CL証明書を生成し、CL証明書をサーバ装置300へ送信する。
そして、サーバ装置300は、CL証明書を受信して保管する。
【0046】
図7に基づいて、準備処理の具体例を説明する。
クライアントの「取得部」は、CA証明書取得部211を表す。
認証局の「発行部」は、CA証明書発行部411を表す。
認証局の「記憶部」は、記憶部490を表す。
【0047】
ステップS101において、CA証明書発行部411は、CA鍵ペアを生成する。
CA鍵ペアは、認証局装置400の鍵ペアである。
鍵ペアは、秘密鍵と公開鍵のペアである。
【0048】
次に、CA証明書発行部411は、CA鍵ペアを用いてCA証明書を生成する。
CA証明書はCA公開鍵と署名を含む。この署名は、CA秘密鍵を用いて生成される。
【0049】
そして、CA証明書発行部411は、CA秘密鍵とCA証明書を記憶部490に格納する。これにより、認証局装置400において、CA秘密鍵とCA証明書が保管される。
【0050】
ステップS102において、CA証明書取得部211はCA証明書を取得する。
例えば、CA証明書取得部211が認証局装置400にCA証明書を要求し、CA証明書発行部411がCA証明書をクライアント装置200へ送信し、CA証明書取得部211がCA証明書を受信する。CA証明書の通信には、ウェブ経由またはメールなどの手段が使われる。なお、CA証明書は改ざんされずにクライアント装置200に届く必要がある。
【0051】
そして、CA証明書取得部211は、CA証明書を記憶部290に格納する。これにより、クライアント装置200において、CA証明書が保管される。
【0052】
図8および図9に基づいて、登録処理の具体例を説明する。
クライアントの「取得部」は、識別コード取得部221またはCL証明書取得部223を表す。
クライアントの「生成部」は、署名鍵生成部222を表す。
クライアントの「記憶部」は、記憶部290を表す。
サーバの「管理部」は、識別コード管理部321を表す。
サーバの「記憶部」は、記憶部390を表す。
認証局の「発行部」は、CL証明書発行部421を表す。
認証局の「記憶部」は、記憶部490を表す。
【0053】
ステップS201において、クライアント装置200の利用者は、利用者情報をクライアント装置200に入力する。
識別コード取得部221は、入力された利用者情報を受け付ける。
【0054】
ステップS202において、識別コード取得部221は、利用者情報をサーバ装置300へ送信する。
識別コード管理部321は、利用者情報を受信する。
【0055】
次に、識別コード管理部321は、本人確認要求をクライアント装置200へ送信する。
識別コード取得部221は、本人確認要求を受信する。
本人確認要求は、確認用のウェブサイト(登録サイト)のアドレスを示す。ウェブサイトのアドレスはURLで示すことができる。URLは、Uniform Resource Locatorの略称である。
【0056】
次に、識別コード取得部221は、登録サイトのアドレスをディスプレイに表示する。
クライアント装置200の利用者は、マウスなどを操作して登録サイトのアドレスを指定する。
【0057】
そして、識別コード取得部221は、登録サイトにアクセスすることによって、本人確認応答をサーバ装置300へ送信する。
識別コード管理部321は、本人確認応答を受信する。
【0058】
ステップS203において、識別コード管理部321は、クライアント装置200の利用者に対する識別コードを生成する。
【0059】
識別コード管理部321は、利用者情報と識別コードを互いに対応付けて記憶部390に格納する。これにより、サーバ装置300において、利用者情報と識別コードが保管される。
【0060】
識別コード管理部321は、識別コードをクライアント装置200へ送信する。
識別コード取得部221は、識別コードを受信する。
【0061】
識別コード取得部221は、識別コードを記憶部290に格納する。これにより、サーバ装置300において、識別コードが保管される。
【0062】
ステップS211において、署名鍵生成部222は、署名鍵ペアを生成する。
署名鍵ペアは、クライアント装置200の鍵ペアである。署名鍵ペアは、各種署名のために使われる。
【0063】
署名鍵生成部222は、署名鍵ペアを記憶部290に格納する。これにより、クライアント装置200において、署名鍵ペアが保管される。
【0064】
ステップS212において、CL証明書取得部223は、CSRを生成する。
CSRは、識別コードと署名公開鍵を含む。
【0065】
CL証明書取得部223は、CSRを認証局装置400へ送信する。
CL証明書発行部421は、CSRを受信する。
【0066】
ステップS213において、CL証明書発行部421は、照会要求をサーバ装置300へ送信する。
識別コード管理部321は、照会要求を受信する。
照会要求は、CSRに含まれる識別コードと同じ識別コードを含む。
【0067】
識別コード管理部321は、照会要求に含まれる識別コードを保管中の識別コードと照会する。照会要求に含まれる識別コードを「対象コード」と称する。
対象コードが保管中のいずれかの識別コードと一致する場合、対象コードは正しい識別コードである。
【0068】
識別コード管理部321は、照会応答を認証局装置400へ送信する。
CL証明書発行部421は、照会応答を受信する。
照会応答は、照会結果を含む。照会結果は、対象コードが正しい識別コードであるか否かを示す。
【0069】
ステップS214において、CL証明書発行部421は、照会応答に含まれる照会結果を参照し、CSRに含まれる識別コードが正しい識別コードか判定する。
CSRに含まれる識別コードが正しい識別コードである場合、CL証明書発行部421は、CA秘密鍵を用いて、CL証明書を生成する。
CL証明書は、署名公開鍵と署名を含む。この署名は、CA秘密鍵を用いて生成される。
【0070】
CSRに含まれる識別コードが正しい識別コードでない場合、CL証明書は生成されない。この場合、CL証明書取得部223は、CL証明書を取得できない。
【0071】
CSRに含まれる識別コードが正しい識別コードである場合について説明を続ける。
CL証明書発行部421は、CL証明書をクライアント装置200へ送信する。
CL証明書取得部223は、CL証明書を受信する。
【0072】
CL証明書取得部223は、CL証明書を記憶部290に格納する。これにより、クライアント装置200において、CL証明書が保管される。
【0073】
登録処理の特徴を説明する。
サーバ装置300は、複数のクライアント装置200のそれぞれの識別コードを生成し、複数のクライアント装置200のそれぞれに識別コードを送信する。
複数のクライアント装置200のそれぞれは、識別コードを受信する。また、各クライアント装置200は、署名鍵ペアを生成する。そして、各クライアント装置200は、署名公開鍵と識別コードを示す証明書要求を認証局装置400へ送信する。
認証局装置400は、証明書要求を受信し、証明書要求に示される識別コードを示す照会要求をサーバ装置300へ送信する。
サーバ装置300は、照会要求を受信し、照会要求に示される識別コードを複数のクライアント装置200のそれぞれの識別コードと照合する。そして、サーバ装置300は、照合結果を示す照会応答を認証局装置400へ送信する。
認証局装置400は、照会応答を受信する。そして、照会要求に示される識別コードが複数のクライアント装置200のいずれかの識別コードである場合に、認証局装置400は、証明書要求に示される署名公開鍵を含む電子証明書を、証明書要求の送信元であるクライアント装置200のために発行する。
【0074】
図10に基づいて、設定処理の概要を説明する。
設定処理は、ウェブ会議のメンバーリストを設定する処理である。
メンバーリストは、ウェブ会議に参加する各メンバーの識別コードを示すデータである。
【0075】
まず、クライアント(A)は、メンバーリストを生成する。
クライアント(A)は、メンバーリストに対する署名を生成する。
クライアント(A)は、署名付きメンバーリストをサーバ装置300へ送信する。
サーバ装置300は、メンバーリストの署名を検証する。署名が正しい場合、サーバ装置300はメンバーリストを保管する。
【0076】
そして、サーバ装置300は、メンバーリストに示される各メンバーへ会議情報を送信する。クライアント(A)およびクライアント(B)がメンバーリストに示される場合、サーバ装置300は、クライアント(A)とクライアント(B)のそれぞれに会議情報を送信する。
会議情報は、ウェブ会議の情報を示すデータである。
【0077】
クライアント(B)がメンバーリストを修正する場合について説明を続ける。
クライアント(B)は、サーバ装置300にメンバーリストを要求する。
サーバ装置300は、メンバーリストをクライアント(B)へ送信する。
クライアント(B)は、メンバーリストを修正する。
クライアント(B)は、署名付きメンバーリストをサーバ装置300へ送信する。
サーバ装置300は、メンバーリストの署名を検証する。署名が正しい場合、サーバ装置300はメンバーリストを更新する。
【0078】
図11および図12に基づいて、設定処理の具体例を説明する。
クライアントの「生成部」は、メンバーリスト生成部231を表す。
クライアントの「取得部」は、会議情報取得部232を表す。
クライアントの「修正部」は、メンバーリスト修正部233を表す。
クライアントの「記憶部」は、記憶部290を表す。
サーバの「管理部」は、会議情報管理部331を表す。
サーバの「記憶部」は、記憶部390を表す。
【0079】
ステップS301において、利用者(A)は、ウェブ会議に参加するメンバーそれぞれの識別コードをクライアント(A)に入力する。利用者は、各メンバーから識別コードを知らされているものとする。
メンバーリスト生成部231は、入力された各識別コードを受け付ける。
【0080】
メンバーリスト生成部231は、メンバーリストを生成する。
メンバーリストは、受け付けられた各識別コードを示す。
【0081】
ステップS302において、メンバーリスト生成部231は、署名秘密鍵を用いて、メンバーリストに対する署名を生成する。
【0082】
そして、メンバーリスト生成部231は、署名付きメンバーリストを生成する。
署名付きメンバーリストは、メンバーリストと署名とCL証明書を含むデータである。
【0083】
図13に、署名付きメンバーリスト111を示す。署名付きメンバーリスト111は、クライアント(A)によって生成された署名付きメンバーリストの一例である。
署名付きメンバーリスト111は、メンバー毎に識別コードと属性を含んでいる。「加入」は、識別コードで識別される利用者がウェブ会議のメンバーに加わることを意味する。
署名付きメンバーリスト111は、メンバーリストと署名(A)とCL証明書(A)を含んでいる。
署名(A)は、クライアント(A)の署名秘密鍵を用いて生成された署名である。
CL証明書(A)は、クライアント(A)のCL証明書である。
【0084】
図11に戻り、ステップS303から説明を続ける。
ステップS303において、メンバーリスト生成部231は、会議設定要求をサーバ装置300へ送信する。
会議情報管理部331は、会議設定要求を受信する。
会議設定要求は、ウェブ会議の設定を要求するためのデータである。会議設定要求は、署名付きメンバーリストを含む。
【0085】
会議情報管理部331は、会議設定要求に含まれる署名付きメンバーリストを検証する。
具体的には、会議情報管理部331は、署名付きメンバーリストの中のCL証明書に含まれる署名公開鍵を用いて、署名付きメンバーリストの中の署名を検証する。署名が正しい場合、署名付きメンバーリストは正しい。
【0086】
署名付きメンバーリストが正しい場合、会議情報管理部331は会議情報を生成する。
そして、会議情報管理部331は、署名付きメンバーリストと会議情報を互いに対応付けて記憶部390に格納する。これにより、サーバ装置300において、署名付きメンバーリストと会議情報が保管される。
会議情報は、会議URLとメンバーリストURLを含む。
会議URLは、ウェブ会議への参加時にアクセスされるウェブサイトのアドレスである。
メンバーリストURLは、メンバーリストにアクセスするためのウェブサイトのアドレスである。
【0087】
署名付きメンバーリストが正しくない場合、ウェブ会議が設定されずメンバーリストが登録されない。
【0088】
署名付きメンバーリストが正しい場合について説明を続ける。
ステップS304において、会議情報管理部331は、保管中の利用者情報に基づいて、メンバーリストに示される各識別コードで識別される利用者に対して会議情報を送信する。例えば、会議情報管理部331は、各利用者のメールアドレスを使って会議情報を送信する。
【0089】
各利用者のクライアント装置200において、会議情報取得部232は、会議情報を受信する。
そして、会議情報取得部232は、会議情報を記憶部290に格納する。これにより、クライアント装置200において、会議情報が保管される。
【0090】
各利用者は、必要に応じて他のメンバーに会議情報を送信してもよい。
【0091】
ステップS311において、メンバーリスト修正部233は、利用者(B)の指示に従ってメンバーリストURLを使ってメンバーリストにアクセスする。
そして、メンバーリスト修正部233は、メンバーリストをダウンロードする。このとき、会議情報管理部331がメンバーリストをクライアント(B)へ送信し、メンバーリスト修正部233がメンバーリストを受信する。
【0092】
ステップS312において、メンバーリスト修正部233は、利用者(B)の指示にしたがってメンバーリストを修正する。
具体的には、メンバーリスト修正部233は、修正データを署名付きメンバーリストに付加する。修正データは、メンバーリストに対する修正の内容を示す。
【0093】
ステップS313において、メンバーリスト修正部233は、署名秘密鍵を用いて、修正データに対する署名を生成する。
【0094】
そして、メンバーリスト修正部233は、修正済みメンバーリストを生成する。
修正済みメンバーリストは、署名付きメンバーリストと修正データと署名とCL証明書を含む。
【0095】
図14に、修正済みメンバーリスト112を示す。修正済みメンバーリスト112は、クライアント(B)によって修正された署名付きメンバーリスト111(図11を参照)の一例である。
修正済みメンバーリスト112は、署名付きメンバーリスト111と修正データと署名(B)とCL証明書(B)を含んでいる。「除外」は、識別コードで識別される利用者がウェブ会議のメンバーから除外されることを意味する。
修正データは、メンバー(D)がウェブ会議のメンバーに加わること、および、メンバー(C)がウェブ会議のメンバーから除外されること、を示している。
署名(B)は、クライアント(B)の署名秘密鍵を用いて生成された署名である。
CL証明書(B)は、クライアント(B)のCL証明書である。
【0096】
図12に戻り、ステップS314から説明を続ける。
ステップS314において、メンバーリスト修正部233は、修正済みメンバーリストをサーバ装置300へ送信する。
会議情報管理部331は、修正済みメンバーリストを受信する。
【0097】
会議情報管理部331は、修正済みメンバーリストを検証する。
具体的には、会議情報管理部331は、修正済みメンバーリストの中のCL証明書に含まれる署名公開鍵を用いて、修正済みメンバーリストの中の署名を検証する。
【0098】
会議情報管理部331は、修正済みメンバーリストの中の修正データを検証する。
例えば、会議情報管理部331は、未加入メンバーの除外が修正内容に含まれていないか判定する。
【0099】
署名および修正データが正しい場合、会議情報管理部331は、保管中の署名付きメンバーリストを修正済みメンバーリストで更新する。
【0100】
署名と修正データの少なくとも一方が正しくない場合、修正済みメンバーリストが破棄され、保管中の署名付きメンバーリストは更新されない。
【0101】
設定処理の特徴を説明する。
複数のクライアント装置200のいずれかは、メンバーリストを生成し、署名付きメンバーリストをサーバ装置300へ送信する。
サーバ装置300は、署名付きメンバーリストを受信し、署名付きメンバーリストの署名を検証する。そして、署名付きメンバーリストの署名が正しい場合に、サーバ装置300は、メンバーリストを保管する。
複数のクライアント装置200のそれぞれは、サーバ装置300からメンバーリストを受信する。そして、各クライアント装置200は、メンバーリストを修正し、署名付き修正済みリストをサーバ装置300へ送信する。修正済みリストは、修正済みのメンバーリストである。
サーバ装置300は、署名付き修正済みリストを受信し、署名付き修正済みリストの署名を検証する。そして、署名付き修正済みリストの署名が正しい場合に、サーバ装置300は、保管中のメンバーリストを修正済みリストで更新する。
【0102】
図15および図16に基づいて、参加処理および離脱処理の概要を説明する。
参加処理は、各メンバーがウェブ会議に参加するための処理である。
離脱処理は、ウェブ会議に参加済みのメンバーがウェブ会議から離脱するための処理である。
【0103】
図15において、実線の白丸はウェブ会議に参加中のメンバーを示す。破線の白丸はウェブ会議に未参加のメンバーを示す。黒丸はウェブ会議から離脱したメンバーを示す。
メンバー(A)がウェブ会議に1番目に参加する場合、メンバー(A)の参加の可否は、サーバ装置300によってメンバーリストを使って判定される。
各メンバーがウェブ会議に2番目以降に参加する場合、各メンバーの参加の可否は、参加中の一人のメンバーによって判定される。例えば、メンバー(B)の参加の可否はメンバー(A)によって判定される。また、メンバー(C)の参加の可否はメンバー(B)によって判定される。
参加の可否を判定したメンバーを「親メンバー」と称する。また、参加の可否を判定されたメンバーを「子メンバー」と称する。
親メンバーと子メンバーは鍵共有を行う。例えば、メンバー(A)はメンバー(B)と鍵共有を行う。また、メンバー(B)は、メンバー(A)とメンバー(B)のそれぞれと鍵共有を行う。
参加中のメンバーがウェブ会議から離脱した場合、離脱メンバーに対する親メンバーと離脱メンバーに対する子メンバーが鍵共有を行う。例えば、メンバー(C)が離脱した場合、メンバー(B)とメンバー(D)が鍵共有を行う。
【0104】
図16において、「Join」はウェブ会議への参加を意味する。「Auth」はウェブ会議への参加の可否の判定(認証)を意味する。「Ratchet」はハッシュ化を意味する。「Leave」はウェブ会議からの離脱を意味する。「Gen」は通信鍵の生成を意味する。
通信鍵は、ウェブ会議においてメッセージの通信に用いられる共通鍵である。通信鍵はグループ鍵ともいう。
また、「kX,Y」はメンバー(X)とメンバー(Y)の共有鍵を表す。「kX,G」は更新済み通信鍵を表す。
【0105】
新規メンバーがウェブ会議に参加した場合、新たなメンバーに対する親メンバー(該当メンバー)は、保管中の通信鍵をハッシュ化して更新し、更新済み通信鍵を新規メンバーに配布する。
さらに、該当メンバーに対する親メンバーが存在する場合、該当メンバーは、新規メンバーの参加を親メンバーに通知する。
そして、親メンバーは、保管中の通信鍵をハッシュ化して更新する。親メンバーに対する親メンバー(上位メンバー)が存在する場合、親メンバーは新規メンバーの参加を上位メンバーに通知する。上位メンバーは親メンバーと同様に動作する
例えば、メンバー(C)がウェブ会議に参加した場合、メンバー(B)は通信鍵k’A,Gをハッシュ化して更新し、更新済み通信鍵k’’A,Gをメンバー(B)に配布する。さらに、メンバー(B)はメンバー(C)の参加をメンバー(A)に通知する。そして、メンバー(A)は、通信鍵k’A,Gをハッシュ化して通信鍵k’’A,Gに更新する。
【0106】
参加中のメンバーがウェブ会議から離脱した場合、離脱メンバーに対する親メンバー(該当メンバー)は、新たな通信鍵を生成し、親メンバーと離脱メンバーに対する子メンバーのそれぞれに新たな通信鍵を配布する。親メンバーに対する親メンバー(上位メンバー)が存在する場合、上位メンバーは親メンバーに新たな通信鍵を配布する。そして、上位メンバーに対する親メンバーは上位メンバーと同様に動作する。子メンバーに対する子メンバ(下位メンバー)が存在する場合、子メンバーは下位メンバーに新たな通信鍵を配布する。そして、下位メンバーは子メンバーと同様に動作する。
例えば、メンバー(C)がウェブ会議から離脱した場合、メンバー(B)は、新たな通信鍵kB,Gを生成し、メンバー(A)とメンバー(D)とのそれぞれに新たな通信鍵kB,Gを配布する。
【0107】
図17から図20に基づいて、参加処理の具体例を説明する。
「クライアント(A)」は、ウェブ会議に1番目に参加するクライアント装置200を表す。
「クライアント(B)」は、ウェブ会議に2番目に参加するクライアント装置200を表す。
「クライアント(C)」は、ウェブ会議に3番目に参加するクライアント装置200を表す。
「クライアント(D)」は、ウェブ会議に4番目に参加するクライアント装置200を表す。
クライアントの「参加部」は、会議参加部241を表す。
クライアントの「生成部」は、通信鍵生成部242を表す。
クライアントの「共有部」は、鍵共有部243を表す。
クライアントの「更新部」は、通信鍵更新部244を表す。
クライアントの「取得部」は、通信鍵取得部245を表す。
クライアントの「通知部」は、参加通知部246を表す。
クライアントの「記憶部」は、記憶部290を表す。
サーバの「管理部」は、参加管理部341を表す。
サーバの「記憶部」は、記憶部390を表す。
【0108】
ステップS401において、クライアント(A)の会議参加部241は、参加要求をサーバ装置300へ送信する。
参加管理部341は、参加要求を受信する。
参加要求は、ウェブ会議に参加するためのデータである。参加要求は、識別コードを含む。
【0109】
参加管理部341は、ウェブ会議に参加中のクライアント装置200が存在するか判定する。このとき、ウェブ会議に参加中のクライアント装置200は存在しない。
この場合、参加管理部341は、参加要求に含まれる識別コードと同じ識別コードが保管中のメンバーリストに含まれるか判定する。参加要求に含まれる識別コードと同じ識別コードを「対象コード」と称する。
対象コードが保管中のメンバーリストに含まれる場合、参加管理部341は、ウェブ会議へのクライアント(A)の参加を許可する。そして、参加管理部341は、ウェブ会議への参加の許可を示す参加応答をクライアント(A)へ送信する。なお、参加管理部341は、ウェブ会議に参加中の各メンバーの識別コードを管理する。
対象コードが保管中のメンバーリストに含まれない場合、参加管理部341は、ウェブ会議への参加の不許可を示す参加応答をクライアント(A)へ送信する。
会議参加部241は、参加応答を受信する。参加応答は、参加要求に対応する応答である。
【0110】
ウェブ会議に参加中のクライアント装置200が存在する場合については後述する。
【0111】
ステップS402において、会議参加部241は通信鍵を生成する。通信鍵は例えば乱数である。
そして、会議参加部241は、通信鍵を記憶部290に格納する。これにより、クライアント(A)において通信鍵が保管される。
【0112】
ステップS411において、クライアント(B)の会議参加部241は、参加要求をサーバ装置300へ送信する。
参加管理部341は、参加要求を受信する。
【0113】
参加管理部341は、ウェブ会議に参加中のクライアント装置200が存在するか判定する。このとき、クライアント(A)がウェブ会議に参加中である。
この場合、参加管理部341は、参加中のクライアント装置200が存在することを示す参加応答をクライアント(B)へ送信する。
クライアント(B)の参加管理部341は、参加応答を受信する。
【0114】
ステップS412において、クライアント(B)の鍵共有部243は、交換鍵ペアを生成する。
交換鍵ペアは、他のクライアント装置200と鍵共有を行うための鍵ペアである。交換鍵の具体例は、ECDH鍵またはDH鍵である。ECDHは、Elliptic curve Diffie-Hellmanの略称である。DHは、Diffie-Hellmanの略称である。
【0115】
クライアント(B)の鍵共有部243は、署名秘密鍵を用いて、交換公開鍵に対する署名を生成する。
【0116】
クライアント(B)の鍵共有部243は、交換データを生成し、交換データをサーバ装置300へ送信する。
交換データは、他のクライアント装置200と鍵交換を行うためのデータである。交換データは、交換公開鍵と署名とCL証明書を含む。
【0117】
クライアント(B)の交換データを交換データ(B)と称する。
交換データ(B)に含まれる交換公開鍵を交換公開鍵(B)と称する。
交換データ(B)に含まれる署名を署名(B)と称する。
交換データ(B)に含まれるCL証明書をCL証明書(B)と称する。
【0118】
参加管理部341は、交換データ(B)を受信し、交換データ(B)を記憶部390に格納する。
【0119】
ステップS413において、参加管理部341は、ウェブ会議に参加中の全てのクライアント装置に認証要求を送信する。
クライアント(A)の鍵共有部243は、認証要求を受信する。
認証要求は、ウェブ会議への新たな参加を知らせるためのデータである。
【0120】
クライアント(A)の鍵共有部243は、子クライアントと鍵共有を行っているか判定する。このとき、クライアント(A)は、子クライアントと鍵共有を行っていない。
この場合、クライアント(A)の鍵共有部243は、交換鍵ペアを生成する。
また、鍵共有部243は、署名秘密鍵を用いて、交換公開鍵に対する署名を生成する。
そして、鍵共有部243は、交換データを生成し、交換データをサーバ装置300へ送信する。
【0121】
クライアント(A)の交換データを交換データ(A)と称する。
交換データ(A)に含まれる交換公開鍵を交換公開鍵(A)と称する。
交換データ(A)に含まれる署名を署名(A)と称する。
交換データ(A)に含まれるCL証明書をCL証明書(A)と称する。
【0122】
参加管理部341は、交換データ(A)を受信し、交換データ(A)を記憶部390に格納する。
【0123】
ステップS414において、参加管理部341は、交換データ(A)をクライアント(B)へ送信し、交換データ(B)をクライアント(A)へ送信する。
クライアント(B)の鍵共有部243は、交換データ(A)を受信する。
クライアント(A)の鍵共有部243は、交換データ(B)を受信する。
【0124】
ステップS415において、クライアント(B)の鍵共有部243は、交換データ(A)を検証する。
具体的には、鍵共有部243は、CA証明書の中のCA公開鍵を用いて、CL証明書(A)の中の署名を検証する。
CL証明書(A)の中の署名が正しい場合、鍵共有部243は、CL証明書(A)の中の署名公開鍵を用いて、署名(A)を検証する。
署名(A)が正しい場合、交換データ(A)は正しい。そして、クライアント(A)が認証される。
【0125】
交換データ(A)が正しい場合、鍵共有部243は、交換公開鍵(A)を用いて鍵共有のための処理を実行する。これにより、共有鍵(AB)が生成される。
そして、鍵共有部243は、共有鍵(AB)を記憶部290に格納する。これにより、クライアント(A)において、共有鍵(AB)が保管される。
共有鍵(AB)は、クライアント(A)とクライアント(B)の間で共有される共通鍵である。
【0126】
交換データ(A)が正しくない場合、クライアント(B)において共有鍵(AB)が生成されない。つまり、鍵共有が行われない。
【0127】
ステップS416において、クライアント(A)の鍵共有部243は、交換データ(B)を検証する。
具体的には、鍵共有部243は、CA証明書の中のCA公開鍵を用いて、CL証明書(B)の中の署名を検証する。
CL証明書(B)の中の署名が正しい場合、鍵共有部243は、CL証明書(B)の中の署名公開鍵を用いて、署名(B)を検証する。
署名(B)が正しい場合、交換データ(B)は正しい。そして、クライアント(B)が認証される。これにより、ウェブ会議へのクライアント(B)の参加が許可される。
【0128】
交換データ(B)が正しい場合、鍵共有部243は、交換公開鍵(B)を用いて鍵共有のための処理を実行する。これにより、共有鍵(AB)が生成される。
そして、鍵共有部243は、共有鍵(AB)を記憶部290に格納する。これにより、クライアント(B)において、共有鍵(AB)が保管される。
【0129】
交換データ(B)が正しくない場合、クライアント(A)において共有鍵(AB)が生成されない。つまり、鍵共有が行われない。
【0130】
ステップS421において、クライアント(A)の通信鍵更新部244は、保管中の通信鍵をハッシュ化して更新する。
つまり、通信鍵更新部244は、保管中の通信鍵にハッシュを施し、得られたハッシュ値で保管中の通信鍵を更新する。
【0131】
ステップS422において、クライアント(A)の通信鍵更新部244は、共有鍵(AB)を用いて更新済みの保管中の通信鍵を暗号化する。これにより、暗号化通信鍵が得られる。
【0132】
クライアント(A)の通信鍵更新部244は、暗号化通信鍵をサーバ装置300へ送信する。
参加管理部341は、暗号化通信鍵を受信し、暗号化通信鍵を記憶部390に格納する。
【0133】
ステップS423において、クライアント(B)の通信鍵取得部245は、通信鍵要求をサーバ装置300へ送信する。
参加管理部341は、通信鍵要求を受信する。
通信鍵要求は、通信鍵を要求するためのデータである。
【0134】
参加管理部341は、暗号化通信鍵をクライアント(B)へ送信する。
クライアント(B)の通信鍵取得部245は、暗号化通信鍵を受信する。
【0135】
ステップS424において、クライアント(B)の通信鍵取得部245は、共有鍵(AB)を用いて暗号化通信鍵から通信鍵を復号する。
【0136】
クライアント(B)の通信鍵取得部245は、通信鍵を記憶部290に格納する。これにより、クライアント(B)において、クライアント(A)に保管中の通信鍵と同じ通信鍵が保管される。
【0137】
ステップS425において、クライアント(A)の参加通知部246は、クライアント(A)に対する親クライアントが存在するか判定する。このとき、クライアント(A)に対する親クライアントは存在しない。
この場合、処理は終了する。
【0138】
ステップS431において、クライアント(C)が子クライアントになり、クライアント(B)が親クライアントになる。
そして、クライアント(B)とクライアント(C)の間で鍵共有が行われる。鍵共有の手順は、クライアント(A)とクライアント(B)の間で行われた鍵共有の手順(S411~S416)と同じである。
これにより、クライアント(B)とクライアント(C)のそれぞれにおいて、共有鍵(BC)が保管される。
共有鍵(BC)は、クライアント(B)とクライアント(C)の間で共有される共通鍵である。
【0139】
さらに、クライアント(B)とクライアント(C)の間で鍵更新が行われる。鍵更新の手順は、クライアント(A)とクライアント(B)の間で行われた鍵更新の手順(S421~S424)と同じである。
これにより、クライアント(B)とクライアント(C)のそれぞれにおいて、通信鍵が保管される。
この通信鍵は、クライアント(B)によってハッシュ化されているため、クライアント(A)に保管中の通信鍵と異なる。
【0140】
そして、クライアント(B)の参加通知部246は、クライアント(B)に対する親クライアントが存在するか判定する(ステップS425と同じ)。クライアント(A)がクライアント(B)に対する親クライアントである。
この場合、処理はステップS432に進む。
【0141】
ステップS432において、クライアント(B)の参加通知部246は、参加通知を生成する。
参加通知は、ウェブ会議への新たな参加を親クライアントに知らせるためのデータである。
さらに、参加通知部246は、共有鍵(AB)を用いてメッセージ認証符号(MAC)を生成する。
そして、参加通知部246は、MACを含んだ参加通知をサーバ装置300へ送信する。
参加管理部341は、参加通知を受信する。
【0142】
参加通知を識別するための情報(タイムスタンプまたはシーケンス番号など)が参加通知に含まれてもよい。この情報は、参加通知の再送の防止のために使用することができる。
【0143】
参加管理部341は、参加通知をクライアント(A)へ送信する。
クライアント(A)の通信鍵更新部244は、参加通知を受信する。
【0144】
ステップS434において、クライアント(A)の通信鍵更新部244は、共有鍵(AB)を用いて、参加通知に含まれるMACを検証する。
【0145】
MACが正しい場合、通信鍵更新部244は、保管中の通信鍵をハッシュ化して更新する。
これにより、クライアント(A)において、クライアント(B)に保管中の通信鍵と同じ通信鍵が保管される。
【0146】
ハッシュ化の方法は複数のクライアント装置200において共通であり、ハッシュ化の結果は複数のクライアント装置200において同じになる。例えば、複数のクライアント装置200は、ハッシュ化のために同一のハッシュ関数を用いる。
【0147】
ステップS435において、クライアント(A)の参加通知部246は、クライアント(A)に対する親クライアントが存在するか判定する。
クライアント(A)に対する親クライアントは存在しないため、処理は終了する。
【0148】
クライアント(A)に対する親クライアントが存在する場合、クライアント(A)は、クライアント(B)と同様に、親クライアントに対して参加通知を送信する。
そして、親クライアントは、クライアント(A)と同様に、保管中の通信鍵を更新し(ステップS434)、必要に応じて参加通知を送信する(ステップS435)。
この処理は、親クライアントを持たないクライアント装置200が保管中の通信鍵を更新するまで続けられる。
【0149】
参加処理の特徴を説明する。
ウェブ会議に1番目に参加したときに、クライアント装置200は、通信鍵を生成して保管する。
ウェブ会議に2番目以降に参加したときに、クライアント装置200は、ウェブ会議に参加中で親クライアントになったクライアント装置と鍵共有を行う。そして、クライアント装置200は、親クライアントからの暗号化通信鍵を受信し、親クライアントとの共有鍵を用いて暗号化通信鍵から通信鍵を復号し、通信鍵を保管する。
ウェブ会議に参加中で子クライアントとの鍵共有を行っていない場合、クライアント装置200は、ウェブ会議に新たに参加したクライアント装置を子クライアントにして鍵共有を行う。また、クライアント装置200は、保管中の通信鍵をハッシュ化によって更新する。そして、クライアント装置200は、更新済みで保管中の通信鍵を子クライアントとの共有鍵を用いて暗号化し、子クライアントに対して暗号化通信鍵を送信する。さらに、クライアント装置200は、親クライアントに対して参加通知を送信する。
子クライアントからの参加通知を受信した場合、クライアント装置200は、保管中の通信鍵をハッシュ化によって更新する。
【0150】
複数のクライアント装置200のそれぞれは、ウェブ会議に参加するときに、参加要求クライアントになる。そして、各クライアント装置200は、識別コードを示す参加要求をサーバ装置300へ送信する。
ウェブ会議に1番目に参加する参加要求クライアントの参加要求を受信した場合、サーバ装置300は、受信した参加要求に示される識別コードをウェブ会議のメンバーリストと照合する。サーバ装置300は、照合結果に基づいて参加要求クライアントの参加可否を判定する。そして、サーバ装置300は、判定結果を示す参加応答を参加要求クライアントへ送信する。
ウェブ会議に2番目以降に参加する参加要求クライアントの参加要求を受信した場合、サーバ装置300は、参加要求クライアントのための認証要求をウェブ会議に参加中の全てのクライアント装置200へ送信する。
ウェブ会議に参加中の各クライアント装置200は、次のように動作する。認証要求を受信したときに子クライアントとの鍵共有を行っていない場合、クライアント装置200は、参加要求クライアントから送信される署名付き交換鍵を受信し、署名付き交換鍵の署名を検証する。そして、署名付き交換鍵の交換鍵が正しい場合に、クライアント装置200は、参加要求クライアントを子クライアントにして交換鍵を用いて鍵共有を行う。
【0151】
図21および図22に基づいて、離脱処理の具体例を説明する。
「クライアント(A)」は、ウェブ会議に1番目に参加したクライアント装置200を表す。
「クライアント(B)」は、ウェブ会議に2番目に参加したクライアント装置200を表す。
「クライアント(C)」は、ウェブ会議に3番目に参加したクライアント装置200を表す。
「クライアント(D)」は、ウェブ会議に4番目に参加したクライアント装置200を表す。
クライアントの「通知部」は、離脱通知部251を表す。
クライアントの「共有部」は、再共有部252を表す。
クライアントの「生成部」は、新鍵生成部253を表す。
クライアントの「伝送部」は、新鍵伝送部254を表す。
クライアントの「記憶部」は、記憶部290を表す。
サーバの「管理部」は、離脱管理部351を表す。
サーバの「記憶部」は、記憶部390を表す。
【0152】
ステップS501において、クライアント(B)の離脱通知部251は、離脱通知をサーバ装置300へ送信する。
離脱管理部351は、離脱通知を受信する。
離脱通知は、ウェブ会議から離脱するためのデータである。離脱通知は、離脱クライアントの識別コードを含む。
離脱クライアントは、ウェブ会議から離脱したクライアント装置200である。
【0153】
離脱管理部351は、ウェブ会議に参加中の全てのクライアント装置200へ離脱通知を送信する。
参加中の各クライアント装置200において、再共有部252は、離脱通知を受信する。
【0154】
参加中の各クライアント装置200において、再共有部252は、離脱通知に含まれる識別コードを参照する。
そして、再共有部252は、クライアント装置200が離脱クライアントに対する親クライアントまたは離脱クライアントに対する子クライアントであるか判定する。
【0155】
クライアント(A)は、クライアント(B)に対する親クライアントである。この場合、クライアント(A)において処理はステップS502に進む。
クライアント(C)は、クライアント(B)に対する子クライアントである。この場合、クライアント(C)において処理はステップS502に進む。
クライアント(D)は、クライアント(B)に対する親クライアントではない。また、クライアント(D)は、クライアント(B)に対する子クライアントではない。この場合、クライアント(D)において、離脱通知に対する処理は行われない。
【0156】
ステップS502において、クライアント(A)の再共有部252は、交換データ(A’)を生成し、交換データ(A’)をサーバ装置300へ送信する。
また、クライアント(C)の再共有部252は、交換データ(C’)を生成し、交換データ(C’)をサーバ装置300へ送信する。
交換データの生成方法は、参加処理での方法と同じである(図18を参照)。
【0157】
離脱管理部351は、交換データ(A’)と交換データ(C’)を受信し、交換データ(C’)をクライアント(A)へ送信し、交換データ(A’)をクライアント(C)へ送信する。
【0158】
ステップS503において、クライアント(A)の再共有部252は、交換データ(C’)を検証し、鍵共有によって共有鍵(AC)を生成し、共有鍵(AC)を保管する。
また、クライアント(C)の再共有部252は、交換データ(A’)を検証し、鍵共有によって共有鍵(AC)を生成し、共有鍵(AC)を保管する。
検証および鍵共有の方法は、参加処理での方法と同じである(図18を参照)。
【0159】
ステップS511において、クライアント(A)の新鍵生成部253は、新たな通信鍵を生成する。
新鍵生成部253は、保管中の通信鍵を新たな通信鍵で更新する。これにより、クライアント(A)において、新たな通信鍵が保管される。
【0160】
ステップS512において、クライアント(A)の新鍵伝送部254は、共有鍵(AC)を用いて新たな通信鍵を暗号化する。これにより、暗号化通信鍵が得られる。
【0161】
新鍵伝送部254は、暗号化通信鍵をサーバ装置300へ送信する。
離脱管理部351は、暗号化通信鍵を受信し、暗号化通信鍵を記憶部390に格納する。
【0162】
離脱管理部351は、暗号化通信鍵をクライアント(C)へ送信する。
クライアント(C)の新鍵伝送部254は、暗号化通信鍵を受信する。
【0163】
ステップS513において、クライアント(C)の新鍵伝送部254は、共有鍵(AC)を用いて暗号化通信鍵から新たな通信鍵を復号する。
新鍵伝送部254は、保管中の通信鍵を新たな通信鍵で更新する。これにより、クライアント(C)において、新たな通信鍵が保管される。
【0164】
ステップS514において、クライアント(C)の新鍵伝送部254は、クライアント(C)に対する子クライアントが存在するか判定する。クライアント(D)がクライアント(C)に対する子クライアントである。
この場合、クライアント(C)の新鍵伝送部254は、共有鍵(CD)を用いて新たな通信鍵を暗号化し、暗号化通信鍵をサーバ装置300へ送信する。
離脱管理部351は、暗号化通信鍵を受信し、暗号化通信鍵をクライアント(D)へ送信する。
クライアント(D)の新鍵伝送部254は、暗号化通信鍵を受信する。
【0165】
ステップS515において、クライアント(D)の新鍵伝送部254は、共有鍵(CD)を用いて暗号化通信鍵から新たな通信鍵を復号し、保管中の通信鍵を新たな通信鍵で更新する。これにより、クライアント(D)において、新たな通信鍵が保管される。
【0166】
クライアント(D)の新鍵伝送部254は、クライアント(D)に対する子クライアントが存在するか判定する。クライアント(D)に対する子クライアントは存在しない。
この場合、処理は終了する。
【0167】
クライアント(D)に対する子クライアントが存在する場合、クライアント(D)は、クライアント(C)と同様に、子クライアントに対して暗号化通信鍵を送信する。
そして、子クライアントは、クライアント(D)と同様に、保管中の通信鍵を更新し(ステップS515)、必要に応じて暗号化通信鍵を送信する。
この処理は、子クライアントを持たないクライアント装置200が保管中の通信鍵を更新するまで続けられる。
【0168】
離脱処理の特徴を説明する。
ウェブ会議から離脱したときに、クライアント装置200は、親クライアントと子クライアントのそれぞれに対して離脱通知を送信する。
親クライアントの離脱通知を受信した場合、クライアント装置200は、新たな親クライアントと鍵共有を行う。親クライアントに対する親クライアントが新たな親クライアントになる。クライアント装置200は、新たな親クライアントからの暗号化通信鍵を受信し、新たな親クライアントとの共有鍵を用いて暗号化通信鍵から新たな通信鍵を復号する。そして、クライアント装置200は、保管中の通信鍵の代わりに新たな通信鍵を保管する。さらに、クライアント装置200は、新たな通信鍵を子クライアントとの共有鍵を用いて暗号化し、子クライアントに対して暗号化通信鍵を送信する。
親クライアントからの暗号化通信鍵を受信した場合、クライアント装置200は、親クライアントとの共有鍵を用いて暗号化通信鍵から新たな通信鍵を復号し、保管中の通信鍵の代わりに新たな通信鍵を保管する。
子クライアントの離脱通知を受信した場合、クライアント装置200は、新たな子クライアントと鍵共有を行う。子クライアントに対する子クライアントが新たな子クライアントになる。また、クライアント装置200は、新たな通信鍵を生成して保管中の通信鍵の代わりに保管する。そして、クライアント装置200は、新たな通信鍵を新たな子クライアントとの共有鍵を用いて暗号化し、新たな子クライアントに対して暗号化通信鍵を送信する。
【0169】
複数のクライアント装置200のそれぞれは、親クライアントと子クライアントのいずれかがウェブ会議から離脱しない限り他のクライアント装置と鍵共有を行わない。
【0170】
図23に基づいて、通信処理を説明する。
通信処理は、ウェブ会議に参加中のクライアント装置200がメッセージを通信する処理である。
【0171】
クライアントの「送信部」は、メッセージ送信部261を表す。
クライアントの「受信部」は、メッセージ受信部262を表す。
クライアントの「記憶部」は、記憶部290を表す。
サーバの「記憶部」は、記憶部390を表す。
【0172】
ステップS601において、クライアント(A)の利用者は、メッセージをクライアント(A)に入力する。
メッセージ送信部261は、メッセージを受け付ける。メッセージの形態は、例えば、文字列、音声または映像である。
【0173】
メッセージ送信部261は、メッセージをエンコードする。つまり、メッセージ送信部261は、メッセージを規定のフォーマットのデータに変換する。これにより、エンコードメッセージが得られる。
【0174】
メッセージ送信部261は、通信鍵を用いてエンコードメッセージを暗号化する。これにより、暗号化メッセージが得られる。
【0175】
メッセージ送信部261は、暗号化メッセージをサーバ装置300へ送信する。
通信管理部361は、暗号化メッセージを受信し、記憶部390に格納する。
【0176】
通信管理部361は、暗号化メッセージをウェブ会議に参加中の各クライアント装置200へ送信する。
クライアント(B)のメッセージ受信部262は、暗号化メッセージを受信する。
【0177】
ステップS603において、クライアント(B)のメッセージ受信部262は、保管中の通信鍵を用いて、暗号化メッセージからエンコードメッセージを復号する。
【0178】
メッセージ受信部262は、エンコードメッセージからメッセージをデコードする。
【0179】
メッセージ受信部262は、メッセージを出力する。例えば、メッセージ受信部262は、メッセージをディスプレイに表示する。
【0180】
***実施の形態1の効果***
2者間鍵共有のためには、各利用者の初期鍵(交換鍵)を安全に相手に渡す必要がある。従来、初期鍵は、電話番号と共にサーバに登録されていた。そのため、サーバの管理者に悪意がある場合、初期鍵のすり替えによるなりすましが可能となる。
実施の形態1では、初期鍵は、電子証明書を使って配布される。これにより、サーバでの初期鍵の改ざんを防止できる。
【0181】
実施の形態1では、ウェブ会議の開設時に、参加メンバーのリストが生成される。これにより、招待されていない第3者の入室(ウェブ会議への参加)を防止できる。
【0182】
従来、n人のメンバーに対して回の鍵共有が必要であった。
実施の形態1により、鍵共有の回数を(n-1+α)回に減らすことができる。「α」は離脱回数を意味する。
【0183】
実施の形態1では、新たな参加クライアントにはハッシュ化によって更新された通信鍵が渡される。これにより、新たな参加クライアントは参加前のメッセージを復号できない。
【0184】
実施の形態1では、ウェブ会議に参加していたクライアントがウェブ会議から離脱した場合、新たな通信鍵が生成される。これにより、離脱クライアントは離脱後のメッセージを復号できない。
【0185】
実施の形態2.
通知無しでのウェブ会議からの離脱に対処する形態について、主に実施の形態1と異なる点を図24から図28に基づいて説明する。
【0186】
***構成の説明***
図24に基づいて、クライアント装置200の構成を説明する。
クライアント装置200は、さらに、検知部270という要素を備える。検知部270は、ソフトウェアで実現される。
クライアントプログラムは、さらに、検知部270としてコンピュータを機能させる。
【0187】
図25に基づいて、検知部270の構成を説明する。
検知部270は、確認要求部271と、確認応答部272と、代理通知部273と、を備える。
【0188】
図26に基づいて、サーバ装置300の構成を説明する。
サーバ装置300は、さらに、検知管理部371を備える。検知管理部371は、ソフトウェアで実現される。
サーバプログラムは、さらに、検知管理部371としてコンピュータを機能させる。
【0189】
***動作の説明***
ウェブ会議方法は、検知処理を含む。
検知処理は、離脱通知を出さずにウェブ会議から離脱したクライアント装置200を検知する処理である。
【0190】
図27に基づいて、検知処理の概要を説明する。
「Join」は、ウェブ会議への参加を意味する。
「Gen nonce」は、ノンスの生成を意味する。ノンスはランダムな値である。
「Sign」は、署名を意味する。
「Verify」は、署名の検証を意味する。
「Auth」は、子クライアントの認証を意味する。
「Gen kB,G」は、通信鍵の生成を意味する。
【0191】
ウェブ会議に参加中に、クライアント(A)は、ウェブ会議に参加中の各クライアントに対してノンスを送信する。ウェブ会議に参加中の各クライアントは、ノンスに対する署名を生成し、クライアント(A)に対して署名を送信する。クライアント(A)は、各署名を検証する。
その後、クライアント(C)が、離脱通知を出さずにウェブ会議から離脱した。
その後、クライアント(E)は、ウェブ会議に参加中の各クライアントに対してノンスを送信した。しかし、クライアント(C)から署名を受信できなかった。
この場合、クライアント(E)は、クライアント(C)がウェブ会議から離脱したことを各クライアントに対して通知する。
その後、クライアント(C)の親クライアントであったクライアント(B)が新たな通信鍵kB,Gを生成し、新たな通信鍵kB,Gが各クライアントに伝送される。
【0192】
図28に基づいて、検知処理の具体例を説明する。
クライアントの「要求部」は、確認要求部271を表す。
クライアントの「応答部」は、確認応答部272を表す。
クライアントの「記憶部」は、記憶部290を表す。
サーバの「管理部」は、検知管理部371を表す。
サーバの「記憶部」は、記憶部390を表す。
【0193】
ステップS701において、参加中の各クライアント装置200の確認要求部271は、確認タイミングであるか判定する。
確認タイミングは、離脱確認のための既定のタイミングである。例えば、参加通知の送信以後に一定周期で訪れる各時刻が確認タイミングとなる。
【0194】
クライアント(A)において、確認タイミングが検出された。
この場合、クライアント(A)の確認要求部271は、離脱確認要求をサーバ装置300へ送信する。
検知管理部371は、離脱確認要求を受信する。
離脱確認要求は、ウェブ会議から離脱したクライアント装置200を確認するためのデータである。離脱確認要求は、確認メッセージを含む。確認メッセージは、任意のメッセージであり、確認メッセージの再送の防止のためにノンスを含む。
【0195】
検知管理部371は、参加中のクライアント装置200として管理されている全てのクライアント装置200へ離脱確認要求を送信する。
クライアント(B)の確認応答部272は、離脱確認要求を受信する。
クライアント(C)の確認応答部272は、離脱確認要求を受信する。
【0196】
ステップS702において、クライアント(B)の確認応答部272は、署名秘密鍵を用いて、確認メッセージに対する署名を生成する。
確認応答部272は、離脱確認応答を生成し、離脱確認応答をサーバ装置300へ送信する。
検知管理部371は、離脱確認応答を受信する。
離脱確認応答は、離脱確認要求に対する応答である。離脱確認応答は、確認メッセージに対する署名とCL証明書と識別コードを含む。
【0197】
クライアント(C)の確認応答部272は、クライアント(B)と同じく、離脱確認応答をサーバ装置300へ送信する。
検知管理部371は、離脱確認応答を受信する。
【0198】
ステップS703において、検知管理部371は、管理データを生成する。
管理データは、各離脱確認応答と、参加クライアントリストと、を含む。
参加クライアントリストは、参加中のクライアント装置200として管理されているクライアント装置200の識別コードのリストである。
【0199】
検知管理部371は、管理データをクライアント(A)へ送信する。
クライアント(A)の代理通知部273は、管理データを受信する。
【0200】
ステップS704において、クライアント(A)の代理通知部273は、管理データに含まれる各離脱確認応答を検証する。
具体的には、代理通知部273は、CA証明書の中のCA公開鍵を用いて、CL証明書の中の署名を検証する。
CL証明書の中の署名が正しい場合、代理通知部273は、CL証明書の中の署名公開鍵を用いて、確認メッセージに対する署名を検証する。
確認メッセージに対する署名が正しい場合、離脱確認応答は正しい。
【0201】
代理通知部273は、いずれの正しい離脱確認応答の中の識別コードとも一致しない識別コードを参加クライアントリストから抽出する。
抽出される識別コードで識別されるクライアント装置200を離脱済みクライアントと称する。
離脱済みクライアントは、離脱通知を送信せずにウェブ会議から離脱したクライアント装置200である。
【0202】
離脱済みクライアントが存在する場合、クライアント(A)の代理通知部273は、離脱済みクライアントの代わりに離脱通知を送信する。
離脱通知に対する処理(離脱処理)は、実施の形態1で説明した通りである。
【0203】
検知処理の特徴を説明する。
ウェブ会議からの離脱済みを確認するための確認要求を受信した場合、ウェブ会議に参加中の各クライアント装置200は、確認要求に対する確認応答を送信する。
ウェブ会議に参加中の各クライアント装置200は、任意のタイミングになったときに、確認要求を送信し、ウェブ会議に参加中のクライアント装置からの確認応答を受信する。次に、クライアント装置200は、ウェブ会議から離脱済みでなく確認応答の送信元でないクライアント装置200を離脱済みクライアントとして検出する。そして、クライアント装置200は、離脱済みクライアントの離脱通知を送信する。
【0204】
***実施の形態2の効果***
実施の形態2により、メンバーがウェブ会議から黙って離脱した場合に対処することができる。
【0205】
***実施の形態のまとめ***
ウェブ会議に最初に参加したメンバーは、通信鍵を生成する。ウェブ会議に二番目以降に参加したメンバーは、参加済みのメンバーのうちの1人と認証および鍵共有を行う。ウェブ会議から離脱したメンバーが発生したら、離脱メンバーを認証したメンバーが、離脱メンバーが認証したメンバーと認証および鍵共有を行う。
【0206】
参加時の認証および鍵共有が成功したら、認証メンバーは自身の通信鍵にハッシュを施し、ハッシュ値を通信鍵として被認証メンバーに渡す。同時に、認証メンバーは、その旨を他の参加中メンバーに連絡する。連絡を受けた各メンバーは、自身の通信鍵にハッシュを施す。
【0207】
離脱時の認証および鍵共有がすんだら、離脱メンバーを認証したメンバーは、通信鍵を生成し、鍵共有を行ったメンバーに通信鍵を配布する。通信鍵を受け取ったメンバーは、鍵共有を行ったメンバーに通信鍵を配布する。
【0208】
ウェブ会議に最初に参加するメンバーは、メンバーリストを使って参加の可否を判定される。
【0209】
各メンバーが認証および鍵交換を行う相手は最大2人である。
【0210】
ウェブ会議を開設するメンバーは、参加メンバーのリストを生成し、署名を施してリストをサーバに送信し、会議用URLの発行を受ける。リストに記載された各メンバーは、必要に応じて次のように動作する。メンバーは、サーバからリストを受信し、メンバーの追加と削除をリストに加筆し、署名を施してリストをサーバに送信する。
【0211】
利用者の初期登録の際に、サーバは、本人確認を行い、確認された利用者を一意に識別する識別コードを発行する。利用者は、識別コードを含む証明書発行要求(CSR)をCAに送信する。CAは、識別コードの有無をサーバに問い合わせ、識別コードの登録があれば証明書を発行する。
【0212】
ウェブ会議中、1人のメンバーは任意のタイミングでノンスを生成し、他のメンバーに署名を要求する。他のメンバーは、ノンスに署名を施し、署名を要求したメンバーに証明書と共に署名を返信する。署名を要求したメンバーは、署名を検証し、黙って離脱したメンバーを検出する。検出後、退会処理(認証、鍵共有、通信鍵更新)が実行される。
【0213】
***実施の形態の補足***
サーバ装置300と認証局装置400は1つの装置で構成されてもよい。
【0214】
各実施の形態は、好ましい形態の例示であり、本開示の技術的範囲を制限することを意図するものではない。各実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【0215】
クライアント装置200、サーバ装置300および認証局装置400の各要素は、ソフトウェア、ハードウェア、ファームウェアまたはこれらの組み合わせのいずれで実現されてもよい。
クライアント装置200、サーバ装置300および認証局装置400の要素である「部」は、「処理」、「工程」、「回路」または「サーキットリ」と読み替えてもよい。
【符号の説明】
【0216】
100 ウェブ会議システム、101 ネットワーク、111 署名付きメンバーリスト、112 修正済みメンバーリスト、200 クライアント装置、201 プロセッサ、202 メモリ、203 補助記憶装置、204 通信装置、205 入出力インタフェース、210 準備部、211 CA証明書取得部、220 登録部、221 識別コード取得部、222 署名鍵生成部、223 CL証明書取得部、230 設定部、231 メンバーリスト生成部、232 会議情報取得部、233 メンバーリスト修正部、240 参加部、241 会議参加部、242 通信鍵生成部、243 鍵共有部、244 通信鍵更新部、245 通信鍵取得部、246 参加通知部、250 離脱部、251 離脱通知部、252 再共有部、253 新鍵生成部、254 新鍵伝送部、260 通信部、261 メッセージ送信部、262 メッセージ受信部、270 検知部、271 確認要求部、272 確認応答部、273 代理通知部、290 記憶部、300 サーバ装置、301 プロセッサ、302 メモリ、303 補助記憶装置、304 通信装置、305 入出力インタフェース、321 識別コード管理部、331 会議情報管理部、341 参加管理部、351 離脱管理部、361 通信管理部、371 検知管理部、390 記憶部、400 認証局装置、401 プロセッサ、402 メモリ、403 補助記憶装置、404 通信装置、405 入出力インタフェース、411 CA証明書発行部、421 CL証明書発行部、490 記憶部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28