(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-08-17
(54)【発明の名称】信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御のためのシステムならびに方法
(51)【国際特許分類】
G06F 21/62 20130101AFI20230809BHJP
G06F 21/60 20130101ALI20230809BHJP
【FI】
G06F21/62
G06F21/60 320
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023505403
(86)(22)【出願日】2021-07-23
(85)【翻訳文提出日】2023-03-24
(86)【国際出願番号】 US2021042881
(87)【国際公開番号】W WO2022020666
(87)【国際公開日】2022-01-27
(32)【優先日】2020-07-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】523027197
【氏名又は名称】スーパーファイル インコーポレイテッド
(74)【代理人】
【識別番号】100137969
【氏名又は名称】岡部 憲昭
(74)【代理人】
【識別番号】100104824
【氏名又は名称】穐場 仁
(74)【代理人】
【識別番号】100121463
【氏名又は名称】矢口 哲也
(72)【発明者】
【氏名】バルデス,シェーン ライアン
(57)【要約】
1つの例示的な方法は、クライアントコンピューティング装置によって、クライアントコンピューティング装置でメモリ装置に格納されたスーパーファイルを開く要求を受信するステップであって、スーパーファイルは暗号化されたコンテンツを含み、要求はユーザ資格証明情報を含む、ステップと、スーパーファイルを開く要求の受信に応答して、クライアントコンピューティング装置によって、スーパーファイルにアクセスするためのリモートサーバへの要求を通信するステップであって、要求はユーザアカウントに関連付けられた資格証明を含む、ステップと、リモートサーバから、暗号情報を受信するステップと、暗号情報を用いて、暗号化されたコンテンツを復号するステップと、復号されたコンテンツにアクセスして提示するステップと、復号されたコンテンツがアクセスされている間、リモートサーバとの通信を維持するステップと、を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
クライアントコンピューティング装置によって、前記クライアントコンピューティング装置においてメモリ装置に格納されたスーパーファイルを開く要求を受信するステップであって、前記スーパーファイルは暗号化されたコンテンツを含み、前記要求はユーザ資格証明情報を含む、ステップと、
前記スーパーファイルを開く前記要求の受信に応答して、前記クライアントコンピューティング装置によって、前記スーパーファイルにアクセスするためのリモートサーバへの要求を通信するステップであって、前記要求はユーザアカウントに関連付けられた資格証明を含む、ステップと、
前記リモートサーバから、暗号情報を受信するステップと、
前記暗号情報を用いて、前記暗号化されたコンテンツを復号するステップと、
前記復号されたコンテンツにアクセスして提示するステップと、
前記復号されたコンテンツがアクセスされている間、前記リモートサーバとの通信を維持するステップと、
を含む方法。
【請求項2】
前記スーパーファイルが開いており、前記リモートサーバとの前記維持された通信を使用している間に、前記スーパーファイルに関連付けられた使用情報を提供するステップを、さらに含む、請求項1に記載の方法。
【請求項3】
前記使用情報は、提示されている前記復号されたコンテンツの一部、または前記復号されたコンテンツに関連付けられたユーザ入力を示す、請求項2に記載の方法。
【請求項4】
前記復号されたコンテンツがアクセスされている間に、
前記リモートサーバから修正され暗号化されたコンテンツを受信するステップと、
前記暗号化されたコンテンツを前記修正され暗号化されたコンテンツと置き換えるステップと、
前記修正され暗号化されたコンテンツを提示するステップと、
さらに含む、請求項1に記載の方法。
【請求項5】
前記復号されたコンテンツがアクセスされている間に、
前記暗号化されたコンテンツに対するアクセス権の喪失の指示を受信するステップと、
前記復号されたコンテンツの提示を終了するステップと、
前記復号されたコンテンツを削除するステップと、
をさらに含む、請求項1に記載の方法。
【請求項6】
前記復号されたコンテンツがアクセスされている間に、
前記クライアントコンピューティング装置によって、前記復号されたコンテンツの修正を受信するステップと、
前記修正に基づいて、前記暗号化されたコンテンツを更新するステップと、
前記暗号化されたコンテンツを、前記クライアントコンピューティング装置の前記メモリ装置内の前記更新され暗号化されたコンテンツと置き換えるステップと、
前記更新され暗号化されたコンテンツを前記リモートサーバに提供するステップと、
をさらに含む、請求項1に記載の方法。
【請求項7】
前記復号されたコンテンツがアクセスされている間に、
前記リモートサーバへの接続の喪失を検出するステップと、
前記復号されたコンテンツの提示を終了するステップと、
前記復号されたコンテンツを削除するステップと、
をさらに含む、請求項1に記載の方法。
【請求項8】
前記復号されたコンテンツがアクセスされている間に、前記暗号化されたコンテンツに関連する使用統計を前記リモートサーバに提供するステップを、さらに含む、請求項1に記載の方法。
【請求項9】
リモートクライアント装置から、スーパーファイル内の暗号化されたコンテンツにアクセスする要求を受信するステップであって、前記要求はユーザ資格証明情報を含み、前記スーパーファイルは、前記リモートクライアント装置のメモリ装置に格納され、暗号化されたコンテンツを含む、ステップと、
前記暗号化されたコンテンツにアクセスするための認可レベルを判定するステップと、
前記認可レベルの判定に応答して、
暗号情報を前記リモートクライアント装置に提供するステップと、
前記スーパーファイルが前記リモートクライアント装置において開いている間に、前記暗号化されたコンテンツに関連付けられた前記リモートクライアント装置から使用情報を受信して格納するステップと、
を含む、方法。
【請求項10】
前記使用情報は、提示されている前記スーパーファイル内のコンテンツの一部、または提示されている前記スーパーファイル内の前記コンテンツに関連付けられたユーザ入力、を示す、請求項9に記載の方法。
【請求項11】
前記認可レベルは、前記暗号化されたコンテンツの所有者、または前記暗号化されたコンテンツの認可された閲覧者、のうちの少なくとも一方を含む、請求項9に記載の方法。
【請求項12】
前記スーパーファイルに関連付けられた修正されたコンテンツを受信するステップと、
前記スーパーファイルの開いているコピーを有する第2のリモートクライアント装置を判定するステップと、
前記第2のリモートクライアント装置に更新されたスーパーファイル情報を送信するステップであって、前記更新されたスーパーファイル情報は前記修正されたコンテンツを含む、ステップと、
をさらに含む、請求項9に記載の方法。
【請求項13】
前記修正されたコンテンツに基づいて、前記スーパーファイルに対応するブロックチェーン用のブロックレコードを生成するステップと、
前記ブロックレコードを前記ブロックチェーンに追加するステップと、
をさらに含む、請求項12に記載の方法。
【請求項14】
第3のリモートクライアント装置から、前記スーパーファイルのコピー内の暗号化されたコンテンツにアクセスする要求を受信するステップであって、前記要求は第2のユーザ資格証明情報を含み、前記スーパーファイルの前記コピーは、前記第3のリモートクライアント装置の第2のメモリ装置に格納され、かつ、前記暗号化されたコンテンツを含む、ステップと、
前記暗号化されたコンテンツにアクセスするための認可レベルを判定するステップと、
前記認可レベルの判定に応答して、
更新されたスーパーファイル情報を前記第3のリモートクライアント装置に提供するステップであって、前記更新されたスーパーファイル情報は、前記修正されたコンテンツを含む、ステップと、
暗号情報を、前記第3のリモートクライアント装置に提供するステップと、
前記スーパーファイルが前記第3のリモートクライアント装置において開いている間に、前記修正されたコンテンツに関連付けられた前記第3のリモートクライアント装置から使用情報を受信して格納するステップと、
をさらに含む、請求項12に記載の方法。
【請求項15】
前記スーパーファイルの1つまたは複数のアクセスレベルに対する修正を受信するステップと、
前記スーパーファイルの前記1つまたは複数のアクセスレベルに対する前記修正に基づいて、前記スーパーファイルの開いているコピーを有する1つまたは複数のクライアントに命令を送信するステップと、
をさらに含む、請求項9に記載の方法。
【請求項16】
リモートクライアント装置から、新しいスーパーファイルの作成の指示を受信するステップと、
前記新しいスーパーファイルに関連付けられたデータストアに1つまたは複数のレコードを作成するステップと、
前記1つまたは複数のレコードに1つまたは複数の暗号鍵を格納するステップであって、前記1つまたは複数の鍵のうちの1つは、前記スーパーファイル内のコンテンツを暗号化するために使用される、ステップと、
前記スーパーファイルのコピーを受信して格納するステップと、
を含む、方法。
【請求項17】
前記スーパーファイルに関連付けられた1つまたは複数のアクセス制限を受信するステップと、
前記アクセス制限を、前記1つまたは複数のレコードに格納するステップと、
をさらに含む、請求項16に記載の方法。
【請求項18】
前記新しいスーパーファイルに対応する新しいブロックチェーンを生成するステップと、
前記ブロックチェーンにブロックを挿入するステップであって、前記ブロックは前記スーパーファイルのコピーを含む、ステップと、
をさらに含む、請求項16に記載の方法。
【請求項19】
前記スーパーファイルに対する1つまたは複数のアクセス制限を、前記ブロックに格納するステップを、さらに含む、請求項18に記載の方法。
【請求項20】
前記スーパーファイルまたはスーパーファイルのコンテンツに対する1つまたは複数のチェック値を、前記ブロックに格納するステップを、さらに含む、請求項18に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001]本出願は、2020年7月24日に出願された「追跡可能であり、分析性を有し、いつでもアクセスを変更する能力を有し、ファイルの所有者がそれを更新することができ、次いで、ファイルを有するすべての人のファイルを更新する、新しいコンピュータファイル種類」と題する、米国仮特許出願第63/056,288号の優先権を主張し、その全体が参照により本明細書に組み込まれる。
【0002】
[0002]本発明は、一般に、メディアコンテンツへのアクセスを遠隔制御することに関し、より詳細には、信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御のためのシステムならびに方法に関する。
【背景技術】
【0003】
[0003]コンピューティングシステムは、様々な方法でデータを格納できる。データを格納する1つの一般的な方法は、ハードドライブなどの不揮発性メモリ装置上のファイル内にある。そのようなファイル内のデータは、コンピューティングシステムにより実行される異なるアプリケーションによってアクセスされてもよく、ファイルは他の記憶装置にコピーされてもよい。
【発明の概要】
【0004】
[0004]信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御の ためのシステムならびに方法について、様々な例を説明する。1つの例示的な方法は、クライアントコンピューティング装置によって、クライアントコンピューティング装置でメモリ装置に格納されたスーパーファイルを開く要求を受信するステップであって、スーパーファイルは暗号化されたコンテンツを含み、要求はユーザ資格証明情報を含む、ステップと、スーパーファイルを開く要求の受信に応答して、クライアントコンピューティング装置によって、スーパーファイルにアクセスするためのリモートサーバへの要求を通信するステップであって、要求はユーザアカウントに関連付けられた資格証明を含む、ステップと、リモートサーバから、暗号情報を受信するステップと、暗号情報を用いて、暗号化されたコンテンツを復号するステップと、復号されたコンテンツにアクセスして提示するステップと、復号されたコンテンツがアクセスされている間、リモートサーバとの通信を維持するステップと、を含む。
【0005】
[0005]別の例示的な方法は、リモートクライアント装置から、スーパーファイル内の暗号化されたコンテンツにアクセスする要求を受信するステップであって、要求はユーザ資格証明情報を含み、スーパーファイルはリモートクライアント装置のメモリ装置に格納され、暗号化されたコンテンツを含む、ステップと、暗号化されたコンテンツにアクセスするための認可レベルを判定するステップと、認可レベルの判定に応答して、暗号情報をリモートクライアント装置に提供するステップと、スーパーファイルがリモートクライアント装置で開いている間に、暗号化されたコンテンツに関連付けられたリモートクライアント装置からの使用情報を受信して格納するステップと、を含む。
【0006】
[0006]別の例示的な方法は、リモートクライアント装置から、新しいスーパーファイルの作成の指示を受信するステップと、新しいスーパーファイルに関連付けられたデータストアに1つまたは複数のレコードを作成するステップと、1つまたは複数のレコードに1つまたは複数の暗号鍵を格納するステップであって、スーパーファイル内のコンテンツを暗号化するために1つまたは複数の鍵のうちの1つが使用される、ステップと、スーパーファイルのコピーを受信して格納するステップと、を含む。
【0007】
[0007]これらの例示的な例は、本開示の範囲を限定または定義するためではなく、むしろその理解を助けるための例を提供するために言及されている。例示的な例は、さらなる説明を提供する「発明を実施するための形態」で説明される。様々な例によって提供される利点は、本明細書を調べることによってさらに理解され得る。
【0008】
[0008]本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、1つまたは複数の特定の例を示し、例の説明と共に、特定の例の原理および実装を説明するのに役立つ。
【図面の簡単な説明】
【0009】
【
図1】信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御のための例示的なシステムを示す。
【
図3】信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御のための例示的なシステムを示す。
【
図4】信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御に関するプロセスの例示的なシーケンス図を示す。
【
図5】信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御のための例示的な方法を示す。
【
図6】信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御のための例示的な方法を示す。
【
図7】信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御のための例示的な方法を示す。
【
図8】信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御のための例示的な方法を示す。
【
図9】信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御のための例示的なシステムならびに方法の使用に適した、例示的なコンピューティング装置を示す。
【発明を実施するための形態】
【0010】
[0015]本明細書では、信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御のためのシステムならびに方法の文脈で例を説明する。当業者は、以下の説明が例示にすぎず、決して限定することを意図するものではないことを理解するであろう。ここで、添付の図面に示されている例の実装形態を詳細に参照する。同じまたは同様の項目を参照するために、図面および以下の説明を通して同じ参照符号が使用される。
【0011】
[0016]明確にするために、本明細書に記載の例の日常的な特徴のすべてが示され説明されているわけではない。当然のことながら、そのような実際の実装形態の開発では、アプリケーションおよびビジネス関連の制約の遵守などの開発者の特定の目標を達成するために、実装に固有の多数の決定を行わなければならず、これらの特定の目標は実装形態ごとに、開発者ごとに異なることが理解されよう。
【0012】
[0017]コンピュータは、現代社会の至る所にあり、写真、ビデオ、文書、および他の種類のファイルを、作成、交換、閲覧、および編集するために一般的に使用されている。しかしながら、コンピュータファイルには、ファイル内に含まれるコンテンツの所有者がそのコンテンツに対する制御を行使できる機能がほとんどない。いくつかのアプリケーションは、ユーザがファイルをパスワード保護するか、またはファイルを編集されないようにロックすることを可能にするが、そのような機能はファイルに適用され、ファイルが他の人に配信されると、所有者は、必要なパスワードを提供するか、または編集にロックされていないファイルの代替コピーを提供することを除いて、その後にこれらの制限を変更する能力はない。
【0013】
[0018]あるいは、コンピュータファイルは、クラウドサービスなどのオンラインプラットフォームを介して、格納および共有することができ、異なるユーザがそれらを閲覧または編集するなどのために、プラットフォーム上のファイルにアクセスが可能である。しかしながら、これらのファイルに対する制御は、プラットフォーム自体によって提供され、プラットフォームに格納されたファイルに対して本来の機能ではない。したがって、ファイルの共有は、ファイルが格納されている場所への参照を共有し、ファイルに対する制御を保持するプラットフォームと対話することに限定される。この構成は特定の利点を提供することができるが、プラットフォームによって仲介されるアクセスで、全ユーザがファイルの同じコピーにアクセスすることが必要である。
【0014】
[0019]コンテンツ作成者がコンテンツを個別ファイルとして広く配信できるようにするために、個別ファイルは従来ファイルのようにコピーまたは共有することができ、ユーザはコンテンツを「スーパーファイル」と呼ばれるファイル構造に保存できる。スーパーファイルには、ファイルの作者が作成したコンテンツ(ビデオ、オーディオ、テキスト、スプレッドシートなど)と、コンピューティング装置またはクライアント装置にリモートサーバと通信させて、スーパーファイルのコンテンツへのアクセスを取得させるか、ファイルコンテンツの使用に関する情報およびユーザに課される任意の制限を提供させるための情報と、の両方が含まれる。
【0015】
[0020]スーパーファイルの例は、ヘッダ部分とコンテンツ部分とを含み、コンテンツは暗号化されるが、ヘッダは暗号化されない。コンテンツ部分は、ファイルの作成者または編集者が生成したコンテンツを含む。対照的に、ヘッダ部分は、スーパーファイルのコンテンツを復号してアクセスするための暗号情報を、ユーザのクライアント装置が要求できるようにする情報を含む。
【0016】
[0021]ユーザがスーパーファイルを開こうとするとき、オペレーティングシステムは、例えば、ファイル拡張子.super(例えば、movie.super)を検出することによって、ファイル種類をスーパーファイルとして検出し、スーパーファイルのヘッダ部分にアクセスする。オペレーティングシステムは、ヘッダから、ユニバーサルリソースロケータ(「URL」)などのユニバーサルリソース識別子(「URI」)として符号化できるサーバコンピュータ(複数可)を識別する情報と、ファイルIDおよび暗号ハッシュ値などのスーパーファイルの識別子と、を取り出す。次いで、URLを使用してサーバに連絡し、ファイルIDおよびハッシュ値、ならびにユーザ資格証明情報を提供する。
【0017】
[0022]サーバは、ファイルIDおよびハッシュ値を受信し、その2つがファイルに関する対応する情報と一致することを確認する。この例では、新しいスーパーファイルが作成または修正されたときに、サーバはブロックチェーンをブロックチェーンネットワークに追加し、したがって、サーバはファイルIDに対応するブロックチェーンにアクセスし、クライアントコンピュータから受信したハッシュ値がブロックチェーンに格納されたハッシュ値と一致するかどうかを確認できる。2つが一致する場合、サーバは、ブロックチェーンが識別されたスーパーファイルに対応し、スーパーファイルが本物であることを確認する。
【0018】
[0023]スーパーファイルのブロックチェーン内の対応するレコードを識別した後、サーバは、供給されたユーザ資格証明が受け入れられるかどうか判定する。例えば、ユーザは、スーパーファイルサーバとのユーザアカウントを有してもよい。したがって、ユーザ資格証明は、ユーザのユーザ名およびパスワードでもよく、暗号署名など、ユーザの身元を確立するための何らかの他の検証可能な情報でもよい。次いで、サーバは、ユーザの身元を確認し、ブロックチェーンレコードにアクセスして、ユーザがファイル、またはそのような情報を含む別個のデータストアにアクセスできるかどうか、を判定できる。
【0019】
[0024]復号鍵を受信した後、クライアント装置は、スーパーファイルサーバへの接続を維持し、復号鍵も削除しながら、メモリ内のファイルのコンテンツを復号し、それをユーザに提示する。クライアント装置がスーパーファイルを開いている間、クライアント装置は、コンテンツのどの部分が閲覧されているか、どのくらいの時間ファイルが開いているか、どのくらいのアイドル時間が検出されたか、ユーザがコンテンツをコピーまたは編集しようとしているか、などの情報をスーパーファイルサーバに送信できる。スーパーファイルサーバは、受信した情報を、スーパーファイルのブロックチェーンレコードに対応するデータストアレコードに格納できる。その後、ユーザがスーパーファイルを閉じると、ユーザのコンピュータは復号鍵を削除し、スーパーファイルのコンテンツの提示を停止する
【0020】
[0025]この例は、スーパーファイルにアクセスするユーザの簡単な例を提供しているが、スーパーファイルの1つの利点は、スーパーファイルの所有者がそのコンテンツを編集したり、スーパーファイルへのアクセスレベルを変更したりすることができ、その後、ユーザのコンピュータ上でその時点に開いているスーパーファイルの任意のコピーに、リアルタイムで伝播され得る。例えば、スーパーファイルの所有者がスーパーファイル文書内のテキストを編集する場合、それらの編集はスーパーファイルサーバに送信され、次いで、スーパーファイルサーバは、他のクライアントコンピュータでその時点に開いているファイルの各コピーにそれらを提供する。したがって、これらの他のクライアントコンピュータは、編集されたコンテンツを受信し、両方がスーパーファイル自体のコンテンツを更新するが、ユーザにより閲覧され得る表示され復号されたコンテンツも動的に変更する。したがって、ユーザは、更新がファイルの所有者によって行われるときに、ほぼリアルタイムで更新を見ることになる。閲覧ユーザのうちの1人がスーパーファイルを閉じると、その時点までに受信された変更は、スーパーファイルのコピーに格納される。スーパーファイルを閲覧していなかったが後でアクセスしたユーザには、スーパーファイルへのアクセスが承認されたときなどに、更新されたコンテンツが直ちに提供される。したがって、ユーザがスーパーファイルを任意の従来のファイルとして使用でき、ほぼリアルタイムで更新を受信(または提供)する方法を、スーパーファイルは提供する。
【0021】
[0026]同様に、スーパーファイルの所有者は、スーパーファイルのコンテンツに対するアクセス制限を変更することができ、その後、そのことは、その時点で現在開いているファイルの他の任意のコピーに、ほぼリアルタイムで伝播できる。例えば、ユーザがスーパーファイルを開いている間に所有者がユーザのアクセスを無効にした場合、スーパーファイルサーバは、クライアントコンピュータにメッセージを送信し、これにより、復号されたコンテンツを含むメモリを上書きすることによって、復号されたコンテンツをユーザに提供することを直ちに停止し、その結果、コンテンツはユーザによってアクセスできなくなる。また、ユーザのアクセス権が所有者によって無効にされたという通知を提供してもよい。
【0022】
[0027]スーパーファイルを使用して、コンテンツ作成者は、自分の著作物へのアクセスに対する制御を維持しながら、自分の著作物を誰でも自由にコピーできる。さらに、スーパーファイルサーバによって収集された使用情報は、ユーザが自分のコンテンツとの関与を監視することを可能とし、これにより、ユーザは、例えばコンテンツへのアクセスを販売することによって直接的にそれを収益化でき、またはコンテンツに付随する広告を販売することなどによって間接的にそれを収益化できる。さらに、スーパーファイルに関する情報を記録するための仕組みとしてブロックチェーンを採用することにより、スーパーファイルの真正性および一連の所有権は、ブロックチェーンにアクセスすることによって確認できる。
【0023】
[0028]この例示的な例は、本明細書で論じられる一般的な主題を読者に紹介するために与えられており、本開示はこの例に限定されない。以下のセクションでは、信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御のためのシステムならびに方法の例、および様々な追加の非限定的な例について説明する。
【0024】
[0029]ここで
図1を参照すると、
図1は、信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御のための例示的なシステムを示している。例示的なシステムは、作成者装置130と、1つまたは複数の通信ネットワーク140を介してスーパーファイルサーバ110と通信することができる、いくつかのクライアント装置120a~nとを含む。これらのコンピューティング装置110、120a~n、130の各々は、対応するデータストア112、122a~n、132を含み、ここで、それぞれのコンピューティング装置は、1つまたは複数のデータファイルを永続的に格納およびアクセスできる。
【0025】
[0030]クライアント装置120a~nまたは作成者装置130の各ユーザは、創造的なコンテンツの作成または閲覧などの任意の数の異なることを行うために、それぞれの装置を使用できる。そのようなコンテンツは、通常、1つまたは複数のソフトウェアアプリケーションを使用して作成され、次いでユーザのクライアント装置120a~n上の1つまたは複数のデータファイル(または単に「ファイル」)に格納される。次いで、ユーザ(または「作成者」)は、作成者に知られているかどうかにかかわらず、関連するファイルのコピーを提供することによって、そのコンテンツを他のユーザと共有できる。その後、受信者はファイルにアクセスし、コンテンツを閲覧でき、場合によってはコンテンツを編集できる。しかしながら、受信者がファイルのコピーを受信すると、受信者はコンテンツ全体を含む自己完結型電子パッケージを有し、その後、受信者は望みどおりにアクセスして使用できる。
【0026】
[0031]図示の例示的なシステム100では、クライアント装置120a~nのそれぞれは、1人または複数人のユーザによって操作され、作成者装置130に関して、「信頼できない」クライアントと一般的に呼ばれる。この意味での「信頼できない」とは、作成者の制御から独立した自律的なユーザによって操作される装置を意味する。つまり、コンテンツに関して、別のユーザが行う可能性があるアクションを防止するなどのために、作成者は、ユーザのクライアント装置120a~nにアクセスする方法を持たない。さらに、そのような例示的なシステム100を使用しなければ、作成者には、コンテンツの作成者であることを確立する能力、または他のユーザによる自身のデータファイルの使用を追跡する能力がない。
【0027】
[0032]作成者が自身のコンテンツに対する制御を維持できるようにするために、作成者は、スーパーファイルの一部としてコンテンツを保存できる。スーパーファイルは、ファイルのコンテンツにアクセスするために、スーパーファイルサーバからの許可を要求する機能を含む種類のファイルである。しかし、ファイルを最初に開いてそのコンテンツにアクセスする許可だけでなく、スーパーファイルは、ファイルコンテンツにアクセスする許可が変更または無効にされないことを保証し、ファイルコンテンツのユーザ使用を追跡するために、スーパーファイルサーバとの継続的な通信を必要とする。
【0028】
[0033]ユーザがスーパーファイルを受信すると、通常のファイルのように見えるスーパーファイル全体を受信する。つまり、受信ユーザ(または「受信者」)は、リモートコンピュータに存在するファイルの一部ではなく、ファイル全体およびそのコンテンツを所有している。いくつかの例では、スーパーファイルはファイル名拡張子(例えば、.super)によってそのように識別されてもよいが、いくつかの例では、スーパーファイルはファイル拡張子または特定のファイル拡張子を有していなくてもよい。
【0029】
[0034]ファイルにアクセスするために、ユーザは、例えばマウスを使用してスーパーファイルのファイルアイコンを選択してダブルクリックすることによって、他のファイルと同様に、例えばクライアント装置120aなどのクライアント装置を使用して、ファイルを開くことを試みることができる。受信者のクライアント装置によって実行されるオペレーティングシステム(「OS」)は、ユーザ入力に基づいてファイルを開くコマンドを検出し、例えば、ファイル拡張子に基づいて、またはスーパーファイル内のヘッダ情報にアクセスすることによって、ファイルがスーパーファイルであると判定できる(以下でより詳細に説明する)。ファイルがスーパーファイルであると判定すると、OSは最初にファイルを標準的に開くことを試みてもよいし、受信者のクライアント装置にインストールされたアプリケーションを起動してファイルを開くこともできる。例えば、コンテンツヘッダは、スーパーファイルに格納されたコンテンツの種類を示すことができ、クライアント装置は、その種類のコンテンツに対応するアプリケーションを開くことができる。
【0030】
[0035]ファイルを開くために、OSまたはアプリケーション(両方とも「アプリケーション」と呼ばれる)は、スーパーファイルサーバ、例えばスーパーファイルサーバ110に連絡しようと試みる。そのために、アプリケーションは、例えばfiles.superfile.orgのような事前構成されたサーバ名のためのネットワークアドレスを取得するために、DNS要求を発行してもよい。DNS応答は、ネットワークアドレス、例えば、インターネットプロトコル(「IP」)アドレスを提供し、その後、アプリケーションはこれを使用してスーパーファイルサーバ110に連絡する。アプリケーションはまた、サーバ110との通信を確立する前または間に、例えば信頼された認証機関を介して、識別されたサーバを認証しようと試みることができる。
【0031】
[0036]スーパーファイルサーバ110との通信を確立した後、アプリケーションはコンテンツへのアクセスを要求する。スーパーファイルサーバ110は、アプリケーションまたは対応するユーザが、コンテンツにアクセスする許可を有するかどうかを判定でき、そうである場合、スーパーファイルのコンテンツを復号または解凍するために必要な情報を送信できる。情報を受信した後、アプリケーションは、コンテンツを復号または解凍するために情報を使用し、その後、アプリケーション自体がコンテンツを提示してもよいし、コンテンツを提示するために別個のアプリケーションを実行してもよい。この例示的なシステムでは、コンテンツが復号されると、ユーザへの提示を可能にするために揮発性システムメモリに復号されるだけである。スーパーファイルの復号されたコピーは作成されない。これは、イベントアクセスが変更または無効にされた場合に、スーパーファイルのコンテンツのセキュリティを保証するのに役立つことができる。
【0032】
[0037]コンテンツがユーザに提示されている間(一般にスーパーファイルが「開いた」ままであると呼ばれる)、アプリケーションは、スーパーファイルサーバとの通信を維持し、ユーザがどの程度長くファイルを開いているか、コンテンツのどの部分が閲覧または提示されているか、などの使用情報をサーバに送信する。スーパーファイルサーバ110は、そのような情報をそのデータストア112に格納し、それをスーパーファイルに対応するレコードに関連付けることができる。
【0033】
[0038]スーパーファイルが開いている間にアプリケーションがスーパーファイルサーバ110との連絡を失った場合、アプリケーションは、コンテンツを復号または解凍するのに必要な情報を削除する(まだ削除されていない場合)、コンテンツの提示を可能にするためにメモリにコピーされたスーパーファイルコンテンツから任意の情報を削除または上書きする、コンテンツを閲覧するために使用される任意の別個のアプリケーションを閉じる、などによって、スーパーファイルへのアクセスを直ちに終了できる。いくつかの例では、アプリケーションは、断続的なネットワーク障害に関連する問題を軽減するために、アクセスを終了する前に所定の期間(例えば、5分または10分)待機できる。スーパーファイルサーバとの通信が再開された場合、アクセスは回復されてもよく、終了された場合、または所定の期間はリセットされてもよい。
【0034】
[0039]ユーザがスーパーファイルにアクセスしようとするとき、ユーザは、スーパーファイル内のコンテンツの作成者によって確立された許可に従って、アクセスを許諾されてもよい。例えば、作成者はファイルへの「所有者」アクセスを有することができ、これにより、作成者がコンテンツを自由に編集または削除したり、異なるユーザに対する許可を変更したり、コンテンツの所有権を別のユーザに譲渡したり、することができる。他のユーザは、「閲覧者」アクセスを有することができ、これにより、ユーザはコンテンツを閲覧できるが、編集はできない。一部のユーザは、「編集者」アクセスを有することができ、これにより、他のユーザがコンテンツを閲覧することを可能にするなど、コンテンツを編集することを可能にするが、所有権機能は実行しないさらに他の種類の許可が確立されてもよい。
【0035】
[0040]各ファイルの異なる許可レベルは、1つまたは複数のスーパーファイルサーバ、例えばスーパーファイルサーバ110によって維持されてもよい。したがって、ユーザがスーパーファイルにアクセスしようとするとき、スーパーファイルサーバ110は、ユーザがスーパーファイルのコンテンツにアクセスする許可を有するかどうかを判定することができ、そうである場合、どの程度までであるか(例えば、所有者、編集者、閲覧者など)を判定することができる。許可レベルは、スーパーファイル内のコンテンツに対する変更を行うまたは保存するユーザの能力に影響を与えることができる。例えば、ユーザは、スーパーファイルとして保存された文書を開くことができ、その場合、コンテンツに対する「閲覧者」許可のみを有する。ユーザがファイルを編集するのを防ぐために、OSや編集アプリケーション(例えば、ワード・プロセッシング・アプリケーション)などのアプリケーションは、ユーザがスーパーファイルのコンテンツを編集するのを防ぐために、ファイルを「読み取り専用」として開くことができる。
【0036】
[0041]スーパーファイルは自由に配信することができるため、特定のスーパーファイルの任意の数のコピーが流通していてもよく、同時に開くことができる。したがって、あるクライアント装置、例えばクライアント装置120aのユーザは、スーパーファイルのコピーを開くことができ、一方で、別のクライアント装置120bのユーザも、スーパーファイルのコピーを開くことができる。クライアント装置120a、bの両方は、一般に上述したように、スーパーファイルサーバ110と通信する。
【0037】
[0042]クライアント装置120a、bがスーパーファイルサーバ110との通信を維持する結果として、例えば所有者または「編集者」によってスーパーファイルのコンテンツに対して行われた任意の更新は、スーパーファイルサーバによって開かれたスーパーファイルのコピーを有する任意のクライアント装置120a、bに直ちに伝播され得る。スーパーファイルのコピーが開かれていないクライアント装置は、代わりに、スーパーファイルが次に開かれるときに更新されたコンテンツを受信する。同様に、ユーザ許可が変更された場合、更新された許可は、スーパーファイルが開いていて影響を受けるユーザに、直ちに伝播される。例えば、ユーザが「編集者」許可を有していて、ファイルを開いている間に「閲覧者」許可に変更される場合、そのクライアント装置は、スーパーファイルサーバ110から変更された許可を受信し、いかなる変更もスーパーファイルに保存されないようにする。場合によっては、許可変更の前にスーパーファイルが開いている間に行われた編集者による変更は、ロールバックされる(直前の状態に戻される)が、場合によっては、編集の禁止のみが予定される。さらに、ユーザがファイルにアクセスする許可が無効にされた場合、例えばスーパーファイルを閉じ、コンテンツにアクセスするために使用される暗号情報を破棄することによって、スーパーファイルのコンテンツは直ちにアクセス不可能になる。いくつかの例では、スーパーファイルは開いたままであってもよいが、コンテンツはもはや提示されず、代わりに許可が変更されたという指示が表示される。
【0038】
[0043]クライアント装置120a~nはスーパーファイルサーバ110の制御下にないため、そうでなければ禁止される機能を可能にするために、ユーザがクライアント装置によって実行される1つまたは複数のアプリケーションを改ざんしていないことを、スーパーファイルサーバ110自体は保証できないことを理解されたい。しかしながら、たとえユーザがスーパーファイルのコンテンツを不正に修正しようとしても、修正は、スーパーファイルサーバ110または改ざんされていない別のクライアント装置120a~nによって検出可能である。上述したように、「編集者」許可を有するユーザは、スーパーファイルのコンテンツを修正することができ、その後、そのことは、スーパーファイルサーバ110に伝播され、次いで、スーパーファイルのコピーを有する他のユーザに伝播される。しかしながら、ユーザがスーパーファイルを改ざんしてそのコンテンツを修正する場合、スーパーファイルサーバ110は、スーパーファイルサーバ110によって維持される許可に基づいて修正を拒否する。したがって、ユーザはスーパーファイルの自分のコピーを修正することはできるが、それはスーパーファイルサーバ110を介して他には広がらない。あるいは、ユーザは、スーパーファイルのコンテンツを改ざんし、例えば電子メールを介して、別のユーザ(この例では「受信者」)にファイルを配信しようと試みることができる。
【0039】
[0044]受信者が改ざんされたスーパーファイルにアクセスしようとすると、それらのクライアント装置は、上述のようにスーパーファイルサーバ110に連絡し、ファイルのコンテンツがスーパーファイルの現在の既知の状態と異なることを示すメッセージを提示できる。いくつかの例では、スーパーファイルサーバ110は、代わりに、スーパーファイルのユーザのコピーとスーパーファイルの現在の既知の状態との間のファイルコンテンツの違いを検出し、次に、正しいファイルコンテンツをユーザに送信して、ユーザのコピーのコンテンツを置き換えることができる。ファイルコンテンツが改ざんされていることを示すエラーをユーザに提示するなど、さらに他の例示的なアクションを行うことができる。
【0040】
[0045]例示的なシステム100によって可能になる機能は、(後述する)スーパーファイルの構造、スーパーファイルサーバ110の使用、および、いくつかの例では、ブロックチェーンネットワークに、部分的に基づく。
【0041】
[0046]
図2を参照すると、
図2は、スーパーファイル200の例示的なファイル構造を示す。この例のスーパーファイル200は、ヘッダ210と、コンテンツペイロード220とを含む。コンテンツペイロード220は、作成者によって作成された任意の種類のコンテンツを含む。適切なコンテンツの例には、著作物(例えば、記事、本、原稿など)、オーディオまたはビジュアル著作物(例えば、音楽、ビデオ、画像など)、技術情報(例えば、3Dプリンタ設計図、コンピュータ支援設計または製造ファイルなど)などが含まれる。場合によっては、コンテンツペイロード220は別のスーパーファイルを含んでもよい。
【0042】
[0047]スーパーファイルのコンテンツを認可されていないアクセスから保護するために、いくつかの例では、コンテンツペイロード220は、暗号化されてもよく、圧縮されてもよく、またはその両方であってもよい。任意の適切な暗号化技術が、AES-256などの高度暗号化標準(AES)暗号化技術ファミリーのような対称鍵暗号化、または非対称鍵暗号化など、異なる例に従って使用されてもよい。暗号化に加えて(またはその代わりに)、圧縮技術(LZ圧縮など)を使用して、のコンテンツペイロード220のサイズを縮小できる。例えばユーザマニュアル、履歴書などの機密情報を含まないコンテンツペイロード220の場合、圧縮で十分であり得るが、他の種類の情報の場合、暗号化が望ましい場合がある。しかしながら、スーパーファイルの作成者は、暗号化または圧縮のいずれが使用されるかを選択してもよく、使用される場合には、使用される種類を選択してもよい。さらに、作成者(または十分な許可を有する別のユーザ)は、いつでもスーパーファイルから暗号化または圧縮を変更または削除(または再適用)することができる。
【0043】
[0048]スーパーファイルヘッダ210は、ファイルをスーパーファイルとして識別する情報、スーパーファイルの固有の識別子、コンテンツペイロード220に適用される暗号化または圧縮の種類を示す情報、コンテンツペイロード220のチェックサムまたはハッシュ値などを含む。
スーパーファイルの作成者、スーパーファイルの作成日、書誌情報のチェックサムまたはハッシュ値、スーパーファイル全体220のチェックサムまたはハッシュ値など、の特定の書誌情報も含んでもよい。
一般に、スーパーファイルヘッダ210は、スーパーファイルのコンテンツと共に維持することが望ましい場合があるスーパーファイルに関する任意の情報、および、クライアント装置がスーパーファイルサーバに連絡し、コンテンツペイロード220へアクセス可能となるために必要になり得る特定情報、を含むことができる。
【0044】
[0049]スーパーファイル例200は、ヘッダ部分210およびコンテンツペイロード220を含むものとして説明される。しかしながら、予告編などの他の部分も含んでもよい。いくつかの例では、スーパーファイル200は、複数のコンテンツペイロード220を含んでもよく、その各々は、ユーザの許可レベルに応じて別々にアクセス可能でもよい。例えば、スーパーファイル200は、2つのコンテンツペイロード220を有してもよく、そのうちの一方は、ファイルのコピー(例えば映画の予告編または書籍のプロローグ)誰でも閲覧可能で、他方は、アクセスを購入(例えば映画または書籍全体)した後にのみアクセス可能でもよい。したがって、スーパーファイルは、コンテンツへのアクセスを格納、調整、および監視するための任意の適切な構造を有することができる。
【0045】
[0050]ここで
図3を参照すると、
図3は、信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御を提供するための別の例示的なシステム300を示す。
図3に示す例示的なシステム300は、複数のスーパーファイルサーバ310a~mと、ブロックチェーン332a~kを含むブロックチェーンネットワーク330を集合的に実装する複数のクライアント装置320a~nと、を含む。ブロックチェーン332a~kは、スーパーファイルの永続的で変更不能なレコードを提供し、スーパーファイルサーバ310a~mおよびクライアント装置320a~nは信頼でき、異なるコンピューティングシステムにおいて経時的にスーパーファイルを追跡および検証できる。
【0046】
[0051]この例では、スーパーファイルサーバ310a~mは、ブロックチェーン332a~kを読み書きする能力を有し、クライアント装置320a~nは、ブロックチェーン332a~k内のレコードを読み取ることができる。しかしながら、いくつかの例では、スーパーファイルサーバ310a~mのみがブロックチェーンネットワークにアクセスできる。新しいスーパーファイルが作成されると、作成者のクライアント装置は、スーパーファイルサーバ(例えば、スーパーファイルサーバ310a)に連絡し、スーパーファイルを登録する。スーパーファイルサーバ310aは、スーパーファイルのコピーを受信し、スーパーファイル用のブロックチェーンを確立する。他のユーザがスーパーファイルのコピーを受信すると(または作成者がスーパーファイルに再びアクセスすると)、対応するブロックチェーンにアクセスし必要に応じてそれをトラバースすることによって、スーパーファイルの整合性を検証できる。ブロックチェーンはまた、スーパーファイルに関する所有権情報を提供し、所有権情報は、スーパーファイルの作成者に関する情報のレコード、およびユーザからユーザへの所有権の移転、を含んでもよい。スーパーファイルに変更が加えられると、スーパーファイルサーバ310a~mはブロックチェーンにブロックを追加し、ブロックチェーンは、経時的にスーパーファイルに加えられた変更の監査追跡を提供する。
【0047】
[0052]この例示的なシステムでは、スーパーファイルサーバ310a~mは、信頼できる第3者スーパーファイル・サービス・プロバイダによってホストされる。しかしながら、いくつかの例では、ユーザ(例えば、作成者)または組織は、独自のスーパーファイルサーバを動作させ、一連の独自なスーパーファイルおよびブロックチェーンネットワークを管理できる。例えば、映画スタジオは、独自のスーパーファイルサーバおよびブロックチェーンネットワーク330を管理することができ、これによりスタジオは、スーパーファイルを作成して、公開する映画へのアクセスを管理したり、更新を公開したり、または、時間経過と共に映画内の異なる機能を埋め込んだり、することができる。例えば、映画スタジオは、映画スーパーファイルを更新して、様々な映画に関連する予告編またはマーケティングプロモーションを変更できる。同様に、広告代理店、録音スタジオ、研究所などの他の創造的な組織は、そのコンテンツの使用に対する制御を監視および維持しながら、それらのコンテンツにユーザがアクセス可能とするために、それら自体のスーパーファイルサーバおよびブロックチェーンネットワークを管理できる。
【0048】
[0053]したがって、本開示による例示的なシステムは、スーパーファイルサーバがスーパーファイルコンテンツへのアクセスを仲介する一方で、スーパーファイルの真正性および有効性を保証するためのブロックチェーンネットワークの使用を含んでもよい。しかしながら、ブロックチェーンの使用は、いくつかの例示的なシステムでは任意選択の機能であり、他のシステムでは省略されてもよい。
【0049】
[0054]ここで
図4を参照すると、
図4は、本開示による信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御のためのシステム内の対話を示す例示的なシーケンス図を示す。システムは、いくつかのクライアント装置410a~c、スーパーファイルサーバ、およびブロックチェーンネットワーク430を含む。
【0050】
[0055]このシーケンスは、クライアント装置410aのユーザがコンテンツを作成し、それをスーパーファイル440として保存することから始まる。これにより、クライアント装置410aは、新たなスーパーファイルが作成されたことを示すメッセージを、スーパーファイルサーバ420に送信する。この例では、クライアント装置410aは、スーパーファイルのコピーもスーパーファイルサーバ420に送信する。スーパーファイルは、
図2に関して上述したスーパーファイルの例と同様に、ヘッダ部分とコンテンツペイロードの両方を含む。ヘッダ部分は、クライアント装置410aがスーパーファイルサーバから以前に要求したスーパーファイルの固有の識別子を含む。しかしながら、いくつかの例では、クライアントはスーパーファイルを作成して保存し、それに応答してスーパーファイルサーバ420からスーパーファイル識別子を受信してもよい。次いで、クライアント装置410aは、スーパーファイル識別子をスーパーファイルヘッダ部分に挿入できる。
【0051】
[0056]この例では、スーパーファイルサーバ420は、クライアント装置410aから新しいファイル440メッセージを受信したことに応答して、いくつかの異なるアクションを行う。スーパーファイルサーバ420は、クライアント装置410a(図示せず)に提供され、クライアント装置410aによって新しいスーパーファイルのヘッダに挿入される、固有のスーパーファイル識別子を生成する。いくつかの例では、クライアント装置410aが、固有の識別子を生成するか、または、スーパーファイルサーバ420にスーパーファイル識別子を要求してもよい。
【0052】
[0057]また、スーパーファイルサーバ420は、新しいスーパーファイルに対応する新しいブロックチェーン442をブロックチェーンネットワーク430に作成する。これは、スーパーファイル識別子、チェックサムまたはハッシュ値(例えば、暗号ハッシュ値)、タイムスタンプ、作成者名または識別子、所有者名または識別子など、のスーパーファイルに関する情報を含む。いくつかの例では、ブロックチェーン442は、スーパーファイル自体のコピーを含んでもよい。
【0053】
[0058]この例では、
図3に関して上述したように、ブロックチェーンネットワークは、複数のスーパーファイルサーバおよびクライアント装置の全体に配信されてもよい。したがって、ブロックチェーンネットワークに新しいブロックチェーンを追加することは、スーパーファイルサーバ420またはクライアント装置410a~cのうちの1つまたは複数などの異なるコンピューティング装置間で、1つまたは複数のブロックを配信することを含んでもよい。
【0054】
[0059]スーパーファイルを作成した後、スーパーファイルの作成者は、スーパーファイル444のコピーを、別のクライアント装置410bの別のユーザに提供する。例えば、作成者は、スーパーファイルを受信者に電子メールで送信してもよいし、他のクライアント装置410bに物理的に接続され得るポータブル記憶装置(例えば、サムドライブ、ポータブルハードドライブなど)に保存してもよい。スーパーファイルは、従来のファイルのように自己完結型ユニットであり、従来のファイルとしてコンピューティング装置によって格納されるため、他のコンピューティング装置または記憶装置に容易に転送することができる。
【0055】
[0060]次いで、受信者は、クライアント装置410bを使用してスーパーファイル446を開く。スーパーファイルを開くには、ユーザは、クライアント装置のOSによって提供されるグラフィカルユーザインターフェース(「GUI」)など、スーパーファイルに対応するアイコンをダブルクリックできる。スーパーファイルを開くためのユーザ入力に応答して、受信者のクライアント装置410bは、選択されたファイルがスーパーファイルであると判定し、ファイルを開くために連絡すべきスーパーファイルサーバを判定する。例えば、アプリケーションは、例えば、スーパーファイルのヘッダに格納されたURIまたはIPアドレスを使用して、スーパーファイル自体から情報を取り出して、スーパーファイルサーバに連絡できる。次いで、アプリケーションは、1つまたは複数のネットワークを介して1つまたは複数のメッセージをスーパーファイルサーバ420に送信し、スーパーファイルコンテンツペイロードにアクセスしてもよい。
【0056】
[0061]クライアント装置410bによって送信されるメッセージは、ユーザ資格証明情報、例えば、ユーザに関する身元情報、またはユーザの身元を確立するのに使用することができる情報、を含んでもよい。メッセージはまた、クライアント装置410bが開こうとしているスーパーファイルを識別するために使用できるスーパーファイルに関する情報、例えば、スーパーファイル識別子、チェックサムまたはハッシュ値、を含んでもよい。ユーザ資格証明情報が提供されない場合、スーパーファイルサーバ420はそれを要求できる。
【0057】
[0062]ファイル446を開く要求をクライアント装置410bから受信したことに応答して、スーパーファイルサーバ420は、受信者がスーパーファイルにアクセスする許可を有するかどうかを判定し、許可されている場合、それらはどのレベルのアクセスを割り当てられるかを判定する。スーパーファイルサーバ420はまた、受信したチェックサムまたはハッシュ値が、スーパーファイルの対応するブロックチェーンレコードに格納されているチェックサム/ハッシュ値と一致するかどうかを判定するなど、スーパーファイル自体に対してチェックを実行できる。加えて、スーパーファイルサーバ420は、受信者が項目444で作成者からファイルを受信して以降、スーパーファイルコンテンツペイロードが更新されたかどうかを判定できる。例えば、スーパーファイルサーバ420は、スーパーファイルに対応するブロックチェーンを検索して、クライアント装置410bから受信したものと一致するチェックサム/ハッシュ値を有するレコードを識別できる。
【0058】
[0063]受信したチェックサム/ハッシュ値がブロックチェーン内のスーパーファイルの最新バージョンと一致する場合、スーパーファイルサーバ420は、クライアント装置410bがスーパーファイルの最新バージョンを有すると判定する。しかしながら、それがスーパーファイルの以前のバージョンのブロックチェーンレコードと一致する場合、クライアント装置410bでスーパーファイルを更新してもよく、これについては項目470,472に関して以下でより詳細に説明する。チェックサムまたはハッシュ値がブロックチェーン内のいずれのブロックとも一致しない場合、スーパーファイルサーバ420はエラーメッセージを送信してもよいし、スーパーファイルを更新してもよい。
【0059】
[0064]スーパーファイルサーバ420は、受信者がスーパーファイルのコンテンツペイロードにアクセスする許可を有すると判定した場合、それは、コンテンツペイロードにアクセス458するために必要な情報を送信できる。そのような情報は、1つまたは複数の暗号鍵、コンテンツペイロードを圧縮するために使用される圧縮アルゴリズムの識別などであってもよい。しかしながら、いくつかの例では、コンテンツペイロードは暗号化または圧縮されなくてもよく、その場合、スーパーファイルサーバ420は、復号または解凍が必要でないことを示す応答を返すことができる。さらに、いくつかの例では、スーパーファイル自体は、コンテンツペイロードが暗号化されているか圧縮されているどうかを示してもよい。スーパーファイルが暗号化も圧縮もされていないことを示す場合、それは項目448でアクセス情報を受信しない可能性がある。代わりに、クライアント装置410bは、スーパーファイルサーバ420との通信を確立し、スーパーファイルが開いている間に通信を維持できる。クライアント装置410bは、アクセス情報を受信すると、コンテンツペイロードにアクセスできる。しかしながら、この例では、クライアント装置410bは、スーパーファイルのコンテンツを復号するが、コンテンツを揮発性のシステムメモリに復号して、ユーザへの提示を可能にするだけである。クライアント装置410bは、コンテンツを不揮発性記憶装置に復号しない。したがって、復号されたクライアントで別個のファイルは作成されない。これは、スーパーファイルサーバ420に最初に連絡することなく、コンテンツへのアクセスを防止するのに役立ち得る。
【0060】
[0065]クライアント装置410bは、コンテンツペイロードにアクセスしている間、スーパーファイルのその使用450に関する情報をスーパーファイルサーバ420に報告できる。使用情報は、定期的に(例えば、毎分)、またはスーパーファイルが開いている間に発生したイベントに応答して、(例えば、新しいページへのスクロール、映画またはオーディオの再生/一時停止/巻き戻し/など、写真の拡大などに応答して)報告されてもよい。
使用情報は、コンテンツペイロードに関して行われたアクションの識別(例えば、上記のもの)、コンテンツペイロードが開いている時間、クライアント装置410bがアクティブまたはアイドルであった時間、コンテンツペイロードがユーザに提示されたGUIのフォアグラウンドまたはバックグラウンドにあるとき、コンテンツが最小化されたとき、などを含んでもよい。
それはまた、提示されたコンテンツのスクリーンショットをキャプチャしようと試みる、コンテンツペイロードの修正を試みる、コンテンツペイロードを別個のファイルにエクスポートしようと試みる、などの潜在的な認可されていないアクションを検出できる。
そのような使用情報は、スーパーファイルサーバ420に報告されてもよく、これにより、スーパーファイルに関連する統計を維持できる。そのような情報は、コンテンツとの関与のレベルを判定するため、異なるユーザの関心を判定するため、コンテンツに関連する広告または他の収益化情報を判定するため、などに使用されてもよい。そのような情報は、スーパーファイルの作成者または所有者によってアクセス可能でもよく、スーパーファイルサーバ420に要求を発行することによって、またはスーパーファイルサーバ420により維持されるアカウントにアクセスすることによって、取得されてもよい。
【0061】
[0066]ある時点では、受信者は、クライアント装置3(410c)のユーザ(「第2の」受信者)などの他のユーザに、スーパーファイルをさらに配信できる。項目444に関して、受信者は任意の適切な仕組みを使用して、任意の他のユーザにスーパーファイルを配信できる。次いで、第2の受信者はスーパーファイルを開こうと試みることができ、これにより、第2の受信者がコンテンツペイロードにアクセスすることを認可されている場合、1つまたは複数のメッセージ462をスーパーファイルサーバ420に送信し、アクセス情報464を受信する同様のプロセスを開始する。次いで、第2の受信者のクライアント装置410cは、スーパーファイルが開いている間、スーパーファイルサーバ420との通信も維持し、項目450に関して上述したように、使用情報466をスーパーファイルサーバ420に報告できる。
【0062】
[0067]ある時点では、スーパーファイルの作成者もしくは所有者または他の編集者(この例では作成者と呼ばれる)は、スーパーファイルのコンテンツペイロードを修正できる。これが起こると、クライアント装置410aは、修正をスーパーファイルサーバ420に報告する。修正は、作成者がスーパーファイルを修正するときにリアルタイムで報告されてもよいが、いくつかの例では、修正は、ユーザがスーパーファイルへの変更を保存するか、スーパーファイルを閉じるときにのみ報告されてもよい。修正は、スーパーファイルに対する任意の変更あってもよく、コンテンツペイロード、ヘッダ部分、またはスーパーファイルの任意の他の態様に対するものであってもよい。そのような修正は、所有権または許可レベルの変更、コンテンツペイロードの変更などを含んでもよい。
【0063】
[0068]修正がスーパーファイルサーバ420に報告されると466、スーパーファイルサーバ420は、スーパーファイルに関連付けられたブロックチェーンに新しいブロックを追加し、それをブロックチェーンネットワーク430に格納する。したがって、ブロックチェーンは、経時的に改定されながら、スーパーファイルの永続的で変更不能なレコードを維持する。
【0064】
[0069]スーパーファイルサーバ420は、ブロックチェーンを更新することに加えて、修正が行われたときにスーパーファイルを開いている任意の他のクライアント装置を識別する。この例では、スーパーファイルサーバ420は、スーパーファイルサーバ410b~cとの維持された接続に基づいて、スーパーファイルの開いているコピーを有する他の2つのクライアント装置410b~cを識別する。クライアント装置410b~cを識別した後、スーパーファイルサーバ420は、スーパーファイル更新をクライアント装置410b~cの各々に提供し、更新はスーパーファイルに適用されて格納される。加えて、スーパーファイルの提示されたコンテンツは、(修正された場合)コンテンツを閲覧するユーザのためにリアルタイムで更新される。したがって、ユーザは、作成者がファイルを改定するときに、リアルタイムまたはほぼリアルタイムでファイルコンテンツの変化を見ることができる。
【0065】
[0070]後で、作成者は、スーパーファイルコンテンツペイロードに対するファイルアクセス許可480を変更する。これらの変更は、上述のファイル466に対する修正と同様に、スーパーファイルサーバ420に報告される。
【0066】
[0071]変更されたファイルアクセス許可の受信に応答して、クライアント装置410b~cはスーパーファイルのコンテンツにアクセスする許可を現在は持っていないと、スーパーファイルサーバ420が判定し、したがって、スーパーファイルサーバ420は、クライアント装置410b~cに1つまたは複数のメッセージ482,484を送信し、スーパーファイルのコンテンツの提示を直ちに中断させ、まだ破棄されていない場合、それぞれのクライアント装置410b~cによって以前に受信されたアクセス情報(例えば、暗号鍵)を破棄させる。コンテンツを認可されていないアクセスからさらに保護するために、クライアント装置410b~410cはまた、復号されたコンテンツがクライアントの装置から完全に消去されたことを保証するために、復号されたコンテンツを含むメモリを上書きしてもよい。したがって、作成者は、スーパーファイルのコピーを持つ誰に対しても、リアルタイムでアクセスを無効にする(または許諾する)ことができる。
【0067】
[0072]この例示的なシーケンスは、特定の機能を示すために、単一のスーパーファイルサーバ420および3つのクライアント装置410a~cを有する比較的小規模なシステムのみを使用することを理解されたい。しかしながら、数千または数百万以上のクライアント装置と対話する数十、数百、または数千以上のスーパーファイルサーバなど、大幅により多くのコンポーネントを有するシステムが想定され、上述したものと同様の機能をかなり大規模に提供できる。
【0068】
[0073]ここで
図5を参照すると、
図5は、信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御のためのシステムの一部として、新たなスーパーファイルを作成するための例示的な方法500を示している。この例における方法500は、本方法の異なる態様を実行する2つの異なるコンピューティングシステムを含む。また、これらの態様は相互に関連していてもよいが、各コンピューティングシステムは、独自の別個の方法を実行し、それは、別のコンピューティング装置からの入力の受信、または別のコンピューティング装置への情報の送信、を含むことができる。
【0069】
[0074]ブロック512において、クライアント装置510のユーザは、任意の適切な種類(例えば、文書、オーディオ、ビデオ、ソースコードなど)のファイルコンテンツを作成する。ユーザは、任意の適切なオーサリングまたはキャプチャツール(ワードプロセッシングプログラム、ソースコードエディタ、ビデオカメラなど)を使用して、ファイルコンテンツを作成できる。ユーザは、任意の適切なファイルフォーマットに従って、そのようなコンテンツを任意の適切なファイルに格納できる。
【0070】
[0075]ブロック514において、ユーザは、コンテンツをスーパーファイルとして格納することを選択する。これは、コンテンツが1つのファイルフォーマットに従って既存ファイルに格納された後に行われてもよく、または、ユーザはコンテンツをスーパーファイル内のコンテンツとして最初に保存してもよい。そうするために、ユーザはアプリケーションと対話し、コンテンツ(例えば、揮発性メモリに格納されたコンテンツ、または不揮発性メモリに格納されたファイルに格納されたコンテンツ)を、新しいスーパーファイルに保存またはエクスポートするオプションを選択できる。次いで、アプリケーションは、適切なスーパーファイル構造に従ってスーパーファイルを生成し、スーパーファイルのコンテンツペイロード内にコンテンツを格納できる。このプロセス中、アプリケーションは、アクセス制御情報、1つまたは複数の暗号化オプションの選択、1つまたは複数の圧縮オプションの選択、スーパーファイルサーバプロバイダの選択、などの特定の情報を供給するようにユーザに促すことができる。供給された情報に基づいて、アプリケーションは、新しいスーパーファイルのヘッダ部分を、生成または補完できる。次いで、アプリケーションは、スーパーファイルのコンテンツを、ハードドライブなどの不揮発性メモリ、またはクラウドストレージに格納できる。
【0071】
[0076]スーパーファイルを生成する間、クライアント装置510は、スーパーファイルサーバ520(例えば、ユーザによって選択されたスーパーファイルサーバ、または、アプリケーションによって自動的に選択されたスーパーファイルサーバ)に連絡し、新しいスーパーファイルが作成されたという指示を提供する。また、クライアント装置510は、ヘッダ情報の一部もしくは全部、または、コンテンツペイロードの一部もしくは全部を含む、スーパーファイルに関する情報を提供する。いくつかの実装形態では、スーパーファイルサーバ520は、クライアント装置510に提供されるスーパーファイルの固有の識別子を生成できるが、いくつかの例では、クライアント装置510は、スーパーファイルの独自の固有の識別子を生成することができる。
【0072】
[0077]固有の識別子を取得することに加えて、スーパーファイルが暗号化されたコンテンツを含む場合、クライアント装置514は、コンテンツを暗号化するために1つもしくは複数の暗号鍵を生成してもよく、または、スーパーファイルサーバ520からそのような鍵(もしくは複数の鍵)を要求してもよい。そして、クライアント装置510は、暗号鍵を用いてスーパーファイルのコンテンツを暗号化する。
【0073】
[0078]ブロック522において、スーパーファイルサーバ520は、スーパーファイルに対応するデータストア内にレコードを作成することによって、スーパーファイルを登録する。レコードは、スーパーファイル識別子、スーパーファイルの所有者、スーパーファイルのチェックサムまたはハッシュ値などのスーパーファイルに関する情報を含むことができる。レコードはまた、スーパーファイルのコンテンツペイロードの一部もしくは全部、ならびに、暗号情報(例えば、対称暗号鍵、非対称暗号鍵ペアなど)または圧縮情報も含んでもよい。スーパーファイルサーバ520は、データストアにレコードを作成することに加えて、スーパーファイルが正常に作成されたことを示す確認を生成して、クライアント装置510に提供してもよい。
【0074】
[0079]ブロック524において、スーパーファイルサーバ520は、ブロックチェーンをブロックチェーンネットワークに追加する。新しいブロックチェーンは新しいスーパーファイルに関連付けられ、新しいスーパーファイルに基づいて、ブロックがブロックチェーンに作成される。ブロックは、ブロック522に関して上述した情報と同様の情報を含んでもよい。また、スーパーファイルのコンテンツの一部または全部(ヘッダ部分またはコンテンツペイロードなど)を含んでもよい。コンテンツペイロードを含むことにより、スーパーファイルサーバ520は、スーパーファイルのコピーを現在のコンテンツで更新するため、または、スーパーファイルの破損したコピーを修復するためなどに、スーパーファイルを開く他のコンピューティング装置にコンテンツペイロードを提供できる。さらに、異なる実装形態によれば、任意の適切な情報をブロックチェーン内のブロックに格納できる。
【0075】
[0080]スーパーファイルが作成されてスーパーファイルサーバ520に登録されると、作成者は、スーパーファイルを任意の他のユーザに自由に配信でき、他のユーザは、以下でより詳細に説明するように、スーパーファイルのコンテンツにアクセスできる。
【0076】
[0081]すべてのスーパーファイルシステムがブロックチェーン技術を使用できるわけではないことを理解されたい。したがって、いくつかの例では、ブロック524は省略されてもよい。
【0077】
[0082]ここで
図6を参照すると、
図6は、スーパーファイルにアクセスし、修正し、更新するための例示的な方法600を示す。この例における方法600は、本方法の異なる態様を実行する3つの異なるコンピューティングシステムを含む。また、これらの態様は相互に関連していてもよいが、各コンピューティングシステムは、独自の別個の方法を実行し、それは、別のコンピューティング装置からの入力の受信、または別のコンピューティング装置への情報の送信、を含むことができる。
【0078】
[0083]ブロック612において、クライアント装置610は、スーパーファイルのコピーを取得する。例えば、電子メールを介して、またはウェブサイトからダウンロードすることによって、スーパーファイルを受信できる。いくつかの例では、ユーザは、ポータブル記憶装置を使用してスーパーファイルを取得し、それをクライアント装置610に接続できる。
【0079】
[0084]ブロック614において、クライアント装置610はスーパーファイルを開く。スーパーファイルを開くことは、スーパーファイルのコンテンツにアクセスすることを含んでもよいし、スーパーファイルのコンテンツペイロード内に格納された暗号化されたデータまたは圧縮されたデータにアクセスできることを含まなくてもよい。ユーザは、クライアント装置610を使用して、
図4の項目446,462などに関して一般に上述したように、スーパーファイルを開くことができる。さらに、スーパーファイルを開くことは、項目446,462に関して上述したように、スーパーファイル内に格納されたコンテンツへのアクセスを得るために、情報をスーパーファイルサーバ630に送信することを含んでもよい。
【0080】
[0085]ブロック632において、スーパーファイルサーバ630は、クライアント装置610から、クライアント装置610のユーザの身元を示すことができるユーザ資格証明情報を受信する。ユーザ資格証明情報は、ユーザアカウント情報(例えば、ユーザ名およびパスワード)、信頼でき団体で確立されたユーザの身元と関連付けられた認証可能トークンなどを含むことができる。いくつかの例では、ユーザ資格証明情報が受信されない場合、スーパーファイルサーバ630は、ユーザ資格証明情報の要求でクライアント装置610に応答できる。いくつかの例では、スーパーファイルサーバ630は、ユーザ資格証明情報を受信しない場合、ユーザを匿名ユーザとして扱うことができる。
【0081】
[0086]ブロック634において、スーパーファイルサーバ630は、クライアント装置610のユーザのためのスーパーファイルに対するアクセス許可を判定する。アクセス許可は、個々のユーザ、所定のユーザグループなどに対して確立されてもよい。したがって、ユーザ資格証明情報に基づいて、スーパーファイルサーバ630は、ユーザがスーパーファイルに対して、閲覧、編集、所有権の移転などへのアクセスなどの特定のアクセス許可を有するかどうかを判定できる。そのようなアクセス許可は、
図5のブロック522に関して上述したデータストアなど、スーパーファイルサーバ630によってアクセス可能なデータストア内に、またはスーパーファイルのブロックチェーン内に、維持されてもよい。
【0082】
[0087]異なるユーザに対するアクセス許可は、各々が特定の種類の許可および禁止されたアクションを有する許可グループを定義し、ユーザをグループの1つに割り当てることによって、またはユーザごとにカスタム調整され許可および禁止されたアクションを確立することによって、適用されてもよい。グループは、所有者、編集者、閲覧者、期間限定の閲覧者などのために確立されてもよい。許可または禁止され得るアクションは、所有権の移転、コンテンツの追加、既存のコンテンツの修正、既存のコンテンツの削除、1人または複数人のユーザまたはグループに対する許可レベルの変更またはアクセスの無効化、暗号化または圧縮設定の変更、すべてのコンテンツの閲覧、コンテンツの特定の一部の閲覧、所有権情報の閲覧、作成者情報の閲覧、などを含んでもよい。
【0083】
[0088]要求しているユーザに対するアクセス許可を判定した後、スーパーファイルサーバ630は、クライアント装置610に応答する。応答に応じて、クライアント装置610は、スーパーファイルのコンテンツペイロード(単数または複数)全体、コンテンツペイロードの一部、すべてのコンテンツペイロードよりも少ない数、などにアクセスできる。この例では、スーパーファイルは暗号化されたコンテンツペイロードを含み、スーパーファイルサーバ630は、要求しているユーザがスーパーファイルのコンテンツにアクセスする許可を有すると判定する。その判定に応じて、スーパーファイルサーバ630は、スーパーファイルサーバ630によってアクセス可能なデータストアに格納されたスーパーファイルに対応するレコードから暗号情報を取得し、コンテンツペイロードを復号するために必要な暗号情報をクライアント装置610に提供する。コンテンツペイロードが圧縮される例では、スーパーファイルサーバ630はまた、コンテンツペイロードに適用される圧縮の種類を示す情報を提供できる。
【0084】
[0089]ブロック616において、クライアント装置610は、暗号情報を受信し、スーパーファイル内のコンテンツを復号する。この例では、スーパーファイルは1つのコンテンツペイロードのみを含むが、スーパーファイルが複数のコンテンツペイロードを含む場合、クライアント装置610は、コンテンツペイロードの一部または全部を復号するために必要な暗号情報を受信でき、そのような暗号情報を受信した後、暗号情報が受信されたコンテンツペイロードを復号する。同様に、コンテンツペイロードが圧縮されている場合、クライアント装置610は、復号され得る任意のコンテンツペイロードも解凍する。圧縮は、暗号化の前または後に適用されてもよく、したがって、圧縮および復号のための動作の順序は、スーパーファイルサーバから受信されてもよく、またはスーパーファイルのヘッダ部分から取得されてもよいことを理解されたい。この例では、クライアント装置はまた、コンテンツが復号されるとすぐに復号鍵を削除する。しかしながら、他の例では、ファイルが開いている間に復号鍵のコピーを保持してもよい。
【0085】
[0090]ブロック618において、クライアント装置610は、復号されたスーパーファイルコンテンツをユーザに提示する。スーパーファイル内のコンテンツの種類に応じて、オーディオの再生、ビデオの表示、文書の提示などにより、提示の方法が異なる場合がある。
【0086】
[0091]ブロック620において、クライアント装置610は、スーパーファイルサーバ630への通信接続を維持し、ユーザによるコンテンツの使用に基づいて、使用情報をスーパーファイルサーバ630に送信する。例えば、クライアント装置610は、コンテンツのどの部分がユーザに提示されたか(例えば、ユーザによって閲覧された文書のページ、ユーザによって再生された音楽アルバム内のトラック、ユーザによって再生された映画またはテレビ番組の部分)、ユーザがコンテンツを巻き戻したかどうか、一時停止したかどうか、コンテンツを早送りしたかどうか、ユーザがスーパーファイルを開いていた時間、などを報告できる。他の情報(例えば、文書の編集、許可の変更、所有権情報の閲覧などを含む、禁止されたアクションの試行など)も提供できる。
【0087】
[0092]いくつかの例では、スーパーファイルが開いている間に、使用情報が経時的に送信されてもよいが、クライアント装置610で収集され、クライアント装置610がファイルを閉じるときにのみ送信されてもよいことを理解されたい。使用情報を報告するためのさらに他の仕組みが使用されてもよい。また、この例では、使用情報は、スーパーファイルを開くために最初に連絡されたのと同じスーパーファイルサーバ630に送信されるが、使用情報は、任意の適切なコンピューティング装置に送信されてもよい。例えば、スーパーファイルの所有者は、スーパーファイルが作成されたときに使用情報が送信されるべき場所を示す情報を含んでもよい。
【0088】
[0093]スーパーファイルが開いている間に、クライアント装置610とスーパーファイルサーバ630との間の通信が中断された場合、スーパーファイルのコンテンツへのアクセスは、直ちにまたは一定期間後に、中断されてもよい。例えば、スーパーファイルコンテンツの閲覧者は、インターネット接続を失う可能性があり、その時点で、そのクライアント装置は、スーパーファイルコンテンツの提示を中断する。スーパーファイルサーバ630との通信が中断されている間、スーパーファイルコンテンツへのアクセスを防止するために、暗号鍵をさらに破棄することができる。接続が再確立されると、クライアント装置610はコンテンツを再度提示することができ、これは、スーパーファイルサーバ630からの暗号情報を再度要求することを含んでもよい。アクセスを無効にすることは、特定のユーザのアクセスレベルに依存し得る。例えば、スーパーファイルの所有者は、決してスーパーファイルのコンテンツへのアクセスを失うことはないが、作成者または編集者は、潜在的に作業を失うことなくコンテンツの改定を継続することを可能にするために、実質的なタイムアウト期間(例えば1時間など)を有してもよい。他のユーザは、より短いタイムアウト期間を有してもよい。例えば、コンテンツの非匿名閲覧者は、場合によっては散発的になるインターネットサーバを円滑にするために、短いタイムアウト期間(例えば5~10分など)を有してもよい。コンテンツの匿名閲覧者は、中断されると直ちにアクセスを失う可能性がある。しかしながら、異なる例によれば、任意の適切なスキームが使用されてもよい。
【0089】
[0094]ブロック636において、スーパーファイルサーバ630は、使用情報を受信してデータストアに格納し、使用情報をスーパーファイルに関連付ける。
【0090】
[0095]ブロック662において、第2のクライアント装置は、クライアント装置610によってアクセスされる同じスーパーファイルのコピーに格納されたコンテンツを変更する。例えば、スーパーファイルコンテンツの所有者は、クライアント装置660がスーパーファイルのコピーを開いている間に、クライアント装置610を使用してスーパーファイルのコンテンツを変更できる。クライアント装置660によって行われる変更は、任意の種類のものであってもよく、コンテンツペイロード、ヘッダ部分に対するものであってもよく、新たなコンテンツペイロードの追加、既存のコンテンツペイロードの削除などでもよい。
【0091】
[0096]変更を行った後、クライアント装置660は、スーパーファイルサーバ630に変更を提供する。変更は、スーパーファイルのコンテンツの特定の部分にのみ更新として送信されてもよいし、更新されたスーパーファイル全体をスーパーファイルサーバ630に送信することによって送信されてもよい。さらに、変更は、変更が行われたリアルタイムで、クライアント装置660のユーザが「ファイルを保存する」オプションを選択したとき、または、クライアント装置660のユーザがスーパーファイルを閉じるとき、を含む任意の適切な時点に、送信されてもよい。
【0092】
[0097]ブロック638において、スーパーファイルサーバ630は、クライアント装置660から変更を受信する。この例では、スーパーファイルサーバ630は、クライアント装置610と通信しているのと同じスーパーファイルサーバ630である。しかしながら、いくつかの例では、クライアント装置660は、クライアント装置610とは異なるスーパーファイルサーバ630と通信してもよい。
【0093】
[0098]変更されたコンテンツを受信した後、スーパーファイルサーバ630は、クライアント装置660によって行われた変更に基づいて、必要に応じて、スーパーファイルに関連付けられたデータストア内の1つまたは複数のレコードを更新する。次に、ブロック638に関して後述するように、スーパーファイルに対応するブロックチェーンに新しいブロックを追加する。また、スーパーファイルサーバ630は、スーパーファイルが変更されたことをクライアント装置610に通知する。この例では、スーパーファイルサーバ630は、変更されたコンテンツをクライアント装置610(および、スーパーファイルの開いているコピーを有する任意の他のクライアント装置)にプッシュする。しかしながら、いくつかの例では、スーパーファイルサーバ630は、変更されたコンテンツをクライアント装置610に通知し、クライアント装置610は、変更されたコンテンツの要求をスーパーファイルサーバ630に送信してもよい。例えば、クライアント装置610は、変更後のコンテンツを取得するかどうかをユーザに問い合わせてもよい。
【0094】
[0099]複数のスーパーファイルサーバが特定のスーパーファイルに関連付けられている例では、それらは各々同じブロックチェーンネットワークにアクセスして、ブロックチェーンまたはブロックを、ブロックチェーンネットワークに、作成し追加することを管理してもよい。さらに、それらは各々、スーパーファイルに関する情報を取得または更新するために、同じデータストアにアクセスできる。さらに、スーパーファイルサーバのグループ内の1つのスーパーファイルサーバがスーパーファイルへの更新を受信すると、変更が受信されたことを示す通知をブロードキャストすることができ、他のスーパーファイルサーバは、上述したように、スーパーファイルのコピーを現在開いているクライアント装置を判定し、変更されたコンテンツを配信することができる。
【0095】
[0100]ブロック640において、スーパーファイルサーバ630は、スーパーファイルに対応するブロックチェーンに新しいブロックを追加する。新しいブロックは、ブロックチェーン内の前のブロックからの変更を示す情報を含み、いくつかの例では、変更されたスーパーファイルのコピーが新しいブロックに格納されてもよい。
【0096】
[0101]ブロック622において、クライアント装置610は、スーパーファイルを開いている間に、スーパーファイルサーバ630から変更されたコンテンツを受信する。上述したように、変更されたコンテンツは、スーパーファイルサーバ630によってプッシュされていてもよく、または、例えば、ユーザが変更されたコンテンツを受信したいことを示すことに応答して、クライアント装置610によって要求されていてもよい。
【0097】
[0102]ブロック624において、クライアント装置610は、一般にブロック618に関して上述したように、変更されたコンテンツをユーザに提示し、ブロック620に戻ることによって使用情報を送信し続ける。
【0098】
[0103]したがって、この例示的な方法は、ユーザがスーパーファイルのコピーを取得する方法、およびユーザがファイルを開いている間にシステムがリアルタイムでスーパーファイルのユーザのコピーを更新する方法を示す。したがって、ユーザは常にスーパーファイルの最新バージョンを閲覧していることができ、スーパーファイル内のコンテンツの所有者は、スーパーファイルのコピーがコンテンツの現在のバージョンを常に提示していることを保証できる。変更されたコンテンツが受信される前にユーザがスーパーファイルを閉じる場合、次にスーパーファイルが開かれるとき、スーパーファイルサーバ630は、ユーザが古いバージョンのコンテンツを有していることを検出し、そのときに変更されたコンテンツを提供することを理解されたい。したがって、変更が行われたときにユーザがスーパーファイルを開いていなくても、ファイルが次に開かれるときには、スーパーファイルは、ブロック662,636,638,622および624に関して上述したように一般に更新される。
【0099】
[0104]ここで
図7を参照すると、
図7は、信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御のための例示的な方法700を示している。
図7に示す例は、
図1に示す例示的なシステム100に関して説明されるが、本開示による任意の適切なシステムを使用できる。
【0100】
[0105]ブロック712において、クライアント装置(例えば、クライアント装置120a)は、スーパーファイルに対応するアイコンをユーザがダブルクリックすること、または、アプリケーション内で開くスーパーファイルを選択することなどの、スーパーファイルを開く要求を受信する。
【0101】
[0106]ブロック714および716において、クライアント装置120aは、スーパーファイルのアクセス情報を求める要求をスーパーファイルサーバ110に送信し、それに応答して、一般に
図4の項目446,362および/または
図6のブロック614に関して上述したように、アクセス情報を受信する。
【0102】
[0107]ブロック718において、クライアント装置120aは、受信したアクセス情報を使用してスーパーファイルコンテンツを復号する。コンテンツに適用される暗号化または圧縮(もしあれば)に応じて、ブロック718は省略されてもよく、もしくは代わりにコンテンツを解凍すること、または、コンテンツを解凍および復号の両方を含んでもよいことを理解されたい。
【0103】
[0108]ブロック720において、クライアント装置120aは、一般に
図6のブロック618に関して上述したように、スーパーファイルコンテンツをユーザに提示する。
【0104】
[0109]ブロック722において、クライアント装置120aは、一般に
図4の項目470,472または
図6のブロック622に関して上述したように、スーパーファイルサーバ(例えば、スーパーファイルサーバ110)から修正されたスーパーファイルコンテンツを受信し、既存のスーパーファイルコンテンツを修正されたスーパーファイルコンテンツで置き換える。
【0105】
[0110]ブロック724において、クライアント装置120aは、一般に
図4または
図6のブロック624に関して上述したように、修正されたスーパーファイルコンテンツを提示する。
【0106】
[0111]ブロック726において、クライアント装置120aは、一般に
図4の項目482,484に関して上述したように、スーパーファイルサーバからアクセス失効指示を受信する。
【0107】
[0112]ブロック728において、クライアント装置120aは、スーパーファイルコンテンツへのアクセスを無効にする。例えば、クライアント装置120aは、ブロック716で取得された暗号鍵などの暗号鍵を破棄できる。クライアント装置120aはまた、ユーザにコンテンツを提示するなどのために、メモリに格納されたコンテンツの任意の復号されたコピーを消去できる。いくつかの例では、クライアント装置120aは、長期ストレージ(例えば、ハードディスクなど)からスーパーファイルのコピーを削除することもできる。
【0108】
[0113]この例示的な方法のブロックは特定の順序で実行されたことを理解されたいが、ブロックは異なる順序で実行されてもよく、いくつかのブロックは全く実行されなくてもよいことを理解されたい。例えば、修正されたスーパーファイルコンテンツが受信されない場合、ブロック722および724は省略されてもよい。同様に、アクセス失効メッセージが受信されない場合、ブロック726および728は省略されてもよい。加えて、スーパーファイルが複数回修正される場合、ブロック722および724が繰り返されてもよい。
【0109】
[0114]ここで
図8を参照すると、
図8は、信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御のための例示的な方法800を示す。
図7に示す例は、
図1に示す例示的なシステム100に関して説明されるが、本開示による任意の適切なシステムを使用できる。
【0110】
[0115]ブロック812において、スーパーファイルサーバ110は、一般に
図4の項目440または
図5のブロック514および522に関して上述したように、クライアント装置(例えば、クライアント装置120a)から新しいスーパーファイルの識別を受信する。
【0111】
[0116]ブロック814において、スーパーファイルサーバ110は、一般に
図4の項目442または
図5のブロック524に関して上述したように、ブロックチェーンネットワーク(例えば、ブロックチェーンネットワーク330)に新しいブロックチェーンを追加する。
【0112】
[0117]ブロック816において、スーパーファイルサーバ110は、一般に
図4の項目446,462または
図6のブロック614に関して上述したように、クライアント装置からスーパーファイルコンテンツにアクセスする要求を受信する。
【0113】
[0118]ブロック818および820において、スーパーファイルサーバ110は、一般に
図4の項目448,464または
図6のブロック632,634に関して上述したように、スーパーファイルのアクセスレベルを判定し、アクセス情報を提供する。
【0114】
[0119]ブロック822において、スーパーファイルサーバ110は、一般に
図4の項目450または
図6のブロック636に関して上述したように、クライアント装置から使用情報を受信する。
【0115】
[0120]ブロック824において、スーパーファイルサーバ110は、一般に
図4の項目466または
図6のブロック638に関して上述したように、クライアント装置からスーパーファイルのコンテンツに対する修正を受信する。
【0116】
[0121]ブロック826において、スーパーファイルサーバ110は、一般に
図4の項目468または
図6のブロック640に関して上述したように、スーパーファイルに関連付けられたブロックチェーンに新しいブロックを追加する。
【0117】
[0122]ブロック828において、スーパーファイルサーバ110は、一般に
図4の項目470,472または
図6のブロック622,638に関して上述したように、スーパーファイルの開いているコピーを有するクライアント装置にスーパーファイルへの変更を配信する。
【0118】
[0123]ブロック830において、スーパーファイルサーバ110は、スーパーファイルのアクセスレベルに対する修正を受信する。例えば、スーパーファイルの所有者は、ユーザの異なるグループまたは個々のユーザのアクセスレベルを修正できる。スーパーファイルサーバ110は、それらの変更を受信し、対応するレコードをデータストア112に更新することができ、または、更新された許可を反映するためにスーパーファイルに対応するブロックチェーンに新しいブロックを追加できる。
【0119】
[0124]ブロック832において、スーパーファイルサーバ110は、スーパーファイルの開いているコピーを有するクライアントに命令を送信する。例えば、アクセスレベルへの修正が1人または複数人のユーザへのアクセスを無効にする場合、スーパーファイルサーバ110は、
図8の項目482,484または
図7のブロック726,728に関して上述したように、識別されたユーザのうちの1人がスーパーファイルへのアクセスを無効にするために、開いているスーパーファイルを有する任意のクライアント装置に命令を送信する。アクセスレベルの修正が、アクセスレベルを低下させる(例えば、編集者から閲覧者へ)場合、スーパーファイルサーバ110は、対応する命令を送信でき、これにより、スーパーファイルコンテンツに対して、ユーザがさらなる修正を行うことまたは保存することを、対応するクライアントは防止できる。クライアント装置は、アクセスレベルの変更をユーザに提示してもよい。同様に、アクセスレベルの修正が、ユーザのアクセスレベルを上昇させる(例えば、閲覧者から編集者へ)場合、クライアント装置は、アクセスレベルの変更の通知をユーザに提示し、対応するアプリケーションのオプションを有効にして、スーパーファイルのコンテンツに対する変更を編集および保存できる。
【0120】
[0125]この例示的な方法のブロックは特定の順序で実行されたことを理解されたいが、ブロックは異なる順序で実行されてもよく、いくつかのブロックは全く実行されなくてもよいことを理解されたい。例えば、修正されたスーパーファイルコンテンツが受信されない場合、ブロック824~828は省略されてもよい。同様に、いずれのアクセスレベルへのアクセス変更も受信されないのであれば、ブロック830および832は省略されてもよい。さらに、ブロック822~832のうちの1つまたは複数は、様々なクライアント装置によって行われるアクションに基づいて繰り返されてもよい。
【0121】
[0126]ここで
図9を参照すると、
図9は、本開示による信頼できないシステム上のメディアファイルの遠隔所有権およびコンテンツ制御のための例示的なシステムまたは方法における使用に適した例示的なコンピューティング装置900を示している。例示的なコンピューティング装置900は、1つまたは複数の通信バス902を使用してメモリ920およびコンピューティング装置900の他の構成要素と通信する、プロセッサ910を含む。プロセッサ910は、
図5~
図8に関して上述した例示的な方法500~800の一部または全部などの、異なる例によるビデオウェビナー会議中の参加者の対話を仲介するための1つまたは複数の方法を実行するために、メモリ920に格納されたプロセッサ実行可能命令を実行するように構成される。コンピューティング装置900は、この例では、ユーザ入力を受け入れるために、キーボード、マウス、タッチスクリーン、マイクロフォンなどの1つまたは複数のユーザ入力装置950も含む。コンピューティング装置900はまた、ユーザに視覚的出力を提供するための表示装置940を含む。
【0122】
[0127]コンピューティング装置900はまた、通信インターフェース930を含む。いくつかの例では、通信インターフェース930は、ローカルエリアネットワーク(「LAN」)、インターネットなどの広域ネットワーク(「WAN」)、メトロポリタンエリアネットワーク(「MAN」)、ポイントツーポイントまたはピアツーピア接続、を含む、1つまたは複数のネットワークを使用した通信を可能にできる。
他の装置との通信は、任意の適切なネットワークプロトコルを用いて達成できる。例えば、1つの適切なネットワークプロトコルは、インターネットプロトコル(「IP」)、伝送制御プロトコル(「TCP」)、ユーザ・データグラム・プロトコル(「UDP」)、または、それらの組み合わせ(TCP/IPもしくはUDP/IPなど)、を含んでもよい。
【0123】
[0128]本明細書の方法およびシステムのいくつかの例は、様々なマシン上で実行されるソフトウェアに関して説明されているが、方法およびシステムはまた、本開示による様々な方法を特に実行するためのフィールドプログラマブルゲートアレイ(FPGA)などの特定に構成されたハードウェアとして実装されてもよい。例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで、例を実装できる。一例では、装置は、1つまたは複数のプロセッサを含んでもよい。プロセッサは、プロセッサに結合されたランダムアクセスメモリ(RAM)などのコンピュータ可読媒体を含む。プロセッサは、1つまたは複数のコンピュータプログラムを実行するなど、メモリに格納されたコンピュータ実行可能プログラム命令を実行する。そのようなプロセッサは、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、およびステートマシンを含むことができる。そのようなプロセッサは、PLC、プログラマブル割り込みコントローラ(PIC)、プログラマブル論理装置(PLD)、プログラマブル読み出し専用メモリ(PROM)、電子的プログラマブル読み出し専用メモリ(EPROMまたはEEPROM)、または他の同様の装置などのプログラマブル電子装置を、さらに備えてもよい。
【0124】
[0129]そのようなプロセッサは、プロセッサによって実行されると、プロセッサによって実行されるかまたは支援されるように、本開示による方法をプロセッサに実行させることができる、プロセッサ実行可能命令を格納することができる媒体(例えば、1つまたは複数の非一時的コンピュータ可読媒体)を含むか、またはそれと通信することができる。非一時的なコンピュータ可読媒体の例は、プロセッサ(ウェブサーバ内のプロセッサなど)にプロセッサ実行可能命令を提供できる電子、光学、磁気、または他の記憶装置を含んでもよいが、これらに限定されない。非一時的コンピュータ可読媒体の他の例には、フロッピーディスク、CD-ROM、磁気ディスク、メモリチップ、ROM、RAM、ASIC、構成されたプロセッサ、すべての光学媒体、すべての磁気テープもしくは他の磁気媒体、またはコンピュータプロセッサが読み取ることができる任意の他の媒体が含まれるが、これらに限定されない。記載されたプロセッサおよびプロセスは、1つまたは複数の構造内にあってもよく、1つまたは複数の構造を介して分散されてもよい。プロセッサは、本開示による方法(または方法の一部)を実行するためのコードを含んでもよい。
【0125】
[0130]いくつかの例の前述の説明は、例示および説明の目的でのみ提示されており、網羅的であること、または本開示を開示された正確な形態に限定すること、を意図するものではない。本開示の趣旨および範囲から逸脱することなく、その多数の修正および適合が当業者には明らかであろう。
【0126】
[0131]本明細書における例または実施態様への言及は、例に関連して説明される特定の特徴、構造、動作、または他の特性が、本開示の少なくとも1つの実施態様に含まれ得ることを意味する。本開示は、そのように記載された特定の例または実施態様に限定されない。本明細書の様々な箇所における「一例では(in one example)」、「例では(in an example)」、「一実施態様では(in one implementation)」、または「実施態様では(in an implementation)」という表現、またはそれらの変形の出現は、必ずしも同じ例または実施態様を指すものではない。1つの例または実施態様に関連して本明細書に記載された任意の特定の特徴、構造、動作、または他の特性は、任意の他の例または実施態様に関連して記載された他の特徴、構造、動作、または他の特性と組み合わせることができる。
【0127】
[0132]本明細書における「または(or)」という単語の使用は、包括的および排他的OR条件を網羅することを意図している。換言すれば、AまたはBまたはCは、特定の用途に適切な以下の代替的な組み合わせ、A単独、B単独、C単独、AおよびBのみ、AおよびCのみ、BおよびCのみ、ならびに、AおよびBおよびC、のいずれかまたはすべてを含む。
【国際調査報告】