(57)【要約】【課題】認証処理に用いるプロファイルデータの改竄を効率的に検出する。【解決手段】記憶部１１は、公開鍵１３と秘密鍵１４とを記憶する。制御部１２は、サーバ２ａを用いて提供されるサービス３ａについて、サービス３ａの識別情報を含むプロファイルデータ１５ａを取得し、プロファイルデータ１５ａが所定の正当性条件を満たす場合に秘密鍵１４を用いてプロファイルデータ１５ａに署名１６ａを付加する。制御部１２は、プロファイルデータ１５ａに基づいてクライアント４に認証処理を行わせるクライアントアプリケーション１７に対して、署名１６ａが検証されるように公開鍵１３を埋め込み、公開鍵１３が埋め込まれたクライアントアプリケーション１７を配信させる。【選択図】図１
2017225054.tif 000002
【特許請求の範囲】
【請求項１】
公開鍵と前記公開鍵に対応する秘密鍵とを記憶する記憶部と、
サーバを用いて提供される２以上のサービスそれぞれについて、当該サービスの識別情報を含むプロファイルデータを取得し、前記プロファイルデータが所定の正当性条件を満たす場合に前記秘密鍵を用いて前記プロファイルデータに署名を付加し、
前記プロファイルデータに基づいてクライアントに認証処理を行わせるクライアントアプリケーションに対して、前記署名が検証されるように前記公開鍵を埋め込み、前記公開鍵が埋め込まれた前記クライアントアプリケーションを配信させる制御部と、
を有するプロファイルデータ配信制御装置。
【請求項２】
前記クライアントアプリケーションは、前記公開鍵を用いた前記署名の検証に成功した場合、前記クライアントが前記プロファイルデータに対応するサービスにアクセスすることを許容し、前記公開鍵を用いた前記署名の検証に失敗した場合、前記クライアントが前記プロファイルデータに対応するサービスにアクセスすることを抑止する、
請求項１記載のプロファイルデータ配信制御装置。
【請求項３】
前記クライアントアプリケーションは、前記公開鍵を用いた前記署名の検証に成功した場合、前記クライアントが前記認証処理に用いる追加のプロファイルデータを前記サーバから取得することを許容し、前記公開鍵を用いた前記署名の検証に失敗した場合、前記クライアントが前記追加のプロファイルデータを前記サーバから取得することを抑止する、
請求項１記載のプロファイルデータ配信制御装置。
【請求項４】
前記記憶部は、認証方法のライセンスを示すライセンス情報を更に記憶し、
前記制御部は、前記クライアントが前記追加のプロファイルデータを要求したとき、前記ライセンス情報に基づいて前記クライアントが前記ライセンスを有しているか判定し、前記ライセンスを有していない場合は前記要求を拒否する、
請求項３記載のプロファイルデータ配信制御装置。
【請求項５】
コンピュータが実行するプロファイルデータ配信制御方法であって、
サーバを用いて提供される２以上のサービスそれぞれについて、当該サービスの識別情報を含むプロファイルデータを取得し、前記プロファイルデータが所定の正当性条件を満たす場合に秘密鍵を用いて前記プロファイルデータに署名を付加し、
前記プロファイルデータに基づいてクライアントに認証処理を行わせるクライアントアプリケーションに対して、前記署名が検証されるように前記秘密鍵に対応する公開鍵を埋め込み、前記公開鍵が埋め込まれた前記クライアントアプリケーションを配信させる、
プロファイルデータ配信制御方法。
【請求項６】
コンピュータに、
サーバを用いて提供される２以上のサービスそれぞれについて、当該サービスの識別情報を含むプロファイルデータを取得し、前記プロファイルデータが所定の正当性条件を満たす場合に秘密鍵を用いて前記プロファイルデータに署名を付加し、
前記プロファイルデータに基づいてクライアントに認証処理を行わせるクライアントアプリケーションに対して、前記署名が検証されるように前記秘密鍵に対応する公開鍵を埋め込み、前記公開鍵が埋め込まれた前記クライアントアプリケーションを配信させる、
処理を実行させるプロファイルデータ配信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプロファイルデータ配信制御装置、プロファイルデータ配信制御方法およびプロファイルデータ配信制御プログラムに関する。
【背景技術】
【０００２】
クライアントサーバ型の情報処理システムでは、クライアントからサーバのサービスを利用する際、当該クライアントを使用するユーザを認証するユーザ認証が行われることがある。このとき、認証処理に関する情報を含むプロファイルデータをクライアントに配信し、プロファイルデータに従って認証手続の少なくとも一部をクライアントに実行させる情報処理システムが考えられる。
【０００３】
例えば、サーバが提供するサービスを利用する際、サーバからの要求に応じてクライアントにおいてユーザ認証を行うユーザ認証方法が提案されている。提案のユーザ認証方法では、クライアントはパスワード認証や生体認証などの複数種類の認証方法を実行することができる。クライアントは、サーバが要求する認証方法の種類や認証レベルなどを指定したプロファイルデータをサーバから受信し、プロファイルデータに従ってユーザ認証を実行する。クライアントは、ユーザ認証の結果と、ユーザ認証に使用したプロファイルデータと、プロファイルデータの改竄を検出するための署名とをサーバに送信する。サーバは、クライアントから受信した情報に基づいて、正規のプロファイルデータに従った適切なユーザ認証が端末装置において行われたかを検証する。
【０００４】
なお、パスワード認証、ＩＣ（Integrated Circuit）カード認証、生体認証などの複数の認証方法を組み合わせて適切な認証強度を実現するサービス利用認可システムが提案されている。提案のサービス利用認可システムは、サービス識別子と要求される認証強度とを対応付けた情報と、認証強度と複数の認証方法の組み合わせとを対応付けた情報とを予め記憶しておく。サービス利用認可システムは、あるサービスを利用する場合、当該サービスが要求する認証強度を判定し、判定した認証強度を実現するための認証方法の組み合わせを検索し、検索した組み合わせでユーザ認証を実行する。
【０００５】
また、携帯端末からＷｅｂサイトにログインすることができるＷｅｂ認証システムが提案されている。提案のＷｅｂ認証システムでは、端末装置がＷｅｂサーバから、ランダムな認証用番号とＷｅｂサイトのアドレスとを含む認証チケットを取得する。Ｗｅｂサイトにログインするとき、端末装置は認証チケットに当該端末装置の署名を付加してＷｅｂサーバに送信し、Ｗｅｂサーバは署名と認証用番号に基づいて携帯端末を認証する。
【０００６】
また、あるサーバが、他のサーバによって認証されたユーザに対してサービスを提供するサービス提供方法が提案されている。提案のサービス提供方法では、サーバは、当該サーバと他のサーバとの間の関係を示す関係情報を予め記憶しておく。サーバは、ユーザが使用する端末装置から当該ユーザの役割を示す役割情報を受信し、役割情報と関係情報に基づいて当該ユーザに提供するサービスの内容を決定する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−１７８４０８号公報
【特許文献２】特開２００８−１１７３２６号公報
【特許文献３】特開２０１１−１７０７９５号公報
【特許文献４】特開２０１３−１８２４６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ユーザが使用する情報処理装置にクライアントアプリケーションをインストールし、クライアントアプリケーションがサーバのプロファイルデータに従って認証手続の少なくとも一部を実行する情報処理システムが考えられる。
【０００９】
ここで、プロファイルデータが改竄されていると、低い認証レベルに基づいて非正規のユーザが正規のユーザとして誤って認証されてしまう可能性があり、また、クライアントアプリケーションが不正なサーバに誘導されてしまう可能性もある。そこで、正規のプロファイルデータに従って適切な認証手続が行われることを確保するため、上記のように、署名などを用いてプロファイルデータの正当性を確認することが考えられる。
【００１０】
しかし、正規のプロファイルデータに従って適切な認証手続が行われることを確保するには、プロファイルデータ自体の正当性に加えて、ユーザが使用するクライアントアプリケーションの正当性も問題となる。不正なクライアントアプリケーションは、改竄されたプロファイルデータに従った不適切な認証手続を隠蔽してしまう可能性がある。
【００１１】
クライアントアプリケーションの正当性については、例えば、サービス提供者毎（例えば、サーバアドレス毎）に署名付きのクライアントアプリケーションを開発し、署名付きクライアントアプリケーションをユーザに提供する方法も考えられる。ただし、サービス提供者毎に署名付きクライアントアプリケーションを用意することは、クライアントアプリケーションの開発コストや運用コストが大きくなってしまう。
【００１２】
１つの側面では、本発明は、認証処理に用いるプロファイルデータの改竄を効率的に検出できるようにするプロファイルデータ配信制御装置、プロファイルデータ配信制御方法およびプロファイルデータ配信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
１つの態様では、記憶部と制御部とを有するプロファイルデータ配信制御装置が提供される。記憶部は、公開鍵と公開鍵に対応する秘密鍵とを記憶する。制御部は、サーバを用いて提供される２以上のサービスそれぞれについて、サービスの識別情報を含むプロファイルデータを取得し、プロファイルデータが所定の正当性条件を満たす場合に秘密鍵を用いてプロファイルデータに署名を付加し、プロファイルデータに基づいてクライアントに認証処理を行わせるクライアントアプリケーションに対して、署名が検証されるように公開鍵を埋め込み、公開鍵が埋め込まれたクライアントアプリケーションを配信させる。
【００１４】
また、１つの態様では、コンピュータが実行するプロファイルデータ配信制御方法が提供される。また、１つの態様では、コンピュータに実行させるプロファイルデータ配信制御プログラムが提供される。
【発明の効果】
【００１５】
１つの側面では、認証処理に用いるプロファイルデータの改竄を効率的に検出できる。
【図面の簡単な説明】
【００１６】
【図１】第１の実施の形態のプロファイルデータ配信制御装置の例を示す図である。
【図２】第２の実施の形態に係るシステムの一例を示した図である。
【図３】第２の実施の形態に係るプロファイルデータ配布方式のモデルを示した図である。
【図４】第２の実施の形態に係るクライアント装置の機能を実現可能なハードウェアの一例を示した図である。
【図５】第２の実施の形態に係るクライアント装置が有する機能の一例を示したブロック図である。
【図６】第２の実施の形態に係るマスタ管理サーバが有する機能の一例を示したブロック図である。
【図７】第２の実施の形態に係るＷｅｂサーバが有する機能の一例を示したブロック図である。
【図８】第２の実施の形態に係るプロファイルデータの一例を示した図である。
【図９】第２の実施の形態に係るプロファイルデータ配布方式における処理の流れを示したシーケンス図である。
【図１０】第２の実施の形態に係る署名の検証およびアクセス制御に関する処理の流れを示したフロー図である。
【図１１】第２の実施の形態の一変形例（変形例＃１）に係るクライアント装置が有する機能の一例を示したブロック図である。
【図１２】第２の実施の形態の一変形例（変形例＃１）に係るマスタ管理サーバが有する機能の一例を示したブロック図である。
【図１３】第２の実施の形態の一変形例（変形例＃１）に係るＷｅｂサーバが有する機能の一例を示したブロック図である。
【図１４】第２の実施の形態の一変形例（変形例＃１）に係るマスタプロファイルデータの一例を示した図である。
【図１５】第２の実施の形態の一変形例（変形例＃１）に係るサブプロファイルデータの一例を示した図である。
【図１６】第２の実施の形態の一変形例（変形例＃１）に係るプロファイルデータ配布方式における処理の流れを示したシーケンス図である。
【図１７】第２の実施の形態の一変形例（変形例＃１）に係る署名の検証およびアクセス制御に関する処理の流れを示したフロー図である。
【図１８】第２の実施の形態の一変形例（変形例＃１）に係る認証処理の流れを示したシーケンス図である。
【図１９】第２の実施の形態の一変形例（変形例＃２）に係るマスタプロファイルデータの一例を示した図である。
【図２０】第２の実施の形態の一変形例（変形例＃２）に係る認証処理の流れを示した第１のフロー図である。
【図２１】第２の実施の形態の一変形例（変形例＃２）に係る認証処理の流れを示した第２のフロー図である。
【図２２】第２の実施の形態の一変形例（変形例＃３）に係るマスタ管理サーバが有する機能の一例を示したブロック図である。
【図２３】第２の実施の形態の一変形例（変形例＃３）に係るライセンス管理データの一例を示した図である。
【図２４】第２の実施の形態の一変形例（変形例＃３）に係るＷｅｂサーバが有する機能の一例を示したブロック図である。
【図２５】第２の実施の形態の一変形例（変形例＃３）に係る認証処理（ライセンス確認ＯＫ時）の流れを示したシーケンス図である。
【図２６】第２の実施の形態の一変形例（変形例＃３）に係る認証処理（ライセンス確認ＮＧ時）の流れを示したシーケンス図である。
【発明を実施するための形態】
【００１７】
以下、本実施の形態を図面を参照して説明する。
＜１．第１の実施の形態＞
第１の実施の形態を説明する。
【００１８】
図１は、第１の実施の形態のプロファイルデータ配信制御装置の例を示す図である。
プロファイルデータ配信制御装置１０は、サーバ２ａ，２ｂなどの情報通信機器を用いて提供されるサービス３ａ，３ｂなどの複数のサービスを管理する情報処理装置である。プロファイルデータ配信制御装置１０は、サーバコンピュータであってもよいし、管理者が使用するクライアントコンピュータであってもよい。
【００１９】
サーバ２ａ，２ｂは、ネットワークに接続されたサーバコンピュータである。サーバ２ａはサービス３ａの提供に用いられ、サーバ２ｂはサービス３ｂの提供に用いられる。ただし、サービス３ａ，３ｂが同じサーバを共用してもよい。サービス３ａ，３ｂは、ネットワークを介した情報処理サービスである。サービス３ａ，３ｂは、インターネットを介して情報処理の要求を受信し、要求された情報処理を実行し、インターネットを介して情報処理の結果を送信するＷｅｂサービスでもよい。サービス３ａの提供者とサービス３ｂの提供者とは、同じでもよいし異なってもよい。
【００２０】
例えば、クラウド事業者やデータセンタ事業者などの運用管理者が、サーバ２ａ，２ｂやプロファイルデータ配信制御装置１０を所有する。サービス３ａの提供者は、運用管理者と契約し、サーバ２ａを使用してサービス３ａを提供する。サービス３ｂの提供者は、運用管理者と契約し、サーバ２ｂを使用してサービス３ｂを提供する。この場合、運用管理者を「サービスマスタ」と言うことができ、サービス３ａ，３ｂの提供者を「テナント」と言うことができる。ただし、サービス３ａの提供者がサーバ２ａを所有してもよく、サービス３ｂの提供者がサーバ２ｂを所有してもよい。
【００２１】
クライアント４は、ネットワークを介してサービス３ａ，３ｂにアクセスできるクライアントコンピュータである。クライアント４のユーザは、サービス３ａ，３ｂの提供者と同じでもよいし異なってもよい。クライアント４からサービス３ａ，３ｂへは、サービス３ａ，３ｂの識別情報を用いてアクセスされる。サービス３ａ，３ｂの識別情報として、例えば、ＵＲＬ（Uniform Resource Locator）やＩＰ（Internet Protocol）アドレスなどのアドレスが用いられる。クライアント４は、サービス３ａを利用する場合はサーバ２ａと通信し、サービス３ｂを利用する場合はサーバ２ｂと通信することになる。
【００２２】
プロファイルデータ配信制御装置１０は、記憶部１１および制御部１２を有する。記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性の半導体メモリでもよいし、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性の記憶装置でもよい。制御部１２は、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などのプロセッサでもよい。また、制御部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの特定用途の電子回路を含んでもよい。プロセッサは、ＲＡＭなどのメモリ（記憶部１１でもよい）に記憶されたプログラムを実行する。プロセッサが実行するプログラムには、以下に説明する処理を記載したプロファイルデータ配信制御プログラムが含まれる。複数のプロセッサの集合を、「マルチプロセッサ」または単に「プロセッサ」と呼ぶこともある。
【００２３】
記憶部１１は、公開鍵暗号方式の公開鍵１３と、公開鍵１３に対応する秘密鍵１４とを記憶する。公開鍵１３を用いて暗号処理（秘匿化）されたデータは、秘密鍵１４を用いてのみ復元することができる。逆に、秘密鍵１４を用いて暗号処理（秘匿化）されたデータは、公開鍵１３を用いてのみ復元することができる。
【００２４】
制御部１２は、複数のサービスそれぞれについて、当該サービスの識別情報（例えば、当該サービスのＵＲＬ）を含むプロファイルデータを取得する。プロファイルデータは、後述するように、クライアント４による認証処理に用いられる。
【００２５】
具体的には、制御部１２は、サービス３ａについて、サービス３ａの識別情報を含むプロファイルデータ１５ａを取得する。プロファイルデータ１５ａは、サーバ２ａから受信してもよいし、サービス３ａの提供者が使用する他のコンピュータから受信してもよい。また、制御部１２は、サービス３ｂについて、サービス３ｂの識別情報を含むプロファイルデータ１５ｂを取得する。プロファイルデータ１５ｂは、サーバ２ｂから受信してもよいし、サービス３ｂの提供者が使用する他のコンピュータから受信してもよい。
【００２６】
制御部１２は、プロファイルデータ１５ａを取得すると、プロファイルデータ１５ａがサービス３ａを正しく表しているという正当性条件を満たすことを確認する。このとき、プロファイルデータ１５ａに含まれる一部または全部の項目について、制御部１２が自動的に正当性条件を判断するようにしてもよい。例えば、制御部１２は、データベースを参照して、プロファイルデータ１５ａに含まれる識別情報がサービス３ａの識別情報であるか判断する。また、プロファイルデータ１５ａに含まれる一部または全部の項目について、管理者に正当性条件を判断させるようにしてもよい。同様に、制御部１２は、プロファイルデータ１５ｂを取得すると、プロファイルデータ１５ｂがサービス３ｂを正しく表しているという正当性条件を満たすことを確認する。
【００２７】
制御部１２は、プロファイルデータ１５ａが正当性条件を満たす場合、記憶部１１に記憶された秘密鍵１４を用いてプロファイルデータ１５ａに署名１６ａを付加する。例えば、制御部１２は、元のプロファイルデータ１５ａに含まれる一部または全部の項目からハッシュ値を算出し、ハッシュ値を秘密鍵１４で暗号処理して署名１６ａとする。同様に、制御部１２は、プロファイルデータ１５ｂが正当性条件を満たす場合、記憶部１１に記憶された秘密鍵１４を用いてプロファイルデータ１５ｂに署名１６ｂを付加する。
【００２８】
制御部１２は、署名１６ａが付加されたプロファイルデータ１５ａを出力する。例えば、制御部１２は、サーバ２ａまたはサービス３ａの提供者が使用する他のコンピュータに対し、署名１６ａ付きのプロファイルデータ１５ａを送信する。同様に、制御部１２は、署名１６ｂが付加されたプロファイルデータ１５ｂを出力する。例えば、制御部１２は、サーバ２ｂまたはサービス３ｂの提供者が使用する他のコンピュータに対し、署名１６ｂ付きのプロファイルデータ１５ｂを送信する。
【００２９】
上記とは別に、制御部１２は、クライアントアプリケーション１７を取得する。クライアントアプリケーション１７は、クライアント４に実行させるアプリケーションソフトウェアである。クライアントアプリケーション１７は、プロファイルデータ配信制御装置１０上でコンパイルされるなどプロファイルデータ配信制御装置１０上で開発されてもよいし、他のコンピュータ上で開発されてもよい。クライアントアプリケーション１７は、記憶部１１に記憶されてもよいし他の記憶装置に記憶されてもよい。
【００３０】
クライアントアプリケーション１７は、プロファイルデータ１５ａを取得した場合、プロファイルデータ１５ａに基づいてクライアント４に認証処理を行わせる。プロファイルデータ１５ａに基づく認証処理は、サービス３ａを利用するための条件としてサービス３ａが要求するものである。また、クライアントアプリケーション１７は、プロファイルデータ１５ｂを取得した場合、プロファイルデータ１５ｂに基づいてクライアント４に認証処理を行わせる。プロファイルデータ１５ｂに基づく認証処理は、サービス３ｂを利用するための条件としてサービス３ｂが要求するものである。
【００３１】
例えば、クライアント４は、あるサービスにアクセスする際、当該サービスに対応するプロファイルデータに基づいてパスワード認証、ＩＣカード認証、生体認証などのユーザ認証を実行する。例えば、クライアント４は、使用したプロファイルデータに対応するサーバ（アクセスするサービスに対応するサーバ）にユーザ認証の結果を送信する。プロファイルデータ１５ａ，１５ｂには、認証処理に用いる認証方法の指定や、許容する認証強度を示す認証レベルの指定などが含まれていてもよい。
【００３２】
制御部１２は、クライアントアプリケーション１７を取得すると、記憶部１１に記憶された公開鍵１３をクライアントアプリケーション１７に埋め込む。クライアントアプリケーション１７は、埋め込まれた公開鍵１３を用いて署名１６ａ，１６ｂを検証する。
【００３３】
例えば、クライアントアプリケーション１７は、プロファイルデータ１５ａを取得した場合、公開鍵１３を用いて署名１６ａの暗号処理を解除する（復号する）と共に、プロファイルデータ１５ａに含まれる一部または全部の項目からハッシュ値を算出する。算出したハッシュ値と署名１６ａを復号したものとが一致している場合、クライアントアプリケーション１７は、取得したプロファイルデータ１５ａを正当なプロファイルデータと認める。一方、算出したハッシュ値と署名１６ａを復号したものとが一致しない場合、クライアントアプリケーション１７は、取得したプロファイルデータ１５ａを改竄されている可能性のある不正なプロファイルデータと判断する。
【００３４】
クライアントアプリケーション１７は、署名１６ａの検証に成功した場合（プロファイルデータ１５ａを正当と判断した場合）、クライアント４がサービス３ａにアクセスすることを許容してもよい。一方、クライアントアプリケーション１７は、署名１６ａの検証に失敗した場合（プロファイルデータ１５ａを不正と判断した場合）、クライアント４がサービス３ａにアクセスすることを抑止してもよい。
【００３５】
制御部１２は、公開鍵１３が埋め込まれたクライアントアプリケーション１７を配信させる。これにより、クライアント４にクライアントアプリケーション１７がインストールされ、クライアント４で署名検証や認証処理が行われることになる。なお、制御部１２は、クライアントアプリケーション１７を直接クライアント４に送信してもよい。また、制御部１２は、他のコンピュータにクライアントアプリケーション１７をアップロードすることで、間接的にクライアントアプリケーション１７を配信してもよい。
【００３６】
第１の実施の形態のプロファイルデータ配信制御装置１０によれば、サービス３ａ，３ｂに対応するプロファイルデータ１５ａ，１５ｂに、プロファイルデータ配信制御装置１０が有する秘密鍵１４を用いて署名１６ａ，１６ｂがそれぞれ付加される。これにより、クライアント４がプロファイルデータ１５ａ，１５ｂに基づいて認証処理を行う際、取得したプロファイルデータ１５ａ，１５ｂが、改竄されていない正当なプロファイルデータであることを確認することが可能となる。よって、不当に低い認証レベルに基づいて非正規のユーザが正規のユーザとして誤って認証されてしまうリスクや、クライアント４が不正なサーバに誘導されてしまうリスクなどを低減できる。
【００３７】
また、プロファイルデータ配信制御装置１０によれば、クライアント４に配信されるクライアントアプリケーション１７に、秘密鍵１４に対応する公開鍵１３が埋め込まれる。ここで、署名１６ａ，１６ｂの生成に用いる秘密鍵１４と署名１６ａ，１６ｂの検証に用いる公開鍵１３とが対応している場合のみ、署名１６ａ，１６ｂの検証が成功する。よって、不正なクライアントアプリケーションは署名１６ａ，１６ｂの検証に失敗することになり、不正なクライアントアプリケーションが、改竄されたプロファイルデータに基づいて不適切な認証処理を行ったことを隠蔽してしまうリスクを低減できる。
【００３８】
また、公開鍵１３が埋め込まれたクライアントアプリケーション１７は、サービス３ａへのアクセスとサービス３ｂへのアクセスの両方に使用することができる。よって、サービス３ａ，３ｂの提供者がそれぞれ署名付きのクライアントアプリケーションを開発しなくても、クライアントアプリケーション１７の正当性を確認することが可能となり、クライアントアプリケーション１７の開発コストや運用コストを低減できる。このように、認証処理に用いるプロファイルデータ１５ａ，１５ｂの改竄を効率的に検出できる。
【００３９】
＜２．第２の実施の形態＞
次に、第２の実施の形態について説明する。第２の実施の形態は、Ｗｅｂサービスの利用者（以下、テナント）が用いるアプリケーションソフトウェア（以下、ソフトウェア）にプロファイルデータを安全に配布する方式（以下、プロファイルデータ配布方式）に関する。プロファイルデータは、例えば、ソフトウェアがＷｅｂサーバへアクセスする際に実施される認証のレベルなどを規定する設定情報を含む。
【００４０】
第２の実施の形態に係るプロファイルデータ配布方式では、ソフトウェアから接続されるＷｅｂサーバのアドレスが設定情報に含まれる。また、第２の実施の形態に係るプロファイルデータ配布方式では、ソフトウェアを開発し、そのソフトウェアを配布する配布者（以下、サービスマスタ）がプロファイルデータに秘密鍵を用いて署名を付与する。さらに、第２の実施の形態に係るプロファイルデータ配布方式では、上記の秘密鍵に対応する公開鍵がソフトウェアに埋め込まれた状態でソフトウェアが配布される。
【００４１】
上記の仕組みにより、ソフトウェアに埋め込まれている公開鍵を利用してプロファイルデータの署名を検証することができ、プロファイルデータの改竄を検知することが可能になる。第２の実施の形態に係るプロファイルデータ配布方式では、プロファイルデータの署名検証が成功した場合に、設定情報に含まれるアドレスに対してアクセスが許容されうる。また、設定情報に含まれる認証レベルなどの情報が認証に利用される。
【００４２】
上記のように、公開鍵を埋め込んだソフトウェア、署名を付与したプロファイルデータを利用し、署名検証の結果に応じてソフトウェア側からＷｅｂサーバへのアクセスを制限することで、改竄されたプロファイルデータが認証に利用されることを防止できる。このような第２の実施の形態に係るプロファイルデータ配布方式の仕組みは、例えば、図２に示すようなシステムに適用できる。
【００４３】
［２−１．システム］
図２を参照しながら、第２の実施の形態に係るシステムについて説明する。図２は、第２の実施の形態に係るシステムの一例を示した図である。
【００４４】
図２に示すように、第２の実施の形態に係るシステムは、ネットワーク７４を介して接続されたクライアント装置１００と、マスタ管理サーバ２００と、Ｗｅｂサーバ３０１、３０２とを有する。
【００４５】
クライアント装置１００、マスタ管理サーバ２００、およびＷｅｂサーバ３０１、３０２はコンピュータである。例えば、クライアント装置１００は、携帯電話機、スマートフォン、タブレット端末、ＰＣ（Personal Computer）などのコンピュータである。マスタ管理サーバ２００、およびＷｅｂサーバ３０１、３０２は、例えば、ＰＣや汎用計算機などのコンピュータである。
【００４６】
ネットワーク７４は、有線または無線のネットワークである。クライアント装置１００、マスタ管理サーバ２００、およびＷｅｂサーバ３０１、３０２は、例えば、ＴＣＰ（Transmission Control Protocol）／ＩＰ（Internet Protocol）などのプロトコル上のメッセージに含めて情報を互いにやり取りできる。
【００４７】
クライアント装置１００は、認証に利用されるソフトウェアが動作する装置である。このソフトウェアは、例えば、ソフトウェアを配布するオンラインストアなどを通じて配布され、クライアント装置１００にセットアップされる。マスタ管理サーバ２００は、上記のソフトウェアを開発し、且つプロファイルデータに署名を付与するエンティティ（以下、サービスマスタ）として機能する。Ｗｅｂサーバ３０１、３０２は、後述するテナントの機能を提供する。
【００４８】
以下、図２のシステムを例に説明を進める。
（モデル）
ここで、図３を参照しながら、上述したソフトウェア、サービスマスタ、テナントがプロファイルデータ配布方式において担う役割を模式化したモデルについて説明する。図３は、第２の実施の形態に係るプロファイルデータ配布方式のモデルを示した図である。
【００４９】
サービスマスタは、認証システム向けのソフトウェアを開発し、そのソフトウェアを管理する。ソフトウェアは、サービスマスタによってオンラインストアなどの配布者に供給され、その配布者を介してエンドユーザ（ソフトウェアの利用者）に配布される。
【００５０】
サービスマスタは、ソフトウェアを開発する際に、署名の作成および検証に利用される鍵ペア（公開鍵、秘密鍵）を生成する。テナントＡ、Ｂからプロファイルデータを受け取ったサービスマスタは、公開鍵を難読化してソフトウェアに埋め込む。また、サービスマスタは、プロファイルデータの署名を作成し、作成した署名をプロファイルデータに付与する。そして、サービスマスタは、署名付きプロファイルをテナントＡ、Ｂにそれぞれ返信する。
【００５１】
テナントＡ、Ｂはそれぞれ、プロファイルデータに含まれる設定情報（認証レベルなどの情報）に各自が管理するＷｅｂサーバのアドレスを含める。設定情報にＷｅｂサーバのアドレスが含まれることで、設定情報とＷｅｂサーバとが対応付けられる。例えば、Ｗｅｂサーバ３０１をテナントＡが管理している場合、テナントＡは、プロファイルデータの設定情報にＷｅｂサーバ３０１のアドレスを含める。
【００５２】
エンドユーザは、オンラインストアからソフトウェアを取得し、取得したソフトウェアをクライアント装置１００にセットアップする。また、エンドユーザは、テナントＡのＷｅｂサーバ３０１を利用する場合、テナントＡのシステム管理者から署名付きプロファイルデータを取得する。例えば、エンドユーザは、電子メールなどを利用して署名付きプロファイルデータを取得する。
【００５３】
また、エンドユーザは、ソフトウェアに埋め込まれている公開鍵を利用してプロファイルデータの署名を検証する。そして、エンドユーザは、署名の検証が成功した場合にプロファイルデータから設定情報を取得し、取得した設定情報をソフトウェアに組み込む。エンドユーザは、プロファイルデータが組み込まれたソフトウェアを利用することで、設定情報に基づく認証処理を進めることができる。
【００５４】
図２に示したシステムにおいて上記のモデルを採用することにより、改竄されたプロファイルデータが認証に利用されることを防止できる。
以上、システムについて説明した。
【００５５】
［２−２．ハードウェア］
ここで、図４を参照しながら、クライアント装置１００のハードウェアについて説明する。図４は、第２の実施の形態に係るクライアント装置の機能を実現可能なハードウェアの一例を示した図である。
【００５６】
クライアント装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、媒体リーダ１０６および通信インタフェース１０７を有する。ＣＰＵ１０１は、第１の実施の形態の制御部１２の一例である。
【００５７】
ＣＰＵ１０１は、プログラムの命令を実行する演算回路を含むプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されているプログラムやデータの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。
【００５８】
なお、ＣＰＵ１０１は複数のプロセッサコアを備えてもよく、クライアント装置１００は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列実行してもよい。また、複数のプロセッサの集合（マルチプロセッサ）を「プロセッサ」と呼んでもよい。
【００５９】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやＣＰＵ１０１が演算に用いるデータを一時的に記憶する揮発性メモリである。なお、クライアント装置１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【００６０】
ＨＤＤ１０３は、ＯＳ（Operating System）やアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、クライアント装置１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【００６１】
画像信号処理部１０４は、ＣＰＵ１０１からの命令に従って、クライアント装置１００に接続されたディスプレイ７１に画像を出力する。ディスプレイ７１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、プラズマディスプレイ（ＰＤＰ：Plasma Display Panel）、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイなどを用いることができる。
【００６２】
入力信号処理部１０５は、クライアント装置１００に接続された入力デバイス７２から入力信号を取得し、ＣＰＵ１０１に出力する。
入力デバイス７２としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、クライアント装置１００に、複数の種類の入力デバイスが接続されていてもよい。なお、ディスプレイ７１および入力デバイス７２の少なくとも一方が、クライアント装置１００の筐体と一体に形成されていてもよい。
【００６３】
なお、入力デバイス７２として、指紋認証に利用される指紋読み取りデバイスや、静脈認証に利用される静脈読み取りデバイスなどが用いられてもよい。指紋読み取りデバイスや静脈読み取りデバイスは、認証手段の一例である。なお、パスワード認証を利用する場合、入力デバイス７２として用いられるキーボードが認証手段となる。
【００６４】
媒体リーダ１０６は、記録媒体７３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体７３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。媒体リーダ１０６は、例えば、記録媒体７３から読み取ったプログラムやデータをＲＡＭ１０２またはＨＤＤ１０３に格納する。
【００６５】
通信インタフェース１０７は、ネットワーク７４に接続され、ネットワーク７４を介して他の情報処理装置と通信を行うインタフェースである。通信インタフェース１０７は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
【００６６】
以上、クライアント装置１００のハードウェアについて説明した。なお、マスタ管理サーバ２００、Ｗｅｂサーバ３０１、３０２の機能も図４に例示したクライアント装置１００のハードウェアと同様のハードウェアを用いて実現可能である。そのため、マスタ管理サーバ２００、Ｗｅｂサーバ３０１、３０２が有する機能を実現可能なハードウェアについて詳細な説明は省略する。
【００６７】
以上、ハードウェアについて説明した。
［２−３．機能］
次に、クライアント装置１００、マスタ管理サーバ２００、Ｗｅｂサーバ３０１、３０２が有する機能について説明する。なお、説明の都合上、Ｗｅｂサーバ３０１、３０２は同じ機能を有するものとし、Ｗｅｂサーバ３０１の機能については詳細に説明する一方、Ｗｅｂサーバ３０２の機能については詳細な説明を省略する。
【００６８】
（クライアント装置）
まず、図５を参照しながら、クライアント装置１００の機能について説明する。図５は、第２の実施の形態に係るクライアント装置が有する機能の一例を示したブロック図である。
【００６９】
図５に示すように、クライアント装置１００は、記憶部１１１、プロファイル管理部１１２、プロファイル検証部１１３、および接続制御部１１４を有する。
なお、記憶部１１１の機能は、上述したＲＡＭ１０２やＨＤＤ１０３などを用いて実現できる。プロファイル管理部１１２、プロファイル検証部１１３、および接続制御部１１４の機能は、上述したＣＰＵ１０１などを用いて実現できる。
【００７０】
記憶部１１１には、Ｗｅｂサーバ３０１へアクセスする際に行う認証の処理をクライアント装置１００に実行させるソフトウェア１１１ａが格納される。ソフトウェア１１１ａは、例えば、サービスマスタ（マスタ管理サーバ２００）によりオンラインストアなどを介して配布される。
【００７１】
以下では、説明の都合上、ソフトウェア１１１ａは、Ｗｅｂサーバ３０１へのアクセスに利用されるアプリケーションソフトウェアであるとする。また、ソフトウェア１１１ａは、クライアント装置１００の利用者により予め取得されて記憶部１１１に格納されているとする。また、ソフトウェア１１１ａには、サービスマスタ（マスタ管理サーバ２００）により生成され、難読化された公開鍵が埋め込まれている。
【００７２】
プロファイル管理部１１２は、テナントのシステム管理者から署名付きのプロファイルデータを受け取る。例えば、プロファイル管理部１１２は、クライアント装置１００の利用者が利用するＷｅｂサーバ３０１のシステム管理者からメールやファイルサーバなどを利用して署名付きのプロファイルデータを受け取る。
【００７３】
プロファイル検証部１１３は、ソフトウェア１１１ａに埋め込まれている公開鍵を利用し、プロファイル管理部１１２が受け取ったプロファイルデータに付与されている署名を検証する。
【００７４】
署名の検証が成功した場合、プロファイル検証部１１３は、プロファイルデータに含まれる設定情報を取り出す。この設定情報には、Ｗｅｂサーバ３０１のアドレスおよびＷｅｂサーバ３０１のサービスを利用する際に用いる情報（認証レベルなど）が含まれる。接続制御部１１４は、プロファイルデータから取り出された設定情報のアドレスを参照してＷｅｂサーバ３０１にアクセスし、認証レベルなどの情報を利用して認証の処理を実行する。
【００７５】
以上、クライアント装置１００の機能について説明した。
（マスタ管理サーバ）
次に、図６を参照しながら、マスタ管理サーバ２００の機能について説明する。図６は、第２の実施の形態に係るマスタ管理サーバが有する機能の一例を示したブロック図である。
【００７６】
図６に示すように、マスタ管理サーバ２００は、記憶部２０１、鍵ペア管理部２０２、公開鍵加工部２０３、署名生成部２０４、およびＡＰＰ管理部２０５を有する。
なお、記憶部２０１の機能は、上述したＲＡＭ１０２やＨＤＤ１０３などを用いて実現できる。鍵ペア管理部２０２、公開鍵加工部２０３、署名生成部２０４、およびＡＰＰ管理部２０５の機能は、上述したＣＰＵ１０１などを用いて実現できる。
【００７７】
記憶部２０１には、公開鍵と秘密鍵とのペアである鍵ペア２０１ａが格納される。公開鍵は、ソフトウェア１１１ａなどのアプリケーションソフトウェアに埋め込まれる。秘密鍵は、プロファイルデータに付与される署名の生成に利用される。
【００７８】
鍵ペア管理部２０２は、複数のテナントのＷｅｂサーバ（Ｗｅｂサーバ３０１、３０２）へのアクセスに共通して利用される公開鍵と秘密鍵とのペアを生成し、鍵ペア２０１ａとして記憶部２０１に格納する。公開鍵加工部２０３は、ソフトウェア１１１ａなどのアプリケーションソフトウェアに埋め込まれる公開鍵を難読化する。例えば、公開鍵加工部２０３は、公開鍵に特定のデータを挿入する処理や、公開鍵の一部または全部を暗号化する処理などを実施して公開鍵を難読化する。
【００７９】
署名生成部２０４は、秘密鍵を利用してプロファイルデータに付与する署名を生成する。プロファイルデータを取得した署名生成部２０４は、プロファイルデータの内容を確認し、その内容が正しい場合に秘密鍵を利用してプロファイルデータに付与する署名を生成する。そして、署名生成部２０４は、生成した署名をプロファイルデータに付与する。
【００８０】
なお、プロファイルデータの内容確認は、例えば、次のような方法で実施される。
プロファイルデータには、後述するように、テナントを識別するテナント識別子、そのテナントのＷｅｂサーバのアドレス、有効期限（開始）、有効期限（終了）、サーバ証明書、および認証情報（認証レベルなど）が含まれる。
【００８１】
署名生成部２０４は、テナントの情報として、テナント識別子及びそのテナントのＷｅｂサーバのアドレスなどを管理し、そのテナントの情報とプロファイルデータの内容とが一致する場合に、テナントに関する内容が正しいと判断する。
【００８２】
また、署名生成部２０４は、プロファイルデータに含まれるサーバ証明書の有効期限を参照し、明らかに不自然な値（長すぎる有効期限など）でない場合に、有効期限に関する内容が正しいと判断する。また、署名生成部２０４は、プロファイルデータに含まれる認証情報の認証レベルが予め設定された値（デフォルト値）以上である場合に、認証レベルに関する内容が正しいと判断する。
【００８３】
そして、署名生成部２０４は、上記の各種内容についてプロファイルデータの内容が正しいと判断された場合、そのプロファイルデータに付与する署名を生成する。なお、署名生成部２０４は、上記の各種内容についてプロファイルデータの内容が正しいと判断されなかった場合、サービスマスタにプロファイルデータの内容確認を求めてもよい。この場合、管理者が正しいと判断した場合、署名生成部２０４は、そのプロファイルに付与する署名を生成する。
【００８４】
ＡＰＰ管理部２０５は、ソフトウェア１１１ａなどのアプリケーションソフトウェアに難読化された公開鍵を埋め込む。そして、ＡＰＰ管理部２０５は、オンラインストアなどの配布者を介して、公開鍵が埋め込まれたアプリケーションソフトウェアをＷｅｂサーバ３０１、３０２の利用者に配布する。
【００８５】
以上、マスタ管理サーバ２００の機能について説明した。
（Ｗｅｂサーバ）
次に、図７を参照しながら、Ｗｅｂサーバ３０１の機能について説明する。なお、Ｗｅｂサーバ３０１、３０２が有する機能は実質的に同じであるため、Ｗｅｂサーバ３０１について説明し、Ｗｅｂサーバ３０２の機能については説明を省略する。図７は、第２の実施の形態に係るＷｅｂサーバが有する機能の一例を示したブロック図である。
【００８６】
図７に示すように、Ｗｅｂサーバ３０１は、記憶部３１１、およびサービス提供部３１２を有する。また、Ｗｅｂサーバ３０１は、テナントの管理者が操作端末として利用するテナント端末３２１に接続されている。
【００８７】
なお、記憶部３１１の機能は、上述したＲＡＭ１０２やＨＤＤ１０３などを用いて実現できる。サービス提供部３１２の機能は、上述したＣＰＵ１０１などを用いて実現できる。また、テナント端末３２１の機能は、図４に示したクライアント装置１００と同じハードウェアを利用して実現可能である。
【００８８】
テナント端末３２１は、プロファイルデータ３２１ａを保持している。プロファイルデータ３２１ａは、例えば、図８のような内容を含む。図８は、第２の実施の形態に係るプロファイルデータの一例を示した図である。図８に示すように、プロファイルデータ３２１ａは、テナント識別子、Ｗｅｂサーバ３０１のアドレス、有効期限（開始）、有効期限（終了）、サーバ証明書、および認証情報を含む。
【００８９】
テナント識別子は、テナントを一意に識別する識別子である。例えば、プロファイルデータ３２１ａには、Ｗｅｂサーバ３０１のテナントを識別するテナント識別子が含まれる。Ｗｅｂサーバのアドレスは、テナントのＷｅｂサーバを示すアドレスであり、サービス時のアクセスに利用される。例えば、プロファイルデータ３２１ａには、Ｗｅｂサーバ３０１のＵＲＬが含まれる。
【００９０】
有効期限（開始）は、プロファイルデータ３２１ａの有効期限の開始時点を示す日付情報を表した文字列である。有効期限（終了）は、プロファイルデータ３２１ａの有効期限の終了時点を示す日付情報を表した文字列である。サーバ証明書は、ＰＥＭ（Privacy Enhanced Mail）形式で記載された証明書である。例えば、ＤＥＲ（Distinguished Encoding Rules）形式のＸ５０９証明書をＰＥＭ形式に変換した文字列がサーバ証明書として利用される。
【００９１】
認証情報は、認証に利用する認証手段や認証レベルなどの情報である。認証手段は、例えば、指紋認証、静脈認証などである。認証レベルは、実際の生体データ（指紋認証であれば実際に生体から採取された指紋パターンの画像データ）とテンプレート（登録されている生体データ）との照合閾値である。例えば、指紋パターンの特徴と、テンプレートの特徴とが閾値レベル以上の割合で一致した場合に認証成功と判断される。
【００９２】
テナントの管理者は、テナント端末３２１を利用してプロファイルデータ３２１ａを生成する。また、テナント端末３２１は、マスタ管理サーバ２００にプロファイルデータ３２１ａを提供し、Ｗｅｂサーバ３０１に対応する署名をプロファイルデータ３２１ａに付与するように要求する。そして、テナント端末３２１は、電子メールやファイルサーバなどを利用して、マスタ管理サーバ２００により署名が付与されたプロファイルデータ３２１ａをクライアント装置１００に送信する。
【００９３】
このように、テナントの管理者は、プロファイルデータ３２１ａをクライアント装置１００に提供することで、クライアント装置１００で実行される認証の方法を指定する。例えば、認証の方法として指紋認証が指定されると、Ｗｅｂサーバ３０１の利用者は、クライアント装置１００の認証手段（指紋読み取りデバイス）を利用して指紋を入力し、認証の処理を実施する。クライアント装置１００には、認証の処理時に照合される登録情報（登録パスワードや登録生体情報など）が格納されており、認証の処理が実施されると、その認証結果（認証の成否）がクライアント装置１００からＷｅｂサーバ３０１に送信される。
【００９４】
サービス提供部３１２は、クライアント装置１００から受信した認証結果が認証成功である場合、そのクライアント装置１００にＷｅｂサービスを提供する。一方、クライアント装置１００から受信した認証結果が認証失敗である場合、サービス提供部３１２は、そのクライアント装置１００に対してＷｅｂサービスを提供しない。
【００９５】
以上、Ｗｅｂサーバ３０１の機能について説明した。
［２−４．処理の流れ］
次に、クライアント装置１００、マスタ管理サーバ２００、Ｗｅｂサーバ３０１の間で実行される処理の流れについて説明する。なお、ここでは、説明の都合上、Ｗｅｂサーバ３０１に関係する処理について説明するが、Ｗｅｂサーバ３０２についても同様である。
【００９６】
（プロファイルデータ配布方式）
まず、図９を参照しながら、プロファイルデータ３２１ａの配布に関する処理の流れについて説明する。図９は、第２の実施の形態に係るプロファイルデータ配布方式における処理の流れを示したシーケンス図である。
【００９７】
（Ｓ１０１）マスタ管理サーバ２００は、鍵ペア管理部２０２により、公開鍵と秘密鍵とのペアを生成し、鍵ペア２０１ａとして記憶部２０１に格納する。例えば、鍵ペア管理部２０２は、Ｗｅｂサーバ３０１、３０２に共通の公開鍵と秘密鍵とのペアを生成する。
【００９８】
（Ｓ１０２）マスタ管理サーバ２００は、公開鍵加工部２０３により、公開鍵を加工する。例えば、公開鍵加工部２０３は、ＡＥＳ（Advanced Encryption Standard）などの暗号化方式に基づいて公開鍵を暗号化し、公開鍵を難読化する。なお、公開鍵加工部２０３は、暗号化以外の方法で公開鍵を難読化してもよい。
【００９９】
（Ｓ１０３）マスタ管理サーバ２００は、ＡＰＰ管理部２０５により、ソフトウェア１１１ａのビルドを実行し、難読化した公開鍵をソフトウェア１１１ａに埋め込む。なお、ビルドは、ソフトウェア１１１ａのソースコードをコンパイルする処理や、ライブラリをリンクする処理などを実行して実行可能なファイルを生成する処理である。
【０１００】
（Ｓ１０４）マスタ管理サーバ２００は、ＡＰＰ管理部２０５により、難読化した公開鍵が埋め込まれたソフトウェア１１１ａをＷｅｂサーバ３０１の利用者（クライアント装置１００など）に配布する。例えば、ＡＰＰ管理部２０５は、アプリケーションソフトウェアを配布するオンラインストアなどを介してソフトウェア１１１ａを配布する。なお、クライアント装置１００の利用者は、ソフトウェア１１１ａを取得し、クライアント装置１００にセットアップする（ソフトウェア１１１ａを実行可能な状態にする）。
【０１０１】
（Ｓ１０５）テナント端末３２１は、プロファイルデータ３２１ａ（図８を参照）を生成する。例えば、テナント端末３２１は、予め用意されているテナント識別子、Ｗｅｂサーバ３０１のＵＲＬ、サーバ証明書、そのサーバ証明書の有効期限（開始、終了）、および認証情報を用いてプロファイルデータ３２１ａを生成する。
【０１０２】
（Ｓ１０６）テナント端末３２１は、プロファイルデータ３２１ａをマスタ管理サーバ２００に送信し、署名の付与を要求する。
（Ｓ１０７）マスタ管理サーバ２００は、署名生成部２０４により、プロファイルデータ３２１ａの内容を確認し、その内容が正しい場合に秘密鍵を利用してプロファイルデータ３２１ａに付与する署名を生成する。例えば、署名生成部２０４は、Ｗｅｂサーバ３０１のアドレス、サーバ証明書の有効期限、認証情報の認証レベルが正しいと判断できた場合に、プロファイルデータ３２１ａに付与する署名を生成する。そして、署名生成部２０４は、生成した署名をプロファイルデータ３２１ａに付与する。
【０１０３】
（Ｓ１０８）マスタ管理サーバ２００は、署名生成部２０４により、署名付きのプロファイルデータ３２１ａをＷｅｂサーバ３０１に返信する。
（Ｓ１０９）テナント端末３２１は、マスタ管理サーバ２００から受信した署名付きのプロファイルデータ３２１ａをＷｅｂサーバ３０１の利用者（この例ではクライアント装置１００）に配布する。例えば、テナント端末３２１は、メールやファイルサーバなどを介して署名付きのプロファイルデータ３２１ａをクライアント装置１００に配布する。
【０１０４】
（Ｓ１１０）クライアント装置１００は、プロファイル検証部１１３により、ソフトウェア１１１ａに埋め込まれた公開鍵を取り出し、取り出した公開鍵を用いて、Ｗｅｂサーバ３０１から配布された署名付きのプロファイルデータ３２１ａの署名を検証する。なお、署名の検証は、例えば、ソフトウェア１１１ａの起動時に実行される。また、クライアント装置１００は、接続制御部１１４により、署名の検証結果に応じて、Ｗｅｂサーバ３０１へのアクセスを制御する。
【０１０５】
（署名の検証およびアクセス制御）
ここで、図１０を参照しながら、上記のＳ１１０における署名の検証およびアクセス制御に関する処理について、さらに説明する。図１０は、第２の実施の形態に係る署名の検証およびアクセス制御に関する処理の流れを示したフロー図である。
【０１０６】
（Ｓ１２１）プロファイル検証部１１３は、ソフトウェア１１１ａに埋め込まれている公開鍵を読み出す。このとき、プロファイル検証部１１３は、例えば、ＡＥＳの方式で暗号化されている公開鍵を復号する。そして、プロファイル検証部１１３は、読み出した公開鍵を用いてプロファイルデータ３２１ａに付与されている署名の正当性を検証する。
【０１０７】
（Ｓ１２２）接続制御部１１４は、プロファイル検証部１１３による署名の検証が成功したか否か（署名の正当性が確認されたか否か）を判定する。署名の検証が成功した場合、処理はＳ１２３へと進む。一方、署名の検証が失敗した場合、処理はＳ１２５へと進む。
【０１０８】
（Ｓ１２３）接続制御部１１４は、プロファイルデータ３２１ａに含まれる設定情報を取り出す。例えば、接続制御部１１４は、プロファイルデータ３２１ａから、Ｗｅｂサーバ３０１のアドレス、サーバ証明書、そのサーバ証明書の有効期限（開始、終了）、および認証情報（認証手段や認証レベルなど）を取り出す。そして、接続制御部１１４は、ソフトウェア１１１ａを利用してＷｅｂサーバ３０１へアクセスする際に、取り出した設定情報を利用できる状態にする（設定情報の取り込み）。
【０１０９】
（Ｓ１２４）接続制御部１１４は、ソフトウェア１１１ａにサービス（Ｗｅｂサーバ３０１が提供するＷｅｂサービス）へのアクセスを許可する。Ｓ１２４の処理を完了すると、図１０に示した一連の処理は終了する。
【０１１０】
（Ｓ１２５）接続制御部１１４は、ソフトウェア１１１ａにサービスへのアクセスを禁止する。つまり、接続制御部１１４は、ソフトウェア１１１ａを利用してＷｅｂサーバ３０１へアクセスしないように制御する。Ｓ１２５の処理を完了すると、図１０に示した一連の処理は終了する。
【０１１１】
なお、ここではプロファイルデータ３２１ａの署名を検証する処理について説明したが、他のプロファイルデータがある場合には、ソフトウェア１０１ａの起動時に全てのプロファイルデータについて同様の処理が実行される。そして、テナント毎にＷｅｂサーバが提供するサービスへのアクセスが許可または禁止される。
【０１１２】
その後、クライアント装置１００の利用者は、ソフトウェア１０１ａの画面からテナントを選択して利用する。例えば、利用者がＷｅｂサーバ３０１のテナントを選択すると、そのテナントのサービスへのアクセスが許可されている場合、プロファイルデータ３２１ａで指定された認証方法によりクライアント装置１００で認証の処理が実施される。そして、その認証の結果がＷｅｂサーバ３０１に送信される。一方、利用者が選択したテナントのサービスに対するアクセスが禁止されている場合、クライアント装置１００にエラー画面が表示される。
【０１１３】
以上、プロファイルデータ３２１ａの配布に関する処理の流れについて説明した。
上記の仕組みを適用すれば、ソフトウェア１１１ａに公開鍵を埋め込んで配布し、プロファイルデータ３２１ａに署名を付与して提供することで、クライアント装置１００側でプロファイルデータ３２１ａの正当性を確認することが可能になる。そのため、悪意ある者が配布した不正なプロファイルデータが認証に利用されるリスクや、偽のＷｅｂサーバにクライアント装置１００が誘導されるリスクを抑制することができる。
【０１１４】
［２−５．変形例＃１］
次に、第２の実施の形態の一変形例（変形例＃１）について説明する。
変形例＃１は、サーバ識別子などの設定情報を定義するマスタプロファイルデータと、生体認証で利用される認証レベルや登録品質などの設定情報を定義するサブプロファイルデータとを分離して管理する仕組みに関する。マスタプロファイルデータは、公開可能な固定された設定情報を定義する。一方、サブプロファイルデータは、機密性を有する変更可能な設定情報を定義する。このように、サブプロファイルデータを分けて管理することで、プロファイルデータの配布時に機密性がある設定情報の漏洩リスクを低減することができる。
【０１１５】
（クライアント装置）
まず、図１１を参照しながら、変形例＃１に係るクライアント装置１００の機能について説明する。図１１は、第２の実施の形態の一変形例（変形例＃１）に係るクライアント装置が有する機能の一例を示したブロック図である。
【０１１６】
図１１に示すように、クライアント装置１００は、記憶部１１１、マスタプロファイル取得部１３１、マスタプロファイル検証部１３２、接続制御部１１４、およびサブプロファイル取得部１３３を有する。
【０１１７】
図５に示したクライアント装置１００と変形例＃１に係るクライアント装置１００との主な違いは、プロファイル管理部１１２、プロファイル検証部１１３が、マスタプロファイル取得部１３１、マスタプロファイル検証部１３２に置換されている点にある。さらに、変形例＃１では、クライアント装置１００にサブプロファイル取得部１３３が追加されている。このように、変形例＃１では、マスタプロファイルとサブプロファイルとを分けて管理できるようにクライアント装置１００の機能が変形される。
【０１１８】
なお、マスタプロファイル取得部１３１、マスタプロファイル検証部１３２、およびサブプロファイル取得部１３３の機能は、上述したＣＰＵ１０１などを用いて実現できる。
マスタプロファイル取得部１３１は、テナントのシステム管理者から署名付きのマスタプロファイルデータを受け取る。例えば、マスタプロファイル取得部１３１は、クライアント装置１００の利用者が利用するＷｅｂサーバ３０１のシステム管理者からメールやファイルサーバなどを利用して署名付きのマスタプロファイルデータを受け取る。
【０１１９】
マスタプロファイル検証部１３２は、ソフトウェア１１１ａに埋め込まれている公開鍵を利用し、マスタプロファイル取得部１３１が受け取ったマスタプロファイルデータに付与されている署名を検証する。
【０１２０】
署名の検証が成功した場合、マスタプロファイル検証部１３２は、マスタプロファイルデータに含まれる設定情報を取り出す。この設定情報には、Ｗｅｂサーバ３０１のアドレスおよびサブプロファイルデータの取得に用いる情報が含まれる。サブプロファイル取得部１３３は、マスタプロファイルデータから取り出された設定情報のアドレスを参照してＷｅｂサーバ３０１にＴＬＳ（Transport Layer Security）でアクセスし、その設定情報を利用してＷｅｂサーバ３０１からサブプロファイルデータを取得する。
【０１２１】
サブプロファイルデータには、認証レベルや登録品質などの設定情報を含む。なお、認証レベルは、実際に取得された生体情報と、予め登録されているテンプレートとの一致を判定する際に用いる判定の厳しさ（一致度の閾値）を表す。例えば、実際の指紋画像から得られる特徴点と、テンプレート画像から得られる特徴点との間の距離を一致不一致の判定に利用する場合、認証レベルは、その距離の近さを判断する閾値を表す。
【０１２２】
サブプロファイル取得部１３３は、サブプロファイルデータに含まれる設定情報（認証手段や認証レベルなど）を利用し、生体認証用の操作を促す画面を表示する処理や、生体認証の照合閾値などの設定処理を実行する。そして、サブプロファイル取得部１３３は、サブプロファイルデータの設定情報やクライアント装置１００の利用者が入力した生体情報などに基づいて認証（指紋読み取りデバイスなどを利用した認証）の処理を実行する。
【０１２３】
一方、署名の検証が失敗した場合、接続制御部１１４は、サブプロファイル取得部１３３によるサブプロファイルデータの取得を禁止する。
上記のように、マスタプロファイルの取得とサブプロファイルの取得とを分離し、マスタプロファイルデータに含まれるサーバ証明書を利用してＷｅｂサーバ３０１の正当性が確認された場合にサブプロファイルデータが取得できるようにする。この仕組みを設けることで、クライアント装置１００とＷｅｂサーバ３０１間でＴＬＳの通信経路が確立した場合だけ機密情報を含むサブプロファイルが通信路を流れることになるため、機密情報の漏洩リスクを低減することができる。
【０１２４】
以上、変形例＃１に係るクライアント装置１００の機能について説明した。
（マスタ管理サーバ）
次に、図１２を参照しながら、変形例＃１に係るマスタ管理サーバ２００の機能について説明する。図１２は、第２の実施の形態の一変形例（変形例＃１）に係るマスタ管理サーバが有する機能の一例を示したブロック図である。
【０１２５】
図１２に示すように、マスタ管理サーバ２００は、記憶部２０１、鍵ペア管理部２０２、公開鍵加工部２０３、マスタ用署名生成部２０６、およびＡＰＰ管理部２０５を有する。
【０１２６】
図６に示したマスタ管理サーバ２００と変形例＃１に係るマスタ管理サーバ２００との主な違いは、署名生成部２０４がマスタ用署名生成部２０６に置換されている点にある。
なお、マスタ用署名生成部２０６の機能は、上述したＣＰＵ１０１などを用いて実現できる。
【０１２７】
マスタ用署名生成部２０６は、秘密鍵を利用してマスタプロファイルデータに付与する署名を生成する。マスタプロファイルデータを取得したマスタ用署名生成部２０６は、マスタプロファイルデータの内容を確認し、その内容が正しい場合に秘密鍵を利用してマスタプロファイルデータに付与する署名を生成する。そして、マスタ用署名生成部２０６は、生成した署名をマスタプロファイルデータに付与する。
【０１２８】
なお、マスタプロファイルデータの内容確認は、例えば、次のような方法で実施される。
マスタプロファイルデータには、後述するように、テナントを識別するテナント識別子、そのテナントのＷｅｂサーバのアドレス、有効期限（開始）、有効期限（終了）、およびサーバ証明書が含まれる。
【０１２９】
マスタ用署名生成部２０６は、テナントの情報として、テナント識別子及びそのテナントのＷｅｂサーバのアドレスなどを管理し、そのテナントの情報とマスタプロファイルデータの内容とが一致する場合に、テナントに関する内容が正しいと判断する。
【０１３０】
また、マスタ用署名生成部２０６は、マスタプロファイルデータに含まれるサーバ証明書の有効期限を参照し、明らかに不自然な値（長すぎる有効期限など）でない場合に、有効期限に関する内容が正しいと判断する。
【０１３１】
そして、マスタ用署名生成部２０６は、上記の各種内容についてマスタプロファイルデータの内容が正しいと判断された場合、そのマスタプロファイルデータに付与する署名を生成する。なお、マスタ用署名生成部２０６は、上記の各種内容についてマスタプロファイルデータの内容が正しいと判断されなかった場合、サービスマスタにマスタプロファイルデータの内容確認を求めてもよい。この場合、管理者が正しいと判断した場合、マスタ用署名生成部２０６は、そのマスタプロファイルに付与する署名を生成する。
【０１３２】
以上、変形例＃１に係るマスタ管理サーバ２００の機能について説明した。
（Ｗｅｂサーバ）
次に、図１３を参照しながら、変形例＃１に係るＷｅｂサーバ３０１について説明する。なお、Ｗｅｂサーバ３０１、３０２が有する機能は実質的に同じであるため、Ｗｅｂサーバ３０１について説明し、Ｗｅｂサーバ３０２の機能については説明を省略する。図１３は、第２の実施の形態の一変形例（変形例＃１）に係るＷｅｂサーバが有する機能の一例を示したブロック図である。
【０１３３】
図１３に示すように、Ｗｅｂサーバ３０１は、記憶部３１１、サブプロファイル管理部３１３、およびサービス提供部３１２を有する。また、Ｗｅｂサーバ３０１は、テナントの管理者が操作端末として利用するテナント端末３２１に接続されている。
【０１３４】
図７に示したマスタ管理サーバ２００と変形例＃１に係るマスタ管理サーバ２００との主な違いは、サブプロファイル管理部３１３が追加されている点にある。また、記憶部３１１には、サブプロファイルデータ３１１ｂが格納される。また、テナント端末３２１は、プロファイルデータ３２１ａに代えて、マスタプロファイルデータ３２１ｂを保持する。
【０１３５】
なお、サブプロファイル管理部３１３の機能は、上述したＣＰＵ１０１などを用いて実現できる。
マスタプロファイルデータ３２１ｂは、例えば、図１４のような内容を含む。図１４は、第２の実施の形態の一変形例（変形例＃１）に係るマスタプロファイルデータの一例を示した図である。
【０１３６】
図１４に示すように、マスタプロファイルデータ３２１ｂは、テナント識別子、Ｗｅｂサーバのアドレス、有効期限（開始）、有効期限（終了）、およびサーバ証明書を含む。つまり、プロファイルデータ３２１ａとマスタプロファイルデータ３２１ｂとの違いは、マスタプロファイルデータ３２１ｂが、変更可能な機密性のある認証情報を含まない点にある。
【０１３７】
一方、サブプロファイルデータ３１１ｂは、例えば、図１５のような内容を含む。図１５は、第２の実施の形態の一変形例（変形例＃１）に係るサブプロファイルデータの一例を示した図である。図１５に示すように、サブプロファイルデータ３１１ｂは、認証レベル、および登録品質閾値を含む。認証レベルは、生体認証の照合閾値を表す。登録品質閾値は、生体データの登録可否を決める品質の閾値を表す。例えば、生体データの品質が登録品質閾値以上の場合に登録可と判断される。
【０１３８】
テナント端末３２１は、マスタプロファイルデータ３２１ｂを生成する。また、テナント端末３２１は、マスタ管理サーバ２００にマスタプロファイルデータ３２１ｂを提供し、秘密鍵を用いて生成した署名をマスタプロファイルデータ３２１ｂに付与するように要求する。そして、テナント端末３２１は、マスタ管理サーバ２００により署名が付与されたマスタプロファイルデータ３２１ｂを取得する。
【０１３９】
また、テナント端末３２１は、電子メールやファイルサーバなどを利用して、マスタ管理サーバ２００により署名が付与されたマスタプロファイルデータ３２１ｂをクライアント装置１００に送信する。また、テナント端末３２１は、サブプロファイルデータ３１１ｂを生成し、Ｗｅｂサーバ３０１に提供する。
【０１４０】
サブプロファイル管理部３１３は、クライアント装置１００側でマスタプロファイルデータ３２１ｂの署名認証が成功し、設定情報を用いてＴＬＳ通信経路が確立された場合、サブプロファイルデータ３１１ｂをクライアント装置１００に提供する。サービス提供部３１２は、クライアント装置１００から認証成功を示す認証結果を受信した場合に、そのクライアント装置１００に対してＷｅｂサービスを提供する。
【０１４１】
以上、変形例＃１に係るＷｅｂサーバ３０１の機能について説明した。
（プロファイルデータ配布方式）
次に、図１６を参照しながら、変形例＃１に係るマスタプロファイルデータ３２１ｂ、サブプロファイルデータ３１１ｂの配布からアクセス制御までの処理の流れについて説明する。図１６は、第２の実施の形態の一変形例（変形例＃１）に係るプロファイルデータ配布方式における処理の流れを示したシーケンス図である。
【０１４２】
（Ｓ２０１）マスタ管理サーバ２００は、鍵ペア管理部２０２により、公開鍵と秘密鍵とのペアを生成し、鍵ペア２０１ａとして記憶部２０１に格納する。例えば、鍵ペア管理部２０２は、Ｗｅｂサーバ３０１、３０２に共通の公開鍵と秘密鍵とのペアを生成する。
【０１４３】
（Ｓ２０２）マスタ管理サーバ２００は、公開鍵加工部２０３により、公開鍵を加工する。例えば、公開鍵加工部２０３は、ＡＥＳなどの暗号化方式に基づいて公開鍵を暗号化し、公開鍵を難読化する。なお、公開鍵加工部２０３は、暗号化以外の方法で公開鍵を難読化してもよい。
【０１４４】
（Ｓ２０３）マスタ管理サーバ２００は、ＡＰＰ管理部２０５により、ソフトウェア１１１ａのビルドを実行し、難読化した公開鍵をソフトウェア１１１ａに埋め込む。なお、ビルドは、ソフトウェア１１１ａのソースコードをコンパイルする処理や、ライブラリをリンクする処理などを実行して実行可能なファイルを生成する処理である。
【０１４５】
（Ｓ２０４）マスタ管理サーバ２００は、ＡＰＰ管理部２０５により、難読化した公開鍵が埋め込まれたソフトウェア１１１ａをＷｅｂサーバ３０１の利用者（クライアント装置１００など）に配布する。例えば、ＡＰＰ管理部２０５は、アプリケーションソフトウェアを配布するオンラインストアなどを介してソフトウェア１１１ａを配布する。なお、クライアント装置１００の利用者は、ソフトウェア１１１ａを取得し、クライアント装置１００にセットアップする（ソフトウェア１１１ａを実行可能な状態にする）。
【０１４６】
（Ｓ２０５）テナント端末３２１は、マスタプロファイルデータ３２１ｂ（図１４を参照）を生成する。例えば、テナント端末３２１は、予め用意されているテナント識別子、Ｗｅｂサーバ３０１のＵＲＬ、サーバ証明書、およびそのサーバ証明書の有効期限（開始、終了）を用いてマスタプロファイルデータ３２１ｂを生成する。
【０１４７】
（Ｓ２０６）テナント端末３２１は、サブプロファイルデータ３１１ｂ（図１５を参照）を生成する。例えば、テナント端末３２１は、予めテナントにより設定されている認証レベル、登録品質閾値を用いてサブプロファイルデータ３１１ｂを生成する。
【０１４８】
（Ｓ２０７）Ｗｅｂサーバ３０１は、テナント端末３２１により、マスタプロファイルデータ３２１ｂをマスタ管理サーバ２００に送信し、署名の付与を要求する。
（Ｓ２０８）マスタ管理サーバ２００は、マスタ用署名生成部２０６により、秘密鍵を利用して署名を生成し、テナント端末３２１から受信したマスタプロファイルデータ３２１ｂに署名を付与する。
【０１４９】
（Ｓ２０９）マスタ管理サーバ２００は、マスタ用署名生成部２０６により、署名付きのマスタプロファイルデータ３２１ｂをテナント端末３２１に返信する。
（Ｓ２１０）テナント端末３２１は、マスタ管理サーバ２００から受信した署名付きのマスタプロファイルデータ３２１ｂをＷｅｂサーバ３０１の利用者（この例ではクライアント装置１００）に配布する。例えば、テナント端末３２１は、メールやファイルサーバなどを介して署名付きのマスタプロファイルデータ３２１ｂをクライアント装置１００に配布する。
【０１５０】
（Ｓ２１１）クライアント装置１００は、マスタプロファイル検証部１３２により、マスタプロファイルデータ３２１ｂに埋め込まれた公開鍵を取り出す。そして、マスタプロファイル検証部１３２は、取り出した公開鍵を用いて、テナント端末３２１から配布された署名付きのマスタプロファイルデータ３２１ｂの署名を検証する。なお、署名の検証は、例えば、ソフトウェア１１１ａの起動時に実行される。
【０１５１】
また、クライアント装置１００は、接続制御部１１４により、署名の検証結果に応じて、Ｗｅｂサーバ３０１へのアクセスを制御する。署名の検証が失敗した場合、接続制御部１１４は、サブプロファイル取得部１３３によるサブプロファイルデータ３１１ｂの取得を禁止し、Ｗｅｂサーバ３０１が提供するサービスへのアクセスが禁止される。
【０１５２】
一方、署名の検証が成功した場合、クライアント装置１００は、サブプロファイル取得部１３３により、マスタプロファイルデータ３２１ｂの設定情報を用いてＷｅｂサーバ３０１からサブプロファイルデータ３１１ｂを取得する。そして、サブプロファイル取得部１３３は、サブプロファイルデータ３１１ｂを用いてＷｅｂサーバ３０１が提供するＷｅｂサービスへアクセスする。
【０１５３】
（署名の検証およびアクセス制御）
ここで、図１７を参照しながら、上記のＳ２１１における署名の検証およびアクセス制御に関する処理について、さらに説明する。図１７は、第２の実施の形態の一変形例（変形例＃１）に係る署名の検証およびアクセス制御に関する処理の流れを示したフロー図である。
【０１５４】
（Ｓ２２１）マスタプロファイル検証部１３２は、ソフトウェア１１１ａに埋め込まれている公開鍵を読み出す。このとき、マスタプロファイル検証部１３２は、例えば、ＡＥＳの方式で暗号化されている公開鍵を復号する。そして、マスタプロファイル検証部１３２は、読み出した公開鍵を用いてマスタプロファイルデータ３２１ｂに付与されている署名の正当性を検証する。
【０１５５】
（Ｓ２２２）接続制御部１１４は、プロファイル検証部１１３による署名の検証が成功したか否か（署名の正当性が確認されたか否か）を判定する。署名の検証が成功した場合、処理はＳ２２３へと進む。一方、署名の検証が失敗した場合、処理はＳ２２７へと進む。
【０１５６】
（Ｓ２２３）接続制御部１１４は、マスタプロファイルデータ３２１ｂに含まれる設定情報を取り出す。例えば、接続制御部１１４は、マスタプロファイルデータ３２１ｂから、Ｗｅｂサーバ３０１のアドレス、サーバ証明書、およびそのサーバ証明書の有効期限（開始、終了）を取り出す。そして、接続制御部１１４は、ソフトウェア１１１ａを利用してＷｅｂサーバ３０１へアクセスする際に、取り出した設定情報を認証の処理に利用できる状態にする（設定情報の取り込み）。
【０１５７】
（Ｓ２２４）接続制御部１１４は、Ｗｅｂサーバ３０１が提供するサービスへのアクセス可否を判定する。例えば、接続制御部１１４は、サーバ証明書の有効期限が切れている場合、サービスへのアクセスは不可であると判定する。
【０１５８】
（Ｓ２２５）Ｓ２２４でサービスへのアクセスが可と判定された場合（アクセス可と判定される設定情報を含む署名付きマスタプロファイルがある場合）、処理はＳ２２６へと進む。一方、サービスへのアクセスが不可と判定された場合（アクセス可と判定される設定情報を含む署名付きマスタプロファイルがない場合）、処理はＳ２２７へと進む。
【０１５９】
（Ｓ２２６）接続制御部１１４は、ソフトウェア１１１ａにサービス（Ｗｅｂサーバ３０１が提供するＷｅｂサービス）へのアクセスを許可する。Ｓ２２６の処理が完了すると、後述する認証処理（図１８のＳ２３１）へと進む。
【０１６０】
（Ｓ２２７）接続制御部１１４は、ソフトウェア１１１ａにサービス（Ｗｅｂサーバ３０１が提供するＷｅｂサービス）へのアクセスを禁止する。つまり、接続制御部１１４は、ソフトウェア１１１ａを利用してＷｅｂサーバ３０１へアクセスできないように制御する。Ｓ２２７の処理を完了すると、図１７に示した一連の処理は終了する。
【０１６１】
（認証処理）
ここで、図１８を参照しながら、上記のＳ２２６の処理が完了した場合に実行される認証処理の流れについて、さらに説明する。図１８は、第２の実施の形態の一変形例（変形例＃１）に係る認証処理の流れを示したシーケンス図である。
【０１６２】
（Ｓ２３１）クライアント装置１００は、サブプロファイル取得部１３３により、マスタプロファイルデータ３２１ｂの設定情報に含まれるＷｅｂサーバ３０１のアドレスにアクセスし、Ｗｅｂサーバ３０１からサーバ証明書を取得する。また、サブプロファイル取得部１３３は、取得したサーバ証明書と、マスタプロファイルデータ３２１ｂの設定情報に含まれるサーバ証明書とを用いてＷｅｂサーバ３０１の正当性を検証する。
【０１６３】
（Ｓ２３２）クライアント装置１００は、サブプロファイル取得部１３３により、正当性が確認されたか否か（正当性の検証が成功したか否か）を判定する。正当性が確認された場合、処理はＳ２３３へと進む。一方、正当性が確認されなかった場合、図１８に示した認証処理は失敗となり、Ｗｅｂサーバ３０１が提供するＷｅｂサービスへのアクセスが禁止される。
【０１６４】
（Ｓ２３３）クライアント装置１００は、サブプロファイル取得部１３３により、Ｗｅｂサーバ３０１との間でＴＬＳ通信経路を確立する。
（Ｓ２３４）Ｗｅｂサーバ３０１は、サブプロファイル管理部３１３により、サブプロファイルデータ３１１ｂをクライアント装置１００に送信する。
【０１６５】
（Ｓ２３５、Ｓ２３６）クライアント装置１００は、サブプロファイル取得部１３３により、サブプロファイルデータ３１１ｂに含まれる認証レベルおよび登録品質閾値に基づいて認証の処理を実行する。例えば、クライアント装置１００にて指紋読み取りデバイスなどを利用して認証が実施される。そして、サブプロファイル取得部１３３は、その認証の結果をＷｅｂサーバ３０１に送信する。
【０１６６】
（Ｓ２３７）Ｗｅｂサーバ３０１は、サービス提供部３１２により、クライアント装置１００から受信した認証結果を検証する。認証成功を示す認証結果が得られた場合、サービス提供部３１２は、クライアント装置１００にＷｅｂサービスを提供する。一方、認証失敗を示す認証結果が得られた場合、サービス提供部３１２は、クライアント装置１００にＷｅｂサービスを提供しない。Ｓ２３７の処理が完了すると、図１８に示した一連の処理は終了する。
【０１６７】
以上、変形例＃１について説明した。
［２−６．変形例＃２］
次に、第２の実施の形態の他の一変形例（変形例＃２）について説明する。
【０１６８】
上述した変形例＃１に係るマスタプロファイルデータの設定情報には、Ｗｅｂサーバのアドレスおよびサーバ証明書が含まれる。変形例＃２は、この設定情報にサーバ証明書の発行方式を示す情報をさらに含める仕組みに関する。
【０１６９】
変形例＃１ではクライアント装置１００がマスタプロファイルデータの署名を検証し、検証が成功した場合にサブプロファイルデータを取得し、検証が失敗した場合にはサービスへのアクセスを禁止するように制御していた。変形例＃２では、マスタプロファイルデータの署名検証に加えてサーバ証明書の発行方式の判定を実施し、その判定結果に応じてＷｅｂサーバへの接続方法を制御する機構が追加される。
【０１７０】
後述するように、この機構を追加することで、特定のサーバ証明書の発行方式を採用した場合には、サーバ証明書の有効期限チェックの工程を経ずにＷｅｂサーバの正当性検証を実現できるようになる。
【０１７１】
上記のような仕組みを実現するため、変形例＃２に係るマスタプロファイルデータ３２１ｂの内容は図１９のように変形される。図１９は、第２の実施の形態の一変形例（変形例＃２）に係るマスタプロファイルデータの一例を示した図である。
【０１７２】
図１９に示すように、マスタプロファイルデータ３２１ｂは、テナント識別子、Ｗｅｂサーバのアドレス、有効期限（開始）、有効期限（終了）、サーバ証明書、およびサーバ証明書発行方式を含む。サーバ証明書発行方式は、自己発行（Ｗｅｂサーバ自身が発行した場合）か、認証局による発行かを示すフラグである。
【０１７３】
（認証処理）
変形例＃２では、図１８に示した認証処理のうち、ＴＬＳ通信経路を確立するまでの処理の流れ（Ｓ２３１からＳ２３３に対応）が図２０および図２１のように変形される。
【０１７４】
図２０は、第２の実施の形態の一変形例（変形例＃２）に係る認証処理の流れを示した第１のフロー図である。図２１は、第２の実施の形態の一変形例（変形例＃２）に係る認証処理の流れを示した第２のフロー図である。
【０１７５】
（Ｓ２４１）サブプロファイル取得部１３３は、マスタプロファイルデータ３２１ｂに含まれるサーバ証明書発行方式を参照し、自己発行か、認証局による発行かを確認する。
（Ｓ２４２）Ｗｅｂサーバ３０１のサーバ証明書が自己発行である場合、処理はＳ２４４へと進む。一方、Ｗｅｂサーバ３０１のサーバ証明書が認証局による発行である場合、処理はＳ２４３へと進む。
【０１７６】
（Ｓ２４３）サブプロファイル取得部１３３は、マスタプロファイルデータ３２１ｂに含まれるサーバ証明書からＣｏｍｍｏｎ  Ｎａｍｅを取得する。なお、Ｃｏｍｍｏｎ  Ｎａｍｅは、サーバ証明書を利用して暗号化通信を行うサイトのＵＲＬである。Ｓ２４３の処理が完了すると、処理はＳ２４６へと進む。
【０１７７】
（Ｓ２４４）サブプロファイル取得部１３３は、マスタプロファイルデータ３２１ｂに含まれるサーバ証明書の有効期限を確認する。
（Ｓ２４５）サーバ証明書の有効期限が切れていない場合（有効期限内）、処理はＳ２４６へと進む。一方、サーバ証明書の有効期限が切れている場合、接続制御部１１４は、マスタプロファイルデータ３２１ｂにアドレスが含まれるＷｅｂサーバへのアクセスを禁止する。この場合、図２０および図２１に示した一連の処理は終了する。
【０１７８】
（Ｓ２４６、Ｓ２４７）サブプロファイル取得部１３３は、マスタプロファイルデータ３２１ｂに含まれるＷｅｂサーバ３０１のアドレスを参照し、Ｗｅｂサーバ３０１に接続する。そして、サブプロファイル取得部１３３は、Ｗｅｂサーバ３０１からサーバ証明書を取得する。
【０１７９】
（Ｓ２４８）Ｗｅｂサーバ３０１のサーバ証明書が自己発行である場合、処理はＳ２４９へと進む。一方、Ｗｅｂサーバ３０１のサーバ証明書が認証局による発行である場合、処理はＳ２５１へと進む。
【０１８０】
（Ｓ２４９）サブプロファイル取得部１３３は、Ｗｅｂサーバ３０１からサーバ証明書を取得し、Ｃｏｍｍｏｎ  Ｎａｍｅを利用して検証を実施する。
例えば、サブプロファイル取得部１３３は、Ｗｅｂサーバ３０１から取得したサーバ証明書のＣｏｍｍｏｎ  Ｎａｍｅと、マスタプロファイルデータ３２１ｂのサーバ証明書から取得したＣｏｍｍｏｎ  Ｎａｍｅとを照合する。そして、サブプロファイル取得部１３３は、２つのＣｏｍｍｏｎ  Ｎａｍｅが同一である場合に検証が成功したと判断する。
【０１８１】
（Ｓ２５０）サブプロファイル取得部１３３は、予め記憶部１１１（証明書ストア）に格納されているＣＡ（Certification Authority）証明書と、マスタプロファイルデータ３２１ｂのサーバ証明書とを利用して検証を実施する。なお、証明書ストアは、証明機関が発行した証明書が格納される記憶領域である。
【０１８２】
検証が成功した場合、処理はＳ２５２へと進む。一方、検証が失敗した場合、接続制御部１１４は、Ｗｅｂサーバ３０１が提供するサービスへのアクセスを禁止する。この場合、図２０および図２１に示した一連の処理は終了する。
【０１８３】
（Ｓ２５１）サブプロファイル取得部１３３は、マスタプロファイルデータ３２１ｂのサーバ証明書を利用して検証を実施する。検証が成功した場合、処理はＳ２５２へと進む。一方、検証が失敗した場合、接続制御部１１４は、Ｗｅｂサーバ３０１が提供するサービスへのアクセスを禁止する。この場合、図２０および図２１に示した一連の処理は終了する。
【０１８４】
（Ｓ２５２）サブプロファイル取得部１３３は、Ｗｅｂサーバ３０１との間でＴＬＳ通信経路を確立する。Ｓ２５２の処理が完了すると、図２０および図２１に示した一連の処理は終了する。
【０１８５】
上記のように、認証局が発行したサーバ証明書を利用する場合には有効期限のチェックをスキップする仕組みとすることで、有効期限切れのサーバ証明書の再発行にかかる時間およびコストを低減することが可能になる。
【０１８６】
以上、変形例＃２について説明した。
［２−７．変形例＃３］
次に、第２の実施の形態の他の一変形例（変形例＃３）について説明する。
【０１８７】
変形例＃３は、ライセンス情報を利用してマスタ管理サーバ２００がサブプロファイルデータの有効性を判断する仕組みに関する。変形例＃３では、ライセンス情報に基づいてマスタ管理サーバ２００がサブプロファイルデータの使用を許可するか否かを判断し、使用が許可されたサブプロファイルデータがクライアント装置１００に提供される。なお、ライセンスは、テナントの利用者が生体認証を使えるようにするために、サービスマスタ（クラウド事業者）とテナントとの間で締結される契約である。
【０１８８】
（マスタ管理サーバ）
次に、図２２を参照しながら、変形例＃３に係るマスタ管理サーバ２００の機能について説明する。図２２は、第２の実施の形態の一変形例（変形例＃３）に係るマスタ管理サーバが有する機能の一例を示したブロック図である。
【０１８９】
図２２に示すように、マスタ管理サーバ２００は、記憶部２０１、鍵ペア管理部２０２、公開鍵加工部２０３、マスタ用署名生成部２０６、ＡＰＰ管理部２０５、およびライセンス管理部２０７を有する。
【０１９０】
変形例＃１に係るマスタ管理サーバ２００と変形例＃３に係るマスタ管理サーバ２００との主な違いは、記憶部２０１にライセンス管理データ２０１ｂが格納される点、およびライセンス管理部２０７が追加されている点にある。
【０１９１】
なお、ライセンス管理部２０７の機能は、上述したＣＰＵ１０１などを用いて実現できる。
ライセンス管理データ２０１ｂの内容は図２３のようになる。図２３は、第２の実施の形態の一変形例（変形例＃３）に係るライセンス管理データの一例を示した図である。図２３に示すように、ライセンス管理データ２０１ｂには、テナント識別子、Ｗｅｂサーバのアドレスに加え、ユーザ名とライセンス情報とのペアが利用者毎に格納される。例えば、ライセンス情報＃１は、ユーザ名＃１に対応するライセンス情報である。
【０１９２】
ユーザ名は、ライセンスの確認時に利用される識別情報である。例えば、ユーザ名としてはＷｅｂサーバを利用する利用者のメールアドレスなどが用いられる。ライセンス情報は、対応するユーザ名の利用者が保有する保有ライセンスの属性情報である。属性情報としては、例えば、指紋認証や静脈認証などの認証手段、或いは、その利用者が使用する端末装置（クライアント装置１００など）の情報（端末情報）などが用いられる。端末情報としては、例えば、ＭＡＣ（Media Access Control）アドレスやＩＰアドレスなどが用いられうる。
【０１９３】
ライセンス管理部２０７は、Ｗｅｂサーバ３０１、３０２からサブプロファイルデータの有効性について判断を要求された場合、その要求に応じて判断を実施し、その判断結果を要求元に返信する。このとき、ライセンス管理部２０７は、ライセンス管理データ２０１ｂを参照してサブプロファイルデータ３１１ｂのライセンスを確認する。
【０１９４】
例えば、テナントＡの利用者（ユーザ名：hogehoge1@example.com）が指紋認証のライセンスを１個保有している場合、ライセンス管理部２０７は、静脈認証による認証要求に応じて提供が予定されているサブプロファイルデータ３１１ｂを有効化しない。
【０１９５】
このように、ユーザ名や端末情報と共に認証手段などの情報をライセンスに紐付けて管理し、サブプロファイルデータ３１１ｂの提供時にライセンス管理部２０７が有効性を判断する。そして、有効であると判断されたサブプロファイルデータ３１１ｂはクライアント装置１００に提供され、有効でないと判断されたサブプロファイルデータ３１１ｂはクライアント装置１００に提供されない。
【０１９６】
以上、変形例＃３に係るマスタ管理サーバ２００の機能について説明した。
（Ｗｅｂサーバ）
次に、図２４を参照しながら、変形例＃３に係るＷｅｂサーバ３０１について説明する。なお、Ｗｅｂサーバ３０１、３０２が有する機能は実質的に同じであるため、Ｗｅｂサーバ３０１について説明し、Ｗｅｂサーバ３０２の機能については説明を省略する。図２４は、第２の実施の形態の一変形例（変形例＃３）に係るＷｅｂサーバが有する機能の一例を示したブロック図である。
【０１９７】
図２４に示すように、Ｗｅｂサーバ３０１は、記憶部３１１、サブプロファイル管理部３１３、およびサービス提供部３１２を有する。また、Ｗｅｂサーバ３０１は、テナント端末３２１に接続されている。
【０１９８】
変形例＃１に係るマスタ管理サーバ２００と変形例＃３に係るマスタ管理サーバ２００との主な違いは、ライセンス確認部３１４が追加されている点にある。
なお、ライセンス確認部３１４の機能は、上述したＣＰＵ１０１などを用いて実現できる。
【０１９９】
ライセンス確認部３１４は、サブプロファイルデータ３１１ｂをクライアント装置１００に提供する際、または、サービス提供部３１２がクライアント装置１００から受信した認証結果を検証する際、サブプロファイルデータ３１１ｂの有効性を確認する。
【０２００】
例えば、ライセンス確認部３１４は、Ｗｅｂサーバ３０１を管理するテナントのテナント識別子、Ｗｅｂサーバ３０１のアドレス、および対象となるサブプロファイルデータ３１１ｂの提供先に関するユーザ名や認証手段などをマスタ管理サーバ２００に送信する。
【０２０１】
マスタ管理サーバ２００から、有効である旨の通知を受けた場合、ライセンス確認部３１４は、サブプロファイル管理部３１３によるサブプロファイルデータ３１１ｂの提供またはサービス提供部３１２によるサービスの提供を許容する。一方、マスタ管理サーバ２００から、有効でない旨の通知を受けた場合、ライセンス確認部３１４は、サブプロファイル管理部３１３によるサブプロファイルデータ３１１ｂの提供またはサービス提供部３１２によるサービスの提供を禁止する。
【０２０２】
以上、変形例＃３に係るＷｅｂサーバ３０１の機能について説明した。
（認証処理）
変形例＃３では、図１８に示した認証処理の一部（Ｓ２３４以降）が図２５および図２６のように変形される。図２５は、第２の実施の形態の一変形例（変形例＃３）に係る認証処理（ライセンス確認ＯＫ時）の流れを示したシーケンス図である。図２６は、第２の実施の形態の一変形例（変形例＃３）に係る認証処理（ライセンス確認ＮＧ時）の流れを示したシーケンス図である。
【０２０３】
（Ｓ２６１）クライアント装置１００は、サブプロファイルデータ３１１ｂを取得する際、サブプロファイル取得部１３３により、Ｗｅｂサーバ３０１に対応するテナント識別子、利用者のユーザ情報、端末情報をＷｅｂサーバ３０１に送信する。ユーザ情報は、例えば、メールアドレスなどである。端末情報は、例えば、クライアント装置１００のホスト名やＭＡＣアドレスなどである。
【０２０４】
また、サブプロファイル取得部１３３は、クライアント装置１００が利用可能な認証手段の情報（センサ情報）をＷｅｂサーバ３０１に送信する。センサ情報は、例えば、指紋を検出する指紋センサや、静脈パターンを取得する静脈センサなどの認証手段を識別する情報を含む。なお、クライアント装置１００に接続されている全てのセンサに関する情報がセンサ情報に含まれてもよいし、ソフトウェア１１１ａで利用可能なセンサとして設定されているセンサの情報だけがセンサ情報に含まれていてもよい。
【０２０５】
（Ｓ２６２）Ｗｅｂサーバ３０１は、ライセンス確認部３１４により、クライアント装置１００から受信したテナント識別子、ユーザ情報、端末情報、およびセンサ情報をマスタ管理サーバ２００に送信し、ライセンスの確認を要求する。
【０２０６】
（Ｓ２６３）マスタ管理サーバ２００は、ライセンス確認部３１４により、Ｗｅｂサーバ３０１から受信したテナント識別子およびユーザ情報を用いてライセンス管理データ２０１ｂから該当する利用者のライセンス情報を特定する。そして、ライセンス確認部３１４は、Ｗｅｂサーバ３０１から受信した端末情報、およびセンサ情報と、特定したライセンス情報に含まれる端末情報、および認証手段とを照合する。
【０２０７】
（Ｓ２６４）図２５の例では、Ｓ２６３における照合の結果、該当する利用者のライセンス情報が特定でき、マスタ管理サーバ２００が受信した端末情報およびセンサ情報がライセンス情報の内容と一致したとする。この場合、マスタ管理サーバ２００は、ライセンス確認部３１４により、ライセンスの確認がとれた旨の確認結果（ＯＫ）をＷｅｂサーバ３０１に送信する。
【０２０８】
（Ｓ２６５）確認結果（ＯＫ）を受信したＷｅｂサーバ３０１は、サブプロファイル管理部３１３により、クライアント装置１００にサブプロファイルデータ３１１ｂを送信する。
【０２０９】
（Ｓ２６６、Ｓ２６７）クライアント装置１００は、サブプロファイル取得部１３３により、サブプロファイルデータ３１１ｂに含まれる認証レベルおよび登録品質閾値に基づいて認証の処理を実行する。そして、サブプロファイル取得部１３３は、その認証の結果をＷｅｂサーバ３０１に送信する。
【０２１０】
（Ｓ２６８）Ｗｅｂサーバ３０１は、サービス提供部３１２により、クライアント装置１００から受信した認証結果を検証する。Ｓ２６８の処理が完了すると、図２５に示した一連の処理は終了する。
【０２１１】
なお、ライセンスの確認がとれない場合、処理の流れは以下のようになる。
（Ｓ２７１）クライアント装置１００は、サブプロファイルデータ３１１ｂを取得する際、サブプロファイル取得部１３３により、Ｗｅｂサーバ３０１に対応するテナント識別子、利用者のユーザ情報、端末情報をＷｅｂサーバ３０１に送信する。また、サブプロファイル取得部１３３は、センサ情報をＷｅｂサーバ３０１に送信する。
【０２１２】
（Ｓ２７２）Ｗｅｂサーバ３０１は、ライセンス確認部３１４により、クライアント装置１００から受信したテナント識別子、ユーザ情報、端末情報、およびセンサ情報をマスタ管理サーバ２００に送信し、ライセンスの確認を要求する。
【０２１３】
（Ｓ２７３）マスタ管理サーバ２００は、ライセンス確認部３１４により、Ｗｅｂサーバ３０１から受信したテナント識別子およびユーザ情報を用いてライセンス管理データ２０１ｂから該当する利用者のライセンス情報を特定する。そして、ライセンス確認部３１４は、Ｗｅｂサーバ３０１から受信した端末情報、およびセンサ情報と、特定したライセンス情報に含まれる端末情報、および認証手段とを照合する。
【０２１４】
（Ｓ２７４）図２６の例では、Ｓ２７３における照合の結果、該当する利用者のライセンス情報が特定できないか、マスタ管理サーバ２００が受信した端末情報およびセンサ情報がライセンス情報の内容と一致しないとする。この場合、マスタ管理サーバ２００は、ライセンス確認部３１４により、ライセンスの確認がとれない旨の確認結果（ＮＧ）をＷｅｂサーバ３０１に送信する。
【０２１５】
（Ｓ２７５）確認結果（ＮＧ）を受信したＷｅｂサーバ３０１は、サブプロファイル管理部３１３により、クライアント装置１００にサブプロファイルデータ３１１ｂの提供を拒否する旨の通知（拒否の通知）を送信する。
【０２１６】
（Ｓ２７６）クライアント装置１００は、サブプロファイル取得部１３３により、認証処理の失敗を示すエラー画面を表示する。なお、認証手段の違いによる認証処理の失敗である場合、サブプロファイル取得部１３３は、正しい認証手段の種類を示す情報や、その認証手段による認証操作の画面を表示してもよい。Ｓ２７６の処理が完了すると、図２６に示した一連の処理は終了する。
【０２１７】
以上、変形例＃３について説明した。
（その他の変形例）
これまでは公開鍵署名方式を適用する例について述べてきたが、例えば、共通鍵により署名されたプロファイルデータを、ソフトウェア１１１ａに埋め込まれた共通鍵で署名検証する仕組みに変形することができる。また、プロファイルデータに版数を付与して管理し、版数に応じて鍵ペアを切り替える仕組みを追加する変形も可能である。
【０２１８】
また、鍵ペアの生成を同一ドメインのマスタ管理サーバ２００に限定する仕組みを追加する変形も可能である。また、同じ認証レベルを採用するテナントのＷｅｂサーバに同じ鍵ペアを対応付けて管理する仕組みに変形することができる。この場合、同じ認証レベルを採用するテナントのＷｅｂサーバに対応する公開鍵に対し、公開鍵の加工方法を共通に設定してもよい。
【０２１９】
また、上記の説明では、生体データがクライアント装置側にあることを想定していたが、例えば、認証に利用する生体データをＷｅｂサーバ側においてもよい。このような変形についても当然に第２の実施の形態の技術的範囲に属する。
【０２２０】
以上、第２の実施の形態について説明した。
【符号の説明】
【０２２１】
２ａ，２ｂ  サーバ
３ａ，３ｂ  サービス
４  クライアント
１０  プロファイルデータ配信制御装置
１１  記憶部
１２  制御部
１３  公開鍵
１４  秘密鍵
１５ａ，１５ｂ  プロファイルデータ
１６ａ，１６ｂ  署名
１７  クライアントアプリケーション
【図１】
2017225054.tif 000003
【図２】
2017225054.tif 000004
【図３】
2017225054.tif 000005
【図４】
2017225054.tif 000006
【図５】
2017225054.tif 000007
【図６】
2017225054.tif 000008
【図７】
2017225054.tif 000009
【図８】
2017225054.tif 000010
【図９】
2017225054.tif 000011
【図１０】
2017225054.tif 000012
【図１１】
2017225054.tif 000013
【図１２】
2017225054.tif 000014
【図１３】
2017225054.tif 000015
【図１４】
2017225054.tif 000016
【図１５】
2017225054.tif 000017
【図１６】
2017225054.tif 000018
【図１７】
2017225054.tif 000019
【図１８】
2017225054.tif 000020
【図１９】
2017225054.tif 000021
【図２０】
2017225054.tif 000022
【図２１】
2017225054.tif 000023
【図２２】
2017225054.tif 000024
【図２３】
2017225054.tif 000025
【図２４】
2017225054.tif 000026
【図２５】
2017225054.tif 000027
【図２６】
2017225054.tif 000028