(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024171583
(43)【公開日】2024-12-12
(54)【発明の名称】改ざん防止装置、サーバ装置、改ざん防止方法、プログラム及び記録媒体
(51)【国際特許分類】
G06F 21/64 20130101AFI20241205BHJP
H04L 9/32 20060101ALI20241205BHJP
【FI】
G06F21/64
H04L9/32 200D
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023088665
(22)【出願日】2023-05-30
(71)【出願人】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(74)【代理人】
【識別番号】100115255
【弁理士】
【氏名又は名称】辻丸 光一郎
(74)【代理人】
【識別番号】100201732
【弁理士】
【氏名又は名称】松縄 正登
(74)【代理人】
【識別番号】100154081
【弁理士】
【氏名又は名称】伊佐治 創
(74)【代理人】
【識別番号】100227019
【弁理士】
【氏名又は名称】安 修央
(72)【発明者】
【氏名】石田 州裕
(72)【発明者】
【氏名】丸山 若菜
(72)【発明者】
【氏名】佐野 雄気
(72)【発明者】
【氏名】山上 辰典
(72)【発明者】
【氏名】佐々木 俊介
(57)【要約】
【課題】 データの改ざんを防止できる改ざん防止装置を提供する。
【解決手段】 本開示の改ざん防止装置は、ハッシュ算出部、真正性担保用情報取得部、及び改ざん防止用情報記録部を含み、
前記ハッシュ算出部は、データベースの情報に基づいてハッシュ値を算出し、
前記真正性担保用情報取得部は、前記ハッシュ値に対する真正性担保用情報を取得し、
前記改ざん防止用情報記録部は、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ハッシュ算出部、真正性担保用情報取得部、及び改ざん防止用情報記録部を含み、
前記ハッシュ算出部は、データベースの情報に基づいてハッシュ値を算出し、
前記真正性担保用情報取得部は、前記ハッシュ値に対する真正性担保用情報を取得し、
前記改ざん防止用情報記録部は、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録する、改ざん防止装置。
【請求項2】
前記真正性担保用情報取得部は、前記真正性担保用情報として、前記ハッシュ値に対するタイムスタンプトークンを取得し、
前記改ざん防止用情報記録部は、前記ハッシュ値と前記ハッシュ値に対するタイムスタンプトークンとを紐づけて記録する、請求項1記載の改ざん防止装置。
【請求項3】
前記真正性担保用情報取得部は、前記真正性担保用情報として、前記ハッシュ値が秘密鍵により暗号化された暗号化データを取得し、
前記改ざん防止用情報記録部は、前記ハッシュ値と前記暗号化データとを紐づけて記録する、請求項1または2記載の改ざん防止装置。
【請求項4】
前記真正性担保用情報取得部は、前記データベースの更新者と対応する秘密鍵により暗号化された暗号化データを取得し、
前記改ざん防止用情報記録部は、前記ハッシュ値と、前記暗号化データと、前記更新者を識別する更新者識別情報とを紐づけて記録する、請求項1または2記載の改ざん防止装置。
【請求項5】
検証用ハッシュ算出部、検証部を含み、
前記検証用ハッシュ算出部は、改ざん検知対象データベースの情報に基づいて検証用ハッシュ値を算出し、
前記検証部は、前記検証用ハッシュ値と、前記改ざん防止用情報とが整合するか否かを検証する、請求項1または2記載の改ざん防止装置。
【請求項6】
前記真正性担保用情報が、タイムスタンプトークンを含む場合、
前記検証部は、前記検証用ハッシュ値と、前記タイムスタンプトークンを構成するハッシュ値とが整合するか否かを検証し、且つ、前記改ざん検知対象データベースの更新日時と前記タイムスタンプトークンを構成するタイムスタンプサーバ日時との差が所定範囲内であるか否かを検証する、請求項5記載の改ざん防止装置。
【請求項7】
前記真正性担保用情報が、前記ハッシュ値が秘密鍵により暗号化された暗号化データを含む場合、
前記検証部は、前記暗号化データを、前記秘密鍵に対応する公開鍵で復号した復号ハッシュ値を生成し、前記検証用ハッシュ値と前記復号ハッシュ値とが整合するか否かを検証する、請求項5記載の改ざん防止装置。
【請求項8】
請求項1または2に記載の改ざん防止装置を含む、サーバ装置。
【請求項9】
ハッシュ算出工程、真正性担保用情報取得工程、及び改ざん防止用情報記録工程を含み、
前記ハッシュ算出工程は、データベースの情報に基づいてハッシュ値を算出し、
前記真正性担保用情報取得工程は、前記ハッシュ値に対する真正性担保用情報を取得し、
前記改ざん防止用情報記録工程は、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録する、改ざん防止方法。
【請求項10】
ハッシュ算出手順、真正性担保用情報取得手順、及び改ざん防止用情報記録手順を含み、
前記ハッシュ算出手順は、データベースの情報に基づいてハッシュ値を算出し、
前記真正性担保用情報取得手順は、前記ハッシュ値に対する真正性担保用情報を取得し、
前記改ざん防止用情報記録手順は、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録し、
前記各手順を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、改ざん防止装置、サーバ装置、改ざん防止方法、プログラム及び記録媒体に関する。
【背景技術】
【0002】
企業の業務システムにおいて、業務アプリケーションが生成する業務データは、記録媒体に記録され、管理される。例えば、特許文献1には、業務データ等のデータを管理するための複数のストレージ装置を含むデータ管理システムが記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1のシステムは、業務データのバックアップを取ることは可能であるが、業務データ自体、またはバックアップデータの改ざんは防止できず、改ざんを受けた場合に検知することもできない。
【0005】
そこで本開示は、データの改ざんを防止できる改ざん防止装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
前記目的を達成するために、本開示の改ざん防止装置は、
ハッシュ算出部、真正性担保用情報取得部、及び改ざん防止用情報記録部を含み、
前記ハッシュ算出部は、データベースの情報に基づいてハッシュ値を算出し、
前記真正性担保用情報取得部は、前記ハッシュ値に対する真正性担保用情報を取得し、
前記改ざん防止用情報記録部は、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録する。
【0007】
本開示のサーバ装置は、前記本開示の改ざん防止装置を含む。
【0008】
本開示の改ざん防止方法は、
ハッシュ算出工程、真正性担保用情報取得工程、及び改ざん防止用情報記録工程を含み、
前記ハッシュ算出工程は、データベースの情報に基づいてハッシュ値を算出し、
前記真正性担保用情報取得工程は、前記ハッシュ値に対する真正性担保用情報を取得し、
前記改ざん防止用情報記録工程は、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録する。
【0009】
本開示のプログラムは、
ハッシュ算出手順、真正性担保用情報取得手順、及び改ざん防止用情報記録手順を含み、
前記ハッシュ算出手順は、データベースの情報に基づいてハッシュ値を算出し、
前記真正性担保用情報取得手順は、前記ハッシュ値に対する真正性担保用情報を取得し、
前記改ざん防止用情報記録手順は、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録し、
前記各手順を、コンピュータに実行させるためのプログラムである。
【0010】
本開示の記録媒体は、
ハッシュ算出手順、真正性担保用情報取得手順、及び改ざん防止用情報記録手順を含み、
前記ハッシュ算出手順は、データベースの情報に基づいてハッシュ値を算出し、
前記真正性担保用情報取得手順は、前記ハッシュ値に対する真正性担保用情報を取得し、
前記改ざん防止用情報記録手順は、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録し、
前記各手順を、コンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【0011】
本開示によれば、データの改ざんを防止できる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、本開示の第1の改ざん防止装置の一例の構成を示すブロック図である。
【
図2】
図2は、本開示の第1の改ざん防止装置のハードウェア構成の一例を示すブロック図である。
【
図3】
図3は、本開示の第1改ざん防止装置における処理の一例を示すフローチャートである。
【
図4】
図4は、本開示の第2の改ざん防止装置の一例の構成を示すブロック図である。
【
図5】
図5は、本開示の第2改ざん防止装置における処理の一例を示すフローチャートである。
【
図6】
図6は、本開示の改ざん防止装置の利用例を説明するための模式図である。
【
図7】
図7は、本開示の改ざん防止装置の利用例を説明するための模式図である。
【
図8】
図8は、本開示の改ざん防止装置の利用例を説明するための模式図である。
【
図9】
図9は、本開示の改ざん防止装置の利用例を説明するための模式図である。
【発明を実施するための形態】
【0013】
次に、本開示の実施形態について図を用いて説明する。本開示は、以下の実施形態には限定されない。以下の各図において、同一部分には、同一符号を付している。また、各実施形態の説明は、特に言及がない限り、互いの説明を援用でき、各実施形態の構成は、特に言及がない限り、組合せ可能である。
【0014】
[実施形態1]
本実施形態では、本開示の第1の改ざん防止装置について
図1を用いて説明する。
図1は、本実施形態の改ざん防止装置10の一例の構成を示すブロック図である。
図1に示すように、改ざん防止装置10(以下、「本装置10」ともいう)は、ハッシュ算出部11、真正性担保用情報取得部12、及び改ざん防止用情報記録部13を含む。また、図示していないが、本装置10は、例えば、取得部、記憶部、入力部、及び出力部を含んでもよい。
【0015】
本装置10は、例えば、前記各部を含む1つの装置でもよいし、前記各部が、通信回線網を介して接続可能な装置でもよい。また、本装置10は、通信回線網を介して、後述する外部装置と接続可能である。通信回線網は、特に制限されず、公知のネットワークを使用でき、例えば、有線でも無線でもよい。通信回線網は、例えば、インターネット回線、WWW(World Wide Web)、電話回線、LAN(Local Area Network)、SAN(Storage Area Network)、DTN(Delay Tolerant Networking)、LPWA(Low Power Wide Area)、L5G(ローカル5G)、等があげられる。無線通信としては、例えば、Wi-Fi(登録商標)、Bluetooth(登録商標)、ローカル5G、LPWA等が挙げられる。前記無線通信としては、各装置が直接通信する形態(Ad Hoc通信)、インフラストラクチャ(infrastructure通信)、アクセスポイントを介した間接通信等であってもよい。本装置10は、例えば、システムとしてサーバに組み込まれていてもよい。また、本装置10は、例えば、本開示のプログラムがインストールされたパーソナルコンピュータ(PC、例えば、デスクトップ型、ノート型)、スマートフォン、タブレット端末等であってもよい。本装置10は、対象物を撮像可能な撮像端末(例えば、カメラ付きのスマートフォン、タブレット端末等)であってもよいし、前記撮像端末と通信可能な装置であってもよい。さらに、本装置10は、例えば、前記各部のうち少なくとも一つがサーバ上にあり、その他の前記各部が端末上にあるような、クラウドコンピューティングやエッジコンピューティング等の形態であってもよい。
【0016】
図2に、本装置10のハードウェア構成のブロック図を例示する。本装置10は、例えば、中央処理装置(CPU、GPU等)101、メモリ102、バス103、記憶装置104、入力装置105、出力装置106、通信デバイス107等を含む。本装置10の各部は、それぞれのインタフェース(I/F)により、バス103を介して相互に接続されている。
【0017】
中央処理装置101は、コントローラ(システムコントローラ、I/Oコントローラ等)等により、他の構成と連携動作し、本装置10の全体の制御を担う。本装置10において、中央処理装置101により、例えば、本開示のプログラムやその他のプログラムが実行され、また、各種情報の読み込みや書き込みが行われる。具体的には、例えば、中央処理装置101が、ハッシュ算出部11、真正性担保用情報取得部12、及び改ざん防止用情報記録部13として機能する。また、本装置10が前記取得部、前記出力部を含む場合、中央処理装置101は、前記取得部、前記出力部として機能してもよい。本装置10は、演算装置として、CPU、GPU(Graphics Processing Unit)、APU(Accelerated Processing Unit)等の他の演算装置を備えてもよいし、これらの組合せを備えてもよい。
【0018】
バス103は、例えば、外部装置とも接続できる。前記外部装置は、例えば、外部記憶装置(外部データベース等)、プリンタ、外部入力装置、外部表示装置、スピーカ等の音声出力装置、カメラ等の外部撮像装置、ビーコン、ならびに加速度センサ、地磁気センサ、方向センサ、赤外線センサ、動体センサ、および位置センサ等の各種センサ等があげられる。本装置10は、例えば、バス103に接続された通信デバイス107により、外部ネットワーク(前記通信回線網)に接続でき、外部ネットワークを介して、ユーザの端末等の他の装置と接続することもできる。
【0019】
メモリ102は、例えば、メインメモリ(主記憶装置)が挙げられる。中央処理装置101が処理を行う際には、例えば、後述する記憶装置104に記憶されている本開示のプログラム等の種々の動作プログラムを、メモリ102が読み込み、中央処理装置101は、メモリ102からデータを受け取って、プログラムを実行する。前記メインメモリは、例えば、RAM(ランダムアクセスメモリ)である。また、メモリ102は、例えば、ROM(読み出し専用メモリ)であってもよい。
【0020】
記憶装置104は、例えば、前記メインメモリ(主記憶装置)に対して、いわゆる補助記憶装置ともいう。前述のように、記憶装置104には、本開示のプログラムを含む動作プログラムが格納されている。記憶装置104は、例えば、記録媒体と、記録媒体に読み書きするドライブとの組合せであってもよい。前記記録媒体は、特に制限されず、例えば、内蔵型でも外付け型でもよく、HD(ハードディスク)、CD-ROM、CD-R、CD-RW、MO、DVD、フラッシュメモリー、メモリーカード等が挙げられる。記憶装置104は、例えば、記録媒体とドライブとが一体化されたハードディスクドライブ(HDD)、及びソリッドステートドライブ(SSD)であってもよい。本装置10が、例えば、前記記憶部を含む場合、記憶装置104が前記記憶部として機能する。記憶装置104は、例えば、データベースの情報、ハッシュ値、真正性担保用情報、改ざん防止用情報等を記憶してもよい。
【0021】
本装置10において、メモリ102及び記憶装置104は、ログ情報、外部データベース(図示せず)や外部の装置から取得した情報、本装置10によって生成した情報、本装置10が処理を実行する際に用いる情報等の種々の情報を記憶することも可能である。なお、少なくとも一部の情報は、例えば、メモリ102及び記憶装置104以外の外部サーバに記憶されていてもよいし、複数の端末にブロックチェーン技術等を用いて分散して記憶されていてもよい。
【0022】
本装置10は、例えば、さらに、入力装置105、出力装置106を備える。入力装置105は、例えば、タッチパネル、トラックパッド、マウス等のポインティングデバイス;キーボード;カメラ、スキャナ等の撮像手段;ICカードリーダ、磁気カードリーダ等のカードリーダ;マイク等の音声入力手段;等があげられる。出力装置106は、例えば、LEDディスプレイ、液晶ディスプレイ等の表示装置;スピーカ等の音声出力装置;プリンタ;等があげられる。本実施形態1において、入力装置105と出力装置106とは、別個に構成されているが、入力装置105と出力装置106とは、タッチパネルディスプレイのように、一体として構成されてもよい。
【0023】
つぎに、本実施形態の改ざん防止方法の一例を、
図3のフローチャートに基づき説明する。本実施形態の改ざん防止方法は、例えば、
図1から
図2に示す改ざん防止装置10を用いて、次のように実施する。なお、本実施形態の改ざん防止方法は、
図1から
図2の改ざん防止装置10の使用には限定されない。
【0024】
本装置10は、例えば、各部の処理に先立って、前記取得部により、データベースの情報を取得してもよい。前記データベースの種類は、特に制限されず、例えば、階層型データベースでもよいし、リレーショナル型データベースでもよいしNoSQL型データベースでもよいし、ネットワーク型データベースでもよい。また、前記データベースは、例えば、分散型データベースであってもよい。前記リレーショナル型データベースの情報が含む列は、1列でもよいし、2列以上の複数でもよい。前記リレーショナル型データベースの情報が含む行は、例えば、1行でもよいし、2行以上の複数でもよい。前記データベースが階層型データベースまたはネットワーク型データベースである場合、前記データベースが含むノードは、例えば、1つでもよいし、2以上の複数でもよい。前記データベースの情報の種類は、特に制限されず、例えば、任意の種類のデータベースに記録された情報があげられる。前記データベースの情報の具体例としては、例えば、業務データがあげられる。前記業務データは、特に制限されず、例えば、業務処理実行アプリケーションが取り扱い、記録しているデータがあげられる。前記取得部は、例えば、バス103を介して接続された通信デバイス107により、本装置10外部のデバイスから前記データベースの情報を取得できる。前記外部のデバイスは、例えば、前記データベースの情報を記憶した外部サーバである。また、前記取得部は、例えば、本装置10のメモリ102または記憶装置104等の記憶部に記憶されたデータベースの情報を取得してもよい。この場合、本装置10は、例えば、サーバ装置(データベースサーバ)であるということもできる。前記取得部は、例えば、前記データベースの情報について、前記データベースの行ごとに取得してもよい。この場合、前記取得部は、前記行の識別情報(例えば、ID)を合わせて取得してもよい。また、前記取得部は、例えば、前記データベースの情報を更新した更新者の情報を併せて取得してもよい。前記更新者の情報は、例えば、前記更新者を特定する更新者識別情報があげられる。前記更新者識別情報は、例えば、前記更新者を識別可能な情報であれば特に制限されない。前記更新者識別情報は、例えば、氏名または名称、ニックネーム、年齢、住所、電話番号、メールアドレス、ID、パスワード等の更新者自身の情報でもよいし、更新者の端末の情報であってもよい。前記更新者の端末の情報は、例えば、電話番号、メールアドレス、ID、パスワード、IPアドレス、MACアドレス、端末の機器固有情報(端末のシリアルナンバー、国際移動体装置識別番号(International Mobile Equipment Identifier)等の識別番号)等の情報があげられる。
【0025】
ハッシュ算出部11は、データベースの情報に基づいてハッシュ値を算出する(S1、ハッシュ算出工程)。ハッシュ算出部11は、例えば、ハッシュ関数を用いて前記データベースの情報からハッシュ値を算出できる。ハッシュ算出部11は、例えば、所定の集合データ毎に前記ハッシュ値を算出することが好ましい。具体例として、前記データベースがリレーショナル型データベース等の、データが行および列で構成されたデータベースである場合、ハッシュ算出部11は、例えば、前記データベースの情報を少なくとも一つの行ごとに合成した合成値を算出し、前記合成値に基づいて、前記少なくとも一つの行ごとのハッシュ値を算出してもよい。この場合、ハッシュ算出部11は、例えば、前記ハッシュ関数を用いて、前記合成値に基づいて前記行ごとのハッシュ値を算出する。なお、本開示はこれには限定されず、例えば、前記データベースが階層型データベースまたはネットワーク型データベース等の、データがノードにより構成されたデータベースである場合、ハッシュ算出部11は、例えば、ノード毎にデータから前記ハッシュ値を算出できる。また、この場合、ハッシュ算出部11は、例えば、複数のノードが含むデータの合成値を算出し、前記合成値に基づいて前記ハッシュ値を算出してもよい。
【0026】
また、ハッシュ算出部11は、例えば、前記データベースの情報にソルト値を付与し、前記ソルト値が付与された情報に基づいてハッシュ値を算出してもよい。前記ソルト値は、特に制限されず、例えば、任意の値が使用できる。この場合、ハッシュ算出部11は、例えば、前記データベースの情報または前記合成値に、ランダムな文字列(ソルト)を不可し、前記データベースの情報または前記合成値に前記ソルトが結合された情報に基づいてハッシュ値を算出できる。前記ソルト値は、例えば、固定の文字列でもよいし、都度異なる文字列でもよく、後者の場合、ユーザ毎に異なる文字列であることが好ましい。ハッシュ算出部が前記データベースの情報にソルト値を付与することにより、例えば、レインボーテーブル攻撃を回避することができるため、より効果的に改ざんを抑制できる。
【0027】
ハッシュ算出部11の処理のタイミングは、特に制限されず、任意のタイミングで実行できるが、例えば、前記データベースの更新毎に前記ハッシュ値の算出を行うことが好ましい。これにより、前記データベースの情報が更新されるたびに本装置10による改ざん防止用情報が記録できるため、より確実にデータの改ざんを防止できる。
【0028】
真正性担保用情報取得部12は、前記ハッシュ値に対する真正性担保用情報を取得する(S2、真正性担保用情報取得工程)。真正性担保用情報取得部12は、例えば、前記少なくとも一つの行ごとのハッシュ値に対する真正性担保用情報を取得する。前記真正性担保用情報は、例えば、タイムスタンプトークン、または、前記ハッシュ値が秘密鍵により暗号化された暗号化データの少なくとも一方を含み、前記タイムスタンプトークンと前記暗号化データの双方を含むことが好ましい。
【0029】
前記真正性担保用情報が、タイムスタンプトークンを含む場合、真正性担保用情報取得部12は、例えば、前記真正性担保用情報として、前記ハッシュ値に対するタイムスタンプトークンを取得できる。真正性担保用情報取得部12は、例えば、本装置10により生成したタイムスタンプトークン(ローカルタイムスタンプ)を取得してもよいし、本装置10外の装置が生成したタイムスタンプトークン(例えば、インターネット上のタイムスタンプ認証局が生成したタイムスタンプトークン)を取得してもよい。前者の場合、真正性担保用情報取得部12は、例えば、公知のローカルタイムスタンプ発行方法を用いて前記真正性担保用情報(タイムスタンプトークン)を取得できる。前記公知のローカルタイムスタンプ発行方法としては、一例として、例えば、特開2023-064977号公報等に記載の方法が採用できる。後者の場合、真正性担保用情報取得部12は、例えば、前記ハッシュ値をタイムスタンプ認証局(タイムスタンプサーバ)に送付する。前記タイムスタンプサーバは、例えば、本装置10から取得した前記ハッシュ値と前記タイムスタンプサーバの時刻情報(タイムスタンプ付与時刻、受付時刻ともいう)とを対象に、秘密鍵を用いて電子署名してタイムスタンプトークンを生成する。そして、前記タイムスタンプサーバは、前記タイムスタンプトークンと、前記秘密鍵に対応する公開鍵とを本装置10に出力する。前記公開鍵は、例えば、電子証明書に含まれていてもよい。そして、真正性担保用情報取得部12は、前記タイムスタンプサーバから前記タイムスタンプトークンと前記公開鍵とを取得できる。また、前記タイムスタンプサーバは、例えば、発行したタイムスタンプトークンと本装置10により送付されたハッシュ値とを紐づけて記録し、タイムスタンプ台帳を作成してもよい。
【0030】
前記真正性担保用情報が、前記暗号化データを含む場合、真正性担保用情報取得部12は、例えば、前記真正性担保用情報として、前記ハッシュ値が秘密鍵により暗号化された暗号化データを取得できる。真正性担保用情報取得部12は、例えば、前記データベースの更新者と対応する秘密鍵により暗号化された暗号化データを取得してもよい。この場合、真正性担保用情報取得部12は、例えば、前記データベースの情報と紐づけて取得した更新者識別情報により更新者を特定する。そして、真正性担保用情報取得部12は、例えば、特定した更新者と対応する秘密鍵により暗号化された暗号化データを取得できる。
【0031】
前記真正性担保用情報が前記暗号化データを含む場合の処理の一例について説明する。まず、真正性担保用情報取得部12の処理に先立って、ユーザ(例えば、データベースの更新者)が所有する暗号化データ生成端末に対して、ユーザ毎の公開鍵と秘密鍵とのキーペアを発行する。前記キーペアの発行は、本装置10が実行してもよいし、別途鍵管理サーバが実行してもよい。そして、本装置10または前記鍵管理サーバは、発行した前記キーペアのうち、少なくとも秘密鍵を前記暗号化データ生成端末に送信する。本装置10または前記鍵管理サーバは、発行したキーペアのうち、前記公開鍵を、ユーザの識別情報と紐づけて記憶し、秘密鍵は管理せず破棄する。前記公開鍵には、例えば、有効期間が併せて紐づけられていてもよい。つぎに、真正性担保用情報取得部12は、例えば、前記暗号化データ生成端末に前記ハッシュ値を送信する。前記暗号化データ生成端末は、予め、前記ユーザ(例えば、前記データベースの更新者)毎の秘密鍵を用いて、受信したハッシュ値を暗号化し、前記暗号化データを生成する。つぎに、前記暗号化データ生成端末は、本装置10に生成した前記暗号化データと、前記更新者識別情報とを送信する。また、前記暗号化データ生成端末は、例えば、前記暗号化データをデジタル署名として前記ハッシュ値に付与し、前記デジタル署名が付与された前記ハッシュ値を本装置10に送信してもよい。真正性担保用情報取得部12は、例えば、前記暗号化データ生成端末から前記暗号化データと前記更新者識別情報とを取得できる。
【0032】
改ざん防止用情報記録部13は、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録する(S3、改ざん防止用情報記録工程)。改ざん防止用情報記録部13は、例えば、前記データベースの少なくとも一つの行ごとに、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録する。前記改ざん防止用情報記録部は、前記データベースの更新時刻をさらに紐づけて改ざん防止用情報として記録してもよい。前記真正性担保用情報が、タイムスタンプトークンを含む場合、改ざん防止用情報記録部12は、例えば、前記ハッシュ値と前記ハッシュ値に対するタイムスタンプトークンとを紐づけて記録できる。前記真正性担保用情報が、前記暗号化データを含む場合、改ざん防止用情報記録部13は、例えば、前記ハッシュ値と前記暗号化データとを紐づけて記録できる。また、改ざん防止用情報記録部13は、例えば、前記ハッシュ値と、前記暗号化データと、前記更新者識別情報とを紐づけて記録してもよい。また、改ざん防止用情報記録部13は、例えば、前記データベースの更新日時をさらに紐づけて記録してもよい。改ざん防止用情報記録部13は、例えば、本装置10の記憶装置104に前記改ざん防止用情報を記録してもよいし、本装置10外の記録媒体に前記改ざん防止用情報を記録してもよい。
【0033】
改ざん防止装置10は、ハッシュ算出部11によりデータベースの情報に基づいてハッシュ値を算出し、真正性担保用情報取得部12は、前記ハッシュ値に対する真正性担保用情報を取得し、改ざん防止用情報記録部13は、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録できる。このため、改ざん防止装置10によれば、例えば、データベースの情報の真正性を担保でき、データの改ざんを防止できる。前記改ざん防止用情報として、前記タイムスタンプトークンを含む場合、前記ハッシュ値のもととなったデータベースの情報が前記タイムスタンプトークンの発行時刻に存在したことを証明できる。前記暗号化データは、例えば、前記ユーザ(データベースの更新者)毎のデジタル署名が付与されたデータであるため、前記改ざん防止用情報が前記暗号化データを含む場合、記録されたデータが、間違いなく更新者により更新されたこと(本人性)を担保することが可能になる。
【0034】
[実施形態2]
実施形態2は、本開示の第2の改ざん防止装置の例である。
【0035】
図4は、記録データ改ざん防止装置10Aの一例の構成を示すブロック図である。
図4に示すように、記録データ改ざん防止装置10Aは、実施形態1の記録データ改ざん防止装置10の構成に加えて、検証用ハッシュ算出部14、検証部15、改ざん通知部16を含む。記録データ改ざん防止装置10Aのハードウェア構成は、
図2の記録データ改ざん防止装置10のハードウェア構成において、中央処理装置101が、
図1の記録データ改ざん防止装置10の構成に代えて、
図4の記録データ改ざん防止装置10Aの構成を備える以外は同様である。以下、検証用ハッシュ算出部14、検証部15、改ざん通知部16の処理を説明する。検証用ハッシュ算出部14、検証部15、改ざん通知部16の処理は、例えば、前記実施形態1で説明した
図3のフローチャートにおける任意の位置に適宜挿入できるが、
図5に示すように、S3の後に挿入されることが好ましい。
【0036】
検証用ハッシュ算出部14は、改ざん検知対象データベースの情報に基づいて検証用ハッシュ値を算出する(S4、検証用ハッシュ算出工程)。前記改ざん検知対象データベースは、例えば、前記実施形態1のS1においてハッシュ算出部11がハッシュ値を算出した前記データベースの情報である。検証用ハッシュ算出部14は、例えば、前記実施形態1のS1と同様にして実施できる。S1において、ハッシュ算出部11が前記データベースの情報にソルト値を付与している場合、検証用ハッシュ算出部14は、例えば、前記S1において付与されたソルト値と同値のソルト値を前記改ざん検知対象データベースの情報に付与して検証用ハッシュ値を算出できる。
【0037】
検証部15は、前記検証用ハッシュ値と、前記改ざん防止用情報とが整合するか否かを検証する(S5、検証工程)。検証部15は、例えば、前記検証用ハッシュ値と、前記改ざん防止用情報とが整合する場合(S5、Yes)、改ざんの可能性がない(または可能性が低い)と判定し、本装置10Aによる処理を終了してもよい(END)。検証部15は、例えば、前記検証用ハッシュ値と前記改ざん防止用情報とが整合しない場合(S5、No)、改ざんの可能性ありと判定し、本装置10Aは、後述する改ざん通知部16による処理を実行できる。
【0038】
検証部15による処理の一例について、さらに具体的に説明する。
【0039】
検証部15は、例えば、前記検証用ハッシュ値と、前記改ざん防止用情報が含む前記ハッシュ値とが整合するか否かを検証できる(ハッシュ検証工程)。前記ハッシュ検証は、例えば、前記ハッシュ値と前記検証用ハッシュ値との値が一致するか否かを検証する工程である。ハッシュ検証工程によれば、記録されたハッシュ値と検証用ハッシュ値が整合するか否かを検証できるため、例えば、前記改ざん検知対象データベースの情報(例えば、業務データ)自体が改ざんを受けた場合に、改ざんを検知できる。
【0040】
また、検証部15は、例えば、前記検証用ハッシュ値と、前記改ざん防止用情報が含む前記真正性担保用情報とが整合するか否かを検証してもよい。
【0041】
前記真正性担保用情報が、前記ハッシュ値が秘密鍵により暗号化された暗号化データを含む場合、検証部15は、例えば、前記暗号化データを、前記秘密鍵に対応する公開鍵で復号した復号ハッシュ値を生成し、前記検証用ハッシュ値と前記復号ハッシュ値とが整合するか否かを検証できる(暗号化データ検証工程)。また、前記真正性担保用情報が、前記データベースの更新者と対応する秘密鍵により暗号化された暗号化データを含む場合、検証部15は、まず、前記検証用データベースの情報と紐づけて取得した前記更新者識別情報により、前記検証データベースを更新した更新者を特定する。つぎに、検証部15は、前記更新者識別情報と対応する公開鍵を、例えば、本装置10Aの記憶装置104または前記鍵管理サーバから取得する。そして、検証部15は、例えば、取得した前記公開鍵を用いて、前記暗号化データを復号した復号ハッシュ値を生成し、前記検証用ハッシュ値と前記復号ハッシュ値とが整合するか否かを検証できる。
【0042】
前記真正性担保用情報が、タイムスタンプトークンを含む場合、検証部15は、例えば、前記検証用ハッシュ値と、前記タイムスタンプトークンを構成するハッシュ値とが整合するか否かを検証できる(タイムスタンプ検証工程)。前記タイムスタンプ検証工程は、例えば、公知のタイムスタンプ検証方法を用いて実行できる。検証部15は、例えば、前記タイムスタンプトークンを取得したタイムスタンプサーバの公開鍵を用いて前記タイムスタンプトークンが含むハッシュ値を復号して復号ハッシュ値を生成し、前記検証用ハッシュ値と前記復号ハッシュ値とが整合するか否かを検証することにより、前記タイムスタンプ検証工程を実行できる。前記公開鍵は、例えば、本装置10Aが保存していてもよいし、本装置10A外の記憶装置(例えば、前記タイムスタンプサーバ)が保存していてもよい。前記タイムスタンプ検証工程において、検証部15は、例えば、さらに、前記改ざん検知対象データベースの更新日時と前記タイムスタンプトークンを構成するタイムスタンプサーバ日時との差が所定範囲内であるか否かを検証してもよい。この場合、検証部15は、例えば、前記タイムスタンプサーバの公開鍵を用いて前記タイムスタンプトークンが含むタイムスタンプサーバの日時を復号し、復号したタイムスタンプサーバの日時と前記更新日時との乖離が規定値未満であるか否かを検証できる。前記規定値は、特に制限されず、例えば、任意の値が設定できる。
【0043】
また、前記タイムスタンプ検証工程において、検証部15は、例えば、前記タイムスタンプサーバに前記検証用ハッシュ値が記録されているかを検証してもよい。この場合、検証部15は、例えば、前記検証用ハッシュ値と本装置10Aが記録しているタイムスタンプトークンとを前記タイムスタンプサーバに送付する。前記タイムスタンプサーバは、前記タイムスタンプ台帳から前記検証用ハッシュ値を検索し、前記検証用ハッシュ値が前記タイムスタンプ台帳に存在するか否かを判定する。前記タイムスタンプ台帳に前記検証用ハッシュ値と同値のハッシュ値が存在する場合、前記タイムスタンプサーバは、さらに、受信したタイムスタンプトークンと前記タイムスタンプ台帳に記録されたタイムスタンプトークンとが整合するかを判定する。そして、タイムスタンプサーバは、前記タイムスタンプ台帳に前記検証用ハッシュ値と同値のハッシュ値がない場合、または前記受信したタイムスタンプトークンと前記タイムスタンプ台帳に記録されたタイムスタンプトークンとが整合しない場合に、改ざん可能性ありと本装置10に通知してもよい。
【0044】
検証部15は、例えば、前記ハッシュ検証工程、前記暗号化データ検証工程、および前記タイムスタンプ検証工程のうち、少なくとも一つの工程を実行してもよいし、複数の工程を実行してもよい。後者の場合、検証部15は、全ての工程を実行してもよいし、一部の工程を実行してもよい。検証部15が複数の工程を実行する場合、その実行順序は、特に制限されず、例えば、任意の順序で実行できる。
【0045】
改ざん通知部16は、検証部15の検証結果に基づいて、前記改ざん検知対象データベースの改ざんの可能性を通知する(S6、改ざん通知工程)。改ざん通知部16は、例えば、前記検証用ハッシュ値と、前記改ざん防止情報とが整合しない場合(S5、No)に、前記改ざん検知対象データベースの改ざん可能性ありと通知できる。また、改ざん通知部16は、例えば、前記検証用ハッシュ値と、前記改ざん防止情報とが整合する場合(S5、Yes)に、前記改ざん検知対象データベースの改ざん可能性なしと通知してもよい。本装置10Aの出力装置(例えば、ディスプレイ)106に通知してもよいし、本装置10A外の装置に通知してもよい。前記装置は、例えば、前記改ざん検知対象データベース、前記更新者の端末等があげられる。前記更新者の端末は、例えば、前記暗号化データ生成端末でもよいし、他の端末でもよい。
【0046】
本装置10Aは、検証用ハッシュ算出部14により、改ざん検知対象データベースの情報に基づいて検証用ハッシュ値を算出し、検証部15により、前記検証用ハッシュ値と、前記改ざん防止用情報とが整合するか否かを検証し、改ざん通知部16により、検証部15の検証結果に基づいて、前記改ざん検知対象データベースの改ざんの可能性を通知できる。このため、本装置10Aによれば、改ざん検知対象データベースのデータを検証でき、改ざんを抑制できる。
【0047】
[実施形態3]
実施形態3は、改ざん防止装置10(10,10A)の利用例を説明する。以下の説明においては、前記データベースとして、業務データを記録した業務用データベースの改ざんを防止する場合を例に挙げて説明するが、本開示は以下の例示には何ら制限されない。また、以下の説明においては、説明の便宜上、前記真正性担保用情報がタイムスタンプトークンを含む場合と暗号化データを含む場合との処理を分けて記載するが、前述のように、本装置10は、例えば、前記真正性担保用情報がタイムスタンプトークンを含む場合と暗号化データを含む場合の処理の少なくとも一方を実行できればよく、いずれも実行可能であることが好ましい。
【0048】
まず、前記真正性担保用情報が、タイムスタンプトークンを含む場合について、
図6および
図7を用いて説明する。
【0049】
まず、改ざん防止用情報の記録について、
図6を用いて説明する。
図6の(1)に示すように、データベースの更新者により、業務用データベースの情報が更新される。改ざん防止装置10(以下、本装置10という)は、更新されたデータベースの情報(ID:111、内容:AAA事案、更新日付:2022/1/1)を行ごとに取得する。
【0050】
つぎに、本装置10のハッシュ算出部11は、前記データベースの行ごとの情報の合成値を算出する。そして、ハッシュ算出部11は、前記合成値にさらにソルト値を付与し、前記合成値とソルト値を合成したソルト合成値を算出する。そして、
図6の(2)に示すように、ハッシュ算出部11は、ハッシュ関数を用いて前記ソルト合成値からハッシュ値(OHSDIJHFI)を算出する。
【0051】
つぎに、
図6の(3)に示すように、真正性担保用情報取得部12は、タイムスタンプサーバに前記ハッシュ値を送信する。前記タイムスタンプサーバは、本装置10から受け取ったハッシュ値に対応するタイムスタンプトークン(HOIIIRHGDONHO)を発行し、本装置10に前記タイムスタンプトークンを送信する。また、タイムスタンプサーバは、前記ハッシュ値とタイムスタンプトークンとを紐づけて記録し、タイムスタンプ台帳を作成する。本装置10の真正性担保用情報取得部12は、前記タイムスタンプトークンを取得する。そして、改ざん防止用情報記録部13は、前記ハッシュ値(OHSDIJHFI)と、前記タイムスタンプトークン(HOIIIRHGDONHO)とを紐づけて改ざん防止用情報として記録する。これにより、本装置10は、業務データの改ざんを防止するための改ざん防止用情報を記録できる。
【0052】
つぎに、記録した改ざん防止用情報を用いた改ざん検知について、
図7を用いて説明する。本装置10Aは、
図7の(1)に示すように、改ざん検知対象となるデータベースを参照し、改ざん検知対象となるデータベースの情報を行ごとに取得する。
【0053】
つぎに、検証用ハッシュ算出部14は、前記データベースの行ごとの情報の合成値を算出する。そして、
図7の(2)に示すように、検証用ハッシュ算出部14は、前記合成値にさらにソルト値を付与し、前記合成値とソルト値を合成したソルト合成値を算出する。そして、検証用ハッシュ算出部14は、ハッシュ関数を用いて前記ソルト合成値から検証用ハッシュ値を算出する。
【0054】
つぎに、検証部15は、前記検証用ハッシュ値と、前記ハッシュ値とが整合するかどうかを検証する(ハッシュ検証工程)。ここで、前記検証用ハッシュ値と前記ハッシュ値とが整合しない場合、検証部15は、前記検証用データベースの情報に改ざんの可能性があると判定できる。この場合、改ざん通知部16は、前記改ざん検知対象データベースの改ざん可能性ありと通知する。
【0055】
つぎに、
図7の(3)に示すように、検証部15は、前記タイムスタンプサーバにアクセスし、前記タイムスタンプサーバのタイムスタンプ台帳に前記検証用ハッシュ値が記録されているかを検証する(タイムスタンプ検証工程)。ここで、前記タイムスタンプサーバのタイムスタンプ台帳に前記検証用ハッシュ値が記録されていない場合、検証部15は、前記検証用データベースの情報に改ざんの可能性があると判定できる。この場合、改ざん通知部16は、前記改ざん検知対象データベースの改ざん可能性ありと通知する。
【0056】
つぎに、
図7の(4)および(5)に示すように、検証部15は、前記タイムスタンプトークンを取得したタイムスタンプサーバの公開鍵を用いて前記タイムスタンプトークンが含むハッシュ値を復号して復号ハッシュ値を生成し、前記検証用ハッシュ値と前記復号ハッシュ値とが整合するか否かを検証する。また、同様に、検証部15は、前記タイムスタンプサーバの公開鍵を用いて前記タイムスタンプトークンが含むタイムスタンプサーバの日時を復号し、復号したタイムスタンプサーバの日時と前記更新日時との乖離が規定値未満であるか否かを検証する。
ここで、前記検証用ハッシュ値と前記復号ハッシュ値とが整合しない場合、および/または復号したタイムスタンプサーバの日時と前記更新日時との乖離が規定値を超える場合、検証部15は、前記検証用データベースの情報に改ざんの可能性があると判定できる。この場合、改ざん通知部16は、前記改ざん検知対象データベースの改ざん可能性ありと通知する。
【0057】
つぎに、前記真正性担保用情報が、暗号化データを含む場合について、
図8および
図9を用いて説明する。
【0058】
まず、事前準備として、
図8に示すように、鍵管理サーバは、ユーザ(データベースの更新者)が所有する暗号化データ生成端末に対して、ユーザ毎の公開鍵と秘密鍵とのキーペアを発行する。そして、前記鍵管理サーバは、発行した前記キーペアのうち、秘密鍵を前記暗号化データ生成端末に送信する。また、前記鍵管理サーバは、発行した前記キーペアのうち、前記公開鍵を、ユーザの識別情報と紐づけて記憶し、秘密鍵は管理せず破棄する。
【0059】
つぎに、
図8の(1)に示すように、データベースの更新者(ユーザA)により、業務用データベースの情報が更新される。本装置10は、更新されたデータベースの情報を行ごとに取得する(ID:111、内容:AAA事案、更新日付:2022/1/1)。また、本装置10は、前記データベースの情報と紐づけて、前記データベースを更新した更新者識別情報(更新者:Aさん)を併せて取得する。
【0060】
つぎに、本装置10のハッシュ算出部11は、前記データベースの行ごとの情報の合成値を算出する。そして、ハッシュ算出部11は、前記合成値にさらにソルト値を付与し、前記合成値とソルト値を合成したソルト合成値を算出する。そして、
図8の(2)に示すように、ハッシュ算出部11は、ハッシュ関数を用いて前記ソルト合成値からハッシュ値(OHSDIJHFI)を算出する。
【0061】
つぎに、
図8の(3)に示すように、真正性担保用情報取得部12は、前記更新者識別情報により特定した前記更新者の暗号化データ生成端末に、前記ハッシュ値を送信する。前記暗号化データ生成端末は、前記更新者毎の秘密鍵を用いて前記ハッシュ値を暗号化することにより、前記ハッシュ値にデジタル署名(HOIIIRHGDONHO)を行い、前記デジタル署名が付与された前記ハッシュ値を暗号化データとして本装置10に送信する。
本装置10の真正性担保用情報取得部12は、前記暗号化データを取得する。そして、改ざん防止用情報記録部13は、前記ハッシュ値と、前記暗号化データと、前記更新者識別情報とを紐づけて改ざん防止用情報として記録する。これにより、本装置10は、業務データの改ざんを防止するための改ざん防止用情報を記録できる。
【0062】
つぎに、記録した改ざん防止用情報を用いた改ざん検知について、
図9を用いて説明する。本装置10Aは、
図9の(1)に示すように、改ざん検知対象となるデータベースを参照し、改ざん検知対象となるデータベースの情報を行ごとに取得する。また、本装置10は、前記改ざん検知対象となるデータベースの情報と紐づけて、前記データベースを更新した更新者識別情報(更新者:Aさん)を併せて取得する。
【0063】
つぎに、検証用ハッシュ算出部14は、前記データベースの行ごとの情報の合成値を算出する。そして、
図9の(2)に示すように、検証用ハッシュ算出部14は、前記合成値にさらにソルト値を付与し、前記合成値とソルト値を合成したソルト合成値を算出する。そして、検証用ハッシュ算出部14は、ハッシュ関数を用いて前記ソルト合成値から検証用ハッシュ値を算出する。
【0064】
つぎに、検証部15は、前記検証用ハッシュ値と、前記ハッシュ値とが整合するかどうかを検証する(ハッシュ検証工程)。ここで、前記検証用ハッシュ値と前記ハッシュ値とが整合しない場合、検証部15は、前記検証用データベースの情報に改ざんの可能性があると判定できる。この場合、改ざん通知部16は、前記改ざん検知対象データベースの改ざん可能性ありと通知する。
【0065】
つぎに、検証部15は、前記更新者識別情報(更新者:Aさん)に対応する公開鍵(Aさんの公開鍵)を前記鍵管理サーバから取得する。検証部15は、前記公開鍵で前記暗号化データを復号した復号ハッシュ値を生成し、前記検証用ハッシュ値と前記復号ハッシュ値とが整合するか否かを検証する(暗号化データ検証工程)。ここで、前記検証用ハッシュ値と前記復号ハッシュ値とが整合しない場合、検証部15は、前記検証用データベースの情報に改ざんの可能性があると判定できる。この場合、改ざん通知部16は、前記改ざん検知対象データベースの改ざん可能性ありと通知する。
【0066】
本装置10は、例えば、上記利用例のような処理により、データベースの情報の改ざんを効果的に防止することが可能である。
【0067】
[実施形態4]
実施形態4は、本開示のサーバ装置の例である。
【0068】
本開示のサーバ装置は、前記本開示の改ざん防止装置(改ざん防止装置10、10A)を含むことを特徴とし、その他の構成は特に制限されない。前記サーバ装置は、例えば、データベースサーバであることが好ましい。前記サーバ装置は、例えば、前記本開示の改ざん防止装置の各処理を実行するためのプログラムがインストールされたサーバ装置であってもよいし、前記本開示の改ざん防止装置と通信可能なサーバ装置であってもよい。後者の場合、本開示のサーバ装置と前記本開示の改ざん防止装置との接続は、有線でも無線でもよい。前記サーバ装置は、例えば、前記改ざん防止装置を含むため、データの改ざんを防止できる。
【0069】
[実施形態5]
本実施形態のプログラムは、前述の改ざん防止方法の各工程を、コンピュータに実行させるためのプログラムである。具体的に、本実施形態のプログラムは、コンピュータに、ハッシュ算出手順、真正性担保用情報取得手順、及び改ざん防止用情報記録手順を実行させるためのプログラムである。
【0070】
前記ハッシュ算出手順は、データベースの情報に基づいてハッシュ値を算出し、
前記真正性担保用情報取得手順は、前記ハッシュ値に対する真正性担保用情報を取得し、
前記改ざん防止用情報記録手順は、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録する。
【0071】
また、本実施形態のプログラムは、コンピュータを、ハッシュ算出手順、真正性担保用情報取得手順、及び改ざん防止用情報記録手順として機能させるプログラムということもできる。
【0072】
本実施形態のプログラムは、前記本開示の改ざん防止装置および改ざん防止方法における記載を援用できる。前記各手順は、例えば、「手順」を「処理」と読み替え可能である。また、本実施形態のプログラムは、例えば、コンピュータ読み取り可能な記録媒体に記録されてもよい。前記記録媒体は、例えば、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)である。前記記録媒体は、特に制限されず、例えば、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ハードディスク(HD)、フラッシュメモリー(例えば、SSD(Solid State Drive)、USBフラッシュメモリー、SD/SDHCカード等)、光ディスク(例えば、CD‐R/CD‐RW、DVD‐R/DVD‐RW、BD‐R/BD‐RE等)、光磁気ディスク(MO)、フロッピー(登録商標)ディスク(FD)等があげられる。また、本実施形態のプログラム(例えば、プログラミング製品、又はプログラム製品ともいう)は、例えば、外部のコンピュータから配信される形態であってもよい。前記「配信」は、例えば、通信回線網を介した配信でもよいし、有線で接続された装置を介した配信であってもよい。本実施形態のプログラムは、配信された装置にインストールされて実行されてもよいし、インストールされずに実行されてもよい。
【0073】
以上、実施形態を参照して本開示を説明したが、本開示は、上記実施形態に限定されるものではない。本開示の構成や詳細には、本開示のスコープ内で当業者が理解しうる様々な変更をできる。
【0074】
<付記>
上記の実施形態の一部または全部は、以下の付記のように記載されうるが、以下には限られない。
(付記1)
ハッシュ算出部、真正性担保用情報取得部、及び改ざん防止用情報記録部を含み、
前記ハッシュ算出部は、データベースの情報に基づいてハッシュ値を算出し、
前記真正性担保用情報取得部は、前記ハッシュ値に対する真正性担保用情報を取得し、
前記改ざん防止用情報記録部は、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録する、改ざん防止装置。
(付記2)
前記ハッシュ算出部は、前記データベースの情報を少なくとも一つの行ごとに合成した合成値を算出し、前記合成値に基づいて、前記少なくとも一つの行ごとのハッシュ値を算出し、
前記真正性担保用情報取得部は、前記少なくとも一つの行ごとのハッシュ値に対する真正性担保用情報を取得し、
前記改ざん防止用情報記録部は、前記データベースの少なくとも一つの行ごとに、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録する、付記1記載の改ざん防止装置。
(付記3)
前記ハッシュ算出部は、前記データベースの情報にソルト値を付与し、前記ソルト値が付与された情報に基づいてハッシュ値を算出する、付記1または2記載の改ざん防止装置。
(付記4)
前記ハッシュ算出部は、前記データベースの更新毎に前記ハッシュ値の算出を行い、
前記改ざん防止用情報記録部は、前記データベースの更新時刻をさらに紐づけて改ざん防止用情報として記録する、付記1から3のいずれかに記載の改ざん防止装置。
(付記5)
前記真正性担保用情報取得部は、前記真正性担保用情報として、前記ハッシュ値に対するタイムスタンプトークンを取得し、
前記改ざん防止用情報記録部は、前記ハッシュ値と前記ハッシュ値に対するタイムスタンプトークンとを紐づけて記録する、付記1から4のいずれかに記載の改ざん防止装置。
(付記6)
前記真正性担保用情報取得部は、前記真正性担保用情報として、前記ハッシュ値が秘密鍵により暗号化された暗号化データを取得し、
前記改ざん防止用情報記録部は、前記ハッシュ値と前記暗号化データとを紐づけて記録する、付記1から5のいずれかに記載の改ざん防止装置。
(付記7)
前記真正性担保用情報取得部は、前記データベースの更新者と対応する秘密鍵により暗号化された暗号化データを取得し、
前記改ざん防止用情報記録部は、前記ハッシュ値と、前記暗号化データと、前記更新者を識別する更新者識別情報とを紐づけて記録する、付記1から6のいずれかに記載の改ざん防止装置。
(付記8)
検証用ハッシュ算出部、検証部を含み、
前記検証用ハッシュ算出部は、改ざん検知対象データベースの情報に基づいて検証用ハッシュ値を算出し、
前記検証部は、前記検証用ハッシュ値と、前記改ざん防止用情報とが整合するか否かを検証する、付記1から7のいずれかに記載の改ざん防止装置。
(付記9)
前記検証部は、
前記検証用ハッシュ値と、前記改ざん防止用情報が含む前記ハッシュ値とが整合するか否かを検証し、
前記検証用ハッシュ値と、前記改ざん防止用情報が含む前記真正性担保用情報とが整合するか否かを検証する、付記8記載の改ざん防止装置。
(付記10)
前記真正性担保用情報が、タイムスタンプトークンを含む場合、
前記検証部は、前記検証用ハッシュ値と、前記タイムスタンプトークンを構成するハッシュ値とが整合するか否かを検証し、且つ、前記改ざん検知対象データベースの更新日時と前記タイムスタンプトークンを構成するタイムスタンプサーバ日時との差が所定範囲内であるか否かを検証する、付記8または9記載の改ざん防止装置。
(付記11)
前記真正性担保用情報が、前記ハッシュ値が秘密鍵により暗号化された暗号化データを含む場合、
前記検証部は、前記暗号化データを、前記秘密鍵に対応する公開鍵で復号した復号ハッシュ値を生成し、前記検証用ハッシュ値と前記復号ハッシュ値とが整合するか否かを検証する、付記8から10のいずれかに記載の改ざん防止装置。
(付記12)
改ざん通知部を含み、
前記改ざん通知部は、前記検証部の検証結果に基づいて、前記改ざん検知対象データベースの改ざんの可能性を通知する、付記8から11のいずれかに記載の改ざん防止装置。
(付記13)
付記1から12のいずれかに記載の改ざん防止装置を含む、サーバ装置。
(付記14)
データベースサーバである、付記13記載のサーバ装置。
(付記15)
ハッシュ算出工程、真正性担保用情報取得工程、及び改ざん防止用情報記録工程を含み、
前記ハッシュ算出工程は、データベースの情報に基づいてハッシュ値を算出し、
前記真正性担保用情報取得工程は、前記ハッシュ値に対する真正性担保用情報を取得し、
前記改ざん防止用情報記録工程は、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録する、改ざん防止方法。
(付記16)
前記ハッシュ算出工程は、前記データベースの情報を少なくとも一つの行ごとに合成した合成値を算出し、前記合成値に基づいて、前記少なくとも一つの行ごとのハッシュ値を算出し、
前記真正性担保用情報取得工程は、前記少なくとも一つの行ごとのハッシュ値に対する真正性担保用情報を取得し、
前記改ざん防止用情報記録工程は、前記データベースの少なくとも一つの行ごとに、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録する、付記15記載の改ざん防止方法。
(付記17)
前記ハッシュ算出工程は、前記データベースの情報にソルト値を付与し、前記ソルト値が付与された情報に基づいてハッシュ値を算出する、付記15または16記載の改ざん防止方法。
(付記18)
前記ハッシュ算出工程は、前記データベースの更新毎に前記ハッシュ値の算出を行い、
前記改ざん防止用情報記録工程は、前記データベースの更新時刻をさらに紐づけて改ざん防止用情報として記録する、付記15から17のいずれかに記載の改ざん防止方法。
(付記19)
前記真正性担保用情報取得工程は、前記真正性担保用情報として、前記ハッシュ値に対するタイムスタンプトークンを取得し、
前記改ざん防止用情報記録工程は、前記ハッシュ値と前記ハッシュ値に対するタイムスタンプトークンとを紐づけて記録する、付記15から18のいずれかに記載の改ざん防止方法。
(付記20)
前記真正性担保用情報取得工程は、前記真正性担保用情報として、前記ハッシュ値が秘密鍵により暗号化された暗号化データを取得し、
前記改ざん防止用情報記録工程は、前記ハッシュ値と前記暗号化データとを紐づけて記録する、付記15から19のいずれかに記載の改ざん防止方法。
(付記21)
前記真正性担保用情報取得工程は、前記データベースの更新者と対応する秘密鍵により暗号化された暗号化データを取得し、
前記改ざん防止用情報記録工程は、前記ハッシュ値と、前記暗号化データと、前記更新者を識別する更新者識別情報とを紐づけて記録する、付記15から20のいずれかに記載の改ざん防止方法。
(付記22)
検証用ハッシュ算出工程、検証工程を含み、
前記検証用ハッシュ算出工程は、改ざん検知対象データベースの情報に基づいて検証用ハッシュ値を算出し、
前記検証工程は、前記検証用ハッシュ値と、前記改ざん防止用情報とが整合するか否かを検証する、付記15から21のいずれかに記載の改ざん防止方法。
(付記23)
前記検証工程は、
前記検証用ハッシュ値と、前記改ざん防止用情報が含む前記ハッシュ値とが整合するか否かを検証し、
前記検証用ハッシュ値と、前記改ざん防止用情報が含む前記真正性担保用情報とが整合するか否かを検証する、付記22記載の改ざん防止方法。
(付記24)
前記真正性担保用情報が、タイムスタンプトークンを含む場合、
前記検証工程は、前記検証用ハッシュ値と、前記タイムスタンプトークンを構成するハッシュ値とが整合するか否かを検証し、且つ、前記改ざん検知対象データベースの更新日時と前記タイムスタンプトークンを構成するタイムスタンプサーバ日時との差が所定範囲内であるか否かを検証する、付記22または23記載の改ざん防止方法。
(付記25)
前記真正性担保用情報が、前記ハッシュ値が秘密鍵により暗号化された暗号化データを含む場合、
前記検証工程は、前記暗号化データを、前記秘密鍵に対応する公開鍵で復号した復号ハッシュ値を生成し、前記検証用ハッシュ値と前記復号ハッシュ値とが整合するか否かを検証する、付記22から24のいずれかに記載の改ざん防止方法。
(付記26)
改ざん通知工程を含み、
前記改ざん通知工程は、前記検証工程の検証結果に基づいて、前記改ざん検知対象データベースの改ざんの可能性を通知する、付記22から25のいずれかに記載の改ざん防止方法。
(付記27)
ハッシュ算出手順、真正性担保用情報取得手順、及び改ざん防止用情報記録手順を含み、
前記ハッシュ算出手順は、データベースの情報に基づいてハッシュ値を算出し、
前記真正性担保用情報取得手順は、前記ハッシュ値に対する真正性担保用情報を取得し、
前記改ざん防止用情報記録手順は、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録し、
前記各手順を、コンピュータに実行させるためのプログラム。
(付記28)
前記ハッシュ算出手順は、前記データベースの情報を少なくとも一つの行ごとに合成した合成値を算出し、前記合成値に基づいて、前記少なくとも一つの行ごとのハッシュ値を算出し、
前記真正性担保用情報取得手順は、前記少なくとも一つの行ごとのハッシュ値に対する真正性担保用情報を取得し、
前記改ざん防止用情報記録手順は、前記データベースの少なくとも一つの行ごとに、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録する、付記27記載のプログラム。
(付記29)
前記ハッシュ算出手順は、前記データベースの情報にソルト値を付与し、前記ソルト値が付与された情報に基づいてハッシュ値を算出する、付記27または28記載のプログラム。
(付記30)
前記ハッシュ算出手順は、前記データベースの更新毎に前記ハッシュ値の算出を行い、
前記改ざん防止用情報記録手順は、前記データベースの更新時刻をさらに紐づけて改ざん防止用情報として記録する、付記27から29のいずれかに記載のプログラム。
(付記31)
前記真正性担保用情報取得手順は、前記真正性担保用情報として、前記ハッシュ値に対するタイムスタンプトークンを取得し、
前記改ざん防止用情報記録手順は、前記ハッシュ値と前記ハッシュ値に対するタイムスタンプトークンとを紐づけて記録する、付記27から30のいずれかに記載のプログラム。
(付記32)
前記真正性担保用情報取得手順は、前記真正性担保用情報として、前記ハッシュ値が秘密鍵により暗号化された暗号化データを取得し、
前記改ざん防止用情報記録手順は、前記ハッシュ値と前記暗号化データとを紐づけて記録する、付記27から31のいずれかに記載のプログラム。
(付記33)
前記真正性担保用情報取得手順は、前記データベースの更新者と対応する秘密鍵により暗号化された暗号化データを取得し、
前記改ざん防止用情報記録手順は、前記ハッシュ値と、前記暗号化データと、前記更新者を識別する更新者識別情報とを紐づけて記録する、付記27から32のいずれかに記載のプログラム。
(付記34)
検証用ハッシュ算出手順、検証手順を含み、
前記検証用ハッシュ算出手順は、改ざん検知対象データベースの情報に基づいて検証用ハッシュ値を算出し、
前記検証手順は、前記検証用ハッシュ値と、前記改ざん防止用情報とが整合するか否かを検証する、付記27から33のいずれかに記載のプログラム。
(付記35)
前記検証手順は、
前記検証用ハッシュ値と、前記改ざん防止用情報が含む前記ハッシュ値とが整合するか否かを検証し、
前記検証用ハッシュ値と、前記改ざん防止用情報が含む前記真正性担保用情報とが整合するか否かを検証する、付記34記載のプログラム。
(付記36)
前記真正性担保用情報が、タイムスタンプトークンを含む場合、
前記検証手順は、前記検証用ハッシュ値と、前記タイムスタンプトークンを構成するハッシュ値とが整合するか否かを検証し、且つ、前記改ざん検知対象データベースの更新日時と前記タイムスタンプトークンを構成するタイムスタンプサーバ日時との差が所定範囲内であるか否かを検証する、付記34または35記載のプログラム。
(付記37)
前記真正性担保用情報が、前記ハッシュ値が秘密鍵により暗号化された暗号化データを含む場合、
前記検証手順は、前記暗号化データを、前記秘密鍵に対応する公開鍵で復号した復号ハッシュ値を生成し、前記検証用ハッシュ値と前記復号ハッシュ値とが整合するか否かを検証する、付記34から36のいずれかに記載のプログラム。
(付記38)
改ざん通知手順を含み、
前記改ざん通知手順は、前記検証手順の検証結果に基づいて、前記改ざん検知対象データベースの改ざんの可能性を通知する、付記34から37のいずれかに記載のプログラム。
(付記39)
ハッシュ算出手順、真正性担保用情報取得手順、及び改ざん防止用情報記録手順を含み、
前記ハッシュ算出手順は、データベースの情報に基づいてハッシュ値を算出し、
前記真正性担保用情報取得手順は、前記ハッシュ値に対する真正性担保用情報を取得し、
前記改ざん防止用情報記録手順は、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録し、
前記各手順を、コンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
(付記40)
前記ハッシュ算出手順は、前記データベースの情報を少なくとも一つの行ごとに合成した合成値を算出し、前記合成値に基づいて、前記少なくとも一つの行ごとのハッシュ値を算出し、
前記真正性担保用情報取得手順は、前記少なくとも一つの行ごとのハッシュ値に対する真正性担保用情報を取得し、
前記改ざん防止用情報記録手順は、前記データベースの少なくとも一つの行ごとに、前記ハッシュ値と前記真正性担保用情報とを紐づけて改ざん防止用情報として記録する、付記39記載の記録媒体。
(付記41)
前記ハッシュ算出手順は、前記データベースの情報にソルト値を付与し、前記ソルト値が付与された情報に基づいてハッシュ値を算出する、付記39または40記載の記録媒体。
(付記42)
前記ハッシュ算出手順は、前記データベースの更新毎に前記ハッシュ値の算出を行い、
前記改ざん防止用情報記録手順は、前記データベースの更新時刻をさらに紐づけて改ざん防止用情報として記録する、付記39から41のいずれかに記載の記録媒体。
(付記43)
前記真正性担保用情報取得手順は、前記真正性担保用情報として、前記ハッシュ値に対するタイムスタンプトークンを取得し、
前記改ざん防止用情報記録手順は、前記ハッシュ値と前記ハッシュ値に対するタイムスタンプトークンとを紐づけて記録する、付記39から42のいずれかに記載の記録媒体。
(付記44)
前記真正性担保用情報取得手順は、前記真正性担保用情報として、前記ハッシュ値が秘密鍵により暗号化された暗号化データを取得し、
前記改ざん防止用情報記録手順は、前記ハッシュ値と前記暗号化データとを紐づけて記録する、付記39から43のいずれかに記載の記録媒体。
(付記45)
前記真正性担保用情報取得手順は、前記データベースの更新者と対応する秘密鍵により暗号化された暗号化データを取得し、
前記改ざん防止用情報記録手順は、前記ハッシュ値と、前記暗号化データと、前記更新者を識別する更新者識別情報とを紐づけて記録する、付記39から44のいずれかに記載の記録媒体。
(付記46)
検証用ハッシュ算出手順、検証手順を含み、
前記検証用ハッシュ算出手順は、改ざん検知対象データベースの情報に基づいて検証用ハッシュ値を算出し、
前記検証手順は、前記検証用ハッシュ値と、前記改ざん防止用情報とが整合するか否かを検証する、付記39から45のいずれかに記載の記録媒体。
(付記47)
前記検証手順は、
前記検証用ハッシュ値と、前記改ざん防止用情報が含む前記ハッシュ値とが整合するか否かを検証し、
前記検証用ハッシュ値と、前記改ざん防止用情報が含む前記真正性担保用情報とが整合するか否かを検証する、付記46記載の記録媒体。
(付記48)
前記真正性担保用情報が、タイムスタンプトークンを含む場合、
前記検証手順は、前記検証用ハッシュ値と、前記タイムスタンプトークンを構成するハッシュ値とが整合するか否かを検証し、且つ、前記改ざん検知対象データベースの更新日時と前記タイムスタンプトークンを構成するタイムスタンプサーバ日時との差が所定範囲内であるか否かを検証する、付記46または47記載の記録媒体。
(付記49)
前記真正性担保用情報が、前記ハッシュ値が秘密鍵により暗号化された暗号化データを含む場合、
前記検証手順は、前記暗号化データを、前記秘密鍵に対応する公開鍵で復号した復号ハッシュ値を生成し、前記検証用ハッシュ値と前記復号ハッシュ値とが整合するか否かを検証する、付記46から48のいずれかに記載の記録媒体。
(付記50)
改ざん通知手順を含み、
前記改ざん通知手順は、前記検証手順の検証結果に基づいて、前記改ざん検知対象データベースの改ざんの可能性を通知する、付記46から49のいずれかに記載の記録媒体。
【産業上の利用可能性】
【0075】
本開示によれば、データベースのデータの改ざんを防止できる。このため、本開示は、情報処理分野において広く有用である。
【符号の説明】
【0076】
10、10A 改ざん防止装置
11 ハッシュ算出部
12 真正性担保用情報取得部
13 改ざん防止用情報記録部
14 検証用ハッシュ算出部
15 検証部
16 改ざん通知部
101 中央処理装置
102 メモリ
103 バス
104 記憶装置
105 入力装置
106 出力装置
107 通信デバイス