(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-19
(45)【発行日】2024-01-29
(54)【発明の名称】情報処理装置、制御方法、プログラム
(51)【国際特許分類】
G06F 21/62 20130101AFI20240122BHJP
H04N 1/00 20060101ALI20240122BHJP
【FI】
G06F21/62 318
H04N1/00 127Z
H04N1/00 838
(21)【出願番号】P 2019133579
(22)【出願日】2019-07-19
【審査請求日】2022-07-06
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】亀川 幹彦
(72)【発明者】
【氏名】佐藤 圭
【審査官】上島 拓也
(56)【参考文献】
【文献】特開2019-053427(JP,A)
【文献】特開2019-092120(JP,A)
【文献】米国特許出願公開第2016/0098723(US,A1)
【文献】国際公開第2019/030653(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
H04N 1/00
(57)【特許請求の範囲】
【請求項1】
ネットワークを介して電子データを受信し格納する管理サービスと、格納された前記電子データに関する情報をブロック単位で管理し夫々のブロックごとに前および/または後のブロックとの関連を定義した上で複数のブロックを複数のノードで管理するブロックチェーンサービスと連携する情報処理装置であって、
ユーザの認証に用いる認証情報と、ユーザに付与される権限を示すロール情報とを対応付けて記憶する記憶手段と、
格納された前記電子データに関する情報を前記ブロックチェーンサービスへ提供する連携手段と、
前記認証情報を受け付けたことに応じて、認証処理を実行し、認証されたユーザをログインさせ、確認されたロール情報
の中に前記ブロックチェーンサービスと連携する機能が利用できることを示すロール情報が含まれていると確認された場合は、認証されたユーザに前記連携手段を利用させるログイン手段と、
を有し、
ログインした前記ユーザは、前記情報処理装置のスキャン機能により紙文書を読み取りブロックチェーン検証を行う処理の実行を指示することが可能であり、前記情報処理装置は、前記紙文書から生成された電子データに関する情報が前記ブロックチェーンサービスに登録されているかを確認することで前記紙文書のブロックチェーン検証を行う
ことを特徴とする情報処理装置。
【請求項2】
ネットワークを介して前記電子データを前記管理サービスに送信する、かつ前記ブロックチェーンサービスとは直接は通信しないアプリケーションを有し、前記アプリケーションは前記ブロックチェーンサービスを利用するための指示を認証されたユーザから受け付けた場合、ネットワークを介して前記電子データを前記管理サービスに送信するとともに前記電子データに関する情報を前記連携手段へ送信することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記アプリケーションは、前記情報処理装置のスキャン機能を利用する指示をユーザから受け付ける画面情報をリモートUIまたはローカルUIに提供し、認証されたユーザに前記連携手段の利用を許可することが決定されている場合は、前記スキャン機能を利用する指示の他に前記ブロックチェーンサービスを利用する指示または利用しない指示もユーザから受け付ける前記画面情報を提供することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
ネットワークを介して前記電子データを前記管理サービスから受信し印刷する、かつ前記ブロックチェーンサービスとは直接は通信しない印刷アプリケーションを有し、前記印刷アプリケーションは前記管理サービスに格納された前記電子データを印刷する指示を認証されたユーザから受け付けた場合、前記連携手段は前記ブロックチェーンサービスに登録された前記電子データに関する情報を取得し、前記印刷アプリケーションは前記連携手段が前記電子データに関する情報を取得した後に前記電子データを印刷することを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
【請求項5】
前記ログイン手段は、認証を行わずにユーザをログインさせるゲストログインに対応し、ゲストログインしたユーザには前記ブロックチェーンサービスと連携する機能が利用できないことを示すロール情報が付与されることを特徴とする請求項1乃至4の何れか1項に記載の情報処理装置。
【請求項6】
前記連携手段は、前記ブロックチェーンサービスと連携することが許可されたことを示すクレデンシャル情報を取得しており、
リモートUIを介して前記ブロックチェーンサービスを利用する指示を前記情報処理装置へ送信する別の情報処理装置のユーザには、前記クレデンシャル情報は提供されないことを特徴とする請求項1乃至5の何れか1項に記載の情報処理装置。
【請求項7】
ネットワークを介して電子データを受信し格納する管理サービスと、格納された前記電子データに関する情報をブロック単位で管理し夫々のブロックごとに前および/または後のブロックとの関連を定義した上で複数のブロックを複数のノードで管理するブロックチェーンサービスと連携する情報処理装置のプログラムであって、
ユーザの認証に用いる認証情報と、ユーザに付与される権限を示すロール情報とを対応付けて記憶させる記憶ステップと、
格納された前記電子データに関する情報を前記ブロックチェーンサービスへ提供させる連携ステップと、
前記認証情報を受け付けたことに応じて、認証処理を実行し、認証されたユーザをログインさせ、確認されたロール情報
の中に前記ブロックチェーンサービスと連携する機能が利用できることを示すロール情報が含まれていると確認された場合は、認証されたユーザに前記連携ステップの処理を利用させるログインステップと、
を
含み、
ログインした前記ユーザは、前記情報処理装置のスキャン機能により紙文書を読み取りブロックチェーン検証を行う処理の実行を指示することが可能であり、前記紙文書から生成された電子データに関する情報が前記ブロックチェーンサービスに登録されているかを確認させることで前記紙文書のブロックチェーン検証を行わせる
ことを特徴とするプログラム。
【請求項8】
前記情報処理装置はネットワークを介して前記電子データを前記管理サービスに送信する、かつ前記ブロックチェーンサービスとは直接は通信しないアプリケーションを有し、前記アプリケーションは前記ブロックチェーンサービスを利用するための指示を認証されたユーザから受け付けた場合、ネットワークを介して前記電子データを前記管理サービスに送信するとともに前記電子データに関する情報を前記連携ステップへ送信することを特徴とする請求項7に記載のプログラム。
【請求項9】
前記アプリケーションは、前記情報処理装置のスキャン機能を利用する指示をユーザから受け付ける画面情報をリモートUIまたはローカルUIに提供し、認証されたユーザに前記連携ステップの利用を許可することが決定されている場合は、前記スキャン機能を利用する指示の他に前記ブロックチェーンサービスを利用する指示または利用しない指示もユーザから受け付ける前記画面情報を提供することを特徴とする請求項8に記載のプログラム。
【請求項10】
ネットワークを介して前記電子データを前記管理サービスから受信し印刷する、かつ前記ブロックチェーンサービスとは直接は通信しない印刷アプリケーションを有し、前記印刷アプリケーションは前記管理サービスに格納された前記電子データを印刷する指示を認証されたユーザから受け付けた場合、前記連携ステップにおいて前記ブロックチェーンサービスに登録された前記電子データに関する情報を取得し、前記印刷アプリケーションは前記連携ステップにおいて前記電子データに関する情報が取得された後に前記電子データを印刷することを特徴とする請求項7乃至9の何れか1項に記載のプログラム。
【請求項11】
前記ログインステップは、認証を行わずにユーザをログインさせるゲストログインに対応し、ゲストログインしたユーザには前記ブロックチェーンサービスと連携する機能が利用できないことを示すロール情報が付与されることを特徴とする請求項7乃至10の何れか1項に記載のプログラム。
【請求項12】
前記連携ステップでは、前記ブロックチェーンサービスと連携することが許可されたことを示すクレデンシャル情報を取得しており、
リモートUIを介して前記ブロックチェーンサービスを利用する指示を前記情報処理装置へ送信する別の情報処理装置のユーザには、前記クレデンシャル情報は提供されないことを特徴とする請求項7乃至11の何れか1項に記載のプログラム。
【請求項13】
ネットワークを介して電子データを受信し格納する管理サービスと、格納された前記電子データに関する情報をブロック単位で管理し夫々のブロックごとに前および/または後のブロックとの関連を定義した上で複数のブロックを複数のノードで管理するブロックチェーンサービスと連携する情報処理装置の制御方法であって、
ユーザの認証に用いる認証情報と、ユーザに付与される権限を示すロール情報とを対応付けて記憶する記憶ステップと、
格納された前記電子データに関する情報を前記ブロックチェーンサービスへ提供させる連携ステップと、
前記認証情報を受け付けたことに応じて、認証処理を実行し、認証されたユーザをログインさせ、確認されたロール情報
の中に前記ブロックチェーンサービスと連携する機能が利用できることを示すロール情報が含まれていると確認された場合は、認証されたユーザに前記連携ステップの処理を利用させるログインステップと、
を含み、
ログインした前記ユーザは、前記情報処理装置のスキャン機能により紙文書を読み取りブロックチェーン検証を行う処理の実行を指示することが可能であり、前記紙文書から生成された電子データに関する情報が前記ブロックチェーンサービスに登録されているかを確認させることで前記紙文書のブロックチェーン検証を行わせる
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ブロックチェーンを使用した電子データの記録改ざんに対応する情報処理装置、制御方法、プログラムに関する。
【背景技術】
【0002】
電子ファイルの改ざんを防止するために、ブロックチェーンを利用することで電子ファイルの内容変更に信頼性を担保することが知られている(特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
電子ファイルの情報をブロックチェーンサービスに登録する場合、電子ファイルに対する処理が信頼されたものであることを保証しなければならない。そのためには、アプリケーションや処理時に使用するクレデンシャルを作業従事者が使用する装置(たいていの場合にはPC)に導入する必要がある。その場合、作業従事者はPC台数分の管理を行うことが必要となり、管理業務負荷が大きくなってしまうという問題が発生する。
【0005】
本願発明の目的は、ブロックチェーンサービスと連携する情報処理装置を用意し、情報処理装置がユーザを認証しユーザに特定のロールが割り当てられていることを確認することで、数多くのユーザおよび/または装置に対しブロックチェーンサービスを利用させる。すなわち、その情報処理装置がブロックチェーンサービスのハブデバイスとして機能する。
【課題を解決するための手段】
【0006】
本発明の一実施形態に係る情報処理装置は、ネットワークを介して電子データを受信し
格納する管理サービスと、格納された前記電子データに関する情報をブロック単位で管理
し夫々のブロックごとに前および/または後のブロックとの関連を定義した上で複数のブ
ロックを複数のノードで管理するブロックチェーンサービスと連携する情報処理装置であ
って、ユーザの認証に用いる認証情報と、ユーザに付与される権限を示すロール情報とを
対応付けて記憶する記憶手段と、格納された前記電子データに関する情報を前記ブロックチェーンサービスへ提供する連携手段と、前記認証情報を受け付けたことに応じて、認証処理を実行し、認証されたユーザをログインさせ、確認されたロール情報の中に前記ブロックチェーンサービスと連携する機能が利用できることを示すロール情報が含まれていると確認された場合は、認証されたユーザに前記連携手段を利用させるログイン手段と、を有し、ログインした前記ユーザは、前記情報処理装置のスキャン機能により紙文書を読み取りブロックチェーン検証を行う処理の実行を指示することが可能であり、前記情報処理装置は、前記紙文書から生成された電子データに関する情報が前記ブロックチェーンサービスに登録されているかを確認することで前記紙文書のブロックチェーン検証を行うことを特徴とする。
【発明の効果】
【0007】
ブロックチェーンサービスのハブデバイスとなる情報処理装置を提供する。
【図面の簡単な説明】
【0008】
【
図2】画像形成装置のハードウェア構成を示す図である。
【
図3】PCおよび文書管理装置のハードウェア構成を示す図である。
【
図4】画像形成装置のソフトウェア構成を示す図である。
【
図5】文書管理装置のソフトウェア構成を示す図である。
【
図6】ブロックチェーン装置のデータ構成を示す図である。
【
図10】アプリケーションAの文書登録画面の画面例である。
【
図11】アプリケーションAの登録文書の保存/印刷画面の画面例である。
【
図12】アプリケーションAの登録文書の検証画面の画面例である。
【
図13】文書の情報をブロックチェーン装置に登録する処理を示すフローチャート。
【
図14】電子文書を文書管理装置から取得し保存する処理を示すフローチャート。
【
図15】電子文書を画像形成装置で印刷する処理を示すフローチャート。
【
図16】電子文書を検証する処理を示すフローチャート。
【
図17】ブロックチェーン装置へのトランザクション処理を示すフローチャート。
【発明を実施するための形態】
【0009】
[実施例1]
以下、本発明を実施するための形態について図面を用いて説明する。
図1は、画像形成装置101と関連するシステムの全体図である。画像形成装置101、PC102、文書管理装置103がLAN100に接続されイントラネット内に存在し、インターネット110を介して、ブロックチェーン装置111と通信を行う。PC102はウェブブラウザを利用した画像形成装置101の管理やプリントドライバを利用した画像形成装置101からの印刷に利用される。
【0010】
ブロックチェーン装置111は画像形成装置101やPC102で生成された電子文書に関する情報をブロック単位にまとめて管理する装置であり文書の正当性を保障するためのブロックチェーンサービスを提供する装置である。文書管理装置103は画像形成装置101やPC102で生成された電子文書を保存する装置であり文書管理サービスを提供する。
【0011】
図2は、画像形成装置101のハードウェア構成を示すブロック図である。Central Processing UnitであるCPU201を含む制御部200は、画像形成装置101全体の動作を制御する。CPU201は、Read Only MemoryであるROM202に記憶された制御プログラムを読み出して読取制御や送信制御などの各種制御を行う。Randam Access MemoryであるRAM203は、CPU201の主メモリ、ワークエリア等の一時記憶領域として用いられる。Hard Disc DriveであるHDD204は、画像データや各種プログラム、あるいは後述する各種データを記憶する。画像形成装置101は情報処理装置としてのハードウェア構成を有しているが、これに加え以下のハードウェア構成をさらに有する。
【0012】
操作部I/F205は、操作部209と制御部200とを接続する。プリンタI/F206は、プリンタ210と制御部200とを接続する。プリンタ210で印刷すべき画像データはプリンタI/F206を介して制御部200から転送され、プリンタ210において記録媒体上に印刷される。スキャナI/F207は、スキャナ211と制御部200とを接続する。スキャナ211は、原稿上の画像を読み取って画像データを生成し、スキャナI/F207を介して制御部200に入力する。
【0013】
ネットワークI/F208は、制御部200(画像形成装置101)をLAN100に接続する。ネットワークI/F208は、LAN100上の外部装置に画像データや情報を送信したり、LAN100上の外部装置から各種情報を受信したりする。
【0014】
図3は、PC102、および文書管理装置103のコンピューターのハードウェア構成を表すブロック図である。CPU302は装置全体の制御を行う。CPU302はHDD305に格納されているアプリケーションプログラムやOS等を実行し、RAM303にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。ROM304は記憶手段であり、内部には、基本I/Oプログラム等の各種データを記憶する。RAM303は一時記憶手段であり、CPU302の主メモリ、ワークエリア等として機能する。HDD305は外部記憶手段の一つであり、大容量メモリとして機能し、オフィスアプリケーションやWebブラウザー等のアプリケーションプログラム、OS、関連プログラム等を格納している。
【0015】
ディスプレイ306は表示手段であり、指示入力手段であるキーボード/マウス307から入力したコマンド等を表示したりするものである。インターフェース308は外部装置I/Fであり、プリンタ、USB機器、周辺機器を接続する。システムバス301は、装置内におけるデータの流れを司るものである。ネットワークインターフェースカード(以降NIC)309は、LAN100を介して外部装置とのデータのやり取りを行う。
【0016】
なお、情報処理装置の構成はその一例であり、
図2および
図3の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてROM304、RAM303、HDD305などで変更することも可能である。本実施例中で特に明記しない場合は、各種処理はROM304等に記憶されているプログラムをRAM303等にロードし、CPU302で実行することによって実現されるものとする。
【0017】
図4は、画像形成装置101において本発明に関連するソフトウェア構成について示したブロック図である。特に断りのない限り、各処理部はROM202に記憶された制御プログラムである。ローカルUI制御部400は、操作部I/F205を介して操作部209を制御する機能を提供する。ローカルUI制御部400はユーザが操作部209で操作した内容をユーザ認証処理部402やアプリケーションに通知する。ローカルUI制御部400は機能選択画面900を操作部209に表示する。機能選択画面900の例を
図9(A)に示す。ローカルUI制御部400はユーザ認証処理部402やアプリケーションからの画面表示依頼を受けて、操作部209へ画面を表示するための制御を行う。ユーザ認証処理部402、アプリケーションA404はローカルUI制御部400を介して操作部209に画面を表示する。
【0018】
リモートUI制御部401は、ネットワークI/F208を介してPC102上のウェブブラザに対してウェブページを提供する。リモートUI制御部401はユーザがウェブブラウザで操作した内容をユーザ認証処理部402やアプリケーションに通知する。リモートUI制御部401は機能選択画面910をPC102上のウェブブラザに表示する。機能選択画面910の例を
図9(B)に示す。リモートUI制御部401はユーザ認証処理部402やアプリケーションからの依頼を受けて、ウェブブラウザに対してウェブページを表示するための制御を行う。ユーザ認証処理部402、アプリケーションA404、アプリケーションB405はリモートUI制御部401を介してウェブブラウザに対してウェブページを表示させる。
【0019】
ユーザ認証処理部402は、画像形成装置101を利用するユーザを認証するための機能を提供する。そのため、ユーザ認証処理部402は認証画面700(画面例を
図7に示す)を操作部209に表示する。ユーザ認証処理部402は認証画面700を介して、ユーザからユーザ名とパスワードの入力と言った認証情報を受信し、ユーザ情報DB403内に保持しているユーザ情報と比較することでユーザ認証を行う。
【0020】
ユーザ情報DB403は、画像形成装置101を利用するユーザに関する情報であるユーザ情報を保持する機能を提供する。ユーザ情報DB403は、HDD204内に構築され、格納される情報はHDD204に記憶される。ユーザ情報DB403に格納している情報の例を表1と表2に示す。
【0021】
【0022】
表1のユーザ情報テーブルは、「ユーザ名」と「パスワード」、「ロール」から構成されており、認証情報とロールは対応付けられている。「ユーザ名」はユーザを一意に識別するための名称である。「パスワード」はユーザ認証で利用するパスワードであり、ユーザ毎に任意の値を設定することができる。「ロール」は画像形成装置101のユーザに付与する画像形成装置101の利用権限を指し、本実施例ではAdministrator、General User、Guest Userの3つが存在する。
【0023】
Administratorは画像形成装置101の管理者ユーザに割り当てるロールであり、General Userは画像形成装置101を利用する一般的なユーザに割り当てるロールである。Guest Userは利用できる機能を制限したいユーザに割り当てるロールであり、ユーザがユーザ情報DB403にユーザ名およびパスワードなどの認証情報を登録せずに機能を利用する場合に割り当てられるロールである。ログインしたユーザの「ロール」の値に従って利用できる機能が決定されるので、ロールごとに画像形成装置101の機能の利用制限を行うことができる。
【0024】
【0025】
表2のロール情報テーブルは、「ロール」と「コピー」、「送信」、「保存」、「BC登録」、「BC保存/印刷」、「BC検証」から構成される。「コピー」、「送信」、「保存」、「BC登録」、「BC保存/印刷」、「BC検証」は画像形成装置101が有するそれぞれの機能を表し、その値はそれぞれのロールに対してその機能の利用が許可されているか、禁止されているかを表す。「コピー」、「送信」、「保存」はコピー機能、スキャンした文書をPC102に送信するスキャン機能、スキャンした電子文書をHDD204に保存する機能に対する権限を表している。
【0026】
「BC登録」は文書の情報をブロックチェーン装置111に登録する機能に対する権限を表している。「BC保存/印刷」はブロックチェーン装置111に登録されている文書情報に紐付いている文書管理装置103に保存されている文書を画像形成装置101に保存したり、印刷したりする機能に対する権限を表している。「BC検証」はブロックチェーン装置111に登録されている文書情報を基にして正式な文書か否かを検証する機能に対する権限を表している。画像形成装置101のアプリケーションはログインしているユーザのロールに該当するロール情報テーブルのロールの権限に従って、それぞれの機能の制限を行う。
【0027】
実施例1では、ユーザの権限レベルという観点でAdministratorなどのロールを用意した。しかし、例えば、「BCロール」と言ったロールや、さらに細かく「BC登録ロール」、「BC保存/印刷ロール」のように、ブロックチェーンサービスを利用するための専用ロールを用意しても良い。
【0028】
アプリケーションA404は、スキャンした文書を電子文書に変換し、ブロックチェーンアプリケーション406を介してブロックチェーン装置111に文書の情報を、文書管理装置103に文書を登録する機能を提供する。アプリケーションA404は、登録された文書を受信しプリンタI/F206を介して印刷する機能を提供する。アプリケーションA404はスキャナI/F207を介してスキャナ211を制御したり、ネットワークI/F208を介してLAN100へデータを送信したりすることで、外部装置へスキャンデータの送信を行う。アプリケーションA404はローカルUI制御部400およびリモートUI制御部401へ画面情報を提供する。
【0029】
アプリケーションA404はローカルUI制御部400を介して操作部209に表示された画面への入力を受け付け、それに応じて処理を行う。アプリケーションA404は登録画面1000、登録文書の保存/印刷画面1100、検証画面1200を操作部209に表示する。登録画面1000の例を
図10(A)に、登録文書の保存/印刷画面1100の例を
図11(A)に、検証画面1200の例を
図12(A)に示す。
【0030】
また、アプリケーションA404はリモートUI制御部401を介してPC102上のウェブブラザからの入力を受け付け、それに応じて処理を行う。アプリケーションA404は登録画面1020、登録文書の保存/印刷画面1110、検証画面1210をPC102上のウェブブラザに表示する。登録画面1020の例を
図10(C)に、登録文書の保存/印刷画面1110の例を
図11(B)に、検証画面1210の例を
図12(B)に示す。
【0031】
なお、文書の登録、印刷、検証と言った機能を1つのアプリケーションに備える例を説明するが、それらの機能を複数のアプリケーションに分担させても良い。例えば、文書の登録を行うスキャンアプリケーションと、印刷を行う印刷アプリケーションのように分ける形態が考えられる。
【0032】
アプリケーションB405は、アプリケーションA404と同様にスキャンした文書を電子文書に変換し、ブロックチェーンアプリケーション406を介してブロックチェーン装置111に文書情報を、文書管理装置103に文書を登録する機能を提供する。アプリケーションB405はリモートUI制御部401へ画面情報を提供する。アプリケーションA404はローカルUI制御部400とリモートUI制御部401を介してローカルUIとリモートUIの両方からの入出力に対応するが、アプリケーションB405はリモートUIからだけの入出力に対応する点が異なる。なお、アプリケーションA404およびアプリケーションB405はブロックチェーン装置111とは直接通信することはない。
【0033】
ブロックチェーンアプリケーション406は、ブロックチェーン連携するためのアプリケーションであり、アプリケーションA404やアプリケーションB405からの指示を受け、ブロックチェーン装置111に文書の情報を登録、取得、検証する機能を提供する。ブロックチェーンアプリケーション406がブロックチェーン装置111に登録するトランザクション601とブロックのデータ構造の例を
図6に示すが詳細は後述する。
【0034】
ブロックチェーンアプリケーション406は、アプリーションからブロックチェーン装置111に対する指示を受けた際にクレデンシャル情報管理部410からクレデンシャル情報も受け取る。ブロックチェーンアプリケーション406は、受け取ったクレデンシャル情報の検証を行って、検証が成功した場合だけ、ブロックチェーン装置111に対して処理を実行する。
【0035】
クレデンシャル情報A408は、アプリケーションA404がブロックチェーン装置111を利用する正規のアプリケーションであることを保証するためのクレデンシャル情報である。クレデンシャル情報A408は正しい処理を行っていることが検証されたアプリケーションに対して発行され、アプリケーションはクレデンシャル情報が組み込まれた状態で画像形成装置101に搭載される。
【0036】
クレデンシャル情報B409は、アプリケーションB405がブロックチェーン装置111を利用する正規のアプリケーションであることを保証するためのクレデンシャル情報である。クレデンシャル情報A408と同様に画像形成装置101に搭載される。
【0037】
クレデンシャル情報C407は、画像形成装置101がブロックチェーン装置111を利用する正規の装置であることを保証するためのクレデンシャル情報である。クレデンシャル情報C407は、例えば本システムを運営する団体が装置のメーカーごとに発行してもよい。クレデンシャル情報C407は画像形成装置101のファームウェア内に組み込んだ状態で出荷してもよいし、出荷後に画像形成装置101へインストールしてもよい。
【0038】
なお、クレデンシャル情報はデジタル証明書や秘密鍵と公開鍵の鍵ペアでもよいし、予め定められたデータ値でもよく、クレデンシャル情報の実態に制限はない。クレデンシャル情報はアプリケーションごとに異なる実態であってもよい。
【0039】
クレデンシャル情報管理部410は、画像形成装置101内のクレデンシャル情報を管理する機能を提供する。本実施例ではクレデンシャル情報管理部410は、ブロックチェーンアプリケーション406からの指示を受けて、ブロックチェーンアプリケーション406にクレデンシャル情報C407を渡す。なお、実施例1ではPC102が画像形成装置101を経由することでブロックチェーン装置111と連携するが、クレデンシャル情報管理部410はクレデンシャル情報C407をPC102に提供しないように構成している。PC102のユーザはリモートUIを介してログインすることで、画像形成装置101が確認したロールに基づいてブロックチェーンアプリケーション406の利用が許可されるので、PC102は事前にブロックチェーン装置111との信頼関係を結ばずとも良い。
【0040】
図5は、文書管理装置103において、本発明に関連するソフトウェア構成について示したブロック図である。文書管理装置103で管理する電子文書は、ファイル保持部501に保存する文書ファイルと、文書情報保持部502に保存する文書を表す情報とで構成される。文書情報保持部502に格納するデータは、表3の文書情報テーブルに記載した情報である。
【0041】
【0042】
表3の文書情報テーブルは、「ID」と「文書名」、「登録日時」、「ファイルパス」から構成される。「ID」は、電子文書を一意に管理するための識別情報である。「文書名」は電子文書をユーザが識別するために付与する名称である。この文書名は複数の電子文書で重複してもよい。「登録日時」は、電子文書を文書管理装置103に保存した日時である。「ファイルパス」はファイル保持部501に格納された文書ファイルを保存している位置を表す。本実施例ではファイルシステム上のパスとして示しているが、保存場所を一意に表す情報であればパスでなくても良い。
【0043】
これらは、実施例1を説明するために必要な最低限の項目で構成しているが、文書を分類するための情報などを合わせて保持しても良い。電子文書処理部503は、ファイル保持部501と文書情報保持部502へアクセスを行い、電子文書の登録や取得、リストの取得といった処理を制御するための機能を有する。この電子文書処理部503での処理は、画像形成装置101やPC102など文書管理装置103の外部からの電子文書に関する入出力処理の要求を受け付けた電子文書送受信部504から起動されることにより実行される。
【0044】
図6は、ブロックチェーン装置111に保持するトランザクション601とそのトランザクションを複数格納したブロックのデータ構造について示したブロック図である。ブロックチェーン装置111は、ブロックチェーンと呼ばれる方式でデータを管理する装置である。このブロックチェーンは、情報をトランザクションという単位で取り扱い、そのトランザクションを複数まとめたブロックという単位で管理する。
【0045】
個々のブロックはその前後のブロックとの関連が定義されることで、各ブロックが数珠繋ぎの状態を保つように構成される。また、ブロックチェーンはノードと呼ばれる複数のコンピューターで管理されており、それぞれのノードがすべて等しいブロックデータの管理を行う非中央集権的な装置構造となる。このため、ブロックデータの改ざんを行う場合には構成されている複数のノードに対して更新を行わなければならず、対改ざん性の強いデータ管理方法として知られている。なお、ブロックチェーン装置111と記載はしたが、上述の通り複数のコンピューターで構成されている装置であって、それらによってブロックチェーンサービスが提供される。
【0046】
本実施例では、画像形成装置101での電子文書処理時にブロックチェーン装置111に文書を表すトランザクションを送信し、ブロック管理することで、電子文書の正しい状態を保持する。これにより、文書管理装置103内の電子文書に対する改ざんが行われていないかを確認できることができる。
【0047】
文書管理装置103への電子文書の登録や出力の処理を表すトランザクション601には、以下の6情報を含む。文書ハッシュ値602は、対象の電子文書を一意に表すために算出されたハッシュ値である。この文書ハッシュ値602は、文書ファイル全体から算出されるものであり、電子文書自体に変更が入る事で算出されるハッシュ値が変わるものである。ただし、これ以外の算出方法を制限するものではない。
【0048】
文書識別情報603は、文書管理装置103で管理されている電子文書との紐付けを行うために保持する情報であり、本実施例では表3のID値を格納する。登録デバイス識別情報604は、文書登録を行った画像形成装置101を識別する情報であり、本実施例ではクレデンシャル情報C407のハッシュ値を格納する。文書登録日時605は、文書を登録した時点を表す情報であり、本実施例では表3の登録日時の値を格納する。
【0049】
文書登録者606は、文書登録を行ったユーザを表す情報であり、本実施例では画像形成装置101へログインしたユーザのユーザ名のハッシュ値を格納する。ここで、画像形成装置101を利用するために既に登録されているユーザ名などの情報をブロックチェーン装置111に登録する情報としてそのまま利用できるため、システムの管理者の管理業務負荷を少なくすることが可能となる。元文書ハッシュ値607は、文書間の関連を表す情報である。これは、文書管理装置103に格納されている電子文書に対して印刷や電子データ保存などを行った場合に、元となる電子文書と紐付けを行うために使用する。
【0050】
続けて、トランザクション601を保持するブロックの構造についてブロック611を用いて説明する。これは一般的なブロックチェーン構造を模式化したものである。ブロック611には、複数のトランザクション601(a)~601(c)と、それらのトランザクション601から算出するブロックのハッシュ値612を保持する。
【0051】
実施例1ではブロックに含むトランザクション601の数は3つとしたがトランザクション数を制限するものではない。また、ブロック間を連結するための前ブロックのハッシュ値613を保持する。実施例1においては、ブロック614のブロックのハッシュ値を前ブロックのハッシュ値613に格納し、ブロックが関連を持っていることを表している。実施例1では前ブロックのハッシュ値としたが、後ブロックのハッシュ値を管理する、もしくは前ブロックと後ブロックの両方のハッシュ値を管理する形態であっても良い。
【0052】
図7は、認証画面の画面例である。
図7(A)の認証画面700はユーザが画像形成装置101の機能を利用するためにユーザ認証を行う機能を提供するための画面である。ユーザ名入力フィールド701は画像形成装置101のユーザがユーザ名を入力するためのフィールドである。パスワード入力フィールド702は画像形成装置101のユーザがパスワードを入力するためのフィールドである。
【0053】
ログインボタン703はユーザ認証を実行するためのボタンである。ユーザがこのボタンを押下した場合、ユーザ認証処理部402はユーザ名入力フィールド701とパスワード入力フィールド702に入力された値を元にユーザ認証を行う。
【0054】
図7(B)の認証画面(ゲストログイン)710はゲストログインを設けた認証画面の画面例であり、ユーザが画像形成装置101の機能を利用するためにユーザ認証を行う機能を提供するための画面である。以下、認証画面700との違いのみ説明する。
【0055】
ゲストログインボタン711はゲストユーザとしてユーザ認証を実行するためのボタンである。ユーザがこのボタンを押下した場合、ユーザ認証処理部402はユーザ名とパスワードによる認証は行わず、ログインを許可する。ゲストログインボタン711を押下してログインしたユーザは、ユーザ名がGuestでロールがGuest Userとなり、表2のロール情報テーブルの権限に従って利用できる機能が制限される。なお、本実施例では詳細の説明は省くが、ユーザ認証処理部402の設定で認証画面700と認証画面(ゲストログイン)710のどちらの画面を表示するかを切り替えてもよい。
【0056】
図8はリモート認証画面の画面例である。
図8(A)のリモート認証画面800はユーザがPC102上のウェブブラウザから画像形成装置101の機能を利用するために、ユーザ認証を行うための画面である。ユーザ名入力フィールド801は画像形成装置101のユーザがユーザ名を入力するためのフィールドである。パスワード入力フィールド802は画像形成装置101のユーザがパスワードを入力するためのフィールドである。
【0057】
ログイン803はユーザ認証を実行するためのボタンである。ユーザがこのボタンを押下した場合、ユーザ認証処理部402はユーザ名入力フィールド801とパスワード入力フィールド802に入力された値を元にユーザ認証を行う。
【0058】
図8(B)のリモート認証画面(ゲストログイン)810はユーザが画像形成装置101の機能を利用するためにユーザ認証を行う機能を提供するための画面である。以下、リモート認証画面800との違いのみ説明する。
【0059】
ゲストログインボタン811はゲストユーザとしてユーザ認証を実行するためのボタンである。ユーザがこのボタンを押下した場合、ユーザ認証処理部402はユーザ名とパスワードによる認証は行わず、ログインを許可する。ゲストログインボタン811を押下してログインしたユーザは、ユーザ名がGuestでロールがGuest Userとなり、表2のロール情報テーブルの権限に従って利用できる機能が制限される。
【0060】
なお、本実施例では詳細の説明は省くが、ユーザ認証処理部402の設定でリモート認証画面800とリモート認証画面(ゲストログイン)810のどちらの画面を表示するかを切り替えてもよい。
【0061】
図9はローカルUI制御部400およびリモートUI制御部401が表示する機能を選択する画面の画面例である。
図9に示す機能を選択する画面は画像形成装置101に搭載されている機能の一覧である。画像形成装置101のユーザはこの画面に表示されているボタンを押下することで、画像形成装置101に搭載されている各機能を利用することができる。
【0062】
図9(A)の機能選択画面900は、認証画面700または認証画面(ゲストログイン)710でログインした直後にローカルUI制御部400によって操作部209に表示される画面である。機能選択ボタン901は画像形成装置101の各機能を利用するためのボタンである。
【0063】
コピーボタンはコピー機能を利用する画面を、送信ボタンはスキャンした文書をPC102に送信する機能を利用する画面を、保存ボタンはスキャンした電子文書をHDD204に保存する機能を利用する画面を表示するためのボタンである。実施例1ではそれぞれのボタンが押下された後に表示する画面の説明は省略するが、いずれも従来通りである。
【0064】
文書登録ボタンが押下された場合は、登録画面1000または登録画面1010を表示する。登録文書保存/印刷ボタンが押下された場合は、登録文書の保存/印刷画面1100を表示する。文書検証ボタンが押下された場合は、検証画面1200を表示する。
【0065】
ログアウトボタン902は、ログイン中に表示されるログアウト処理を実行するためのボタンである。このボタンが押下されるとログアウト処理が実行され、その後、認証画面700または認証画面(ゲストログイン)710が表示される。
【0066】
図9(B)の機能選択画面910はリモート認証画面800またはリモート認証画面(ゲストログイン)810でログインした直後にリモートUI制御部401によってPC102上のウェブブラウザに表示する画面の例である。
【0067】
機能選択ボタン911はそれぞれの機能を利用するためのボタンである。機能選択画面900と同様に保存ボタンが押下された後に表示する画面の説明は省略する。文書登録ボタンが押下された場合は、登録画面1020または登録画面1030を表示する。登録文書保存/印刷ボタンが押下された場合は、登録文書の保存/印刷画面1110を表示する。文書検証ボタンが押下された場合は、検証画面1210を表示する。
【0068】
なお、ファンクションの選択はこの形態に限られず、例えば、アプリケーションA404を機能選択画面900に表示し、アプリケーションA404が選択された後に登録や印刷などの機能を選択させる形態であっても良い。
【0069】
図10はアプリケーションA404およびアプリケーションB405が表示する登録画面の画面例である。実施例1ではアプリケーションA404はローカルUI制御部400とリモートUI制御部401を介して操作部209とPC102上のウェブブラウザに画面を表示し、アプリケーションB405はPC102上のウェブブラウザにだけ画面を表示する。尚、アプリケーションB405も操作部209とPC102上のウェブブラウザの両方に画面を表示してもよい。
【0070】
図10(A)の登録画面1000は文書をブロックチェーン装置111および文書管理装置103に登録する機能を提供するための画面である。文書選択設定1001は登録の対象となる文書をスキャンした紙文書または画像形成装置101に保存されている文書から選択する設定であり、スキャンまたは保存文書のどちらか一方が選択できる。スキャン設定1002はスキャンに関する各種の設定である。
【0071】
ブロックチェーンボタン1003は文書の情報をブロックチェーン装置111に登録するか否かを選択するボタンである。ブロックチェーンボタン1003が選択されている場合は文書の情報をブロックチェーン装置111に登録し、選択されていない場合はブロックチェーン装置111に登録しない。
【0072】
登録するボタン1004は文書選択設定1001でスキャンが選択されていた場合は文書のスキャンを実行して電子文書を生成する。保存文書が選択されていた場合は保存文書のリストを表示し、そのリストからユーザが選択した文書を取得する。その後、ブロックチェーンボタン1003が選択されている場合は、電子文書を文書管理装置103に登録し、電子文書の情報をブロックチェーン装置111へ登録する。ブロックチェーンボタン1003が選択されていない場合は、電子文書を文書管理装置103に登録し、ブロックチェーン装置111には登録しない。保存先設定1005は文書を文書管理装置103のどのパスに保存するかを指定する設定である。
【0073】
図10(B)の登録画面1010は文書を文書管理装置103に登録する機能を提供するための画面であって、例えばゲストログインしたユーザに対して表示される画面である。実施例1ではゲストユーザにはブロックチェーン装置111に文書情報を登録する権限が無いため、本画面にはブロックチェーンボタン1003は表示しない点が登録画面1000とは異なる。なお、ユーザにブロックチェーンサービスを利用できるロールが割り当てられていない場合に、
図10(B)の登録画面1010を表示しても良い。
【0074】
図10(C)の登録画面1020は文書をブロックチェーン装置111および文書管理装置103に登録する機能を提供するための画面であって、PC102上のウェブブラウザに表示する画面の例である。
【0075】
図10(D)の登録画面1030は文書を文書管理装置103に登録する機能を提供するための画面であって、例えばゲストログインしたユーザに対してPC102上のウェブブラウザに表示する画面である。なお、ユーザにブロックチェーンサービスを利用できるロールが割り当てられていない場合に、
図10(D)の登録画面1010を表示しても良い。
【0076】
図11は、アプリケーションA404が表示する登録されている文書を保存または印刷する画面の画面例である。
図11(A)の登録文書の保存/印刷画面1100はブロックチェーン装置111および文書管理装置103で管理されている文書を保存または印刷する機能を提供するための画面である。
【0077】
文書選択リスト1101は、保存または印刷する文書を選択するためのリストであり、アプリケーションA404は文書管理装置103で管理されている文書を文書選択リスト1101に表示する。プリントするボタン1102は、文書選択リスト1101で選択した文書の印刷を実行するボタンである。保存するボタン1103は、文書選択リスト1101で選択した文書を画像形成装置101のHDD204に保存するボタンである。
【0078】
図11(B)の登録文書の保存/印刷画面1110はブロックチェーン装置111および文書管理装置103で管理されている文書を保存または印刷する機能を提供するための画面であって、PC102上のウェブブラウザに表示する画面の例である。
【0079】
図12はアプリケーションA404が表示する文書を検証するための画面の画面例である。
図12(A)の検証画面1200はスキャンした文書または画像形成装置101に保存されている文書を、ブロックチェーン装置111を利用して正式な文書であることを検証する機能を提供するための画面である。
【0080】
文書選択設定1201は検証の対象となる文書をスキャンした紙文書または画像形成装置101に保存されている文書から選択する設定である。文書選択リスト1202は検証対象となる文書を選択するためのリストであり、HDD204に保存されている文書の一覧である。検証するボタン1203は、文書選択設定1201でスキャンが選択されていた場合は文書のスキャンを実行し、その後、ブロックチェーン装置111を利用して文書の検証を実行するボタンである。検証するボタン1203は、文書選択設定1201で保存文書が選択されていた場合は文書選択リスト1202で選択されている文書の検証を行う。
【0081】
図12(B)の検証画面1210はHDD204に保存されている文書を、ブロックチェーン装置111を利用して正式な文書であることを検証する機能を提供するための画面であって、PC102上のウェブブラウザに表示する画面の例である。
【0082】
図13は、画像形成装置101において文書の情報をブロックチェーン装置111に登録する処理のフローチャートである。実施例1では、ユーザが制御部200を介して画像形成装置101を利用するケースを説明するが、PC102上のウェブブラウザを介して画像形成装置101を利用してもよい。本フローチャートは、認証画面700でログインボタン703が押下されたことにより起動され、まず、ユーザ認証処理部402がCPU201において実行される。
【0083】
本フローチャート起動時には、認証画面700から画像形成装置101のユーザによって入力されたユーザ名とパスワードがユーザ認証処理部402に渡される。ステップS1301では、ログイン依頼としてユーザ名とパスワードを受け付ける。
【0084】
ステップS1302では、受信したユーザ名とパスワードが表1のユーザ情報テーブル内のユーザ名とパスワードと一致するか確認し、一致する場合はユーザ認証が成功したと見なし、ステップS1303へ進む。一致しなかった場合はユーザ認証が失敗したと見なし、ステップS1314へ進む。
【0085】
ステップS1303では、ログイン処理として現在ログインしているユーザとしてステップS1301で受け付けたユーザ名をRAM203に保持し、処理をローカルUI制御部400に渡す。処理を引き継いだローカルUI制御部400は機能選択画面900を操作部209に表示する。本フローチャートでは、その後、機能選択画面900においてユーザによって文書登録ボタンが押下され、それ以降の処理はアプリケーションA404がCPU201において実行される。
【0086】
処理を引き継いだアプリケーションA404は現在ログインしているユーザのロールを元に機能制限を反映した画面を表示する。具体的には、ログインしているユーザのユーザ名がGuestの場合は該当するロールであるGuest UserはBC登録が禁止されているため、ブロックチェーン装置111への文書登録機能が制限されている登録画面1010を操作部209に表示する。ログインしているユーザのユーザ名がGuest以外の場合はBC登録が許可されているため、登録画面1000を操作部209に表示する。
【0087】
ステップS1314では、エラー処理としてユーザ認証の失敗やブロックチェーン装置111を利用する権限が無いことを操作部I/F205を経由して操作部209に表示して処理を終了する。ステップS1304では、アプリケーションA404は登録画面1000において登録するブロックチェーンボタン1003が押下されるまで待ち、押下された場合はステップS1305に進む。
【0088】
ステップS1305では、登録画面1000でスキャンが選択されていた場合は、ステップS1306に進み、保存文書が選択されていた場合は、ステップS1308に進む。ステップS1306では、スキャナ211を用いて紙文書に対してスキャン処理を実行する。ステップS1307では、ステップS1306でスキャンしたデータからスキャン設定1002に従って電子文書を生成し、一時的にHDD204に保存する。この一時的なデータについては、本フローチャート終了時に削除する。
【0089】
ステップS1308では、ブロックチェーン登録指示をされているか否かを判断する。実施例1では、ログインしているユーザのユーザ名がGuest以外の場合、かつ、登録画面1000でブロックチェーンボタン1003が選択されていた場合はステップS1309に進むことになる。ログインしているユーザのユーザ名がGuestの場合、または、Guest以外の場合かつ登録画面1000でブロックチェーンボタン1003が選択されていなかった場合はステップS1315に進むことになる。
【0090】
ステップS1309では、画像形成装置101のユーザにブロックチェーン装置111を利用する権限があるかを確認し、権限がある場合はステップS1310に進み、権限がない場合はステップS1314に進む。なお、画像形成装置101の正規ユーザにのみ、ブロックチェーン装置111を利用させたい場合、ステップS1303で保持したユーザ名のロールがGuest Userではない場合に権限があると見なす方法もある。また、ブロックチェーン装置111を利用する権限は、上述したようにブロックチェーン専用のロールを作成し、それを基に権限の判断をしても良い。
【0091】
ステップS1310では、ステップS1307で生成した電子文書のハッシュ値を算出する。ステップS1311では、ステップS1307で生成した電子文書を文書管理装置103に登録を依頼し、結果として、登録が完了した電子文書を表すIDと登録が完了した日時を表す日時情報を取得する。
【0092】
ステップS1311まではアプリケーションA404で処理を行っていたが、ステップS1312はブロックチェーンアプリケーション406が処理を実行する。ステップS1312では、電子文書をブロックチェーン装置111に登録する。ブロックチェーン装置111への登録処理は後述の
図17で説明する。ここでは、登録するためのトランザクション601へ指定する値と、クレデンシャル情報について説明する。
【0093】
文書ハッシュ値602にはステップS1310で算出したハッシュ値を指定する。文書識別情報603にはステップS1311で受け取った電子文書を表すIDを指定する。登録デバイス識別情報604には印刷を行った画像形成装置101のクレデンシャル情報C407のハッシュ値を指定する。文書登録日時605にはステップS1311で受け取った登録が完了した日時を表す日時情報を指定する。文書登録者606には登録操作を行った画像形成装置101へログインしているユーザ名のハッシュ値を指定する。尚、本フローでは元文書は存在しないため、元文書ハッシュ値607には値を指定しない。
【0094】
アプリケーションA404はトランザクション601に指定する値に加えて、クレデンシャル情報A408もブロックチェーンアプリケーション406に渡す。クレデンシャル情報A408は、登録に関する一連の処理が正規なアプリケーションによって行われていることを検証するためにブロックチェーンアプリケーション406によって利用される。
【0095】
ステップS1313では、アプリケーションA404がブロックチェーン装置111への登録処理の結果をブロックチェーンアプリケーション406から取得する。ステップS1315では、ステップS1311と同じ処理を実行して、ステップS1316に進む。ブロックチェーン登録を行わない、通常の文書登録も実行できる。
【0096】
ステップS1316では、アプリケーションA404がステップS1313で取得した登録結果を操作部I/F205を経由して操作部209に表示する。これについては画面上に文書管理装置103への登録の成否やブロックチェーン装置111への登録の成否などの情報(不図示)を表示する。その後、処理を終了する。
【0097】
図14は、文書管理装置103に保存されている電子文書を画像形成装置101に保存する処理のフローチャートである。実施例1では、ユーザが制御部200を介して画像形成装置101を利用するケースを説明するが、PC102上のウェブブラウザを介して画像形成装置101を利用してもよい。本フローチャートは、認証画面700でログインボタン703が押下されたことにより起動され、まずユーザ認証処理部402がCPU201において実行される。
【0098】
本フローチャート起動時には、認証画面700から画像形成装置101のユーザによって入力されたユーザ名とパスワードがユーザ認証処理部402に渡される。ステップS1401では、ログイン依頼としてユーザ名とパスワードを受け付ける。ステップS1402では、受信したユーザ名とパスワードが表1のユーザ情報テーブル内のユーザ名とパスワードと一致するか確認し、一致する場合はユーザ認証が成功したと見なし、ステップS1403へ進む。一致しなかった場合はユーザ認証が失敗したと見なし、ステップS1411へ進む。
【0099】
ステップS1403では、ログイン処理として現在ログインしているユーザとしてステップS1401で受け付けたユーザ名をRAM203に保持し、処理をローカルUI制御部400に渡す。処理を引き継いだローカルUI制御部400は機能選択画面900を操作部209に表示する。本フローチャートでは、その後、機能選択画面900においてユーザによって登録文書保存/印刷ボタンが押下され、それ以降の処理はアプリケーションA404がCPU201において実行される。処理を引き継いだアプリケーションA404は登録文書の保存/印刷画面1100を操作部209に表示する。
【0100】
ステップS1404では、アプリケーションA404は
図11に示した登録文書の保存/印刷画面1100を操作部I/F205を経由して操作部209に表示し、保存するボタン1103が押下されるまで待ち、押下された場合はステップS1405に進む。
【0101】
ステップS1405では、登録文書の保存/印刷画面1100の文書選択リスト1101で選択された電子文書を画像形成装置101から取得する。取得した電子文書の文書情報はRAM203に、文書ファイルはHDD204に一時的に保存する。
【0102】
ステップS1405まではアプリケーションA404で処理を行っていたが、ステップS1406はブロックチェーンアプリケーション406が処理を実行する。ステップS1406では、RAM203に保存した文書情報のIDを文書識別情報603に保持するトランザクション601を取得する。この取得処理については、後述の
図17において説明する。
【0103】
ここで、アプリケーションA404はクレデンシャル情報A408をブロックチェーンアプリケーション406に渡す。クレデンシャル情報A408は、電子文書の取得に関する一連の処理が正規なアプリケーションによって行われていることを検証するためにブロックチェーンアプリケーション406によって利用される。
【0104】
ステップS1407では、ステップS1406で該当するトランザクション情報を取得できたかどうかを判定する。トランザクション情報が存在しない場合には、ブロックチェーン装置111で管理されていない情報であるため、ステップS1410に進む。トランザクション情報が存在する場合には、ステップS1408に進む。
【0105】
ステップS1408では、HDD204に保存した文書データからハッシュ値を算出する。そのハッシュ値は、ステップS1409においてステップS1406で取得したトランザクション情報の文書ハッシュ値602と同一値であるかどうかを判定する。同一値でなければ、文書管理装置103に保存されている文書ファイルは不正なデータであるため、ステップS1411のエラー表示に進む。同一値である場合には、ステップS1410に進む。
【0106】
ステップS1410では、ステップS1405でHDD204に一時的に保存した文書データをHDD204内の正規な保存場所に移動する。実施例1においては、画像形成装置101のHDD204に保存する構成としたが、登録文書の保存/印刷画面1100に保存先のパスを指定するようにして、指定された場所へ保存するように構成しても良い。
【0107】
ステップS1411では、本処理フローチャートにおいて取得を許可できない場合のエラー表示を行う。これについては画面上にエラーダイアログ(不図示)を表示する。この際、HDD204に一時的に保存した文書ファイルは削除する。
【0108】
図15は、文書管理装置103に保存されている電子文書を画像形成装置101から印刷処理を行うフローチャートである。実施例1では、ユーザが制御部200を介して画像形成装置101を利用するケースを説明するが、PC102上のウェブブラウザを介して画像形成装置101を利用してもよい。本フローチャートは、認証画面700でログインボタン703が押下されたことにより起動され、まずユーザ認証処理部402がCPU201において実行される。
【0109】
本フローチャート起動時には、認証画面700から画像形成装置101のユーザによって入力されたユーザ名とパスワードがユーザ認証処理部402に渡される。ステップS1501では、ログイン依頼としてユーザ名とパスワードを受け付ける。ステップS1502では、受信したユーザ名とパスワードが表1のユーザ情報テーブル内のユーザ名とパスワードと一致するか確認し、一致する場合はユーザ認証が成功したと見なし、ステップS1503へ進む。一致しなかった場合はユーザ認証が失敗したと見なし、ステップS1515へ進む。
【0110】
ステップS1503では、ログイン処理として現在ログインしているユーザとしてステップS1501で受け付けたユーザ名をRAM203に保持し、処理をローカルUI制御部400に渡す。処理を引き継いだローカルUI制御部400は機能選択画面900を操作部209に表示する。本フローチャートでは、その後、機能選択画面900においてユーザによって登録文書保存/印刷ボタンが押下され、それ以降の処理はアプリケーションA404がCPU201において実行される。処理を引き継いだアプリケーションA404は登録文書の保存/印刷画面1100を操作部209に表示する。
【0111】
ステップS1504では、アプリケーションA404は
図11に示した登録文書の保存/印刷画面1100を操作部I/F205を経由して操作部209に表示し、プリントするボタン1102が押下されるまで待ち、押下された場合はステップS1505に進む。ステップS1505では、登録文書の保存/印刷画面1100の文書選択リスト1101で選択された電子文書を画像形成装置101から取得する。取得した電子文書の文書情報はRAM203に、文書ファイルはHDD204に一時的に保存する。
【0112】
ステップS1505まではアプリケーションA404で処理を行っていたが、ステップS1506はブロックチェーンアプリケーション406が処理を実行する。ステップS1506では、RAM203に保存した文書情報のIDを文書識別情報603に保持するトランザクション601を取得する。この取得処理については、後述の
図17において説明する。
【0113】
ここで、アプリケーションA404はクレデンシャル情報A408をブロックチェーンアプリケーション406に渡す。クレデンシャル情報A408は、電子文書の取得に関する一連の処理が正規なアプリケーションによって行われていることを検証するためにブロックチェーンアプリケーション406によって利用される。
【0114】
ステップS1507では、ステップS1506で該当するトランザクション情報を取得できたかどうかを判定する。トランザクション情報が存在しない場合には、ブロックチェーン装置111で管理されていない文書であるため、ステップS1508に進む。トランザクション情報が存在する場合には、ステップS1509に進む。
【0115】
ステップS1508では、HDD204に保存した文書データを画像形成装置101のプリンタI/F206を経由して、プリンタ210から印刷処理を行う。ステップS1509では、HDD204に保存した文書データからハッシュ値を算出する。そのハッシュ値は、ステップS1510においてステップS1507で取得したトランザクション情報の文書ハッシュ値602と同一値であるかどうかを判定する。同一値でなければ、文書管理装置103に保存されている文書ファイルは不正なデータであるため、ステップS1515のエラー表示に進む。同一値である場合には、ステップS1511に進む。
【0116】
ステップS1511では、印刷文書に設定するためのハッシュ値を算出する。これには、ステップS1507で取得したトランザクション情報の文書ハッシュ値602と処理を行う画像形成装置101のクレデンシャル情報C407と本ステップ処理時点の画像形成装置内の日時情報を使用して計算する。
【0117】
ステップS1512では、ステップS1511で算出された印刷物を表すハッシュ値と、元の画像を表すトランザクション情報の文書ハッシュ値602をステップS1513で印刷するファイル内に設定する。ここで設定する形式は、後述の検証で印刷した紙をスキャンした際に読み取れる形式であり、二次元バーコードとして印刷物上で判断できる情報であっても良いし、不可視情報として埋め込んでもよい。
【0118】
ステップS1513では、ハッシュ値を設定した文書ファイルを画像形成装置101のプリンタI/F206を経由して、プリンタ210から印刷処理を行う。ステップS1513まではアプリケーションA404で処理を行っていたが、ステップS1514はブロックチェーンアプリケーション406が処理を実行する。ステップS1514では、印刷処理の情報をブロックチェーン装置111に登録する。この登録処理は後述の
図17で説明する。ここでは、登録するためのトランザクション601へ指定する値について説明する。
【0119】
文書ハッシュ値602にはステップS1511で算出した印刷文書のハッシュ値を、文書識別情報603には引数で受け取った電子文書を表すIDを指定する。登録デバイス識別情報604には印刷を行った画像形成装置101のクレデンシャル情報C407のハッシュ値を指定する。文書登録日時605にはS1511でハッシュ値を検索した際の日時情報を指定する。文書登録者606は、印刷を行った画像形成装置101へログインしているユーザ名のハッシュ値を指定する。元文書ハッシュ値607には、S1506で取得した元の画像を表すトランザクション情報の文書ハッシュ値602を指定する。
【0120】
ここで、アプリケーションA404はクレデンシャル情報A408をブロックチェーンアプリケーション406に渡す。クレデンシャル情報A408は、電子文書の取得に関する一連の処理が正規なアプリケーションによって行われていることを検証するためにブロックチェーンアプリケーション406によって利用される。ステップS1515では、本処理フローチャートにおいて印刷を許可できない場合のエラー表示を行う。これについては画面上にエラーダイアログ(不図示)を表示する。
【0121】
図16は、ユーザが指定した文書ファイル、もしくは印刷された紙文書を画像形成装置101から検証処理を行うフローチャートである。本フローチャートは、
図7に示した画像形成装置101の認証画面700でログインボタン703もしくは、ゲストログインボタン711が押下されたことにより起動され、まずユーザ認証処理部402がCPU201において実行される。本フローチャート起動時には、認証画面700から画像形成装置101のユーザによって入力されたユーザ名とパスワードがユーザ認証処理部402に渡される。
【0122】
ステップS1601では、ログイン依頼としてユーザ名とパスワードを受け付ける。ステップS1602では、受信したユーザ名とパスワードが表1のユーザ情報テーブル内のユーザ名とパスワードと一致するか確認し、一致する場合はユーザ認証が成功したと見なし、ステップS1603へ進む。一致しなかった場合はユーザ認証が失敗したと見なし、ステップS1614へ進む。
【0123】
ステップS1603では、ログイン処理として現在ログインしているユーザとしてステップS1601で受け付けたユーザ名をRAM203に保持し、処理をローカルUI制御部400に渡す。処理を引き継いだローカルUI制御部400は機能選択画面900を操作部209に表示する。本フローチャートでは、その後、機能選択画面900においてユーザによって文書検証ボタンが押下され、それ以降の処理はアプリケーションA404がCPU201において実行される。処理を引き継いだアプリケーションA404は検証画面1200を操作部209に表示する。
【0124】
ステップS1604では、アプリケーションA404は
図12に示した検証画面1200を操作部I/F205を経由して操作部209に表示し、検証するボタン1203が押下されるまで待ち、押下された場合はステップS1605に進む。ステップS1605では、起動時に受け取った文書選択設定1201の値で対象文書が紙データかどうかを判定する。紙データの場合にはステップS1607へ進み、電子データである場合にはステップS1606へ進む。
【0125】
ステップS1606では、選択されたHDD204内の電子データを特定し、その電子データのハッシュ値を算出する。このハッシュ値が検証対象の文書を表すものであり、ステップS1611での検証処理に使用される。ステップS1607では、画像形成装置101にセットされた紙文書をスキャンする。スキャンは、スキャナI/F207を通じてスキャナ211で紙文書を読み込み、画像データを生成する。
【0126】
ステップS1608では、スキャナ211によって画像化されたデータを電子化し、電子データとして一時的にHDD204に保存する。この一時的なデータについては、本フローチャート終了時に削除する。ステップS1609では、ステップS1608でHDD204に保存した電子データに埋め込まれたハッシュ値を取得する。この取得は、前述の
図15で説明した印刷フローチャートのステップS1512で埋め込んだ方法に合わせたハッシュ値を取得する処理を行う。
【0127】
ステップS1610では、電子データからハッシュ値を取得できたかを判定する。ハッシュ値がある場合にはステップS1611へ進み、ハッシュ値がない場合には検証処理ができないためステップS1614へ進む。ステップS1610まではアプリケーションA404で処理を行っていたが、ステップS1611はブロックチェーンアプリケーション406が処理を実行する。
【0128】
ステップS1611では、ブロックチェーン装置111に記録されているトランザクション情報を使用した文書検証処理を行う。この文書検証処理は後述の
図17で説明する。その際には、処理種別として文書検証と、ステップS1606もしくはステップS1609において算出/取得した文書ハッシュ値と、クレデンシャル情報A408とを渡す。
【0129】
依頼した処理結果の応答を受け取ったら、ステップS1612で検証結果を判定する。検証が成功した場合には、ステップS1613で検証が成功した等のメッセージを表示する標準ダイアログ(不図示)を表示する。また、検証が失敗した場合には、ステップS1614で検証が失敗したもしくは検証不可能である旨のメッセージを表示する標準ダイアログ(不図示)を表示する。それぞれのメッセージ表示後、ユーザがダイアログを閉じる指示を行ったら本フローチャートを終了する。
【0130】
図17は、画像形成装置101のブロックチェーンアプリケーション406でブロックチェーン装置111へのトランザクション処理を行うフローチャートである。本フローチャートは、
図13から
図16までのアプリケーションA404の処理中にブロックチェーンアプリケーション406として起動され、実行される。
【0131】
本フローチャート起動時には、アプリケーションA404から、ブロックチェーン装置111への処理種別と、処理種別ごとに必要な情報が渡される。処理種別ごとに必要な情報は、トランザクション登録時にはトランザクション601、文書検証時には検証が必要な文書ハッシュ値602、トランザクション取得時には文書識別情報603である。
【0132】
ステップS1701では、ブロックチェーンアプリケーション406はクレデンシャル情報C407とクレデンシャル情報A408をブロックチェーン装置111に渡して、正しいクレデンシャル情報であることを確認する。ここで、クレデンシャル情報C407はブロックチェーンアプリケーション406の起動時にクレデンシャル情報管理部410から取得したものを、クレデンシャル情報A408はアプリケーションA404から取得したものを用いる。
【0133】
ステップS1702では、ステップS1701で確認したクレデンシャル情報が正しいものであるかどうかを判定する。正しいか否かの判定は、クレデンシャル情報がデジタル証明書の場合は証明書の検証を行って検証が成功した場合に、正しいクレデンシャル情報であると判断する。また、予め定められたデータ値の場合は値が一致する場合に、正しいクレデンシャル情報であると判断する。正しいクレデンシャルであった場合にはブロックチェーン装置111へのアクセスが可能な状況であるため、ステップS1703に進み、正しいクレデンシャルでなかった場合にはステップS1704に進む。
【0134】
ステップS1703では、ブロックチェーンアプリケーション406が受信した処理種別を判定する。トランザクション登録であればステップS1705へ、トランザクション取得であればステップS1710へ、文書検証であればステップS1713へ進む。
【0135】
ステップS1704では、本処理フローチャートにおいてブロックチェーン装置111へのアクセス権限を満たしていない旨のエラー情報を生成する。
【0136】
ステップS1705では、処理起動時に受け取ったトランザクション情報がそろっているかどうかを確認する。また、文書ハッシュ値602についてはブロックチェーン装置111内に登録されていない事を、元文書ハッシュ値607についてはブロックチェーン装置111内に登録されている事を、ブロックチェーン装置111を検索することで確認する。情報がそろっていない、もしくはハッシュ値が正しい状態ではない場合には、トランザクション情報は不正なものとなる。このチェック結果をステップS1706で判定し、トランザクション情報が正当であればステップS1707へ、不正な情報であればステップS1709のエラー処理へ進む。
【0137】
ステップS1707では、ブロックチェーン装置111に対してチェック済みのトランザクション601の登録を依頼する。本ステップではブロックチェーン装置111から登録処理の結果として成功/失敗を受け取る。
【0138】
ステップS1708では、そのブロックチェーン装置111からの処理結果を判定し、失敗の場合にはステップS1709のエラー処理へ進み、成功であれば結果通知S1719へ進む。ステップS1709では、本処理フローチャートにおいてトランザクション登録ができない旨のエラー情報を生成する。
【0139】
ステップS1710では、処理起動時に受け取った文書識別番号を保持するトランザクションをブロックチェーン装置111から検索し、取得する。検索結果はステップS1711で判定し、トランザクションデータを取得できなかった場合には、対象の文書はブロックチェーン装置111に登録されていないため、ステップS1712のエラー処理へ進む。トランザクションデータを取得できた場合には、ステップS1719へ進む。ステップS1712では、本処理フローチャートにおいてトランザクション取得に失敗した旨のエラー情報を生成する。
【0140】
ステップS1713では、処理起動時に受け取ったハッシュ値を文書ハッシュ値として保持するトランザクションをブロックチェーン装置111から検索し取得する。検索結果はステップS1714で判定し、トランザクションデータを取得できなかた場合には、正当なハッシュ値としてステップS1715へ進み、取得できなかった場合には、不正なハッシュ値としてステップS1718のエラー処理へ進む。
【0141】
ステップS1715では、ステップS1713で取得したトランザクションに元文書ハッシュ値を持っているかどうかを判定する。元文書ハッシュ値を持っていない場合には、ステップS1707で確認したハッシュ値が一番先頭の文書であるため検証処理は終了となり、ステップS1719へ進む。元文書ハッシュ値を持っている場合、その元文書の存在を確認する必要があるため、ステップS1716へ進む。
【0142】
ステップS1716では、処理種別として文書検証を、処理に必要な情報として元文書ハッシュ値を指定し、本
図17のフローチャートを再帰実行する。この実行結果はステップS1717で判定し、元文書まで含めた検証が成功した場合には、ステップS1719へ進む。検証が失敗した場合には、ステップS1718のエラー処理へ進む。ステップS1718では、本処理フローチャートにおいて文書検証に失敗した旨のエラー情報を生成する。
【0143】
ステップS1719では、それぞれの処理種別ごとの処理成功時の情報として、トランザクション登録の場合には登録完了ステータスを、文書検証の場合には検証成功ステータスを呼び出し元となる処理に通知する。トランザクション取得の場合には取得したトランザクション情報を、またエラー処理が行われている場合にはエラー情報を呼び出し元となる処理に通知する。
【0144】
以上、実施例1により、ユーザのログインおよびロールに基づく権限の確認がされたことで、数多くのユーザおよび/または装置に対しブロックチェーンサービスを利用させることができる。
【0145】
[その他の実施例]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0146】
400 ローカルUI制御部
401 リモートUI制御部
402 ユーザ認証処理部
DB403 ユーザ情報
A404 アプリケーション
B405 アプリケーション
406 ブロックチェーンアプリケーション
C407 クレデンシャル情報
A408 クレデンシャル情報
B409 クレデンシャル情報
410 クレデンシャル情報管理部