JP2020522918A - ドメインポータル上のセッション固定を防ぐためのシステムおよび方法 - Google Patents

ドメインポータル上のセッション固定を防ぐためのシステムおよび方法 Download PDF

Info

Publication number
JP2020522918A
JP2020522918A JP2019563736A JP2019563736A JP2020522918A JP 2020522918 A JP2020522918 A JP 2020522918A JP 2019563736 A JP2019563736 A JP 2019563736A JP 2019563736 A JP2019563736 A JP 2019563736A JP 2020522918 A JP2020522918 A JP 2020522918A
Authority
JP
Japan
Prior art keywords
client device
computing system
request
key
host
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.)
Granted
Application number
JP2019563736A
Other languages
English (en)
Other versions
JP7018455B2 (ja
Inventor
ロイ ウダシン,
ロイ ウダシン,
アーリン アルフ エリングセン,
アーリン アルフ エリングセン,
イタイ デュヴデヴァニ,
イタイ デュヴデヴァニ,
オレン ハフィフ,
オレン ハフィフ,
Original Assignee
フェイスブック,インク.
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 フェイスブック,インク. filed Critical フェイスブック,インク.
Publication of JP2020522918A publication Critical patent/JP2020522918A/ja
Application granted granted Critical
Publication of JP7018455B2 publication Critical patent/JP7018455B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/321Cryptographic 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 involving a third party or a trusted authority
    • H04L9/3213Cryptographic 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 involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • 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/3242Cryptographic 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 keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一実施形態では、方法は、システムが、ユーザのデバイスから要求を受信することを含み、その要求は第1のホストに向けられる。システムは、鍵と、検証トークンと、暗号化された鍵とを生成し得る。システムは、第1のホストからデバイスに、検証トークンと暗号化された鍵とを送信し、(1)検証トークンを、第1のホストに関連付けられたクッキーとして記憶させることと、(2)デバイスに、第2のホストに暗号化された鍵を送信させることとを行うように設定された命令を送信し得る。システムは、デバイスから、暗号化された鍵を含む第2の要求を受信し、暗号化された鍵が前に解読されなかったと決定すると、鍵を取得するために、暗号化された鍵を解読し得る。システムは、第2のホストからデバイスに鍵を送信し、デバイスに、第2のホストに関連付けられたクッキーとして鍵を記憶するように命令し得る。【選択図】図1

Description

本開示は、一般に、セッション固定アタックを防ぐことなど、オンラインセキュリティを改善するためのシステムおよび方法に関する。
ウェブサイトなどのオンラインアプリケーションは、データプランを介したインターネットアクセスが手頃でない(unaffordable)ことがあるロケーションにおいて、人々がインターネットにアクセスすることを可能にし得る。オンラインアプリケーションは、サードパーティコンテンツおよびサービスプロバイダが、本来ならそれらのプロバイダのウェブサイトにアクセスすることが可能でない人々に、コンテンツおよびサービスを提供することを可能にするポータルのように働き得る。サードパーティウェブサイトコンテンツを含む、オンラインアプリケーションを通して提供されるどのコンテンツも、オンラインアプリケーションのドメインの下で提供され得る。
スマートフォン、タブレットコンピュータ、またはラップトップコンピュータなど、モバイルコンピューティングデバイスは、GPS受信機、コンパス、ジャイロスコープ、または加速度計など、そのデバイスのロケーション、方向、または向きを決定するための機能性を含み得る。そのようなデバイスは、BLUETOOTH通信、ニアフィールド通信(NFC)、あるいは赤外線(IR)通信、あるいは無線ローカルエリアネットワーク(WLAN)またはセルラー電話ネットワークとの通信など、無線通信のための機能性をも含み得る。そのようなデバイスは、1つまたは複数のカメラ、スキャナ、タッチスクリーン、マイクロフォン、またはスピーカーをも含み得る。モバイルコンピューティングデバイスは、ゲーム、ウェブブラウザ、またはソーシャルネットワーキングアプリケーションなど、ソフトウェアアプリケーションをも実行し得る。ソーシャルネットワーキングアプリケーションを用いると、ユーザは、自身のソーシャルネットワーク内の他のユーザとつながり、通信し、情報を共有し得る。
本明細書で開示される特定の実施形態は、インターネットアクセスがあまり手頃でないことがあるマーケットにおいて、人々にインターネットサービスへのアクセスを与える、(たとえば、0.fbs.comにおいてホストされる)オンラインポータルに関係する。ポータルを通して、サードパーティウェブサイトは、データ料金を負担することなしに無料で利用可能にされ得る。これらのサードパーティウェブサイトは、0.fbs.com上のサブドメインとして扱われ得る。たとえば、www.3rdparty.comにおいてホストされるサードパーティウェブサイトが、ホストwww−3rdparty−com.0.fbs.comからポータルを通して利用可能にされ得る。サードパーティウェブサイトはサブドメインであるので、より高いレベルのドメイン(たとえば、0.fbs.com)に関連付けられたユーザのクッキーは、たとえば、サードパーティウェブサイト上にホストされたクライアント側スクリプト言語からのアタックに対して脆弱であり得る。
このセキュリティ問題に対処するために、本明細書で開示される特定の実施形態は、サードパーティオリジンとは別個のセキュアオリジン(secure origin)に関連付けられたクッキーとして検証トークンを記憶させ、その結果、検証トークンクッキーは、サードパーティオリジンからホストされる(悪意のあり得る)クライアント側スクリプト記述によってアクセスおよび/または変更され得ない。特定の実施形態では、ユーザは、ポータルとのセッションを確立することを要求し得る。要求されたセッション鍵をユーザに直接提供するのではなく、ポータルのホストは、セキュアオリジンにユーザのブラウザをリダイレクトし得る。セキュアオリジンは、ユーザの要求に応答して、ユーザに検証トークンを提供し得、その検証トークンは、後続の通信中に使用されるセッション鍵の完全性を検証するためにブラウザによって使用され得る。検証トークンは、セキュアオリジンに関連付けられたクッキーとして記憶され得る。セキュアオリジンは、さらに、ナンスとともに、セッション鍵の暗号化されたバージョンをユーザに提供し、サードパーティウェブサイトがポータル上に提供される、リライトオリジン(rewrite origin)またはプロキシに、ユーザのブラウザをリダイレクトし得る。特定の実施形態では、リダイレクションは、セッション鍵の暗号化されたバージョンとナンスとをリライトオリジンに対して提示させ得る。暗号化された鍵が前に解読されていなかったことをナンスが指示する場合、サーバは、暗号化されたセッション鍵を解読し、解読されたセッション鍵を記憶のためにブラウザに返し得る。ナンスのために、暗号化されたセッション鍵は1回のみ解読され得る。ユーザとアタッカー/ハッカーの両者ではなく、ユーザまたはアタッカー/ハッカーのみが、サーバから、解読されたセッション鍵を取得することができるので、ユーザとアタッカー/ハッカーとは、両者とも同じセッション鍵を取得することはできず、それにより、セッション固定を防ぐ。
本明細書で開示される実施形態は例にすぎず、本開示の範囲はそれらに限定されない。特定の実施形態は、上記で開示された実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてを含むか、いくつかを含むか、またはいずれをも含まないことがある。本発明による実施形態は、特に、方法、記憶媒体、システムおよびコンピュータプログラム製品を対象とする添付の特許請求の範囲で開示され、1つの請求項カテゴリー、たとえば、方法において述べられた任意の特徴は、別の請求項カテゴリー、たとえば、システムにおいても請求され得る。添付の特許請求の範囲への依存性または参照は、形式的理由のみで選定される。ただし、前の請求項への意図的な参照(特に複数の依存性)から生じる主題も請求され得、その結果、請求項とその特徴との任意の組合せが、開示され、添付の特許請求の範囲で選定された依存性にかかわらず請求され得る。請求され得る主題は、添付の特許請求の範囲に記載の特徴の組合せだけでなく、特許請求の範囲における特徴の任意の他の組合せも含み、特許請求の範囲において述べられた各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組合せと組み合わせられ得る。さらに、本明細書で説明または示される実施形態および特徴のいずれかは、別個の請求項において、ならびに/あるいは、本明細書で説明もしくは示される任意の実施形態もしくは特徴との、または添付の特許請求の範囲の特徴のいずれかとの任意の組合せで請求され得る。
実施形態では、コンピュータ実装方法が提供され得、本方法は、以下のステップ、すなわち、
コンピューティングシステムによって、ユーザに関連付けられたクライアントデバイスから、コンピューティングシステムに関連付けられた第1のホストに向けられた第1の要求を受信することと、
コンピューティングシステムによって、第1の要求に応答して鍵を生成することと、
コンピューティングシステムによって、鍵に基づいて検証トークンを生成することと、
コンピューティングシステムによって、鍵に基づいて、暗号化された鍵を生成することと、
コンピューティングシステムによって、コンピューティングシステムに関連付けられた第1のホストからクライアントデバイスに、第1の命令と、検証トークンと、暗号化された鍵とを送信することであって、第1の命令は、
第1のホストに関連付けられた第1のクッキーとして検証トークンをクライアントデバイス上に記憶させることと、
クライアントデバイスに、コンピューティングシステムに関連付けられた第2のホストに暗号化された鍵を送信させることと
を行うように設定されることと、
コンピューティングシステムによって、クライアントデバイスから、暗号化された鍵を含む第2の要求を受信することと、
コンピューティングシステムによって、暗号化された鍵が前に解読されなかったと決定すると、鍵を取得するために、受信した暗号化された鍵を解読することと、
コンピューティングシステムによって、第2のホストからクライアントデバイスに、第2の命令と解読から取得された鍵とを送信することであって、第2の命令が、第2のホストに関連付けられた第2のクッキーとして、解読から取得された鍵をクライアントデバイス上に記憶させるように設定されることと、
を含む。
実施形態では、1つまたは複数のコンピュータ可読非一時的記憶媒体が提供され得、記憶媒体は、コンピューティングシステムの1つまたは複数のプロセッサによって実行されたとき、プロセッサ、特にコンピューティングシステムに、本明細書でまたは添付の特許請求の範囲で説明される任意の実施形態に記載の方法のすべてのステップを含む方法を行わせるように動作可能であるソフトウェアを具現する。
実施形態では、コンピューティングシステムが提供され得、コンピューティングシステムは、1つまたは複数のプロセッサと、プロセッサのうちの1つまたは複数に結合され、命令、特にコンピュータ実行可能命令を備える、1つまたは複数のコンピュータ可読非一時的記憶媒体とを備え、命令は、プロセッサのうちの1つまたは複数によって実行されたとき、システムに、本明細書でまたは添付の特許請求の範囲で説明される任意の実施形態に記載の方法のすべてのステップを含む方法を行わせるように動作可能である。
実施形態では、本方法は、
コンピューティングシステムによって、クライアントデバイスから前の要求を受信することであって、前の要求は、コンピューティングシステムに関連付けられた第3のホストに向けられ、要求が受信される前に受信されることと、
コンピューティングシステムによって、前の要求に応答して、クライアントデバイスにリダイレクション命令を送信することであって、クライアントデバイスに、第1のホストに第1の要求を送らせるように設定されるリダイレクション命令を送信することとを含み得る。
実施形態では、本方法は、
コンピューティングシステムによって、ナンスを生成することと、
コンピューティングシステムによって、クライアントデバイスにナンスを送信することと
をさらに含み得、
第1の命令は、クライアントデバイスに、コンピューティングシステムに関連付けられた第2のホストに暗号化された鍵とともにナンスを送信させるように設定され、
暗号化された鍵が前に解読されなかったと決定することは、ナンスに基づく。
実施形態では、本方法は、
コンピューティングシステムによって、第2のユーザに関連付けられた第2のクライアントデバイスから、暗号化された鍵とナンスとを含む第3の要求を受信することと、
コンピューティングシステムによって、(1)ナンスが前に使用された、または(2)ナンスが、暗号化された鍵に結びつけられていない、と決定することと、
コンピューティングシステムによって、第3の要求を拒否することと
をさらに含み得る。
本方法の実施形態では、第1のクッキーは、クライアント側スクリプトによってアクセス可能であるように設定され得、第2のクッキーは、クライアント側スクリプトによってアクセス不可能であるように設定され得る。
本方法の実施形態では、第1のホストと第2のホストとは異なり得る。
本方法の実施形態では、第2のホストは、サードパーティによってホストされたウェブページへのアクセスを与えるように設定され得る。
実施形態では、本方法は、
コンピューティングシステムによって、クライアントデバイスから、第2のクッキーとして記憶された鍵を含む第3の要求を受信することと、
コンピューティングシステムによって、第3の要求とともに受信された鍵に基づいて、第2の検証トークンを生成することと、
コンピューティングシステムによって、第3の要求に応答して、クライアントデバイスにウェブページを送信することであって、ウェブページが、第2の検証トークンと命令とを含み、命令が、クライアントデバイスに、
第2の検証トークンを、第1のクッキーとして記憶された検証トークンと比較することと、
比較に基づいて、ウェブページをレンダリングすべきかどうかを決定することと
を行わせるように設定されることと
をさらに含み得る。
ユーザがサーバとのセッションをセキュアに確立する例示的な通信シーケンス図である。 サーバとのセッションをセキュアに確立するための例示的な方法を示す図である。 例示的なネットワーク環境を示す図である。 例示的なコンピュータシステムを示す図である。
特定の実施形態では、1つまたは複数のウェブサーバを使用して提供されるポータルサービスなど、オンラインアプリケーションは、ユーザがサードパーティウェブサイトにアクセスすることを可能にし得る。特定の実施形態では、サードパーティウェブサイトへのアクセスは、ポータルのドメインのサブドメインを通してポータルによって与えられ得る。特定の実施形態では、サードパーティウェブサイトをホストするために使用されるポータルのサブドメインは、サードパーティウェブサイトのアドレスに基づいて生成され得る。一例として、ポータルサービスプロバイダがアドレス0.fbs.comにおいてホストされ、サードパーティウェブサイトがwww.3rdparty.comにおいてホストされる場合、ポータルは、アドレスwww−3rdparty−com.0.fbs.comを通してサードパーティウェブサイトを利用可能にし得る。この例では、サードパーティコンテンツへのアクセスは、ポータルのサブドメインを通して与えられる。
特定の実施形態では、ユーザがポータルと通信するとき、ポータルは、ユーザおよび/またはユーザとポータルとの間のセッションを識別するために、セッション鍵(たとえば、ICK)を自動的に作成し得る。セッション鍵は、各ユーザについて一意であり得、ユーザのクライアントデバイス上のクッキーに(たとえば、クライアントデバイス上のブラウザに)記憶され得る。クライアントデバイスは、スマートフォン、デスクトップまたはラップトップコンピュータ、タブレット、ウェアラブルデバイス(たとえば、スマートウォッチ)、あるいはバーチャルリアリティヘッドセットなど、任意の好適なコンピューティングデバイスであり得る。記憶されたクッキーは、ユーザデバイスとポータルとの間の通信において、その2つの間のセッションを識別するために使用され得る。特定の実施形態では、そのクッキー内の情報が、ポータルのサーバ上のクッキージャー(cookie jar)に関連付けられ得る。サーバ上のクッキージャーは、ユーザがポータルを通して対話するサードパーティウェブサイトのクッキーを記憶するために使用され得る。特定の実施形態では、セッション鍵は、サーバ上の対応するクッキージャーにアクセスし、および/またはそのクッキージャーを解読するために使用され得る。
特定の実施形態では、アタッカーとユーザとが、ポータルと通信するために同じICKを使用する場合、アタッカーはセッション固定を達成し得る。ICKは、(正当なユーザまたはアタッカーであり得る)通信エンティティが、対応するクッキージャーにアクセスすることを可能にするので、アタッカーとユーザの両者は、アタッカーとユーザが両者とも同じICKを使用してポータルと通信する場合、同じクッキージャーにアクセスし得る。したがって、たとえば、サーバ側クッキージャーが、ユーザとユーザの電子メールサーバとの間のセッションクッキーを含んでいる場合、ユーザのICKをもつアタッカーは、そのアタッカーが電子メールサーバのセッションクッキーへのアクセスをも有するので、そのセッションに関与することが可能であろう。これを達成するために、アタッカーは、たとえば、(1)ビクティム(victim)のICKを盗むこと、または(2)ビクティムがアタッカーのICKを使用してサーバと通信するように、ビクティムのシステム上にアタッカー自身のICKを埋め込むこと、のいずれかを行い得る。
特定の実施形態では、ICKが、ポータルを通してサードパーティウェブページによってホストされた悪意のあるクライアント側スクリプトにとってアクセス可能および/または変更可能であるクッキーとして記憶された場合、ICKはアタックに対して脆弱であり得る。たとえば、これは、ICKが、対応するサードパーティウェブページへのアクセスを与えるためにポータルによって割り振られたサブドメイン(たとえば、www−3rdparty−com.0.fbs.com)の親ドメイン(たとえば、0.fbs.com)に関連付けられたクッキーとして記憶された場合に、発生し得る。悪意のあるサードパーティウェブサイトは、クライアントデバイス上で実行されたとき、アクセス可能クライアント側クッキーを操作し得るクライアント側スクリプトを含んでいることがある。したがって、ICKが、親ドメインに関連付けられたクッキーとして記憶された場合、ICKは、ブラウザが、一般に、クッキーをセットするために使用される所与のドメインとそのサブドメインのうちのいずれかとにとってクッキーをアクセス可能にするので、脆弱であり得る。したがって、クッキーが0.fbs.comに関連付けられた場合、そのクッキーは、サードパーティウェブページが0.fbs.comのサブドメインからポータルを通して提供されるとき、(たとえば、JavaScriptを介して)そのページによってアクセスされ得る。
特定の実施形態では、セッション固定は、ポータルからの各通信応答が、要求において提供されたICKから導出された検証トークン、ICKTを含むことを必要とすることによって防がれ得る。応答のICKTは、次いで、最初に送信されたICKの完全性を保証するために、クライアント側で、セキュアに記憶された検証トークンICKTと比較され得る。一例として、ポータルを介してサードパーティウェブページを要求しているユーザは、ローカルに記憶されたICKをポータルのサーバに提示し得、ポータルのサーバは、次いで、導出f(ick)を使用してICKTを生成し、返されるウェブページ内にそのICKTを埋め込み得る。返されたウェブページをロードするとき、受信ICKTは、前にセキュアに記憶されたICKTと比較され得る。不一致は、要求中で送られたICKが損なわれたことを意味する。特定の実施形態では、ICKTは、一方向性関数f(ick)(たとえば、HMAC)を使用して元のICKから導出され得る。特定の実施形態では、ICKTは、ユーザが最初にログインを要求するときなど、ICKが生成されるとき、生成され得る。ICKとは異なり、特定の実施形態におけるICKTは、localStorageになど、アタッカーによって到達不可能であるロケーションにあるクライアントデバイス上にセキュアに記憶され得る。クッキーとは異なり、同一オリジンポリシー(same−origin policy)に従うlocalStorageは、オリジンによって分離され(各オリジンはそれ自体の別個のlocalStorageを有する)、これは、あるオリジンにおけるJavaScriptが、別のオリジンのlocalStorageにアクセスすることができないことを意味する。一例として、サードパーティウェブサイトがリライトオリジンを通してホストされ得るポータルのコンテキストでは、サードパーティリライトオリジン(たとえば、http://3rdparty.rewrite.0.fbs.com)を通してホストされた潜在的アタッカーのページは、ICKTのオリジン(たとえば、http://0.fbs.com)とは異なり得る。したがって、アタッカーのウェブページ上にホストされたスクリプトは、ICKTが、異なるオリジンのlocalStorageにセキュアに記憶されるので、ICKTにアクセスすることが可能でないであろう。ICKTをセキュアに記憶するlocalStorageの使用に関して、特定の実施形態は、その内容全体が参照により本明細書に組み込まれる、「SECURE CONTENT DELIVERY OVER A DOMAIN PORTAL」と題し、2017年2月6日に出願された、米国特許出願第15/425,974号において開示された、1つまたは複数のシステム、構成要素、要素、機能、方法、動作、またはステップを利用し得る。
ただし、すべてのウェブブラウザが、localStorageをサポートするとは限らない(たとえば、Opera Mini)。特定の実施形態では、セキュアなストレージとしてlocalStorageを使用する代わりに、ICKTは、ICKTがアタッカーにとってアクセス不可能であり、ICKTが発行されるときに固定され得ないように、本明細書で説明される実施形態による様式でクッキーとして記憶され得る。高レベルにおいて、ICKとICKTとは、異なるホストに関連付けられたクッキーとして記憶され得る。これを達成するために、特定の実施形態では、ICKとICKTとは、リダイレクト機構を介して異なるホストからクライアントデバイスに別々に送信され得る。たとえば、ICKは、ホストrewrite.i.orgに関連付けられ得、ICKTは、異なるホストsecure.0.fbs.com(またはwww.0.fbs.com)に関連付けられ得る。rewrite.i.orgは、secure.0.fbs.comと祖先ドメインを共有しないので、たとえば、www−3rdparty−com.rewrite.i.orgに関連付けられたJavaScriptは、secure.0.fbs.comに関連付けられたICKTクッキーにアクセスすることができない。
特定の実施形態では、クライアントへのICKの送信は、ICKTの送信から分離され得る。特定の実施形態では、ICK鍵およびICKT検証トークンは、同時に生成され得、いずれもサーバによって残存され得ない。ICKは、ICKTとともに、同時に同じホストからクライアントデバイスに送信され得るが、アタッカーが、ICKTおよび関連付けられたICKをインターセプトすることができることが可能であり得る。アタッカーが、ICKTおよび関連付けられたICKをインターセプトすることができる場合、ユーザとアタッカーの両者は、ICKに関連付けられたセッションを共有し、関連付けられたセッションにアクセスすることが可能であろう。これを防ぐために、サーバは、ICKをICKTと直接送らないことがある。特定の実施形態では、サーバは、代わりに、本明細書ではEICKと呼ばれる、暗号化されたICKをユーザに送信し得る。特定の実施形態では、EICKは、サーバのみに知られている秘密暗号化鍵を用いた二方向暗号化関数を使用して暗号化され得る。EICKを受信すると、クライアントデバイスは、EICKを解読してICKを取得するようにサーバに要求し得る。アタッカーが、同様に、同じEICKを解読するようにサーバに要求するのを防ぐために、特定の実施形態では、システムは、そのような解読が許可される回数を制限する(たとえば1回)ために、EICKをナンスに結びつけ得る。したがって、アタッカーが、EICKと、ユーザが同じく有し得るナンスとをインターセプトすることが可能な場合でも、ナンスにより、当事者のうちの一方のみ(すなわち、アタッカーとユーザの両者でなく、アタッカーまたはユーザ)が、EICKを解読するようにサーバに要求することを成功させることが可能であろう。このセキュリティ対策は、アタッカーとユーザとが、両者とも同じICK/ICKTを使用するのを防ぎ、それにより、セッション固定を防ぐであろう。
図1は、本明細書で説明される特定の実施形態による、ユーザがポータルとのセッションを確立する通信シーケンス図の一例を示す。示されている例は、ユーザ100と、ポータル101(たとえば、0.freebasics.com)、セキュアオリジン102(たとえば、www.0.freebasics.com)、およびリライトオリジン103(たとえば、rewrite.i.org)との間の通信を示す。上記で説明されたように、セキュアオリジン102は、セキュアオリジン102のクッキーが、リライトオリジン103を通して提供されるサードパーティウェブページ中のクライアント側スクリプトにとってアクセス可能でないという点でセキュアである。特定の実施形態では、セキュアオリジン102(たとえば、www.0.fbs.comまたはsecure.0.fbs.com)は、非公開サフィックスリストホストをリライトオリジン(たとえば、rewrite.i.org)と共有しないことがある。上記で説明されたように、リライトオリジン103は、サードパーティウェブサイトへのユーザアクセスを与えるように設定される。特定の実施形態では、ポータル101、セキュアオリジン102、およびリライトオリジン103に関連付けられた(1つまたは複数の)サーバが、共通エンティティによって制御される。
ステップ110において、特定の実施形態におけるユーザ100は、ユーザのウェブブラウザ、またはポータルに関連付けられたリモートサーバと通信することが可能な任意の他のタイプのアプリケーションを通して、ポータルとのログインプロシージャを開始し得る。特定の実施形態では、初期要求は、HTTP GET要求を含み得る。ユーザは、ウエルカムスクリーン、ログインスクリーンを示され、および/またはポータル101のサービス利用規約を受け入れるように求められ得る。
ステップ120において、ポータル101は、セキュアオリジン102にユーザのブラウザ100をリダイレクトする、(たとえば、ステータスコード302を伴うHTTP応答を使用する)リダイレクション命令で応答し得る。
ステップ125において、ユーザのブラウザ100は、リダイレクション命令に応じて、セキュアオリジン102に要求(たとえば、HTTP GET)を送り得る。特定の実施形態では、要求に応答して、セキュアオリジン102に関連付けられたサーバは、ICK鍵を生成し得る。特定の実施形態では、ICK鍵は、ユーザがポータルとのセッションを確立することを要求するたびに新たに生成されるランダム鍵または擬似ランダム鍵であり得る。特定の実施形態では、ICK鍵は、ICK鍵に関連付けられたクッキージャーにコールドアクセスする(cold−access)ことに対するユーザプライバシーを可能にするために、サーバによって残存されないことがある。ICK鍵生成は、ICK鍵生成の完全性をさらに保証するために、要求側によって提供されるものによって影響を及ぼされないことを諒解されたい。特定の実施形態では、ICK鍵が生成されると、サーバは、ICK鍵に関連付けられる伝送中の鍵をも生成し得る。特定の実施形態では、EICKと呼ばれることがある伝送中の鍵は、EICK=E(SECRET,ICK)であるような暗号化関数を使用してICK鍵を暗号化することによって生成され得、ここで、SECRETはサーバ側秘密鍵であり、暗号化関数E(K,M)は、鍵Kの下でのメッセージMの対称暗号化を表す。特定の実施形態では、サーバは、ナンスNをも生成し得、ナンスNは、EICKが1回のみ解読されることを保証するために、後続の通信中にサーバに1回のみ提示され得る。特定の実施形態では、ナンスNは、ナンスNの検証が、関連付けられたEICKの提示に依存するように、EICKに結びつけられ得る(たとえば、ナンスの検証は、異なるEICKがそのナンスとともに提示された場合は失敗し得る)。さらに、特定の実施形態では、サーバは、上記で説明されたように、検証トークンICKTを生成し得る。ICKTトークンは、たとえば、ICKがICKTから取得され得ないように、秘密鍵を用いたHMAC関数、または任意の他の一方向性関数を使用して、ICKから導出され得る。
ステップ130において、サーバは、セキュアオリジン102からユーザ100に応答を送り得る。応答は、ユーザのブラウザ100に、たとえば、セキュアオリジン103.1に関連付けられたJavaScriptアクセス可能クライアント側クッキーとして、生成されたICKTを記憶させる命令を含み得る。セキュアオリジン(たとえば、secure.0.fbs.comまたはwww.0.fbs.com)と、リライトオリジン(たとえば、rewrite.i.org)とは、非公開サフィックスリストホストを共有しないので、リライトオリジンを通してホストされた(悪意のあるコードを含んでいることがある)サイトは、セキュアオリジンに関連付けられたクッキーに影響を及ぼすことができないか、そのクッキーにアクセスすることができないか、またはそのクッキーをシャドーイングする(shadow)ことができない。アタッカーは、クッキーフラッディング(cookie−flooding)を使用してクッキーをパージすることが可能であり得るが、これは、新しいICKおよびICKTが取得されることを引き置こすであろう。特定の実施形態では、ICKTクッキーは、HttpOnlyフラグをセットされず、これは、ICKTクッキーをクライアント側スクリプト(たとえば、セキュアオリジン102によってホストされるもの)にとってアクセス可能にし、その結果、ICKTは、ICKの完全性を確認するためにクライアント側スクリプトによって使用され得る。特定の実施形態では、サーバは、セキュアオリジン102を通してユーザ100にEICKおよびナンスNをも送り得る。EICKおよびナンスNはアタックに対して脆弱であり得るので、実際のICKではなく暗号化されたEICKを送ることは、この段階でICKがアタッカーにあらわにされるのを防ぐことを諒解されたい。
ステップ140において、ユーザ100は、リライトオリジン103にEICKおよびナンスNを送り、リライトオリジン103にEICKを解読するように要求し得る。たとえば、EICKおよびナンスNは、リライトオリジン103に関連付けられたURLのクエリパラメータとして送信され得る。要求を受信すると、リライトオリジン103に関連付けられたサーバは、ナンスNに基づいて、要求が有効であるかどうかを検証し得る。たとえば、サーバは、ナンスNが前にすでに使用されたかどうかを検査し得る。ナンスがすでに使用された場合、サーバは、要求を阻止し、コード403を伴うHTTP禁止応答を発行し得る。サーバはまた、ナンスNが所与のEICKに結びつけられているかどうかを検査し、ナンスNとEICKとが互いに結びつけられていない場合は要求を阻止し得る。このプロセスは、所与のEICKがサーバによって1回のみ解読され得ることを保証し、これは、1人の要求元当事者のみが、サーバから、解読されたICKを取得することができることを保証する。ナンスNがEICKに結びつけられており、ナンスNがこれまで使用されていないとサーバが決定した場合、サーバは、ナンスを使用されるものとしてマークし、たとえば、ICK=D(SECRET,EICK)を使用して、EICKからICKを復元し得、ここで、SECRETは、上記で説明された秘密暗号化鍵を表し、D(K,M)は、鍵Kの下でのメッセージMの対称解読を表す。
ステップ150において、リライトオリジン103に関連付けられたサーバは、ICKとともに応答をユーザ100に送り得る。特定の実施形態では、応答は、ユーザのブラウザ100に、リライトオリジン103に関連付けられたクッキーとしてICKを記憶させる命令を含み得る。ICKは、ICKがクライアント側スクリプトによってアクセスされ得ないように、HttpOnlyクッキーとして記憶され得る。特定の実施形態では、サーバは、ユーザのブラウザ100にポータル101との通信を再開させるリダイレクション命令(たとえば、コード302を伴うHTTP応答)をもユーザ100に送り得る(たとえば、ステップ160)。
異なるオリジンからのICKTとICKとについて要求するためにユーザ100をリダイレクトすることによって、特定の実施形態では、ICKTクッキーとICKクッキーとは、異なるホストに関連付けられる(たとえば、ICKTはセキュアオリジン102に関連付けられ、ICKはリライトオリジン103に関連付けられる)。アタッカーが、リライトオリジン103に関連付けられたICKを制御し得る場合でも、アタッカーは、ICKがICKTに一致しないので、ICK固定ベクトルとしてICKを使用することが可能でないであろう。たとえば、(たとえば、ユーザのEICKおよびNを盗むことによって、またはユーザにアタッカーのEICKおよびNを使用させることによって)アタッカーがEICKおよびナンスNを制御することができると仮定する。アタッカーが対応するICKを知ることを望む場合、アタッカーは、(a)サーバにEICKを解読するように求めることなしに直接ICKを取得するために、EICKの暗号化を破る(これは可能性が低い)こと、または(b)サーバにEICKを解読するように求めること、のいずれかを行わなければならない。サーバが(ナンスNにより)EICKを1回のみ解読するので、アタッカーとユーザの両者でなく、アタッカーまたはユーザのいずれかがICKを得ることができる。たとえば、アタッカーが、最初に、(たとえば、ユーザのEICKまたはアタッカーのEICKのいずれかを)解読するようにサーバに求める場合、サーバは、ユーザの後続の要求を拒否する。一方、ユーザが最初に解読し、アタッカーがその後解読することを試みる場合、サーバは、アタッカーの後続の要求を拒否する。したがって、アタッカーは、アタッカーとユーザの両者によって同じICKが使用されることを必要とする、セッション固定を達成することが可能でないであろう。さらに、まったくの偶然によって、アタッカーとユーザの両者について同じICKがランダムに生成されることは極めて可能性が低い。
図2は、サーバとのセッションをセキュアに確立するための例示的な方法200を示す。この方法は、ステップ210において始まり得、コンピューティングシステムが、ユーザに関連付けられたクライアントデバイスから第1の要求を受信し得る。第1の要求は、コンピューティングシステムに関連付けられた第1のホスト(たとえば、セキュアオリジン)に向けられ得る。ステップ220において、システムは、第1の要求に応答して、鍵と、鍵に基づく検証トークンと、鍵に基づく暗号化された鍵とを生成し得る。ステップ230において、システムは、コンピューティングシステムに関連付けられた第1のホストからクライアントデバイスに、第1の命令と、検証トークンと、暗号化された鍵とを送信し得る。第1の命令は、クライアントデバイス上に第1のクッキーとして検証トークンを記憶させるように設定され得、第1のクッキーは第1のホストに関連付けられる。第1の命令は、クライアントデバイスに、コンピューティングシステムに関連付けられた第2のホスト(たとえば、リライトオリジン)に暗号化された鍵を送信させるようにも設定され得る。ステップ240において、システムは、クライアントデバイスから、暗号化された鍵を含む第2の要求を受信し得る。ステップ250において、システムは、暗号化された鍵が前に解読されたかどうかを決定し得る。ステップ260において、暗号化された鍵が前に解読されなかったと決定すると、システムは、鍵を取得するために、受信した暗号化された鍵を解読し得る。次いで、ステップ270において、システムは、第2のホストからクライアントデバイスに、第2の命令と解読から取得された鍵とを送信し得る。第2の命令は、クライアントデバイス上に第2のクッキーとして、解読から取得された鍵を記憶させるように設定され得、第2のクッキーは第2のホストに関連付けられる。代わりに、ステップ250において、鍵が前に解読されたとシステムが決定した場合、ステップ280において、システムはユーザの要求を阻止し得る。特定の実施形態は、適切な場合、図2の方法の1つまたは複数のステップを繰り返し得る。本開示は、図2の方法の特定のステップを、特定の順序で行われるものとして説明し、示すが、本開示は、図2の方法の任意の好適なステップが任意の好適な順序で行われることを企図する。その上、本開示は、図2の方法の特定のステップを含む、サーバとのセッションをセキュアに確立するための例示的な方法を説明し、示すが、本開示は、適切な場合、図2の方法のステップのすべてを含むか、いくつかを含むか、またはいずれも含まないことがある、任意の好適なステップを含む、サーバとのセッションをセキュアに確立するための任意の好適な方法を企図する。さらに、本開示は、図2の方法の特定のステップを行う特定の構成要素、デバイス、またはシステムを説明し、示すが、本開示は、図2の方法の任意の好適なステップを行う任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
図3は、ソーシャルネットワーキングシステムに関連付けられた例示的なネットワーク環境300を示す。ネットワーク環境300は、ネットワーク310によって互いに接続された、クライアントシステム330と、ソーシャルネットワーキングシステム360と、サードパーティシステム370とを含む。図3は、クライアントシステム330、ソーシャルネットワーキングシステム360、サードパーティシステム370、およびネットワーク310の特定の構成を示すが、本開示は、クライアントシステム330、ソーシャルネットワーキングシステム360、サードパーティシステム370、およびネットワーク310の任意の好適な構成を企図する。限定としてではなく一例として、クライアントシステム330、ソーシャルネットワーキングシステム360、およびサードパーティシステム370のうちの2つまたはそれ以上は、ネットワーク310をバイパスして、直接互いに接続され得る。別の例として、クライアントシステム330、ソーシャルネットワーキングシステム360、およびサードパーティシステム370のうちの2つまたはそれ以上は、全体的にまたは部分的に、物理的にまたは論理的に互いとコロケートされ得る。その上、図3は、特定の数のクライアントシステム330、ソーシャルネットワーキングシステム360、サードパーティシステム370、およびネットワーク310を示すが、本開示は、任意の好適な数のクライアントシステム330、ソーシャルネットワーキングシステム360、サードパーティシステム370、およびネットワーク310を企図する。限定としてではなく一例として、ネットワーク環境300は、複数のクライアントシステム330と、ソーシャルネットワーキングシステム360と、サードパーティシステム370と、ネットワーク310とを含み得る。
本開示は任意の好適なネットワーク310を企図する。限定としてではなく一例として、ネットワーク310の1つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、無線LAN(WLAN)、ワイドエリアネットワーク(WAN)、無線WAN(WWAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、セルラー電話ネットワーク、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。ネットワーク310は1つまたは複数のネットワーク310を含み得る。
リンク350は、クライアントシステム330と、ソーシャルネットワーキングシステム360と、サードパーティシステム370とを、通信ネットワーク310にまたは互いに接続し得る。本開示は任意の好適なリンク350を企図する。特定の実施形態では、1つまたは複数のリンク350は、1つまたは複数の、(たとえば、デジタル加入者回線(DSL)またはデータオーバーケーブルサービスインターフェース仕様(DOCSIS)などの)有線リンク、(たとえば、Wi−Fiまたはワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX)などの)無線リンク、または(たとえば、同期光ネットワーク(SONET)または同期デジタルハイアラーキ(SDH)などの)光リンクを含む。特定の実施形態では、1つまたは複数のリンク350は、各々、アドホックネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部分、PSTNの一部分、セルラー技術ベースネットワーク、衛星通信技術ベースネットワーク、別のリンク350、または2つまたはそれ以上のそのようなリンク350の組合せを含む。リンク350は、必ずしもネットワーク環境300全体にわたって同じである必要はない。1つまたは複数の第1のリンク350は、1つまたは複数の第2のリンク350とは1つまたは複数の点で異なり得る。
特定の実施形態では、クライアントシステム330は、ハードウェア、ソフトウェア、または埋込み論理構成要素、または2つまたはそれ以上のそのような構成要素の組合せを含み、クライアントシステム330によって実装またはサポートされる適切な機能性を行うことが可能な、電子デバイスであり得る。限定としてではなく一例として、クライアントシステム330は、デスクトップコンピュータ、ノートブックまたはラップトップコンピュータ、ネットブック、タブレットコンピュータ、電子ブックリーダー、GPSデバイス、カメラ、携帯情報端末(PDA)、ハンドヘルド電子デバイス、セルラー電話、スマートフォン、拡張/仮想現実デバイス、他の好適な電子デバイス、あるいはそれらの任意の好適な組合せなど、コンピュータシステムを含み得る。本開示は任意の好適なクライアントシステム330を企図する。クライアントシステム330は、クライアントシステム330におけるネットワークユーザが、ネットワーク310にアクセスすることを可能にし得る。クライアントシステム330は、クライアントシステム330のユーザが、他のクライアントシステム330における他のユーザと通信することを可能にし得る。
特定の実施形態では、クライアントシステム330は、MICROSOFT INTERNET EXPLORER、GOOGLE CHROMEまたはMOZILLA FIREFOXなど、ウェブブラウザ332を含み得、1つまたは複数のアドオン、プラグイン、あるいは、TOOLBARまたはYAHOO TOOLBARなど、他の拡張機能を有し得る。クライアントシステム330におけるユーザは、ウェブブラウザ332を(サーバ362、またはサードパーティシステム370に関連付けられたサーバなどの)特定のサーバに向けるユニフォームリソースロケータ(URL)または他のアドレスを入力し得、ウェブブラウザ332は、ハイパーテキスト転送プロトコル(HTTP)要求を生成し、HTTP要求をサーバに通信し得る。サーバは、HTTP要求を受け入れ、HTTP要求に応答する1つまたは複数のハイパーテキストマークアップ言語(HTML)ファイルをクライアントシステム330に通信し得る。クライアントシステム330は、ユーザへの提示のためにサーバからのHTMLファイルに基づいてウェブページをレンダリングし得る。本開示は任意の好適なウェブページファイルを企図する。限定としてではなく一例として、ウェブページは、特定の必要に応じて、HTMLファイル、拡張可能ハイパーテキストマークアップ言語(XHTML)ファイル、または拡張可能マークアップ言語(XML)ファイルから、レンダリングし得る。そのようなページは、たとえば、限定はしないが、JAVASCRIPT、JAVA、MICROSOFT SILVERLIGHTで書かれたものなどのスクリプト、AJAX(非同期JAVASCRIPTおよびXML)などのマークアップ言語とスクリプトとの組合せなどをも実行し得る。本明細書では、ウェブページへの言及は、適切な場合、(ブラウザがウェブページをレンダリングするために使用し得る)1つまたは複数の対応するウェブページファイルを包含し、その逆も同様である。
特定の実施形態では、ソーシャルネットワーキングシステム360は、オンラインソーシャルネットワークをホストすることができるネットワークアドレス指定可能なコンピューティングシステムであり得る。ソーシャルネットワーキングシステム360は、たとえば、ユーザプロファイルデータ、概念プロファイルデータ、ソーシャルグラフ情報、またはオンラインソーシャルネットワークに関係する他の好適なデータなど、ソーシャルネットワーキングデータを生成し、記憶し、受信し、送り得る。ソーシャルネットワーキングシステム360は、直接的にまたはネットワーク310を介してのいずれかで、ネットワーク環境300の他の構成要素によってアクセスされ得る。限定としてではなく一例として、クライアントシステム330は、直接的にまたはネットワーク310を介してのいずれかで、ウェブブラウザ332、またはソーシャルネットワーキングシステム360に関連付けられたネイティブアプリケーション(たとえば、モバイルソーシャルネットワーキングアプリケーション、メッセージングアプリケーション、別の好適なアプリケーション、またはそれらの任意の組合せ)を使用して、ソーシャルネットワーキングシステム360にアクセスし得る。特定の実施形態では、ソーシャルネットワーキングシステム360は、1つまたは複数のサーバ362を含み得る。各サーバ362は、単一サーバ、あるいは複数のコンピュータまたは複数のデータセンターにわたる分散型サーバであり得る。サーバ362は、たとえば、限定はしないが、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、交換サーバ、データベースサーバ、プロキシサーバ、本明細書で説明される機能またはプロセスを実施するのに好適な別のサーバ、あるいはそれらの任意の組合せなど、様々なタイプのものであり得る。特定の実施形態では、各サーバ362は、サーバ362によって実装またはサポートされる適切な機能性を行うための、ハードウェア、ソフトウェア、または埋込み論理構成要素、または2つまたはそれ以上のそのような構成要素の組合せを含み得る。特定の実施形態では、ソーシャルネットワーキングシステム360は、1つまたは複数のデータストア364を含み得る。データストア364は、様々なタイプの情報を記憶するために使用され得る。特定の実施形態では、データストア364に記憶された情報は、特定のデータ構造に従って編成され得る。特定の実施形態では、各データストア364は、リレーショナルデータベース、列指向データベース、相関データベース、または他の好適なデータベースであり得る。本開示は、特定のタイプのデータベースを説明するかまたは示すが、本開示は任意の好適なタイプのデータベースを企図する。特定の実施形態は、クライアントシステム330、ソーシャルネットワーキングシステム360、またはサードパーティシステム370が、データストア364に記憶された情報を管理する、取り出す、変更する、追加する、または削除することを可能にするインターフェースを提供し得る。
特定の実施形態では、ソーシャルネットワーキングシステム360は、1つまたは複数のデータストア364に、1つまたは複数のソーシャルグラフを記憶し得る。特定の実施形態では、ソーシャルグラフは、(各々特定のユーザに対応する)複数のユーザノードまたは(各々特定の概念に対応する)複数の概念ノードを含み得る、複数のノードと、ノードを接続する複数のエッジとを含み得る。ソーシャルネットワーキングシステム360は、オンラインソーシャルネットワークのユーザに、他のユーザと通信および対話する能力を提供し得る。特定の実施形態では、ユーザは、ソーシャルネットワーキングシステム360を介してオンラインソーシャルネットワークに加わり、次いで、ユーザがつなげられることを希望するソーシャルネットワーキングシステム360の何人かの他のユーザへのつながり(connection)(たとえば、関係)を追加し得る。本明細書では、「友達(friend)」という用語は、ソーシャルネットワーキングシステム360を介してユーザがつながり、関連付け、または関係を形成したソーシャルネットワーキングシステム360の任意の他のユーザを指すことがある。
特定の実施形態では、ソーシャルネットワーキングシステム360は、ソーシャルネットワーキングシステム360によってサポートされる様々なタイプのアイテムまたはオブジェクトに関するアクションをとる能力をユーザに提供し得る。限定としてではなく一例として、アイテムおよびオブジェクトは、ソーシャルネットワーキングシステム360のユーザが属し得るグループまたはソーシャルネットワーク、ユーザが関心のあり得るイベントまたはカレンダーエントリ、ユーザが使用し得るコンピュータベースアプリケーション、ユーザがサービスを介してアイテムを購入または販売することを可能にするトランザクション、ユーザが実施し得る広告との対話、あるいは他の好適なアイテムまたはオブジェクトを含み得る。ユーザは、ソーシャルネットワーキングシステム360において、またはソーシャルネットワーキングシステム360とは別個であり、ネットワーク310を介してソーシャルネットワーキングシステム360に結合された、サードパーティシステム370の外部システムによって、表されることが可能であるものと対話し得る。
特定の実施形態では、ソーシャルネットワーキングシステム360は、様々なエンティティをリンクすることが可能であり得る。限定としてではなく一例として、ソーシャルネットワーキングシステム360は、ユーザが、互いに対話し、ならびにサードパーティシステム370または他のエンティティからコンテンツを受信することを可能にするか、あるいは、ユーザが、アプリケーションプログラミングインターフェース(API)または他の通信チャネルを通して、これらのエンティティと対話することを可能にし得る。
特定の実施形態では、サードパーティシステム370は、1つまたは複数のタイプのサーバ、1つまたは複数のデータストア、限定はしないがAPIを含む1つまたは複数のインターフェース、1つまたは複数のウェブサービス、1つまたは複数のコンテンツソース、1つまたは複数のネットワーク、またはたとえばサーバが通信し得る任意の他の好適な構成要素を含み得る。サードパーティシステム370は、ソーシャルネットワーキングシステム360を動作させるエンティティとは異なるエンティティによって動作させられ得る。しかしながら、特定の実施形態では、ソーシャルネットワーキングシステム360とサードパーティシステム370とは、互いと連携して動作して、ソーシャルネットワーキングシステム360またはサードパーティシステム370のユーザにソーシャルネットワーキングサービスを提供し得る。この意味で、ソーシャルネットワーキングシステム360は、サードパーティシステム370などの他のシステムが、インターネット上でユーザにソーシャルネットワーキングサービスおよび機能性を提供するために使用し得る、プラットフォームまたはバックボーンを提供し得る。
特定の実施形態では、サードパーティシステム370は、サードパーティコンテンツオブジェクトプロバイダを含み得る。サードパーティコンテンツオブジェクトプロバイダは、クライアントシステム330に通信され得る、コンテンツオブジェクトの1つまたは複数のソースを含み得る。限定としてではなく一例として、コンテンツオブジェクトは、たとえば、映画の上映時間、映画のレビュー、レストランのレビュー、レストランのメニュー、製品情報およびレビュー、または他の好適な情報など、ユーザにとって関心のある物またはアクティビティに関する情報を含み得る。限定としてではなく別の例として、コンテンツオブジェクトは、クーポン、ディスカウントチケット、ギフト券、または他の好適なインセンティブオブジェクトなど、インセンティブコンテンツオブジェクトを含み得る。
特定の実施形態では、ソーシャルネットワーキングシステム360は、ソーシャルネットワーキングシステム360とのユーザの対話を向上させ得る、ユーザ生成されたコンテンツオブジェクトをも含み得る。ユーザ生成されたコンテンツは、ユーザがソーシャルネットワーキングシステム360に追加するか、アップロードするか、送るか、または「ポストする(post)」ことができるものを含み得る。限定としてではなく一例として、ユーザは、クライアントシステム330からソーシャルネットワーキングシステム360にポストを通信する。ポストは、ステータス更新または他のテキストデータ、ロケーション情報、写真、ビデオ、リンク、音楽あるいは他の同様のデータまたはメディアなど、データを含み得る。コンテンツはまた、ニュースフィードまたはストリームなどの「通信チャネル」を通して、サードパーティによってソーシャルネットワーキングシステム360に追加され得る。
特定の実施形態では、ソーシャルネットワーキングシステム360は、様々なサーバ、サブシステム、プログラム、モジュール、ログ、およびデータストアを含み得る。特定の実施形態では、ソーシャルネットワーキングシステム360は、以下、すなわち、ウェブサーバ、アクションコントローラ、アクションログ、サードパーティコンテンツオブジェクト露出ログ、推論モジュール、許可/プライバシーサーバ、検索モジュール、広告ターゲッティングモジュール、ユーザインターフェースモジュール、ユーザプロファイルストア、つながりストア(connection store)、サードパーティコンテンツストア、またはロケーションストアのうちの1つまたは複数を含み得る。ソーシャルネットワーキングシステム360は、ネットワークインターフェース、セキュリティ機構、ロードバランサ、フェイルオーバサーバ、管理およびネットワーク運用コンソール、他の好適な構成要素、またはそれらの任意の好適な組合せなど、好適な構成要素をも含み得る。特定の実施形態では、ソーシャルネットワーキングシステム360は、ユーザプロファイルを記憶するための1つまたは複数のユーザプロファイルストアを含み得る。ユーザプロファイルは、たとえば、経歴情報、人口統計学的情報、行動情報、ソーシャル情報、あるいは、職歴、学歴、趣味もしくは好み、関心、親近感、またはロケーションなど、他のタイプの記述情報を含み得る。関心情報は、1つまたは複数のカテゴリーに関係する関心を含み得る。カテゴリーは一般的または特定的であり得る。限定としてではなく一例として、ユーザが、靴のブランドに関する記事に対して「いいね」を表明した場合、カテゴリーは、ブランド、あるいは「靴」または「衣類」の一般的なカテゴリーであり得る。つながりストアは、ユーザに関するつながり情報を記憶するために使用され得る。つながり情報は、同様のまたは共通の職歴、グループメンバーシップ、趣味、学歴を有するか、あるいはいかなる形でも関係するか、または共通属性を共有する、ユーザを指示し得る。つながり情報は、(内部と外部の両方の)異なるユーザとコンテンツとの間のユーザ定義されたつながりをも含み得る。ウェブサーバは、ネットワーク310を介して、ソーシャルネットワーキングシステム360を、1つまたは複数のクライアントシステム330または1つまたは複数のサードパーティシステム370にリンクするために使用され得る。ウェブサーバは、ソーシャルネットワーキングシステム360と1つまたは複数のクライアントシステム330との間でメッセージを受信およびルーティングするためのメールサーバまたは他のメッセージング機能性を含み得る。API要求サーバは、サードパーティシステム370が、1つまたは複数のAPIを呼び出すことによってソーシャルネットワーキングシステム360からの情報にアクセスすることを可能にし得る。アクションロガーは、ソーシャルネットワーキングシステム360上の、またはソーシャルネットワーキングシステム360から離れた、ユーザのアクションに関するウェブサーバからの通信を受信するために使用され得る。アクションログと併せて、サードパーティコンテンツオブジェクトへのユーザ露出についてのサードパーティコンテンツオブジェクトログが維持され得る。通知コントローラは、クライアントシステム330にコンテンツオブジェクトに関する情報を提供し得る。情報は、通知としてクライアントシステム330にプッシュされ得るか、または、情報は、クライアントシステム330から受信された要求に応答してクライアントシステム330からプルされ得る。許可サーバは、ソーシャルネットワーキングシステム360のユーザの1つまたは複数のプライバシーセッティングを施行するために使用され得る。ユーザのプライバシーセッティングは、ユーザに関連付けられた特定の情報がどのように共有され得るかを決定する。許可サーバは、ユーザが、たとえば、適切なプライバシーセッティングをセットすることなどによって、そのユーザのアクションがソーシャルネットワーキングシステム360によってロギングされるか、または他のシステム(たとえば、サードパーティシステム370)と共有されることをオプトインまたはオプトアウトすることを可能にし得る。サードパーティコンテンツオブジェクトストアは、サードパーティシステム370など、サードパーティから受信されたコンテンツオブジェクトを記憶するために使用され得る。ロケーションストアは、ユーザに関連付けられたクライアントシステム330から受信されたロケーション情報を記憶するために使用され得る。広告価格設定モジュールは、ソーシャル情報、現在時間、ロケーション情報、または他の好適な情報を組み合わせて、関連する広告を通知の形態でユーザに提供し得る。
図4は例示的なコンピュータシステム400を示す。特定の実施形態では、1つまたは複数のコンピュータシステム400は、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施する。特定の実施形態では、1つまたは複数のコンピュータシステム400は、本明細書で説明または示される機能性を提供する。特定の実施形態では、1つまたは複数のコンピュータシステム400上で実行しているソフトウェアは、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施するか、あるいは本明細書で説明または示される機能性を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム400の1つまたは複数の部分を含む。本明細書では、コンピュータシステムへの言及は、適切な場合、コンピューティングデバイスを包含し得、その逆も同様である。その上、コンピュータシステムへの言及は、適切な場合、1つまたは複数のコンピュータシステムを包含し得る。
本開示は任意の好適な数のコンピュータシステム400を企図する。本開示は任意の好適な物理的形態をとるコンピュータシステム400を企図する。限定としてではなく例として、コンピュータシステム400は、組込み型コンピュータシステム、システムオンチップ(SOC)、(たとえば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)などの)シングルボードコンピュータシステム(SBC)、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、拡張/仮想現実デバイス、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。適切な場合、コンピュータシステム400は、1つまたは複数のコンピュータシステム400を含むか、単一または分散型であるか、複数のロケーションにわたるか、複数のマシンにわたるか、複数のデータセンターにわたるか、あるいは1つまたは複数のネットワーク中の1つまたは複数のクラウド構成要素を含み得るクラウド中に常駐し得る。適切な場合、1つまたは複数のコンピュータシステム400は、実質的な空間的または時間的制限なしに、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。限定としてではなく一例として、1つまたは複数のコンピュータシステム400は、リアルタイムでまたはバッチモードで、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。1つまたは複数のコンピュータシステム400は、適切な場合、異なる時間においてまたは異なるロケーションにおいて、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。
特定の実施形態では、コンピュータシステム400は、プロセッサ402と、メモリ404と、ストレージ406と、入出力(I/O)インターフェース408と、通信インターフェース410と、バス412とを含む。本開示は、特定の構成において特定の数の特定の構成要素を有する特定のコンピュータシステムを説明し、示すが、本開示は、任意の好適な構成において任意の好適な数の任意の好適な構成要素を有する任意の好適なコンピュータシステムを企図する。
特定の実施形態では、プロセッサ402は、コンピュータプログラムを作り上げる命令など、命令を実行するためのハードウェアを含む。限定としてではなく一例として、命令を実行するために、プロセッサ402は、内部レジスタ、内部キャッシュ、メモリ404、またはストレージ406から命令を取り出し(またはフェッチし)、それらの命令を復号および実行し、次いで、内部レジスタ、内部キャッシュ、メモリ404、またはストレージ406に1つまたは複数の結果を書き込み得る。特定の実施形態では、プロセッサ402は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ402を企図する。限定としてではなく一例として、プロセッサ402は、1つまたは複数の命令キャッシュと、1つまたは複数のデータキャッシュと、1つまたは複数のトランスレーションルックアサイドバッファ(TLB)とを含み得る。命令キャッシュ中の命令は、メモリ404またはストレージ406中の命令のコピーであり得、命令キャッシュは、プロセッサ402によるそれらの命令の取出しを高速化し得る。データキャッシュ中のデータは、プロセッサ402において実行する命令が動作する対象のメモリ404またはストレージ406中のデータのコピー、プロセッサ402において実行する後続の命令によるアクセスのための、またはメモリ404もしくはストレージ406に書き込むための、プロセッサ402において実行された前の命令の結果、あるいは他の好適なデータであり得る。データキャッシュは、プロセッサ402による読取りまたは書込み動作を高速化し得る。TLBは、プロセッサ402のための仮想アドレス変換を高速化し得る。特定の実施形態では、プロセッサ402は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ402を企図する。適切な場合、プロセッサ402は、1つまたは複数の算術論理ユニット(ALU)を含むか、マルチコアプロセッサであるか、または1つまたは複数のプロセッサ402を含み得る。本開示は、特定のプロセッサを説明し、示すが、本開示は任意の好適なプロセッサを企図する。
特定の実施形態では、メモリ404は、プロセッサ402が実行するための命令、またはプロセッサ402が動作する対象のデータを記憶するためのメインメモリを含む。限定としてではなく一例として、コンピュータシステム400は、ストレージ406または(たとえば、別のコンピュータシステム400などの)別のソースからメモリ404に命令をロードし得る。プロセッサ402は、次いで、メモリ404から内部レジスタまたは内部キャッシュに命令をロードし得る。命令を実行するために、プロセッサ402は、内部レジスタまたは内部キャッシュから命令を取り出し、それらの命令を復号し得る。命令の実行中またはその後に、プロセッサ402は、(中間結果または最終結果であり得る)1つまたは複数の結果を内部レジスタまたは内部キャッシュに書き込み得る。プロセッサ402は、次いで、メモリ404にそれらの結果のうちの1つまたは複数を書き込み得る。特定の実施形態では、プロセッサ402は、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ406または他の場所とは対照的な)メモリ404中の命令のみを実行し、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ406または他の場所とは対照的な)メモリ404中のデータのみに対して動作する。(アドレスバスおよびデータバスを各々含み得る)1つまたは複数のメモリバスが、プロセッサ402をメモリ404に結合し得る。バス412は、以下で説明されるように、1つまたは複数のメモリバスを含み得る。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ402とメモリ404との間に常駐し、プロセッサ402によって要求されるメモリ404へのアクセスを可能にする。特定の実施形態では、メモリ404は、ランダムアクセスメモリ(RAM)を含む。このRAMは、適切な場合、揮発性メモリであり得る。適切な場合、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であり得る。その上、適切な場合、このRAMは、シングルポートまたはマルチポートRAMであり得る。本開示は任意の好適なRAMを企図する。メモリ404は、適切な場合、1つまたは複数のメモリ404を含み得る。本開示は、特定のメモリを説明し、示すが、本開示は任意の好適なメモリを企図する。
特定の実施形態では、ストレージ406は、データまたは命令のための大容量ストレージを含む。限定としてではなく一例として、ストレージ406は、ハードディスクドライブ(HDD)、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス(USB)ドライブ、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。ストレージ406は、適切な場合、リムーバブルまたは非リムーバブル(または固定)媒体を含み得る。ストレージ406は、適切な場合、コンピュータシステム400の内部または外部にあり得る。特定の実施形態では、ストレージ406は、不揮発性ソリッドステートメモリである。特定の実施形態では、ストレージ406は、読取り専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM)、またはフラッシュメモリ、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。本開示は、任意の好適な物理的形態をとる大容量ストレージ406を企図する。ストレージ406は、適切な場合、プロセッサ402とストレージ406との間の通信を可能にする1つまたは複数のストレージ制御ユニットを含み得る。適切な場合、ストレージ406は、1つまたは複数のストレージ406を含み得る。本開示は、特定のストレージを説明し、示すが、本開示は任意の好適なストレージを企図する。
特定の実施形態では、I/Oインターフェース408は、コンピュータシステム400と1つまたは複数のI/Oデバイスとの間の通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム400は、適切な場合、これらのI/Oデバイスのうちの1つまたは複数を含み得る。これらのI/Oデバイスのうちの1つまたは複数は、人とコンピュータシステム400との間の通信を可能にし得る。限定としてではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカー、スチールカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なI/Oデバイス、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。I/Oデバイスは1つまたは複数のセンサーを含み得る。本開示は、任意の好適なI/Oデバイスと、それらのI/Oデバイスのための任意の好適なI/Oインターフェース408とを企図する。適切な場合、I/Oインターフェース408は、プロセッサ402がこれらのI/Oデバイスのうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイスまたはソフトウェアドライバを含み得る。I/Oインターフェース408は、適切な場合、1つまたは複数のI/Oインターフェース408を含み得る。本開示は、特定のI/Oインターフェースを説明し、示すが、本開示は任意の好適なI/Oインターフェースを企図する。
特定の実施形態では、通信インターフェース410は、コンピュータシステム400と、1つまたは複数の他のコンピュータシステム400または1つまたは複数のネットワークとの間の(たとえば、パケットベース通信などの)通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、通信インターフェース410は、イーサネットまたは他の有線ベースネットワークと通信するためのネットワークインターフェースコントローラ(NIC)またはネットワークアダプタ、あるいはWI−FIネットワークなどの無線ネットワークと通信するための無線NIC(WNIC)または無線アダプタを含み得る。本開示は、任意の好適なネットワークと、そのネットワークのための任意の好適な通信インターフェース410とを企図する。限定としてではなく一例として、コンピュータシステム400は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネットの1つまたは複数の部分、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、有線または無線であり得る。一例として、コンピュータシステム400は、(たとえば、BLUETOOTH WPANなどの)無線PAN(WPAN)、WI−FIネットワーク、WI−MAXネットワーク、(たとえば、モバイル通信用グローバルシステム(GSM)ネットワークなどの)セルラー電話ネットワーク、または他の好適な無線ネットワーク、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。コンピュータシステム400は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インターフェース410を含み得る。通信インターフェース410は、適切な場合、1つまたは複数の通信インターフェース410を含み得る。本開示は、特定の通信インターフェースを説明し、示すが、本開示は任意の好適な通信インターフェースを企図する。
特定の実施形態では、バス412は、コンピュータシステム400の構成要素を互いに結合する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、バス412は、アクセラレーテッドグラフィックスポート(AGP)または他のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、HYPERTRANSPORT(HT)相互接続、業界標準アーキテクチャ(ISA)バス、INFINIBAND相互接続、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺構成要素相互接続(PCI)バス、PCI−Express(PCIe)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクス規格協会ローカル(VLB)バス、または別の好適なバス、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。バス412は、適切な場合、1つまたは複数のバス412を含み得る。本開示は、特定のバスを説明し、示すが、本開示は任意の好適なバスまたは相互接続を企図する。
本明細書では、1つまたは複数のコンピュータ可読非一時的記憶媒体は、適切な場合、(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)などの)1つまたは複数の半導体ベースまたは他の集積回路(IC)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカードまたはドライブ、任意の他の好適なコンピュータ可読非一時的記憶媒体、あるいはこれらのうちの2つまたはそれ以上の任意の好適な組合せを含み得る。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性との組合せであり得る。
本明細書では、「または」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、包括的であり、排他的ではない。したがって、本明細書では、「AまたはB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「A、B、またはその両方」を意味する。その上、「および」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、共同と個別の両方である。したがって、本明細書では、「AおよびB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「共同でまたは個別に、AおよびB」を意味する。
本開示の範囲は、当業者が理解するであろう、本明細書で説明または示される例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または示される例示的な実施形態に限定されない。その上、本開示は、本明細書のそれぞれの実施形態を、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして説明し、示すが、これらの実施形態のいずれも、当業者が理解するであろう、本明細書のどこかに説明または示される構成要素、要素、特徴、機能、動作、またはステップのうちのいずれかの任意の組合せまたは置換を含み得る。さらに、特定の機能を実施するように適応されるか、構成されるか、実施することが可能であるか、実施するように設定されるか、実施することが可能にされるか、実施するように動作可能であるか、または実施するように動作する、装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲における参照は、その装置、システム、または構成要素が、そのように適応されるか、構成されるか、可能であるか、設定されるか、可能にされるか、動作可能であるか、または動作する限り、その装置、システム、構成要素またはその特定の機能が、アクティブにされるか、オンにされるか、またはアンロックされるか否かにかかわらず、その装置、システム、構成要素を包含する。さらに、本開示は、特定の実施形態を、特定の利点を提供するものとして説明するかまたは示すが、特定の実施形態は、これらの利点のいずれをも提供しないか、いくつかを提供するか、またはすべてを提供し得る。

Claims (30)

  1. コンピューティングシステムによって、ユーザに関連付けられたクライアントデバイスから、前記コンピューティングシステムに関連付けられた第1のホストに向けられた第1の要求を受信することと、
    前記コンピューティングシステムによって、前記第1の要求に応答して鍵を生成することと、
    前記コンピューティングシステムによって、前記鍵に基づいて検証トークンを生成することと、
    前記コンピューティングシステムによって、前記鍵に基づいて、暗号化された鍵を生成することと、
    前記コンピューティングシステムによって、前記コンピューティングシステムに関連付けられた前記第1のホストから前記クライアントデバイスに、第1の命令と、前記検証トークンと、前記暗号化された鍵とを送信することであって、前記第1の命令は、
    前記第1のホストに関連付けられた第1のクッキーとして前記検証トークンを前記クライアントデバイス上に記憶させることと、
    前記クライアントデバイスに、前記コンピューティングシステムに関連付けられた第2のホストに前記暗号化された鍵を送信させることと
    を行うように設定されることと、
    前記コンピューティングシステムによって、前記クライアントデバイスから、前記暗号化された鍵を含む第2の要求を受信することと、
    前記コンピューティングシステムによって、前記暗号化された鍵が前に解読されなかったと決定すると、前記鍵を取得するために、受信した前記暗号化された鍵を解読することと、
    前記コンピューティングシステムによって、前記第2のホストから前記クライアントデバイスに、第2の命令と前記解読から取得された前記鍵とを送信することであって、前記第2の命令が、前記第2のホストに関連付けられた第2のクッキーとして、前記解読から取得された前記鍵を前記クライアントデバイス上に記憶させるように設定されることと、を含む、方法。
  2. 前記コンピューティングシステムによって、前記クライアントデバイスから前の要求を受信することであって、前記前の要求は、前記コンピューティングシステムに関連付けられた第3のホストに向けられ、前記要求が受信される前に受信されることと、
    前記コンピューティングシステムによって、前記前の要求に応答して、前記クライアントデバイスにリダイレクション命令を送信することであって、前記クライアントデバイスに、前記第1の要求を前記第1のホストに送らせるように設定されるリダイレクション命令を送信することと、をさらに含む、請求項1に記載の方法。
  3. 前記コンピューティングシステムによって、ナンスを生成することと、
    前記コンピューティングシステムによって、前記クライアントデバイスに前記ナンスを送信することと、
    をさらに含み、
    前記第1の命令が、前記クライアントデバイスに、前記コンピューティングシステムに関連付けられた前記第2のホストに前記暗号化された鍵とともに前記ナンスを送信させるように設定され、
    前記暗号化された鍵が前に解読されなかったと前記決定することが、前記ナンスに基づく、
    請求項1に記載の方法。
  4. 前記コンピューティングシステムによって、第2のユーザに関連付けられた第2のクライアントデバイスから、前記暗号化された鍵と前記ナンスとを含む第3の要求を受信することと、
    前記コンピューティングシステムによって、(1)前記ナンスが前に使用された、または(2)前記ナンスが、前記暗号化された鍵に結びつけられていない、と決定することと、
    前記コンピューティングシステムによって、前記第3の要求を拒否することと
    をさらに含む、請求項3に記載の方法。
  5. 前記第1のクッキーが、クライアント側スクリプトによってアクセス可能であるように設定され、前記第2のクッキーが、クライアント側スクリプトによってアクセス不可能であるように設定された、請求項1に記載の方法。
  6. 前記第1のホストと前記第2のホストとが異なる、請求項1に記載の方法。
  7. 前記第2のホストが、サードパーティによってホストされたウェブページへのアクセスを与えるように設定された、請求項1に記載の方法。
  8. 前記コンピューティングシステムによって、前記クライアントデバイスから、前記第2のクッキーとして記憶された前記鍵を含む第3の要求を受信することと、
    前記コンピューティングシステムによって、前記第3の要求とともに受信された前記鍵に基づいて、第2の検証トークンを生成することと、
    前記コンピューティングシステムによって、前記第3の要求に応答して、前記クライアントデバイスにウェブページを送信することであって、前記ウェブページが、前記第2の検証トークンと命令とを含み、前記命令が、前記クライアントデバイスに、
    前記第2の検証トークンを、前記第1のクッキーとして記憶された前記検証トークンと比較することと、
    前記比較に基づいて、前記ウェブページをレンダリングすべきかどうかを決定することと
    を行わせるように設定されることと、をさらに含む、請求項1に記載の方法。
  9. ソフトウェアを具現化する1つまたは複数のコンピュータ可読非一時的記憶媒体であって、前記ソフトウェアは、実行されたとき、
    ユーザに関連付けられたクライアントデバイスから、コンピューティングシステムに関連付けられた第1のホストに向けられた第1の要求を受信することと、
    前記第1の要求に応答して鍵を生成することと、
    前記鍵に基づいて検証トークンを生成することと、
    前記鍵に基づいて、暗号化された鍵を生成することと、
    前記コンピューティングシステムに関連付けられた前記第1のホストから前記クライアントデバイスに、第1の命令と、前記検証トークンと、前記暗号化された鍵とを送信することであって、前記第1の命令は、
    前記クライアントデバイス上に第1のクッキーとして前記検証トークンを記憶させることであって、前記第1のクッキーが前記第1のホストに関連付けられた、前記検証トークンを記憶させることと、
    前記クライアントデバイスに、前記コンピューティングシステムに関連付けられた第2のホストに前記暗号化された鍵を送信させることと
    を行うように設定されることと、
    前記クライアントデバイスから、前記暗号化された鍵を含む第2の要求を受信することと、
    前記暗号化された鍵が前に解読されなかったと決定すると、前記鍵を取得するために、受信した前記暗号化された鍵を解読することと、
    前記第2のホストから前記クライアントデバイスに、第2の命令と前記解読から取得された前記鍵とを送信することであって、前記第2の命令が、前記第2のホストに関連付けられた第2のクッキーとして、前記解読から取得された前記鍵を前記クライアントデバイス上に記憶させるように設定されることと、
    を行うように動作可能である、
    記憶媒体。
  10. 前記ソフトウェアは、実行されたとき、
    前記クライアントデバイスから前の要求を受信することであって、前記前の要求は、前記コンピューティングシステムに関連付けられた第3のホストに向けられ、前記要求が受信される前に受信されることと、
    前記前の要求に応答して、前記クライアントデバイスにリダイレクション命令を送信することであって、前記クライアントデバイスに、前記第1のホストに前記第1の要求を送らせるように設定されることと、を行うようにさらに動作可能である、請求項9に記載の媒体。
  11. 前記ソフトウェアが、実行されたとき、
    ナンスを生成することと、
    前記クライアントデバイスに前記ナンスを送信することと
    を行うようにさらに動作可能であり、
    前記第1の命令が、前記クライアントデバイスに、前記コンピューティングシステムに関連付けられた前記第2のホストに前記暗号化された鍵とともに前記ナンスを送信させるように設定され、
    前記暗号化された鍵が前に解読されなかったと前記決定することが、前記ナンスに基づく、請求項9に記載の媒体。
  12. 前記ソフトウェアは、実行されたとき、
    第2のユーザに関連付けられた第2のクライアントデバイスから、前記暗号化された鍵と前記ナンスとを含む第3の要求を受信することと、
    (1)前記ナンスが前に使用された、または(2)前記ナンスが、前記暗号化された鍵に結びつけられていない、と決定することと、
    前記第3の要求を拒否することと、
    を行うようにさらに動作可能である、請求項11に記載の媒体。
  13. 前記第2のホストが、サードパーティによってホストされたウェブページへのアクセスを与えるように設定された、請求項9に記載の媒体。
  14. 前記ソフトウェアは、実行されたとき、
    前記クライアントデバイスから、前記第2のクッキーとして記憶された前記鍵を含む第3の要求を受信することと、
    前記第3の要求とともに受信された前記鍵に基づいて、第2の検証トークンを生成することと、
    前記第3の要求に応答して、前記クライアントデバイスにウェブページを送信することであって、前記ウェブページが、前記第2の検証トークンと命令とを含み、前記命令が、前記クライアントデバイスに、
    前記第2の検証トークンを、前記第1のクッキーとして記憶された前記検証トークンと比較することと、
    前記比較に基づいて、前記ウェブページをレンダリングすべきかどうかを決定することと
    を行わせるように設定されることと、
    を行うようにさらに動作可能である、請求項9に記載の媒体。
  15. 1つまたは複数のプロセッサと、
    前記プロセッサのうちの1つまたは複数に結合され、命令を備える、1つまたは複数のコンピュータ可読非一時的記憶媒体と
    を備えるコンピューティングシステムであって、前記命令は、前記プロセッサのうちの1つまたは複数によって実行されたとき、前記システムに、
    ユーザに関連付けられたクライアントデバイスから、前記コンピューティングシステムに関連付けられた第1のホストに向けられた第1の要求を受信することと、
    前記第1の要求に応答して鍵を生成することと、
    前記鍵に基づいて検証トークンを生成することと、
    前記鍵に基づいて、暗号化された鍵を生成することと、
    前記コンピューティングシステムに関連付けられた前記第1のホストから前記クライアントデバイスに、第1の命令と、前記検証トークンと、前記暗号化された鍵とを送信することであって、前記第1の命令は、
    前記第1のホストに関連付けられた第1のクッキーとして前記検証トークンを前記クライアントデバイス上に記憶させることと、
    前記クライアントデバイスに、前記コンピューティングシステムに関連付けられた第2のホストに前記暗号化された鍵を送信させることと
    を行うように設定されることと、
    前記クライアントデバイスから、前記暗号化された鍵を含む第2の要求を受信することと、
    前記暗号化された鍵が前に解読されなかったと決定すると、前記鍵を取得するために、受信した前記暗号化された鍵を解読することと、
    前記第2のホストから前記クライアントデバイスに、第2の命令と前記解読から取得された前記鍵とを送信することであって、前記第2の命令が、前記第2のホストに関連付けられた第2のクッキーとして、前記解読から取得された前記鍵を前記クライアントデバイス上に記憶させるように設定されることと、
    を行わせるように動作可能である、
    コンピューティングシステム。
  16. 前記プロセッサは、前記命令を実行したとき、
    前記クライアントデバイスから前の要求を受信することであって、前記前の要求は、前記コンピューティングシステムに関連付けられた第3のホストに向けられ、前記要求が受信される前に受信されることと、
    前記前の要求に応答して、前記クライアントデバイスにリダイレクション命令を送信することであって、前記クライアントデバイスに、前記第1のホストに前記第1の要求を送らせるように設定される、リダイレクション命令を送信することと、
    を行うようにさらに動作可能である、請求項15に記載のシステム。
  17. 前記プロセッサが、前記命令を実行したとき、
    ナンスを生成することと、
    前記クライアントデバイスに前記ナンスを送信することと、
    を行うようにさらに動作可能であり、
    前記第1の命令が、前記クライアントデバイスに、前記コンピューティングシステムに関連付けられた前記第2のホストに前記暗号化された鍵とともに前記ナンスを送信させるように設定され、
    前記暗号化された鍵が前に解読されなかったと前記決定することが、前記ナンスに基づく、
    請求項15に記載のシステム。
  18. 前記プロセッサは、前記命令を実行したとき、
    第2のユーザに関連付けられた第2のクライアントデバイスから、前記暗号化された鍵と前記ナンスとを含む第3の要求を受信することと、
    (1)前記ナンスが前に使用された、または(2)前記ナンスが、前記暗号化された鍵に結びつけられていない、と決定することと、
    前記第3の要求を拒否することと、
    を行うようにさらに動作可能である、請求項17に記載のシステム。
  19. 前記第2のホストが、サードパーティによってホストされたウェブページへのアクセスを与えるように設定された、請求項15に記載のシステム。
  20. 前記プロセッサは、前記命令を実行したとき、
    前記クライアントデバイスから、前記第2のクッキーとして記憶された前記鍵を含む第3の要求を受信することと、
    前記第3の要求とともに受信された前記鍵に基づいて、第2の検証トークンを生成することと、
    前記第3の要求に応答して、前記クライアントデバイスにウェブページを送信することであって、前記ウェブページが、前記第2の検証トークンと命令とを含み、前記命令が、前記クライアントデバイスに、
    前記第2の検証トークンを、前記第1のクッキーとして記憶された前記検証トークンと比較することと、
    前記比較に基づいて、前記ウェブページをレンダリングすべきかどうかを決定することと
    を行わせるように設定されることと
    を行うようにさらに動作可能である、請求項15に記載のシステム。
  21. コンピューティングシステムによって、ユーザに関連付けられたクライアントデバイスから、前記コンピューティングシステムに関連付けられた第1のホストに向けられた第1の要求を受信することと、
    前記コンピューティングシステムによって、前記第1の要求に応答して鍵を生成することと、
    前記コンピューティングシステムによって、前記鍵に基づいて検証トークンを生成することと、
    前記コンピューティングシステムによって、前記鍵に基づいて、暗号化された鍵を生成することと、
    前記コンピューティングシステムによって、前記コンピューティングシステムに関連付けられた前記第1のホストから前記クライアントデバイスに、第1の命令と、前記検証トークンと、前記暗号化された鍵とを送信することであって、前記第1の命令は、
    前記第1のホストに関連付けられた第1のクッキーとして前記検証トークンを前記クライアントデバイス上に記憶させることと、
    前記クライアントデバイスに、前記コンピューティングシステムに関連付けられた第2のホストに前記暗号化された鍵を送信させることと
    を行うように設定されることと、
    前記コンピューティングシステムによって、前記クライアントデバイスから、前記暗号化された鍵を含む第2の要求を受信することと、
    前記コンピューティングシステムによって、前記暗号化された鍵が前に解読されなかったと決定すると、前記鍵を取得するために、受信した前記暗号化された鍵を解読することと、
    前記コンピューティングシステムによって、前記第2のホストから前記クライアントデバイスに、第2の命令と前記解読から取得された前記鍵とを送信することであって、前記第2の命令が、前記第2のホストに関連付けられた第2のクッキーとして、前記解読から取得された前記鍵を前記クライアントデバイス上に記憶させるように設定されることと、を含む、コンピュータ実装方法。
  22. 前記コンピューティングシステムによって、前記クライアントデバイスから前の要求を受信することであって、前記前の要求は、前記コンピューティングシステムに関連付けられた第3のホストに向けられ、前記要求が受信される前に受信されることと、
    前記コンピューティングシステムによって、前記前の要求に応答して、前記クライアントデバイスにリダイレクション命令を送信することであって、前記クライアントデバイスに、前記第1のホストに前記第1の要求を送らせるように設定されるリダイレクション命令を送信することと、をさらに含む、請求項21に記載の方法。
  23. 前記コンピューティングシステムによって、ナンスを生成することと、
    前記コンピューティングシステムによって、前記クライアントデバイスに前記ナンスを送信することと、
    をさらに含み、
    前記第1の命令が、前記クライアントデバイスに、前記コンピューティングシステムに関連付けられた前記第2のホストに前記暗号化された鍵とともに前記ナンスを送信させるように設定され、
    前記暗号化された鍵が前に解読されなかったと前記決定することが、前記ナンスに基づく、
    請求項21または22に記載の方法。
  24. 前記コンピューティングシステムによって、第2のユーザに関連付けられた第2のクライアントデバイスから、前記暗号化された鍵と前記ナンスとを含む第3の要求を受信することと、
    前記コンピューティングシステムによって、(1)前記ナンスが前に使用された、または(2)前記ナンスが、前記暗号化された鍵に結びつけられていない、と決定することと、
    前記コンピューティングシステムによって、前記第3の要求を拒否することと
    をさらに含む、請求項23に記載の方法。
  25. 前記第1のクッキーが、クライアント側スクリプトによってアクセス可能であるように設定され、前記第2のクッキーが、クライアント側スクリプトによってアクセス不可能であるように設定された、請求項21から24のいずれか一項に記載の方法。
  26. 前記第1のホストと前記第2のホストとが異なる、請求項21から25のいずれか一項に記載の方法。
  27. 前記第2のホストが、サードパーティによってホストされたウェブページへのアクセスを与えるように設定された、請求項21から26のいずれか一項に記載の方法。
  28. 前記コンピューティングシステムによって、前記クライアントデバイスから、前記第2のクッキーとして記憶された前記鍵を含む第3の要求を受信することと、
    前記コンピューティングシステムによって、前記第3の要求とともに受信された前記鍵に基づいて、第2の検証トークンを生成することと、
    前記コンピューティングシステムによって、前記第3の要求に応答して、前記クライアントデバイスにウェブページを送信することと、をさらに含み、前記ウェブページが、前記第2の検証トークンと命令とを含み、前記命令が、前記クライアントデバイスに、
    前記第2の検証トークンを、前記第1のクッキーとして記憶された前記検証トークンと比較することと、
    前記比較に基づいて、前記ウェブページをレンダリングすべきかどうかを決定することと
    を行わせるように設定される、
    請求項21から27のいずれか一項に記載の方法。
  29. コンピューティングシステムの1つまたは複数のプロセッサによって実行されたとき、前記プロセッサ、特にコンピューティングシステムに、請求項21から28のいずれか一項に記載の方法のすべてのステップを含む方法を行わせるように動作可能であるソフトウェアを具現する、1つまたは複数のコンピュータ可読非一時的記憶媒体。
  30. 1つまたは複数のプロセッサと、前記プロセッサのうちの1つまたは複数に結合され、命令を備える、1つまたは複数のコンピュータ可読非一時的記憶媒体とを備える、コンピューティングシステムであって、前記命令が、前記プロセッサのうちの1つまたは複数によって実行されたとき、前記システムに、請求項21から28のいずれか一項に記載の方法のすべてのステップを含む方法を行わせるように動作可能である、コンピューティングシステム。
JP2019563736A 2017-05-25 2017-05-26 ドメインポータル上のセッション固定を防ぐためのシステムおよび方法 Active JP7018455B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/605,563 2017-05-25
US15/605,563 US10454672B2 (en) 2017-05-25 2017-05-25 Systems and methods for preventing session fixation over a domain portal
PCT/US2017/034682 WO2018217212A1 (en) 2017-05-25 2017-05-26 Systems and methods for preventing session fixation over a domain portal

Publications (2)

Publication Number Publication Date
JP2020522918A true JP2020522918A (ja) 2020-07-30
JP7018455B2 JP7018455B2 (ja) 2022-02-10

Family

ID=64395781

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019563736A Active JP7018455B2 (ja) 2017-05-25 2017-05-26 ドメインポータル上のセッション固定を防ぐためのシステムおよび方法

Country Status (5)

Country Link
US (1) US10454672B2 (ja)
JP (1) JP7018455B2 (ja)
KR (1) KR102365807B1 (ja)
CN (1) CN110771112B (ja)
WO (1) WO2018217212A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10715513B2 (en) * 2017-06-30 2020-07-14 Microsoft Technology Licensing, Llc Single sign-on mechanism on a rich client
US10263970B1 (en) * 2018-10-07 2019-04-16 Capital One Services, Llc System, method and architecture for secure sharing of customer intelligence
CN111343191B (zh) * 2020-03-03 2022-08-16 浙江大华技术股份有限公司 会话校验方法及装置、存储介质、电子装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001075468A (ja) * 1999-09-03 2001-03-23 Yamazaki Kyoiku Kizai Kk インターネット教育システム、クライアントサーバシステムおよび記録媒体
US20050154887A1 (en) * 2004-01-12 2005-07-14 International Business Machines Corporation System and method for secure network state management and single sign-on
JP2007058487A (ja) * 2005-08-24 2007-03-08 Mizuho Bank Ltd ログイン情報管理装置及び方法
US20090171982A1 (en) * 1999-12-21 2009-07-02 Thomas Hagan Privacy and Security Method and System for a World-Wide-Web Site

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6985953B1 (en) * 1998-11-30 2006-01-10 George Mason University System and apparatus for storage and transfer of secure data on web
US6601169B2 (en) 1999-12-30 2003-07-29 Clyde Riley Wallace, Jr. Key-based secure network user states
US7890634B2 (en) * 2005-03-18 2011-02-15 Microsoft Corporation Scalable session management
JP5262941B2 (ja) * 2009-04-10 2013-08-14 ソニー株式会社 認証装置、認証方法、及びプログラム
EP2542971B1 (en) * 2010-03-01 2019-01-30 EMC Corporation Detection of attacks through partner websites
US8850219B2 (en) * 2010-05-13 2014-09-30 Salesforce.Com, Inc. Secure communications
US8880885B2 (en) * 2012-10-09 2014-11-04 Sap Se Mutual authentication schemes
US8694784B1 (en) 2012-10-09 2014-04-08 Sap Ag Secure client-side key storage for web applications
KR101358704B1 (ko) 2012-12-20 2014-02-13 라온시큐어(주) 싱글 사인 온을 위한 인증 방법
US9521146B2 (en) * 2013-08-21 2016-12-13 Microsoft Technology Licensing, Llc Proof of possession for web browser cookie based security tokens
US9225515B2 (en) 2013-09-13 2015-12-29 Sap Portals Israel Ltd Shared portal context session
KR101744747B1 (ko) * 2013-11-22 2017-06-09 한국전자통신연구원 휴대 단말기, 단말기 및 보안쿠키를 이용한 인증 방법
IN2013CH05960A (ja) * 2013-12-20 2015-06-26 Samsung R & D Inst India Bangalore Private Ltd
JP2017521934A (ja) * 2014-06-27 2017-08-03 ジェラード リンGerard Lin クライアントとサーバとの間の相互検証の方法
CN105429978B (zh) * 2015-11-13 2018-10-30 中国建设银行股份有限公司 数据访问方法、设备及系统
US10587732B2 (en) * 2017-04-13 2020-03-10 International Business Machines Corporation Secure client-server communication
US10778668B2 (en) * 2017-06-02 2020-09-15 Dell Products L.P. HTTP session validation module

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001075468A (ja) * 1999-09-03 2001-03-23 Yamazaki Kyoiku Kizai Kk インターネット教育システム、クライアントサーバシステムおよび記録媒体
US20090171982A1 (en) * 1999-12-21 2009-07-02 Thomas Hagan Privacy and Security Method and System for a World-Wide-Web Site
US20050154887A1 (en) * 2004-01-12 2005-07-14 International Business Machines Corporation System and method for secure network state management and single sign-on
JP2007058487A (ja) * 2005-08-24 2007-03-08 Mizuho Bank Ltd ログイン情報管理装置及び方法

Also Published As

Publication number Publication date
WO2018217212A1 (en) 2018-11-29
US10454672B2 (en) 2019-10-22
US20180343113A1 (en) 2018-11-29
KR102365807B1 (ko) 2022-02-23
JP7018455B2 (ja) 2022-02-10
CN110771112A (zh) 2020-02-07
KR20200012889A (ko) 2020-02-05
CN110771112B (zh) 2022-02-15

Similar Documents

Publication Publication Date Title
US11218460B2 (en) Secure authentication for accessing remote resources
US10462135B2 (en) Systems and methods for providing confidentiality and privacy of user data for web browsers
US9344426B2 (en) Accessing enterprise resources while providing denial-of-service attack protection
US10666622B2 (en) Automatic placeholder finder-filler
US20150180857A1 (en) Simple user management service utilizing an access token
US10623508B2 (en) Systems and methods for integrated service discovery for network applications
KR20200131311A (ko) 브라우저 쿠키를 대체하는 도메인 특정 브라우저 식별자
JP7018455B2 (ja) ドメインポータル上のセッション固定を防ぐためのシステムおよび方法
US8892647B1 (en) System and method for associating a cookie with a device identifier
US10897458B1 (en) Enhancing secure client experience through selective encryption of cookies
US20170270561A1 (en) Method, terminal and server for monitoring advertisement exhibition
US20220377064A1 (en) Method and system for managing a web security protocol
CA2844888A1 (en) System and method of extending a host website
US10243992B2 (en) Secure content delivery over a domain portal
US10069829B1 (en) Multi-party secure global attestation
US11803635B2 (en) Passing local credentials to a secure browser session
CN110875903A (zh) 一种安全防御方法及设备
EP3407561B1 (en) Systems and methods for preventing sessions fixation over a domain portal
Légaré et al. Beeswax: a platform for private web apps
CN110546931B (zh) 域门户上的安全内容传递方法
CN114244607B (zh) 单点登录方法、系统、设备、介质和程序
CN112751844B (zh) 一种Portal认证方法、装置及电子设备
US20230396591A1 (en) Server-Side Anonymous Identifier Web Service
US20230344818A1 (en) Systems and methods for securely establishing trusted device bonding
Bodak et al. Secure Authentication Model for Public Clients

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210706

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: 20220104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220131

R150 Certificate of patent or registration of utility model

Ref document number: 7018455

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150