(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024132402
(43)【公開日】2024-10-01
(54)【発明の名称】処理装置、データ管理方法、およびデータ管理プログラム
(51)【国際特許分類】
G06F 21/64 20130101AFI20240920BHJP
G06F 21/62 20130101ALI20240920BHJP
【FI】
G06F21/64
G06F21/62 309
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023043144
(22)【出願日】2023-03-17
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和元年度、国立研究開発法人海上・港湾・航空技術研究所、戦略的イノベ-ション創造プログラム「スマート物流サービス」「物流・商流データ基盤に関する技術(要素基礎技術)」委託研究、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】久野 真佑花
(72)【発明者】
【氏名】段林 重之
(72)【発明者】
【氏名】岡田 隼人
(72)【発明者】
【氏名】菅原 久嗣
(72)【発明者】
【氏名】野原 誠
(72)【発明者】
【氏名】川崎 政和
(57)【要約】
【課題】データ基盤システムにおけるデータの改ざんを検知すること。
【解決手段】処理装置101は、システム100外からデータ111を受け付けた場合、データ111に対応する第1のID120と対応付けて、処理対象データ112から生成した第1のハッシュ値113を共用記憶領域110に格納する。また、処理装置101は、処理対象データ112(データ111を加工したデータ)を第1のID120と対応付けて、自装置内に格納する。処理装置101は、システム100外に自装置内の第1のID120に対応するデータ112?を出力する際に、データ112?から生成した第2のハッシュ値114を取得し、共用記憶領域110から第1のID120に対応する第1のハッシュ値113を取得する。処理装置101は、第1のハッシュ値113と第2のハッシュ値114が一致しない場合、第1のID120に対応するデータ112?の改ざんを検知する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
1以上の処理装置を含むシステム内の処理装置であって、
前記システム外または前記システム内の他の処理装置からデータを受け付けた場合、受け付けた前記データに対応する第1のIDと対応付けて、前記データまたは当該データを加工した加工後のデータのいずれかのデータから生成した第1のハッシュ値を、前記1以上の処理装置からアクセス可能な共用記憶領域に格納し、
前記いずれかのデータを前記第1のIDと対応付けて、自装置内に格納し、
前記システム外または前記システム内の他の処理装置に、自装置内の前記第1のIDに対応するデータを出力する際に、当該データから生成した第2のハッシュ値を取得し、
前記共用記憶領域から前記第1のIDに対応する前記第1のハッシュ値を取得し、
取得した前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合に、自装置内の前記第1のIDに対応するデータの改ざんを検知する、
制御部を有することを特徴とする処理装置。
【請求項2】
前記制御部は、
前記第1のIDに対応するデータの改ざんを検知した場合、前記システムの管理者に対して、前記第1のIDを含む改ざん検知通知を出力する、ことを特徴とする請求項1に記載の処理装置。
【請求項3】
前記制御部は、
前記第1のIDに対応するデータの改ざんを検知した場合、前記システム外または前記システム内の他の処理装置に対する、自装置内の前記第1のIDに対応するデータの出力を停止する、ことを特徴とする請求項1に記載の処理装置。
【請求項4】
前記制御部は、
取得した前記第1のハッシュ値と前記第2のハッシュ値とが一致する場合、前記システム外または前記システム内の他の処理装置に、自装置内の前記第1のIDに対応するデータを出力する、ことを特徴とする請求項1~3のいずれか一つに記載の処理装置。
【請求項5】
前記制御部は、
前記共用記憶領域に前記第1のハッシュ値を格納する際に、前記第1のIDと対応付けて、さらに、受け付けた前記データの提供元を表す情報を格納する、ことを特徴とする請求項2に記載の処理装置。
【請求項6】
前記制御部は、
前記共用記憶領域に前記第1のハッシュ値を格納する際に、前記第1のIDと対応付けて、さらに、受け付けた前記データに関する業務を表す情報を格納する、ことを特徴とする請求項2に記載の処理装置。
【請求項7】
1以上の処理装置を含むシステム内の処理装置が、
前記システム外または前記システム内の他の処理装置からデータを受け付けた場合、受け付けた前記データに対応する第1のIDと対応付けて、前記データまたは当該データを加工した加工後のデータのいずれかのデータから生成した第1のハッシュ値を、前記1以上の処理装置からアクセス可能な共用記憶領域に格納し、
前記いずれかのデータを前記第1のIDと対応付けて、自装置内に格納し、
前記システム外または前記システム内の他の処理装置に、自装置内の前記第1のIDに対応するデータを出力する際に、当該データから生成した第2のハッシュ値を取得し、
前記共用記憶領域から前記第1のIDに対応する前記第1のハッシュ値を取得し、
取得した前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合に、自装置内の前記第1のIDに対応するデータの改ざんを検知する、
処理を実行することを特徴とするデータ管理方法。
【請求項8】
1以上の処理装置を含むシステム内の処理装置に、
前記システム外または前記システム内の他の処理装置からデータを受け付けた場合、受け付けた前記データに対応する第1のIDと対応付けて、前記データまたは当該データを加工した加工後のデータのいずれかのデータから生成した第1のハッシュ値を、前記1以上の処理装置からアクセス可能な共用記憶領域に格納し、
前記いずれかのデータを前記第1のIDと対応付けて、自装置内に格納し、
前記システム外または前記システム内の他の処理装置に、自装置内の前記第1のIDに対応するデータを出力する際に、当該データから生成した第2のハッシュ値を取得し、
前記共用記憶領域から前記第1のIDに対応する前記第1のハッシュ値を取得し、
取得した前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合に、自装置内の前記第1のIDに対応するデータの改ざんを検知する、
処理を実行させることを特徴とするデータ管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、処理装置、データ管理方法、およびデータ管理プログラムに関する。
【背景技術】
【0002】
近年、サプライチェーンにおける商流情報や物流情報などを産業界全体で共有して利用するデータ基盤の研究・開発が進められている。データ基盤は、例えば、EDI(Electronic Data Interchange)伝票などのデータを収集し、統合・活用するためのシステムであり、業界の事業者間で共有して利用される。このため、データ基盤として、より安心・安全なシステムの構築が求められる。
【0003】
先行技術としては、EDIシステムにおける中継装置が、クラウドサーバ上のEDIアプリケーションの同一性を監査するものがある。EDIアプリケーションは、クラウドサーバ上に実装された業務アプリケーションで生成された業務データを中継装置に送信するとともに、送信した業務データをEDIアプリケーション内に保存するよう構成される。
【0004】
また、EDIシステムにおいて、電子取引データを、フォーマット変換処理を行う際、電子取引データにおける不正データを検出した場合、不正データをフォーマット変換処理の対象から取り除く技術がある。また、EDIシステムに入力時の伝票枚数および伝票明細行数と、EDIシステム内でフォーマット変換や業務処理を経た結果である出力時の伝票枚数および伝票明細行数とをシステムで比較確認し、データの欠落や不正な増加を検出する技術がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2022-108099号公報
【特許文献2】特開2009-217763号公報
【特許文献3】特開2009-169792号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来技術では、入力されたデータが内部で加工されて出力されるようなデータ基盤システムにおけるデータの改ざんを検知することが難しい。
【0007】
一つの側面では、本発明は、データ基盤システムにおけるデータの改ざんを検知することを目的とする。
【課題を解決するための手段】
【0008】
1つの実施態様では、1以上の処理装置を含むシステム内の処理装置であって、前記システム外または前記システム内の他の処理装置からデータを受け付けた場合、受け付けた前記データに対応する第1のIDと対応付けて、前記データまたは当該データを加工した加工後のデータのいずれかのデータから生成した第1のハッシュ値を、前記1以上の処理装置からアクセス可能な共用記憶領域に格納し、前記いずれかのデータを前記第1のIDと対応付けて、自装置内に格納し、前記システム外または前記システム内の他の処理装置に、自装置内の前記第1のIDに対応するデータを出力する際に、当該データから生成した第2のハッシュ値を取得し、前記共用記憶領域から前記第1のIDに対応する前記第1のハッシュ値を取得し、取得した前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合に、前記第1のIDに対応するデータの改ざんを検知する、処理装置が提供される。
【発明の効果】
【0009】
本発明の一側面によれば、データ基盤システムにおけるデータの改ざんを検知することができるという効果を奏する。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施の形態にかかるデータ管理方法の一実施例を示す説明図である。
【
図2】
図2は、データ基盤システム200のシステム構成例を示す説明図である。
【
図3】
図3は、データ処理サーバSiのハードウェア構成例を示すブロック図である。
【
図4】
図4は、変更管理DB220の記憶内容の一例を示す説明図である。
【
図5】
図5は、データ処理サーバSiの機能的構成例を示すブロック図である。
【
図6】
図6は、データ基盤システム200の第1の動作例を示す説明図である。
【
図7】
図7は、変更管理DB220の更新例を示す説明図である。
【
図8】
図8は、データ基盤システム200の第2の動作例を示す説明図である。
【
図9A】
図9Aは、変換前のデータの具体例を示す説明図である。
【
図9B】
図9Bは、変換後のデータの具体例を示す説明図である。
【
図11】
図11は、データ処理サーバSiの第1のデータ管理処理手順の一例を示すフローチャートである。
【
図12】
図12は、データ処理サーバSiの第2のデータ管理処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下に図面を参照して、本発明にかかる処理装置、データ管理方法、およびデータ管理プログラムの実施の形態を詳細に説明する。
【0012】
(実施の形態)
図1は、実施の形態にかかるデータ管理方法の一実施例を示す説明図である。
図1において、処理装置101は、データを処理するコンピュータである。処理装置101は、1以上の処理装置101を含むシステム100内のいずれかの処理装置である。
図1では、システム100内の処理装置101を1台のみ表示している。
【0013】
データ基盤システムは、複数の事業者で共有して利用されるため、従来のプラットフォーム以上の安心・安全が求められる。しかしながら、データ基盤システムにおけるデータ改ざんを防止するためには、従来のネットワークセキュリティや認証・認可による不正アクセスの防御では不十分である。
【0014】
例えば、悪意のあるユーザ(内部犯)がシステム管理者の認証情報を入手してセキュリティを突破し、データ基盤システムのファイルシステム上の伝票データを改ざんしたとする。伝票データは、例えば、データ基盤システムに発注者が登録した、ある商品の発注数などを示す情報である。
【0015】
このような場合、従来の不正アクセスに対する防御では、データの改ざんを検知できないため、改ざんされた伝票データで取引が行われてしまう。例えば、伝票データにおける商品の発注数が「100個」から「1000個」に改ざんされていても、受注者やシステム管理者は、その改ざんに気付くことができない。
【0016】
ここで、ファイルシステムからのデータの出力時に、入力前のデータと比較することで、データの改ざんの有無を判断することが考えられる。しかし、データ利活用システムにおけるデータ基盤には、例えば、データ連携、データレイク、データベースなどの様々な役割に応じた複数のサーバが含まれる場合がある。
【0017】
データは、各サーバに一旦蓄積され、サーバ間で連携される。サーバ間でのデータ連携は、例えば、各サーバのETLを介して行われる。ETLは、Extract(抽出)、Transform(変換)、Load(格納)の機能を有するデータ連携ツールである。例えば、データは、ETLにより変換されて次のサーバに送信される。
【0018】
ETLによるデータ変換としては、例えば、発注元システム独自のレイアウトのデータを発注先システムに適合するように変換するものがある。また、発注元システムにない項目が発注先システムに含まれる場合に、発注元システムの項目(例えば、商品数量、単価)の値から、発注先システムの項目(例えば、商品数量×単価)の値が生成される場合がある。
【0019】
このため、データ基盤システムへの入力時のデータとデータ基盤システムからの出力時のデータとの単純な比較では、ETLによる変換なのか、悪意のあるユーザによる改ざんなのかを判別することができない。したがって、データ基盤システム内のサーバ間を経由する際にデータが変換されても、データの改ざんを検知可能な仕組みが求められる。
【0020】
また、データ基盤システム内の各サーバにおけるデータ蓄積前後で、データの比較/照合を実施することも考えられる。データは、例えば、各サーバに入力されたデータ、または、当該データを変換した変換後のデータである。例えば、サーバは、データが入力されると、そのデータをテンポラリなどに蓄積するとともに、比較/照合用にデータのコピーを保存する。そして、サーバは、蓄積したデータを他のサーバに出力する際に、比較/照合用に保存したデータと比較して、データの改ざんの有無を判断する。
【0021】
しかしながら、各サーバでデータの比較をすることで、データ利用者にデータ出力できるまでの処理時間に影響を及ぼすおそれがある。例えば、各サーバに次々とデータが入力されると、大量のデータのコピーを比較/照合用に自サーバ内に保存したり、大量のデータの比較をしたりすることになり、データ出力までの性能が低下するという問題がある。
【0022】
また、システム管理者は、異常発生個所を把握することはできても、データの由来(データ提供者、入力データなど)を追跡できないため、データ復旧が困難なものとなる。例えば、システム管理者は、各サーバのログを収集し、膨大なログからサーバ間のデータ授受を調査してデータ提供元を特定することになり手間がかかる。したがって、データの入出力レスポンスに影響を与えず、データ復旧のための追跡が可能な仕組みが求められる。
【0023】
そこで、本実施の形態では、データ基盤システム(例えば、システム100)内のサーバ(例えば、処理装置101)のデータ処理の性能に与える影響を抑えつつ、データ基盤システムにおけるデータの改ざんを検知するデータ管理方法について説明する。ここで、処理装置101の処理例について説明する。
【0024】
(1)処理装置101は、システム100外またはシステム100内の他の処理装置101からデータ111を受け付ける。ここでは、システム100外のデータ提供者102からデータ111を受け付けた場合を想定する。
【0025】
データ111は、例えば、データ提供者102とデータ利用者103との取引に関する伝票データである。データ111には、第1のID120が付与されている。第1のID120は、例えば、システム100におけるデータ111に対する一連の処理(データ入力処理、変換処理、データ出力処理)を管理するための識別情報である。ただし、
図1では、第1のID120を「ID120」と表記している。
【0026】
(2)処理装置101は、データ111を受け付けた場合、受け付けたデータ111に対応する第1のID120と対応付けて、処理対象データ112から生成した第1のハッシュ値113を、共用記憶領域110に格納する。ここで、処理対象データ112は、データ111またはデータ111を加工した加工後のデータのいずれかのデータである。
【0027】
データ111を加工する前に自装置内に格納する場合、処理対象データ112は、データ111となる。一方、データ111を加工した加工後のデータを自装置内に格納する場合、処理対象データ112は、加工後のデータとなる。ここでは、処理対象データ112は、データ111を加工した加工後のデータとする。加工後のデータは、例えば、ETLにより変換された変換後のデータである。
【0028】
共用記憶領域110は、システム100内の1以上の処理装置101からアクセス可能な共用の記憶領域である。共用記憶領域110は、例えば、システム100内の処理装置101とは異なる、システム100内の他のコンピュータに設けられる。
【0029】
また、処理装置101は、処理対象データ112を第1のID120と対応付けて、自装置内に格納する。ここでは、第1のID120と対応付けて、処理装置101内の記憶領域130に処理対象データ112が格納された場合を想定する。
【0030】
記憶領域130に格納された処理対象データ112は、例えば、悪意のあるユーザ104(内部犯)により改ざんされる可能性がある。このため、ここでは記憶領域130に格納された処理対象データ112を「データ112?」と表記する。
【0031】
(2)処理装置101は、システム100外またはシステム100内の他の処理装置101に、自装置内の第1のID120に対応するデータ112?を出力する際に、データ112?から生成した第2のハッシュ値114を取得する。また、処理装置101は、共用記憶領域110から第1のID120に対応する第1のハッシュ値113を取得する。
【0032】
処理装置101は、取得した第1のハッシュ値113と第2のハッシュ値114とを比較する。そして、処理装置101は、第1のハッシュ値113と第2のハッシュ値114とが一致しない場合に、自装置内の第1のID120に対応するデータ112?の改ざんを検知する。一方、処理装置101は、第1のハッシュ値113と第2のハッシュ値114とが一致する場合、自装置内の第1のID120に対応するデータ112?が改ざんされていないと判断する。
【0033】
ここでは、システム100外のデータ利用者103に、処理装置101内の第1のID120に対応するデータ112?を出力する場合を想定する。また、第1のハッシュ値113と第2のハッシュ値114とが一致する場合を想定する。この場合、処理装置101は、データ112?が改ざんされていないと判断して、自装置内の第1のID120に対応するデータ112?をデータ利用者103に出力する。
【0034】
このように、処理装置101によれば、データ提供者102からデータ(データ111)を受け付けた際に、実データ(処理対象データ112)と異なる記憶媒体(共用記憶領域110)にデータのハッシュ値を格納することができる。また、処理装置101によれば、データ利用者103に自装置内のデータを出力する際に、実データと異なる記憶媒体に格納したハッシュ値を用いて、データの改ざんを検知することができる。
【0035】
これにより、処理装置101は、データ提供者102から入力されるデータがシステム100内で変換される場合であっても、データの真正性を確保してデータ利用者103に提供することができる。また、処理装置101は、改ざん検知用のハッシュ値を実データと分離して共用記憶領域110で管理し、ハッシュ値の比較により改ざんを検知することができる。このため、処理装置101は、自装置単体でデータ蓄積前後に実データの比較/照合を実施する場合に比べて、自装置でのデータ処理の性能を犠牲にすることなく、データの改ざんを検知することができる。
【0036】
また、処理装置101は、データ提供者102から入力されたデータ111に対応する第1のID120を用いて、改ざん検知用のハッシュ値を管理することができる。このため、システム管理者は、例えば、処理装置101内のデータ112?の改ざんが検知された場合に、データ112?に対応する第1のID120を用いて、データの由来などを調査することができる。
【0037】
(データ基盤システム200のシステム構成例)
つぎに、実施の形態にかかるデータ基盤システム200のシステム構成例について説明する。
図1に示したシステム100は、例えば、データ基盤システム200に対応する。ここでは、
図1に示した処理装置101を、データ基盤システム200内のデータ処理サーバS1~Sn(n:2以上の自然数)に適用した場合を例に挙げて説明する。データ基盤システム200は、例えば、サプライチェーンの事業者間でデータを共有するためのデータ利活用システムに適用される。
【0038】
図2は、データ基盤システム200のシステム構成例を示す説明図である。
図2において、データ基盤システム200は、データ処理サーバS1~Snと、管理用DBサーバ201と、を含む。データ基盤システム200において、データ処理サーバS1~Snおよび管理用DBサーバ201は、有線または無線のネットワーク210を介して接続される。また、データ基盤システム200には、ネットワーク210を介して、複数のユーザ端末202および管理者端末203が接続される。ネットワーク210は、例えば、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などである。
【0039】
以下の説明では、データ処理サーバS1~Snのうちの任意のデータ処理サーバを「データ処理サーバSi」と表記する場合がある(i=1,2,…,n)。また、データ処理サーバS1~Snのうちのデータ処理サーバSiとは異なる他のデータ処理サーバを「他のデータ処理サーバSj」と表記する場合がある(j≠i、j=1,2,…,n)。
【0040】
ここで、データ処理サーバSiは、データを処理するコンピュータである。データ処理サーバSiは、データ連携、データレイク、データベースなどの様々な役割に応じて設けられる。データ処理サーバSiは、例えば、後述の
図6に示すようなデータ連携サーバS1、データレイクサーバS2、データベースサーバS3などである。
【0041】
管理用DBサーバ201は、変更管理DB(Database)220を有し、データ基盤システム200におけるデータのハッシュ値を管理するコンピュータである。ハッシュ値は、元のデータからハッシュ関数により求められる固定長の値である。変更管理DB220は、データ処理サーバS1~Snからアクセス可能な共用のデータベースである。変更管理DB220の記憶内容については、
図4を用いて後述する。
【0042】
ユーザ端末202は、データ基盤システム200のユーザが使用するコンピュータである。ユーザは、例えば、データ提供者、データ利用者などである。ユーザには、例えば、データの改ざんを行う悪意のあるユーザが含まれる場合がある。
【0043】
管理者端末203は、データ基盤システム200のシステム管理者が使用するコンピュータである。ユーザ端末202および管理者端末203は、例えば、PC(Personal Computer)、タブレットPCなどである。
【0044】
(データ処理サーバSiのハードウェア構成例)
つぎに、データ処理サーバSiのハードウェア構成例について説明する。
【0045】
図3は、データ処理サーバSiのハードウェア構成例を示すブロック図である。
図3において、データ処理サーバSiは、CPU(Central Processing Unit)301と、メモリ302と、ディスクドライブ303と、ディスク304と、通信I/F(Interface)305と、可搬型記録媒体I/F306と、可搬型記録媒体307と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
【0046】
ここで、CPU301は、データ処理サーバSiの全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOSのプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
【0047】
ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304は、例えば、磁気ディスク、光ディスクなどである。
【0048】
通信I/F305は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、他のデータ処理サーバSj、管理用DBサーバ201、ユーザ端末202)に接続される。そして、通信I/F305は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F305には、例えば、モデムやLANアダプタなどを採用することができる。
【0049】
可搬型記録媒体I/F306は、CPU301の制御に従って可搬型記録媒体307に対するデータのリード/ライトを制御する。可搬型記録媒体307は、可搬型記録媒体I/F306の制御で書き込まれたデータを記憶する。可搬型記録媒体307は、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどである。
【0050】
なお、データ処理サーバSiは、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有してもよい。また、データ処理サーバSiは、上述した構成部のうち、例えば、可搬型記録媒体I/F306、可搬型記録媒体307を有さなくてもよい。また、
図2に示した管理用DBサーバ201、ユーザ端末202および管理者端末203についても、データ処理サーバSiと同様のハードウェア構成により実現することができる。ただし、ユーザ端末202および管理者端末203は、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有する。
【0051】
(変更管理DB220の記憶内容)
つぎに、
図4を用いて、管理用DBサーバ201が有する変更管理DB220の記憶内容について説明する。変更管理DB220は、例えば、管理用DBサーバ201のメモリ、ディスクなどの記憶装置により実現される。
【0052】
図4は、変更管理DB220の記憶内容の一例を示す説明図である。
図4において、変更管理DB220は、トランID、入力日時、出力日時、業務名、ハッシュ値、提供者および処理中サーバのフィールドを有し、各フィールドに情報を設定することで、変更管理情報(例えば、変更管理情報400-1,400-2)をレコードとして記憶する。
【0053】
ここで、トランIDは、データ基盤システム200におけるデータに対する一連の処理(データ入力処理、変換処理(複数回実行)、データ出力処理)を管理するための識別情報である。トランIDは、例えば、データ基盤システム200にデータが入力される際に付与される。
図1に示した第1のID120は、例えば、トランIDに対応する。入力日時は、データ基盤システム200にデータが入力された日時を示す。ただし、
図4では、入力日時の日付のみ表示している。
【0054】
出力日時は、データ基盤システム200からデータが出力された日時を示す。初期状態では、出力日時は、-(Null)である。業務名は、データが用いられる業務の名称を示す。ハッシュ値は、データからハッシュ関数により求められた固定長の値である。提供者は、データの提供元のユーザを示す。処理中サーバは、データを処理中のデータ処理サーバSiを示す。
【0055】
(データ処理サーバSiの機能的構成例)
つぎに、データ処理サーバSiの機能的構成例について説明する。
【0056】
図5は、データ処理サーバSiの機能的構成例を示すブロック図である。
図5において、データ処理サーバSiは、受付部501と、格納部502と、出力制御部503と、通知部504と、を含む。受付部501~通知部504は制御部500となる機能であり、具体的には、例えば、
図3に示したメモリ302、ディスク304、可搬型記録媒体307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。
【0057】
受付部501は、データ基盤システム200外またはデータ基盤システム200内の他のデータ処理サーバSjからデータを受け付ける。ここで、データは、例えば、サプライチェーンにおける事業者間で共有されるデータである。データには、データに対応するトランIDが付与されている。
【0058】
データは、例えば、伝票データである。データ基盤システム200外から入力されるデータは、例えば、CSV(Comma Separated Value)形式やXML(Extensible Markup Language)形式で情報が記述されている。
【0059】
具体的には、例えば、受付部501は、
図2に示したユーザ端末202から受信することにより、データ基盤システム200外からデータを受け付ける。トランIDは、例えば、ユーザ端末202がデータ基盤システム200(データ処理サーバSi)にデータを送信する際に当該データに付与される。
【0060】
また、受付部501は、他のデータ処理サーバSjから受信することにより、データ基盤システム200内の他のデータ処理サーバSjからデータを受け付ける。トランIDは、例えば、他のデータ処理サーバSjによってデータに付与される。
【0061】
なお、受付部501は、データ基盤システム200外からデータを受け付ける際に、データの提供元を表す情報を合わせて受け付けてもよい。データの提供元を表す情報は、例えば、データ提供者名やユーザIDなどである。
【0062】
また、受付部501は、データ基盤システム200外からデータを受け付ける際に、データに関する業務を表す情報を合わせて受け付けてもよい。データに関する業務は、例えば、データを用いる業務である。業務を表す情報は、例えば、業務名である。
【0063】
格納部502は、受け付けたデータに対応するトランIDと対応付けて、処理対象データから生成したハッシュ値を共用記憶領域に格納する。さらに、格納部502は、受け付けたデータに対応するトランIDと対応付けて、処理対象データを自サーバ内に格納する。ここで、共用記憶領域は、データ処理サーバS1~Snからアクセス可能な記憶領域である。共用記憶領域は、例えば、
図2に示した管理用DBサーバ201が有する変更管理DB220である。
【0064】
処理対象データは、受付部501が受け付けたデータ、または、受付部501が受け付けたデータを加工した加工後のデータのいずれかのデータである。データの加工は、例えば、格納部502の制御に従って、後述の
図6に示すETL#1~#3により行われる。加工後のデータは、例えば、ETL#1~#3により変換された変換後のデータに相当する。ハッシュ値は、あらかじめ決められたハッシュ関数により、処理対象データから生成される。
【0065】
データ処理サーバSiが、受け付けたデータを加工する前に自サーバ内に格納する場合、処理対象データは、受け付けたデータとなる。一方、データ処理サーバSiが、受け付けたデータを加工した加工後のデータを自サーバ内に格納する場合、処理対象データは、加工後のデータとなる。
【0066】
具体的には、例えば、格納部502は、データ基盤システム200外からデータを受け付けた場合、データに付与されたトランIDと対応付けて、処理対象データから生成したハッシュ値を変更管理DB220に格納する。変更管理DB220は、管理用DBサーバ201にアクセスして参照される。
【0067】
この際、格納部502は、データに付与されたトランIDと対応付けて、さらに、データの提供元を表す情報(例えば、データ提供者名、ユーザID)を格納してもよい。また、格納部502は、データに付与されたトランIDと対応付けて、さらに、データに関する業務を表す情報(例えば、業務名)を格納してもよい。また、格納部502は、データに付与されたトランIDと対応付けて、さらに、トランIDに対応するデータが自サーバに存在することを表す情報(例えば、処理中サーバ)を格納してもよい。
【0068】
これにより、変更管理DB220に新たな変更管理情報がレコードとして登録される。
【0069】
また、格納部502は、データ基盤システム200内の他のデータ処理サーバSjからデータを受け付けた場合、変更管理DB220を参照して、データに付与されたトランIDに対応する変更管理情報を特定する。そして、格納部502は、特定した変更管理情報のハッシュ値に、処理対象データから生成したハッシュ値を上書きする。また、格納部502は、特定した変更管理情報の処理中サーバに、自サーバ名を上書きする。
【0070】
これにより、変更管理DB220内のトランIDに対応する変更管理情報の内容(ハッシュ値、処理中サーバ)が更新される。
【0071】
また、格納部502は、受け付けたデータに対応するトランIDと対応付けて、処理対象データを自サーバ内に格納する際に、受け付けたデータの提供元を表す情報を合わせて自サーバ内に格納してもよい。また、格納部502は、受け付けたデータに関する業務を表す情報を合わせて格納してもよい。また、格納部502は、受け付けたデータの入力日時を合わせて自サーバ内に格納してもよい。
【0072】
なお、詳細は後述するが、処理対象データが、受付部501が受け付けたデータのときは、データ基盤システム200外またはデータ基盤システム200内の他のデータ処理サーバSjに当該データを出力する際に、当該データに対する加工が実施される。
【0073】
出力制御部503は、データ基盤システム200外またはデータ基盤システム200内の他のデータ処理サーバSjに、自サーバ内の第1のトランIDに対応するデータを出力する際に、当該データの改ざんの有無を判断する。例えば、出力制御部503は、自サーバ内の第1のトランIDに対応するデータから生成したハッシュ値(以下、「ハッシュ値$1」という)を取得する。
【0074】
また、出力制御部503は、共用記憶領域から、第1のトランIDに対応するハッシュ値(以下、「ハッシュ値$2」という)を取得する。具体的には、例えば、出力制御部503は、変更管理DB220から、第1のトランIDに対応するハッシュ値$2を取得する。
【0075】
そして、出力制御部503は、取得したハッシュ値$1とハッシュ値$2との比較結果に基づいて、第1のトランIDに対応するデータの改ざんの有無を判断する。具体的には、例えば、出力制御部503は、ハッシュ値$1とハッシュ値$2とが一致しない場合、第1のトランIDに対応するデータの改ざんを検知する。一方、ハッシュ値$1とハッシュ値$2とが一致する場合、出力制御部503は、第1のトランIDに対応するデータの改ざんを検知しない。
【0076】
出力制御部503は、第1のトランIDに対応するデータの改ざんを検知しなかった場合、データ基盤システム200外またはデータ基盤システム200内の他のデータ処理サーバSjに、第1のトランIDに対応するデータを出力する。具体的には、例えば、出力制御部503は、第1のトランIDに対応するデータに第1のトランIDを付与して、当該データを出力する。
【0077】
また、出力制御部503は、第1のトランIDに対応するデータの改ざんを検知した場合、データ基盤システム200外またはデータ基盤システム200内の他のデータ処理サーバSjに対する、第1のトランIDに対応するデータの出力を停止する。
【0078】
通知部504は、第1のトランIDに対応するデータの改ざんが検知された場合、データ基盤システム200のシステム管理者に対して、第1のトランIDを含む改ざん検知通知を出力する。具体的には、例えば、通知部504は、
図2に示した管理者端末203に、第1のトランIDに対応するデータの改ざんを検知した旨のメッセージ(改ざん検知通知)を送信してもよい。
【0079】
また、出力制御部503は、上述した処理対象データが、受付部501が受け付けたデータのときは、自サーバ内の第1のトランIDに対応するデータを出力するにあたり、第1のトランIDに対応するデータを加工する。データの加工は、例えば、出力制御部503の制御に従って、後述の
図6に示すETL#1~#3により行われる。
【0080】
具体的には、例えば、出力制御部503は、第1のトランIDに対応するデータの改ざんを検知しなかった場合に、第1のトランIDに対応するデータを加工する。そして、出力制御部503は、加工後のデータに第1のトランIDを付与して、当該加工後のデータを、データ基盤システム200外またはデータ基盤システム200内の他のデータ処理サーバSjに出力する。例えば、データの出力先が複数存在(他のデータ処理サーバSjが複数存在)し、出力先に応じて加工内容が異なるような場合には、データを出力する際に、当該データに対して出力先に応じた加工が実施される。
【0081】
なお、出力対象となるデータは、例えば、データ基盤システム200外のユーザ端末202(データ利用者)またはデータ基盤システム200内の他のデータ処理サーバSjから要求される。例えば、受付部501は、ユーザ端末202(データ利用者)またはデータ基盤システム200内の他のデータ処理サーバSjからデータ要求を受け付ける。データ要求は、データ処理サーバSi内のデータを要求するものである。
【0082】
データ要求には、例えば、要求するデータを特定する情報が含まれる。要求するデータを特定する情報は、例えば、要求するデータに対応するトランID(第1のトランID)である。また、要求するデータを特定する情報は、例えば、要求するデータに関する業務名であってもよく、データ提供者名であってもよい。出力制御部503は、例えば、受け付けたデータ要求から、出力対象となるデータを特定する。
【0083】
また、格納部502は、データ基盤システム200外からデータを受け付けた場合、データ基盤システム200内の復旧用記憶領域に、受け付けたデータを複製したバックアップデータを格納してもよい。復旧用記憶領域は、改ざんされたデータの復旧に用いられる記憶領域である。復旧用記憶領域は、例えば、後述の
図10に示すバックアップDB1000である。
【0084】
具体的には、例えば、格納部502は、データ基盤システム200外から受け付けたデータの入力日時、提供者および業務名と対応付けて、当該データを複製したバックアップデータをバックアップDB1000に格納してもよい。また、格納部502は、受け付けたデータに対応するトランIDと対応付けて、当該データを複製したバックアップデータをバックアップDB1000に格納してもよい。改ざんが検知されたデータの復旧例については、
図10を用いて後述する。
【0085】
(データ基盤システム200の動作例)
つぎに、
図6を用いて、データ基盤システム200の動作例について説明する。ここでは、データ処理サーバS1~Snを「データ連携サーバS1、データレイクサーバS2およびデータベースサーバS3」とする。
【0086】
図6は、データ基盤システム200の第1の動作例を示す説明図である。
図6において、データ基盤システム200は、データ連携サーバS1、データレイクサーバS2およびデータベースサーバS3を含む。データ基盤システム200において、データ連携サーバS1、データレイクサーバS2およびデータベースサーバS3は、イントラネット(ネットワーク210の一例)により接続される。
【0087】
データ連携サーバS1は、改ざん検知機構#1、ETL#1およびテンポラリ#1を有し、データ基盤システム200外からデータ受け付ける。改ざん検知機構#1は、
図5に示した制御部500により実現される機能の一例である。ETL#1は、データ連携ツールである。テンポラリ#1は、データ連携サーバS1内の記憶領域である。
【0088】
データレイクサーバS2は、改ざん検知機構#2、ETL#2およびデータレイク#2を有し、データ連携サーバS1からデータ受け付ける。改ざん検知機構#2は、
図5に示した制御部500により実現される機能の一例である。ETL#2は、データ連携ツールである。データレイク#2は、データレイクサーバS2内の記憶領域である。
【0089】
データベースサーバS3は、改ざん検知機構#3、ETL#3およびデータベース#3を有し、データレイクサーバS2からデータ受け付ける。改ざん検知機構#3は、
図5に示した制御部500により実現される機能の一例である。ETL#3は、データ連携ツールである。データベース#3は、データベースサーバS3内の記憶領域である。
【0090】
データ連携サーバS1では、例えば、データ基盤システム200外からのデータの仕分けが行われる。データレイクサーバS2では、データ連携サーバS1からのデータが一時的に保存される。データベースサーバS3では、データレイクサーバS2からのデータがデータ利用者に参照可能に格納される。
【0091】
各サーバS1~S3では、各ETL#1~#3により、入力されたデータに対して、あらかじめ決められた変換処理(加工)が行われる。データの変換例については、
図9Aおよび
図9Bを用いて後述する。
【0092】
ここで、データ提供者601が、ユーザ端末202を用いて、データ基盤システム200に対してデータ610を入力する場合を想定する。データ提供者601は、例えば、卸売業者である。データ利用者602は、例えば、小売業者である。データ610は、商品Aの発注数「100」を示す。
【0093】
この場合、データ連携サーバS1において、改ざん検知機構#1は、データ基盤システム200外のデータ提供者601(ユーザ端末202)からデータ610を受け付ける。データ610には、トランID「1233」、業務名「OrderA」、提供者「Owner1」が付与されているとする。
【0094】
改ざん検知機構#1は、ETL#1により、受け付けたデータ610を変換する。ここでは、データ610を変換した変換後のデータを「データ611」とする。改ざん検知機構#1は、データ611から生成したハッシュ値を取得する。ここでは、ハッシュ値「098f6bcd4621d373cade4e832627b4f6」が取得された場合を想定する。
【0095】
改ざん検知機構#1は、受け付けたデータ610に対応するトランID「1233」、業務名「OrderA」および提供者「Owner1」と対応付けて、取得したハッシュ値を管理用DBサーバ201に格納する。また、改ざん検知機構#1は、受け付けたデータ610に対応するトランID「1233」と対応付けて、データ611をテンポラリ#1に格納する。
【0096】
ここで、
図7を用いて、変更管理DB220の更新例について説明する。
【0097】
図7は、変更管理DB220の更新例を示す説明図である。
図7において、トランID「1233」、業務名「OrderA」および提供者「Owner1」と対応付けて、ハッシュ値「098f6…」が格納された結果、管理用DBサーバ201に新たな変更管理情報400-1が登録されている。
【0098】
変更管理情報400-1には、入力日時「20221222」および処理中サーバ「データ連携サーバ」が設定されている。ただし、
図7では、入力日時の日付のみ表示している。また、この時点では、変更管理情報400-1の出力日時は「-」である。
【0099】
図6の説明に戻り、データ連携サーバS1において、改ざん検知機構#1は、データ基盤システム200内のデータレイクサーバS2に、テンポラリ#1内のトランID「1233」に対応するデータ611を出力する際に、データ611の改ざんの有無を判断する。データレイクサーバS2へのデータ出力は、例えば、データレイクサーバS2からのデータ要求に応じて実行される。また、データレイクサーバS2へのデータ出力は、あらかじめ決められた日時に実行されてもよい。
【0100】
例えば、改ざん検知機構#1は、テンポラリ#1内のトランID「1233」に対応するデータ611から生成したハッシュ値$1を取得する。また、改ざん検知機構#1は、変更管理DB220から、トランID「1233」に対応するハッシュ値$2を取得する。
図7の例では、トランID「1233」に対応するハッシュ値$2は、ハッシュ値「098f6bcd4621d373cade4e832627b4f6」である。
【0101】
そして、改ざん検知機構#1は、取得したハッシュ値$1とハッシュ値$2との比較結果に基づいて、テンポラリ#1内のトランID「1233」に対応するデータ611の改ざんの有無を判断する。ここでは、ハッシュ値$1とハッシュ値$2とが一致する場合を想定する。
【0102】
この場合、改ざん検知機構#1は、テンポラリ#1内のトランID「1233」に対応するデータ611の改ざんを検知しない。このため、改ざん検知機構#1は、データ基盤システム200内のデータレイクサーバS2に、テンポラリ#1内のトランID「1233」に対応するデータ611を出力する。
【0103】
データレイクサーバS2において、改ざん検知機構#2は、データ基盤システム200内のデータ連携サーバS1からデータ611を受け付ける。データ611には、トランID「1233」が付与されている。
【0104】
改ざん検知機構#2は、ETL#2により、受け付けたデータ611を変換する。ここでは、データ611を変換した変換後のデータを「データ612」とする。改ざん検知機構#1は、データ612から生成したハッシュ値を取得する。ここでは、ハッシュ値「484e02392dkj82734kghb32avb2ap380」が取得された場合を想定する。
【0105】
改ざん検知機構#2は、受け付けたデータ611に対応するトランID「1233」と対応付けて、取得したハッシュ値を管理用DBサーバ201に格納する。また、改ざん検知機構#2は、受け付けたデータ611に対応するトランID「1233」と対応付けて、データ612をデータレイク#2に格納する。
【0106】
具体的には、例えば、
図7に示すように、改ざん検知機構#2は、管理用DBサーバ201内のトランID「1233」に対応する変更管理情報400-1のハッシュ値を「484e02392dkj82734kghb32avb2ap380」に更新する。また、改ざん検知機構#2は、変更管理情報400-1の処理中サーバを「データレイクサーバ」に更新する。
【0107】
ここで、
図6に示すように、悪意のあるユーザ603により、ユーザ端末202を用いて、データレイク#2内のトランID「1233」に対応するデータ612が改ざんされた場合を想定する。ここでは、データ612の商品Aの発注数が「1000」に改ざんされたとする。
【0108】
このあと、データレイクサーバS2において、改ざん検知機構#2は、データ基盤システム200内のデータベースサーバS3に、データレイク#2内のトランID「1233」に対応するデータ612を出力する際に、データ612の改ざんの有無を判断する。
【0109】
例えば、改ざん検知機構#2は、データレイク#2内のトランID「1233」に対応するデータ612から生成したハッシュ値$1’を取得する。また、改ざん検知機構#2は、変更管理DB220から、トランID「1233」に対応するハッシュ値$2’を取得する。
図7の例では、トランID「1233」に対応するハッシュ値$2’は、ハッシュ値「484e02392dkj82734kghb32avb2ap380」である。
【0110】
そして、改ざん検知機構#2は、取得したハッシュ値$1’とハッシュ値$2’との比較結果に基づいて、データレイク#2内のトランID「1233」に対応するデータ612の改ざんの有無を判断する。ここでは、データ612が改ざんされているため、ハッシュ値$1’とハッシュ値$2’とが一致しない。
【0111】
この場合、改ざん検知機構#2は、データレイク#2内のトランID「1233」に対応するデータ612の改ざんを検知する。このため、改ざん検知機構#2は、データ基盤システム200内のデータベースサーバS3に対する、トランID「1233」に対応するデータ612の出力を停止する。このため、データ利用者602(ユーザ端末202)へのデータ出力は行われない。
【0112】
そして、改ざん検知機構#2は、データ基盤システム200のシステム管理者604の管理者端末203に対して、改ざん検知通知620を出力する。改ざん検知通知620は、例えば、トランID「1233」に対応するデータ612の改ざんを検知した旨のメッセージを含む。
【0113】
これにより、データレイクサーバS2は、データ基盤システム200内のデータベースサーバS3に、改ざんされたデータ612が出力されるのを防ぐことができる。また、データレイクサーバS2は、データ基盤システム200のシステム管理者604に、トランID「1233」に対応するデータ612が改ざんされたことを通知することができる。
【0114】
なお、データレイク#2内のトランID「1233」に対応するデータ612の改ざんが検知されなかった場合、
図8に示すように、データ基盤システム200内のデータベースサーバS3に、データレイク#2内のトランID「1233」に対応するデータ612が出力される。
【0115】
図8は、データ基盤システム200の第2の動作例を示す説明図である。
図8において、データレイクサーバS2において、改ざん検知機構#2は、データ基盤システム200内のデータベースサーバS3に、データレイク#2内のトランID「1233」に対応するデータ612を出力する。
【0116】
データベースサーバS3において、改ざん検知機構#3は、データ基盤システム200内のデータレイクサーバS2からデータ612を受け付ける。データ612には、トランID「1233」が付与されている。
【0117】
改ざん検知機構#3は、ETL#3により、受け付けたデータ612を変換する。ここでは、データ612を変換した変換後のデータを「データ613」とする。改ざん検知機構#3は、データ613から生成したハッシュ値を取得する。
【0118】
改ざん検知機構#3は、受け付けたデータ612に対応するトランID「1233」と対応付けて、取得したハッシュ値を管理用DBサーバ201に格納する。これにより、管理用DBサーバ201内のトランID「1233」に対応する変更管理情報400-1(ハッシュ値、処理中サーバ)が更新される。また、改ざん検知機構#3は、受け付けたデータ612に対応するトランID「1233」と対応付けて、データ613をデータベース#3に格納する。
【0119】
データベースサーバS3において、改ざん検知機構#3は、データ基盤システム200外のデータ利用者602に、データベース#3内のトランID「1233」に対応するデータ613を出力する際に、データ613の改ざんの有無を判断する。
【0120】
例えば、改ざん検知機構#3は、データベース#3内のトランID「1233」に対応するデータ613から生成したハッシュ値$1’’を取得する。また、改ざん検知機構#3は、変更管理DB220から、トランID「1233」に対応するハッシュ値$2’’を取得する。
【0121】
そして、改ざん検知機構#3は、取得したハッシュ値$1’’とハッシュ値$2’’との比較結果に基づいて、データベース#3内のトランID「1233」に対応するデータ613の改ざんの有無を判断する。ここでは、ハッシュ値$1’’とハッシュ値$2’’とが一致する場合を想定する。
【0122】
この場合、改ざん検知機構#3は、データベース#3内のトランID「1233」に対応するデータ613の改ざんを検知しない。このため、改ざん検知機構#3は、データ基盤システム200外のデータ利用者602(ユーザ端末202)に、データベース#3内のトランID「1233」に対応するデータ613を出力する。
【0123】
これにより、データ基盤システム200は、データ提供者601からのデータがサーバ間を経由する際に変換される場合であっても、データの真正性を確保してデータ利用者602に提供することができる。なお、改ざん検知機構#3は、データ基盤システム200外にデータ613を出力した場合、管理用DBサーバ201内のトランID「1233」に対応する変更管理情報400-1の出力日時を更新する。
【0124】
(データの変換例)
つぎに、
図9Aおよび
図9Bを用いて、データ基盤システム200におけるデータの変換例について説明する。
【0125】
図9Aは、変換前のデータの具体例を示す説明図である。
図9Aにおいて、伝票データ901は、データ基盤システム200外のユーザ(例えば、
図6に示したデータ提供者601)から入力される変換前のデータ(ファイル)の一例である。伝票データ901には、CSV形式で取引に関する情報が記述されている。
【0126】
図9Bは、変換後のデータの具体例を示す説明図である。
図9Bにおいて、伝票データ902は、データ基盤システム200内のデータ処理サーバSi(例えば、
図6に示したデータ連携サーバS1のETL#1)において、
図9Aに示した伝票データ901を変換(加工)した変換後のデータの一例である。
【0127】
伝票データ902では、発注先システムに適合するように、伝票データ901における4桁のレコード番号が、8桁のレコード番号に変換されている。また、伝票データ902では、伝票データ901における版数の項目が削除され、伝票データ901にはないユーザ属性、残数量の項目が追加されている。
【0128】
このように、データ基盤システム200では、例えば、発注元システム独自のレイアウトのデータ(伝票データ901)を発注先システムに適合するようなデータ(伝票データ902)に変換することができる。
【0129】
(データの復旧例)
つぎに、改ざんが検知されたデータの復旧例について説明する。ここでは、データ基盤システム200のシステム管理者604に対して、改ざん検知通知620が出力された場合を想定する(
図6参照)。
【0130】
図10は、データの復旧例を示す説明図である。
図10において、まず、システム管理者604は、改ざん検知通知620(
図6参照)を参照して、改ざんが検知されたデータ612に対応するトランID「1233」を特定する。つぎに、システム管理者604は、管理者端末203を用いて、管理用DBサーバ201にアクセスして、変更管理DB220内のトランID「1233」に対応する変更管理情報400-1を特定する。
【0131】
そして、システム管理者604は、特定した変更管理情報400-1を参照して、入力日時、業務名および提供者を特定する。つぎに、システム管理者604は、特定した入力日時、業務名および提供者をもとに、バックアップDB1000からデータ610aを取得する。データ610aは、改ざんが検知されたデータ612の元データ(データ610)のバックアップデータである。
【0132】
そして、システム管理者604は、管理者端末203を用いて、取得したデータ610aをデータ基盤システム200に再入力する。これにより、データ基盤システム200内の各サーバS1,S2において、再入力されたデータ610aに対する変換が順次行われて、改ざんが検知されたデータ612が復旧される。
【0133】
なお、バックアップDB1000には、トランID「1233」と対応付けてデータ610aが格納されていてもよい。この場合、システム管理者604は、トランID「1233」をもとに、改ざんが検知されたデータ612のバックアップデータ(データ610a)を特定してもよい。
【0134】
また、上述した説明では、システム管理者604が、取得したデータ610aをデータ基盤システム200に再入力することにしたが、これに限らない。例えば、システム管理者604は、データ610aの内容によっては、データ提供者601にデータの再提供を依頼してもよい。
【0135】
(データ処理サーバSiのデータ管理処理手順)
つぎに、データ処理サーバSiのデータ管理処理手順について説明する。まず、
図11を用いて、データ処理サーバSiの第1のデータ管理処理手順について説明する。第1のデータ管理処理は、データ処理サーバSiへのデータ入力時に実行される。
【0136】
図11は、データ処理サーバSiの第1のデータ管理処理手順の一例を示すフローチャートである。
図11のフローチャートにおいて、まず、データ処理サーバSiは、データ基盤システム200外またはデータ基盤システム200内の他のデータ処理サーバSjからデータを受け付けたか否かを判断する(ステップS1101)。
【0137】
ここで、データ処理サーバSiは、データを受け付けるのを待つ(ステップS1101:No)。そして、データ処理サーバSiは、データを受け付けた場合(ステップS1101:Yes)、ETL機能(例えば、
図6に示したETL#1~#3)により、受け付けたデータを変換する(ステップS1102)。
【0138】
つぎに、データ処理サーバSiは、変換後のデータのハッシュ値を取得する(ステップS1103)。そして、データ処理サーバSiは、管理用DBサーバ201にアクセスすることにより、変更管理DB220を参照して、受け付けたデータに付与されたトランIDに対応する変更管理情報があるか否かを判断する(ステップS1104)。
【0139】
ここで、変更管理情報がない場合(ステップS1104:No)、データ処理サーバSiは、データに付与されたトランIDと対応付けて、取得したハッシュ値を格納することにより、変更管理DB220に変更管理情報を新規登録して(ステップS1105)、ステップS1107に移行する。
【0140】
一方、変更管理情報がある場合(ステップS1104:Yes)、データ処理サーバSiは、トランIDに対応する変更管理情報のハッシュ値を、取得したハッシュ値で上書きすることにより、変更管理DB220内の変更管理情報を更新する(ステップS1106)。
【0141】
そして、データ処理サーバSiは、受け付けたデータに対応するトランIDと対応付けて、変換後のデータを自サーバ内に蓄積して(ステップS1107)、本フローチャートによる一連の処理を終了する。
【0142】
これにより、データ処理サーバSiは、データ基盤システム200外またはデータ基盤システム200内の他のデータ処理サーバSjからデータを受け付けた際に、データに対してあらかじめ決められた変換を施すとともに、変換後のデータのハッシュ値を実データ(変換後のデータ)と異なる記憶媒体(変更管理DB220)に格納することができる。
【0143】
なお、データ処理サーバSiは、ステップS1102において、受け付けたデータを変換することにしたが、これに限らない。例えば、データの変換処理は、データ出力時に実行されてもよい。この場合、データ処理サーバSiは、受け付けたデータのハッシュ値を取得して、変更管理DB220に格納する。
【0144】
つぎに、
図12を用いて、データ処理サーバSiの第2のデータ管理処理手順について説明する。第2のデータ管理処理は、データ処理サーバSiからのデータ出力時に実行される。
【0145】
図12は、データ処理サーバSiの第2のデータ管理処理手順の一例を示すフローチャートである。
図12のフローチャートにおいて、まず、データ処理サーバSiは、データ基盤システム200外またはデータ基盤システム200内の他のデータ処理サーバSjからデータ取得要求を受け付けたか否かを判断する(ステップS1201)。
【0146】
ここで、データ処理サーバSiは、データ取得要求を受け付けるのを待つ(ステップS1201:No)。そして、データ処理サーバSiは、データ取得要求を受け付けた場合(ステップS1201:Yes)、自サーバ内に蓄積したデータのうち、データ取得要求に応じたデータを抽出する(ステップS1202)。
【0147】
例えば、データ取得要求にトランIDが含まれる場合、データ取得要求に応じたデータは、当該トランIDに対応するデータである。また、データ取得要求にデータ提供元の情報が含まれる場合、データ取得要求に応じたデータは、当該データ提供元に対応するデータであってもよい。また、データ取得要求に業務名が含まれる場合、データ取得要求に応じたデータは、当該業務名に対応するデータであってもよい。また、データ取得要求に指定期間が含まれる場合、データ取得要求に応じたデータは、当該指定期間内に入力日時が含まれるデータであってもよい。
【0148】
つぎに、データ処理サーバSiは、抽出したデータのハッシュ値を取得する(ステップS1203)。つぎに、データ処理サーバSiは、管理用DBサーバ201にアクセスすることにより、変更管理DB220を参照して、抽出したデータに対応付けられたトランIDに対応するハッシュ値を取得する(ステップS1204)。
【0149】
そして、データ処理サーバSiは、ステップS1203において取得されたハッシュ値と、ステップS1204において取得されたハッシュ値とが一致するか否かを判断する(ステップS1205)。ここで、ハッシュ値が一致する場合(ステップS1205:Yes)、データ処理サーバSiは、データ取得要求元に対して、抽出したデータを出力して(ステップS1206)、本フローチャートによる一連の処理を終了する。
【0150】
一方、ハッシュ値が一致しない場合(ステップS1205:No)、データ処理サーバSiは、抽出したデータの改ざんを検知する(ステップS1207)。つぎに、データ処理サーバSiは、データ基盤システム200のシステム管理者に対して、抽出したデータに対応付けられたトランIDを含む改ざん検知通知を出力する(ステップS1208)。
【0151】
そして、データ処理サーバSiは、データ取得要求元に対する、抽出したデータの出力を停止して(ステップS1209)、本フローチャートによる一連の処理を終了する。
【0152】
これにより、データ処理サーバSiは、データ基盤システム200外またはデータ基盤システム200内の他のデータ処理サーバSjにデータを出力する際に、実データ(出力対象のデータ)と異なる記憶媒体(変更管理DB220)に格納したハッシュ値を用いて改ざんを検知することができる。また、データ処理サーバSiは、データの改ざんを検知した場合、システム管理者に対して、データの改ざんを検知したことを通知するとともに、改ざんされたデータの出力を停止することができる。
【0153】
なお、データ処理サーバSiは、データ出力時に変換処理を実行する場合、例えば、ステップS1205においてハッシュ値が一致する場合に(ステップS1205:Yes)、抽出したデータを変換してもよい。そして、データ処理サーバSiは、データ取得要求元に対して、変換した変換後のデータを出力してもよい。
【0154】
以上説明したように、実施の形態にかかるデータ処理サーバSiによれば、データ基盤システム200外またはデータ基盤システム200内の他のデータ処理サーバSjからデータを受け付けることができる。また、データ処理サーバSiによれば、受け付けたデータに対応するトランIDと対応付けて、処理対象データから生成したハッシュ値を共用記憶領域に格納し、処理対象データを当該トランIDと対応付けて、自装置内に格納することができる。処理対象データは、受け付けたデータまたは当該データを加工した加工後のデータのいずれかのデータである。共用記憶領域は、データ処理サーバS1~Snからアクセス可能な共用の記憶領域であり、例えば、管理用DBサーバ201が有する変更管理DB220である。
【0155】
これにより、データ処理サーバSiは、データ提供者または他のデータ処理サーバSjからデータを受け付けた際に、実データ(処理対象データ)と異なる記憶媒体(例えば、変更管理DB220)にデータのハッシュ値を格納することができる。例えば、データ処理サーバSiは、改ざん検知用のハッシュ値を管理用DBサーバ201で管理することで、自サーバ内で管理する場合に比べて管理負荷を削減することができる。また、データ処理サーバSiは、改ざん検知のために、自サーバ内の記憶容量が圧迫されるのを防ぐことができる。
【0156】
また、データ処理サーバSiによれば、データ基盤システム200外またはデータ基盤システム200内の他のデータ処理サーバSjに、自サーバ内の第1のトランIDに対応するデータを出力する際に、当該データから生成したハッシュ値$1を取得することができる。そして、データ処理サーバSiによれば、共用記憶領域から第1のトランIDに対応するハッシュ値$2を取得し、取得したハッシュ値$1とハッシュ値$2とが一致しない場合に、自サーバ内の第1のトランIDに対応するデータの改ざんを検知することができる。
【0157】
これにより、データ処理サーバSiは、データ利用者または他のデータ処理サーバSjにデータを出力する際に、実データと異なる記憶媒体(例えば、変更管理DB220)に格納したハッシュ値を用いて、データの改ざんを検知することができる。例えば、データ処理サーバSiは、実データを比較して改ざんを検知する場合に比べて、比較処理にかかる負荷を削減することができる。
【0158】
また、データ処理サーバSiによれば、第1のトランIDに対応するデータの改ざんを検知した場合、データ基盤システム200のシステム管理者に対して、第1のトランIDを含む改ざん検知通知を出力することができる。
【0159】
これにより、データ処理サーバSiは、データの改ざんを検知した場合、システム管理者に対して、第1のトランIDに対応するデータが改ざんされていることを通知することができる。システム管理者は、データの改ざんが検知された際に、第1のトランIDをキーとして、改ざんされたデータを容易に特定することができ、データの由来などを追跡することができる。
【0160】
また、データ処理サーバSiによれば、第1のトランIDに対応するデータの改ざんを検知した場合、データ基盤システム200外またはデータ基盤システム200内の他のデータ処理サーバSjに対する、第1のトランIDに対応するデータの出力を停止することができる。
【0161】
これにより、データ処理サーバSiは、第1のトランIDに対応するデータの改ざんを検知した場合、改ざんされたデータの出力を停止して、被害の拡大を防ぐことができる。
【0162】
また、データ処理サーバSiによれば、取得したハッシュ値$1とハッシュ値$2とが一致する場合、データ基盤システム200外またはデータ基盤システム200内の他のデータ処理サーバSjに、第1のトランIDに対応するデータを出力することができる。
【0163】
これにより、データ処理サーバSiは、データ利用者または他のデータ処理サーバSjに対して、真正性が確保されたデータを出力することができる。
【0164】
また、データ処理サーバSiによれば、共用記憶領域にハッシュ値を格納する際に、受け付けたデータに対応するトランIDと対応付けて、さらに、受け付けたデータの提供元を表す情報を格納することができる。
【0165】
これにより、データ処理サーバSiは、管理用DBサーバ201の変更管理DB220において、第1のトランIDを用いて、改ざん検知用のハッシュ値とともに、データ提供者を特定可能な情報を一元管理することができる。システム管理者は、例えば、データの改ざんが検知された際に、第1のトランIDをキーとして、データ提供者(データの由来)を把握することができる。また、システム管理者は、データ提供者に連絡して、改ざんされたデータの再提供を依頼することができる。また、システム管理者は、例えば、データ提供者の属性、取引内容などを手がかりにして、同様のデータが改ざんされる可能性があることを判断して、データ提供者に注意喚起することができる。
【0166】
また、データ処理サーバSiによれば、共用記憶領域にハッシュ値を格納する際に、受け付けたデータに対応するトランIDと対応付けて、さらに、受け付けたデータに関する業務を表す情報を格納することができる。
【0167】
これにより、データ処理サーバSiは、管理用DBサーバ201の変更管理DB220において、第1のトランIDを用いて、改ざん検知用のハッシュ値とともに、データが用いられる業務を特定可能な情報を一元管理することができる。システム管理者は、例えば、データの改ざんが検知された際に、第1のトランIDをキーとして、改ざんされたデータにかかる業務を把握することができる。また、システム管理者は、業務の種類や内容などから、データの改ざんが、即座に解消すべき緊急性の高い問題なのかどうかを判断することができる。
【0168】
また、データ処理サーバSiによれば、共用記憶領域にハッシュ値を格納する際に、受け付けたデータに対応するトランIDと対応付けて、さらに、当該トランIDに対応するデータが自装置に存在することを表す情報を格納することができる。
【0169】
これにより、データ処理サーバSiは、管理用DBサーバ201の変更管理DB220において、第1のトランIDを用いて、改ざん検知用のハッシュ値とともに、データ処理中のサーバを特定可能な情報を一元管理することができる。システム管理者は、例えば、データの改ざんが検知された際に、第1のトランIDをキーとして、改ざんされたデータがどこにあるのかを把握することができる。
【0170】
また、データ処理サーバSiによれば、処理対象データが、受け付けたデータのときは、ハッシュ値$1とハッシュ値$2とが一致する場合に、自装置内の第1のトランIDに対応するデータを加工した加工後のデータを出力することができる。
【0171】
これにより、データ処理サーバSiは、加工元のデータの真正性を確認した上で、データに対する加工(ETLによる変換)を実施することができる。
【0172】
また、データ処理サーバSiによれば、データ基盤システム200外からデータを受け付けた場合、データ基盤システム200内の復旧用記憶領域に、受け付けたデータを複製したバックアップデータを格納することができる。
【0173】
これにより、データ処理サーバSiは、データが改ざんされる場合があることを想定して、データを復旧するためのバックアップデータを蓄積することができる。
【0174】
これらのことから、データ処理サーバSiは、データ提供者から入力されるデータがデータ基盤システム200内のサーバ間を経由する際に変換される場合であっても、データの真正性を確保してデータ利用者に提供することができる。また、データ処理サーバSiは、データの変更記録(例えば、変更管理DB220内の変更管理情報)を実データと分離して管理用DBサーバ201上で管理することで、自サーバでのデータ処理の性能を犠牲にすることなく、データの改ざんを検知することができる。
【0175】
また、システム管理者は、データの改ざんがされた場合に、各サーバのログを収集して解析する場合などに比べて、データ基盤システム200内で「いつ」、「どこで」改ざんが発生したかを容易に特定することが可能となり、データ復旧までにかかる時間を短縮することができる。データ基盤システム200は、例えば、サプライチェーンにおける事業者間(卸売業者と小売業者など)で伝票データなどを共有する場合に利用することができる。
【0176】
なお、本実施の形態で説明したデータ管理方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本データ管理プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本データ管理プログラムは、インターネット等のネットワークを介して配布してもよい。
【0177】
また、本実施の形態で説明した処理装置101(データ処理サーバSi)は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
【0178】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0179】
(付記1)1以上の処理装置を含むシステム内の処理装置であって、
前記システム外または前記システム内の他の処理装置からデータを受け付けた場合、受け付けた前記データに対応する第1のIDと対応付けて、前記データまたは当該データを加工した加工後のデータのいずれかのデータから生成した第1のハッシュ値を、前記1以上の処理装置からアクセス可能な共用記憶領域に格納し、
前記いずれかのデータを前記第1のIDと対応付けて、自装置内に格納し、
前記システム外または前記システム内の他の処理装置に、自装置内の前記第1のIDに対応するデータを出力する際に、当該データから生成した第2のハッシュ値を取得し、
前記共用記憶領域から前記第1のIDに対応する前記第1のハッシュ値を取得し、
取得した前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合に、自装置内の前記第1のIDに対応するデータの改ざんを検知する、
制御部を有することを特徴とする処理装置。
【0180】
(付記2)前記制御部は、
前記第1のIDに対応するデータの改ざんを検知した場合、前記システムの管理者に対して、前記第1のIDを含む改ざん検知通知を出力する、ことを特徴とする付記1に記載の処理装置。
【0181】
(付記3)前記制御部は、
前記第1のIDに対応するデータの改ざんを検知した場合、前記システム外または前記システム内の他の処理装置に対する、自装置内の前記第1のIDに対応するデータの出力を停止する、ことを特徴とする付記1または2に記載の処理装置。
【0182】
(付記4)前記制御部は、
取得した前記第1のハッシュ値と前記第2のハッシュ値とが一致する場合、前記システム外または前記システム内の他の処理装置に、自装置内の前記第1のIDに対応するデータを出力する、ことを特徴とする付記1~3のいずれか一つに記載の処理装置。
【0183】
(付記5)前記制御部は、
前記共用記憶領域に前記第1のハッシュ値を格納する際に、前記第1のIDと対応付けて、さらに、受け付けた前記データの提供元を表す情報を格納する、ことを特徴とする付記2に記載の処理装置。
【0184】
(付記6)前記制御部は、
前記共用記憶領域に前記第1のハッシュ値を格納する際に、前記第1のIDと対応付けて、さらに、受け付けた前記データに関する業務を表す情報を格納する、ことを特徴とする付記2に記載の処理装置。
【0185】
(付記7)前記制御部は、
前記共用記憶領域に前記第1のハッシュ値を格納する際に、前記第1のIDと対応付けて、さらに、前記第1のIDに対応するデータが自装置に存在することを表す情報を格納する、ことを特徴とする付記2に記載の処理装置。
【0186】
(付記8)前記制御部は、
前記いずれかのデータが、受け付けた前記データのときは、前記第1のハッシュ値と前記第2のハッシュ値とが一致する場合に、自装置内の前記第1のIDに対応するデータを加工した加工後のデータを出力する、ことを特徴とする付記4に記載の処理装置。
【0187】
(付記9)前記制御部は、
前記システム外からデータを受け付けた場合、前記システム内の復旧用記憶領域に、受け付けたデータを複製したバックアップデータを格納する、ことを特徴とする付記1~8のいずれか一つに記載の処理装置。
【0188】
(付記10)1以上の処理装置を含むシステム内の処理装置が、
前記システム外または前記システム内の他の処理装置からデータを受け付けた場合、受け付けた前記データに対応する第1のIDと対応付けて、前記データまたは当該データを加工した加工後のデータのいずれかのデータから生成した第1のハッシュ値を、前記1以上の処理装置からアクセス可能な共用記憶領域に格納し、
前記いずれかのデータを前記第1のIDと対応付けて、自装置内に格納し、
前記システム外または前記システム内の他の処理装置に、自装置内の前記第1のIDに対応するデータを出力する際に、当該データから生成した第2のハッシュ値を取得し、
前記共用記憶領域から前記第1のIDに対応する前記第1のハッシュ値を取得し、
取得した前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合に、自装置内の前記第1のIDに対応するデータの改ざんを検知する、
処理を実行することを特徴とするデータ管理方法。
【0189】
(付記11)1以上の処理装置を含むシステム内の処理装置に、
前記システム外または前記システム内の他の処理装置からデータを受け付けた場合、受け付けた前記データに対応する第1のIDと対応付けて、前記データまたは当該データを加工した加工後のデータのいずれかのデータから生成した第1のハッシュ値を、前記1以上の処理装置からアクセス可能な共用記憶領域に格納し、
前記いずれかのデータを前記第1のIDと対応付けて、自装置内に格納し、
前記システム外または前記システム内の他の処理装置に、自装置内の前記第1のIDに対応するデータを出力する際に、当該データから生成した第2のハッシュ値を取得し、
前記共用記憶領域から前記第1のIDに対応する前記第1のハッシュ値を取得し、
取得した前記第1のハッシュ値と前記第2のハッシュ値とが一致しない場合に、自装置内の前記第1のIDに対応するデータの改ざんを検知する、
処理を実行させることを特徴とするデータ管理プログラム。
【符号の説明】
【0190】
100 システム
101 処理装置
102,601 データ提供者
103,602 データ利用者
104,603 悪意のあるユーザ
110 共用記憶領域
111,112?,610a,610,611,612,613 データ
112 処理対象データ
113 第1のハッシュ値
114 第2のハッシュ値
120 第1のID
130 記憶領域
200 データ基盤システム
201 管理用DBサーバ
202 ユーザ端末
203 管理者端末
210 ネットワーク
220 変更管理DB
300 バス
301 CPU
302 メモリ
303 ディスクドライブ
304 ディスク
305 通信I/F
306 可搬型記録媒体I/F
307 可搬型記録媒体
500 制御部
501 受付部
502 格納部
503 出力制御部
504 通知部
604 システム管理者
620 改ざん検知通知
901,902 伝票データ
1000 バックアップDB
S1~Sn,Si,Sj データ処理サーバ