IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社スカイコムの特許一覧

<>
  • 特許-文書検証システムおよび文書検証方法 図1
  • 特許-文書検証システムおよび文書検証方法 図2
  • 特許-文書検証システムおよび文書検証方法 図3
  • 特許-文書検証システムおよび文書検証方法 図4
  • 特許-文書検証システムおよび文書検証方法 図5
  • 特許-文書検証システムおよび文書検証方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-08-06
(45)【発行日】2024-08-15
(54)【発明の名称】文書検証システムおよび文書検証方法
(51)【国際特許分類】
   G06F 21/64 20130101AFI20240807BHJP
   H04L 9/32 20060101ALI20240807BHJP
   H04L 67/02 20220101ALI20240807BHJP
【FI】
G06F21/64
H04L9/32 200D
H04L67/02
【請求項の数】 7
(21)【出願番号】P 2023153919
(22)【出願日】2023-09-20
【審査請求日】2024-06-10
【早期審査対象出願】
(73)【特許権者】
【識別番号】397038266
【氏名又は名称】株式会社スカイコム
(74)【代理人】
【識別番号】100177220
【弁理士】
【氏名又は名称】小木 智彦
(72)【発明者】
【氏名】河野 翼
(72)【発明者】
【氏名】上野 恵梨
【審査官】三森 雄介
(56)【参考文献】
【文献】特開2007-128449(JP,A)
【文献】特開2015-115893(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F12/14
21/10
21/60-21/88
G09C1/00-5/00
H04K1/00-3/00
H04L9/00-9/40
H04L51/00-51/58
67/00-67/75
(57)【特許請求の範囲】
【請求項1】
電子文書の署名検証を行う文書検証システムであって、
サーバが、所定のモジュールを端末に割り当てる割当部を備え、
前記端末が、割り当てられた前記モジュールを動作させて、前記電子文書に基づいて証明書データを抽出する抽出部を備え、
前記サーバが、抽出された前記証明書データを検証する証明書検証部を備え、
前記端末が、割り当てられた前記モジュールを動作させて、前記電子文書の改ざんを検証する改ざん検証部を備える、
ことを特徴とする文書検証システム。
【請求項2】
割り当てられた前記モジュールは、Webブラウザで動作することを特徴とする請求項1に記載の文書検証システム。
【請求項3】
前記サーバで動作するモジュールは、Webコンポーネントおよび/またはWEB APIで構成されることを特徴とする請求項1に記載の文書検証システム。
【請求項4】
前記証明書データは、公開鍵証明書を含み、
前記証明書検証部は、前記公開鍵証明書を、信頼済み証明書に基づいて検証することを特徴とする請求項1に記載の文書検証システム。
【請求項5】
前記証明書データは、公開鍵証明書と失効リストとに関する情報を含み、
前記証明書検証部は、前記公開鍵証明書を、前記失効リストに関する情報に基づいて検証することを特徴とする請求項1に記載の文書検証システム。
【請求項6】
前記抽出部は、検証時刻に関する情報をさらに抽出し、
前記証明書検証部は、前記公開鍵証明書を、前記検証時刻に関する情報に基づいて検証することを特徴とする請求項4または5に記載の文書検証システム。
【請求項7】
電子文書の署名検証を行う文書検証システムが実行する文書検証方法であって、
サーバが、所定のモジュールを端末に割り当てるステップと、
前記端末が、割り当てられた前記モジュールを動作させて、前記電子文書に基づいて証明書データを抽出するステップと、
前記サーバが、抽出された前記証明書データを検証するステップと、
前記端末が、割り当てられた前記モジュールを動作させて、前記電子文書の改ざんを検証するステップと、
を備えることを特徴とする文書検証方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書検証システムおよび文書検証方法に関する。
【背景技術】
【0002】
近年、電子文書による文書のペーパーレス化が進む一方、電子文書の作成者が曖昧となり、また改ざんの有無が明確になりにくくなっていることから、ユーザーが受け取った電子文書が、誰によって作成されたものなのか、また、改ざんされていないかどうかの署名検証する機会が増えている。
【0003】
このため、ユーザーは、自身の端末にインストールしたアプリを使用して、受け取った電子文書の署名検証を行ってきたが、Webブラウザを用いた電子文書の署名検証を行うサービスが提供されて以来、ユーザー端末に署名検証用のアプリをインストールする必要がなくなっている(非特許文献1)。
【先行技術文献】
【非特許文献】
【0004】
【文献】株式会社スカイコム,“電子署名・タイムスタンプの有効性検証や、PDF印鑑で捺印した履歴情報の確認および改ざん検知がウェブ上で行える「SkyPDF 検証サービス」サイトを公開”,[online],令和4年3月1日,PR TIMES Corporation,[令和5年6月29日検索],インターネット <URL:https://prtimes.jp/main/html/rd/p/000000009.000075093.html>
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、非特許文献1のサービスを提供するシステムでは、署名検証処理はサーバ側で実施されており、ユーザーが電子文書の署名検証を行おうとした場合、機密性の高い平文を含む電子文書全体をサーバにアップロードする必要があることから、電子文書のアップロードに難色を示すユーザーが多く、そのため、サーバ側では、検証処理後にアップロードされた電子文書を確実に削除するなどの電子文書管理を行う必要がある。
【0006】
また、非特許文献1のシステムでは、サーバ側に、Webブラウザで電子文書を表示するためのWebアプリと、電子文書の制御を行うWEB APIとのために、デバイスやリソースを用意する必要があり、特にWEB APIを実装するデバイスやリソースについては、WEB APIとの同時アクセス数等を考慮する必要がある。
【0007】
そこで、本発明者らは、電子文書の署名検証サービスにおいては、従来サーバ側で動作する機能をクライアント側にダウンロードし、クライアント側のWebブラウザ上で、ダウンロードした機能を動作させることによって、ユーザーは、電子文書全体をサーバ側にアップロードすることなく、電子文書の署名検証が可能となることに着目した。
【0008】
本発明は、これらの課題に鑑み、ユーザーが電子文書全体をサーバ側にアップロードすることなく、電子文書の署名検証を行うことが可能な文書検証システムおよび文書検証方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明では、以下のような解決手段を提供する。
【0010】
第1特徴に係る発明によれば、
電子文書の署名検証を行う文書検証システムであって、
サーバが、所定のモジュールを端末に割り当てる割当部を備え、
前記端末が、割り当てられた前記モジュールを動作させて、前記電子文書に基づいて証明書データを抽出する抽出部を備え、
前記サーバが、抽出された前記証明書データを検証する証明書検証部を備え、
前記端末が、割り当てられた前記モジュールを動作させて、前記電子文書の改ざんを検証する改ざん検証部を備える、
ことを特徴とする文書検証システムモジュール割当部を提供する。
【0011】
第1特徴に係る発明によれば、電子文書に基づいて証明書検証に必要なデータの抽出と、電子文書の改ざん検証をクライアント側で行うことができることから、ユーザーは、電子文書に含まれる証明書の検証に必要なデータのみをアップロードするだけで電子文書の署名検証を行うことができる。
【0012】
また、第1特徴に係る発明によれば、電子文書に基づいて証明書検証に必要なデータの抽出と、電子文書の改ざん検証をサーバ側で行う必要がないことから、これらの機能を実現するWeb API等に用いるデバイスやリソースを省略することが可能となる。
【0013】
また、第1特徴に係る発明によれば、機密性の高い平文を含む電子文書全体を検証サービスサーバにアップロードする必要がないことから、サーバ側では、アップロードされた電子文書を確実に削除することによって、電子文書の漏洩等のセキュリティリスクを回避するための電子文書管理が必要ではないことから、セキュリティリスク観点で、電子文書全体をアップロードすることに難色を示すユーザーが、安心して電子文書の署名検証を行うことが可能となる。
【0014】
第2特徴に係る発明は、第1特徴に係る発明であって、
割り当てられた前記モジュールは、Webブラウザで動作する文書検証システムを提供する。
【0015】
第2特徴に係る発明によれば、端末のWebブラウザでアセンブラを使用して電子文書の署名検証を行うことができるようになることから、ユーザーが専用のアプリケーションを端末にインストールする手間を省くことが可能となる。
【0016】
第3特徴に係る発明は、第1特徴に係る発明であって、
前記サーバで動作するモジュールは、Webコンポーネントおよび/またはWeb APIで構成される文書検証システムを提供する。
【0017】
第3特徴に係る発明によれば、サーバで動作するモジュールを、WEB APIの代わりにWebコンポーネントで構成した場合、Webブラウザで動作するカスタム要素が再利用可能となることから、サーバで動作するモジュールが行う処理を端末で行うことができ、サーバにかかる負担を減らすことが可能となり、さらには、サーバ側に、Webブラウザで電子文書を表示するためのWebアプリと、電子文書の制御を行うWEB APIとのために、デバイスやリソースを用意する必要がなくなる。
【0018】
第4特徴に係る発明は、第1特徴に係る発明であって、
前記証明書データは、公開鍵証明書を含み、
前記証明書検証部は、前記公開鍵証明書を、信頼済み証明書に基づいて検証する文書検証システムを提供する。
【0019】
第4特徴に係る発明によれば、信頼済み証明書に基づいて、電子文書に含まれる公開鍵証明書が、信頼された公開鍵証明書認証局または認証局(Certification Authority(CA))から発行されていることを検証することが可能となる。
【0020】
第5特徴に係る発明は、第1特徴に係る発明であって、
前記証明書データは、公開鍵証明書と失効リストとに関する情報を含み、
前記証明書検証部は、前記公開鍵証明書を、前記失効リストに関する情報に基づいて検証する文書検証システムを提供する。
【0021】
第5特徴に係る発明によれば、発行元の公開鍵証明書認証局または認証局(Certification Authority(CA))が公開する失効リストに基づいて、当該認証局から、公開鍵証明書が失効されていないかを検証することが可能となる。
【0022】
第6特徴に係る発明は、第4または第5特徴に係る発明であって、
前記抽出部は、検証時刻に関する情報をさらに抽出し、
前記証明書検証部は、前記公開鍵証明書を、前記検証時刻に関する情報に基づいて検証する文書検証システムを提供する。
【0023】
第6特徴に係る発明によれば、信頼済み証明書や失効リストに関する情報に基づいて公開鍵証明書を検証する際に使用される検証時刻を抽出することが可能であり、さらには、公開鍵証明書を検証するタイミングが、公開鍵証明書に設定された有効期間内であるかどうかを検証することが可能となる。
【0024】
本発明は、端末システムのカテゴリであるが、文書検証方法等の他のカテゴリにおいても、そのカテゴリに応じた同様の作用・効果を発揮する。
【発明の効果】
【0025】
本発明によれば、電子文書全体をサーバ側にアップロードすることなく、電子文書の署名検証を行うことが可能な文書検証システムおよび文書検証方法を提供することが可能となる。
【図面の簡単な説明】
【0026】
図1】本発明の一実施形態である文書検証システム1の概要を説明するための図である。
図2】本実施形態の文書検証システム1の構成図である。
図3】本実施形態の文書検証システム1が実行するモジュール割当処理のフローチャートである。
図4】本実施形態の文書検証システム1が実行する証明書検証処理のフローチャートである。
図5】本実施形態の文書検証システム1実行する改ざん検証処理のフローチャートである。
図6】本実施形態の文書検証システム1における署名検証対象の電子文書の構成の一例を示す図である。
【発明を実施するための形態】
【0027】
以下、本発明を実施するための最良の形態について図を参照しながら説明する。なお、これはあくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。
【0028】
[文書検証システム1の概要]
本発明の一実施形態である文書検証システム1の概要について、図1に基づいて説明する。図1は、本発明の一実施形態である文書検証システム1の概要を説明するための図である。文書検証システム1は、端末2およびサーバ3から構成され、電子文書の署名検証を行うシステムである。
【0029】
文書検証システム1の端末2は、例えば、デスクトップパソコンやノートパソコンやサーバ等の端末、スマートフォンやタブレット端末等の携帯端末、スマートグラス等のヘッドマウントディスプレイやスマートウォッチといったウェアラブル端末等である。
【0030】
また、端末2は、例えば、1台の端末装置で実現されてもよいし、複数の端末装置で実現されてもよい。
【0031】
端末2は、上述した端末装置、その他の端末や装置類等と、公衆回線網等を介して、データ通信可能に接続されており、必要なデータや情報の送受信を実行する。
【0032】
文書検証システム1のサーバ3は、例えば、デスクトップパソコンやノートパソコンやサーバ等のコンピュータ装置等である。
【0033】
また、サーバ3は、例えば、1台の端末装置で実現されてもよいし、複数の端末装置で実現されてもよく、クラウドコンピュータのように仮想的な装置で実現されてもよい。
【0034】
サーバ3は、上述した端末装置、その他の端末や装置類等と、公衆回線網等を介して、データ通信可能に接続されており、必要なデータや情報の送受信を実行する。
【0035】
次に、文書検証システム1が実行する処理の概要について説明する。
まず、サーバ3が、所定のモジュールを端末2に割り当てる(ステップS1)。具体的には、電子文書100の署名検証を所望するユーザーが、端末2の出力部によってWebブラウザに、サーバ3が提供する文書検証システム1のWebサイトを表示した際に、サーバ3がモジュール400を端末2にダウンロードする。
【0036】
次に、端末2は、割り当てられたモジュール400を動作させて、電子文書100に基づいて証明書データ200を抽出する(ステップS2)。具体的には、端末2は、Webブラウザにおいて、署名検証を所望する電子文書100の入力をユーザーから受け付け、入力を受け付けた電子文書100に含まれる署名データ、あるいは関連付けられた署名データから署名者の証明書データ200を抽出し、抽出した証明書データ200をサーバに送信する。このとき、端末2は検証情報および/または検証時刻を抽出してサーバ3に送信してもよい。ユーザーからの入力方法については特に限定することなく、他の端末装置から公衆回線等を介して入力および取得してもよい。
【0037】
電子文書100のデータ構成について、図6に基づいて説明する。電子文書100には、平文(以後、署名対象データと称する)に署名データが埋め込まれている。署名データのサイズや埋め込まれる位置については、特に限定されない。また、署名データは電子文書100に関連付けられていればよく、電子文書100に埋め込まれていなくてもよい。署名データには、ダイジェスト、証明書データ200、検証時刻230の一部、ダイジェスト計算アルゴリズム、署名アルゴリズム、署名者に関する情報が含まれる。ダイジェストは、署名対象データに基づいて所定のダイジェスト計算アルゴリズムでハッシュ化され、署名アルゴリズムを用い、秘密鍵に基づいて暗号化される。これらのアルゴリズムについては特に限定されない。証明書データ200には、公開鍵証明書210が含まれる。
【0038】
公開鍵証明書210には、署名者の名前や所属先などの個人情報と、署名者の公開鍵と、公開鍵証明書認証局または認証局(Certification Authority(CA))(図示しない)による署名とが含まれ、ダイジェストを復号化するための公開鍵が正しいものであることを証明するために使用されるものである。
【0039】
失効リスト220は、認証局(CA)が公開する失効している証明書の一覧であり、公開鍵証明書210が、発行元である認証局(CA)から失効されていないかどうかを証明するために使用されるものである。
【0040】
検証時刻230は、公開鍵証明書210の時間的有効性を検証する際に用いる。図6の例では、検証時刻230には、署名時刻のタイムスタンプが含まれている。署名時刻のタイムスタンプは、電子文書100内であれば、署名データの外にあってもよい。検証時刻230として使用する時刻データは、署名データや検証者(ユーザー)の指定に基づいて、署名時刻のタイムスタンプまたは端末2またはサーバ3から取得した現在時刻が最適に選択される。
【0041】
署名時刻のタイムスタンプは、時刻認証局(Time Stamping Authority (TSA))から取得したものである。
【0042】
図1に戻り、サーバ3は、抽出された証明書データ200を検証する(ステップS3)。具体的には、サーバ3は、自身に予め格納しておいた信頼済み証明書300と、端末2から送信された証明書データ200とを照合し、この証明書データ200に含まれる公開鍵証明書210が正しいものであるか否かを検証し、検証結果を端末2に送信する。端末2は、受信した検証結果に基づき、電子文書100に関連する公開鍵証明書210が正しいか否かを判断する。尚、信頼済み証明書300とは、認証局(CA)(図示しない)から発行されたデジタル証明書を示す。
【0043】
次に、端末2は、割り当てられたモジュール400を動作させて、電子文書100の改ざんを検証する(ステップS4)。具体的には、端末2は、Webブラウザにおいて、電子文書100の署名対象データが改ざんされているか否かを、署名データに含まれる公開鍵を用いて検証する。尚、署名データの外に署名時刻のタイムスタンプが存在する場合は、端末2は、署名時刻のタイムスタンプが示す時刻以前に電子文書100が存在し、その時刻以降は文書が改ざんされていないことを検証してもよい。
【0044】
以上が、文書検証システム1が実行する処理の概要である。
【0045】
[文書検証システム1のシステム構成]
図2に基づいて、本実施形態の文書検証システム1のシステム構成について説明する。文書検証システム1は、端末2とサーバ3から構成され、電子文書の署名検証を行うための端末システムである。
【0046】
なお、文書検証システム1は、その他の端末や装置類等が含まれていてもよい。例えば、ユーザー毎に別の端末2を利用してもよく、この場合、文書検証システム1は、後述する各処理を、端末2およびサーバ3と、その他の含まれる端末や装置類等との何れか又は複数の組合せにより実行することになる。
【0047】
端末2は、例えば、1台の端末装置で実現されてもよいし、複数の端末装置で実現されてもよい。
【0048】
端末2は、例えば、デスクトップパソコンやノートパソコンやサーバ等の端末、スマートフォンやタブレット端末等の携帯端末、スマートグラス等のヘッドマウントディスプレイやスマートウォッチといったウェアラブル端末等である。
【0049】
端末2は、制御部および処理部として、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を備えており、制御部は、後述の処理部、通信部、入力部、出力部、記憶部に実行命令を出し、処理部は、データの計算を行い、計算結果の判定などを行う。
【0050】
端末2は、記憶部として、ハードディスクや半導体メモリ、記録媒体、メモリカード等によるデータのストレージを備える。データの保存先は、クラウドサービスやデータベース等であってもよい。
【0051】
端末2は、通信部として、他の端末や装置等と通信可能にするためのデバイスを備える。通信方式は、無線であっても有線であってもよい。
【0052】
端末2は、入力部として、端末2を操作するために必要な機能を備えるものとする。入力を実現するための例として、タッチパネル機能を実現する液晶ディスプレイ、キーボード、マウス、ペンタブレット、装置上のハードウェアボタン、音声認識を行うためのマイク等を備えることが可能である。入力方法により、本発明は特に機能を限定されるものではない。
【0053】
端末2は、出力部として、文書検証システム1のユーザーが端末2を操作するために必要な機能を備えるものとする。出力を実現するための例として、液晶ディスプレイ、PCのディスプレイ、プロジェクターへの投影等の表示と音声出力等の形態が考えられる。出力方法により、本発明は特に機能を限定されるものではない。
【0054】
制御部は、処理部と協働して抽出部20、改ざん検証部21を実現する。
【0055】
サーバ3は、例えば、1台の端末装置で実現されてもよいし、複数の端末装置で実現されてもよいし、クラウドコンピュータのように仮想的な装置で実現されてもよい。
【0056】
サーバ3は、端末2同様、例えば、デスクトップパソコンやノートパソコンやサーバ等のコンピュータ装置等である。
【0057】
サーバ3は、制御部および処理部として、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を備えており、制御部は、後述の処理部、通信部、記憶部に実行命令を出し、処理部は、データの計算を行い、計算結果の判定などを行う。
【0058】
サーバ3は、記憶部として、ハードディスクや半導体メモリ、記録媒体、メモリカード等によるデータのストレージを備える。データの保存先は、クラウドサービスやデータベース等であってもよい。
【0059】
サーバ3は、通信部として、他の端末や装置等と通信可能にするためのデバイスを備える。通信方式は、無線であっても有線であってもよい。
【0060】
制御部は、処理部と協働して証明書検証部30、モジュール割当部31を実現する。記憶部には、認証局(CA)(図示しない)から発行された信頼済み証明書300と、モジュール割当部31が端末2にダウンロードするモジュール400とが格納される。
【0061】
以上が、文書検証システム1のシステム構成である。
【0062】
[モジュール割当処理]
図3に基づいて、文書検証システム1が実行するモジュール割当処理について説明する。モジュール割当処理は、上述のS1で行われる処理である。図3は、文書検証システム1が実行するモジュール割当処理のフローチャートを示す図である。
【0063】
サーバ3は、所定のモジュールを端末2に割り当てる(ステップS11~S13)。具体的には、まず、端末2は、Webブラウザからサーバ3にアクセスする(ステップS11)。詳しくは、電子文書100の署名検証を所望するユーザーが、端末2に実装するWebブラウザから通信部を介して、サーバ3が提供する文書検証システム1のWebサイトにアクセスする。
【0064】
次に、サーバ3のモジュール割当部31が、モジュール400を端末2に割り当てる(ステップS12)。具体的には、サーバ3のモジュール割当部31が、記憶部に格納されるモジュール400を、通信部を介して端末2にダウンロードする。
【0065】
次に、端末2は、ダウンロードされたモジュール400を受信する(ステップS13)。具体的には、端末2は、サーバ3のモジュール割当部31からダウンロードしたモジュール400を、通信部を介して受信し、記憶部に格納する。
【0066】
以上が、モジュール割当処理である。
【0067】
[証明書検証処理]
図4に基づいて、文書検証システム1が実行する証明書検証処理について説明する。証明書検証処理は、上述のS2~S3で行われる処理である。図4は、文書検証システム1が実行する証明書検証処理のフローチャートを示す図である。
【0068】
端末2の抽出部20は、上述のステップS13でダウンロードされたモジュール400を動作させて、電子文書100に基づいて証明書データ200を抽出する(ステップS21~S22)。具体的には、まず、端末2の制御部が、出力部によって表示するWebブラウザにおいて、記憶部にダウンロードされて格納されたモジュール400を動作させ、ユーザーが端末2に実装するWebブラウザから署名検証を所望する電子文書100を入力することによって、端末2の入力部が、電子文書100の入力を受け付け、抽出部20が、入力を受け付けた電子文書100に含まれた署名データ、あるいは関連付けられた署名データから署名者の証明書データ200を抽出する(ステップS21)。ステップS21では、検証情報および/または検証時刻も抽出してもよい。
【0069】
次に、端末2の通信部によって、抽出した証明書データ200をサーバ3に送信する(ステップS22)。ステップS22では、ステップS21で抽出した検証情報および/または検証時刻をサーバ3に送信してもよい。尚、ユーザーからの入力方法については特に限定することなく、他の端末装置から公衆回線等を介して入力および取得してもよい。また、電子文書から証明書データ200を抽出する方法については、特に限定されない。
【0070】
電子文書100のデータ構成については、上述した通りである。
【0071】
次に、サーバ3は、自身に格納している信頼済み証明書300に基づいて、送信された証明書データ200を検証し、検証した結果を証明書検証結果として端末2に送信する(ステップS31~S34)。具体的には、サーバ3の通信部は、送信された証明書データ200を受信する(ステップS31)。ステップS31では、ステップS22で検証情報および/または検証時刻が送信されていれば、検証情報および/または検証時刻230も受信する。
【0072】
次に、サーバ3の証明書検証部30は、サーバ3の記憶部に予め格納しておいた信頼済み証明書300と、受信した証明書データ200とを照合し、この証明書データ200に含まれる公開鍵証明書210が正しいものであるか否かを検証する(ステップS32)。信頼済み証明書300は、所定の認証局(CA)が発行するものであり、信頼済み証明書300をサーバ3の記憶部に格納するタイミングは、証明書データ200を検証する前であれば、どのタイミングでもよい。
【0073】
ステップS32においては、具体的に、サーバ3の証明書検証部30は、信頼済み証明書300に基づいて、公開鍵証明書210の証明書チェーンを検証し、公開鍵証明書210の発行元の認証局が信頼できるかどうかを検証し、この検証結果を第1の検証結果とする。信頼済み証明書300は、証明書チェーンのルートとなる信頼する認証局の証明書(ルート証明書)である。尚、信頼済み証明書300としてのルート証明書は、証明書データ200または検証情報に含まれるものを使用してもよい。証明書チェーンに1または複数の中間認証局が介在する場合は、サーバ3は、ルート証明書とすべての中間証明書に基づいて、公開鍵証明書210の証明書チェーンを検証する。中間証明書は、サーバ3、証明書データ200または検証情報のいずれかに格納された中間証明書を用いる。
【0074】
また、ステップS32において、サーバ3の証明書検証部30は、サーバ3、証明書データ200または検証情報のいずれかに格納された失効リスト220に基づいて、公開鍵証明書210が失効されていないかを検証する。この検証結果を第2の検証結果とする。証明書データ200および検証情報に含まれる失効リスト220が有効でない場合や、証明書データ200および検証情報に失効リスト220が含まれない場合は、証明書検証部30は最新の失効リストを公開しているサーバから取得する。
【0075】
また、ステップS32において、サーバ3の証明書検証部30は、ステップS31で受信した検証時刻230に基づいて、公開鍵証明書210が有効期間内であるかどうかを検証してもよい。この検証結果を第3の検証結果とする。
【0076】
次に、サーバ3の通信部は、上述のステップS32で検証した結果を証明書検証結果として端末2に送信する(ステップ33)。具体的には、上述の第1~3の検証結果に基づいて、公開鍵証明書210が正しいものであるかどうかの結果を、証明書検証結果として端末2に送信する。尚、証明書検証結果としては、第1~3の検証結果それぞれ別個の結果を端末2に送信してもよい。
【0077】
次に、端末2の通信部は、サーバ3から証明書検証結果を受信する(ステップS34)。このとき、端末2の出力部は、受信した証明書検証結果を端末2に出力してもよい。出力方法としては、端末2のWebブラウザに表示してもよいし、文書検証システム1のユーザーが認知できるように、他の方法によって出力してもよい。
【0078】
以上が、証明書検証処理である。
【0079】
[改ざん検証処理]
図5に基づいて、文書検証システム1が実行する改ざん検証処理について説明する。改ざん検証処理は、上述のS4で行われる処理である。図5は、文書検証システム1が実行する改ざん検証処理のフローチャートを示す図である。
【0080】
まず、端末2の改ざん検証部21は、上述のステップS13でダウンロードされたモジュール400を動作させて、電子文書100の改ざんを検証する(ステップS41~S44)。具体的には、端末2の制御部が、出力部によって表示するWebブラウザにおいて、記憶部にダウンロードされて格納されたモジュール400を動作させ、端末2の改ざん検証部21は、端末2のWebブラウザによって電子文書100の署名データからダイジェストと、公開鍵と、一方向ハッシュ関数のアルゴリズムとを抽出する(ステップS41)。
【0081】
次に、端末2の改ざん検証部21は、照合用ダイジェストを生成する(ステップS42)。具体的には、端末2の改ざん検証部21は、端末2のWebブラウザにより、ステップS41で抽出したアルゴリズムに基づいて、電子文書100の署名対象データから任意の固定長のハッシュ値を、照合用ダイジェストとして生成する。一方向ハッシュ関数のアルゴリズムは、特に限定されない。
【0082】
次に、端末2の改ざん検証部21は、抽出した公開鍵を用いて抽出したダイジェストと生成した照合用ダイジェストとを照合する(ステップS43)。具体的には、抽出した公開鍵を用いて、ダイジェストを復号化し、復号化したダイジェストと照合用ダイジェストが一致するかどうかを判断する。
【0083】
次に、端末2の出力部は、復号化したダイジェストと照合ダイジェストが一致するかどうかを判断した結果を、署名検証結果として出力する(ステップS44)。出力方法としては、端末2のWebブラウザに表示してもよいし、文書検証システム1のユーザーが認知できるように、他の方法によって出力してもよい。
【0084】
尚、署名データに署名時刻のタイムスタンプが含まれている場合は、上述のステップS43で、端末2の改ざん検証部21は、署名時刻のタイムスタンプが示す時刻以前に電子文書100が存在し、その時刻以降は文書が改ざんされていないことを検証してもよい。また、改ざん検証部21は、署名時刻のタイムスタンプに基づいて、電子文書100の署名検証の有効期限を検証してもよい。これらの検証結果を、上述のステップS44で署名検証結果として出力してもよい。
【0085】
以上が、改ざん検証処理である。
【0086】
文書検証システム1によれば、電子文書からの証明書の検証に必要なデータの抽出と、電子文書の改ざん検証をクライアント側で行うことができることから、ユーザーは、電子文書に含まれる証明書の検証に必要なデータのみをアップロードするだけで電子文書の署名検証を行うことができる。
【0087】
また、文書検証システム1によれば、電子文書からの証明書の検証に必要なデータの抽出と、電子文書の改ざん検証をサーバ側で行う必要がないことから、これらの機能を実現するWeb API等に用いるデバイスやリソースを省略することが可能となる。
【0088】
また、文書検証システム1によれば、機密性の高い平文を含む電子文書全体を検証サービスサーバにアップロードする必要がないことから、サーバ側では、アップロードされた電子文書を確実に削除することによって、電子文書の漏洩等のセキュリティリスクを回避するための電子文書管理が必要ではないことから、セキュリティリスク観点で、電子文書全体をアップロードすることに難色を示すユーザーが、安心して電子文書の署名検証を行うことが可能となる。
【0089】
また、文書検証システム1によれば、サーバで動作するモジュールはWEB APIの代わりにWebコンポーネントで構成した場合、Webブラウザで動作するカスタム要素が再利用可能となることから、サーバで動作するモジュールが行う処理を端末で行うことができ、サーバにかかる負担を減らすことが可能となる。
【0090】
なお、文書検証システム1の端末2に用いるWebブラウザは、WebAssembly(WASM)によって、プログラムを実行するアセンブラを実行可能なものであることから、端末にWebブラウザをインストールするだけで、電子文書の署名検証を行うことができ、ユーザーが専用のアプリケーションを端末にインストールする手間を省くことが可能となる。
【0091】
また、文書検証システム1によれば、信頼済み証明書に基づいて、電子文書に含まれる公開鍵証明書が、信頼された公開鍵証明書認証局または認証局(Certification Authority(CA))から発行されていることを検証することが可能となる。
【0092】
また、文書検証システム1によれば、発行元の公開鍵証明書認証局または認証局(Certification Authority(CA))が公開する失効リストに基づいて、当該認証局から、公開鍵証明書が失効されていないかを検証することが可能となる。
【0093】
また、文書検証システム1によれば、公開鍵証明書を検証するタイミングが、公開鍵証明書に設定された有効期間内であるかどうかを検証することが可能となる。
【0094】
上述した手段、機能は、端末(CPU、情報処理装置、各種端末を含む)が、所定のプログラムを読み込んで、実行することによって実現される。プログラムは、例えば、単数又は複数の端末からネットワーク経由で提供される(クラウドサービス、SaaS:ソフトウェア・アズ・ア・サービス)形態で提供される。また、プログラムは、例えば、端末読取可能な記録媒体に記録された形態で提供される。この場合、端末はその記録媒体からプログラムを読み取って内部記録装置又は外部記録装置に転送し記録して実行する。また、そのプログラムを、例えば、磁気ディスク、光ディスク、光磁気ディスク等の記録装置(記録媒体)に予め記録しておき、その記録装置から通信回線を介して端末に提供するようにしてもよい。
【0095】
以上、本発明の実施形態について説明したが、本発明は上述したこれらの実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【符号の説明】
【0096】
1 文書検証システム、2 端末、3 サーバ、20 抽出部、21 改ざん検証部、30 証明書検証部、31 モジュール割当部、200 証明書データ、210 公開鍵証明書、220 失効リスト、230 検証時刻、300 信頼済み証明書、400 モジュール
【要約】
【課題】これらの課題に鑑み、ユーザーが電子文書全体をサーバ側にアップロードすることなく、電子文書の署名検証を行う。
【解決手段】
電子文書の署名検証を行う文書検証システムは、サーバが、所定のモジュールを端末に割り当てる割当部を備え、前記端末が、割り当てられた前記モジュールを動作させて、前記電子文書に基づいて証明書データを抽出する抽出部を備え、前記サーバが、抽出された前記証明書データを検証する証明書検証部を備え、前記端末が、割り当てられた前記モジュールを動作させて、前記電子文書の改ざんを検証する改ざん検証部を備える。
【選択図】図1
図1
図2
図3
図4
図5
図6