(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-11
(45)【発行日】2024-06-19
(54)【発明の名称】通信プログラム、通信装置、及び通信方法
(51)【国際特許分類】
H04L 12/22 20060101AFI20240612BHJP
【FI】
H04L12/22
(21)【出願番号】P 2020123475
(22)【出願日】2020-07-20
【審査請求日】2023-04-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100094525
【氏名又は名称】土井 健二
(74)【代理人】
【識別番号】100094514
【氏名又は名称】林 恒徳
(72)【発明者】
【氏名】鈴木 大
【審査官】宮島 郁美
(56)【参考文献】
【文献】特開2005-311531(JP,A)
【文献】特開2009-130900(JP,A)
【文献】米国特許出願公開第2014/0095865(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-12/66,13/00,41/00-69/40
(57)【特許請求の範囲】
【請求項1】
ユーザと、前記ユーザに証明書を発行する発行者と、前記ユーザに証明書の送付を求める検証者と、通信を行う中継装置が有するプログラムであって、
前記発行者から、前記ユーザの証明書を受信し、記憶する証明書管理処理と、
前記発行者から、前記証明書の送付の可否に関する情報を含む送信ポリシーを受信し、記憶するポリシー管理処理と、
第1検証者への前記証明書の送付を前記ユーザから要求されたとき、前記第1検証者への前記証明書の送付が許可されているとき、前記第1検証者へ前記証明書を送付する送信処理とを、
前記中継装置が有するコンピュータに実行させる通信プログラム。
【請求項2】
前記証明書は、前記発行者により暗号化されており、
前記暗号化に使用された暗号鍵は、前記ユーザに送信され、前記ユーザに記憶される
請求項1記載の通信プログラム。
【請求項3】
前記暗号鍵は、前記ユーザによって、前記中継装置を介さずに、前記第1検証者に送付される
請求項2記載の通信プログラム。
【請求項4】
さらに、前記第1検証者への前記暗号鍵の転送を前記ユーザから要求されたとき、前記第1検証者への前記証明書の送付が許可されているとき、前記ユーザから送付された前記暗号鍵を、前記第1検証者へ転送する転送処理を、前記中継装置が有するコンピュータに実行させる
請求項2記載の通信プログラム。
【請求項5】
前記第1検証者は、前記暗号鍵を使用し、暗号化された前記証明書を
復号し、前記ユーザの認証を行う
請求項3又は4記載の通信プログラム。
【請求項6】
前記送信ポリシーは、前記証明書の送付を許可する検証者に関する情報を含む
請求項1記載の通信プログラム。
【請求項7】
前記送信ポリシーは、前記証明書の送付を許可しない検証者に関する情報を含む
請求項1記載の通信プログラム。
【請求項8】
ユーザと、前記ユーザに証明書を発行する発行者と、前記ユーザに証明書の送付を求める検証者と、通信を行う通信装置であって、
前記発行者から、前記ユーザの証明書を受信し、管理する証明書管理部と、
前記発行者から、前記証明書の送付の可否に関する情報を含む送信ポリシーを受信し、管理するポリシー管理部と、
第1検証者への前記証明書の送付を前記ユーザから要求されたとき、前記第1検証者への前記証明書の送付が許可されているとき、前記第1検証者へ前記証明書を送付する送信部と、
を、有する通信装置。
【請求項9】
ユーザと、前記ユーザに証明書を発行する発行者と、前記ユーザに証明書の送付を求める検証者と、通信を行う通信装置における通信方法であって、
前記発行者から、前記ユーザの証明書を受信し、管理し、
前記発行者から、前記証明書の送付の可否に関する情報を含む送信ポリシーを受信し、
管理し、
第1検証者への前記証明書の送付を前記ユーザから要求されたとき、前記第1検証者への前記証明書の送付が許可されているとき、前記第1検証者へ前記証明書を送付する
通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信プログラム、通信装置、及び通信方法に関する。
【背景技術】
【0002】
様々なサービスを利用する際に、サービスの利用者は、本人であることを証明するため、なんらかの証明書を提示することがある。証明書は,例えば、国が発行する住民票や免許証、学校が発行する卒業証明書などである。サービス提供者は、証明書を提示させることで、サービス利用者の属性(性別、生年月日など)や、サービス利用者が間違いなく本人であることを確認し、サービスを提供する。
【0003】
近年、電子署名技術を用いて、証明書をデジタル化する技術が普及している。証明書の発行者は、利用者に対して属性情報の確認を行い、確認した内容を含む電子証明書を利用者に発行する。
【0004】
デジタル証明書に関する技術は、以下の先行技術文献に記載されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2009-245370号公報
【文献】特開2016-195440号公報
【文献】特開2019-46036号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
デジタル証明書は、発行されたユーザによって、証明書の提示を求める検証者に提示される。しかし、証明書の発行者は、例えば、証明書に含まれる内容によって、証明書が特定の事業者に開示されることを望まない場合がある。また、例えば、偽造防止などのセキュリティの観点から、セキュリティ違反を犯す疑義のある事業者に、証明書が開示されることは好ましくない。
【0007】
そこで、一開示は、ユーザに発行した証明書を特定の事業者へ開示することを防止することができる、通信プログラム、通信装置、及び通信方法を提供する。
【課題を解決するための手段】
【0008】
ユーザと、前記ユーザに証明書を発行する発行者と、前記ユーザに証明書の送付を求める検証者と、通信を行う中継装置が有するプログラムであって、前記発行者から、前記ユーザの証明書を受信し、記憶する証明書管理処理と、前記発行者から、前記証明書の送付の可否に関する情報を含む送信ポリシーを受信し、記憶するポリシー管理処理と、第1検証者への前記証明書の送付を前記ユーザから要求されたとき、前記第1検証者への前記証明書の送付が許可されているとき、前記第1検証者へ前記証明書を送付する送信処理とを、前記中継装置が有するコンピュータに実行させる。
【発明の効果】
【0009】
一開示は、ユーザに発行した証明書を特定の事業者へ開示することを防止することができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、通信システム1の構成例を示す図である。
【
図2】
図2は、中継装置300の構成例を表す図である。
【
図3】
図3は、発行者用通信装置200の構成例を表す図である。
【
図4】
図4は、ユーザ用通信装置100の構成例を表す図である。
【
図5】
図5は、証明書の発行のシーケンスの例を示す図である。
【
図6】
図6は、証明書発行処理S200の処理フローチャートの例を示す図である。
【
図7】
図7は、送信ポリシー登録処理S300の処理フローチャートの例を示す図である。
【
図8】
図8は、送信ポリシーP100の例を示す図である。
【
図9】
図9は、証明書登録処理S301の処理フローチャートの例を示す図である。
【
図10】
図10は、暗号鍵記憶処理S100の処理フローチャートの例を示す図である。
【
図11】
図11は、証明書の送付のシーケンスの例を示す図である。
【
図12】
図12は、証明要求処理S101の処理フローチャートの例を示す図である。
【
図13】
図13は、証明書送信処理S302の処理フローチャートの例を示す図である。
【
図14】
図14は、暗号鍵の送付のシーケンスの例を示す図である。
【
図15】
図15は、第2の実施の形態における通信システム1の例を示す図である。
【
図16】
図16は、第3の実施の形態における暗号鍵の送付のシーケンスの例を示す図である。
【
図17】
図17は、第3の実施の形態における証明要求処理S101の処理フローチャートの例を示す図である。
【
図18】
図18は、暗号鍵転送処理S303の処理フローチャートの例を示す図である。
【発明を実施するための形態】
【0011】
[第1の実施の形態]
第1の実施の形態について説明する。
【0012】
<通信システム1の構成例>
図1は、通信システム1の構成例を示す図である。通信システム1は、ユーザ100、発行者200、中継装置300、及び検証者400を有する。通信システム1は、ユーザ100の証明書の発行及び証明書による本人認証を行う、本人認証システムである。なお、ユーザ100、発行者200、検証者400は、それぞれ複数存在してもよい。また、ユーザ100、発行者200、検証者400は、それぞれ、ユーザ100が使用する通信装置、発行者200が使用する通信装置、検証者400が使用する通信装置と同義である。以降、ユーザ100、発行者200、検証者400は、それぞれ、ユーザ100が使用する通信装置、発行者200が使用する通信装置、検証者400が使用する通信装置、と置き換えて読んでもよい。
【0013】
通信システム1において、各装置は、ネットワークを介して接続される。ネットワークは、例えば、インターネットやローカルネットワークを含む。
【0014】
ユーザ100は、例えば、証明書の発行を依頼するユーザや、サービスを利用する利用者である。
【0015】
発行者200は、ユーザ100に対して証明書を発行する者であり、例えば、企業や公共機関である。
【0016】
検証者400は、ユーザ100に対して本人証明を要求する者であり、例えば、サービスを提供するサービス提供者やサービス提供企業である。
【0017】
中継装置300は、デジタルで発行される証明書の管理や中継(送受信)を行う装置であり、例えば、サーバマシンやハブ機能を有する通信装置である。
【0018】
ユーザ100と発行者200との間では、証明書の発行や、ユーザ100の本人登録が行われる(S1)。証明書の発行は、例えば、ユーザ100の要求や、ユーザ100が免許の試験に合格したことなどを契機に行われる。本人登録は、ユーザの証明書発行の要求時や、免許の試験前などに行われる。
【0019】
ユーザ100と検証者400との間では、本人確認が行われる(S2)。本人確認は、検証者400が、発行者200に発行されたユーザ100の証明書を確認することで実行される。本人確認は、例えば、ユーザ100が検証者400の提供するサービスを享受するとき、検証者400からの要求に応じて行われる。
【0020】
中継装置300は、ユーザ100、発行者200、及び検証者400間の、証明書に関する通信を中継する。中継装置300は、例えば、ユーザ100に発行された証明書を記憶(管理)し、ユーザ100の要求に応じて、検証者400に証明書を送信する。このとき、中継装置300は、発行者200の望まない相手への、証明書の送信を行わないよう制御する。
【0021】
<中継装置300の構成例>
図2は、中継装置300の構成例を表す図である。中継装置300は、CPU(Central Processing Unit)310、ストレージ320、メモリ330、及び通信回路340を有する。
【0022】
ストレージ320は、プログラムやデータを記憶する、フラッシュメモリ、HDD(Hard Disk Drive)、又はSSD(Solid State Drive)などの補助記憶装置である。ストレージ320は、送信ポリシー登録プログラム321、証明書登録プログラム322、証明書送信プログラム323、及び通信中継プログラム324を記憶する。
【0023】
メモリ330は、ストレージ320に記憶されているプログラムをロードする領域である。また、メモリ330は、プログラムがデータを記憶する領域としても使用されてもよい。
【0024】
CPU310は、ストレージ320に記憶されているプログラムを、メモリ330にロードし、ロードしたプログラムを実行し、各部を構築し、各処理を実現するプロセッサである。
【0025】
通信回路340は、他の装置と通信を行う回路である。通信回路340は、ネットワークを介して、他の装置とデータの送受信を行う。通信回路340は、例えば、NIC(Network Interface Card)である。
【0026】
CPU310は、送信ポリシー登録プログラム321を実行することで、ポリシー管理部を構築し、送信ポリシー登録処理を行う。送信ポリシー登録処理は、発行者200から送信ポリシーを受信し、送信ポリシーを内部メモリなどに記憶する処理である。送信ポリシーは、例えば、発行者200ごと、又はユーザ100ごとに存在する。
【0027】
CPU310は、証明書登録プログラム322を実行することで、証明書管理部を構築し、証明書登録処理を行う。証明書登録処理は、発行者200からユーザ100の証明書を受信し、証明書を内部メモリなどに記憶する処理である。証明書登録は、例えば、発行者200ごと、又はユーザ100ごとに存在する。なお、管理する証明書は、発行者200により暗号化された証明書である。
【0028】
CPU310は、証明書送信プログラム323を実行することで、送信部を構築し、証明書送信処理を行う。証明書送信処理は、ユーザ100からの要求に応じて、送信ポリシーに従い、証明書を検証者400に送信する処理である。なお、送信する証明書は、暗号化されている。
【0029】
CPU310は、通信中継プログラム324を実行することで、中継部を構築し、通信中継処理を行う。通信中継処理は、発行者200、ユーザ100、及び検証者400間の通信を中継する。中継装置300は、通信中継処理において、例えば、ユーザ100が検証者400に送信する暗号鍵を中継する。中継装置300は、通信中継処理において、例えば、中継するメッセージ内容を隠蔽し、自装置には残さないようにする。
【0030】
<発行者用通信装置200の構成例>
図3は、発行者用通信装置200の構成例を表す図である。発行者用通信装置200は、CPU210、ストレージ220、メモリ230、及び通信回路240を有する。
【0031】
ストレージ220は、プログラムやデータを記憶する、フラッシュメモリ、HDD、又はSSDなどの補助記憶装置である。ストレージ220は、証明書発行プログラム221を記憶する。
【0032】
メモリ230は、ストレージ220に記憶されているプログラムをロードする領域である。また、メモリ230は、プログラムがデータを記憶する領域としても使用されてもよい。
【0033】
CPU210は、ストレージ220に記憶されているプログラムを、メモリ230にロードし、ロードしたプログラムを実行し、各部を構築し、各処理を実現するプロセッサである。
【0034】
通信回路240は、他の装置と通信を行う回路である。通信回路240は、ネットワークを介して、他の装置とデータの送受信を行う。通信回路240は、例えば、NICである。
【0035】
CPU210は、証明書発行プログラム221を実行することで、発行部を構築し、証明書発行処理を行う。証明書発行処理は、例えば、ユーザ100の要求に応じて、ユーザ100の証明書を発行し、証明書を暗号化し、暗号化した証明書を中継装置300に送信し、暗号鍵をユーザ100に送信する処理である。また、証明書発行処理は、中継装置300に送信ポリシーを送信する処理である。
【0036】
<ユーザ用通信装置100の構成例>
図4は、ユーザ用通信装置100の構成例を表す図である。ユーザ用通信装置100は、CPU110、ストレージ120、メモリ130、及び通信回路140を有する。
【0037】
ストレージ120は、プログラムやデータを記憶する、フラッシュメモリ、HDD、又はSSDなどの補助記憶装置である。ストレージ120は、暗号鍵登録プログラム121及び証明要求プログラム122を記憶する。
【0038】
メモリ130は、ストレージ120に記憶されているプログラムをロードする領域である。また、メモリ130は、プログラムがデータを記憶する領域としても使用されてもよい。
【0039】
CPU110は、ストレージ120に記憶されているプログラムを、メモリ130にロードし、ロードしたプログラムを実行し、各部を構築し、各処理を実現するプロセッサである。
【0040】
通信回路140は、他の装置と通信を行う回路である。通信回路140は、ネットワークを介して、他の装置とデータの送受信を行う。通信回路140は、例えば、NICである。
【0041】
CPU110は、暗号鍵登録プログラム121を実行することで、暗号鍵管理部を構築し、暗号鍵登録処理を行う。暗号鍵登録処理は、発行者200から暗号鍵を受信し、記憶する処理である。
【0042】
CPU110は、証明要求プログラム122を実行することで、要求部を構築し、証明要求処理を行う。証明要求処理は、ユーザの必要(検証者の要求)に応じて、証明書を送信したい検証者400に対する証明書の送付(送信)を中継装置300に要求する処理である。ユーザ100は、証明要求処理において、暗号鍵を証明書を送信したい検証者400に送信する。
【0043】
<本人認証処理>
以下に、本人認証処理について説明する。なお、本人認証処理は、証明書の発行、検証者400への証明書の送付、及び検証者400への暗号鍵の送付を含む。以下、証明書の発行、証明書の送付、及び暗号鍵の送付、それぞれについて説明する。
【0044】
<1.証明書の発行>
証明書に発行について説明する。
図5は、証明書の発行のシーケンスの例を示す図である。ユーザ100は、証明書の発行を発行者200に要求する(S10)。発行者200は、ユーザ100の本人確認等を行い、ユーザ100に証明書の発行を許可する(S10)。発行者200は、証明書を発行するとき、証明書発行処理を行う(S200)。
【0045】
図6は、証明書発行処理S200の処理フローチャートの例を示す図である。発行者200は、証明書の発行契機が発生するのを待ち受ける(S200-1のNo)。証明書の発行契機は、例えば、ユーザ100の要求に応じて証明書の発行を許可したことなどである。
【0046】
発行者200は、証明書の発行契機が発生すると(S200-1のYes)、送信ポリシーを中継装置300に送信する(S200-2)。送信ポリシーは、証明書の送信を行ってよいか否かを示すポリシーであって、例えば、送信を許可する検証者400の識別情報の一覧などを含む。
【0047】
発行者200は、ユーザ100の証明書を発行する(S200-3)。発行される証明書は、例えば、デジタル署名で使用されるデジタルの証明書である。
【0048】
発行者200は、発行した証明書を暗号化する(S200-4)。発行者200は、暗号化に使用する暗号を、ユーザごとに生成する。
【0049】
発行者200は、暗号化した証明書を中継装置300に送信する(S200-5)。なお、発行者200は、証明書がユーザ100のものであることを、中継装置300に通知する。
【0050】
発行者200は、暗号鍵をユーザ100に送信し(S200-6)、処理を終了する。
【0051】
図5のシーケンスに戻り、発行者200は、証明書発行処理S200において、送信ポリシーP100を中継装置300に送信する(S11、
図6のS200-2)。
【0052】
中継装置300は、送信ポリシーP100を受信すると(S11)、送信ポリシー登録処理を行う(S300)。
【0053】
図7は、送信ポリシー登録処理S300の処理フローチャートの例を示す図である。中継装置300は、発行者200から送信ポリシーを受信するのを待ち受ける(S300-1のNo)。中継装置300は、送信ポリシーを受信すると(S300-1のYes)、ユーザ100と対応づけて送信ポリシーを登録(更新)し(S300-2)、処理を終了する。
【0054】
ここで、送信ポリシーについて説明する。
図8は、送信ポリシーP100の例を示す図である。送信ポリシーは、例えば、発行者200が証明書の送付を許可する検証者400の一覧である。送信ポリシーは、例えば、ユーザ100ごとに存在する。また、送信ポリシーは、発行者200ごとに存在してもよい。
図8の送信ポリシーP100は、検証者400-1及び検証者400-2に対して、証明書を送付することを許可するものである。
【0055】
なお、送信ポリシーは、例えば、発行者200が証明書の送付を許可しない検証者400の一覧であってもよい。この場合、送信ポリシーに記載された以外の検証者に対して、証明書の送付が許可される。
【0056】
図5のシーケンスに戻り、中継装置300は、送信ポリシー登録処理S300において、送信ポリシーP100を記憶する(
図7のS300-2)。
【0057】
一方、発行者200は、証明書発行処理S200において、ユーザ100の証明書C100を中継装置300に送信する(S11、
図6のSS200-5)。証明書C100は、
図6の証明書発行処理S200の処理S200-4において、暗号化された証明書である。
【0058】
中継装置300は、証明書C100を受信すると(S11)、証明書登録処理を行う(S301)。
【0059】
図9は、証明書登録処理S301の処理フローチャートの例を示す図である。中継装置300は、発行者200から証明書を受信するのを待ち受ける(S301-1のNo)。中継装置300は、証明書を受信すると(S301-1のYes)、ユーザ100及び発行者200と対応づけて証明書を登録(更新)し(S301-2)、処理を終了する。
【0060】
図5のシーケンスに戻り、中継装置300は、証明書登録処理S301において、証明書C100を記憶する(
図7のS301-2)。
【0061】
一方、発行者200は、証明書発行処理S200において、証明書C100の暗号化に使用した暗号鍵E100を、ユーザ100に送信する(S13、
図6のSS200-6)。なお、暗号鍵E100の送信は、
図5においては中継装置300を介して行われるが、中継装置300を介さなくてもよい。
【0062】
ユーザ100は、暗号鍵E100を受信すると、暗号鍵記憶処理を行う(S100)。
【0063】
図10は、暗号鍵記憶処理S100の処理フローチャートの例を示す図である。ユーザ100は、発行者200から暗号鍵を受信するのを待ち受ける(S100-1のNo)。ユーザ100は、暗号鍵を受信すると(S100-1のYes)、発行者200と対応づけて暗号鍵を内部メモリなどに記憶し(S100-2)、処理を終了する。
【0064】
図5のシーケンスに戻り、ユーザ100は、暗号鍵記憶処理S100において、受信した暗号鍵E100を記憶する(
図10のS100-2)。
【0065】
<2.証明書の送付>
次に、証明書の送付について説明する。
図11は、証明書の送付のシーケンスの例を示す図である。ユーザ100は、本人であることを証明する本人証明を検証者400に対して行うとき、証明要求処理をおこなう(S101)。
【0066】
図12は、証明要求処理S101の処理フローチャートの例を示す図である。ユーザ100は、証明の必要(本人認証を行う契機)が発生するのを待ち受ける(S101-1のNo)。ユーザ100は、証明の必要が発生すると(S101-1のYes)、証明したい(証明書の送付を要求する)検証者の一覧を含む、証書送信要求を中継装置300に送信する(S101-2)。
【0067】
そして、ユーザ100は、記憶している暗号鍵を、証明したい検証者(一覧の検証者)へ送信し(S101-3)、処理を終了する。
【0068】
図11のシーケンスに戻り、ユーザ100は、証明要求処理S101において、証明書送信要求を送信する(S20、
図12のS101-2)。なお、証明書送信要求には、ユーザ100が証明書の送付を要求する検証者400-1~400-3を含む一覧が含まれるものとする。
【0069】
中継装置300は、証明書送信要求を受信すると(S20)、証明書送信処理を行う(S302)。
【0070】
図13は、証明書送信処理S302の処理フローチャートの例を示す図である。中継装置300は、証明書送信要求を受信するのを待ち受ける(S302-1のNo)。中継装置300は、証明書送信要求を受信すると(S302-1のYes)、ユーザ100の送信ポリシーと、証明書送信要求に含まれる検証者400の一覧を比較する(S302-2)。そして、中継装置300は、送信ポリシーに合致する検証者400に、ユーザ100の証明書を送信し(S302-3)、処理を終了する。
【0071】
図11のシーケンスに戻り、中継装置300は、証明書送信処理S302において、送信ポリシーP100と、証明書送信要求に含まれる検証者400-1~400-3を比較する(
図13のS302-2)。ここで、送信ポリシーP100は、検証者400-1及び2に対する証明書の送付が許可されていることが示されている。一方、送信ポリシーP100は、検証者400-3に対する証明書の送付を許可していないことを示している。よって、中継装置300は、検証者400-1及び2に対して証明書を送信し、検証者400-3には証明書を送信しないと判定し、検証者400-1及び2に証明書を送信する(S21、S22、
図13のS302-3)。
【0072】
検証者400-1及び2は、例えば、受信した証明書を記憶する。
【0073】
<3.暗号鍵の送付>
次に、暗号鍵の送付について説明する。
図14は、暗号鍵の送付のシーケンスの例を示す図である。ユーザ100は、証明要求処理S101において、証明したい検証者400-1~3に、記憶する暗号鍵E100を送信する(S30、
図12のS101-3)。なお、暗号鍵E100の送信は、
図14においては、中継装置300を介して行われるが、中継装置300を介さなくてもよい。
【0074】
検証者400-1~3は、例えば、受信した暗号鍵を記憶する。
【0075】
一連の処理が終了すると、検証者400-1及び2は、証明書C100と暗号鍵E100を記憶する。すなわち、発行者200が証明書の送付を許可した検証者400-1及び2は、暗号化された証明書C100と、暗号鍵E100を有するので、暗号鍵E100を使って証明書C100を復号し、ユーザ100が発行者200によって証明書を発行されている本人であることを確認することができる。
【0076】
一方、発行者200が証明書の送付を許可しない検証者400-3は、暗号鍵E100は有するが、証明書C100を有さないため、ユーザ100の本人認証ができない。
【0077】
第1の実施の形態において、中継装置300は証明書を管理し、ユーザ100は暗号鍵を管理する。そして、中継装置300は、送信ポリシーに従い、証明書の送付先を決めるため、発行者200が許可しない検証者400に証明書が送付されることを防止することができる。
【0078】
[第2の実施の形態]
第2の実施の形態について説明する。第2の実施の形態において、中継装置300は暗号鍵を管理し、ユーザ100は、証明書を管理する。
図15は、第2の実施の形態における通信システム1の例を示す図である。
図15に示すように、中継装置300は、暗号鍵E100を管理する。一方、ユーザ100は、証明書C100を管理する。以降、第1の実施の形態における、証明書C100と暗号鍵E100を入れ替えて(読み替えて)各処理を実行することで、検証者400-1及び2が証明書C100と暗号鍵E100を有し、検証者400-3が証明書C100のみを有する状態となる。これにより、第1の実施の形態と同様に、検証者400-1及び2は、ユーザ100の本人認証が行えるが、検証者400-3は、ユーザ100の本人認証が行えない。すなわち、証明書C100と暗号鍵E100の両方がないと、ユーザ100の本人認証が行えないため、証明書と暗号鍵の管理をユーザ100と中継装置300で変更しても、第1の実施の形態と同様の効果を得ることができる。
【0079】
[第3の実施の形態]
第3の実施の形態について説明する。第3の実施の形態において、中継装置300は、暗号鍵を送信ポリシーに従い送信する。
【0080】
図16は、第3の実施の形態における暗号鍵の送付のシーケンスの例を示す図である。ユーザ100は、証明要求処理S101を行う。
【0081】
図17は、第3の実施の形態における証明要求処理S101の処理フローチャートの例を示す図である。処理S101-1及び2については、
図12の処理S101-1及び2と同様である。
【0082】
ユーザ100は、証明要求処理S101において、証明したい検証者の一覧を含む暗号鍵転送要求に、暗号鍵を添付し、中継装置300に送信し(S101-4)、処理を終了する。
【0083】
図16のシーケンスに戻り、ユーザ100は、証明要求処理S101において、検証者400-1~3を含み、暗号鍵E100を添付した暗号鍵転送要求を、中継装置300に送信する(S40、
図17のS101-4)。
【0084】
中継装置300は、暗号鍵転送要求を受信すると(S40)、暗号鍵転送処理を行う(S303)。
【0085】
図18は、暗号鍵転送処理S303の処理フローチャートの例を示す図である。中継装置300は、暗号鍵転送要求を受信するのを待ち受ける(S303-1のNo)。中継装置300は、暗号鍵転送要求を受信すると(S303-1のYes)、ユーザ100の送信ポリシーと、暗号鍵転送要求に含まれる検証者400の一覧を比較する(S303-2)。そして、中継装置300は、送信ポリシーに合致する検証者400に、暗号鍵転送要求に添付された暗号鍵を転送し(S303-3)、処理を終了する。
【0086】
図16のシーケンスに戻り、中継装置300は、暗号鍵転送処理S303において、送信ポリシーP100と、暗号鍵転送要求に含まれる検証者400-1~400-3を比較する(
図18のS303-2)。中継装置300は、証明書C100と同様に、検証者400-1及び2に対して暗号鍵E100を送信し、検証者400-3には暗号鍵E100を送信しないと判定し、検証者400-1及び2に暗号鍵E100を送信する(S41、S42、
図18のS303-3)。
【0087】
第3の実施の形態では、発行者200が証明書の送付を許可しない検証者400-3には、証明書C100及び暗号鍵E100を送信しない。第1及び第2の実施の形態では、発行者200が証明書の送付を許可しない検証者400に、暗号鍵だけ(もしくは証明書だけ)は送付される。証明書と暗号鍵は、両方が揃わないと復号することができないため、発行者200が証明書の送付を許可しない検証者はいずれか一方しか有さないことで、発行者200の要求は達成できる。しかし、発行者200が証明書の送付を許可しない検証者が、例えば、何らかの手違いや不正な手段で、もう一方の暗号鍵又は証明書を入手した場合、復号が可能となってしまう。これに対して、第3の実施の形態では、発行者200が証明書の送付を許可しない検証者に対してどちらも送信しないことで、発行者200が証明書の送付を許可しない検証者が復号を行える状態(両方を入手した状態)になる可能性を低くすることができる。
【0088】
さらに、中継装置300は、暗号鍵を管理せず、ユーザ100から受信した暗号鍵を転送するだけであるため、中継装置300で暗号鍵と証明書の両方が揃わない。そのため、中継装置300に対するセキュリティは、第1及び第2の実施の形態と同様である。
【0089】
[その他の実施の形態]
発行者200は、証明書発行処理S200において、証明書と送信ポリシーを中継装置300に送信する。しかし、発行者200は、任意のタイミングで、証明書や送信ポリシーを中継装置300に送信してもよい。発行者200は、例えば、有効期限の変更、ユーザの住所変更など、証明書の内容に変更があったとき、証明書を再発行し、再発行した証明書を中継装置300に送信してもよい。また、発行者200は、例えば、証明書の送付を許可する検証者に変更があった場合、送信ポリシーを更新し、更新した送信ポリシーを中継装置300に送信してもよい。中継装置300は、任意のタイミングで受信した送信ポリシーや証明書を、自装置のメモリ内に記憶(更新)する。これにより、常に最新の状態の証明書及び送信ポリシーを維持することができる。
【0090】
また、中継装置300は、例えば、ユーザ100が証明書の送付を要求する検証者のうち、1以上の検証者に証明書を送信しなかった場合、証明書を送信しなかった旨をユーザ100に通知してもよい。これにより、ユーザ100は、証明書が送信されなかった検証者400を把握することができる。
【0091】
以下、まとめると付記のようになる。
【0092】
(付記1)
ユーザと、前記ユーザに証明書を発行する発行者と、前記ユーザに証明書の送付を求める検証者と、通信を行う中継装置が有するプログラムであって、
前記発行者から、前記ユーザの証明書を受信し、記憶する証明書管理処理と、
前記発行者から、前記証明書の送付の可否に関する情報を含む送信ポリシーを受信し、記憶するポリシー管理処理と、
第1検証者への前記証明書の送付を前記ユーザから要求されたとき、前記第1検証者への前記証明書の送付が許可されているとき、前記第1検証者へ前記証明書を送付する送信処理とを、
前記中継装置が有するコンピュータに実行させる通信プログラム。
【0093】
(付記2)
前記証明書は、前記発行者により暗号化されており、
前記暗号化に使用された暗号鍵は、前記ユーザに送信され、前記ユーザに記憶される
付記1記載の通信プログラム。
【0094】
(付記3)
前記暗号鍵は、前記ユーザによって、前記中継装置を介さずに、前記第1検証者に送付される
付記2記載の通信プログラム。
【0095】
(付記4)
さらに、前記第1検証者への前記暗号鍵の転送を前記ユーザから要求されたとき、前記第1検証者への前記証明書の送付が許可されているとき、前記ユーザから送付された前記暗号鍵を、前記第1検証者へ転送する転送処理を、
前記中継装置が有するコンピュータに実行させる、付記2記載の通信プログラム。
【0096】
(付記5)
前記第1検証者は、前記暗号鍵を使用し、暗号化された前記証明書を復号し、前記ユーザの認証を行う
付記3又は4記載の通信プログラム。
【0097】
(付記6)
前記ポリシー管理処理は、前記送信ポリシーを、前記ユーザごと及び前記発行者ごとに管理する
付記1記載の通信プログラム。
【0098】
(付記7)
前記送信ポリシーは、前記証明書の送付を許可する検証者に関する情報を含む
付記1記載の通信プログラム。
【0099】
(付記8)
前記送信ポリシーは、前記証明書の送付を許可しない検証者に関する情報を含む
付記1記載の通信プログラム。
【0100】
(付記9)
ユーザと、前記ユーザに証明書を発行する発行者と、前記ユーザに証明書の送付を求める検証者と、通信を行う通信装置であって、
前記発行者から、前記ユーザの証明書を受信し、管理する証明書管理部と、
前記発行者から、前記証明書の送付の可否に関する情報を含む送信ポリシーを受信し、管理するポリシー管理部と、
第1検証者への前記証明書の送付を前記ユーザから要求されたとき、前記第1検証者への前記証明書の送付が許可されているとき、前記第1検証者へ前記証明書を送付する送信部と、
を、有する通信装置。
【0101】
(付記10)
ユーザと、前記ユーザに証明書を発行する発行者と、前記ユーザに証明書の送付を求める検証者と、通信を行う通信装置における通信方法であって、
前記発行者から、前記ユーザの証明書を受信し、管理し、
前記発行者から、前記証明書の送付の可否に関する情報を含む送信ポリシーを受信し、管理し、
第1検証者への前記証明書の送付を前記ユーザから要求されたとき、前記第1検証者への前記証明書の送付が許可されているとき、前記第1検証者へ前記証明書を送付する
通信方法。
【0102】
(付記11)
ユーザと、発行者と、検証者と、通信装置を有する通信システムであって、
発行者は、前記ユーザに証明書を発行し、前記証明書を暗号鍵を使って暗号化し、前記暗号化した証明書を前記通信装置に送信し、前記暗号鍵を前記ユーザに送信し、前記証明書の送付の可否に関する情報を含む送信ポリシーを前通信装置に送信し、
前記ユーザは、前記受信した暗号鍵を記憶し、
前記通信装置は、前記受信した証明書及び送信ポリシーを記憶し、
前記ユーザは、第1検証者への前記証明書の送付を、前記通信装置に要求し、前記暗号鍵を前記第1検証者へ送信し、
前記通信装置は、前記要求に応じて、前記第1検証者への前記証明書の送付が、前記送信ポリシーにおいて許可されている場合、前記第1検証者へ前記証明書を送付し、
前記第1検証者は、前記暗号鍵を受信し、前記証明書を受信した場合、前記証明書を前記受信した暗号鍵を使用して復号し、前記ユーザの認証を行う
通信システム。
【符号の説明】
【0103】
1 :通信システム
100 :ユーザ(ユーザ用通信装置)
110 :CPU
120 :ストレージ
121 :暗号鍵登録プログラム
122 :証明要求プログラム
130 :メモリ
140 :通信回路
200 :発行者(発行者用通信装置)
210 :CPU
220 :ストレージ
221 :証明書発行プログラム
230 :メモリ
240 :通信回路
300 :中継装置
310 :CPU
320 :ストレージ
321 :送信ポリシー登録プログラム
322 :証明書登録プログラム
323 :証明書送信プログラム
324 :通信中継プログラム
330 :メモリ
340 :通信回路
400 :検証者