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

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

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特表2022-534677ブロックチェーンを使用するオンラインアプリケーションおよびウェブページの保護
<>
  • 特表-ブロックチェーンを使用するオンラインアプリケーションおよびウェブページの保護 図1
  • 特表-ブロックチェーンを使用するオンラインアプリケーションおよびウェブページの保護 図2
  • 特表-ブロックチェーンを使用するオンラインアプリケーションおよびウェブページの保護 図3
  • 特表-ブロックチェーンを使用するオンラインアプリケーションおよびウェブページの保護 図4
  • 特表-ブロックチェーンを使用するオンラインアプリケーションおよびウェブページの保護 図5
  • 特表-ブロックチェーンを使用するオンラインアプリケーションおよびウェブページの保護 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-08-03
(54)【発明の名称】ブロックチェーンを使用するオンラインアプリケーションおよびウェブページの保護
(51)【国際特許分類】
   H04L 9/32 20060101AFI20220727BHJP
   G06F 21/64 20130101ALI20220727BHJP
【FI】
H04L9/32 200B
H04L9/32 200Z
G06F21/64
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021567051
(86)(22)【出願日】2020-05-28
(85)【翻訳文提出日】2021-11-10
(86)【国際出願番号】 US2020034837
(87)【国際公開番号】W WO2020243245
(87)【国際公開日】2020-12-03
(31)【優先権主張番号】16/426,340
(32)【優先日】2019-05-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ブエノ,ラファエル・デ・カストロ
(57)【要約】
オンラインコンテンツの保護に関連付けられたシステム、方法、および他の実施形態が説明される。一実施形態では、方法は、ハッシュされたコードを生成するステップと、暗号化され署名されたハッシュを生成するステップとを含む。方法はまた、暗号化され署名されたハッシュとドメインとをブロックチェーンに送信して、ブロックチェーンが、ドメインのレジストラに関連付けられた端末による暗号化され署名されたハッシュの検証を要求するようにするとともに、レジストラに関連付けられた端末が、(a)ハッシュされたコードを得るために秘密鍵を使用して暗号化され署名されたハッシュを解読し、(b)ハッシュされたコードの真正性を検証することを試み、(c)ハッシュされたコードの真正性を検証する試みの結果に基づいて、ハッシュされたコードをブロックチェーン記録に含めることを制御するようにする、ステップを含んでいてもよい。
【特許請求の範囲】
【請求項1】
コンピューティングシステムの少なくとも1つのプロセッサによって実行されると前記コンピューティングシステムにアクションを行なわせるコンピュータ実行可能命令を格納する、非一時的コンピュータ読取可能媒体であって、前記アクションは、
少なくとも前記プロセッサが、ハッシュされたコードを生成するために、ネットワークアクセス可能コンテンツに対応するコンピュータコードをハッシュすることを備え、前記ネットワークアクセス可能コンテンツは、ドメインに対応するネットワークアドレスでホストされることになっており、前記アクションはさらに、
少なくとも前記プロセッサが、暗号化され署名されたハッシュを生成するために、前記ハッシュされたコードを暗号化し署名することを備え、前記ハッシュされたコードは、(i)前記ネットワークアクセス可能コンテンツのソースに関連付けられた秘密鍵と、(ii)前記ドメインのレジストラに関連付けられた公開鍵とを使用して暗号化され、前記アクションはさらに、
少なくとも前記プロセッサが、前記暗号化され署名されたハッシュと前記ドメインとをブロックチェーンに送信することを備え、前記命令は、少なくとも前記プロセッサによって実行されると、
(i)前記ブロックチェーンが、前記ドメインのレジストラに関連付けられた端末による前記暗号化され署名されたハッシュの検証を要求するようにするとともに、
(ii)前記レジストラに関連付けられた前記端末が、(a)前記ハッシュされたコードを得るために前記秘密鍵を使用して前記暗号化され署名されたハッシュを解読し、(b)前記ハッシュされたコードの真正性を検証することを試み、(c)前記ハッシュされたコードの前記真正性を検証する試みの結果に基づいて、前記ハッシュされたコードをブロックチェーン記録に含めることを制御するようにする、さらなる命令を備える、非一時的コンピュータ読取可能媒体。
【請求項2】
前記命令は、少なくとも前記プロセッサによって実行されると、さらに、
前記ハッシュされたコードの前記真正性を検証する前記試みが、前記ハッシュされたコードは真正のものであるという判定をもたらす場合、前記レジストラに関連付けられた前記端末が、前記ハッシュされたコードを前記ブロックチェーンに送信することによって、前記ハッシュされたコードを前記ブロックチェーン記録に含めることを制御するようにし、
前記ブロックチェーンが、ドメイン確認要求をドメインネームサーバに送信するようにし、
前記ドメインネームサーバが、(i)前記レジストラが、前記ドメインネームサーバにアクセス可能なデータ構造における前記ドメインにリンクされた特定のレジストラと整合するかどうかを判定し、(ii)前記レジストラと前記特定のレジストラとの整合の結果、前記ハッシュされたコードが前記ブロックチェーン記録に含まれるようにするために、前記ブロックチェーンに承認を送信し、(iii)前記レジストラが前記特定のレジストラと整合していないという判定の結果、前記ハッシュされたコードを前記ブロックチェーン記録に含めることを妨げるために、前記ブロックチェーンに異議を送信するようにする、請求項1に記載の非一時的コンピュータ読取可能媒体。
【請求項3】
少なくとも前記プロセッサによって実行されると、前記コンピューティングシステムに、
少なくとも前記プロセッサが、前記レジストラと前記特定のレジストラとの前記整合の結果、前記ハッシュされたコードが前記ブロックチェーン記録に含まれることについて検証されたという通知を受信すること、
を行なわせる命令をさらに備える、請求項2に記載の非一時的コンピュータ読取可能媒体。
【請求項4】
前記命令は、実行されると、前記レジストラに関連付けられた前記端末が、前記暗号化され署名されたハッシュの署名が前記ドメインと提携している当事者に対応しているかどうかを判定することによって、前記ハッシュされたコードの前記真正性を検証することを試みるようにする、請求項1、2、または3のいずれか1項に記載の非一時的コンピュータ読取可能媒体。
【請求項5】
前記ハッシュされたコードの前記真正性を検証する前記試みが失敗し、前記ハッシュされたコードが真正のものとして検証されない場合、前記命令は、実行されると、前記レジストラに関連付けられた前記端末が、前記ハッシュされたコードを前記ブロックチェーン記録に含めることを妨げるようにする、請求項1、2、3、または4のいずれか1項に記載の非一時的コンピュータ読取可能媒体。
【請求項6】
コンピューティングシステムであって、
少なくとも1つのメモリに接続された、少なくとも1つのプロセッサと、
非一時的コンピュータ読取可能媒体上に格納され、命令を含む、ハッシュモジュールとを備え、前記命令は、少なくとも前記プロセッサによって実行されると、前記プロセッサが、ハッシュされたコードを生成するために、ネットワークアクセス可能コンテンツに対応するコンピュータコードをハッシュするようにし、前記ネットワークアクセス可能コンテンツは、ドメインに対応するネットワークアドレスでホストされることになっており、前記コンピューティングシステムはさらに、
前記非一時的コンピュータ読取可能媒体上に格納され、命令を含む、暗号化モジュールを備え、前記命令は、少なくとも前記プロセッサによって実行されると、前記プロセッサが、
暗号化され署名されたハッシュを生成するために、前記ハッシュされたコードを暗号化し署名するようにし、前記ハッシュされたコードは、(i)前記ネットワークアクセス可能コンテンツのソースに関連付けられた秘密鍵と、(ii)前記ドメインのレジストラに関連付けられた公開鍵とを使用して暗号化され、さらに、
少なくとも前記プロセッサが、前記暗号化され署名されたハッシュと前記ドメインとをブロックチェーンに送信して、
(i)前記ブロックチェーンが、前記ドメインのレジストラに関連付けられた端末による前記暗号化され署名されたハッシュの検証を要求するようにするとともに、
(ii)前記レジストラに関連付けられた前記端末が、(a)前記ハッシュされたコードを得るために前記秘密鍵を使用して前記暗号化され署名されたハッシュを解読し、(b)前記ハッシュされたコードの真正性を検証することを試み、(c)前記ハッシュされたコードの前記真正性を検証する試みの結果に基づいて、前記ハッシュされたコードをブロックチェーン記録に含めることを制御するようにする、コンピューティングシステム。
【請求項7】
前記暗号化モジュールはさらに、少なくとも前記プロセッサによって実行されると、
前記ハッシュされたコードの前記真正性を検証する前記試みが、前記ハッシュされたコードは真正のものであるという判定をもたらす場合、前記レジストラに関連付けられた前記端末が、前記ハッシュされたコードを前記ブロックチェーンに送信することによって、前記ハッシュされたコードを前記ブロックチェーン記録に含めることを制御するようにし、
前記ブロックチェーンが、ドメイン確認要求をドメインネームサーバに送信するようにし、
前記ドメインネームサーバが、(i)前記レジストラが、前記ドメインネームサーバにアクセス可能なデータ構造における前記ドメインにリンクされた特定のレジストラと整合するかどうかを判定し、(ii)前記レジストラと前記特定のレジストラとの整合の結果、前記ハッシュされたコードが前記ブロックチェーン記録に含まれるようにするために、前記ブロックチェーンに承認を送信し、(iii)前記レジストラが前記特定のレジストラと整合していないという判定の結果、前記ハッシュされたコードを前記ブロックチェーン記録に含めることを妨げるために、前記ブロックチェーンに異議を送信するようにする、命令を含む、請求項6に記載のコンピューティングシステム。
【請求項8】
前記暗号化モジュールはさらに、少なくとも前記プロセッサによって実行されると、前記コンピューティングシステムに、少なくとも前記プロセッサが、前記レジストラと前記特定のレジストラとの前記整合の結果、前記ハッシュされたコードが前記ブロックチェーン記録に含まれることについて検証されたという通知を受信することを行なわせる命令を含む、請求項6または7のいずれか1項に記載のコンピューティングシステム。
【請求項9】
前記レジストラに関連付けられた前記端末は、前記暗号化され署名されたハッシュの署名が前記ドメインと提携している当事者に対応しているかどうかを判定することによって、前記ハッシュされたコードの前記真正性を検証することを試みる、請求項6、7、または8のいずれか1項に記載のコンピューティングシステム。
【請求項10】
前記ハッシュされたコードの前記真正性を検証する前記試みが失敗し、前記ハッシュされたコードが真正のものとして検証されない場合、前記レジストラに関連付けられた前記端末は、前記ハッシュされたコードを前記ブロックチェーン記録に含めることを妨げる、請求項6、7、8、または9のいずれか1項に記載のコンピューティングシステム。
【請求項11】
コンピュータにより実現される方法であって、前記方法は、
少なくともプロセッサが、ハッシュされたコードを生成するために、ネットワークアクセス可能コンテンツに対応するコンピュータコードをハッシュするステップを備え、前記ネットワークアクセス可能コンテンツは、ドメインに対応するネットワークアドレスでホストされることになっており、前記方法はさらに、
少なくとも前記プロセッサが、暗号化され署名されたハッシュを生成するために、前記ハッシュされたコードを暗号化し署名するステップを備え、前記ハッシュされたコードは、(i)前記ネットワークアクセス可能コンテンツのソースに関連付けられた秘密鍵と、(ii)前記ドメインのレジストラに関連付けられた公開鍵とを使用して暗号化され、前記方法はさらに、
少なくとも前記プロセッサが、前記暗号化され署名されたハッシュと前記ドメインとをブロックチェーンに送信して、
(i)前記ブロックチェーンが、前記ドメインのレジストラに関連付けられた端末による前記暗号化され署名されたハッシュの検証を要求するようにするとともに、
(ii)前記レジストラに関連付けられた前記端末が、(a)前記ハッシュされたコードを得るために前記秘密鍵を使用して前記暗号化され署名されたハッシュを解読し、(b)前記ハッシュされたコードの真正性を検証することを試み、(c)前記ハッシュされたコードの前記真正性を検証する試みの結果に基づいて、前記ハッシュされたコードをブロックチェーン記録に含めることを制御するようにする、ステップを備える、方法。
【請求項12】
前記暗号化され署名されたハッシュと前記ドメインとをブロックチェーンに送信するステップはさらに、
前記ハッシュされたコードの前記真正性を検証する前記試みが、前記ハッシュされたコードは真正のものであるという判定をもたらす場合、前記レジストラに関連付けられた前記端末が、前記ハッシュされたコードを前記ブロックチェーンに送信することによって、前記ハッシュされたコードを前記ブロックチェーン記録に含めることを制御するようにし、
前記ブロックチェーンが、ドメイン確認要求をドメインネームサーバに送信するようにし、
前記ドメインネームサーバが、(i)前記レジストラが、前記ドメインネームサーバにアクセス可能なデータ構造における前記ドメインにリンクされた特定のレジストラと整合するかどうかを判定し、(ii)前記レジストラと前記特定のレジストラとの整合の結果、前記ハッシュされたコードが前記ブロックチェーン記録に含まれるようにするために、前記ブロックチェーンに承認を送信し、(iii)前記レジストラが前記特定のレジストラと整合していないという判定の結果、前記ハッシュされたコードを前記ブロックチェーン記録に含めることを妨げるために、前記ブロックチェーンに異議を送信するようにする、請求項11に記載の方法。
【請求項13】
少なくとも前記プロセッサが、前記レジストラと前記特定のレジストラとの前記整合の結果、前記ハッシュされたコードが前記ブロックチェーン記録に含まれることについて検証されたという通知を受信するステップをさらに備える、請求項12に記載の方法。
【請求項14】
前記暗号化され署名されたハッシュと前記ドメインとをブロックチェーンに送信するステップは、前記レジストラに関連付けられた前記端末が、前記暗号化され署名されたハッシュの署名が前記ドメインと提携している当事者に対応しているかどうかを判定することによって、前記ハッシュされたコードの前記真正性を検証することを試みるようにする、請求項11、12、または13のいずれか1項に記載の方法。
【請求項15】
前記ハッシュされたコードの前記真正性を検証する前記試みが失敗し、前記ハッシュされたコードが真正のものとして検証されない場合、前記暗号化され署名されたハッシュと前記ドメインとをブロックチェーンに送信するステップは、前記レジストラに関連付けられた前記端末が、前記ハッシュされたコードを前記ブロックチェーン記録に含めることを妨げるようにする、請求項11、12、13、または14のいずれか1項に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
背景
あるピアから別のピアへのデータ通信を保護するための従来のアプローチはhttpプロトコルの使用を伴い、それはポイントツーポイント暗号化を使用する。この方法は、データが送信側と受信側との間で送信される間に傍受され解釈されることを防止するに過ぎない。しかしながら、悪意のある当事者らはそれ以降、ウェブサイトまたはアプリケーションのコンテンツを直接改ざんしたり、またはいわゆる「中間者」攻撃を試みるなどの、ユーザらを悪性コードに向ける他のやり方を用いてきた。
【0002】
ウェブサイトのコンテンツを改ざんする一例は、ウェブサイトのコンテンツへの悪性コードの挿入である。攻撃者は、ウェブブラウザアプリケーションに入力された個人情報へのアクセスを攻撃者に与え得るデータロギング機能または他のそのようなコンテンツを挿入するおそれがある。
【0003】
中間者攻撃は、対照的に、元のウェブサイト自体のコンテンツを修正することなく生じ得る。代わりに、攻撃者は、自分たちが互いに直接通信していると誤って信じているユーザらによって動作されるコンピュータ端末間の通信を密かに傍受して変更する。具体的な一例として、ウェブブラウザアプリケーションによって所望のウェブサイトを検索し表示することを求める要求が、攻撃者によって傍受され得る。所望のウェブサイトにウェブブラウザを向ける代わりに、攻撃者は代わりに、所望のウェブサイトに類似する見た目を有する異なるウェブサイトにウェブブラウザを向ける。異なるウェブサイトは、おそらくユーザの個人情報に不正アクセスする悪性コードを含むおそれがある。
【0004】
中間者攻撃の別の例として、アクティブな盗聴中、攻撃者は、被害者らと独立してつながり、被害者同士の間でメッセージを中継して被害者らが専用接続を通して互いに直接話していると被害者らに信じさせるものの、実際には、会話全体が攻撃者によって制御される。攻撃者は、2人の被害者間で交わされる関連メッセージをすべて傍受して、新しいメッセージを注入するか、または、当事者らによって会話に送信されたメッセージを変更する。
【0005】
改ざんを防止するための既存の試みは、ウェブサイトのコードの定期的バックアップを行なうことを伴う。ウェブサイトに変更が加えられた場合、警告がウェブサイトアドミニストレータに発行され得る。ネットワークアクセス可能コンテンツを保護するための別のやり方は、サービスプロバイダおよび他のエンティティがインターネットを通して悪意のあるコンテンツを積極的に探すことを必要とする。そのようなコンテンツが発見された場合、サービスプロバイダはアドミニストレータと通信して、悪意のあるコンテンツが存在する可能性をアドミニストレータに通知する。これは、アドミニストレータがウェブサイトを復元すること、または他の態様で悪意のあるコンテンツを除去することを可能にする。しかしながら、そのような既存の措置は、悪性コードがインターネットまたは他のネットワークを通して知らないユーザらによってアクセスされることを可能にする。結果は、是正措置が実現されるまで、ユーザらの機密情報がおそらく不正アクセスされるかもしれないということである。
【発明の概要】
【発明が解決しようとする課題】
【0006】
概要
この開示の一実施形態では、コンピューティングシステムの少なくとも1つのプロセッサによって実行されるとコンピューティングシステムに少なくとも以下のアクションを行なわせる格納されたコンピュータ実行可能命令を用いて構成された、非一時的コンピュータ読取可能媒体であって、アクションは、
少なくともプロセッサが、ハッシュされたコードを生成するために、ネットワークアクセス可能コンテンツに対応するコンピュータコードをハッシュすることを含み、ネットワークアクセス可能コンテンツは、ドメインに対応するネットワークアドレスでホストされることになっており、アクションはさらに、
少なくともプロセッサが、暗号化され署名されたハッシュを生成するために、ハッシュされたコードを暗号化し署名することを含み、ハッシュされたコードは、(i)ネットワークアクセス可能コンテンツのソースに関連付けられた秘密鍵と、(ii)ドメインのレジストラに関連付けられた公開鍵とを使用して暗号化され、アクションはさらに、
少なくともプロセッサが、暗号化され署名されたハッシュとドメインとをブロックチェーンに送信して、
ブロックチェーンが、ドメインのレジストラに関連付けられた端末による暗号化され署名されたハッシュの検証を要求するようにするとともに、
レジストラに関連付けられた端末が、(a)ハッシュされたコードを得るために秘密鍵を使用して暗号化され署名されたハッシュを解読し、(b)ハッシュされたコードの真正性を検証することを試み、(c)ハッシュされたコードの真正性を検証する試みの結果に基づいて、ハッシュされたコードをブロックチェーン記録に含めることを制御するようにすることを含む、非一時的コンピュータ読取可能媒体が説明されるとともに、コンピュータにより実現される方法が説明される。
【0007】
別の実施形態では、命令は、少なくともプロセッサによって実行されると、さらに、
ハッシュされたコードの真正性を検証する試みが、ハッシュされたコードは真正のものであるという判定をもたらす場合、レジストラに関連付けられた端末が、ハッシュされたコードをブロックチェーンに送信することによって、ハッシュされたコードをブロックチェーン記録に含めることを制御するようにし、
ブロックチェーンが、ドメイン確認要求をドメインネームサーバに送信するようにし、
ドメインネームサーバが、(i)レジストラが、ドメインネームサーバにアクセス可能なデータ構造におけるドメインにリンクされた特定のレジストラと整合するかどうかを判定し、(ii)レジストラと特定のレジストラとの整合の結果、ハッシュされたコードがブロックチェーン記録に含まれるようにするために、ブロックチェーンに承認を送信し、(iii)レジストラが特定のレジストラと整合していないという判定の結果、ハッシュされたコードをブロックチェーン記録に含めることを妨げるために、ブロックチェーンに異議を送信するようにする。
【0008】
この開示の別の局面では、コンピューティングシステムであって、
少なくとも1つのメモリに接続された、少なくとも1つのプロセッサと、
非一時的コンピュータ読取可能媒体上に格納され、命令を含む、ハッシュモジュールとを備え、命令は、少なくともプロセッサによって実行されると、プロセッサが、ハッシュされたコードを生成するために、ネットワークアクセス可能コンテンツに対応するコンピュータコードをハッシュするようにし、ネットワークアクセス可能コンテンツは、ドメインに対応するネットワークアドレスでホストされることになっており、コンピューティングシステムはさらに、
非一時的コンピュータ読取可能媒体上に格納され、命令を含む、暗号化モジュールを備え、命令は、少なくともプロセッサによって実行されると、プロセッサが、
暗号化され署名されたハッシュを生成するために、ハッシュされたコードを暗号化し署名するようにし、ハッシュされたコードは、(i)ネットワークアクセス可能コンテンツのソースに関連付けられた秘密鍵と、(ii)ドメインのレジストラに関連付けられた公開鍵とを使用して暗号化され、さらに、
少なくともプロセッサが、暗号化され署名されたハッシュとドメインとをブロックチェーンに送信して、
ブロックチェーンが、ドメインのレジストラに関連付けられた端末による暗号化され署名されたハッシュの検証を要求するようにするとともに、
レジストラに関連付けられた端末が、(a)ハッシュされたコードを得るために秘密鍵を使用して暗号化され署名されたハッシュを解読し、(b)ハッシュされたコードの真正性を検証することを試み、(c)ハッシュされたコードの真正性を検証する試みの結果に基づいて、ハッシュされたコードをブロックチェーン記録に含めることを制御するようにする、コンピューティングシステムが説明される。
【0009】
図面の簡単な説明
明細書において援用され、その一部を構成する添付図面は、この開示のさまざまなシステム、方法、および他の実施形態を例示する。図面における図示された要素境界(たとえばボックス、ボックスのグループ、または他の形状)は、当該境界の一実施形態を表わすということが理解されるであろう。いくつかの実施形態では、1つの要素が複数の要素として実現されてもよく、または、複数の要素が1つの要素として実現されてもよい。いくつかの実施形態では、別の要素の内部構成要素として示された要素が外部構成要素として実現されてもよく、逆もまた同様である。さらに、要素は縮尺通りに図示されていない場合がある。
【図面の簡単な説明】
【0010】
図1】ウェブサイトコードにおける悪性コードからユーザコンピュータを保護することに関連付けられたシステムの一実施形態を示す図である。
図2】ブロックチェーンにおけるウェブサイトコードの真正性または完全性を検証する例示的な方法を図示するフロー図である。
図3】ブロックチェーンによってスマートコントラクトに従って行なわれるマルチ認証プロセスの例示的な方法を図示するフロー図である。
図4】ブロックチェーンを使用して、ウェブサイトコードが真正であり、かつ悪性コードがないといったん確認されると、ウェブサイトコードを公開する例示的な方法を図示するフロー図である。
図5】開示される例示的なシステムおよび/または方法を用いて構成されたコンピューティングシステムの一実施形態を示す図である。
図6】開示される例示的なシステムおよび/または方法を用いて構成されたコンピューティングシステムの別の実施形態を示す図である。
【発明を実施するための形態】
【0011】
詳細な説明
通信ネットワークを通してアクセス可能なウェブサイトコードまたは他のオンラインアプリケーションを保護するために、分散型台帳技術、または「ブロックチェーン」を利用するシステムおよび方法を、ここに説明する。本開示はまた、ユーザ端末が所望のオンラインアプリケーションを公開することまたは当該オンラインアプリケーションに他の態様でアクセスすることを試みる場合に、ウェブサイトコードまたは他のオンラインアプリケーションの真正性または完全性を検証するシステムおよび方法を説明する。
【0012】
本システムおよび方法は、ユーザらが、直接変更された悪性コードを用いて、または中間者攻撃の使用を通して、ウェブサイトまたは他のオンラインコンテンツを公開する能力を妨げることができる。ウェブサイトまたは他のオンラインコンテンツの所有権および/または真正性は、コンテンツが公開される前に検証され得る。試みられた検証が失敗した場合、本システムおよび方法は、ユーザの情報を保護するために、ユーザ端末によって公開、実行、または他の態様で使用されているコードを妨げる。
【0013】
本システムおよび方法は、ネットワークアクセス可能リソースが改ざんされることを防止しないかもしれず、または、コンピュータ端末間の通信が乗っ取られることを防止しないかもしれない。しかしながら、ユーザのコンピュータ端末は、悪意を持って改ざんされたウェブサイトまたは他のオンラインリソースを公開または実行することからの被害から保護され得る。ユーザのコンピュータ端末は、オンラインリソースが復元され悪性コードが無力化される時まで、そのような悪性コードによって感染されることから保護されたままとなる。このため、ウェブサイトまたは他のオンラインリソースのコードが悪性コードを含むように改ざんされた場合であっても、ユーザのコンピュータ端末とそれに入力されたエンドユーザの情報とは保護される。その結果、アドミニストレータらは、悪性コードが広まることなく、変更されたコードを(たとえば悪性コードのない)真正の動作状態に修復または他の態様で復元するための適切な時間を与えられる。
【0014】
たとえば、コンピュータユーザらは、自分たちがインターネットを通してアクセスするウェブサイトまたは他のオンラインコンテンツのコードに何が起こるかを制御することができない。時折、ハッカーらは、コンピュータのためのホストファイルを変更することによって、特定のウェブサイトへの通信をすべてリダイレクトすることを試みるおそれがある。影響を受けたコンピュータのユーザがURLをウェブブラウザアプリケーションにタイプ入力すると、そのユーザは、当該URLに適切に関連付けられた実際のウェブサイト以外の意図せぬウェブサイトにリダイレクトされるであろう。意図せぬウェブサイトは、当該URLに対応する実際のウェブサイトに似ているかもしれず、ユーザが宛先間違いを容易に検出することを困難にする。
【0015】
ウェブサイト要求の宛先間違いは、銀行ウェブサイトといった、ユーザの個人的情報を利用するウェブサイトにとって特に懸念される。意図せぬウェブサイトは、ユーザがオンライン金融情報にアクセスするためのユーザ名およびパスワードといった個人情報を入力するログインフィールドを含み得る。データロガーおよびキーストロークトラッカーなどの悪意のある措置は、影響を受けた端末に入力されたかまたは当該端末によってアクセスされた機密情報(たとえば、ユーザ名、パスワード、pinコード、アカウント番号、および他の機密情報)を犯罪者が抽出することを可能にする。その結果、実際のウェブサイトと提携している当事者らは、ブランド信用失墜の結果、または、悪性コードによって生じた損害についての財務会計責任をとることによって、損失を被り得る。
【0016】
本開示は、ウェブサイトコードが公開されることを許可する前にウェブサイトコードの所有権および完全性を認証するための、しばしば「ブロックチェーン」と呼ばれる分散型台帳技術の使用を伴う。この開示全体にわたって、ウェブサイトコードは保護されたオンラインコンテンツの一例として使用されるが、本技術は、ネットワークアクセス可能コンピュータコードに含まれる悪意のあるコンテンツから保護するために利用され得る。
【0017】
ウェブサイトコードの所有権および真正性は、所望のオンラインアプリケーションを公開することを求めるユーザコンピュータ端末による要求の送信に応答して検証される。ユーザコンピュータは、直接、またはいわゆる「中間者攻撃」を通して注入された悪性コードを含むウェブサイトを公開することを防止される。検証が失敗した場合、ウェブサイトコードは、ユーザコンピュータによって公開されることを防止され、それにより、ユーザコンピュータを保護する。そのような保護は、ウェブサイトコードが改ざんされること、または通信が乗っ取られることを防止しないであろう。しかし、本技術は、ユーザコンピュータが悪意のあるウェブサイトを公開することを妨げ、悪性コードの広がりを防止することを助けるであろう。
【0018】
本技術の一局面は、ユーザコンピュータが悪意を持って変更されたウェブサイトから保護されることであり、アドミニストレータらに、ウェブサイトコードを修復し、悪性コードが広がることを防止するための時間を与える。
【0019】
本開示に従ってウェブサイトコードを保護するために、ウェブサイトアドミニストレータは、真正ウェブサイトコードについての認証記録をブロックチェーンに含める。これを達成するために、コンピューティングデバイスのハッシュモジュールが、真正ウェブサイトコードがホストされるであろうウェブサイトドメインに関連する真正ウェブサイトコードのハッシュを生成する。ウェブサイトコードのためのハッシュは、(i)ウェブサイトコードのアドミニストレータ、開発者、または他の権威ある当事者に関連付けられた秘密鍵と、(ii)ウェブサイトドメインのレジストラに関連付けられた公開鍵とを利用して、コンピューティングデバイスの暗号化モジュールによって暗号化され署名される。
【0020】
ウェブサイトドメインに関連するハッシュの暗号化され署名されたバージョンは、スマートコントラクトに従ってブロックチェーンに送信される。スマートコントラクトは、ウェブサイトコードの真正性を文書化する認証記録をブロックチェーンに含めるために満たされるべき条件を定義する規則を含む。認証記録をブロックチェーンに含めることは、認証記録が、サーバまたは他のネットワーク接続型コンピュータ端末といった、インターネットを通してアクセス可能なコンピューティングデバイスの非一時的コンピュータ読取可能媒体によって格納されることを意味する。認証記録は、認証記録を伴う導出または他の作業またはトランザクションから生じる一連の関連する記録に含まれる。
【0021】
一連の記録は「チェーン」状にリンクされ、認証記録を参照する複数の異なるネットワーク接続型コンピューティングデバイスによって格納される。一連の記録における1つの記録が破損しても、そのような破損は一連の記録における他の記録との不一致を生み出し、それにより、破損した記録または対応するウェブサイトコードが不正アクセスされたかもしれないということを示すであろう。認証記録および関連記録を格納するコンピューティングデバイスが接続されたネットワークは、ここに概してブロックチェーンと呼ばれる。
【0022】
ハッシュの暗号化され署名されたバージョンをブロックチェーンに送信することは、ブロックチェーンに検証手順を実行させる。検証手順の一環として、ブロックチェーンはスマートコントラクトにおいて、ウェブサイトドメインを担当しているレジストラを、当該レジストラの公開鍵に基づいて識別するように要求される。公開鍵は、上述の暗号化モジュールによって行なわれた暗号化および署名プロセスの一環として使用されたことを思い出されたい。レジストラがいったん識別されると、ブロックチェーンは、レジストラから真正ウェブサイトコードのハッシュに関連付けられた署名の承認を要求するようにされる。
【0023】
ブロックチェーンに含めるための認証記録を承認するために、レジストラはスマートコントラクトにおいて、真正ウェブサイトコードに関連付けられた秘密鍵を使用してハッシュを解読するように要求される。レジストラは解読されたハッシュを分析して、署名が、真正ウェブサイトコードをホストするためのウェブサイトドメインの所有者に関連付けられていることが知られている実際の署名と整合するかどうかを判定する。ハッシュされたウェブサイトコードが正確に暗号化されていない場合、または、署名がドメイン所有者の署名と整合していない場合、ブロックチェーンへの認証記録の入力は拒否される。
【0024】
レジストラによる認証記録の真正性の検証の結果、検証の通知がブロックチェーンに送信される。検証の通知は、認証記録とウェブサイトの解読されたハッシュコードとが有効であり、ブロックチェーンに含まれるべきであるということを示す。これに応答して、およびスマートコントラクトに従って、ブロックチェーンは、ウェブサイトコードの真正性の冗長な検証のために、権威あるネームサーバ(たとえばドメインネームサーバ、または「DNS」)に第2の要求を送信するようにされる。
【0025】
冗長な検証のための第2の要求は、レジストラが本当に、認証中のウェブサイトコードのためにスマートコントラクトに列挙されたウェブサイトドメインのための指定されたレジストラであるかどうかを判定するよう、DNSに要求する。レジストラがウェブサイトドメインのための指定されたレジストラではないとDNSが判定した場合、冗長な検証は失敗し、DNSは、認証記録をブロックチェーンに含めることを拒否する。
【0026】
冗長な検証がいったんうまく完了する(たとえば、レジストラがウェブサイトドメインのための指定されたレジストラであるとDNSによって判定される)と、DNSは、認証記録をブロックチェーンに含めることのその承認を用いて、ブロックチェーンに応答する。DNSの承認の受信に応答して、ブロックチェーンは認証記録を含めるようにされ、認証記録は、ブロックチェーンによって維持される分散型台帳の一部として、ウェブサイトコードの解読されたハッシュとウェブサイトコードに関連付けられたドメインとを含み得る。オプションで、認証記録がブロックチェーンに含まれるために承認されたことを確認する通知が、ブロックチェーンによって、ウェブサイトコードに関連付けられた当事者に関連付けられたユーザコンピュータに送信され得る。
【0027】
認証記録は、ブロックチェーンにいったん含まれると、ウェブサイトコードを公開する試みがなされた時にウェブサイトコードの真正性および完全性を検証するために使用され得る。ここに使用されるような、ウェブサイトコードを「公開する」試みは、ユーザがURLをブラウザフィールドに入力するかまたは他の態様でウェブサイトを表示する要望を示した結果、ウェブサイトを検索し表示することを求める、ユーザコンピュータからの要求を伴う。ウェブサイトコードの真正性および完全性を検証することは、ユーザコンピュータがウェブサイトコードを公開してウェブサイトを表示することを許可される前に完了されるべきである。
【0028】
ユーザコンピュータによって実行されるウェブブラウザは、ウェブサイトコードを公開してウェブサイトを表示することを求めるユーザからの要求を受信することができる。これに応答して、ウェブブラウザのハッシュ検証モジュールは、ウェブサイトコードに関連付けられたハッシュについての要求を、インターネットなどの通信ネットワークを通して、ウェブサーバに送信する。公開されるべきウェブサイトコードをユーザコンピュータに送信する前に、ウェブサーバは、当該要求によって、要求されたウェブサイトコードに関連付けられたハッシュをユーザコンピュータに戻すようにされる。
【0029】
ハッシュ検証モジュールは、ウェブサーバによって戻されたハッシュを使用して、戻されたハッシュが検証され、ブロックチェーンにおける認証記録に含まれているか、および、上述のようなウェブサイトコードのドメインに関連しているかどうかを判定する。これを達成するために、ハッシュ検証モジュールは、確認要求をブロックチェーンに送信する。確認要求は、ブロックチェーンに、ウェブサイトコードのためのドメインに関連するハッシュを戻させる。ウェブサーバによって戻されたハッシュは公開されるべきウェブサイトコードのドメインに関連していないとハッシュ検証モジュールが判定した場合、ハッシュ検証は失敗である。失敗したハッシュ検証の結果、ハッシュ検証モジュールは警告を発し、ウェブサーバからのユーザコンピュータによるウェブサイトコードの検索および/または公開を妨げることができる。
【0030】
ハッシュ検証が成功した場合(たとえば、ブロックチェーンにおける認証記録に含まれるウェブサーバによって戻されたハッシュが、公開されるべきドメインに関連している場合)、コンテンツ検証モジュールがコンテンツ検証を行なう。コンテンツ検証は、コンテンツ検証モジュールがウェブサイトコードについての要求をインターネットを通してウェブサーバに送信することを伴う。ウェブサーバは、要求の受信に応答して、ウェブサイトコードをインターネットを通してユーザコンピュータに戻す。コンテンツ検証モジュールは、(i)ウェブサーバによって戻されたウェブサイトコードを、(ii)以前にブロックチェーンによってハッシュ検証モジュールに戻されたウェブサイトコードのためのドメインに関連するハッシュと比較する。
【0031】
ブロックチェーンによって戻された認証記録におけるドメインに関連するハッシュが戻されたウェブサイトコードに対応していないとコンテンツ検証モジュールが判定した場合、コンテンツ検証モジュールは、ユーザコンピュータによるウェブサイトコードの公開を妨げる。たとえば、ウェブブラウザはオプションで、受信されたウェブサイトコードを公開し、それぞれのウェブサイトを表示する代わりに、ユーザへのアラートを表示することができる。
【0032】
しかしながら、ブロックチェーンにおける認証記録におけるドメインに関連するハッシュが戻されたウェブサイトコードに対応しているとコンテンツ検証モジュールが判定した場合、コンテンツ検証モジュールはウェブサイトコードを検証し、ウェブサイトコードが公開されるようにする。その結果、ユーザコンピュータによって実行されるウェブブラウザアプリケーションは、ウェブサイトコンテンツを含む表示を生成する。
【0033】
図1を参照して、ウェブサイトにおける悪性コードからユーザコンピュータを保護することに関連付けられたシステム100の一実施形態が図示される。システムは、インターネットなどの通信ネットワーク110に動作可能に接続された管理用端末105を含む。管理用端末105は、ウェブサイトコードの所有権および真正性の確立を制御するために動作可能であり、ウェブサイトコードがユーザ端末115によって公開されることを許可される前のウェブサイトコードの信頼できる検証を可能にする。所有権および真正性は、管理用端末によっていったん確立されると、ブロックチェーン125に含まれる認証記録120において文書化される。
【0034】
管理用端末105は、ウェブサイトコードを担当する当事者(たとえば開発者)、ウェブサイトコードをホストする当事者、または、他の態様でウェブサイトコードをネットワークアクセス可能にすることに関与する当事者によって動作され得る。管理用端末105は、ハッシュされたコード135を生成するために真正ウェブサイトコードをハッシュするハッシュモジュール130を含む。
【0035】
ハッシュモジュール130によって行なわれようなハッシングは、任意の長さの入力文字列を受け取り、固定長の文字を有する出力文字列を生成することを伴う。たとえば、ウェブサイトコードとウェブサイトコードに対応するドメインとは、ハッシングアルゴリズムへの入力と見なされ得る。入力のサイズにかかわらず、各ハッシュについての出力は等しい。
【0036】
ハッシュモジュール130によって利用されるハッシングアルゴリズムはオプションで、決定性であり得る。このため、同じ入力(たとえば、ウェブサイトコードおよび対応するドメイン)がアルゴリズムに従って処理されるたびに、同じハッシュされたコード135が出力される。しかしながら、ハッシュされたコード135はオプションで、逆にすること(すなわち、出力に基づいて、ハッシュアルゴリズムへの入力として使用されたコンテンツを判定する)が実行不可能であり得る。ハッシングアルゴリズムの例は、MD5、SHA-1、SHA256、SHA512などを含むものの、それらに限定されない。
【0037】
管理用端末105はまた、ハッシュされたコード135に基づいて、暗号化され署名されたハッシュ145を生成するために動作可能な暗号化モジュール140を含む。ウェブサイトコードのソース(たとえばソフトウェア開発者)に関連付けられた秘密鍵と、ウェブサイトがホストされることになっているドメインのレジストラに関連付けられた公開鍵とが、暗号化され署名されたハッシュ145を生成するために暗号化モジュール140によって使用される。
【0038】
管理用端末105は、暗号化され署名されたハッシュ145を、スマートコントラクトと暗号化され署名されたハッシュ145を検証することを求める要求とともに、ブロックチェーン125に送信する。以下により詳細に説明されるように、ブロックチェーン125による暗号化され署名されたハッシュ145の検証は、スマートコントラクトに含まれる規則を満たすことを伴う。一実施形態については、検証は多段階検証プロセスを伴う。
【0039】
たとえば、検証手順の一環として、ブロックチェーン125はスマートコントラクトにおいて、ウェブサイトドメインを担当するレジストラを、暗号化され署名されたハッシュ145に含まれる当該レジストラの公開鍵に基づいて識別するように要求される。レジストラがいったん識別されると、ブロックチェーン125は、暗号化され署名されたハッシュ145を解読すること、および、暗号化され署名されたハッシュ145に関連付けられた署名を承認することを求める要求とともに、暗号化され署名されたハッシュ145を、レジストラに関連付けられたサーバ150に送信する。
【0040】
ブロックチェーン125に含めるための認証記録120を承認するために、レジストラサーバ150はスマートコントラクトにおいて(または、スマートコントラクトに従うブロックチェーン125によって)、レジストラの秘密鍵を使用してハッシュを解読するように要求される。秘密鍵は、暗号化され署名されたハッシュ145に含まれる公開鍵に対応する。レジストラサーバ150は、現在解読されたハッシュを分析して、署名が、真正ウェブサイトコードをホストするためのウェブサイトドメインの所有者に関連付けられていることが知られている実際の署名と整合するかどうかを判定する。ハッシュされたウェブサイトコードが正確に暗号化されていない場合(たとえば、レジストラサーバの秘密鍵を使用してレジストラサーバ150によって解読されることができない場合)、または、署名がドメイン所有者の署名と整合していない場合、ブロックチェーン125への認証記録120の入力は拒否される。
【0041】
暗号化され署名されたハッシュ145が適切に暗号化され、署名がドメインの所有者の署名と整合する場合、レジストラサーバ150は、検証の通知をブロックチェーン125に送信する。レジストラサーバ150はまた、暗号化され署名されたハッシュ145を解読し、解読されたハッシュをブロックチェーン125に送信する。検証の通知は、署名がウェブサイトコードに関連付けられたドメインの登録された所有者と整合することと、ウェブサイトコードに関連付けられた認証記録120がブロックチェーン125に含まれるべきであるということとを示す。
【0042】
検証の通知の受信の結果、およびスマートコントラクトに従って、ブロックチェーン125は第2の要求をDNS155に送信する。第2の要求は、ウェブサイトコードの真正性の冗長な検証のためのものである。
【0043】
第2の要求は、レジストラが本当に、認証中のウェブサイトコードのために解読されたハッシュに列挙されたウェブサイトドメインのための指定されたレジストラであるかどうかを判定するよう、DNS155に命令する。レジストラがウェブサイトドメインのための指定されたレジストラではないとDNS155が判定した場合、冗長な検証は失敗し、DNS155は、認証記録120がブロックチェーン125に含まれることを防止する。
【0044】
冗長な検証がいったんうまく完了する(たとえば、レジストラがウェブサイトドメインのための指定されたレジストラであるとDNS155によって判定される)と、DNS155は、認証記録120をブロックチェーン125に含めることを承認して、ブロックチェーン125に応答する。
【0045】
DNS155の承認の受信に応答して、認証記録120は、オプションで新たなノードとして、ブロックチェーン125に含まれ、ウェブサイトコードのための新しいチェーンを開始する。認証記録120は、ブロックチェーン125上に維持される分散型台帳の一部として、ウェブサイトコードの解読されたハッシュとウェブサイトコードに関連付けられたドメインとを含み得る。オプションで、認証記録120がブロックチェーン125に含まれるために承認されたことを確認する通知が、ブロックチェーン125によって管理用端末105に送信され得る。
【0046】
認証記録120がブロックチェーン125にいったん含まれると、ユーザ端末115は、ウェブサイトコードを公開する前にウェブサイトコードの真正性および完全性を検証するために、認証記録120にアクセスすることができる。ユーザ端末115は、ウェブブラウザアプリケーションのコンポーネントを形成することができるハッシュ検証モジュール160を含む。ユーザがウェブサイトコードを公開する命令をユーザ端末115に入力した結果、ハッシュ検証モジュール160は、ウェブサイトコードをホストするウェブサーバ165からウェブサイトのハッシュを要求する。
【0047】
ウェブサーバ165は、ウェブサイトのハッシュをハッシュ検証モジュール160に送り返すことによって要求に応える。戻されたウェブサイトのハッシュは、ウェブサイトコードのハッシュと、ウェブサイトに関連付けられたドメインとを含む。次に、ハッシュ検証モジュール160は、受信されたウェブサイトハッシュのブロックチェーン125との真正性を検証する。
【0048】
たとえば、ハッシュ検証モジュール160は、受信されたウェブサイトのハッシュをブロックチェーン125に送信する。ブロックチェーン125は、認証記録120がウェブサイトのハッシュを含むかどうかを判定する。認証記録120がウェブサイトのハッシュを含む場合、ブロックチェーンはまた、ハッシュ検証モジュール160によって送信されたドメインが認証記録120におけるドメインに関連するかどうかを判定する。ハッシュ検証モジュール160によって送信されたドメインが認証記録120におけるドメインに関連する場合、ブロックチェーン125はユーザ端末115に、公開されるべきドメインに関連するウェブサイトのハッシュなどの検証通知を、認証記録120から送信する。認証記録120の真正性および完全性はすでに検証されているため、ブロックチェーンによって送信されたハッシュは、悪性コードなく、ウェブサイトに対応する。
【0049】
ユーザ端末115はまた、コンテンツ検証モジュール170を含む。検証通知がユーザ端末115によっていったん受信されると、オプションでウェブブラウザアプリケーションのコンポーネントを形成することもできるコンテンツ検証モジュール170は、ウェブサーバ165からウェブサイトコードを要求する。ウェブサーバからウェブサイトコードを受信すると、コンテンツ検証モジュール170は、ウェブサイトコードのコンテンツを、ブロックチェーン125から受信されたハッシュによって表わされるコンテンツと比較する。ウェブサイトコードがブロックチェーン125から受信されたハッシュに基づくコンテンツと整合するという判定を比較がもたらす場合、コンテンツ検証モジュール170は、ウェブサイトコードは公開するのに安全であるという結論を下す。その結果、コンテンツ検証モジュール170は、ウェブブラウザアプリケーションにウェブサイトコードを公開させる。
【0050】
ウェブサイトコードがブロックチェーン125から受信されたハッシュに基づくコンテンツと整合していないという判定を比較がもたらす場合、コンテンツ検証モジュール170は、ウェブサイトコードは公開するのに安全ではないという結論を下す。その結果、コンテンツ検証モジュール170は、ウェブブラウザアプリケーションがウェブサイトコードを公開する能力を妨げ、それにより、ユーザ端末115を潜在的に悪性のコードから保護する。
【0051】
一実施形態では、管理用端末105、ユーザ端末115、レジストラ端末150、DNS155、およびウェブサーバ165(これらは各々、総称的にデバイスとよばれる)のうちの1つ以上は、企業組織のためのアプリケーションまたは分散型アプリケーションの集合を含むコンピューティング/データ処理システムであり得る。アプリケーションおよびデバイスは、クラウドベースのネットワークシステム、ソフトウェア・アズ・ア・サービス(Software as a Service:SaaS)アーキテクチャ、または他のタイプのネットワーク化されたコンピューティングソリューションを用いて動作するように、もしくは、そういうものとして実現されるように構成されてもよい。一実施形態では、デバイスは、少なくともここに開示される機能を提供し、コンピュータネットワークを通してシステム100(サーバとして機能する)と通信するコンピューティングデバイス/端末を介して多くのユーザによってアクセスされる、集中型のサーバ側アプリケーションである。
【0052】
また、一実施形態では、ここに説明されるコンポーネントのうちの1つ以上は、非一時的コンピュータ読取可能媒体に格納されたプログラムモジュールとして構成される。プログラムモジュールは、少なくともコンピュータプロセッサによって実行されると、図5を参照して説明されるコンピューティングデバイス500などのコンピューティングデバイスに、ここに説明されるような対応する機能を行なわせる格納された命令を用いて構成される。ここに行なわれる機能/アクションは、少なくとも部分的に、プロセッサがメモリデバイスにアクセスし、メモリデバイスとの間でデータおよび値の読出し/書込みを行なうようにメモリデバイスと対話することによって行なわれる。ここに説明または請求される機能/アクションは、手動でまたは人間の心の中で行なわれない。
【0053】
図2は、ブロックチェーン125を使用して、ウェブサイトコードを真正のものとして確立し、悪性コードを欠くための方法の一実施形態を図示するフロー図である。ブロック200で、管理用端末105は、ウェブサイトコードと提携している当事者に登録されたドメインのためのネットワークアドレスでホストされることになっているウェブサイトコードをハッシュする。ハッシュは、使用される特定のハッシングアルゴリズムに従って、固定長を有する出力を生成する。
【0054】
ブロック205で、ハッシュされたコードは暗号化され署名される。ハッシュされたコードは、(i)ウェブサイトコードの開発者または他のソースに関連付けられた秘密鍵と、(ii)ドメインのレジストラに関連付けられた公開鍵とを使用して、暗号化され署名される。秘密鍵は、レジストラサーバ150が暗号化され署名されたハッシュ145を解読することを可能にし、レジストラの公開鍵は、ブロックチェーンが、暗号化され署名されたハッシュ145が送信されることになっているレジストラサーバ150を識別することを可能にする。
【0055】
ブロック210で、暗号化され署名されたハッシュ145は、通信ネットワーク110を通してブロックチェーンに送信される。悪性コードがない形でウェブサイトコードを認証するための規則または条件を定義するスマートコントラクトが、暗号化され署名されたハッシュ145とともに送信される。暗号化され署名されたハッシュ145とスマートコントラクトとは、ウェブサイトコードについての認証記録120をブロックチェーン125に含めるために、ブロックチェーン125に、図3を参照して説明されるような多段階認証プロセスを実行させる。
【0056】
図3は、ウェブサイトコードを真正のものとして確立するためにブロックチェーン125によって行なわれる多段階認証方法の一実施形態を図示するフロー図である。ブロック300で、ブロックチェーンは、暗号化され署名されたハッシュ145とスマートコントラクトとの組合せを、通信ネットワーク110を通して受信する。スマートコントラクトは、ウェブサイトコードを認証するための以下に説明されるプロセスを定義する。
【0057】
ブロック305で、暗号化され署名されたハッシュ145を適切なレジストラサーバ150にルーティングするために、暗号化され署名されたハッシュ145に含まれるレジストラの公開鍵が、ブロックチェーン125によって使用される。レジストラサーバ150がいったん識別されると、ブロック310で、ブロックチェーン125は、暗号化され署名されたハッシュ145をレジストラサーバ150に送信する。暗号化され署名されたハッシュ145の送信は、暗号化され署名されたハッシュ145を解読することを求めるレジストラサーバ150に対する要求を含む。ウェブサイトコードと提携している開発者または他の当事者の署名がウェブサイトコードのためのドメインに対応することを、レジストラサーバ150によって確認することも、要求される。
【0058】
レジストラサーバ150は、図4を参照して説明されるように暗号化され署名されたハッシュ145の解読およびその署名の確認を試みた後で、試みの結果をブロックチェーン125に戻す。ブロックチェーン125は、ブロック315で、レジストラサーバ150による解読および署名の確認の試みが成功したかどうかを判定する。当該試みが成功していない場合、ブロック320で、認証記録120は、ブロックチェーン125に追加されることを防止される。当該試みが成功した場合、ブロックチェーンは、ブロック325で、レジストラがウェブサイトコードに関連付けられたドメインのために指定されているという確認をDNS155から要求することによって、多段階認証プロセスを継続する。解読されたハッシュも、レジストラサーバ150によってブロックチェーン125に戻される。
【0059】
ブロック330で、レジストラがウェブサイトコードに関連付けられたドメインのために指定されているということをDNS155が示さないとブロックチェーン125が判定した場合、ブロックチェーン125は、認証記録120のブロックチェーン125への追加を防止する。レジストラがウェブサイトコードに関連付けられたドメインのために指定されているとDNS155が判定したとブロックチェーン125が判定した場合、ブロック340で、ブロックチェーン125は認証記録120をブロックチェーン125に追加する。
【0060】
図4は、ブロックチェーン125を使用して、ウェブサイトコードが真正であり、かつ悪性コードがないといったん判定されると、ウェブサイトコードを公開する方法の一実施形態を図示するフロー図である。ブロック400で、ウェブブラウザは、ウェブサイトコードを公開することを求める要求を受信する。要求は、ウェブブラウザの実行の結果生成されたユーザインターフェイスのアドレスフィールドへのURLまたはネットワークアドレスの入力に応答して受信され得る。
【0061】
ウェブサイトコードを直ちに要求し公開するのではなく、ブロック405で、ハッシュ検証モジュール160は、ウェブサーバ165から、ウェブサイトコードに対応するページハッシュを要求する。ブロック410で、ページハッシュは、認証記録120に基づく検証のために、ハッシュ検証モジュール160によってブロックチェーン125に送信される。
【0062】
ブロックチェーン125は、ブロック415で、ページハッシュが認証記録120に含まれるかどうかを判定するようにされ、ページハッシュが認証記録120に含まれる場合、ブロック420で、ページハッシュがウェブサイトコードのドメインに関連するかどうかを判定するようにされる。ブロック415またはブロック420での判定が「いいえ」である場合、ブロック425で、ブロックチェーン125からハッシュ検証モジュール160で受信された通信は、ウェブブラウザアプリケーションがウェブサイトコードを公開することを防止する。当該判定が「はい」である場合、ブロック430で、ブロックチェーン125は、認証記録120からウェブサイトコードに対応する真正ページハッシュを戻す。
【0063】
ブロック435で、コンテンツ検証モジュール170は次に、ウェブサーバ165からウェブサイトコードを要求する。ブロック440で、コンテンツ検証モジュール170は、ブロックチェーン125における認証記録120からの真正ページハッシュが、ウェブサーバ165から受信されたウェブサイトコードに対応するかどうかを判定する。当該真正ページハッシュが当該ウェブサイトコードに対応しない場合、ブロック445で、コンテンツ検証モジュール170は、ウェブブラウザがウェブサイトコンテンツを公開することを防止する。当該真正ページハッシュが当該ウェブサイトコードに対応する場合、ブロック450で、コンテンツ検証モジュール170は、ウェブブラウザアプリケーションがウェブサイトコンテンツを公開することを許可する。
【0064】
コンピューティングデバイスの実施形態
図5および図6は、ここに説明される例示的なシステムならびに方法、および/または同等物のうちの1つ以上を用いて構成および/またはプログラムされた例示的なコンピューティングデバイス500および600を示す。図5に示すように、例示的なコンピューティングデバイス500は、バス525によって動作可能に接続されたプロセッサ502とメモリ535と入力/出力ポート545とを含むコンピュータ515であってもよい。一例では、コンピュータ515は、ここに説明されるようなウェブサイトコードのハッシングおよび暗号化を容易にするように構成されたハッシュモジュール130および暗号化モジュール140のためのロジックを含んでいてもよい。別の例では、当該ロジックは、ハードウェア、命令が格納された非一時的コンピュータ読取可能媒体、ファームウェア、および/またはそれらの組合せで実現されてもよい。ハッシュモジュール130および暗号化モジュール140のためのロジックはバス525に取り付けられたハードウェアコンポーネントとして示されているが、他の実施形態では、当該ロジックは、プロセッサ502において実現されてもよく、メモリ535に格納されてもよく、または、ディスク555もしくは他の非一時的コンピュータ読取可能媒体505に格納されてもよいということが理解されるべきである。
【0065】
一実施形態では、ロジックまたはコンピュータ515は、上述のアクションを行なうための手段(たとえば、構造:ハードウェア、非一時的コンピュータ読取可能媒体、ファームウェア)である。いくつかの実施形態では、コンピューティングデバイスは、クラウドコンピューティングシステムで動作するサーバ、ソフトウェア・アズ・ア・サービス(SaaS)アーキテクチャで構成されたサーバ、スマートフォン、ラップトップ、タブレットコンピューティングデバイスなどであってもよい。
【0066】
これらの手段は、たとえば、ここに説明されるようにウェブサイトコードをハッシュおよび/または暗号化するようにプログラムされたASICとして実現されてもよい。これらの手段はまた、メモリ535に一時的に格納され、その後プロセッサ502によって実行されるデータ510としてコンピュータ515に提示される、格納されたコンピュータ実行可能命令として実現されてもよい。
【0067】
ロジックはまた、ここに説明されるハッシングおよび暗号化方法を行なうための手段(たとえば、ハードウェア、実行可能命令を格納する非一時的コンピュータ読取可能媒体、ファームウェア)を提供してもよい。
【0068】
コンピュータ515の例示的な構成を概して説明すると、プロセッサ502は、デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを含む多種多様のプロセッサであってもよい。メモリ535は、揮発性メモリをおよび/または不揮発性メモリを含んでいてもよい。不揮発性メモリは、たとえば、ROM、PROMなどを含んでいてもよい。揮発性メモリは、たとえば、RAM、SRAM、DRAMなどを含んでいてもよい。
【0069】
ストレージディスク555は、たとえば、入力/出力(I/O)インターフェイス(たとえばカード、デバイス)540、I/Oコントローラ530、および入力/出力ポート545を介して、コンピュータ515に動作可能に接続されてもよい。ディスク555は、たとえば、磁気ディスクドライブ、ソリッドステートディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、ジップドライブ、フラッシュメモリカード、メモリスティックなどであってもよい。さらに、ディスク555は、CD-ROMドライブ、CD-Rドライブ、CD-RWドライブ、DVD ROMなどであってもよい。メモリ535は、たとえば、プロセスおよび/またはデータ510を格納することができる。ディスク555および/またはメモリ535は、コンピュータ515のリソースを制御して割り当てるオペレーティングシステムを格納することができる。
【0070】
コンピュータ515は、I/Oインターフェイス540および入力/出力ポート545を介して入力/出力(I/O)デバイスと対話してもよい。入力/出力デバイスは、たとえば、キーボード、マイク、ポインティングおよび選択デバイス、カメラ、ビデオカード、ディスプレイ、ディスク555、ネットワークデバイス550などであってもよい。入力/出力ポート545は、たとえば、シリアルポート、パラレルポート、およびUSBポートを含んでいてもよい。
【0071】
コンピュータ515はネットワーク環境で動作可能であり、このため、I/Oインターフェイス540および/またはI/Oポート545を介してネットワークデバイス550に接続されてもよい。ネットワークデバイス550を通して、コンピュータ515はネットワークと対話してもよい。ネットワークを通して、コンピュータ515は、リモートコンピュータに論理的に接続されてもよい。コンピュータ515が対話し得るネットワークは、LAN、WAN、および他のネットワークを含むものの、それらに限定されない。
【0072】
図6に示すように、例示的なコンピューティングデバイス600は、バス625によって動作可能に接続されたプロセッサ602とメモリ635と入力/出力ポート645とを含むコンピュータ615であってもよい。一例では、コンピュータ615は、ここに説明されるような、ウェブサイトコードを公開する前のそのようなウェブサイトコードの真正性の検証を容易にするように構成されたハッシュ検証モジュール160およびコンテンツ検証モジュール170のためのロジックを含んでいてもよい。別の例では、当該ロジックは、ハードウェア、命令が格納された非一時的コンピュータ読取可能媒体、ファームウェア、および/またはそれらの組合せで実現されてもよい。ハッシュ検証モジュール160およびコンテンツ検証モジュール170のためのロジックはバス625に取り付けられたハードウェアコンポーネントとして示されているが、他の実施形態では、当該ロジックは、プロセッサ602において実現されてもよく、メモリ635に格納されてもよく、または、ディスク655もしくは他の非一時的コンピュータ読取可能媒体605に格納されてもよいということが理解されるべきである。
【0073】
一実施形態では、ロジックまたはコンピュータ615は、上述のアクションを行なうための手段(たとえば、構造:ハードウェア、非一時的コンピュータ読取可能媒体、ファームウェア)である。いくつかの実施形態では、コンピューティングデバイスは、クラウドコンピューティングシステムで動作するサーバ、ソフトウェア・アズ・ア・サービス(SaaS)アーキテクチャで構成されたサーバ、スマートフォン、ラップトップ、タブレットコンピューティングデバイスなどであってもよい。
【0074】
これらの手段は、たとえば、ここに説明されるようにウェブサイトコードをハッシュおよび/または暗号化するようにプログラムされたASICとして実現されてもよい。これらの手段はまた、メモリ635に一時的に格納され、その後プロセッサ602によって実行されるデータ610としてコンピュータ615に提示される、格納されたコンピュータ実行可能命令として実現されてもよい。
【0075】
ロジックはまた、ここに説明されるウェブサイト真正性確認方法を行なうための手段(たとえば、ハードウェア、実行可能命令を格納する非一時的コンピュータ読取可能媒体、ファームウェア)を提供してもよい。
【0076】
コンピュータ615の例示的な構成を概して説明すると、プロセッサ602は、デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを含む多種多様のプロセッサであってもよい。メモリ635は、揮発性メモリをおよび/または不揮発性メモリを含んでいてもよい。不揮発性メモリは、たとえば、ROM、PROMなどを含んでいてもよい。揮発性メモリは、たとえば、RAM、SRAM、DRAMなどを含んでいてもよい。
【0077】
ストレージディスク655は、たとえば、入力/出力(I/O)インターフェイス(たとえばカード、デバイス)640、I/Oコントローラ630、および入力/出力ポート645を介して、コンピュータ615に動作可能に接続されてもよい。ディスク655は、たとえば、磁気ディスクドライブ、ソリッドステートディスクドライブ、フロッピーディスクドライブ、テープドライブ、ジップドライブ、フラッシュメモリカード、メモリスティックなどであってもよい。さらに、ディスク655は、CD-ROMドライブ、CD-Rドライブ、CD-RWドライブ、DVD ROMなどであってもよい。メモリ635は、たとえば、プロセスおよび/またはデータ610を格納することができる。ディスク655および/またはメモリ635は、コンピュータ615のリソースを制御して割り当てるオペレーティングシステムを格納することができる。
【0078】
コンピュータ615は、I/Oインターフェイス640および入力/出力ポート645を介して入力/出力(I/O)デバイスと対話してもよい。入力/出力デバイスは、たとえば、キーボード、マイク、ポインティングおよび選択デバイス、カメラ、ビデオカード、ディスプレイ、ディスク655、ネットワークデバイス650などであってもよい。入力/出力ポート645は、たとえば、シリアルポート、パラレルポート、およびUSBポートを含んでいてもよい。
【0079】
コンピュータ615はネットワーク環境で動作可能であり、このため、I/Oインターフェイス640および/またはI/Oポート645を介してネットワークデバイス650に接続されてもよい。ネットワークデバイス650を通して、コンピュータ615はネットワークと対話してもよい。ネットワークを通して、コンピュータ615は、リモートコンピュータに論理的に接続されてもよい。コンピュータ615が対話し得るネットワークは、LAN、WAN、および他のネットワークを含むものの、それらに限定されない。
【0080】
定義および他の実施形態
別の実施形態では、上述の方法および/またはそれらの同等物は、コンピュータ実行可能命令を用いて実現されてもよい。このため、一実施形態では、マシンによって実行されると当該マシン(および/または関連付けられたコンポーネント)に方法を行なわせるアルゴリズム/実行可能アプリケーションのコンピュータ実行可能命令が格納された、非一時的コンピュータ読取可能/記憶媒体が構成される。例示的なマシンは、プロセッサ、コンピュータ、クラウドコンピューティングシステムで動作するサーバ、ソフトウェア・アズ・ア・サービス(SaaS)アーキテクチャで構成されたサーバ、スマートフォンなど)を含むものの、それらに限定されない。一実施形態では、コンピューティングデバイスは、開示された方法のうちのいずれかを行なうように構成された1つ以上の実行可能アルゴリズムを用いて実現される。
【0081】
1つ以上の実施形態では、開示された方法またはそれらの同等物は、方法を行なうように構成されたコンピュータハードウェアか、または、非一時的コンピュータ読取可能媒体に格納されたモジュールで具現化されたコンピュータ命令のいずれかによって行なわれ、命令は、コンピューティングデバイスの少なくともプロセッサによって実行されると方法を行なうように構成された実行可能アルゴリズムとして構成される。
【0082】
説明を簡潔にするために、図面の図示された方法論はアルゴリズムの一連のブロックとして示され説明されているが、これらの方法論はブロックの順序によって限定されないということが理解されるべきである。ブロックの一部は、示され説明されたものとは異なる順序で、および/または、他のブロックと同時に生じ得る。また、例示的な方法論を実現するために、図示されたブロックがすべて使用されなくてもよい。ブロックは組合されてもよく、または、複数のアクション/コンポーネントに分離されてもよい。さらに、追加のおよび/または代替的な方法論が、ブロックに図示されていない追加のアクションを採用してもよい。
【0083】
下記は、ここに採用された、選択された用語の定義を含む。これらの定義は、用語の範囲に該当し、実現のために使用され得る、構成要素のさまざまな例および/または形態を含む。これらの例は、限定的であるよう意図されてはいない。用語の単数形および複数形は双方とも、これらの定義の範囲内にあってもよい。
【0084】
「一実施形態」、「実施形態」、「一例」、「例」などへの言及は、そのように記載された実施形態または例が特定の機能、構造、特徴、特性、要素、または制限を含み得るものの、すべての実施形態または例が必ずしもその特定の機能、構造、特徴、特性、要素、または制限を含むとは限らないということを示す。さらに、「一実施形態では」という句の反復使用は、必ずしも同じ実施形態を指すとは限らないものの、同じ実施形態を指す場合もある。
【0085】
ASIC(application specific integrated circuit):特定用途向け集積回路。
CD(compact disk):コンパクトディスク。
【0086】
CD-R(CD recordable):記録可能CD。
CD-RW(CD rewriteable):書換可能CD。
【0087】
DVD:デジタルバーサタイルディスク(digital versatile disk)および/またはデジタルビデオティスク(digital video disk)。
【0088】
HTTP(hypertext transfer protocol):ハイパーテキスト転送プロトコル。
LAN(local area network):ローカルエリアネットワーク。
【0089】
PCI(peripheral component interconnect):ペリフェラルコンポーネントインターコネクト。
【0090】
PCIE(PCI express):PCIエクスプレス。
RAM(random access memory):ランダムアクセスメモリ。
【0091】
DRAM(dynamic RAM):ダイナミックRAM。
SRAM(synchronous RAM):同期RAM。
【0092】
ROM(read only memory):読出専用メモリ。
PROM(programmable ROM):プログラマブルROM。
【0093】
EPROM(erasable PROM):消去可能PROM。
EEPROM(electrically erasable PROM):電気的消去可能PROM。
【0094】
SQL(structured query language):構造化問合せ言語。
OQL(object query language):オブジェクト問合せ言語。
【0095】
USB(universal serial bus):ユニバーサルシリアルバス。
XML(extensible markup language):拡張マークアップ言語。
【0096】
WAN(wide area network):ワイドエリアネットワーク。
ここに使用されるような「データ構造」とは、メモリ、ストレージデバイス、または他のコンピュータ化システムに格納された、コンピューティングシステムにおけるデータの編成である。データ構造は、たとえば、データフィールド、データファイル、データアレイ、データレコード、データベース、データテーブル、グラフ、ツリー、リンクリストなどのうちのいずれか1つであってもよい。データ構造は、多くの他のデータ構造から形成され、それらを含んでいてもよい(たとえば、データベースは多くのデータレコードを含む)。他の実施形態によれば、データ構造の他の例も同様に可能である。
【0097】
ここに使用されるような「コンピュータ読取可能媒体」または「コンピュータ記憶媒体」とは、実行されると開示された機能のうちの1つ以上を行なうように構成された命令および/またはデータを格納する非一時的媒体を指す。いくつかの実施形態では、データは、命令として機能してもよい。コンピュータ読取可能媒体は、不揮発性媒体および揮発性媒体を含むもののそれらに限定されない形態をとってもよい。不揮発性媒体は、たとえば、光ディスク、磁気ディスクなどを含んでいてもよい。揮発性媒体は、たとえば、半導体メモリ、ダイナミックメモリなどを含んでいてもよい。コンピュータ読取可能媒体の一般的な形態は、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス、コンパクトディスク(CD)、他の光学媒体、ランダムアクセスメモリ(RAM)、読出専用メモリ(ROM)、メモリチップまたはカード、メモリスティック、ソリッドステートストレージデバイス(SSD)、フラッシュドライブ、および、コンピュータ、プロセッサまたは他の電子デバイスがともに機能できる他の媒体を含み得るものの、それらに限定されない。各タイプの媒体は、一実施形態における実現のために選択された場合、開示および/または請求された機能のうちの1つ以上を行なうように構成されたアルゴリズムの格納された命令を含んでいてもよい。
【0098】
ここに使用されるような「ロジック」とは、ここに開示されるような機能またはアクションのうちのいずれかを行なうために、ならびに/もしくは、別のロジック、方法および/またはシステムからの機能またはアクションがここに開示されるように行なわれるようにするために、コンピュータまたは電気的ハードウェア、実行可能アプリケーションまたはプログラムモジュールの命令が格納された非一時的媒体、および/またはそれらの組合せを用いて実現されるコンポーネントを表わす。同等のロジックは、ファームウェア、アルゴリズムを用いてプログラムされたマイクロプロセッサ、個別ロジック(たとえばASIC)、少なくとも1つの回路、アナログ回路、デジタル回路、プログラムドロジックデバイス、アルゴリズムの命令を含むメモリデバイスなどを含んでいてもよく、それらのいずれも、開示された機能のうちの1つ以上を行なうように構成されてもよい。一実施形態では、ロジックは、開示された機能のうちの1つ以上を行なうように構成された1つ以上のゲート、ゲートの組合せ、または他の回路部品を含んでいてもよい。複数のロジックが説明される場合、それら複数のロジックを1つのロジックに組み込むことが可能であってもよい。同様に、単一のロジックが説明される場合、その単一のロジックを複数のロジック間で分散させることが可能であってもよい。一実施形態では、これらのロジックのうちの1つ以上は、開示および/または請求された機能を行なうことに関連付けられた対応する構造である。どのタイプのロジックを実現するかについての選択は、所望のシステム条件または仕様に基づいていてもよい。たとえば、より早い速度が考慮事項である場合には、機能を実現するために、ハードウェアが選択されるであろう。より低いコストが考慮事項である場合には、機能を実現するために、格納された命令/実行可能アプリケーションが選択されるであろう。
【0099】
「動作可能な接続」、または、エンティティが「動作可能に接続される」接続とは、信号、物理的通信、および/または論理的通信が送信および/または受信され得る接続である。動作可能な接続は、物理的インターフェイス、電気的インターフェイス、および/またはデータインターフェイスを含んでいてもよい。動作可能な接続は、動作可能な制御を可能にするのに十分なインターフェイスおよび/または接続の異なる組合せを含んでいてもよい。たとえば、2つのエンティティが、直接、または1つ以上の中間エンティティ(たとえば、プロセッサ、オペレーティングシステム、ロジック、非一時的コンピュータ読取可能媒体)を通して互いに信号を通信するために、動作可能に接続され得る。動作可能な接続を作成するために、論理的および/または物理的通信チャネルが使用され得る。
【0100】
ここに使用されるような「ユーザ」とは、1人以上の人間、コンピュータまたは他のデバイス、もしくはそれらの組合せを含むものの、それらに限定されない。
【0101】
開示された実施形態をかなり詳細に例示し説明してきたが、添付された請求の範囲をそのような詳細に制限すること、または何らかのやり方で限定することは、意図されていない。主題のさまざまな局面を説明するために、構成要素または方法論の考えられるすべての組合せを説明することは、もちろん不可能である。したがって、この開示は、示され説明された特定の詳細または例示的な例に限定されない。このため、この開示は、添付された請求の範囲に該当する変更、修正、および変形を包含するよう意図されている。
【0102】
詳細な説明または請求項でまたは「含んでいる」「含む」という用語が使用される限りにおいて、それは、「備える」という用語が請求項で移行句として使用される際に解釈される場合と同様の態様で、包括的であるよう意図されている。
【0103】
詳細な説明または請求項で「または」という用語(たとえば、AまたはB)が使用される限りにおいて、それは、「AまたはBまたはそれら双方」を意味するよう意図されている。出願人が「AまたはBのみであって、それら双方ではない」ことを示すよう意図している場合、「AまたはBのみであって、それら双方ではない」という句が使用されるであろう。このため、ここでの「または」という用語の使用は、排他的使用ではなく、包括的使用である。
図1
図2
図3
図4
図5
図6
【国際調査報告】