以下、本発明を実施するための形態について図面を用いて説明する。
(実施例1)
<システム構成>
図1は、本発明の実施形態におけるシステムの全体構成を示す模式図である。本システムは、画像処理装置の一例であるMFP101と、ユーザーが保有する携帯端末102、サービス提供システムの一例であるプリントシステム103、クライアントPC104などから構成される。本発明は、後述するが、プリントシステム103以外にも、MFPなどの機器で入力されたデータを格納するネットワークストレージサービスや、SNS提供サービスなどを提供するサービス提供システムにも適用可能である。
なお、MFP101以外にも、本発明が適用可能な、公共の場などに設置され得る機器の一例である。ほかにも、プリンターや、スキャナやカメラなどの画像入力装置を備える機器、デジタル健康機器(血圧測定器やルームランナーなど)、ATM、(3次元造形物をプリントする)3Dプリンターといった画像処理装置についても、本発明が適用可能である。
MFP101、プリントシステム103、クライアントPC104はネットワーク105を介して接続される。ネットワーク105は、例えば、インターネット等のLAN、WAN、電話回線、専用デジタル回線、ATMやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等のいずれであり。またはこれらの組み合わせにより実現される、いわゆる通信ネットワークである。
また、MFP101は、携帯端末102ともネットワーク106を介して接続される。ネットワーク106は、LANなどの上述のネットワーク回線に加え、例えばNFC(Near Field Communication)やBlueTooth(登録商標)等の近距離通信なども含む。
クライアントPC104は、デスクトップ型のPCに限らず、ノート型のPCや携帯端末(スマートフォンやタブレット)などであってもよい。
なお、携帯端末102は、ノート型のPCや携帯端末(スマートフォンやタブレット)、スマートウォッチやスマートグラスなどのウェアラブル端末などのことである。
<情報処理装置の内部構成>
図2(A)は、プリントシステム103を構成するサーバーPC、クライアントPC104の内部構成の一例を示す図である。これらは、一般的な情報処理装置のハードウェアで構成することができる。
CPU201は、ROM203内に記憶されたプログラムや、外部メモリ210からRAM202にロードされたOS(オペレーションシステム)やアプリケーション等のプログラムを実行する。すなわち、CPU201が、読み取り可能な記憶媒体に格納された該プログラムを実行することにより、後述する各フローチャートの処理を実行する各処理部として機能する。RAM202は、CPU201のメインメモリであり、ワークエリア等として機能する。キーボードコントローラ204は、キーボード208や図示しないポインティングデバイス(マウス、タッチパッド、タッチパネル、トラックボールなど)からの操作入力を制御する。ディスプレイコントローラ205は、ディスプレイ209の表示を制御する。ディスクコントローラ206は、各種データを記憶するハードディスク(HD)やフレキシブルディスク(FD)等の外部メモリ210へのデータアクセスを制御する。ネットワークI/F207はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。
<画像処理装置の内部構成>
図2(B)は、MFP101の内部構成の一例を示す図である。MFP101は画像形成装置の一例である。
CPU221はROM223に格納されているプログラム(後述する各処理を実現するプログラムも含む)を備え、内部バス231を介して各デバイスを総括的に制御する。RAM222は、CPU221のメモリやワークエリアとして機能する。ネットワークI/F225は、外部のネットワーク機器と片方向または双方向にデータをやり取りする。近接通信I/F226はNFCやBlueToothなどの近接通信用のネットワークI/Fであり、携帯端末102等と通信し、データのやり取りを行う。デバイス制御227は印刷部228を制御する。CPU221は、RAM222やROM223と共にプログラムの実行処理をおこなうとともに、記憶装置224等の記録媒体に画像データを記録する処理を行う。記憶装置224は外部記憶装置として機能する。
入出力装置230はMFP101における入出力を担う複数の構成を示す。具体的には、ユーザーからの入力(ボタン入力など)を受け付け、該入力に対応する信号を入出力I/F229によって前述した各処理部へ伝える。ほかにも、ユーザーに対して必要な情報を提供したり、ユーザー操作を受付けたりするための表示装置(タッチパネルなど)も入出力装置230に含まれる。さらに、原稿を読み取り、入力として電子データを受付けるためのスキャン装置も、入出力装置230に含まれてよい。
<携帯端末の内部構成>
図2(C)は、携帯端末102の内部構成の一例を示す図である。
CPU242は、ROM244に格納されているプログラム(後述する各処理を実現するプログラムも含む)を備え、内部バス241を介して各デバイスを総括的に制御する。RAM243は、CPU242のメモリやワークエリアとして機能する。ネットワークI/F247は、WiFiなどを用いた、外部のネットワーク機器と片方向または双方向にデータをやり取りする。CPU242は、RAM243やROM244と共にプログラムの実行処理をおこなうとともに、記憶装置245等の記録媒体にデータを記録する処理を行う。記憶装置224は、外部記憶装置として機能し、SDカードなどで構成される。
Trusted Platform Module(TPM)246は、機密情報を処理したり格納したりする目的で、格納したデータを外部から読み取られることを防ぐ耐タンパー性を備えた記憶手段である。本発明では、生体認証に用いる生体情報自体、またはその生体情報の特徴量や、その生体情報に対応する秘密鍵などが格納される。なお、後述では、センサーで取得できた生体情報を示す信号の特徴量についても、単に生体情報と呼ぶ場合がある。生体情報センサー248は、ユーザーの生体情報を読取るセンサーであり、例えばユーザーの指紋、虹彩、静脈、声紋、顔画像の情報を読み取り信号に変換する。専用の読み取り機や、カメラ、マイクなどを用いて実現される。
タッチパネル249は、表示と入力の2つの機能を備えており、アプリケーションの画面やキーボードなどを表示したりするとともに、ユーザーが画面に手や専用のペンで圧力を加えることにより、触れられた画面位置情報を外部へ情報信号として出力する。出力された信号情報をアプリケーションが利用することで、ユーザーはタッチパネル206を通じてアプリケーションを操作することができる。生体情報センサー248とタッチパネル249とは、重ねて実装することが可能で、タッチパネル249への操作により利用者の指紋情報を読み取るといった構成も可能である。
近接通信I/F250は、MFP101のそれと同様に、NFCやBlueToothなどの近接通信用の通信方式に対応したI/Fであり、本実施例においては、MFP101とこのI/Fを介して通信を行う。
<MFPの機能構成>
図3(A)は、MFP101の機能構成の一例を示すブロック図である。MFP101では、アプリケーション300が動作する。アプリケーション300は、MFP101が有しているROM223に記憶されているプログラムを、CPU221がRAM222に読み出して実行することによって実現する。
アプリケーション300は、表示部301、実行部302、通信部303、認証制御部304で構成される。表示部301は、プリントデータの一覧のUIや、プリントの実行を受け付けるためのUIを表示装置に対して表示するソフトウェアモジュールである。実行部302は、プリントデータのプリントを実行するためにMFP101の印刷部228を制御するためのソフトウェアモジュールである。通信部303は、ネットワークI/F225や近接通信I/F226を用いて、プリントシステム103などの外部の装置と通信するためのソフトウェアモジュールである。認証制御部304は、MFP101内部またはネットワーク106を介して外部で提供されるオーセンティケータ(Authenticator)に認証処理の要求を行い、認証結果を受け取るソフトウェアモジュールである。本例では、近接通信I/F226を介して、外部(携帯端末102)のオーセンティケータに対して生体認証の要求を行う例を記載する。
なお、本例で認証制御部304はアプリケーション300に含まれているが、これに限られない。例えば、アプリケーション300とは独立して構成するようにし、アプリケーション300が、独立した認証制御部304を呼び出すようにしてもよい。このように認証制御部304を独立させることで、アプリケーション300だけでなく、他のアプリケーションが認証制御部304を呼び出せるような構成にすることができる。
<携帯端末の機能構成>
図3(B)は、携帯端末102の機能構成の一例を示すブロック図である。携帯端末102では、ブラウザー340とオーセンティケータ(Authenticator)350が動作する。ブラウザー340及びオーセンティケータ350は、携帯端末102が有しているROM244に記憶されているプログラムを、CPU242がRAM243に読み出して実行することによって実現する。
ブラウザー340は、表示部341、通信部342、オーセンティケータ登録制御部343で構成される。表示部341は、タッチパネル249を用いて、通信部342が取得したHTML文書を表示したり、ユーザーの操作を受け付けたりするソフトウェアモジュールである。通信部342は、ネットワークI/F247を介して、プリントシステム103などの外部の装置と通信するためのソフトウェアモジュールである。オーセンティケータ登録制御部343は、オーセンティケータに対して後述するクレデンシャルの作成要求を行うソフトウェアモジュールである。本例では、オーセンティケータ350に対してクレデンシャルの作成要求を行う例を記載する。尚、本例でオーセンティケータ登録制御部343はブラウザー340に含んでいるが、これに限られない。例えば、ブラウザー340とは独立して構成するようにし、ブラウザー340が、独立したオーセンティケータ登録制御部343を呼び出すようにしてもよい。このようにオーセンティケータ登録制御部343を独立させることで、ブラウザー340だけでなく、他のアプリケーションがオーセンティケータ登録制御部343を呼び出せるような構成にすることができる。
オーセンティケータ350は、生体情報センサー248を用いた生体認証をサポートした認証モジュールで、オーセンティケータ登録処理部351、生体認証処理部352、認証情報格納部353、生体情報要求部354で構成される。オーセンティケータ登録処理部351は、ブラウザー340のオーセンティケータ登録制御部343などからのクレデンシャルの作成要求を受け付け、ペアの鍵(秘密鍵及び公開鍵)の作成やクレデンシャルの作成を行うソフトウェアモジュールである。生体認証処理部352は、アプリケーション300の認証制御部304などからの生体認証要求を受け付けて、生体情報センサー248を用いて、生体認証を行うソフトウェアモジュールである。認証情報格納部353は、表Aを用いて後述する認証情報などを、TPM246に対して、格納するソフトウェアモジュールである。生体情報要求部354は、ユーザーに生体情報の入力を受け付けるためのUIをタッチパネル249に表示するソフトウェアモジュールである。
<プリントサーバーの機能構成>
図3(C)は、プリントシステム103の機能構成の一例を示すブロック図である。プリントシステム103では、プリントサービス370が動作する。プリントサービス370は、プリントサービス370を構成するサーバーPCが有しているROM203に記憶されているプログラムを、CPU201がRAM202に読み出して実行することによって実現する。
プリントサービス370は、レガシー認証処理部371、オーセンティケータ情報処理部372、プリントデータ処理部373、通信部374で構成される。プリントサービス370は、さらにユーザー情報格納部375、オーセンティケータ情報格納部376、プリントデータ格納部377、プレゼンテーション部378で構成される。
尚、本例では生体認証と区別する為、ユーザーIDとパスワードの一致を検証する認証をレガシー認証と記載する。レガシー認証処理部371は、通信部374が受信したレガシー認証要求に含まれるユーザーID、パスワードとユーザー情報格納部375に格納されているユーザーID、パスワードが一致するかを検証するソフトウェアモジュールである。
オーセンティケータ情報処理部372は、通信部374が受信したクレデンシャルを用いて、オーセンティケータに関する情報を、オーセンティケータ情報格納部376に格納させるソフトウェアモジュールである。また、オーセンティケータ情報処理部372は、通信部374が受信した後述するアサーション情報(Assertion)を検証する。プリントデータ処理部373は、通信部374が受信したプリントデータの登録や取得の要求に応じて、プリントデータ格納部377にプリントデータを登録させたり、プリントデータを取得させたりするソフトウェアモジュールである。通信部374は、MFP101や携帯端末102、クライアントPC104と通信して、要求を受け付けるソフトウェアモジュールである。
ユーザー情報格納部375は、表Bを用いて後述するユーザー情報を、外部メモリ210や外部のストレージシステム(不図示)に格納するソフトウェアモジュールである。オーセンティケータ情報格納部376は、表Eを用いて後述するオーセンティケータ情報を外部メモリ210や外部のストレージシステム(不図示)に格納するソフトウェアモジュールである。プリントデータ格納部377は表Cを用いて後述するプリントデータを外部メモリ210や外部のストレージシステム(不図示)に格納するソフトウェアモジュールである。
プレゼンテーション部378は、通信部374が受信したオーセンティケータ登録画面の取得要求などの画面取得要求に応じて、HTML文書を作成するソフトウェアモジュールである。トークン管理部379は後述するトークンの発行や検証を行うソフトウェアモジュールである。
<クライアントPCの機能構成>
図3(D)は、クライアントPC104の機能構成の一例を示すブロック図である。クライアントPC104では、ブラウザー390が動作する。ブラウザー390は、クライアントPC104が有しているROM203に記憶されているプログラムを、CPU201がRAM202に読み出して実行することによって実現する。
ブラウザー390は、取得したHTML文書を表示したり、ユーザーの操作を受け付けたりするソフトウェアモジュールである。ブラウザー390は、プリントシステム103などの外部の装置と通信するためのソフトウェアモジュールである。
<携帯端末が管理するテーブル>
表Aは、携帯端末102が管理する認証情報管理テーブルの一例であり、オーセンティケータ350の認証情報格納部353がTPM246に対して格納する情報を示す。
認証情報管理テーブルでは、1つのレコードが1つの認証情報のエントリを表している。認証情報ID列は、各認証情報に対して一意なIDである。サービスID列は、プリントシステム103のプリントサービス370など、対象となるサービスを一意に識別するためのIDである。本例ではサービスID列には、トップレベルドメイン、セカンドレベルドメインの情報を格納する。例えば、プリントサービス103のURLがhttp://www.pull‐print.comであった場合に、サービスID列にはpull‐print.comが格納される。秘密鍵列は、秘密鍵を格納する。秘密鍵列に格納されている秘密鍵に対応する公開鍵は、サービスID列で示されるサービスに登録されることになる。生体情報ID列は生体情報の特徴量に対応するIDを格納する。認証情報管理テーブルの各列に対応する情報を格納する手順、及び公開鍵をプリントサービス103に格納する手順については後述する。
<プリントシステム103が管理するテーブル>
表B〜Fは、プリントシステム103のプリントサービス370が管理するテーブルの一例である。
表Bはユーザー情報管理テーブルであり、プリントサービス370のユーザー情報格納部375が管理する。ユーザー情報管理テーブルは1つのレコードが1つのユーザー情報を示している。ユーザーID列は、プリントサービス370のユーザーを一意に識別するためのIDである。パスワード列は、ユーザーを認証するためのパスワードを格納する。メールアドレス列は、ユーザーのメールアドレスを格納する。メールアドレス以外にもユーザーの住所など、ユーザーに関する属性情報を本テーブルに格納するようにしてもよい。
表Cはプリントデータ管理テーブルであり、プリントサービス370のプリントデータ格納部377が管理する。プリントデータ管理テーブルは1つのレコードが1つのプリントデータを示している。データ名列は、ユーザーが印刷したデータの名称を表し、後述するプリントフローにおいて、MFP101上に表示される名称となる。プリントデータ列は、印刷するプリントデータのバイナリデータとなる。ユーザーID列は、印刷を指示したプリントサービス370のユーザーを一意に表すIDとなる。予約コード列は、プリントデータを一意に識別するためのものである。予約コードは、後述するプリントフローにおいて、MFP101でユーザーにより指定されることにより、プリントするプリントデータを特定するために使用される。
表Dは、attestationチャレンジ管理テーブルであり、プリントサービス370のユーザー情報格納部375が管理する。attestationチャレンジ管理テーブルは1つのレコードが1つのattestationチャレンジの情報を示している。attestationチャレンジは、チャレンジレスポンス認証をするための検証用データとして利用するパラメータであり、ユーザーごとに発行する。attestationチャレンジの発行処理については後述する。attestationチャレンジ列は、attestationチャレンジを格納する。ユーザーID列はattestationチャレンジを発行したユーザーIDを表す。有効期限列は、attestationチャレンジの有効期限を表す。
表Eは、オーセンティケータ情報管理テーブルであり、プリントサービス370のオーセンティケータ情報格納部376が管理する。オーセンティケータ情報管理テーブルは、1つのレコードが1つのオーセンティケータ情報を示している。認証情報ID列は、表Aにおける認証情報ID列の値が格納される。公開鍵列はオーセンティケータが作成した表Aにおける秘密鍵とペアになる公開鍵を格納する。即ち、表A、Eで認証情報IDが同一の秘密鍵と公開鍵について、表Aの秘密鍵で暗号化したものは表Eの公開鍵で復号できるということである。ユーザーID列は、プリントサービス370のユーザーを一意に識別するためのIDを格納する。
表Fはトークン管理テーブルであり、プリントサービス370のユーザー情報格納部375が管理する。トークンは認証処理が成功した結果、プリントサービス370が発行する。アプリケーション300などは、発行されたトークンをプリントデータ一覧要求などに付加してプリントサービス370に要求を行う。これらの処理については図7を用いて後述する。トークン管理テーブルは、1つのレコードが1つのトークンの情報を示している。トークン列は、トークンを格納する。ユーザーID列は、プリントサービス370のユーザーを一意に識別するためのIDを格納する。有効期限列は、トークンの有効期限を表す。プリントサービス370は、要求に付加されたトークンが、トークン管理テーブルのトークン列に存在し、有効期限列の有効期限を過ぎていない場合に要求を受け付ける。
<プリントデータの登録処理>
クライアントPC104からのプリントデータの登録について図4、および、図5を用いて説明する。
図4は、プリントシステム103とクライアントPC104のプリントデータ登録処理を示したシーケンス図である。まず、ユーザーは、クライアントPC104のブラウザー390にプリント指示受付画面のURLの入力を行う。
S401で、クライアントPC104のブラウザー390は、プリント指示受付画面のURLの入力を受け付けて、プリントサービス370にプリント指示受付画面の要求を行う。最初のアクセスでは認証が済んでいない為、レガシー認証画面へのリダイレクトを行う。そして、S402で、レガシー認証画面をブラウザー390に返す。ブラウザー390は、レガシー認証画面を表示し、ユーザーIDとパスワードの入力を受け付ける。ユーザー操作によるユーザーIDとパスワードの入力を受け付けると、S403で、ブラウザー390は、受け付けたユーザーIDとパスワードをパラメータとしてレガシー認証要求をプリントサービス370に送信する。S404で、プリントサービス370のレガシー認証処理部371は、レガシー認証を行う。具体的には、レガシー認証処理部371は、レガシー認証要求に含まれるユーザーID、パスワードとユーザー情報格納部375に格納されているユーザーID、パスワードが一致するかを検証する。一致しない場合にはクライアントPC104のブラウザー390に認証エラーを返却する。尚、図4のシーケンス図ではレガシー認証が成功した場合について記載する。S405で、プリントサービス370のトークン管理部379は、トークンを発行して、そのトークンに関する情報を、表Fで説明したユーザー情報格納部375のトークン管理テーブルに保存する。S406で、プリントサービス370の通信部374は、プレゼンテーション部378が作成したプリント指示受付画面を、クライアントPC104のブラウザー390に応答する。S406の応答にはS405で発行したトークンを含める。例えば、トークンはCookieに設定する。
S407で、ブラウザー390はプリント指示受付画面を表示する。ここで図5(A)を用いてプリント指示受付画面について説明する。UI500は、プリント指示受付画面を表している。ブラウザー390が、S406の応答で受信したプリント指示受付画面のHTML文書を解析して表示する。ボタン501は、プリント対象のファイルを選択するためのボタンである。ボタン502は、プリントシステム103のプリントサービス370にプリント指示を行うためのボタンである。ボタン502を押下することにより、プリント対象として選択されたデータのプリントサービス370への登録が開始される。
図4の説明に戻る。ブラウザー390がボタン502の押下を受け付けるとS408に遷移する。
S408で、ブラウザー390は、プリントシステム103のプリントサービス370に対してプリント指示の要求を行う。プリント指示の要求には、プリント対象のファイルのプリントデータやトークンを含む。プリント指示の要求に含まれるトークンは、プリントサービス370のトークン管理部379が有効であるか検証を行う。具体的には、プリントサービス370のトークン管理部379は、プリント指示の要求に含まれるトークンが前述のトークン管理テーブル(表F)に存在し、有効期限を超えていないかを確認する。無効である場合は、クライアントPC104のブラウザー390に認証エラーを返却する。尚、図4のシーケンス図ではトークンが有効であった場合について記載する。
S409で、プリントサービス370のプリントデータ処理部373は、予約コードの発行を行う。S410で、プリントサービス370のプリントデータ処理部373は、S408で発行した予約コード、および、S407で受信したプリントデータを、前述のプリントデータ管理テーブル(表C)に格納する。S411で、プリントサービス370の通信部374は、プレゼンテーション部378が作成した、プリント指示受付完了画面をクライアントPC104のブラウザー390に応答する。S412でブラウザー390はプリント指示受付完了画面(図5(B))を表示する。
図5(B)で、UI550は、プリント指示受付完了画面を表している。ブラウザー390が、S411の応答で受信したプリント指示受付画面のHTML文書を解析して表示する。テキストエリア551は、プリント指示を受け付けたプリントデータの予約コードを示している。この予約コードをMFP101の操作部から入力することで、プリントサービス370に対してプリントデータの指定を行うことができる。予約コードを用いたプリントデータの指定については後述する。
尚、本例ではクライアントPC104のブラウザー390がプリントデータの登録処理を行ったが、携帯端末102に保存されているファイルをプリントする場合などは、携帯端末102のブラウザー340が処理してもよい。また、プリントサービス370は、予約コードを、S404でレガシー認証に成功したユーザーの電子メールアドレス宛に通知してもよい。
<オーセンティケータの登録処理>
図6から図8を用いて、プリントシステム103のプリントサービス370にオーセンティケータを登録する処理について説明する。ここでは、携帯端末102のオーセンティケータ350の情報を登録する例について説明する。
図6は、オーセンティケータの登録に関する、携帯端末102とプリントシステム103の処理を示したシーケンス図である。まず、ユーザーは、携帯端末102のブラウザー340にオーセンティケータ登録画面のURLの入力を行う。
S601で、携帯端末102のブラウザー340は、オーセンティケータ登録画面のURLの入力を受け付けて、プリントサービス370にオーセンティケータ登録画面の要求を行う。最初のアクセスでは認証が済んでいない為、レガシー認証画面へのリダイレクトを行う。そして、S602で、レガシー認証画面をブラウザー340に返す。ブラウザー340の表示部341は、レガシー認証画面を表示し、ユーザーIDとパスワードの入力を受け付ける。ユーザー操作によるユーザーIDとパスワードの入力を受け付けると、S603で、ブラウザー340の通信部342は、受け付けたユーザーIDとパスワードをパラメータとして設定したレガシー認証要求をプリントサービス370に送信する。
S604で、プリントサービス370のレガシー認証処理部371は、レガシー認証を行う。レガシー認証の結果がエラーであった場合には携帯端末102のブラウザー340に認証エラーを返却する。尚、図6のシーケンス図ではレガシー認証が成功した場合について記載する。S605で、プリントサービス370のトークン管理部379はトークンを発行して、ユーザー情報格納部375はそのトークンに関する情報を表Fで説明したトークン管理テーブルで管理する。
S606で、オーセンティケータ情報処理部372は、登録パラメータ用700の作成を行う。ここで、図7(A)を用いて登録パラメータ用700について説明する。
登録パラメータ用700は、アカウント情報701、暗号化パラメータ702、attestationチャレンジ703、認証拡張領域704から構成される。アカウント情報701は、プリントサービス370における、S604のレガシー認証で特定したユーザーIDや、そのユーザーIDと紐づくメールアドレスなどの属性情報を表す。暗号化パラメータ702は、プリントサービス370がサポートしている暗号化アルゴリズムなど、登録する認証情報に関する属性情報を示す。attestationチャレンジ703はチャレンジレスポンス認証をするために利用する検証用データとしてのパラメータである。attestationチャレンジは、S606の登録パラメータ作成時に作成して、attestationチャレンジ管理テーブルにユーザーIDや有効期限などと紐付けて格納される。認証拡張領域704は、プリントサービス370がオーセンティケータ350等の動作を制御するために、プリントサービス370が指定可能な拡張パラメータが格納される。S607で、プリントサービス370の通信部374は、プレゼンテーション部378が作成したオーセンティケータ登録画面を、携帯端末102のブラウザー340に応答する。S607の応答にはS605で発行したトークン、および、S606で作成した登録用パラメータ700を含める。
S608で、ブラウザー340のオーセンティケータ登録制御部343は、オーセンティケータ350に対して、クレデンシャル作成要求を行う。S608の処理は、ブラウザー340の表示部341はオーセンティケータ登録画面の読込時に実行される。例えば、onloadイベントが発生した時にS608の処理を実行するようにする。S608のクレデンシャル作成要求には登録要求データ720を含める。ここで図7(B)を用いて、登録要求データ720について説明する。
登録要求データ720は、プリントサービス370から受信した登録パラメータ用700と、プリントサービスID721と、WebOrigin722と、を含む。WebOrigin722はプリントサービス370のOriginである。プリントサービスID721は、プリントサービスのトップレベルドメイン、セカンドレベルドメインの情報を格納する。例えば、プリントサービス370のURLがhttp://www.pull‐print.comであった場合に、プリントサービスID721はpull‐print.comとなる。
図6の説明に戻る。S609でオーセンティケータ350の生体情報要求部354は、図8で示す同意画面800を表示する。
同意画面800では、オーセンティケータをプリントサービスに登録する為、携帯端末102のユーザーに生体情報の入力を促す。ボタン801は、同意せずにキャンセルするためのボタンである。ボタン802には、生体情報センサー248が備えられており、指紋などの生体情報の読み取りを行う。生体情報には、静脈、虹彩、声紋、顔画像の情報も含まれ、ここでは、それら生体情報の何れか、または任意の複数の生体情報の組合せを、認証に必要な生体情報として入力するよう携帯端末102を構築することも可能である。
S610で、認証情報格納部353は、読み取った生体情報の特徴量と生体情報を一意に識別する生体情報IDを作成して、TPM246に格納する。S611で、オーセンティケータ登録処理部351は、生体情報IDに対応する、秘密鍵と公開鍵のペアと認証情報IDを作成する。そして、オーセンティケータ登録処理部351は、認証情報格納部353に対して、TPM246上の認証情報管理テーブル(表A)に、S611で作成した認証情報ID、秘密鍵、S610で作成した生体情報ID、及び、登録要求データ720に含まれるプリントサービスID721を格納させる。
S612で、オーセンティケータ登録処理部351は、図7(C)で示すクレデンシャル740を作成する。
クレデンシャル740は、認証情報ID741とアルゴリズム742と公開鍵743とattestation744から構成される。認証情報ID741、公開鍵743はS611の処理で作成した公開鍵である。アルゴリズム753はS611における秘密鍵と公開鍵のペアの作成に利用したアルゴリズムにそれぞれ対応する。また、attestation744はattestationチャレンジ703をS611にて生成した秘密鍵を用いて暗号化したものである。
S613で、オーセンティケータ登録処理部351は、ブラウザー340に対して、S612で作成したクレデンシャル740を応答する。S614で、ブラウザー340の通信部342は、プリントシステム103のプリントサービス370に対して、S613で受信したクレデンシャル740を送信する。
S615で、プリントサービス370のオーセンティケータ情報処理部372は、クレデンシャル740を用いて、オーセンティケータ登録処理を行う。ここでは、クレデンシャル740に含まれるattestation744を、同じクレデンシャル740に含まれる公開鍵743で復号して不正な登録リクエストでないことを検証する。さらに、プリントサービス370のオーセンティケータ情報処理部372は、Attestation744を公開鍵743で復号した値と、表Dで示すテーブルにおけるattestationチャレンジ列の値とが同一のものを特定する。そして、特定したattestationチャレンジ列の値と同一のレコードのユーザーIDをクレデンシャル740と紐付けるユーザーIDとする。プリントサービス370のオーセンティケータ情報処理部372は、クレデンシャル740に含まれる認証情報ID741、公開鍵743、クレデンシャル740と紐づけるユーザーIDをオーセンティケータ情報管理テーブル(表E)に登録する。最後に、プリントサーバー370の通信部374は、携帯端末102のブラウザー342に対して正常に生体情報の登録が終わったことを応答する。
<MFPからのプリント処理>
次に図9から図12を用いて、MFP101がプリントシステム103からプリントデータを取得してプリントする処理について説明する。プリントシステム103との認証は、携帯端末102を用いて行う例について記載する。
図9は、MFP101がプリントシステム103からプリントデータを取得してプリントするまでのMFP101、携帯端末102、プリントシステム103の処理を示したシーケンス図である。
S901で、MFP101のアプリケーション300の表示部301は、図10(A)で示す認証と通信の方式の選択画面1000を表示する。選択画面1000は、ボタン1001〜1005で構成される。
ボタン1001は、予約コードの入力によってプリントデータを取得するためのボタンである。ユーザーがボタン1001を選択した場合には、それに伴い、MFP101から、ユーザーが入力した予約コードが含まれるプリントデータの取得要求がプリントシステム103に対して送信されることになる。プリントシステム103は、プリントデータ管理テーブル(表C)からその予約コードと合致するプリントデータをMFP101に対して応答する。MFP101では、そのプリントデータのプリント処理が行われることになる。
ボタン1002は、レガシー認証を行うためのボタンである。ユーザーがボタン1002を選択した場合には、後述する生体認証を用いた方法ではなく、MFP101とプリントシステム103との間で、図6のS602〜S604の記載と同様のレガシー認証が行われる。レガシー認証が成功した場合に、MFP101は、プリントシステム103から、プリントデータ管理テーブル(表C)で管理されていた、認証されたユーザーのユーザーIDに対応するプリントデータの一覧を取得できる。
ボタン1003は、MFP101とNFCで通信した携帯端末で生体認証を行うためのボタンである。
ボタン1004は、MFP101とBloetoothで通信した携帯端末で生体認証を行うためのボタンである。生体認証が成功した場合に、プリントシステム103から認証されたユーザーのユーザーIDに対応するプリントデータの一覧を取得することができる。
尚、図9のシーケンス図では、ボタン1003が押下された例について記載する。ここで、ボタン1003とボタン1004の何れを選択しても、MFP101と携帯端末との通信する方式が異なるだけで、各装置で実行される認証処理や扱うパラメータなどはほぼ同様である。アプリケーション300の表示部301は、ボタン1003の押下を受け付けるとS902に遷移する。
S902で、アプリケーション300の通信部303は、プリントシステム103のプリントサービス370に対して認証開始リクエストを送信する。
S903で、プリントサービス370のオーセンティケータ情報処理部372は、図11(A)に示す認証用パラメータ1100の作成を行う。
認証用パラメータ1100はアサーションチャレンジ1101、アサーション拡張領域1102で構成される。アサーションチャレンジ1101は、チャレンジレスポンス認証をするために利用する検証用データとしてのパラメータである。アサーション拡張領域1102は、プリントサービス370がオーセンティケータ350の動作を制御するために、プリントサービス370が指定可能な拡張パラメータが格納される。S904で、S903で生成した認証用パラメータ1100をMFP101のアプリケーション300に対して応答する。
S905で、MFP101のアプリケーション300は、図12(A)で示すオーセンティケータ特定処理を実行する。オーセンティケータ特定処理についての詳細は後述する。図9で示す処理では、オーセンティケータ特定処理で、携帯端末102のオーセンティケータ350が見つかった場合の例について説明している。
S906で、アプリケーション300の認証制御部304は、S905で見つかった携帯端末102のオーセンティケータ350に対して、図11(B)に示す認証要求データ1110と共に、認証要求を行う。
認証要求データ1110は、プリントサービス370が生成した認証用パラメータ1100と、プリントサービスID1112と、WebOrigin1113とを含む。WebOrigin722はプリントサービス370のOriginである。プリントサービスID721は、プリントサービスのトップレベルドメイン、セカンドレベルドメインの情報を格納する。例えば、プリントサービス370のURLがhttp://www.pull‐print.comであった場合、プリントサービスIDはpull‐print.comとなる。
S907において、図12(B)で示す携帯端末102のオーセンティケータ350は生体認証処理を実行する。生体認証処理についての詳細は後述する。図9で示す処理では、生体認証処理で、携帯端末102のユーザーの生体認証が成功した場合の例について説明している。
S908で、オーセンティケータ350の生体認証処理部352は、図11(C)で示す署名1122を含むアサーション情報1120を、MFP101のアプリケーション300に返却する。アサーション情報1120は、認証情報ID1121と、アサーションチャレンジ1101をユーザーの生体認証情報に対応する秘密鍵で暗号化した署名1122から構成される。
S909で、アプリケーション300の通信部303は、S908で受信したアサーション情報1120を、プリントシステム103のプリントサービス370に送信する。
S910で、プリントサービス370のオーセンティケータ情報処理部372は、アサーション情報1120の検証を行う。より具体的には、アサーション情報1120に含まれる署名1122を認証ID1121で特定される公開鍵で復号したデータと、S903で生成した認証用パラメータ1100に含まれるアサーションチャレンジ1101とを比較し、一致したことによりアサーション情報の正当性を検証する。公開鍵の特定は、オーセンティケータ情報管理テーブル(表E)を用いて行われる。
S911で、プリントサービス370のトークン管理部379は、S910で検証されたアサーション情報1120に対応するユーザーのトークンを発行する。S912で、プリントサービス370の通信部374は、MFP101のアプリケーション300に、S911で発行したトークンを返却する。
S913で、アプリケーション300の通信部303は、S912で受信したトークンと共に、プリントシステム103のプリントサービス370に対してプリントデータの一覧取得要求を送信する。S914で、プリントサービス370の通信部374は、S913で受信したトークンと紐づくユーザーのプリントデータ一覧をMFP101のアプリケーション300に送信する。プリントデータ一覧には、通信量を考慮して、表Cのプリントデータ管理テーブルのデータ名列と予約コード列の値を含んでおり、バイナリデータであるプリントデータ列の値は含まない。
S915で、アプリケーション300の表示部301は、S914で受信したプリントデータ一覧を表示する。ここで、図10(C)を用いてプリントデータ一覧画面について説明する。プリントデータ一覧画面1040は、リスト1041、ボタン1042で構成される。リスト1041はプリントデータの情報を表示しており、選択が可能となっている。選択されたプリントデータがプリントの対象となる。ボタン1042は、プリント実行を指示するためのボタンである。リスト1041でプリントデータが選択され、アプリケーション300の表示部301が、ボタン1042の押下を受け付けるとS916に遷移する。S916で、アプリケーション300の通信部303は、プリントシステム103のプリントサービス370に対して、プリントデータ一覧画面1040で選択されたプリントデータの取得要求を送信する。
S917で、プリントサービス370の通信部374は、S916で指定されたプリントデータをMFP101のアプリケーション300に送信する。S917で送信するプリントデータは、バイナリデータであるプリントデータ列を含む。
S918で、アプリケーション300の実行部302が、受信したプリントデータを用いて、プリント処理を実行して、本シーケンスで示す処置が完了する。
図12(A)は、MFP101における、オーセンティケータ特定処理の詳細を説明するためのフローチャートである。
S1201で、アプリケーション300の表示部301は、表示装置に対して図10(B)で示す通信画面1020を表示し、S1202に遷移する。ここで、通信画面1020は、認証方法と通信方式の選択画面1000で選択された通信方式で、携帯端末と通信することを促す画面である。テキスト表示領域1021はNFCでの通信を促すメッセージを表示している。もし、認証方法と通信方式の選択画面1000で、Bluetoothでの通信方式を選択するためのボタン1004が選択されていたならば、テキスト表示領域1021はBluetoothによるペアリングを促すメッセージを表示する。
S1202で、アプリケーション300の認証制御部304は、認証方法と通信方式の選択画面1000で選択された通信方式でオーセンティケータを検索する。S1203で、アプリケーション300の認証制御部304はオーセンティケータが見つかったかを判断する。オーセンティケータが見つからなかった場合は、検索を続ける。オーセンティケータが見つかった場合は、S906に遷移する。
このように、MFP101では、認証方法と通信方式の選択画面1000で選択された通信方式でオーセンティケータを検索することで、ユーザーが保有する携帯端末102のオーセンティケータ350を利用するための特定処理が可能となる。
図12(B)は、携帯端末102における、生体認証処理の詳細を説明するためのフローチャートである。
S1251で、オーセンティケータ350の生体情報要求部354は、図13に示す生体情報の入力要求画面1300を表示する。入力要求画面100では、前述したようにMFP101とNFCやBluetoothをきっかけに通信している携帯端末102のユーザーに生体情報の入力を促す。ボタン1301は、生体情報の入力をキャンセルするためのボタンであり、ボタン1301が押下された場合は、図12(B)で示したフローチャートの処理を終了し、図9で示したシーケンスの処理も終了する。ボタン802には、生体情報センサー248が備えられており、生体情報の読み取りを行う。
S1252で、オーセンティケータ350の生体情報要求部354は、ユーザーにより生体情報が入力されたかを監視する。生体情報が入力された場合は、S1253に遷移する。生体情報が未入力の場合は、監視を続ける。
S1253で、オーセンティケータ350の生体認証処理部352は、入力されたユーザーの生体情報の特徴量を取得し、認証情報格納部353がTPM246に格納済みの情報と照合することで生体認証を実行する。この特徴量は、指紋のパターン・虹彩の模様・静脈の形など個人に対してユニークであるものを、ユニーク性を損なわないような値に変換したものである。この、個人に対してユニークな特徴量を用いて個人を特定するのが生体認証である。
S1254で、オーセンティケータ350の生体認証処理部352は生体認証の結果が成功であったかを判断する。成功であった場合にはS1255に遷移し、失敗した場合にはS1257に遷移する。
S1255で、オーセンティケータ350の生体認証処理部352は、プリントサービスID1112及びS1253で認証成功した生体情報を基に、認証情報管理テーブル(表A)から、対応する秘密鍵を特定する。S1256で、オーセンティケータ350の生体認証処理部352は、特定した秘密鍵を用いて、アサーションチャレンジ1101から署名1122を作成する。
S1257で、オーセンティケータ350の生体情報要求部354は、生体認証がエラーであったことを伝えるメッセージを表示し、S1251に遷移して、再度、生体認証を促す。尚、本例では記載していないが、複数回失敗したときにはS907の生体認証処理をエラーとして図9で示したシーケンスの処理を終了するように構成してもよい。
実施例1では、画像処理装置からプリントサービスなどのネットワークサービスを利用する際にそのサービスに対しての認証を、自分の保有する携帯端末での生体認証の認証結果に従う仕組みを選択できるようにしている。よって、公共の場にも設置され得る機器(画像処理装置)を利用するシステムにおいて、レガシー認証のみを採用した場合に比べて、セキュアな認証方式を提供でき、且つ、ユーザーにとって利便性が高い仕組みを提供できる。
(実施例2)
実施例1では、認証方法と通信方式の選択画面1000で、ボタン1003やボタン1004が押下されると生体認証を行った。そして生体認証が成功した場合にプリントシステム103からプリントデータ一覧を取得した。実施例2では、ボタン1003やボタン1004が押下されたときに、さらに予約コードの入力を求める例について図9および図14を用いて異なる部分だけ説明する。
図14(A)は、認証方法と通信方式の選択画面1000において、ボタン1003やボタン1004が押下されたあとに表示する予約コード入力画面を表している。予約コード入力画面1400は、アプリケーション300の表示部301が表示する画面である。予約コード入力テキストボックス1401は、予約コードの入力を受け付けるテキストボックスである。認証ボタン1402は、生体認証を開始するためのボタンである。認証ボタン1402が押下されると、実施例1の図9で説明したS902以降の処理が実行される。S902からS912までは実施例1と同じである。
実施例2では、S913で、アプリケーション300の通信部303が、予約コード入力画面1400で入力された予約コードを付加して、プリントシステム103のプリントサービス370に対してプリントデータの取得要求を送信する。S914で、プリントサービス370の通信部374は、S913で受信したトークンと紐づくユーザー且つ予約コードが一致したプリントデータを特定し、その特定されたプリントデータをMFP101のアプリケーション300に送信する。
S915で、プリントデータ一覧の表示を行うが、S914で予約コードによる絞り込みを行っているため、そのコードに対応するもののみに絞られる。なお、予約コードに対して、同時に登録した複数のプリントデータを紐付けるようにしてもよい。
図14(B)は、実施例2におけるS915の処理で表示するプリントデータの一覧画面の例である。プリントデータ一覧画面1420は、テキスト領域1421とプリント開始ボタン1422で構成される。テキスト領域1421にはプリントデータのデータ名を表示しており、予約コードに対応する1件だけが表示されている。プリント開始ボタン1422は、プリントを開始するためのボタンである。アプリケーション300の表示部301が、プリント開始ボタン1422が押下を検知すると、S916以降の処理が実行される。
尚、本例では、プリントデータの内容をユーザーに確認するため、プリントデータ一覧画面1420を表示している。しかしながら、プリントデータは1件に絞られているため、プリントデータ一覧画面1420を表示せずに、対象となるプリントデータを自動取得して、MFP101がプリント処理を実行するように構成してもよい。
(応用例)
実施例1、実施例2では、ネットワーク上で提供されるサービスの例として、プリントサービスを例として説明した。他のサービスについても、本発明が適用できる。
図15は、プリントサービス以外に本発明を適用した場合の例である。図15のS901〜S912までの処理は、図9での説明とほぼ同様であるため、その説明を割愛する。
S1501では、画像処理装置から、不図示のネットワークサービスを提供するサービス提供システムに対して、サービス一覧の要求が行われる。S1501では、サービス提供システムが、認証されたユーザーが利用できるサービスの一覧を返却する。
例えば、ストレージサービスを提供するサービス提供システムの場合は、認証されたユーザーが利用できる格納先の一覧を画像処理装置のアプリケーション300に返却する。業務ワークフローサービスであれば、認証されたユーザーが利用できる作業工程の一覧を画像処理装置のアプリケーション300に返却する。
S1504では、画像処理装置が、返却された一覧を表示する。その後、表示された一覧からの選択を受け付ける。S1504では、画像処理装置が、サービス提供システムに対して選択されたサービスを要求する。サービス提供システムがストレージサービスの場合には、画像処理装置がMFP101であった場合には、選択された格納先を示す情報と、登録対象のデータとしてスキャンされたデータと、をサービス提供システムに対して送信することで要求を行う。画像処理装置がカメラなどであった場合には、選択された格納先を示す情報と、登録対象のデータとして撮影されたデータと、をサービス提供システムに対して送信することで要求を行う。
S1505では、サービス提供システムから画像処理装置に対して、処理結果を返却する。
なお、図15で示すシーケンスは、概念的に、実施例1,2に記載したダウンロードプリントの仕組みも包含する。つまり、S1502では、画像処理装置で、認証されたユーザーのプリントジョブの一覧が返却されることになる。その後、S1502では、画像処理装置で、そのジョブ一覧が表示され、ジョブの選択が行われる。S1504〜S1505で、選択サービスとして、選択されたジョブの取得要求が行われ、その後、印刷処理が行われることになる。
また、S1503では、複数のサービスを同時に選択して要求することも可能である。
(他の実施例)
本発明は、上述した実施形態を適宜組み合わせることにより構成された装置あるいはシステムやその方法も含まれるものとする。
ここで、本発明は、上述した実施形態の機能を実現する1以上のソフトウェア(プログラム)を実行する主体となる装置あるいはシステムである。また、その装置あるいはシステムで実行される上述した実施形態を実現するための方法も本発明の一つである。また、そのプログラムは、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給され、そのシステム或いは装置の1以上のコンピュータ(CPUやMPU等)によりそのプログラムが読み出され、実行される。つまり、本発明の一つとして、さらにそのプログラム自体、あるいは該プログラムを格納したコンピューターにより読み取り可能な各種記憶媒体も含むものとする。また、上述した実施形態の機能を実現する回路(例えば、ASIC)によっても、本発明は実現可能である。