JP7429755B2 - 検査システム、検査方法、およびコンピュータプログラム - Google Patents

検査システム、検査方法、およびコンピュータプログラム Download PDF

Info

Publication number
JP7429755B2
JP7429755B2 JP2022171056A JP2022171056A JP7429755B2 JP 7429755 B2 JP7429755 B2 JP 7429755B2 JP 2022171056 A JP2022171056 A JP 2022171056A JP 2022171056 A JP2022171056 A JP 2022171056A JP 7429755 B2 JP7429755 B2 JP 7429755B2
Authority
JP
Japan
Prior art keywords
test
inspection
data
unit
inspection target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022171056A
Other languages
English (en)
Other versions
JP2023002748A (ja
Inventor
照博 田篭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Publication of JP2023002748A publication Critical patent/JP2023002748A/ja
Application granted granted Critical
Publication of JP7429755B2 publication Critical patent/JP7429755B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/561Virus type analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明はデータ処理技術に関し、特に検査システム、検査方法、およびコンピュータプログラムに関する。
近年、情報セキュリティが重要視されており、多くのコンピュータにアンチウイルスソフトウェアが導入されている(例えば、特許文献1参照)。
特開2017-021779号公報
アンチウイルスソフトウェアの導入は進んでいるが、現実的に、1つのアンチウイルスソフトウェアで全てのマルウェア(コンピュータウイルス、トロイの木馬、スパイウェア等)を検出することはできない。また、1つのコンピュータに、ベンダーや特性が異なる複数種類のアンチウイルスソフトウェアを導入することには、多大なコストがかかる。
本発明は、上記課題に鑑みてなされたものであり、1つの目的は、電子データの検査を支援する技術を提供することにある。
上記課題を解決するために、本発明のある態様の検査システムは、検査対象データを所定領域へ記録する第1の装置と、検査対象データが不正か否かを検査するユーザにより操作される第2の装置と、検査対象データに対する検査結果を使用する第3の装置と、を備える。第2の装置は、第1の装置により記録された検査対象データを取得して、検査対象データに対する検査結果を所定領域へ記録し、第3の装置は、第2の装置により記録された検査結果を取得する。
本発明の別の態様もまた、検査システムである。この検査システムは、検査の依頼者により操作される依頼者装置と、一人以上の検査者により操作される一つ以上の検査者装置と、依頼者装置と検査者装置とがアクセス可能なブロックチェーンシステムと、を備える。依頼者装置は、検査対象データを所定領域へ記録するとともに、検査の報酬をブロックチェーンシステムへ記録し、検査者装置は、依頼者装置により記録された検査対象データを取得して、検査対象データに対する検査結果を所定領域へ記録し、依頼者装置は、検査者装置により記録された検査結果を取得し、依頼者により検査結果が正解と認定された検査者である正解者のデータをブロックチェーンシステムへ記録し、ブロックチェーンシステムは、正解者に対して検査の報酬を分配する。
本発明のさらに別の態様は、検査方法である。この方法は、第1の装置が、検査対象データを所定領域へ記録するステップと、検査対象データが不正か否かを検査するユーザにより操作される第2の装置が、第1の装置により記録された検査対象データを取得するステップと、第2の装置が、検査対象データに対する検査結果を所定領域へ記録するステップと、検査対象データに対する検査結果を使用する第3の装置が、第2の装置により記録された検査結果を取得するステップと、を備える。
本発明のさらに別の態様もまた、検査方法である。この方法は、検査の依頼者により操作される依頼者装置が、検査対象データを所定領域へ記録するとともに、検査の報酬をブロックチェーンシステムへ記録するステップと、一人以上の検査者により操作される一つ以上の検査者装置のそれぞれが、依頼者装置により記録された検査対象データを取得して、検査対象データに対する検査結果を所定領域へ記録するステップと、依頼者装置が、一つ以上の検査者装置により記録された検査結果を取得し、依頼者により検査結果が正解と認定された検査者である正解者のデータをブロックチェーンシステムへ記録するステップと、ブロックチェーンシステムが、正解者に対して検査の報酬を分配するステップと、を備える。
なお、以上の構成要素の任意の組合せ、本発明の表現を、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、電子データの検査を支援することができる。
第1実施例の検査システムの構成を示す図である。 図1のファイルサーバの機能構成を示すブロック図である。 図1のユーザ装置の機能構成を示すブロック図である。 VCの概念的なプログラムコードを示す図である。 VCの概念的なプログラムコードを示す図である。 ICの概念的なプログラムコードを示す図である。 検査Appの概念的なプログラムコードを示す図である。 依頼者装置の動作を示すフローチャートである 検査者装置の動作を示すフローチャートである。 閲覧者装置の動作を示すフローチャートである。 変形例3の検査システムの構成を示す図である。 第2実施例の検査システムの構成を示す図である。 図11の依頼者装置の機能ブロックを示すブロック図である。 図11の検査者装置の機能ブロックを示すブロック図である。 図11の閲覧者装置の機能ブロックを示すブロック図である。 図11のブロックチェーンシステムの機能ブロックを示すブロック図である。 検査情報の例を示す図である。 検査の依頼に関する動作を示すフローチャートである。 検査の実施に関する動作を示すフローチャートである。 依頼者の結果判定に関する動作を示すフローチャートである。 検査者による最終コミットに関する動作を示すフローチャートである。 検査結果閲覧時の動作を示すフローチャートである。 変形例の検査システムの構成を示す図である。 変形例における検査情報の例を示す図である。 図22の協賛者装置の機能ブロックを示すブロック図である。
(第1実施例)
第1実施例では、正当性が不明の電子ファイルをユーザがネットワーク上にアップロードすると、ネットワークに接続された他のユーザが当該電子ファイルの正当性を検査する情報処理システム(後述の検査システム)を実現する技術を提案する。正当性が不明の電子ファイルは、マルウェアを含みうる電子ファイルとも言える。実施例の検査システムは、データの改ざんが困難な分散型ネットワークであるブロックチェーンネットワークを含む。
図1は、第1実施例の検査システム10の構成を示す。検査システム10は、依頼者装置12、検査者装置14、閲覧者装置16、ファイルサーバ18を備える。図1の各装置は、LAN・WAN・インターネット等を含む通信網20を介して接続される。
依頼者装置12は、電子データ(実施例では電子ファイル)の検査を外部に依頼するユーザ(以下「依頼者」とも呼ぶ。)により操作される情報処理装置である。検査対象となる電子ファイル(以下「被験ファイル」とも呼ぶ。)は、マルウェアの存在が疑われる電子ファイル、または、安全性を確認したい電子ファイルであってもよい。
検査者装置14は、被験ファイルの正当性(言い換えれば不正の有無、マルウェアの有無)を検査するユーザ(以下「検査者」とも呼ぶ。)により操作される情報処理装置である。検査者は、例えば、情報セキュリティ技術の専門家でもよい。閲覧者装置16は、被験ファイルに対する検査結果を閲覧するユーザ(以下「閲覧者」とも呼ぶ。)により操作される情報処理装置であり、また、検査結果を用いたデータ処理を実行する情報処理装置である。依頼者装置12、検査者装置14、閲覧者装置16は、例えばPC、タブレット端末、スマートフォンであってもよい。
依頼者装置12、検査者装置14、閲覧者装置16には、ブロックチェーンネットワーク22を形成し、利用するためのライブラリおよびアプリケーション(以下「検査App」とも呼ぶ。)が導入される。言い換えれば、依頼者装置12、検査者装置14、閲覧者装置16は、公知のブロックチェーンの仕組みに基づいてP2P(Peer to Peer)通信を実行し、ブロックチェーンネットワーク22を形成する。
なお、実際には、多くのユーザが、依頼者、検査者、閲覧者のいずれかの立場で検査システム10に参加することができる。また、各ユーザは、依頼者、検査者、閲覧者のいずれになることもできる。例えば、被験ファイルAの検査における依頼者装置12は、別の被験ファイルBの検査では、検査者装置14になるかもしれないし、閲覧者装置16になるかもしれない。また、被験ファイルCの検査における検査者装置14は、別の被験ファイルDの検査では依頼者装置12になるかもしれないし、閲覧者装置16になるかもしれない。さらにまた、依頼者と閲覧者は同一でもよく、すなわち、依頼者装置12と閲覧者装置16は同一でもよい。以下、図1の依頼者装置12、検査者装置14、閲覧者装置16を総称する場合、「ユーザ装置24」と呼ぶ。
ファイルサーバ18は、依頼者装置12から被験ファイルが登録され、登録された被験ファイルを検査者装置14へ提供する情報処理装置である。ファイルサーバ18には、上記の検査Appは導入されない。すなわち、ファイルサーバ18は、ブロックチェーンネットワーク22に参加しない装置であり、言い換えれば、ブロックチェーンネットワーク22の外部に存在する装置である。なお、ファイルサーバ18は、複数台のサーバで構成されてもよい。
以下、検査システム10の構成要素をブロック図を使用して説明する。本明細書のブロック図において示される各ブロックは、ハードウェア的には、コンピュータのCPU・メモリをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
図2は、図1のファイルサーバ18の機能構成を示すブロック図である。ファイルサーバ18は、被験データ保持部30、被験データ受付部32、被験データ提供部34を備える。被験データ保持部30は、被験データを、その記憶位置を示すアドレス(例えばURL文字列でもよく、以下「被験ファイルアドレス」とも呼ぶ。)に対応付けて記憶する。
被験データ受付部32は、被験ファイルの登録要求を依頼者装置12から受信する。被験データ受付部32は、登録要求に含まれる被験ファイルを被験データ保持部30に格納する。被験データ受付部32は、登録要求への応答として、被験ファイルアドレスを依頼者装置12へ送信する。
被験データ提供部34は、被験ファイルの提供要求を検査者装置14から受信する。被験ファイルの提供要求は、特定の被験ファイルを示すアドレス(被験ファイルアドレス)の指定を含む。被験データ提供部34は、被験データ保持部30に格納された複数の被験ファイルのうち、指定された被験ファイルアドレスで特定される被験ファイルを検査者装置14へ送信する。
図3は、図1のユーザ装置24(すなわち依頼者装置12、検査者装置14、閲覧者装置16)の機能構成を示すブロック図である。ユーザ装置24は、入力部40、表示部42、制御部44を備える。入力部40は、ユーザの操作を受け付け、操作内容を制御部44へ入力する。表示部42は、制御部44から出力された画像データを画面に表示する。
制御部44は、各種データ処理を実行し、依頼処理部46、検査処理部48、閲覧処理部50を備える。これらのブロックの機能は、ユーザ装置24のCPUが、ユーザ装置24のメモリに格納された検査App52を実行することにより実現されてもよい。依頼処理部46、検査処理部48、閲覧処理部50のそれぞれは、後説するように、複数のモジュールからなるものの、その全部又は一部のモジュールについてはファイルサーバ18又はファイルサーバ18とは異なる新たなサーバに実装する構成であってもよい。
以降の説明におけるブロックチェーンネットワーク22からのデータの取得、および、ブロックチェーンネットワーク22上のデータの更新は、ユーザ装置24にインストールされたブロックチェーンネットワーク22のライブラリが備えるAPI(Application Programming Interface)を呼び出すことにより実現される。実際には、ブロックチェーンネットワーク22のデータは、依頼者装置12、検査者装置14、閲覧者装置16で分散管理され、ブロックチェーンネットワーク22の基盤アプリケーションにより、装置間でのデータ同期が実現される。
依頼処理部46は、主に依頼者装置12における処理を実行する。依頼処理部46は、被験データ登録部54、SC生成部56、インデックス更新部58を含む。
被験データ登録部54は、被験ファイルをファイルサーバ18へ送信することにより、被験ファイルをファイルサーバ18に登録する。被験データ登録部54は、被験ファイルの登録時に、ファイルサーバ18における記憶位置を示す被験ファイルアドレス(例えばURL文字列)をファイルサーバ18から取得する。
SC生成部56は、被験データ登録部54によりファイルサーバ18に登録された被験ファイルに関する属性情報を含むスマートコントラクトを生成する。スマートコントラクトは、ブロックチェーン上で動作するエージェントプログラムとも言える。このスマートコントラクトは、例えば後述の「VirusContract」クラスのインスタンスであり、ウイルスコントラクトの意味で以下「VC」と呼ぶ。被験ファイルに関する属性情報は、ファイルサーバ18における被験ファイルアドレスを含む。SC生成部56は、生成したVCをブロックチェーンネットワーク22に登録する。言い換えれば、ブロックチェーンネットワーク22のデータ(台帳データとも言える)に、生成したVCを追加する。
インデックス更新部58は、複数のVCのアドレス(すなわちブロックチェーンネットワーク22上での位置情報)を含むスマートコントラクトをブロックチェーンネットワーク22から取得する。このスマートコントラクトは、例えば後述の「IndexContract」クラスのインスタンスであり、インデックスコントラクトの意味で以下「IC」と呼ぶ。インデックス更新部58は、取得したICに、SC生成部56により生成されたVCのアドレスと、被験ファイルの識別情報(実施例ではハッシュ値)とを追加する。
検査処理部48は、主に検査者装置14における処理を実行する。検査処理部48は、インデックス取得部60、SC取得部62、被験データ取得部64、SC更新部66を含む。
インデックス取得部60は、ブロックチェーンネットワーク22からICを取得する。SC取得部62は、検査者により指定された被験ファイルの識別情報(実施例では被験ファイルのハッシュ値)に対応付けられたVCのアドレスをICから取得する。SC取得部62は、アドレスにより特定されるVCをブロックチェーンネットワーク22から取得する。被験データ取得部64は、VCから被験ファイルアドレスを取得する。被験データ取得部64は、ファイルサーバ18にアクセスし、被験ファイルアドレスにより特定される被験ファイルをファイルサーバ18からダウンロードする。
SC更新部66は、検査者による被験ファイルの検査後に、その検査結果を被験ファイルのVCに記録する。SC更新部66は、検査結果記録後の被験ファイルのVCをブロックチェーンネットワーク22に登録する。言い換えれば、SC更新部66は、ブロックチェーンネットワーク22上に保存された、被験ファイルのVCに、検査者による検査結果を反映する。
閲覧処理部50は、インデックス取得部68、SC取得部70、検査結果取得部72、送金部74、検査結果出力部76を含む。
インデックス取得部68は、ブロックチェーンネットワーク22からICを取得する。SC取得部70は、閲覧者により指定された被験ファイルの識別情報(実施例では被験ファイルのハッシュ値)に対応付けられたVCのアドレスをICから取得する。SC取得部70は、アドレスにより特定されるVCをブロックチェーンネットワーク22から取得する。検査結果取得部72は、SC取得部70により取得されたVCから被験ファイルの検査結果を取得する。言い換えれば、検査結果取得部72は、ブロックチェーンネットワーク22上に保存された、被験ファイルの検査結果を取得する。
送金部74は、検査結果が取得されるタイミングと同期して、検査者と依頼者の両方への報酬支払を実行する。例えば、送金部74は、閲覧者の口座から検査者の口座への送金(振込)処理を実行するとともに、閲覧者の口座から依頼者の口座への送金処理を実行してもよい。なお、検査結果取得部72は、送金部74による送金処理が成功したことを条件として、被験ファイルの検査結果を取得してもよい。
また、送金部74は、閲覧者から依頼者への送金、および、閲覧者から検査者への送金に関する情報をブロックチェーンネットワーク22(もしくは金銭交換用の他のブロックチェーン)の台帳データに記録してもよい。これにより、報酬支払の確実性を高め、また、支払金額の改ざんを防止することができる。
検査結果出力部76は、検査結果取得部72により取得された検査結果のデータを表示部42へ出力し、その検査結果を表示部42に表示させる。なお、実施例では、依頼処理部46、検査処理部48、閲覧処理部50を含む検査App52が、依頼者装置12、検査者装置14、閲覧者装置16に導入される。変形例として、依頼処理部46の機能のみを含む検査Appが依頼者装置12に導入されてもよい。また、検査処理部48の機能のみを含む検査Appが検査者装置14に導入され、また、閲覧処理部50の機能のみを含む検査Appが閲覧者装置16に導入されてもよい。
図4(a)と図4(b)は、VCの概念的なプログラムコード(VirusContract.java)(「java」は登録商標)を示す。図4(b)は、図4(a)の続きを示している。図5は、ICの概念的なプログラムコード(IndexContract.java)を示す。図6は、VCおよびICを利用する検査App52の概念的なプログラムコード(FlowTest.java)を示す。これらのプログラムコードは、後述のフローチャートの説明で適宜参照する。
以上の構成による検査システム10の動作を説明する。
図7は、依頼者装置12の動作を示すフローチャートである。検査App52のGUIにおいて検査対象となる被験ファイルを依頼者が指定した場合(S10のY)、依頼者装置12の被験データ登録部54は、被験ファイルをファイルサーバ18へ登録する。それとともに被験データ登録部54は、ファイルサーバ18における被験ファイルアドレスをファイルサーバ18から取得する(S12)。被験データ登録部54は、被験ファイルと、被験ファイルアドレスとをSC生成部56に渡す。
SC生成部56は、図6のコード80に示すように、ブロックチェーンネットワーク22上での依頼者装置12のアドレス、被験ファイルアドレス、被験ファイルのハッシュ値をパラメータとして、被験ファイル用のスマートコントラクト(以下「VC」)を生成する(S14)。ハッシュ値の生成に使用するハッシュ関数は、例えばMD5でもよい。コード80では不図示だが、SC生成部56はさらに、生成したVCインスタンスをブロックチェーンネットワーク22に登録するとともに、VCインスタンスのブロックチェーンネットワーク22上でのアドレスを取得する。
インデックス更新部58は、図6のコード82に示すように、インデックス用のスマートコントラクト(以下「IC」)を取得する。実際には、インデックス更新部58は、ブロックチェーンネットワーク22のAPIをコールして、ブロックチェーンネットワーク22に登録されたICを取得する。インデックス更新部58は、取得したICが持つアドレスマップ(図5のaddressMap)に、被験ファイルのハッシュ値(キー)と、VCのアドレス(値)を追加する(S16)。被験ファイルを指定する操作が入力されなければ(S10のN)、S12~S16をスキップして本図のフローを終了する。
図8は、検査者装置14の動作を示すフローチャートである。検査App52のGUIにおいて特定の被験ファイルの取得を検査者が要求した場合(S20のY)、検査者装置14のインデックス取得部60は、ブロックチェーンネットワーク22に登録されたICを取得する(S22)。実施例では、検査者は取得すべき被験ファイルのハッシュ値を指定する。SC取得部62は、図6のコード84に示すように、被験ファイルのハッシュ値をキーとして、被験ファイルのVCのアドレスをICから取得する。そしてSC取得部62は、VCのアドレスをキーとして、ブロックチェーンネットワーク22に登録された被験ファイルのVCを取得する(S24)。
被験データ取得部64は、図6のコード86に示すように、ファイルサーバ18における被験ファイルアドレスをVCから取得する。そして被験データ取得部64は、被験ファイルアドレスをキーとして、ファイルサーバ18から被験ファイルを取得する(S26)。被験ファイルの取得を要求する操作が入力されなければ(S20のN)、S22~S26をスキップする。被験ファイルを取得した検査者は、検査者装置14または他の装置を使用して、被験ファイルが不正か否か(例えばマルウェアが含まれるか否か)を検査する。例えば、検査者は、既存のアンチウイルスソフトウェアを使用して検査を実行してもよい。また、検査者は、被験ファイルのバイナリを手動で解析してもよい。
検査App52のGUIにおいて、検査者は、判定結果、付加情報、検査方法を含む検査結果情報を入力する。被験ファイルに対する検査結果の登録を検査者が要求した場合(S28のY)、SC更新部66は、図6のコード88、図4(b)のコード90に示すように、ブロックチェーンネットワーク22上での検査者のアドレスと、検査結果情報とを被験ファイルのVCに追加する(S30)。コード88では不図示だが、SC更新部66はさらに、検査結果情報を追加したVCをブロックチェーンネットワーク22に登録する。検査結果の登録を要求する操作が入力されなければ(S28のN)、S30をスキップして本図のフローを終了する。
図9は、閲覧者装置16の動作を示すフローチャートである。検査App52のGUIにおいて検査結果を閲覧する対象の被験ファイルを閲覧者が選択した場合(S40のY)、閲覧者装置16のインデックス取得部68は、ブロックチェーンネットワーク22に登録されたICを取得する(S42)。実施例では、検査者は、検査結果閲覧対象の被験ファイルのハッシュ値を指定する。SC取得部62は、図6のコード92に示すように、被験ファイルのハッシュ値をキーとして、被験ファイルのVCのアドレスをICから取得する。そしてSC取得部62は、VCのアドレスをキーとして、ブロックチェーンネットワーク22に登録された被験ファイルのVCを取得する(S44)。
図6のコード94に示すように、検査結果取得部72は、被験ファイルに対する検査結果を登録した検査者の一覧を取得し、検査結果出力部76は、検査者の一覧を表示部42に表示させる(S46)。検査結果を表示すべき特定の検査者を閲覧者が選択するまで待機する(S48のN)。特定の検査者を閲覧者が選択した場合(S48のY)、検査結果取得部72は、選択された検査者による検査結果を取得する(S50)。具体的には、図6のコード96、図4(a)のコード98に示すように、検査結果取得部72は、閲覧者のアドレスと、選択された検査者のアドレスをパラメータとして指定し、その検査者のアドレスに対応付けられた検査結果を取得する。
送金部74は、図4(a)のコード98に示すように、閲覧者から依頼者への送金処理を実行するとともに、閲覧者から検査者への送金処理を実行する。さらに実施例では、送金部74は、閲覧者から検査システム10の管理者への送金処理を実行する(S52)。すなわち、閲覧者が検査結果を閲覧することを契機として、依頼者・検査者・管理者の3者へ報酬が支払われる。検査結果出力部76は、図6のコード100に示すように、検査結果取得部72により取得された検査結果を表示部42に表示させる(S54)。検査結果を閲覧する対象の被験ファイルが未選択であれば(S40のN)、S42~S54をスキップして本図のフローを終了する。
1つの被験ファイルの検査に関する検査システム10の動作は、被験ファイルの登録、被験ファイルの検査、検査結果の閲覧という流れになる。したがって、1つの被験ファイルの検査では、依頼者装置12による図7の処理、検査者装置14による図8の処理、閲覧者装置16による図9の処理が順次実行される。実際の検査システム10では、複数の被験ファイルに対する処理が並行して実行される。なお、依頼者装置12、検査者装置14、閲覧者装置16は、ブロックチェーンネットワーク22におけるデータ(VC、IC等)の同期処理を常時実行する。
実施例の検査システム10によると、依頼者がアップロードした電子データの正当性を、ネットワーク上の1人以上の検査者が検査し、その検査結果を閲覧者(依頼者を含む)が確認可能になる。これにより、アンチウイルスソフトウェアだけでは万全とは言い難いマルウェアの検出について、他のユーザの協力によりマルウェアの検出精度を向上することができる。
また、検査システム10では、被験ファイルの属性情報および検査結果は、ブロックチェーンネットワーク22を介して送受信される。これにより、被験ファイルの属性情報および検査結果を改ざんすることが困難となり、セキュリティの強度を一層高めることができる。また、比較的データサイズが大きい被験ファイル自体は、ブロックチェーンネットワーク22の外で送受信することにより、ブロックチェーンネットワーク22の負荷を抑制できる。
また、検査システム10では、閲覧者が検査結果を閲覧するときに、依頼者および検査者へ報酬が支払われる。これにより、検査システム10に対する被験ファイルのアップロードと、被験ファイルの検査に対するインセンティブを提供できる。また、閲覧者は、閲覧する検査結果を検査者の単位で指定可能である。すなわち、閲覧者は、検査結果の正確性が高い検査者、信頼する検査者等、所望の検査者による検査結果を選択的に閲覧できる。これにより、報酬の支払先が閲覧者により選択された検査者に限定され、また、正確な検査結果を登録するインセンティブを検査者へ提供できる。
以上、本発明を第1実施例をもとに説明した。この第1実施例は例示であり、各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
(変形例1)
上記実施例では、被験ファイルをファイルサーバ18で管理する一方、被験ファイルに関する様々な属性情報(アドレスや検査結果等)を依頼者装置12、検査者装置14、閲覧者装置16により形成されるブロックチェーンネットワーク22で管理した。変形例として、被験ファイルと、被験ファイルに関する属性情報の両方を1つの装置(ここでは「検査支援装置」と呼ぶ。)が集中的に管理してもよい。
検査支援装置は、実施例のファイルサーバ18の機能と、実施例のブロックチェーンネットワーク22の機能の両方を備えてもよい。具体的には、検査支援装置は、実施例のファイルサーバ18における被験データ保持部30、被験データ受付部32、被験データ提供部34に加えて、検査結果保持部、検査結果受付部、検査結果提供部を備えてもよい。検査結果保持部は、被験データ(例えば被験データアドレス)と対応付けて検査結果を記憶してもよい。検査結果受付部は、検査者装置14から送信された、被験ファイルに対する検査結果を示す情報を受信して検査結果保持部へ格納してもよい。検査結果提供部は、検査結果保持部に記憶された検査結果のうち、閲覧者装置16により指定された被験ファイルに対応する検査結果を閲覧者装置16へ提供してもよい。
(変形例2)
依頼者装置12、検査者装置14、閲覧者装置16は、被験ファイルの検査のための処理を、人の操作に依存せず、自動実行する装置であってもよい。例えば、依頼者装置12は、正当性の判別が困難な電子ファイルの存在を検出すると、その電子ファイルを被験ファイルとしてファイルサーバ18へアップロードし、その被験ファイルのSCを生成し、さらにICを更新する処理を自動的に実行してもよい。
変形例2の依頼者装置12は、電子メールサーバでもよく、被験ファイルは、電子メールへの添付ファイルであってもよい。電子メールサーバは、ローカルのアンチウイルスソフトウェアでは異常が検出されない添付ファイルを被験ファイルとしてファイルサーバ18へアップロードしてもよい。また、電子メールサーバは、ローカルのアンチウイルスソフトウェアでは異常が検出されないが、ファイルの種類・サイズ・名称等が所定の基準(ホワイトリスト等)を逸脱する添付ファイルを被験ファイルとしてファイルサーバ18へアップロードしてもよい。
また、変形例2の閲覧者装置16は、被験ファイルの検査結果を表示することに代えて、検査結果に応じて被験ファイルを削除してもよい。また、検査結果が被験ファイルの不正を示す場合、閲覧者装置16は、被験ファイルに基づく所定のデータ処理を中止してもよい。例えば、閲覧者装置16は、電子メールサーバでもよい。この電子メールサーバは、被験ファイルが不正と判定された場合、被験ファイルが添付された電子メールの転送を中止してもよく、当該電子メールを破棄してもよい。
(変形例3)
図10は、変形例3の検査システムの構成を示す。上記実施例の検査システム10では、被験ファイルは、ファイルサーバ18に登録された。変形例3では、検査システム10は、ファイルサーバ18を備えず、被験ファイルは、ブロックチェーンネットワーク22(図10の破線)とは異なるP2Pネットワーク26(図10の一点鎖線)に登録される。
変形例3のユーザ装置24のそれぞれには、被験ファイルをP2P通信で交換するための公知ライブラリおよびアプリケーション(以下「P2Pモジュール」とも呼ぶ。)が導入されてもよい。ユーザ装置24(言い換えれば依頼者装置12)の被験データ登録部54は、P2Pモジュールを利用して、P2Pネットワーク26に被験ファイル(もしくは被験ファイルおよびそのハッシュ値)を登録してもよい(図7のS12)。例えば、被験データ登録部54は、他の複数のユーザ装置24のそれぞれへ被験ファイルを送信してもよい。
また、ユーザ装置24(言い換えれば検査者装置14)の被験データ取得部64は、P2Pモジュールを利用して、P2Pネットワーク26に登録された被験ファイルを取得してもよい(図8のS26)。例えば、被験データ取得部64は、ブロックチェーンネットワーク22から取得した被験ファイルのハッシュ値をキーとして、P2Pネットワーク26内のストレージからそのハッシュ値に対応する被験ファイルを取得してもよい。
変形例3の別態様として、あるユーザ装置24(依頼者装置12)のローカルストレージに登録された被験ファイルを、別のユーザ装置24(検査者装置14)が取得もしくは参照する構成でもよい。変形例3の構成によると、ファイルサーバ18を設けることなく、異なるユーザ装置24間で被験ファイルを交換することができる。
(第2実施例)
第2実施例においても、ブロックチェーン技術を活用して、電子データ(以下「検体」とも呼ぶ。)の検査を支援する検査システムを提案する。第2実施例の検体は、第1実施例の被験ファイルに相当する。典型的には、検体は、マルウェアの存在が疑われる電子ファイル、または、安全性を確認したい電子ファイルであるが、検査対象となる様々な電子データであってもよい。以下、第1実施例で説明した要素と同じ要素には同じ符号を付して説明する。また、第1実施例で説明済みの内容は再度の説明を適宜省略する。
図11は、第2実施例の検査システム101の構成を示す。検査システム101は、依頼者装置12、検査者装置14a、検査者装置14b、検査者装置14c、閲覧者装置16、ファイルサーバ18、ポータルサーバ102を備える。これらの装置は、通信網20を介して接続される。
検査者装置14a、検査者装置14b、検査者装置14cは、異なる検査者により操作される情報処理装置である。検査者装置14a、検査者装置14b、検査者装置14cを総称する場合、検査者装置14と呼ぶ。ポータルサーバ102は、検査システム101に関する各種情報を依頼者装置12、検査者装置14、および閲覧者装置16へ提供するウェブアプリケーションサーバである。
また、検査システム101は、第1実施例のブロックチェーンネットワーク22に相当するブロックチェーンシステム104を備える。依頼者装置12、検査者装置14、閲覧者装置16には、ブロックチェーンシステム104を形成し、利用するためのライブラリおよびアプリケーションが導入される。
ブロックチェーンシステム104は、分散型データベースシステム(分散型台帳システム)とも言え、ブロックチェーンのプラットフォームの1つであるイーサリアム上に構築される。ブロックチェーンシステム104は、3つのスマートコントラクトのプログラムであるウイルスSC106、トークンSC108、アクターSC110を含む。これらのスマートコントラクトは、依頼者装置12、検査者装置14、閲覧者装置16、ポータルサーバ102のそれぞれからアクセス可能であり、これらの装置間で同期される。
ウイルスSC106は、検体の検査に関するデータ保存およびデータ処理を実行するスマートコントラクトである。トークンSC108は、検査システム101内での仮想通貨であるトークンに関するデータ保存およびデータ処理を実行するスマートコントラクトである。アクターSC110は、検査システム101のアクター(主に依頼者および検査者)に関するデータ保存およびデータ処理を実行するスマートコントラクトである。
図11では、依頼者装置12および閲覧者装置16を1つ描いたが、検査システム101は、異なる依頼者の複数の依頼者装置12、異なる閲覧者の複数の閲覧者装置16を備えてもよい。また、第1実施例でも説明したが、1人のユーザは、依頼者、検査者、閲覧者のいずれの立場でも検査システム101に参加できる。例えば、1つの情報処理装置が、依頼者装置12、検査者装置14、および閲覧者装置16として機能してもよい。
以下、依頼者装置12、検査者装置14、閲覧者装置16の機能ブロックを別個に説明するが、各装置の機能は、第1実施例(図3)で説明したように1つのアプリケーションプログラムにより提供されてもよい。また、各装置の機能は、所定のウェブサーバ(例えばポータルサーバ102)が提供するウェブアプリケーションプログラムを各装置が実行することにより発揮されてもよい。
図12は、図11の依頼者装置12の機能ブロックを示すブロック図である。依頼者装置12は、入力部40、表示部42、制御部44、通信部112を備える。通信部112は、所定の通信プロトコルにしたがって外部装置と通信する。制御部44は、通信部112を介して、ファイルサーバ18とポータルサーバ102とデータを送受信する。
制御部44は、検体検索部120、検体登録部122、検査依頼部124、レポート取得部126、ノンス登録部128、結果コミット部130を備える。検体検索部120は、検査中および検査完了済の1つ以上の検体に関する情報をポータルサーバ102から取得する。検体登録部122は、検査対象の検体をファイルサーバ18に登録する。検査依頼部124は、検体の検査依頼をブロックチェーンシステム104に登録する。例えば、検査依頼部124は、検査の報酬をブロックチェーンシステム104へ記録する。
レポート取得部126は、検査者による検体の評価結果を示す評価レポートをファイルサーバ18から取得する。依頼者が登録した検体の検査に複数の検査者が参加している場合、レポート取得部126は、それら複数の検査者が作成した複数の評価レポートをファイルサーバ18から取得する。検査者による評価結果は、少なくとも、検体が正当なものであること(例えばマルウェアではないこと)を示す「白」と、検体が不正なものであること(例えばマルウェアであること)を示す「黒」のいずれかを含む。
なお、検査者が作成した評価レポートには、検査者による評価結果に加えて、評価結果に対する検査者の自信の度合いを示す段階的なスコア(評価結果が正解である確度に関して検査者自らが評価した値)が含まれるようにしてもよい。例えば、「白;80%」であれば、検査者が検体を正当なものであると判断し、その確度は80%であると検査者が考えていることを示す。評価結果に対する検査者の自信の度合いは、前述の段階的なスコアであってもよいし、「自信あり」「やや自信あり」「自信なし」のような段階的な評価であってもよい。
ノンス登録部128は、所定の乱数発生器が生成したノンス(言い換えれば乱数)(以下「結果ノンス」とも呼ぶ。)をポータルサーバ102に登録する。結果コミット部130は、ウイルスSC106と連携して、結果コミット処理を実行する。例えば、結果コミット部130は、ウイルスSC106に実装された結果コミット処理用のメソッドを呼び出してもよい。なお、本実施例において、スマートコントラクトのメソッドを呼び出すことは、他の公知の方法によりスマートコントラクトに対してトランザクションを発行することに置き換えてもよい。
図13は、図11の検査者装置14の機能ブロックを示すブロック図である。検査者装置14の制御部44は、依頼検索部140、検体取得部142、検体照合部144、レポート登録部146、評価コミット部148、ノンス取得部150、結果確認部152、最終コミット部154を備える。
依頼検索部140は、登録された1つ以上の検査依頼に関する情報をポータルサーバ102から取得する。検体取得部142は、検査者により選択された検体をファイルサーバ18から取得する。検体照合部144は、ハッシュ値を照合することにより、検体取得部142が取得した検体の正当性(言い換えれば改ざんがないこと)を確認する。レポート登録部146は、検査者が検体を検査して作成した評価レポートをファイルサーバ18へ登録する。
評価コミット部148は、ウイルスSC106と連携して、評価コミット処理を実行する。例えば、結果コミット部130は、ウイルスSC106に実装された評価コミット用のメソッドを呼び出してもよい。
ノンス取得部150は、ポータルサーバ102に登録された結果ノンスを取得する。結果確認部152は、依頼者が最終的に検体を正当なもの(「白」)と判定したか、不正なもの(「黒」)と判定したか(以下「白黒判定結果」とも呼ぶ。)を確認する処理を実行する。最終コミット部154は、ウイルスSC106と連携して、最終コミット処理を実行する。例えば、最終コミット部154は、ウイルスSC106に実装された最終コミット用のメソッドを呼び出してもよい。
図14は、図11の閲覧者装置16の機能ブロックを示すブロック図である。閲覧者装置16の制御部44は、検体検索部160、閲覧実行部162、依頼者評価部164を備える。
検体検索部160は、検査中および検査完了済の1つ以上の検体に関する情報をポータルサーバ102から取得する。閲覧実行部162は、ウイルスSC106と連携して、閲覧者により選択された検体の検査結果を閲覧するための処理を実行する。依頼者評価部164は、ウイルスSC106と連携して依頼者を評価するための処理を実行する。例えば、依頼者評価部164は、ウイルスSC106に実装された閲覧処理用のメソッドを呼び出してもよい。
図15は、図11のブロックチェーンシステム104の機能ブロックを示すブロック図である。既述したように、ブロックチェーンシステム104は、ウイルスSC106、トークンSC108、アクターSC110を備える。
トークンSC108は、ユーザ口座保持部170、依頼口座保持部172、主催者口座保持部174、閲覧口座保持部175を含む。ユーザ口座保持部170は、依頼者が保有する口座(依頼者口座)の情報、複数の検査者が保有する複数の口座(検査者口座)の情報、閲覧者が保有する口座(閲覧者口座)の情報を記憶する。第2実施例では、各ユーザは、検査システム101で定められた仮想通貨であるトークンを保有する。各ユーザの口座情報には、各ユーザが保有するトークンの残高が記録される。各ユーザの口座は、各ユーザのアドレスにより識別される。
依頼口座保持部172は、複数の検査依頼に対応する複数の口座(検査依頼口座)の情報を記憶する。検査依頼口座は、検査対象となる検体のハッシュ値により識別される。検査システム101では、新たな検査依頼が登録されるたびに新たな検査依頼口座が開設される。主催者口座保持部174は、検査システム101の主催者が保有する口座の情報を記憶する。例えば、主催者は、ファイルサーバ18、ポータルサーバ102、ブロックチェーンシステム104を提供する企業である。閲覧口座保持部175は、閲覧ごとに開設される口座(閲覧口座)の情報を記憶する。閲覧口座は、閲覧者アドレスにより識別される。
アクターSC110は、スコア保持部176を含む。スコア保持部176は、依頼者のスコアと、複数の検査者それぞれのスコアを記憶する。依頼者スコアは、後述するように、閲覧者による依頼者の評価結果に応じて変更され、検査依頼登録時に支払う主催者への手数料の額に影響する。具体的には、依頼者のスコアが低いほど、手数料は高額になる。検査者スコアは、検査者の評価結果が正解か否か(実施例では依頼者により正解とされたか否か)に応じて変更され、報酬の分配率に影響する。具体的には、相対的にスコアが高い検査者は、相対的に高い分配率となる。
また、アクターSC110は、図示しない取引履歴保持部を含むようにしてもよい。取引履歴保持部は、依頼者の依頼登録回数、報酬の支払い回数、報酬の未払い回数、登録報酬の累計額等と、検査者の評価レポート登録回数、正解回数、不正解回数、評価結果に対する検査者の自信の度合いを示す段階的なスコアの平均値、獲得した報酬の累計額、閲覧された回数等を記憶し、本検査システムでの処理に応じて更新される。依頼者のスコアと、検査者のスコアは、取引履歴保持部に記憶される値に基づいて計算・更新されるようにしてもよい。
ウイルスSC106は、検査情報保持部178、依頼処理部180、評価コミット処理部182、結果コミット処理部184、最終コミット処理部186、閲覧処理部192、依頼者評価処理部194を含む。検査情報保持部178は、依頼者からの検査依頼ごとに生成される検査情報を記憶する。検査情報は、検査依頼または検体に関する複数の項目を含む。
図16は、検査情報の例を示す。検体のハッシュ値は、各検査情報のキーである。依頼者設定項目200および依頼者設定項目202は、検体αの検査依頼を登録した依頼者装置12により設定される情報項目である。検査者設定項目204および検査者設定項目206は、検体αを評価した複数の検査者装置14により設定される項目である。ユーザのアドレスは、当該ユーザが検査システム101にアカウントを登録した際に払い出されるユーザごとにユニークなデータ(ID)である。
図15に戻り、依頼処理部180は、依頼者装置12からの呼び出しに応じて、検査依頼時の処理を実行する。評価コミット処理部182は、検査者装置14からの呼び出しに応じて、評価コミット時の処理を実行する。結果コミット処理部184は、依頼者装置12からの呼び出しに応じて、結果コミット時の処理を実行する。
最終コミット処理部186は、検査者装置14からの呼び出しに応じて、最終コミット時の処理を実行する。最終コミット処理部186は、検査者評価部188とトークン振替部190を含む。検査者評価部188は、アクターSC110のスコア保持部176に記憶された検査者のスコアを調整する。トークン振替部190は、トークンSC108に記憶された口座間でのトークンの振替を実行する。
閲覧処理部192は、閲覧者装置16からの呼び出しに応じて、閲覧時の処理を実行する。依頼者評価処理部194は、閲覧者装置16からの呼び出しに応じて、依頼者評価時の処理を実行する。
以上の構成による検査システム101の動作を説明する。
図17は、検査の依頼に関する動作を示すフローチャートである。依頼者装置12の検体検索部120は、依頼者により指定された検査候補の検体のハッシュ値をキーとする検体検索の要求をポータルサーバ102へ送信する(S100)。ポータルサーバ102は、検索要求で指定されたハッシュ値をキーとして、ウイルスSC106に記憶された検査情報を検索する。ポータルサーバ102は、ハッシュ値に該当する検体が存在するか(すなわち検査中または検査完了済)、存在しないか(すなわち未検査)を示す検索結果を検査者装置14へ送信する(S102)。依頼者装置12は、検索結果を画面に表示させる。
依頼者は、検査候補の検体が未検査であれば、当該検体の検査依頼を指示する操作を依頼者装置12へ入力する。依頼者装置12の検体登録部122は、検体そのもののデータを含む登録要求をファイルサーバ18へ送信する(S104)。ファイルサーバ18は、依頼者装置12から送信された検体のデータを所定の記憶領域に保存する(S106)。ファイルサーバ18は、保存した検体に対してファイルサーバ18におけるユニークなIDである検体URI(Uniform Resource Identifier)を発行し、検体URIを依頼者装置12へ送信する(S108)。依頼者装置12の検体登録部122は、ファイルサーバ18から送信された検体URIを取得する。
依頼者装置12の検査依頼部124は、検体に関する複数の属性データをパラメータとして、ウイルスSC106の検査依頼メソッドを呼び出す(S110)。検体に関する複数の属性データは、検体のハッシュ値、依頼者アドレス、検体URI、検査期限、報酬額(すなわちトークン量)を含む。検査期限および報酬額は、依頼者が任意に決定する。ウイルスSC106の依頼処理部180は、上記複数の属性データを含む検査情報(依頼者設定項目200)を検査情報保持部178に記録する(S112)。この際、検査情報のステータスは、検査中に設定される。
また、ウイルスSC106の依頼処理部180は、トークンSC108の依頼口座保持部172に今回の検査依頼に対応する口座情報(検査依頼口座)を記録する。依頼処理部180は、報酬額のトークンと、主催者への手数料のトークンと、依頼者のデポジットのトークンを、トークンSC108の依頼者口座から検査依頼口座へ振り替える(S114)。ウイルスSC106は、エクスターナルコールにより、トークンの振替処理をトークンSC108に実行させてもよい。また、トークンSC108は、主催者への手数料の額を、アクターSC110に記憶された依頼者スコアに応じて決定する。実施例では、依頼者スコアが高いほど手数料を低額にし、依頼者スコアが低いほど手数料を高額にする。これにより、依頼者スコアを高めようというインセンティブを依頼者に与える。
図18は、検査の実施に関する動作を示すフローチャートである。図18の処理は、複数の検査者装置14のそれぞれで実行される。検査者装置14の依頼検索部140は、検査依頼の検索要求をポータルサーバ102へ送信する(S120)。ポータルサーバ102は、ウイルスSC106の検査情報を参照して、ステータスが検査中の検査依頼に関する情報を検索結果として検査者装置14へ送信する(S122)。検査依頼に関する情報は、ウイルスSC106の検査情報に含まれる検体ハッシュ値、期限、報酬、評価完了検査者数(検査情報に記録された検査者数)、検体URIを含み、さらに、アクターSC110に記録された依頼者スコアと評価完了検査者のスコアを含む。検査者装置14は検索結果を画面に表示させる。
検査者は、検索結果を確認し、自分が検査する検体(以下「対象検体」と呼ぶ。)を決定する。検査者装置14の検体取得部142は、対象検体の検体URIをもとに、対象検体をファイルサーバ18からダウンロードする(S124)。ファイルサーバ18は、対象検体のデータを検査者装置14へ送信する(S126)。検査者装置14の検体照合部144は、ファイルサーバ18から取得した対象検体のデータのハッシュ値を取得し、ポータルサーバ102から取得した対象検体のハッシュ値との同一性を確認する(S128)。これにより、ファイルサーバ18から取得した対象検体のデータが改ざんされていないこと、すなわち、オリジナルのデータであることを確認する。
検査者は、対象検体がマルウェアか否かを検査し、対象検体がマルウェアか(「黒」)否か(「白」)を示すデータを少なくとも含む評価レポートを作成する。検査者が評価コミットを指示する操作を検査者装置14へ入力すると、検査者装置14のレポート登録部146は、評価レポートを依頼者の公開鍵で暗号化する(S130)。レポート登録部146は、評価レポートをファイルサーバ18へアップロードする(S132)。ファイルサーバ18は、検査者装置14から送信された評価レポートのデータを所定の記憶領域に保存する(S134)。ファイルサーバ18は、保存した評価レポートに対してファイルサーバ18におけるユニークなIDであるレポートURIを発行し、レポートURIを検査者装置14へ送信する(S136)。検査者装置14のレポート登録部146は、レポートURIを取得する。
検査者装置14の評価コミット部148は、所定の乱数発生器が生成したノンスを取得する(S138)。評価コミット部148は、評価に関する複数の属性データをパラメータとして、ウイルスSC106の評価コミットメソッドを呼び出す(S140)。評価に関する複数の属性データは、評価レポートのハッシュ値、対象検体が「白」か「黒」を示す値とノンスとを結合したデータのハッシュ値(「評価ハッシュ値」とも呼ぶ。)、レポートURIを含む。評価レポートのハッシュ値を含めることにより、将来、検査者が、当該評価レポートを作成していないと否認することができないようにする。
ウイルスSC106の評価コミット処理部182は、上記複数の属性データをもとに検査情報を更新し、例えば、検査者設定項目204または検査者設定項目206を記録する(S142)。この際、検査者設定項目の最終コミットフラグは、「未コミット」に設定される。また、ウイルスSC106の評価コミット処理部182は、検査者のデポジットとして、所定量のトークンを、トークンSC108の検査者口座から検査依頼口座へ振り替える(S144)。
図19は、依頼者の結果判定に関する動作を示すフローチャートである。検査依頼において指定した期限に達すると、依頼者装置12のレポート取得部126は、ウイルスSC106の検査情報を参照して、検査依頼した検体(検体ハッシュ値)に対応付けられたレポートURIを取得する。レポート取得部126は、レポートURIにより特定される評価レポートをファイルサーバ18に要求する(S150)。ファイルサーバ18は、依頼者装置12から要求された評価レポートのデータを依頼者装置12へ送信する(S152)。依頼者装置12のレポート取得部126は、評価レポートを依頼者の秘密鍵で復号する(S154)。
レポート取得部126は、復号した評価レポートのデータをハッシュ関数へ入力してハッシュ値を取得するとともに、ウイルスSC106の検査情報に記録された当該評価レポートのハッシュ値を取得する。レポート取得部126は、両者のハッシュ値の同一性を確認する(S156)。これにより、評価レポートが改ざんされていないことを確認する。依頼者装置12は、S150~S156の処理を、検体を評価した検査者の数、言い換えれば、当該検体に対する評価レポートの数だけ繰り返す。依頼者は、1人以上の検査者による1つ以上の評価レポートの内容を確認して、検査依頼対象の検体がマルウェアか否か(すなわち黒か白か)を総合的に判定する。以下、この判定を「白黒判定」とも呼ぶ。
依頼者は、白黒判定の結果を登録するための結果コミットを指示する操作を検査者装置14へ入力する。検査者装置14のノンス登録部128は、白黒判定の結果に付加する結果ノンスを生成し(S158)、検体ハッシュ値と結果ノンスとをポータルサーバ102へ送信する(S160)。ポータルサーバ102は、検体ハッシュ値と結果ノンスとを対応付けて保存する(S162)。
依頼者装置12の結果コミット部130は、白黒判定結果に関する複数の属性データをパラメータとして、ウイルスSC106の結果コミットメソッドを呼び出す(S164)。白黒判定結果に関する複数の属性データは、検体が「白」か「黒」かを示す値と結果ノンスとを結合したデータのハッシュ値(以下「結果ハッシュ値」とも呼ぶ。)、正解者のアドレスの配列、白黒判定結果を閲覧するための閲覧料を含む。正解者は、依頼者により評価結果が正解と認定された検査者であり、言い換えれば、依頼者の白黒判定と同じ評価を下した検査者である。また、閲覧料は、依頼者が任意に決定する。ウイルスSC106の結果コミット処理部184は、上記複数の属性データをもとに検査情報を更新し、例えば、図16の依頼者設定項目202を記録する(S166)。
図20は、検査者による最終コミットに関する動作を示すフローチャートである。最終コミットは、依頼者の白黒判定結果の承認とも言える。検査者装置14のノンス取得部150は、検査者が評価した検体のハッシュ値をキーとしてポータルサーバ102に結果ノンスを要求する(S170)。ポータルサーバ102は、結果ノンス要求元の検査者が、上記検体ハッシュ値をキーとするウイルスSC106の検査情報に記録されている場合、すなわち正当な検査者である場合、結果ノンスの提供を許可する(S172)。ポータルサーバ102は、正当な検査者の検査者装置14へ結果ノンスを送信する(S174)。検査者装置14のノンス取得部150は、結果ノンスを取得する。
検査者装置14の結果確認部152は、ウイルスSC106の検査情報から、結果ハッシュ値を取得する。結果確認部152は、予め定められた「白」の値に結果ノンスを結合したデータのハッシュ値と、予め定められた「黒」の値に結果ノンスを結合したデータのハッシュ値と、結果ハッシュ値とを比較することにより、依頼者の白黒判定結果が「白」か「黒」かを判定する(S176)。すなわち、結果確認部152は、予め定められた「白」の値に結果ノンスを結合したデータのハッシュ値が結果ハッシュ値に一致する場合、依頼者が「白」と判定したことを識別する。また、結果確認部152は、予め定められた「黒」の値に結果ノンスを結合したデータのハッシュ値が結果ハッシュ値に一致する場合、依頼者が「黒」と判定したことを識別する。
結果確認部152は、依頼者が検体を正当なもの(「白」)と判定したか、マルウェア(「黒」)と判定したかを画面に表示させてもよい。またS176において、結果確認部152は、ウイルスSC106の検査情報から、正解者アドレスの配列を取得し、画面に表示させる。結果確認部152は、検査者装置14の検査者のアドレスが正解者アドレスの配列に含まれるか否かを画面に表示させてもよい。
検査者は、依頼者の白黒判定結果が自分の評価結果と同じである場合、すなわち自分が正解者である場合、自分のアドレスが正解者アドレスの配列に含まれていることを確認する。依頼者の白黒判定結果および正解者の認定を承認する場合、検査者は、最終コミットを指示する操作を検査者装置14へ入力する。検査者装置14の最終コミット部154は、検体ハッシュ値および検査者アドレスを含むパラメータを用いて、ウイルスSC106の最終コミットメソッドを呼び出す(S178)。
ウイルスSC106の最終コミット処理部186は、検査者装置14から送信されたパラメータをもとに検査情報を更新する(S180)。例えば、最終コミット処理部186は、検査者設定項目の最終コミットフラグを「コミット済」に変更する。
最終コミット処理部186の検査者評価部188は、検査情報の正解者アドレスを参照し、最終コミットを行った検査者(「対象検査者」とも呼ぶ。)が正解者か否かに応じて、対象検査者のスコアを調整する(S182)。例えば、対象検査者が正解者である場合、検査者評価部188は、アクターSC110に記録された対象検査者のスコアをそれまでより大きい値に変更する。また、対象検査者が正解者でない場合、検査者評価部188は、対象検査者のスコアをそれまでより小さい値に変更する。ウイルスSC106は、エクスターナルコールにより、アクターSC110に記録されたスコアを更新してもよい。
最終コミット処理部186のトークン振替部190は、検査者装置14から送信された検査者アドレスをもとに、検査依頼口座に記録された当該検査者のデポジットを当該検査者の口座へ振り替える(S184)。言い換えれば、トークン振替部190は、評価レポート登録時に検査者から預かったトークンを、最終コミット時に当該検査者の口座へ返還する。
なお、1つの検体に対して複数の検査者がいる場合の最後の検査者による最終コミット時、検査者が1人であればその1人の検査者による最終コミット時、トークン振替部190は、さらに以下の処理を実行する。(1)トークン振替部190は、正解者と認定された検査者に報酬を分配する。この場合、トークン振替部190は、アクターSC110を参照して、各正解者のスコアを参照し、相対的にスコアが高い検査者に対して、相対的に大きい報酬を割り当てる。また、(2)トークン振替部190は、検査依頼口座に記録された手数料を主催者の口座へ振り替える。
また、(3)トークン振替部190は、検査依頼口座に記録された依頼者のデポジットを依頼者の口座へ振り替える。言い換えれば、トークン振替部190は、検査依頼時に依頼者から預かったトークンを、依頼者の口座へ返還する。また、最終コミット処理部186は、依頼者設定項目におけるステータスを「検査完了済」に更新する。なお、最終コミット処理部186は、或る検体の検査情報に記録された1つ以上の検査者設定項目における最終コミットフラグが全てコミット済になった場合に、その検体の全ての検査者が最終コミットを行ったことを検出してもよい。
図21は、検査結果閲覧時の動作を示すフローチャートである。閲覧者装置16の検体検索部160は、閲覧候補となる検体の検索要求をポータルサーバ102へ送信する(S190)。ポータルサーバ102は、ステータスが検査完了済の検体情報を含む検索結果を閲覧者装置16へ送信する(S192)。上記の検体情報は、ウイルスSC106の検査情報に含まれる検体ハッシュ値、ステータス、閲覧料、依頼者アドレス、1つ以上の検査者アドレス、1つ以上の正解者アドレスを含む。さらに、アクターSC110に記録された依頼者スコアと検査者スコアを含む。
閲覧者装置16の閲覧実行部162は、検体アドレスおよび閲覧者アドレスを含むパラメータを用いて、ウイルスSC106の閲覧処理メソッドを呼び出す(S194)。ウイルスSC106の閲覧処理部192は、トークンSC108において、閲覧料分のトークンを閲覧者口座から依頼者口座へ振り替える。また、閲覧処理部192は、予め定められた手数料分のトークンを閲覧者口座から主催者口座へ振り替える。また、閲覧処理部192は、今回の閲覧用の口座をトークンSC108に記録し、閲覧者のデポジットとして、予め定められた量のトークンを、閲覧者口座から今回の閲覧用口座へ振り替える(S196)。
また、S194において、閲覧者装置16の閲覧実行部162は、検体アドレスおよび閲覧者アドレスを含む閲覧要求をポータルサーバ102へ送信する。ポータルサーバ102は、閲覧者アドレスを用いて、閲覧者が閲覧料を支払い済みであることを確認する(S198)。閲覧者が閲覧料を支払い済みであれば、ポータルサーバ102は、検体アドレスに対応付けられた結果ノンス(S162で保存した結果ノンス)を閲覧者装置16へ送信する(S200)。閲覧者装置16の閲覧実行部162は、結果ノンスを取得する。
閲覧者装置16の閲覧実行部162は、ウイルスSC106の検査情報から、閲覧対象検体の結果ハッシュ値を取得する。閲覧実行部162は、予め定められた「白」の値に結果ノンスを結合したデータのハッシュ値と、予め定められた「黒」の値に結果ノンスを結合したデータのハッシュ値と、結果ハッシュ値とを比較することにより、閲覧対象検体に対する白黒判定結果が「白」か「黒」かを判定する(S202)。ここでの白黒判定結果は、閲覧対象検体の依頼者による最終的な判定結果である。閲覧実行部162は、閲覧対象検体の白黒判定結果が「白」か「黒」かを画面に表示させてもよい。
閲覧者は、白黒判定結果を確認後、依頼者を評価し、評価結果を閲覧者装置16へ入力する。典型的には、閲覧者は、依頼者の白黒判定結果が正しい場合、高い評価値を設定する一方、依頼者の白黒判定結果が誤っている場合、低い評価値を設定する。依頼者の白黒判定結果が誤っているとは、例えば、依頼者が閲覧対象検体を正当なもの(「白」)と判定しながら、実際には閲覧対象検体がマルウェア(「黒」)だった場合や、逆に、依頼者が閲覧対象検体をマルウェア(「黒」)と判定しながら、実際には閲覧対象検体が正当なもの(「白」)だった場合である。閲覧者装置16の依頼者評価部164は、閲覧者アドレスおよび依頼者の評価値をパラメータとして、ウイルスSC106の依頼者評価メソッドを呼び出す(S204)。
ウイルスSC106の依頼者評価処理部194は、閲覧者装置16から送信された依頼者の評価値をもとに、依頼者のスコアを調整する(S206)。例えば、依頼者の評価値が高い場合、依頼者評価処理部194は、アクターSC110に記録された依頼者スコアをそれまでより大きい値に変更してもよい。逆に、依頼者の評価値が低い場合、依頼者評価処理部194は、アクターSC110に記録された依頼者スコアをそれまでより小さい値に変更してもよい。また、依頼者評価処理部194は、閲覧用口座に記録された閲覧者のデポジットを閲覧者の口座へ振り替える(S208)。言い換えれば、依頼者評価処理部194は、閲覧実行時に閲覧者から預かったトークンを、依頼者評価時に閲覧者口座へ返還する。
以上、本発明を第2実施例をもとに説明した。この第2実施例は例示であり、各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
変形例を説明する。第2実施例では言及していないが、検査システム101は、ある依頼者が登録した検査依頼に対して、他者が協賛可能な仕組みを備えてもよい。図22は、変形例の検査システム101の構成を示す。検査システム101は、第2実施例の構成に加えて、協賛者装置210を備える。協賛者装置210は、協賛者により操作される情報処理装置である。協賛者は、依頼者が登録した検体の検査に協賛するユーザであり、言い換えれば、依頼者とともに同じ検体の検査を依頼するユーザである。なお、或る検体の検査に対する協賛者は、他の検体の検査では依頼者、検査者、または閲覧者になることもある。
図23は、変形例における検査情報の例を示す。本変形例では、依頼者装置12およびウイルスSC106は、検査依頼登録時に、協賛可否フラグと報酬上限額をさらに設定する。協賛可否フラグは、他者の協賛を許可すること(「協賛可」)、または、他者の協賛を禁止すること(「協賛不可」)のいずれかに設定される。報酬上限額は、協賛可否フラグが協賛可の場合に設定される。報酬上限額には、協賛者により加算後の報酬額の上限である。
協賛者が検体の検査に協賛する目的は、報酬額を上げることによって検査者の意欲を向上させ、活発な評価を促すことと、閲覧料の分配を受けることである。全ての検査者が最終コミットを行った際、ウイルスSC106のトークン振替部190は、依頼者の報酬額と協賛者の加算額の合計を、1人以上の正解者に対して分配する。また、トークン振替部190は、閲覧者が支払った閲覧料を、依頼者と協賛者との間で報酬の分担率に応じて分配する。例えば、依頼者の報酬額が80トークン、協賛者の加算額が20トークン、閲覧料が10トークンの場合、トークン振替部190は、8トークンを閲覧者の口座から依頼者の口座へ振り替え、2トークンを閲覧者の口座から協賛者の口座へ振り替えてもよい。
上記の例において、協賛者がいなければ、依頼者は1回の閲覧あたり10トークンを得ることができたが、協賛者がいるため、1回の閲覧あたりの収益は8トークンとなる。また、閲覧者が1回の閲覧あたり10トークンを得るためには、閲覧料を約13トークンにする必要があるが、そうすると閲覧者が減少する可能性がある。このような収益の減少を調整するための設定項目が、協賛可否フラグと報酬上限額である。例えば、依頼者は、報酬額、報酬上限額、および閲覧料を調整することで、1回の閲覧あたりの収益を任意に調整することができる。依頼者は、検査の活発化と、自身の収益とを比較衡量して、協賛可否フラグおよび報酬上限額を設定する。
図24は、図22の協賛者装置210の機能ブロックを示すブロック図である。協賛者装置210は、依頼者装置12、表示部42、通信部112、制御部44を備える。制御部44は、依頼検索部212と協賛部214を含む。
依頼検索部212は、登録された1つ以上の検査依頼に関する情報をポータルサーバ102から取得する。例えば、依頼検索部212は、検査依頼の検索要求をポータルサーバ102へ送信する。ポータルサーバ102は、ウイルスSC106の検査情報を参照して、ステータスが検査中の検査依頼に関する情報を検索結果として協賛者装置210へ送信する。検査依頼に関する情報は、ウイルスSC106の検査情報に含まれる検体ハッシュ値、期限、報酬、評価完了検査者数(検査情報に記録された検査者数)、検体URIを含む。さらに、アクターSC110に記録された依頼者スコアと評価完了検査者のスコアを含む。なお、ポータルサーバ102は、協賛可否フラグが協賛可に設定された検査依頼の情報のみを協賛者装置210へ送信してもよい。協賛者装置210は、検索結果を画面に表示させる。
協賛部214は、協賛者により協賛対象として選択された検査依頼を指定するパラメータを用いて、ウイルスSC106の協賛処理メソッドを呼び出す。上記パラメータは、協賛対象の検査依頼のキーである検体ハッシュ値と、報酬加算額(すなわち既定の報酬への上乗せ額)を含む。ウイルスSC106の協賛処理部(不図示)は、検体ハッシュ値により特定される検査情報を、上記パラメータを用いて更新する。例えば、ウイルスSC106の協賛処理部は、図23の協賛者設定項目220を検査情報に設定する。なお、協賛者は、結果コミットが不要であるため、結果コミットのインセンティブとなるデポジットも不要である。
第2実施例および変形例に記載の検査システム101の構成と動作は次のように表現することができる。
[項目1]
依頼者装置12は、検査対象データを所定領域へ記録するとともに、検査の報酬をブロックチェーンシステム104へ記録する。一つ以上の検査者装置14のそれぞれは、依頼者装置12により記録された検査対象データを取得して、検査対象データに対する検査結果(例えば評価レポート)を所定領域へ記録する。依頼者装置12は、一つ以上の検査者装置14により記録された一つ以上の検査結果を取得し、依頼者により検査結果が正解と認定された検査者である正解者のデータ(例えば正解者アドレスの配列)をブロックチェーンシステム104へ記録する。ブロックチェーンシステム104(例えばウイルスSC106)は、正解者に対して検査の報酬を分配する。
この構成によると、依頼者は、一人以上の検査者による電子データの検査結果を得ることができ、一人以上の検査者のうち正解者は、報酬を得ることができるビジネスモデルを実現できる。また、報酬の支払いにブロックチェーンシステムを利用することで、依頼者は、個々の検査者への信用を持たない場合でも簡単に送金(言い換えれば価値の移転)を行うことができる。また、少額の送金の繰り返しも容易に実現できる。また、報酬の支払いに関する改ざんも防止することができる。
[項目2]
ブロックチェーンシステム104(例えばアクターSC110)は、一人以上の検査者それぞれのスコアを記憶する。各検査者のスコアは、検査結果(例えば白または黒の評価結果)が正解か否かに応じて変更される。ブロックチェーンシステム104は、検査結果が正解となった一人以上の検査者の中で、スコアが相対的に高い検査者に対して相対的に高い報酬を分配する。
この構成によると、検査者に対して、正しい評価結果を作成すること、言い換えれば、誠実に評価することへのインセンティブを提供できる。
[項目3]
一つ以上の検査者装置14のそれぞれは、正解者のデータをブロックチェーンシステム104から取得し、正解者のデータが検査者により承認(例えば最終コミット)された場合、正解者承認の旨をブロックチェーンシステム104へ記録する。ブロックチェーンシステム104は、全ての検査者装置14から正解者承認の旨が記録された場合、正解者に対して検査の報酬を分配する。
この構成によると、依頼者による正解者の認定を、当該依頼者による検査依頼に対応した全ての検査者が承認したことを条件として、正解者へ報酬を分配する。これにより、各検査者にとって納得のいく報酬分配を実現できる。
[項目4]
依頼者装置12は、検査対象データを記録する際(例えば検査依頼時)、依頼者が保有する通貨(例えばトークン)の少なくとも一部を預り金としてブロックチェーンシステム104(例えばトークンSC108)へ記録する。ブロックチェーンシステム104は、全ての検査者装置14から正解者承認の旨が記録された場合、預り金を依頼者へ返還する。
この構成によると、依頼者による検査依頼に対応した全ての検査者の承認を条件として依頼者へデポジットを返還することにより、検査者からの異議申立に対して真摯に対応することへのインセンティブを依頼者に提供できる。例えば、或る検査者の評価結果が正解(依頼者の白黒判定結果と同じ)であったにも関わらず、依頼者が認定した正解者の中に当該検査者が含まれなかった場合、当該検査者は依頼者へ異議申し立てを行う。これを受けた依頼者は、当該検査者を正解者アドレスの配列に含める等の作業を行う。
[項目5]
一つ以上の検査者装置14のそれぞれは、検査結果を記録する際(例えば評価コミット時)、検査者が保有する通貨の少なくとも一部を預り金としてブロックチェーンシステム104(例えばトークンSC108)へ記録する。ブロックチェーンシステム104は、或る検査者装置14から正解者承認の旨が記録された場合、その検査者装置14に対応する検査者へ預り金を返還する。
不正解となった検査者は、依頼者による正解者の認定に対する承認を怠ることが考えられるが、その承認をデポジット返還の条件とすることで、依頼者による正解者の認定に対して承認を行うことへのインセンティブを検査者に提供できる。これにより、全ての検査者の納得の下、検査者のスコアを調整し、また、報酬を分配することができる。
[項目6]
一つ以上の検査者装置14のそれぞれは、検査結果(例えば白黒判定結果)を記録する際に、検査結果と乱数値とを結合したデータのハッシュ値(例えば図16の評価ハッシュ値)をブロックチェーンシステム104へ記録する。
この構成によると、一つ以上の検査者装置14は、各々の乱数値を保存しておくことで自身の評価結果を事後に証明でき、また、上記ハッシュ値をブロックチェーンシステム104へ記録することにより検査結果の改ざんを防止することができる。
[項目7]
依頼者装置12は、検査結果(例えば白黒判定結果)と、検査結果の閲覧料とをブロックチェーンシステム104(例えばウイルスSC106)へ記録する。閲覧者装置16は、閲覧者が保有する通貨から閲覧料を依頼者に支払う処理をブロックチェーンシステム104に実行させる。
依頼者は、検査結果の閲覧により収益を上げることができるため、検査を依頼することへのインセンティブを依頼者に提供できる。また、閲覧料の支払いに関する改ざんも防止することができる。
[項目8]
依頼者装置12は、検査結果と乱数とを結合したデータのハッシュ値(例えば図16の結果ハッシュ値)をブロックチェーンシステム104(例えばウイルスSC106)へ記録するとともに、上記乱数をポータルサーバ102へ通知する。ポータルサーバ102は、閲覧者から依頼者へ閲覧料が支払われた場合、上記乱数を閲覧者装置16へ通知することにより、閲覧者装置16において検査結果を識別可能にする。
ブロックチェーンシステム104のスマートコントラクトは、検査システム101の各装置で共有されるため、検査システム101の各装置は、スマートコントラクトから検査結果のデータを得ることができる。しかし、上記構成とすることで、閲覧料を支払わずに検査結果(すなわち検体が白か黒か)が確認されてしまうことを防止できる。
[項目9]
依頼者装置12は、検査対象データを記録する際、依頼者が保有する通貨の少なくとも一部を手数料としてブロックチェーンシステム104へ記録する。ブロックチェーンシステム104は、依頼者のスコアを記憶し、上記手数料を依頼者のスコアに応じて決定する。閲覧者装置16は、閲覧者により入力された依頼者の評価をブロックチェーンシステム104へ記録することにより、ブロックチェーンシステム104に記憶された依頼者のスコアを調整させる。
この構成によると、手数料を低額にするために自身のスコアを良くしようとするインセンティブを依頼者に与え、すなわち、検体の白黒を適切に判定することへのインセンティブを依頼者に与えることができる。
[項目10]
閲覧者装置16は、検査結果を取得する際、閲覧者が保有する通貨の少なくとも一部を預り金としてブロックチェーンシステム104へ記録する。ブロックチェーンシステム104は、検査者装置14から依頼者の評価が記録された場合、預り金を閲覧者へ返還する。
この構成によると、依頼者の評価を行うことへのインセンティブを閲覧者に与えることができる。
[項目11]
協賛者装置210は、検査の報酬の上乗せ額をブロックチェーンシステム104(例えばウイルスSC106)へ記録する。ブロックチェーンシステム104は、上乗せ後の報酬を、当該検査を行った検査者のうち正解者に対して分配する。
この構成によると、報酬額を加算する仕組みを設けることにより、検査者の意欲を喚起し、検査の活発化を実現することができる。
[項目12]
依頼者装置12は、検査対象データを記録する際、報酬の上限額をブロックチェーンシステム104へ記録する。協賛者装置210による報酬の上乗せ額は、上記の上限額により制限される。ブロックチェーンシステム104は、閲覧者が支払った閲覧料を、依頼者と協賛者との間で報酬の分担率に応じて分配する。
この構成によると、依頼者は、報酬の上限額を設定することにより、閲覧料の取り分、言い換えれば、協賛者との閲覧料の分配率を任意に調整することができる。
[項目13]
検査システム101は、依頼者装置12を含まない構成、すなわち複数の検査者装置14と閲覧者装置16のみで構成してもよい。この構成では、検査者は、日常的あるいは定期的に通信データ(例えばパケット等のデータ)等の検査対象を監視してもよい。検査者は、例えば、不正なデータ通信や不正なアクセス、すなわち所定のパターンやポリシーとは異なるパターンを抽出してルール化してもよく、言い換えれば、異常パターンを定義してもよい。検査者装置14は、上記ルール(言い換えれば上記異常パターン)をシグネチャとして評価レポートに記録し、評価レポートとその閲覧に必要な報酬額を含む情報共有オファーをブロックチェーンシステム104に登録してもよい。すなわち、検査者は依頼を受けなくても、自発的に検索を実施して検査結果や対策方法等を含む評価レポートをブロックチェーンシステム104に登録してもよい。閲覧者は、上記第2実施例と同様の仕組みにより、情報共有オファーを閲覧して検査者が設定した報酬額を支払う。閲覧したシグネチャの内容が有効であれば、閲覧者は、検査者に良い評価を付与し、または、追加の報酬を支払ってもよい。閲覧したシグネチャが有効でない場合、閲覧者は検査者に悪い評価を付与してもよく、または、閲覧者が支払った閲覧料が主催者に回収されるようにしてもよい。なお、この構成に、協賛者装置210が備わるようにしてもよい。
項目13の構成によると、依頼者の検査依頼がなくても、検査者が主体的に不正な検体やセキュリティ上の欠陥等を検査して有償で情報公開したり、あるいは上記のように不正アクセスを検知するためのシグネチャを作成して有償で情報提供したりすることが可能になる。閲覧者(例えばセキュリティソフトウェア提供企業等)は、効率的にセキュリティ対策することが可能になる。また、検査者は、報酬を得られることで、より意欲的に不正なデータや情報アクセスの検知を監視するようになることが期待される。
上述した実施の形態および変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施の形態および変形例それぞれの効果をあわせもつ。また、請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
本発明は、電子データを検査するシステムに適用できる。
10 検査システム、 12 依頼者装置、 14 検査者装置、 16 閲覧者装置、 18 ファイルサーバ、 22 ブロックチェーンネットワーク、 54 被験データ登録部、 64 被験データ取得部、 72 検査結果取得部、 74 送金部、 76 検査結果出力部、 101 検査システム、 102 ポータルサーバ、 104 ブロックチェーンシステム、 210 協賛者装置。

Claims (11)

  1. 検査対象データを所定領域へ記録する第1の装置と、
    前記検査対象データが不正か否かを検査する第2の装置と、
    前記検査対象データに対する検査結果を使用する第3の装置と、
    を備え、
    前記第1の装置は、前記検査対象データに該当するデータが検査対象として登録済か否かに関する検索結果を受領し、
    前記第2の装置は、前記第1の装置により記録された検査対象データを取得して、前記検査対象データに対する検査結果を所定領域へ記録し、
    前記第3の装置は、前記第2の装置により記録された検査結果を取得することを特徴とする検査システム。
  2. 検査対象データを所定領域へ記録する第1の装置と、
    前記検査対象データが不正か否かを検査する第2の装置と、
    を備え、
    前記第1の装置は、前記検査対象データに該当するデータが検査対象として登録済か否かに関する検索結果を受領し、
    前記第2の装置は、前記第1の装置により記録された検査対象データを取得して、前記検査対象データに対する検査結果を所定領域へ記録し、
    前記第1の装置は、前記第2の装置により記録された検査結果を取得することを特徴とする検査システム。
  3. 前記第2の装置は、検査する対象を決定するための検索結果であって、かつ、前記第1の装置により記録された検査対象データに関する検索結果を受領することを特徴とする請求項1または2に記載の検査システム。
  4. 前記第3の装置は、前記第2の装置により記録された検査結果に関する検索結果を受領することを特徴とする請求項1に記載の検査システム。
  5. 前記第1の装置は、所定のブロックチェーンネットワークに対する検索結果であって、
    前記検査対象データに該当するデータが検査対象として登録済か否かに関する検索結果を
    受領することを特徴とする請求項1から4のいずれかに記載の検査システム。
  6. 前記第1の装置は、前記検査対象データに関する属性情報を前記ブロックチェーンネットワークへ記録し、
    前記第2の装置は、前記ブロックチェーンネットワークから前記属性情報を取得し、取得した属性情報に基づいて前記検査対象データを取得することを特徴とする請求項5に記載の検査システム。
  7. 前記第1の装置は、前記検査対象データを前記ブロックチェーンネットワークの外部の装置に記録し、
    前記第2の装置は、前記属性情報が示すアドレスに基づいて、前記外部の装置から前記検査対象データを取得することを特徴とする請求項6に記載の検査システム。
  8. 前記第2の装置は、前記検査結果を所定のブロックチェーンネットワークへ記録し、
    前記第3の装置は、前記ブロックチェーンネットワークから前記検査結果を取得することを特徴とする請求項1に記載の検査システム。
  9. 前記第3の装置は、前記検査結果を取得する場合に、前記第1の装置のユーザと、前記第2の装置のユーザへの報酬支払処理を実行することを特徴とする請求項1に記載の検査システム。
  10. 第1の装置が、検査対象データに該当するデータが検査対象として登録済か否かに関する検索結果を受領するステップと、
    ファイルサーバが、前記検査対象データに該当するデータが検査対象として未登録である場合に、前記検査対象データを所定領域へ記録するステップと、
    前記検査対象データが不正か否かを検査する第2の装置が、前記ファイルサーバにより記録された検査対象データを取得するステップと、
    前記第2の装置が、前記検査対象データに対する検査結果を所定領域へ記録するステップと、
    前記検査対象データに対する検査結果を使用する第3の装置が、前記第2の装置により記録された検査結果を取得するステップと、
    を備えることを特徴とする検査方法。
  11. 第1の装置が、検査対象データに該当するデータが検査対象として登録済か否かに関する検索結果を受領するステップと、
    ファイルサーバが、前記検査対象データに該当するデータが検査対象として未登録である場合に、前記検査対象データを所定領域へ記録するステップと、
    前記検査対象データが不正か否かを検査する第2の装置が、前記ファイルサーバにより記録された検査対象データを取得するステップと、
    前記第2の装置が、前記検査対象データに対する検査結果を所定領域へ記録するステップと、
    前記第1の装置が、前記第2の装置により記録された検査結果を取得するステップと、
    を備えることを特徴とする検査方法。
JP2022171056A 2017-04-03 2022-10-26 検査システム、検査方法、およびコンピュータプログラム Active JP7429755B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017073830 2017-04-03
JP2017073830 2017-04-03
JP2018237366A JP7166905B2 (ja) 2017-04-03 2018-12-19 検査システムおよび検査方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018237366A Division JP7166905B2 (ja) 2017-04-03 2018-12-19 検査システムおよび検査方法

Publications (2)

Publication Number Publication Date
JP2023002748A JP2023002748A (ja) 2023-01-10
JP7429755B2 true JP7429755B2 (ja) 2024-02-08

Family

ID=63712236

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2018557060A Active JP6457165B1 (ja) 2017-04-03 2018-04-03 検査システムおよび検査方法
JP2018237366A Active JP7166905B2 (ja) 2017-04-03 2018-12-19 検査システムおよび検査方法
JP2022171056A Active JP7429755B2 (ja) 2017-04-03 2022-10-26 検査システム、検査方法、およびコンピュータプログラム

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2018557060A Active JP6457165B1 (ja) 2017-04-03 2018-04-03 検査システムおよび検査方法
JP2018237366A Active JP7166905B2 (ja) 2017-04-03 2018-12-19 検査システムおよび検査方法

Country Status (5)

Country Link
US (3) US11074343B2 (ja)
EP (1) EP3608819B1 (ja)
JP (3) JP6457165B1 (ja)
CN (2) CN116821908A (ja)
WO (1) WO2018186391A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2555517B (en) * 2016-08-03 2022-05-11 Sophos Ltd Mitigation of return-oriented programming attacks
JP6457165B1 (ja) 2017-04-03 2019-01-23 株式会社野村総合研究所 検査システムおよび検査方法
CN110574059A (zh) * 2017-04-11 2019-12-13 区块链控股有限公司 关于区块链的快速分布式共识
KR102210962B1 (ko) * 2018-12-31 2021-02-03 충남대학교산학협력단 스마트 컨트랙트 기반 논문 심사 시스템
JP6587370B1 (ja) * 2019-01-16 2019-10-09 株式会社医療情報技術研究所 文書管理システム
JP6716123B1 (ja) * 2019-03-28 2020-07-01 重政 河合 祭祀方法、コンピュータプログラム、及び祭祀審査装置
JP6617253B1 (ja) * 2019-05-21 2019-12-11 株式会社医療情報技術研究所 文書管理システム
US20220414248A1 (en) * 2019-12-20 2022-12-29 Nec Corporation Management apparatus, management method, and program
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
JP7473911B2 (ja) 2020-04-21 2024-04-24 清水建設株式会社 施工情報管理システム、及び施工情報管理方法
JP6762057B1 (ja) * 2020-05-20 2020-09-30 株式会社リーチ・ビデオジャパン Snsにおける動画・画像コンテンツ投稿管理システム
JP7269655B2 (ja) * 2020-05-27 2023-05-09 重政 河合 祭祀方法、コンピュータプログラム、及び祭祀審査装置
JP6935567B1 (ja) * 2020-10-05 2021-09-15 エヌ・ティ・ティ・コミュニケーションズ株式会社 情報取引管理システム、方法およびプログラム
WO2022195643A1 (ja) * 2021-03-13 2022-09-22 株式会社クエスト ブロックチェーンシステム、記憶装置及び管理装置
JP7478440B2 (ja) 2021-03-25 2024-05-07 国立研究開発法人産業技術総合研究所 情報処理方法及び情報処理システム
WO2023063392A1 (ja) * 2021-10-13 2023-04-20 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 制御方法、サーバ、プログラム、及び、セキュリティ分析システム
JP7187085B1 (ja) * 2022-03-03 2022-12-12 株式会社Robot Consulting 情報処理システム、情報処理方法及びプログラム
JP7260236B1 (ja) 2022-11-28 2023-04-19 大学共同利用機関法人情報・システム研究機構 情報処理装置、情報処理システム、プログラムおよび情報処理方法
KR102679147B1 (ko) * 2023-05-23 2024-06-27 주식회사 원유니버스 블록체인을 이용한 제3자 참여형 온라인 게임 부정행위 방지 방법 및 이를 이용한 방지 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160260095A1 (en) 2015-03-02 2016-09-08 Dell Products, Lp Containerized Computational Task Execution Management Using a Secure Distributed Transaction Ledger
US20160261690A1 (en) 2015-03-02 2016-09-08 Dell Products L.P. Computing device configuration and management using a secure decentralized transaction ledger

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4049740B2 (ja) * 2003-12-18 2008-02-20 富士通株式会社 ファイル転送結果のチエック方法、ファイル転送システム及びそのクライアント端末
US8756683B2 (en) * 2006-12-13 2014-06-17 Microsoft Corporation Distributed malicious software protection in file sharing environments
CN101399553B (zh) * 2008-11-12 2012-03-14 清华大学 一种可在线编程的准循环ldpc码编码器装置
US20150220928A1 (en) * 2014-01-31 2015-08-06 Robert Allen Platform for the purchase and sale of digital currency
CN106295333B (zh) * 2015-05-27 2018-08-17 安一恒通(北京)科技有限公司 用于检测恶意代码的方法和系统
RU2589862C1 (ru) 2015-06-30 2016-07-10 Закрытое акционерное общество "Лаборатория Касперского" Способ обнаружения вредоносного кода в оперативной памяти
CN109075971B (zh) * 2016-02-08 2022-02-18 林赛·莫洛尼 用于文档信息真实性验证的系统和方法
US10223685B2 (en) * 2016-02-26 2019-03-05 Arithmetic Operations Incorporated Systems, methods, and media for pay-per-access micropayment-based web browsing and server applications
US10063572B2 (en) * 2016-03-28 2018-08-28 Accenture Global Solutions Limited Antivirus signature distribution with distributed ledger
US11651368B2 (en) * 2016-11-14 2023-05-16 American Express Travel Related Services Company, Inc. System and method for automated linkage of enriched transaction data to a record of charge
JP6457165B1 (ja) 2017-04-03 2019-01-23 株式会社野村総合研究所 検査システムおよび検査方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160260095A1 (en) 2015-03-02 2016-09-08 Dell Products, Lp Containerized Computational Task Execution Management Using a Secure Distributed Transaction Ledger
US20160261690A1 (en) 2015-03-02 2016-09-08 Dell Products L.P. Computing device configuration and management using a secure decentralized transaction ledger

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
川口 信隆,マルウェア対策ユーザサポートシステムのキューイングネットワークモデル,情報処理学会論文誌 論文誌ジャーナル Vol.53 No.11 [CD-ROM] IPSJ Journal,日本,一般社団法人情報処理学会,2012年11月15日,第53巻,p.2584-2598

Also Published As

Publication number Publication date
EP3608819A4 (en) 2020-12-30
US11074343B2 (en) 2021-07-27
CN110462619A (zh) 2019-11-15
CN110462619B (zh) 2023-07-25
US20230359735A1 (en) 2023-11-09
JP2023002748A (ja) 2023-01-10
US20200034536A1 (en) 2020-01-30
JP2019091464A (ja) 2019-06-13
WO2018186391A1 (ja) 2018-10-11
EP3608819A1 (en) 2020-02-12
EP3608819B1 (en) 2024-03-20
JPWO2018186391A1 (ja) 2019-04-11
CN116821908A (zh) 2023-09-29
US11741229B2 (en) 2023-08-29
JP7166905B2 (ja) 2022-11-08
JP6457165B1 (ja) 2019-01-23
US20210319102A1 (en) 2021-10-14

Similar Documents

Publication Publication Date Title
JP7429755B2 (ja) 検査システム、検査方法、およびコンピュータプログラム
US11695755B2 (en) Identity proofing and portability on blockchain
Das et al. Understanding security issues in the NFT ecosystem
US11568415B2 (en) Decentralized safeguard against fraud
US11568437B2 (en) Systems, methods, and apparatuses for implementing commerce rewards across tenants for commerce cloud customers utilizing blockchain
Qammar et al. Securing federated learning with blockchain: a systematic literature review
JP6931999B2 (ja) 信用度管理システムおよび信用度管理方法
US20200027089A1 (en) Blockchain transaction safety using smart contracts
US20240064135A1 (en) Identity Proofing and Portability on Blockchain
US9558348B1 (en) Ranking software applications by combining reputation and code similarity
US11831666B2 (en) Blockchain data breach security and cyberattack prevention
CN111046078A (zh) 基于区块链的征信查询方法、装置和电子设备
Kaafarani et al. An adaptive decision-making approach for better selection of blockchain platform for health insurance frauds detection with smart contracts: development and performance evaluation
Stampernas Blockchain technologies and smart contracts in the context of the Internet of Things
Attia et al. Securing federated learning with blockchain: A systematic literature review
KR102540291B1 (ko) 블록체인 기반 공모전 출품작 관리 방법 및 장치
US20230396445A1 (en) Multi-signature wallets in public trust ledger actions via a database system
US20230368293A1 (en) Fiat payment based on a cryptocurrency blockchain transaction
US20230368292A1 (en) Cryptocurrency payment based on a canceled fiat transaction
US20230394481A1 (en) Authorizing public trust ledger actions via a database system
Zeng et al. DesTest: A Decentralised Testing Architecture for Improving Data Accuracy of Blockchain Oracle
Castillo et al. Creducate: Blockchain-based Academic Record Management and Verification System Built in the Solana Network
Esiyok Three modest proposals for building trust: in social media discourse, the software that powers it and the browsers that run the software

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221108

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240129

R151 Written notification of patent or utility model registration

Ref document number: 7429755

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151