(57)【要約】【課題】  ＩＰ通信網を介して音声通話を実現する通信システムにおいて，安全性が高く，かつユーザにとって簡便な方法でユーザの認証を行う。【解決手段】  ユーザの識別情報とユーザの秘密鍵を記憶するユーザ情報記憶部，及びユーザの秘密鍵によりデータを組み替えるデータ処理部が設けられるＰＫＩトークンと，上記データ処理部にサーバに送信するデータを暗号化させるＰＫＩトークン制御部，及び暗号化されたデータをサーバに送信する送信部を備える通信端末と，ユーザの識別情報とユーザの公開鍵を含む証明書を記憶するユーザ証明書記憶部，暗号化されたデータを通信端末から受信する受信部，受信したデータをユーザの公開鍵で復号化して復号化されたデータの正当性を判断するユーザ正当性判断部，及びユーザ正当性判断部による正当性の判断結果に基づいて通信端末との通信の許否を決定する通信制御部を備えるサーバと，を含む通信システムを提供する。【選択図】    図１
2006303751.tif 000002
【特許請求の範囲】
【請求項１】
通信端末とサーバとがＩＰ通信網を介して音声データを送受信する通信方法において；
ユーザの識別情報および前記ユーザの秘密鍵が格納された携帯モジュールが前記通信端末に接続されるモジュール接続ステップと；
前記通信端末が，前記ユーザの識別情報を含む通信開始要求を前記サーバに送信する開始要求ステップと：
前記開始要求を受信した前記サーバが，チャレンジデータを生成し，前記開始要求に含まれるユーザの識別情報によって識別されるユーザの公開鍵で前記チャレンジデータを暗号化し，前記暗号化したチャレンジデータを含む，認証データの送信要求を前記通信端末に送信する認証データ送信要求ステップと；
前記認証データ送信要求を受信した前記通信端末が，前記暗号化されたチャレンジデータを前記携帯モジュールに提供し，前記携帯モジュールをして前記ユーザの秘密鍵により前記チャレンジデータを復号化せしめる復号化ステップと；
前記通信端末が，前記復号化されたチャレンジデータのハッシュ値を求める演算ステップと；
前記通信端末が，前記ハッシュ値を前記携帯モジュールに提供し，前記携帯モジュールをして前記ユーザの秘密鍵により前記ハッシュ値を暗号化せしめる暗号化ステップと；
前記通信端末が，前記暗号化されたハッシュ値を前記サーバに送信するデータ送信ステップと；
前記ハッシュ値を受信したサーバが，前記ユーザの公開鍵により前記ハッシュ値を復号化し，前記復号化されたハッシュ値の正当性を前記チャレンジデータに基づいて判断する正当性判断ステップと；
前記サーバが，前記正当性の判断の結果，前記復号化されたハッシュ値が正当である場合に前記通信端末との通信を開始する通信開始ステップと；
を含むことを特徴とする通信方法。
【請求項２】
前記通信端末が，前記携帯モジュールとの接続が切断されたことを検知する切断検知ステップと；
前記切断検知ステップにおいて前記携帯モジュールとの接続の切断が検知された場合に，前記通信端末が前記サーバに通知を送信する切断通知ステップと；
前記切断通知を受信したサーバが，前記通信端末との通信を終了する通信終了ステップと；
を前記通信開始ステップの後に含むことを特徴とする請求項１に記載の通信方法。
【請求項３】
前記切断通知ステップにおいて，前記通信端末が前記サーバに送信する前記通知には前記チャレンジデータのハッシュ値が含まれ，
前記通信終了ステップにおいて，前記サーバは前記ハッシュ値の正当性を前記チャレンジデータに基づいて判断し，判断の結果前記ハッシュ値が正当な値である場合に前記通信端末との通信を終了することを特徴とする，請求項２に記載の通信方法。
【請求項４】
前記認証データ送信要求ステップにおいて，前記サーバは自己の秘密鍵によって電子署名を生成して該電子署名を前記認証データ送信要求とともに前記通信端末に送信し，
前記通信端末が，前記サーバの公開鍵を用いて前記電子署名の正当性を判断し，判断の結果，前記電子署名が正当であれば前記復号化ステップに進行するサーバ正当性判断ステップをさらに含むことを特徴とする，請求項１に記載の通信方法。
【請求項５】
通信端末とサーバとがＩＰ通信網を介して音声データを送受信する通信システムにおいて；
ユーザの識別情報および前記ユーザの秘密鍵を記憶するユーザ情報記憶部と，前記ユーザの秘密鍵によってデータを組み替えるデータ処理部とが設けられ，前記通信端末に接続可能な携帯モジュールを備え，
前記通信端末は，
前記携帯モジュールの前記データ処理部をして，前記サーバに送信するデータを組み替えて暗号化せしめるモジュール制御部と；
前記暗号化されたデータを前記サーバに送信する送信部と；を備え，
前記サーバは，
前記ユーザの識別情報および前記ユーザの公開鍵を含む証明書を記憶するユーザ証明書記憶部と；
前記暗号化されたデータを前記通信端末から受信する受信部と；
前記受信部により受信したデータを前記ユーザの公開鍵で復号化し，復号化された前記データの正当性を判断するユーザ正当性判断部と；
前記ユーザ正当性判断部による正当性の判断結果に基づいて前記通信端末との通信の許否を決定する通信制御部と；
を備えることを特徴とする通信システム。
【請求項６】
前記サーバは，前記通信端末に送信するデータを前記ユーザの公開鍵で暗号化する送信データ作成部を備え，
前記通信端末の前記モジュール制御は，前記携帯モジュールの前記データ処理部をして，前記サーバから受信したデータを組み替えて復号化せしめることを特徴とする，請求項５に記載の通信システム。
【請求項７】
前記サーバは，自己の秘密鍵を記憶するサーバ情報記憶部と，
前記通信端末に送信するデータを前記自己の秘密鍵で暗号化する送信データ作成部と，を備え，
前記通信端末は，前記サーバの公開鍵を取得するサーバ情報取得部と，
前記サーバから受信したデータを前記サーバの公開鍵で復号化し，復号化された前記データの正当性を判断するサーバ正当性判断部と；
前記サーバ正当性判断部による正当性の判断結果に基づいて前記サーバとの通信の許否を決定する通信制御部と；
を備えることを特徴とする，請求項５に記載の通信システム。
【請求項８】
サーバとの間でＩＰ通信網を介して音声データを送受信する通信端末において；
ユーザの識別情報および前記ユーザの秘密鍵を記憶するユーザ情報記憶部と，前記ユーザの秘密鍵によってデータを組み替えるデータ処理部とが設けられた携帯モジュールと接続可能であり，
前記携帯モジュールの前記データ処理部をして，前記サーバに送信するデータを組み替えて暗号化せしめるモジュール制御部と；
前記暗号化されたデータを前記サーバに送信する送信部と；を備え，
前記サーバにより，該サーバに送信したデータを前記ユーザの公開鍵で復号化され，復号化された前記データの正当性に基づいて該サーバとの通信の許否を判断されることを特徴とする通信端末。
【請求項９】
前記サーバから，前記ユーザの公開鍵で暗号化したデータを受信する受信部を備え，
前記モジュール制御部は，前記携帯モジュールの前記データ処理部をして，前記サーバから受信したデータを組み替えて復号化せしめることを特徴とする，請求項８に記載の通信端末。
【請求項１０】
前記サーバから，前記サーバの秘密鍵で暗号化したデータを受信する受信部と；
前記サーバの公開鍵を取得するサーバ情報取得部と，
前記受信部により受信した前記データを前記サーバの公開鍵で復号化し，復号化された前記データの正当性を判断するサーバ正当性判断部と；
前記サーバ正当性判断部による正当性の判断結果に基づいて前記サーバとの通信の許否を決定する通信制御部と；
を備えることを特徴とする，請求項８に記載の通信端末。
【請求項１１】
前記携帯モジュールの前記ユーザ情報記憶部には，該携帯モジュールの使用が許可されるユーザを認証するユーザ認証データが記憶され，
前記ユーザに前記ユーザ認証データを入力せしめ，前記入力されたユーザ認証データと前記携帯モジュールに格納されている前記ユーザ認証データとに基づいて，前記携帯モジュールの使用の許否を決定するユーザ認証部を備えることを特徴とする，請求項８に記載の通信端末。
【請求項１２】
前記モジュール制御部は，前記携帯モジュールとの接続が切断されたことを検知し；
前記送信部は，前記モジュール制御部により前記携帯モジュールとの接続の切断が検知された場合に前記サーバに通知を送信することを特徴とする請求項８に記載の通信端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，通信システム，通信方法および通信端末に関する。
【背景技術】
【０００２】
インターネットの普及，インターネット上で送受信可能なデータの大容量化および送受信の高速化に伴い，インターネットプロトコル（以下，ＩＰと称する。）を基礎とする様々なサービスが提供され始めている。ＩＰ通信網を介して音声通話を実現するＶｏｉｃｅ  Ｏｖｅｒ  ＩＰ（以後，ＶｏＩＰと称する。）もその１つである。
【０００３】
また，近年では，パーソナルコンピュータ（以後，ＰＣと称する。）に限らず，例えば，テレビ，ゲーム機器，カーナビゲーション装置，携帯電話，情報家電などの様々な機器からインターネットに接続してＩＰを基礎とするサービスを受けることができる。
【０００４】
上記サービスを受ける場合に，サービスを受けるユーザは，サービス提供側から正当なユーザであることの証明を要求されることが一般的である。つまり，サービスの提供を受けることができるユーザであるか否かをサービス提供側が認証するために，ユーザは，認証に用いるデータをサービス提供側に提供することを求められる。この認証に用いるデータは，通常，予めサービス側のサーバ等に登録されているユーザ名とパスワードである。ユーザが，インターネットに接続する上記機器である通信端末からユーザ名とパスワードをサーバに送信することにより，サーバにおいてユーザの認証が行われる。
【０００５】
ＶｏＩＰでも上記の認証方法が一般的に採用されている。具体的には，ＶｏＩＰではＳｅｓｓｉｏｎ  Ｉｎｉｔｉａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ（以下，ＳＩＰと称する。）が用いられるが，通信端末との間でＳＩＰに従って通信を行うＳＩＰサーバは，通常，通信端末から送信されるユーザのパスワードによってＳＩＰクライアントの認証を行う。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし，上記の認証の方法では，パスワードが通信端末からサーバに送信されるため，伝送路の途中でパスワードが漏洩する可能性があり，安全性が低いという問題があった。また，上述のように様々な機器を通信端末として使用できる環境において，サービスの提供を受けるためにパスワードの送信が必要であるとすると，入力装置を備えていない機器ではユーザはパスワードを入力することができず，結果的にその機器ではサービスの提供を受けることができないという問題がある。また，サービスの提供を受けるために毎回パスワード等を入力することはユーザにとって不便であるという問題もある。
【０００７】
そこで，本発明は，このような問題に鑑みてなされたもので，その目的とするところは，ＩＰ通信網を介して音声通話を実現する通信システムにおいて，安全性が高く，かつユーザにとって簡便な方法でユーザの認証を行うことにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために，本発明のある観点によれば，通信端末とサーバとがＩＰ通信網を介して音声データを送受信する通信方法が提供される。本通信方法は，ユーザの識別情報およびユーザの秘密鍵が格納された携帯モジュールが通信端末に接続されるモジュール接続ステップと；通信端末が，ユーザの識別情報を含む通信開始要求をサーバに送信する開始要求ステップと：開始要求を受信したサーバが，チャレンジデータを生成し，開始要求に含まれるユーザの識別情報によって識別されるユーザの公開鍵でチャレンジデータを暗号化し，暗号化したチャレンジデータを含む，認証データの送信要求を通信端末に送信する認証データ送信要求ステップと；認証データ送信要求を受信した通信端末が，暗号化されたチャレンジデータを携帯モジュールに提供し，携帯モジュールをしてユーザの秘密鍵によりチャレンジデータを復号化せしめる復号化ステップと；通信端末が，復号化されたチャレンジデータのハッシュ値を求める演算ステップと；通信端末が，ハッシュ値を携帯モジュールに提供し，携帯モジュールをしてユーザの秘密鍵によりハッシュ値を暗号化せしめる暗号化ステップと；通信端末が，暗号化されたハッシュ値をサーバに送信するデータ送信ステップと；ハッシュ値を受信したサーバが，ユーザの公開鍵によりハッシュ値を復号化し，復号化されたハッシュ値の正当性をチャレンジデータに基づいて判断する正当性判断ステップと；サーバが，正当性の判断の結果，復号化されたハッシュ値が正当である場合に通信端末との通信を開始する通信開始ステップと；を含む。
【０００９】
上記発明によれば，通信端末とサーバとの間で認証のために送受信されるデータは，サーバにより生成されるチャレンジデータであり，サーバは，通信端末がユーザの秘密鍵を使用できるか否かにより認証を行う。そのため，ユーザのパスワードを通信端末からサーバへと送信する必要はなく，パスワードの漏洩の恐れはない。従って，安全に認証を行うことができる。また，ユーザはサーバに自己を認証させるためにパスワードの入力を行う必要がない。また，認証に必要なユーザの秘密鍵は携帯モジュールに格納されており，秘密鍵によるデータの組み替えは携帯モジュール内で行われる。そのため，秘密鍵が携帯モジュールの外部に漏洩する可能性が低い。その結果，通信システムにおいて，安全性が高く，かつユーザにとって簡便な方法でユーザの認証を行うことができる。
【００１０】
上記通信方法はさらに，通信端末が，携帯モジュールとの接続が切断されたことを検知する切断検知ステップと；切断検知ステップにおいて携帯モジュールとの接続の切断が検知された場合に，通信端末がサーバに通知を送信する切断通知ステップと；切断通知を受信したサーバが，通信端末との通信を終了する通信終了ステップと；を上記通信開始ステップの後に含んでもよい。かかる構成によれば，携帯モジュールとの接続の切断により，携帯モジュール内の秘密鍵を用いた認証が続行できなくなった場合には通信が終了する。
【００１１】
また，上記切断通知ステップにおいて，通信端末がサーバに送信する通知にはチャレンジデータのハッシュ値が含まれてもよく，その場合，上記通信終了ステップにおいて，サーバはハッシュ値の正当性をチャレンジデータに基づいて判断し，判断の結果ハッシュ値が正当な値である場合に通信端末との通信を終了するようにしてもよい。
【００１２】
また，上記認証データ送信要求ステップにおいて，サーバは自己の秘密鍵によって電子署名を生成して該電子署名を認証データ送信要求とともに通信端末に送信してもよく，その場合，通信端末が，サーバの公開鍵を用いて電子署名の正当性を判断し，判断の結果，電子署名が正当であれば復号化ステップに進行するサーバ正当性判断ステップをさらに含んでもよい。かかる構成によれば，通信端末がサーバの正当性を認証することができる。
【００１３】
上記課題を解決するために，本発明の別の観点によれば，通信端末とサーバとがＩＰ通信網を介して音声データを送受信する通信システムが提供される。本通信システムは，ユーザの識別情報およびユーザの秘密鍵を記憶するユーザ情報記憶部と，ユーザの秘密鍵によってデータを組み替えるデータ処理部とが設けられ，通信端末に接続可能な携帯モジュールを備える。本システムにおける通信端末は，携帯モジュールのデータ処理部をして，サーバに送信するデータを組み替えて暗号化せしめるモジュール制御部と；暗号化されたデータをサーバに送信する送信部と；を備える。本通信システムにおけるサーバは，ユーザの識別情報およびユーザの公開鍵を含む証明書を記憶するユーザ証明書記憶部と；暗号化されたデータを通信端末から受信する受信部と；受信部により受信したデータをユーザの公開鍵で復号化し，復号化されたデータの正当性を判断するユーザ正当性判断部と；ユーザ正当性判断部による正当性の判断結果に基づいて通信端末との通信の許否を決定する通信制御部と；を備える。
【００１４】
上記発明によれば，サーバは，ユーザの公開鍵に基づいて，通信端末がユーザの秘密鍵を使用できるか否かにより認証を行う。認証に必要なユーザの秘密鍵は携帯モジュールに格納されており，秘密鍵によるデータの組み替えは携帯モジュール内で行われる。そのため，秘密鍵が携帯モジュールの外部に漏洩する可能性が低い。その結果，通信システムにおいて，安全性が高く，かつユーザにとって簡便な方法でユーザの認証を行うことができる。
【００１５】
上記通信システムにおいて，上記サーバは，通信端末に送信するデータをユーザの公開鍵で暗号化する送信データ作成部をさらに備えてもよく，その場合，通信端末のモジュール制御は，携帯モジュールのデータ処理部をして，サーバから受信したデータを組み替えて復号化せしめるようにしてもよい。かかる構成によれば，サーバから通信端末に送信されるデータを復号できるのは，ユーザの秘密鍵を利用できる通信端末のみとなる。従って，伝送路中でデータが漏洩した場合でも，第三者に解読される可能性が低い。
【００１６】
上記通信システムにおいて，上記サーバは，自己の秘密鍵を記憶するサーバ情報記憶部と，通信端末に送信するデータを自己の秘密鍵で暗号化する送信データ作成部と，をさらに備えてもよい。その場合，上記通信端末は，サーバの公開鍵を取得するサーバ情報取得部と，サーバから受信したデータをサーバの公開鍵で復号化し，復号化されたデータの正当性を判断するサーバ正当性判断部と；サーバ正当性判断部による正当性の判断結果に基づいてサーバとの通信の許否を決定する通信制御部と；をさらに備えてもよい。かかる構成によれば，通信端末がサーバの正当性を認証することができ，より安全な通信を行うことができる。
【００１７】
上記課題を解決するために，本発明の別の観点によれば，サーバとの間でＩＰ通信網を介して音声データを送受信する通信端末が提供される。本通信端末は，ユーザの識別情報およびユーザの秘密鍵を記憶するユーザ情報記憶部と，ユーザの秘密鍵によってデータを組み替えるデータ処理部とが設けられた携帯モジュールと接続可能であり，携帯モジュールのデータ処理部をして，サーバに送信するデータを組み替えて暗号化せしめるモジュール制御部と；暗号化されたデータをサーバに送信する送信部と；を備え，サーバにより，該サーバに送信したデータをユーザの公開鍵で復号化され，復号化されたデータの正当性に基づいて該サーバとの通信の許否を判断される。
【００１８】
上記発明によれば，サーバは，ユーザの公開鍵に基づいて，通信端末がユーザの秘密鍵を使用できるか否かにより認証を行う。認証に必要なユーザの秘密鍵は携帯モジュールに格納されており，秘密鍵によるデータの組み替えは携帯モジュール内で行われる。そのため，秘密鍵が携帯モジュールの外部に漏洩する可能性が低い。その結果，通信システムにおいて，安全性が高く，かつユーザにとって簡便な方法でユーザの認証を行うことができる。
【００１９】
上記通信端末は，サーバから，ユーザの公開鍵で暗号化したデータを受信する受信部をさらに備えてもよく，その場合，モジュール制御部は，携帯モジュールのデータ処理部をして，サーバから受信したデータを組み替えて復号化せしめるようにしてもよい。
【００２０】
上記通信端末は，サーバから，サーバの秘密鍵で暗号化したデータを受信する受信部と；サーバの公開鍵を取得するサーバ情報取得部と，受信部により受信したデータをサーバの公開鍵で復号化し，復号化されたデータの正当性を判断するサーバ正当性判断部と；サーバ正当性判断部による正当性の判断結果に基づいてサーバとの通信の許否を決定する通信制御部と；をさらに備えてもよい。
【００２１】
また，上記携帯モジュールのユーザ情報記憶部には，該携帯モジュールの使用が許可されるユーザを認証するユーザ認証データが記憶されてもよく，その場合，ユーザにユーザ認証データを入力せしめ，入力されたユーザ認証データと携帯モジュールに格納されているユーザ認証データとに基づいて，携帯モジュールの使用の許否を決定するユーザ認証部をさらに備えてもよい。かかる構成によれば，第三者による携帯モジュールの濫用を防止できる。
【００２２】
また，上記モジュール制御部は，携帯モジュールとの接続が切断されたことを検知してもよく，その場合，上記送信部は，モジュール制御部により携帯モジュールとの接続の切断が検知された場合にサーバに通知を送信するようにしてもよい。
【００２３】
上記課題を解決するために，本発明の別の観点によれば，コンピュータに上記の通信端末として機能させるコンピュータプログラムが提供される。コンピュータプログラムは，コンピュータが備える記憶手段に格納され，コンピュータが備えるＣＰＵに読み込まれて実行されることにより，そのコンピュータを上記の通信端末として機能させる。また，コンピュータプログラムが記録された，コンピュータで読み取り可能な記録媒体も提供される。記録媒体は，例えば，磁気ディスク，光ディスクなどである。
【発明の効果】
【００２４】
以上説明したように本発明によれば，ＩＰ通信網を介して音声通話を実現する通信システムにおいて，安全性が高く，かつユーザにとって簡便な方法でユーザの認証を行うことができる。
【発明を実施するための最良の形態】
【００２５】
以下に添付図面を参照しながら，本発明の好適な実施の形態について詳細に説明する。なお，本明細書及び図面において，実質的に同一の機能構成を有する構成要素については，同一の符号を付することにより重複説明を省略する。
【００２６】
以下では，本発明にかかる通信システムを，ＩＰ通信網を介して音声通話を実現するＶｏＩＰにおけるＳＩＰクライアントとＳＩＰサーバとを含む通信システムに適用して説明する。ＳＩＰクライアントとＳＩＰサーバは，以下で説明するように拡張されたＳＩＰに従ってセッションの開始，変更及び終了をし，通信を行う。本実施形態において，ＳＩＰクライアントとＳＩＰサーバとが公開鍵基盤（Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ，以下，ＰＫＩと称する。）を用いて相互に認証を行うことができるようにＳＩＰが拡張される。
【００２７】
まず，図１に基づいて，本実施形態にかかる通信システム１００の全体構成について説明する。通信システム１００は，ＰＫＩトークン１０２と，通信端末１０４ａ，１０４ｂ，１０４ｃ，…（以下，単に通信端末１０４と称する。）と，通信網１０６と，サーバ１０８から主に構成される。
【００２８】
ＰＫＩトークン１０２は，携帯モジュールの一例であり，通信端末１０４に接続可能に構成される。ＰＫＩトークン１０２は，例えば，通信システム１００によって提供されるＶｏＩＰのサービスに登録したユーザに対してサービス提供側から発行され，サービス提供側がユーザを認証できるデータが格納される。ユーザは，ＰＫＩトークン１０２を通信端末１０４に接続すれば，通信端末１０４を介してサービス提供側からＰＫＩトークン１０２内のデータによる認証を受けた後に通信端末１０４によってサービスの提供を受けることができる。ユーザを認証できるデータおよびＰＫＩトークン１０２の詳細な構成は図２を参照して後述する。ＰＫＩトークン１０２は，ユーザが簡便に持ち運べる程度の大きさ，重さであることが望ましい。ＰＫＩトークン１０２としては，Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（以下，ＵＳＢと称する。）を介して通信端末１０４と接続可能なデバイス，ＩＣカード，携帯電話などを例示できる。また，ＰＫＩトークン１０２と通信端末１０４との接続は，有線接続，無線接続のいずれであってもよい。
【００２９】
通信端末１０４は，通信網１０６を介してサーバ１０８と接続されて，拡張されたＳＩＰに従ってサーバ１０８と通信を行うＳＩＰクライアントである。通信端末１０４は，ＰＫＩトークン１０２が接続されることにより，そのＰＫＩトークン１０２の所有者であるユーザがサービスの提供を受けるための媒体となる。通信端末１０４としては，図示のようにＰＣ（１０４ａ），電話機（１０４ｂ），携帯電話（１０４ｃ）のほか，テレビ，ゲーム機器，ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ），カーナビゲーション装置などの車載コンピュータ，情報家電等を例示できる。
【００３０】
サーバ１０８は，通信網１０６を介して通信端末１０４と接続されて，拡張されたＳＩＰに従って通信端末１０６と通信を行うＳＩＰサーバである。サーバ１０８は，例えば，通信システム１００によってＶｏＩＰのサービスを提供するサービス提供側が保有するサーバ装置であって，サービスに登録したユーザを認証するためのデータを保存し，セッションの開始時などにユーザの認証を行う。
【００３１】
通信網１０６は，通信装置１０４とサーバ１０８とを相互に通信可能に接続するＩＰ通信網であり，有線・無線を問わない。
【００３２】
上記構成の通信システム１００によれば，ユーザは，携帯可能なＰＫＩトークン１０２を通信装置１０４ａ，１０４ｂ，または１０４ｃに接続し，その通信装置１０４を用いてＶｏＩＰのサービスを受けることができる。
【００３３】
以上，通信システム１００の全体構成について説明した。次に，ＰＫＩトークン１０２の構成について説明する。
【００３４】
まず，ＰＫＩトークン１０２のハードウェア構成について説明する。ＰＫＩトークン１０２は，ＣＰＵ（中央演算装置），記憶手段，接続手段などを備える。ＣＰＵは，ＰＫＩトークン１０２の全体制御を行う。また，ＣＰＵは，記憶手段に記憶されている各情報を読み出して，それらの情報に基づいて処理を行うことにより，後述のデータの暗号化／復号化処理を実行する。記憶手段は，ＲＡＭ（Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ），ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）およびハードディスク等の外部記憶装置などを含む。接続手段は，他のコンピュータとの有線または無線での接続を実現する。なお，ＰＫＩトークン１０２のハードウェア構成は上記例には限定されず，後述の秘密鍵の格納でき，かつ秘密鍵によるデータの組み替え処理を実行することができる構成を備えていれば構わない。
【００３５】
次に，図２に基づいてＰＫＩトークン１０２の機能構成について説明する。図２に示すように，ＰＫＩトークン１０２は，データ処理部１１２と，ユーザ情報記憶部１１４と，サーバ証明書記憶部１１６などを主に備える。
【００３６】
ユーザ情報記憶部１１４は，サーバ１０８がユーザを認証するためのデータを記憶する。具体的には，ユーザ情報記憶部１１４は，記憶手段を含んで構成され，ユーザの識別情報およびユーザの秘密鍵を記憶している。ユーザの識別情報は，サーバ１０８においてユーザを一意に特定するためのユーザＩＤ，ユーザ名などである。ユーザの秘密鍵は，データを暗号化または復号化するための鍵である。暗号化とは，第三者によるデータの解読，利用を防止するためにデータを暗号鍵を用いて組み替えることである。復号化とは，暗号化されて解読不能となっているデータを復号鍵を用いて組み替えて元の解読可能なデータとすることである。暗号鍵および復号鍵は，デジタル情報の組み替えに用いる所定の規則である。
【００３７】
本実施形態では，暗号化の方式として暗号化と復号化で異なる鍵を用いる公開鍵暗号方式を採用する。つまり，ユーザ情報記憶部１１４に格納されている秘密鍵により暗号化されたデータは，その秘密鍵に対応する公開鍵によってのみ復号化できる。また，ユーザ情報記憶部１１４に格納されている秘密鍵によってのみ，対応する公開鍵で暗号化されたデータを復号化できる。また，公開鍵暗号方式において，秘密鍵は秘密に保持されなければならない。そこで，ユーザ情報記憶部１１４に格納されるユーザの秘密鍵は，ＰＫＩトークン１０２の外部から読み出すことができないように保護される。この保護は，ＰＫＩトークン内部のデータ処理部１１２にのみ秘密鍵へのアクセスを許可し，ＰＫＩトークン１０２の外部からの秘密鍵へのアクセスを不許可とするように制限をかけることにより，実施できる。
【００３８】
ユーザ情報記憶部１１４はまた，ＰＫＩトークン１０２の使用を許可されたユーザを認証するためのデータを記憶する。ＰＫＩトークン１０２を誰でも使用できるとすると，例えばユーザがＰＫＩトークン１０２を落とした場合，それを拾った第三者が，そのユーザになりすましてサービスの提供を受けることができてしまう。そこで，ＰＫＩトークン１０２の使用に際して，ユーザ認証を行うことが好ましい。そのために，ユーザ情報記憶部１１４には，例えば，ユーザが予め設定したパスワードが格納される。また，バイオメトリクス認証を行うために，ユーザの指紋，虹彩，声紋，顔等の肉体的な特徴の情報が格納されてもよい。
【００３９】
また，ユーザ情報記憶部１１４は，ユーザ用の設定データや，ユーザの私的なデータを記憶してもよい。ユーザ用の設定データとは，例えば，ユーザが利用しているＶｏＩＰのサービス情報や，接続先であるサーバ１０８のアドレスなどである。通信端末１０４は，接続されたＰＫＩトークン１０２から設定データを読み出すことにより，接続すべきサーバ１０８の情報などを得ることができる。ユーザの私的なデータとは，例えば，ユーザがＶｏＩＰサービスによりサーバ１０８を介して音声通話を行う相手先の情報などである。通信端末１０４は，接続されたＰＫＩトークン１０２からユーザの私的なデータを読み出して，通信端末１０４が備える表示装置にその情報を表示してもよい。
【００４０】
サーバ証明書記憶部１１６は，記憶手段を含んで構成され，サーバ１０８の証明書を記憶する。サーバ１０８の証明書には，サーバ１０８の公開鍵と，証明書を発行した認証局の電子署名などが含まれる。
【００４１】
データ処理部１１２は，ＣＰＵを含んで構成され，上記ユーザの秘密鍵によってデータを組み替える機能を有する。具体的には，データ処理部１１２は，接続された通信端末１０４の指示に基づいて，通信端末１０４からデータを取得し，取得したデータをユーザ情報記憶部１１４に格納されている秘密鍵を用いて組み替えて暗号化または復号化する。そして，暗号化または復号化したデータを通信端末１０４に提供する。
【００４２】
以上，ＰＫＩトークン１０２の構成について説明した。次に，通信端末１０４の構成について説明する。
【００４３】
まず，通信端末１０４のハードウェア構成について説明する。通信端末１０４は，ＣＰＵ（中央演算装置），記憶手段，入力手段，出力手段，接続手段，通信手段などを備える。ＣＰＵは，通信端末１０４の全体制御を行う。また，ＣＰＵは，入力手段から入力される情報を取得し，また，記憶手段に記憶されている各情報を読み出して，それらの情報に基づいて処理を行うことにより，サーバ１０８との通信を行うための各処理を実行する。記憶手段は，ＲＡＭ（Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ），ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）およびハードディスク等の外部記憶装置などを含む。入力手段としては，キーボード，マウス，電話機の番号ボタンを例示できる。出力手段は，ディスプレイ等の表示装置を例示できる。通信手段は，サーバ１０８等の他のコンピュータと通信網を介して接続され，他のコンピュータとの間で情報を送受信する。接続手段は，ＰＫＩトークン１０２との有線または無線での接続を実現する。なお，通信端末１０４のハードウェア構成は上記例には限定されず，サーバ１０８との通信を行うための各処理を実行することができる構成を備えていれば構わない。
【００４４】
次に，図３に基づいて，通信端末１０４の機能構成について説明する。通信端末１０４は，受信部１２２と，送信部１２４と，通信制御部１２６と，送信データ作成部１２８と，ＰＫＩトークン制御部１３０と，ユーザ認証部１３２と，サーバ情報取得部１３４と，サーバ正当性判断部１３６などを主に備える。
【００４５】
受信部１２２は，サーバ１０８から送信されるデータを受信する機能を有する。具体的には，受信部１２２は，通信手段を含んで構成され，通信端末１０４がサーバ１０８と通信を行う際にサーバ１０８から送信されたデータを受信する。サーバ１０８から受信するデータには，通信端末１０４によってサービスの提供を受けようとするユーザをサーバ１０８が認証するためのデータの要求と，サーバ１０８の正当性を証明するためのデータが含まれる。ユーザを認証するためのデータの要求には，サーバ１０８が保有するユーザの公開鍵により暗号化されたデータが含まれる。サーバ１０８の正当性を証明するためのデータは，サーバ１０８の秘密鍵によって暗号化されたデータである。以後，サーバ１０８の秘密鍵によって暗号化されたデータを，サーバの電子署名とも称する。
【００４６】
送信部１２４は，サーバ１０８にデータを送信する機能を有する。具体的には，送信部１２４は，通信手段を含んで構成され，通信端末１０４がサーバ１０８と通信を行う際にサーバ１０８に送信するデータを送信する。サーバ１０８に送信するデータには，通信端末１０４によってサービスの提供を受けようとするユーザの正当性を証明するためのデータが含まれる。ユーザの正当性を証明するためのデータは，接続されたＰＫＩトークン１０２内に格納されるユーザの秘密鍵によって暗号化されたデータである。以後，ユーザの秘密鍵によって暗号化されたデータを，ユーザの電子署名とも称する。
【００４７】
送信データ作成部１２８は，サーバ１０８に送信するデータを作成する。具体的には，送信データ作成部１２８は，ＣＰＵや記憶手段を含んで構成され，拡張されたＳＩＰに従った形式のデータを作成する。送信データ作成部１２８が作成するデータには，上述の，通信端末１０４によってサービスの提供を受けようとするユーザの正当性を証明するためのデータが含まれる。
【００４８】
ＰＫＩトークン制御部１３０は，モジュール制御部の一例であり，ＰＫＩトークン１０２を制御する機能を有する。具体的には，ＰＫＩトークン制御部１３０は，ＣＰＵおよび接続手段を含んで構成され，ＰＫＩトークン１０２の接続の検知，ＰＫＩトークン１０２との接続の切断の検知を行う。また，ＰＫＩトークン制御部１３０は，ＰＫＩトークン１０２のデータ処理部１１２に，サーバ１０８に送信するデータを提供してユーザの秘密鍵によって暗号化させ，暗号化されたデータをデータ処理部１１２から取得する。また，ＰＫＩトークン制御部１３０は，ＰＫＩトークン１０２のデータ処理部１１２に，サーバ１０８から受信したデータを提供してユーザの秘密鍵によって復号化させ，復号化されたデータをデータ処理部１１２から取得する。
【００４９】
サーバ情報取得部１３４は，サーバ１０８の情報を取得する機能を有する。具体的には，サーバ情報取得部１３４は，ＣＰＵを含んで構成され，通信端末１０４が通信を行うサーバ１０８の証明書を，接続されているＰＫＩトークン１０２のサーバ証明書記憶部１１６から取得する。
【００５０】
サーバ正当性判断部１３６は，通信端末１０４が通信を行うサーバ１０８の正当性を判断する機能を有する，具体的には，サーバ正当性判断部１３６は，ＣＰＵを含んで構成され，受信部１２２がサーバ１０８から受信したサーバ１０８の電子署名を，サーバ情報取得部１３４が取得した証明書に含まれるサーバの公開鍵により復号することによって，電子署名が正当であるか否かを判断する。
【００５１】
通信制御部１２６は，サーバ１０８との通信を制御する機能を有する。具体的には，通信制御部１２６は，ＣＰＵを含んで構成され，サーバ正当性判断部１３６の判断結果に基づいてサーバ１０８との通信の許否を決定する。サーバ正当性判断部１３６により，サーバ１０８から受信した電子署名が正当なものであると判断された場合には，通信制御部１２６はサーバ１０８との通信を許可する，一方，サーバ正当性判断部１３６により，サーバ１０８から受信した電子署名が正当なものでないと判断された場合には，そのサーバ１０８は，サービス提供側になりすました第三者により運営される正当でないサーバである可能性が高い。そのため，通信制御部１２６は，通信端末１０４がそのサーバと通信を行うことを許可せず，通信端末１０４は通信を行わない。
【００５２】
ユーザ認証部１３２は，接続されたＰＫＩトークン１０２を使用するユーザの認証を行う機能を有する。具体的には，ユーザ認証部１３２は，ＣＰＵ，入力手段および出力手段を含んで構成され，出力手段を介してユーザにパスワードの入力を促し，入力手段を介してユーザにより入力されたパスワードを，ＰＫＩトークン１０２に格納されている上述のパスワードと照合することにより，ユーザ認証を行う。そして，ユーザ認証部１３２は，ユーザ認証に成功した場合には，接続されているＰＫＩトークン１０２の使用を許可し，ＰＫＩトークン制御部１３０によるＰＫＩトークン１０２の制御を続行させる。一方，ユーザ認証に失敗した場合には，接続されているＰＫＩトークン１０２の使用を許可せず，出力手段にエラーメッセージを表示して，以後の通信装置１０４によるＰＫＩトークン１０２に対する処理を禁止する。
【００５３】
以上，通信端末１０４の構成について説明した。次に，サーバ１０８の構成について説明する。
【００５４】
まず，サーバ１０８のハードウェア構成について説明する。サーバ１０８は，ＣＰＵ（中央演算装置），記憶手段，通信手段などを備える。ＣＰＵは，サーバ１０８の全体制御を行う。また，ＣＰＵは，記憶手段に記憶されている各情報を読み出して，それらの情報に基づいて処理を行うことにより，通信端末１０４との通信を行うための各処理を実行する。記憶手段は，ＲＡＭ（Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ），ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）およびハードディスク等の外部記憶装置などを含む。通信手段は，通信端末１０４等の他のコンピュータと通信網を介して接続され，他のコンピュータとの間で情報を送受信する。なお，サーバ１０８のハードウェア構成は上記例には限定されず，通信端末１０４との通信を行うための各処理を実行することができる構成を備えていれば構わない。
【００５５】
次に，図４に基づいて，サーバ１０８の機能構成について説明する。サーバ１０８は，受信部１４２と，送信部１４４と，通信制御部１４６と，送信データ作成部１４８と，ユーザ正当性判断部１５０と，ユーザ証明書記憶部１５２と，サーバ情報記憶部１５４などを主に備える。
【００５６】
受信部１４２は，通信端末１０４から送信されるデータを受信する機能を有する。具体的には，受信部１４２は，通信手段を含んで構成され，サーバ１０８が通信端末１０４と通信を行う際に通信端末１０４から送信されたデータを受信する。通信端末１０４から受信するデータには，通信端末１０４によってサービスの提供を受けようとするユーザの正当性を証明するためのデータが含まれる。ユーザの正当性を証明するためのデータは，上述のユーザの電子署名である。
【００５７】
送信部１４４は，通信装置１０４にデータを送信する機能を有する。具体的には，送信部１４４は，通信手段を含んで構成され，サーバ１０８が通信端末１０４と通信を行う際に通信端末１０４に送信するデータを送信する。通信端末１０４に送信するデータには，ユーザをサーバ１０８が認証するためのデータを通信端末１０４に送信させるための要求と，サーバ１０８の正当性を証明するためのデータが含まれる。ユーザを認証するためのデータの要求には，上述のように，サーバ１０８が保有するユーザの公開鍵により暗号化されたデータが含まれる。サーバ１０８の正当性を証明するためのデータは，上述のサーバの電子署名である。
【００５８】
送信データ作成部１４８は，通信端末１０４に送信するデータを作成する。具体的には，送信データ作成部１４８は，ＣＰＵや記憶手段を含んで構成され，拡張されたＳＩＰに従った形式のデータを作成する。送信データ作成部１４８が作成するデータには，上述の，ユーザを認証するためのデータの要求と，サーバの電子署名とが含まれる。
【００５９】
ユーザ証明書記憶部１５２は，ユーザの証明書を記憶する機能を有する。具体的には，ユーザ証明書記憶部１５２は，記憶手段を含んで構成され，サーバ１０８によって提供されるＶｏＩＰサービスに登録された複数のユーザの証明書を，各ユーザの識別情報と関連付けて記憶する。証明書には，ユーザの公開鍵と，証明書を発行した認証局の電子署名などが含まれる。証明書に含まれるユーザの公開鍵は，ＰＫＩトークン１０２に格納される各ユーザの秘密鍵に各々対応する。
【００６０】
サーバ情報記憶部１５４は，サーバ１０８の情報を記憶する。具体的には，サーバ情報記憶部１５４は，記憶手段を含んで構成され，サーバ１０８の秘密鍵を記憶する。サーバ１０８の秘密鍵は，ＰＫＩトークン１０２に格納されるサーバの証明書に含まれる公開鍵に対応する。
【００６１】
ユーザ正当性判断部１５０は，サーバ１０８が通信を行う通信端末１０４によりサービスの提供を受けるユーザの正当性を判断する機能を有する。具体的には，ユーザ正当性判断部１５０は，ＣＰＵを含んで構成され，受信部１４２が通信端末１０４から受信したユーザの電子署名を，ユーザ証明書記憶部１５２に格納されるユーザの公開鍵により復号することによって，電子署名が正当であるか否かを判断する。
【００６２】
通信制御部１４６は，通信装置１０４との通信を制御する機能を有する。具体的には，通信制御部１４６は，ＣＰＵを含んで構成され，ユーザ正当性判断部１５０の判断結果に基づいて通信端末１０４との通信の許否を決定する。ユーザ正当性判断部１５０により，通信端末１０４から受信したユーザの電子署名が正当なものであると判断された場合には，通信制御部１５０は通信端末１０４との通信を許可する，一方，ユーザ正当性判断部１５０により，通信端末１０４から受信したユーザの電子署名が正当なものでないと判断された場合には，その通信端末１０４には正当なＰＫＩトークン１０２が接続されておらず，第三者が通信端末１０４によって不当にサービスを受けようとしている可能性が高い。そのため，通信制御部１５０は，サーバ１０８がその通信端末１０４と通信を行うことを許可せず，サーバ１０８は通信を行わない。
【００６３】
以上，サーバ１０８の構成について説明した。次に，図５に基づいて，通信端末１０４とサーバ１０８との通信処理の流れについて説明する。
【００６４】
まず，通信端末１０４にＰＫＩトークン１０２が接続される（Ｓ１０２）。次に，通信端末１０４が要求をサーバ１０８に送信する（Ｓ１０４）。この要求は，通信の開始の要求であり，サーバ１０８がユーザを認証するための認証データを含まない。サーバ１０８は，通信端末１０４からの要求を受信して，応答を送信する（Ｓ１０６）。この応答は，認証データが含まれていないことに対するエラーの通知であり，認証データの要求を含む。
通信端末１０４は，サーバ１０８からのエラーの応答を受けて，再度要求を送信する（Ｓ１０８）。この要求には，通信端末１０４によってサービスを受けようとするユーザを認証するための認証データとして，ユーザの電子署名が含まれる。サーバ１０８は，認証データが含まれた要求を受けて，肯定的な応答を送信する（Ｓ１１０）。この肯定的な応答により，通信端末１０４とサーバ１０８との間にセッションが確立され，通信が開始される。
【００６５】
任意の時間が経過した後に，通信端末１０４がサーバ１０８に要求を送信する（Ｓ１１２）。この要求は，例えば音声データの送信の要求であり，Ｓ１０８においてサーバ１０８に送信した認証データと同様の認証データを含む。サーバ１０８は，要求を受けて，Ｓ１１０において確立されたセッションが有効であるかを判断する。タイムアウト等の理由によりセッションが無効になっている場合には，サーバ１０８はエラーの応答を通信端末１０４に送信する（Ｓ１１４）。このエラーの応答には，新たな認証データの要求が含まれる。通信端末１０４は，エラーの応答を受けて，再度要求を送信する（Ｓ１１６）。この要求は，通信の開始の要求であり，新たな認証データを含む。サーバ１０８は，新たな認証データが含まれた要求を受けて，肯定的な応答を送信する（Ｓ１１８）。この肯定的な応答により，通信端末１０４とサーバ１０８との間に新たなセッションが確立され，通信が開始される。
【００６６】
ＰＫＩトークン１０２との接続が切断されると，通信端末１０４は切断を検知する（Ｓ１２０）。切断を検知すると，通信端末１０４は，要求をサーバ１０８に送信する（Ｓ１２２）。この要求は，切断の検知の通知であり，通信の終了を要求するものである。また，この要求には，認証データは含まれない。ユーザの電子署名は，ユーザの秘密鍵が格納されたＰＫＩトークン１０２によって生成されるため，ＰＫＩトークン１０２との接続が切断された後は，通信端末１０４はユーザの電子署名を取得することができないからである。サーバ１０８は，通信終了の要求を受けて，肯定的な応答を送信する（Ｓ１２４）。この肯定的な応答により，通信端末１０４とサーバ１０８との通信が終了し，セッションが終了する。
【００６７】
Ｓ１０６等でサーバ１０８が通信端末１０４に送信する応答，Ｓ１０８等で通信端末１０４がサーバ１０８に送信する要求は，本実施形態において拡張されたＳＩＰに従ったフォーマットのデータである。ここで，図１０および図１１を参照して，各データについて説明する。
【００６８】
図１０は，サーバ１０８が通信端末１０４に送信する応答に含まれるデータである。このデータは，ＲＦＣ２６１７に定義されるWWW-Authenticateレスポンスヘッダの一部を変更したものである。以後，このデータを認証応答ヘッダと称する。以下，変更された部分について主に説明する。
【００６９】
pki-challenge２０２は，サーバ１０８がユーザの認証を行うために用いるデータである。具体的には，少なくとも，サーバ１０８によりチャレンジデータの一例としてセッションキーが生成され，生成されたセッションキーをユーザの公開鍵で暗号化したデータ（session-key-enc）が含まれる。チャレンジデータの一例であるセッションキーは，通信端末１０４から通信の開始の要求を受けた時にサーバ１０８が生成する，セッションを識別するための任意の値である。セッションキーは，例えば，サーバ１０８が要求を受けた日時（西暦＋日付＋時刻）としてもよい。また，サーバ１０８は，セッションキーのみを暗号化するのではなく，ｎｏｎｃｅ値などの他の値も暗号化してもよい。
【００７０】
qop-valu２０４は，サーバ１０８がサポートしている認証の種類を示す。s-signは，電子署名による認証方式を示す。s-authおよびs-auth-finalは，ハッシュ値による認証方式を示す。s-auth-finalによる認証は，サーバ１０８が電子署名による認証方式を用いて通信端末１０４と通信を行っている途中に，通信端末１０４が電子署名による認証方式を続行できなくなった場合に，通信を終了させるために行われる。
【００７１】
session-key-enc２０６は，上述の通りである。
【００７２】
session-key-signature２０８は，セッションキーをサーバ１０８の秘密鍵で暗号化した電子署名であり，サーバ１０８の正当性を証明するためのデータである。
【００７３】
図１１は，通信端末１０４がサーバ１０８に送信する要求に含まれるデータである。このデータは，ＲＦＣ２６１７に定義されるAuthorizationリクエストヘッダの一部を変更したものである。以後，このデータを認証要求ヘッダと称する。認証データは，認証要求ヘッダ内に含まれる。以下，変更された部分について主に説明する。
【００７４】
pki-response３０２は，サーバ１０８にユーザを認証させるための認証データである。具体的には，サーバ１０８から受信した，ユーザの公開鍵で暗号化されたデータをユーザの秘密鍵により復号し，復号したデータに所定のハッシュ関数を適用して得たハッシュ値を，ユーザの秘密鍵で暗号化したデータ（response）が含まれる。なお，セッションキーのみではなく，ユーザ名（username）などにもセッションキーとともにハッシュ関数を適用し，そこから得たハッシュ値をユーザの秘密鍵により暗号化したデータを，サーバ１０８にユーザを認証させるためのデータとしてもよい。
【００７５】
message-qop３０４は，通信端末１０２が本データに与えた保護の品質であり，サーバ１０８によって行われるべき認証の方式を指定するものである。message-qop３０４には，上述のqop-valu２０４に含まれるいずれかの値が指定される。
【００７６】
response３０６は上述の通りである。
【００７７】
次に，図６〜図９に基づいて，通信システム１００において，通信端末１０４とサーバ１０８とが行う詳細な処理の流れについて説明する。
【００７８】
図６は，通信端末１０４にＰＫＩトークン１０２が接続されてから，通信端末１０４がサーバ１０８とのセッションを確立するまでの通信端末１０４の処理の流れを示す。まず，待機状態（Ｓ２０２）にある通信端末１０４に，ユーザがＰＫＩトークン１０２を接続する（Ｓ２０４）。通信端末１０４は，ＰＫＩトークン１０２の接続を検知し，接続されたＰＫＩトークン１０２からユーザ情報を読み出す（Ｓ２０６）。ここで読み出すユーザ情報は，例えばユーザ名やユーザＩＤなどのユーザを識別する情報である。次に，通信端末１０４は，読み出したユーザ情報を表示装置に表示し，ユーザ認証データの入力を促すメッセージを表示する（Ｓ２０８）。ユーザが，ユーザ認証データとして例えばパスワードを入力すると（Ｓ２１０），通信端末１０４はＰＫＩトークン１０２内に格納されているパスワードと照合することによりユーザ認証を行う（Ｓ２１２）。
【００７９】
ユーザ認証に成功した場合には，通信端末１０４は，ＰＫＩトークン１０２からユーザ用の設定データを読み出して設定を実行する（Ｓ２１４）。例えば上述のように，設定データとして接続すべきサーバ１０８のアドレスなどを読み出して，サーバ１０８との通信の準備を行う。また，通信端末１０４は，ＰＫＩトークン１０２からユーザの私的なデータを読み出して設定を実行する（Ｓ２１６）。例えば上述のように，ユーザの私的なデータとして通話相手先の情報（相手の氏名などからなる電話帳）を読みだして，表示装置に表示する。続いて，通信端末１０４は，サーバ１０８とのセッションの確立を試行する（Ｓ２１８）。Ｓ２１８の詳細な処理については，図９を参照して後述する。セッションの確立に成功すれば（Ｓ２２０），通信端末１０８はオンライン状態となり，サーバ１０８と通信可能となる（Ｓ２２２）。通信端末１０４がオンライン状態となれば，ユーザは通信端末１０４からサーバ１０８を介して，相手先の通信端末を使用する相手ユーザと音声通話ができる。
【００８０】
Ｓ２１２でユーザ認証に失敗した場合には，通信端末１０４は，認証の試行回数が設定値を超えているかを判断し（Ｓ２２４），超えている場合にはＰＫＩトークン１０２の使用を不許可にして処理を終了し，サーバ１０８とのセッションの確立は失敗に終わる（Ｓ２３０）。一方，Ｓ２２４で設定値を超えていない場合には，パスワードが異なる旨の警告と，パスワードの再入力を促すメッセージとを表示し（Ｓ２２８），ユーザによるパスワードの入力を待つ。
【００８１】
図７は，オンラインの状態にある通信端末１０４においてＰＫＩトークン１０２との接続が切断された場合に，通信端末１０４がサーバ１０８との通信を終了する処理の流れを示す。まず，ユーザによりＰＫＩトークン１０２が通信端末１０４から抜き取られるなどして，ＰＫＩトークン１０２との接続が切断される（Ｓ３０２）。通信端末１０４は，接続の切断を検知して，サーバ１０８との実行中のセッションを終了させる（Ｓ３０４）。具体的には，上述のように，通信端末１０４が通信終了の要求をサーバ１０８に送信することにより，サーバ１０８とのセッションを終了させる。通信端末１０４は，セッションの終了が成功したかを判断し（Ｓ３０６），セッションの終了に失敗した場合にはエラーメッセージを表示する（Ｓ３０８）。そして，セッションの終了に成功した場合，および失敗した場合のいずれでも，通信端末１０４はユーザ情報とセッション情報とを通信端末１０４の記憶手段から削除する（Ｓ３１０）。そして，通信端末１０４は待機状態に戻る（Ｓ３１２）。
【００８２】
図８Ａ〜図８Ｃは，サーバ１０８が，通信端末１０４から要求を受信した場合に行う処理の流れを示す。まず，通信端末１０４が要求を送信し（Ｓ４０２），サーバ１０８はその要求を受信する（Ｓ４０４）。そして，サーバ１０８は受信した要求に認証要求ヘッダが含まれているかを判断する（Ｓ４０６）。具体的には例えば，上述の図１１で説明したデータが含まれているかを判断する。要求に認証要求ヘッダが含まれている場合とは，サーバ１０８が既に通信端末１０４とのセッションを確立して通信を開始している状況であり，要求に認証要求ヘッダが含まれていない場合とは，サーバ１０８がまだ通信端末１０４とセッションを確立しておらず，通信端末１０４から受けた要求が通信の開始の要求であるという状況である。
【００８３】
判断の結果，認証要求ヘッダが含まれている場合には，サーバ１０８は認証要求ヘッダ内の「nonce」の値が有効であるかを判断する（Ｓ４０８）。「nonce」の値が有効である場合とは，確立中のセッションが有効である状況であり，「nonce」の値が無効である場合とは，確立中のセッションが無効である状況である。判断の結果，有効である場合にはサーバ１０８は認証要求ヘッダ内の「qop」の値が“s-auth-final”であるかを判断する。「qop」の値が“s-auth-final”である場合とは，通信端末１０４から受けた要求が，ＰＫＩトークン１０２との接続の切断を原因とする通信の終了の要求であるという状況である。判断の結果，「qop」の値が“s-auth-final”でない場合には，セッションキーが有効であるかを判断する（Ｓ４１２）。セッションキーが有効である場合とは，確立中のセッションが有効である状況であり，セッションキーが無効である場合とは，タイムアウト等により確立されていたセッションが無効になった状況である。
【００８４】
セッションキーが有効である場合には，サーバ１０８は認証用のデータを作成する（図８ＢのＳ４１４）。具体的には例えば，確立中のセッションのセッションキーを，予め保存しておいた記憶手段から読み出し，認証要求ヘッダに含まれる「algorithm」に設定されているハッシュ関数をそのセッションキーに適用してハッシュ値を求める。次に，サーバ１０８は，認証要求ヘッダに含まれる「qop」の値が“s-sign”であるかを判断する（Ｓ４１６）。
【００８５】
「qop」の値が“s-sign”である場合には，サーバ１０８は認証要求ヘッダに含まれる認証データであるユーザの電子署名を認証する（Ｓ４１８）。具体的には，認証要求ヘッダに含まれる，ユーザの秘密鍵で暗号化された，セッションキーのハッシュ値を，ユーザ証明書記憶部１５２に格納されているユーザの公開鍵で復号し，復号したデータとＳ４１４で作成したデータとが一致するかを判断する。一方，Ｓ４１６で「qop」の値が“s-sign”でない場合には，認証要求ヘッダに含まれるセッションキーのハッシュ値がＳ４１４で作成したハッシュ値と一致するかを判断する（Ｓ４２０）。
【００８６】
Ｓ４１８またはＳ４２０の認証の結果，認証に成功した場合には（Ｓ４２２），サーバ１０８は肯定的な応答を通信端末１０４に送信し（Ｓ４２４），通信端末１０４からの次の要求を待つ。
【００８７】
Ｓ４０６において要求に認証要求ヘッダが含まれていない場合，Ｓ４０８において「nonce」の値が無効である場合，Ｓ４１２においてセッションキーが無効である場合，およびＳ４２２において認証に失敗した場合は，サーバ１０８は「nonce」の値またはセッションキーを生成し（図８ＣのＳ４２６），生成した「nonce」の値やセッションキーを記憶手段（例えば，ＲＡＭ）に保存する。これは，サーバ１０８が通信端末１０４との間に新たにセッションを確立するために行われる。そして，サーバ１０８はエラーメッセージを生成し（Ｓ４２８），エラーの応答を通信端末１０４に送信する（Ｓ４３０）。具体的には，上述の図１０で説明したデータである認証応答ヘッダを，Ｓ４２６で生成したセッションキー等を用いて生成し，その認証応答ヘッダ含む応答を通信端末１０４に送信する。
【００８８】
図９Ａ〜図９Ｃは，通信端末１０４がサーバ１０８に要求を送信する場合に行う処理の流れを示す。まず，通信端末１０４において，通信端末１０４がサーバ１０８に要求を送信するべきイベントが発生する（Ｓ５０２）。イベントとしては，例えば，ユーザによる新しいセッションの確立の指示（Ｓ５０４），確立されていたセッションのタイムアウト（Ｓ５０６），確立中のセッションの変更（Ｓ５０８），サーバによるエラー応答の送信（Ｓ５１０）などがある。Ｓ５１０は，図８ＣのＳ４３０に関連する。
【００８９】
イベントが発生すると，通信端末１０４は，そのイベントがサーバからのエラー応答（つまり，Ｓ５１０）であるかを判断する（Ｓ５１２）。サーバからのエラー応答である場合とは，サーバから認証要求ヘッダの送信を要求された場合であり，サーバから認証応答ヘッダを含む応答が送信された場合である。その場合には，通信端末１０４は，サーバから受信した応答内の認証応答ヘッダ中にサーバの電子署名があるかを判断する（図９ＢのＳ５１８）。電子署名がある場合には，通信端末１０４は，接続されているＰＫＩトークン１０２に格納されているサーバの証明書に含まれるサーバの公開鍵を用いて電子署名の認証を行う（Ｓ５２０）。認証に成功したか否かを判断し（Ｓ５２２），認証に失敗した場合には（Ｓ５３０）サーバとの通信を終了する。一方，Ｓ５２２で認証に成功した場合には，サーバから受信した認証応答ヘッダに含まれる，ユーザの公開鍵で暗号化されたセッションキー（チャレンジデータ）を，ＰＫＩトークン１０２に含まれるユーザの秘密鍵により復号する（Ｓ５２４）。なお，この復号の処理は，上述のように，ＰＫＩトークン１０２内のデータ処理部１１２によって行われる。通信端末１０２は，復号に成功したか否かを判断し（Ｓ５２６），失敗した場合にはサーバ１０８との通信を終了する。一方，Ｓ５２６で復号に成功した場合には，サーバ１０８に送信する認証要求ヘッダを作成するための他のデータを準備する（Ｓ５２８）。具体的には，上述の図１１のデータを作成するために，「username」などのセッションキー以外のデータを生成する。
【００９０】
そして，通信端末１０４は，ＰＫＩトークン１０２が接続されているかを判断する（図９ＣのＳ５３２）。接続されていない場合には，“s-auth-final”モードで認証要求ヘッダを生成する。具体的には，セッションキー等に所定のハッシュ関数を適用したハッシュ値を認証要求ヘッダに含ませ，上述の「qop」の値を“s-auth-final”に設定する。一方，Ｓ５３２でＰＫＩトークン１０２が接続されている場合には，電子署名を使用するかを判断する（Ｓ５３４）。具体的には例えば，ＰＫＩトークン１０２に格納されているユーザ用の設定データに，電子署名を使用するか否かを設定するデータを含ませておけば，通信端末１０４はそのデータを参照することにより，電子署名を使用するか否かを判断することができる。この場合，電子署名を使用するか否かは，サービス提供側またはユーザにより選択されることが可能である。または，サーバ１０８から受信した認証応答ヘッダ中の「qop-valu」に“s-sign”が無い場合，つまり，拡張されたＳＩＰに対応していない従来のＳＩＰサーバが通信相手である場合に，通信端末１０４は電子署名を使用しないことを選択することができる。
【００９１】
Ｓ５３４で電子署名を使用する場合には，“s-sign”モードで認証要求ヘッダを生成する（Ｓ５３６）。具体的には，通信端末１０４は，セッションキー等に所定のハッシュ関数を適用してハッシュ値を求め，そのハッシュ値をＰＫＩトークン１０２内のデータ処理部１１２に提供してユーザの秘密鍵による暗号化を実行させる。そして，通信端末１０４は，暗号化されたハッシュ値（認証データ）を，認証要求ヘッダに含ませ，上述の「qop」の値を“s-sign”に設定する。一方，Ｓ５３４で電子署名を使用しない場合には，“s-auth”モードで認証要求ヘッダを生成する（S５３８）。具体的には，セッションキー等に所定のハッシュ関数を適用したハッシュ値を認証要求ヘッダに含ませ，上述の「qop」の値を“s-auth”に設定する。そして，通信端末１０４は，Ｓ５３６，Ｓ５３８またはＳ５４０で生成した認証要求ヘッダを含む要求を生成して（Ｓ５４４），サーバ１０８に送信する（Ｓ５４６）。
【００９２】
Ｓ５１２で，イベントがサーバからのエラー応答の受信ではない場合には，通信端末１０４は，そのイベントが新しいセッションの確立のためであるか（つまり，Ｓ５０４）を判断する（Ｓ５１４）。そうである場合には，図９ＣのＳ５４２に進み，通信端末１０４は認証要求ヘッダを含まない通信開始の要求を生成して，サーバに送信する（Ｓ５４６）。
【００９３】
一方，Ｓ５１４で要求が新しいセッションの確立のためではない場合には（つまり，Ｓ５０６またはＳ５０８），通信端末１０４は，サーバ１０８に送信する要求に含ませる認証要求ヘッダの作成に必要なデータを検索する（Ｓ５１６）。認証要求ヘッダの作成に必要なデータは，確立中またはタイムアウト前まで確立されていたセッションにおいて使用していたセッションキーなどであり，例えば通信端末１０４のＲＡＭに保存されている。そして，通信端末１０４は，検索したセッションキーなどを用いて，Ｓ５３２以下の処理を行い，要求を生成してサーバ１０８に送信する。
【００９４】
以上，通信システム１００において，通信端末１０４とサーバ１０８とが行う詳細な処理の流れについて説明した。
【００９５】
本実施形態にかかる通信システム１００によれば，通信端末１０４とサーバ１０８の相互の認証がＰＫＩによって行われる。従って，ユーザのパスワードが通信端末１０４からサーバ１０８に送信されないため，伝送路の途中でパスワードが漏洩することがなく，安全に認証を行うことができる。また，ユーザの秘密鍵がＰＫＩトークン１０２内に含まれ，外部からその秘密鍵へのアクセスができないように制限されるため，ユーザは秘密鍵を安全に保管することができる。また，通信端末１０４により，ＰＫＩトークン１０２を使用できるユーザの認証が行われるため，ＰＫＩトークン１０２の濫用を防止することができる。また，ユーザ用の設定データやユーザの私的なデータがＰＫＩトークン内に格納されており，ＰＫＩトークン１０２を接続された通信端末１０４によりそれらのデータが読み込まれて設定されるため，ユーザが自ら各種設定を行う必要がない。また，複数の通信端末１０４のいずれでも，ＰＫＩトークン１０２を接続するだけで，そのＰＫＩトークン１０２の所有者であるユーザに適した通信端末となる。従って，ＰＫＩトークン１０２を通信端末１０４に接続するだけでユーザは通信端末１０４を使用できるので，ユーザにとって簡便である。
【００９６】
以上，添付図面を参照しながら本発明の好適な実施形態について説明したが，本発明は係る例に限定されないことは言うまでもない。当業者であれば，特許請求の範囲に記載された範疇内において，各種の変更例または修正例に想到し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【００９７】
【図１】本発明の実施形態にかかる通信システムの全体構成を示す説明図である。
【図２】同実施の形態におけるＰＫＩトークンの構成を示すブロック図である。
【図３】同実施の形態における通信端末の構成を示すブロック図である。
【図４】同実施の形態におけるサーバの構成を示すブロック図である。
【図５】同実施の形態における通信の全体的な流れを示すフローチャートである。
【図６】同実施の形態における通信端末の処理の流れを示すフローチャートである。
【図７】同実施の形態における通信端末の処理の流れを示すフローチャートである。
【図８Ａ】同実施の形態におけるサーバの処理の流れを示すフローチャートである。
【図８Ｂ】同実施の形態におけるサーバの処理の流れを示すフローチャートである。
【図８Ｃ】同実施の形態におけるサーバの処理の流れを示すフローチャートである。
【図９Ａ】同実施の形態における通信端末の処理の流れを示すフローチャートである。
【図９Ｂ】同実施の形態における通信端末の処理の流れを示すフローチャートである。
【図９Ｃ】同実施の形態における通信端末の処理の流れを示すフローチャートである。
【図１０】同実施の形態における認証応答ヘッダのデータ例を示す説明図である。
【図１１】同実施の形態における認証要求ヘッダのデータ例を示す説明図である
【符号の説明】
【００９８】
１００      通信システム
１０２      ＰＫＩトークン
１０４      通信端末
１０６      通信網
１０８      サーバ
１１２      データ処理部
１１４      ユーザ情報記憶部
１１６      サーバ証明書記憶部
１２２，１４２      受信部
１２４，１４４      送信部
１２６，１４６      通信制御部
１２８，１４８      送信データ作成部
１３０      ＰＫＩトークン制御部
１３２      ユーザ認証部
１３４      サーバ情報取得部
１３６      サーバ正当性判断部
１５０      ユーザ正当性判断部
１５２      ユーザ証明書記憶部
１５４      サーバ情報記憶部
【図１】
2006303751.tif 000003
【図２】
2006303751.tif 000004
【図３】
2006303751.tif 000005
【図４】
2006303751.tif 000006
【図５】
2006303751.tif 000007
【図６】
2006303751.tif 000008
【図７】
2006303751.tif 000009
【図８Ａ】
2006303751.tif 000010
【図８Ｂ】
2006303751.tif 000011
【図８Ｃ】
2006303751.tif 000012
【図９Ａ】
2006303751.tif 000013
【図９Ｂ】
2006303751.tif 000014
【図９Ｃ】
2006303751.tif 000015
【図１０】
2006303751.tif 000016
【図１１】
2006303751.tif 000017