KR102365807B1 - 도메인 포털을 통해 세션 고정을 방지하기 위한 시스템들 및 방법들 - Google Patents

도메인 포털을 통해 세션 고정을 방지하기 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR102365807B1
KR102365807B1 KR1020197036275A KR20197036275A KR102365807B1 KR 102365807 B1 KR102365807 B1 KR 102365807B1 KR 1020197036275 A KR1020197036275 A KR 1020197036275A KR 20197036275 A KR20197036275 A KR 20197036275A KR 102365807 B1 KR102365807 B1 KR 102365807B1
Authority
KR
South Korea
Prior art keywords
client device
computing system
request
key
instructions
Prior art date
Application number
KR1020197036275A
Other languages
English (en)
Other versions
KR20200012889A (ko
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 KR20200012889A publication Critical patent/KR20200012889A/ko
Application granted granted Critical
Publication of KR102365807B1 publication Critical patent/KR102365807B1/ko

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 호스트와 연관된 쿠키로서 키를 저장하도록 디바이스에 지시할 수 있다.

Description

도메인 포털을 통해 세션 고정을 방지하기 위한 시스템들 및 방법들
본 개시는 일반적으로, 세션 고정 공격들을 방지하는 것과 같은, 온라인 보안을 개선하기 위한 시스템들 및 방법들에 관한 것이다.
웹사이트와 같은, 온라인 애플리케이션은 사람들로 하여금 데이터 계획을 통한 인터넷 액세스가 너무 비쌀 수 있는 위치들에서 인터넷을 액세스할 수 있게 할 것이다. 온라인 애플리케이션은 제 3 자 콘텐트 및 서비스 제공자들이 그 외 그들의 웹사이트들을 액세스할 수 없는 사람들에게 콘텐트 및 서비스들을 제공하도록 허용하는 포털처럼 동작할 수 있다. 제 3 자 웹사이트 콘텐트를 포함한, 온라인 애플리케이션을 통해 제공된 임의의 콘텐트는 온라인 애플리케이션의 도메인 하에 제공될 수 있다.
이동 컴퓨팅 디바이스 - 스마트폰, 태블릿 컴퓨터, 또는 랩탑 컴퓨터와 같은 - 는 GPS 수신기, 나침반, 자이로스코프, 또는 가속도계와 같은, 그것의 위치, 방향, 또는 방위를 결정하기 위한 기능을 포함할 수 있다. 이러한 디바이스는 또한 블루투스 통신, 근거리장 통신(NFC), 또는 적외선(IR) 통신 또는 무선 근거리 네트워크들(WLAN들) 또는 휴대-전화 네트워크와의 통신과 같은, 무선 통신을 위한 기능을 포함할 수 있다. 이러한 디바이스는 또한 하나 이상의 카메라들, 스캐너들, 터치스크린들, 마이크로폰들, 또는 스피커들을 포함할 수 있다. 이동 컴퓨팅 디바이스들은 또한, 게임들, 웹 브라우저들, 또는 소셜-네트워킹 애플리케이션들과 같은, 소프트웨어 애플리케이션들을 실행할 수 있다. 소셜-네트워킹 애플리케이션들을 갖고, 사용자들은 그들의 소셜 네트워크들에서 다른 사용자들과 연결하고, 통신하며, 정보를 공유할 수 있다.
여기에서 개시된 특정한 실시예들은 인터넷 액세스가 덜 비쌀 수 있는 시장들에서 인터넷 서비스들로의 사람 액세스를 제공하는 온라인 포털(예컨대, 0.fbs.com에서 호스팅된)과 관련된다. 포털을 통해, 제 3 자 웹사이트들은 데이터 요금들을 발생시키지 않고 무료로 이용 가능해질 수 있다. 이들 제 3 자 웹사이트들은 0.fbs.com 상에서 서브도메인들로서 처리될 수 있다. 예를 들어, www. 3rdparty.com에서 호스팅된 제 3 자 웹사이트는 호스트 www-3rdparty-com.0.fbs.com으로부터의 포털을 통해 이용 가능해질 수 있다. 제 3 자 웹사이트가 서브도메인이기 때문에, 상위-레벨 도메인들(예컨대, 0.fbs.com)과 연관된 사용자의 쿠키들은, 예컨대, 제 3 자 웹사이트들 상에서 호스팅된 클라이어트-측 스크립팅 언어로부터의 공격들에 취약할 수 있다.
이러한 보안 이슈를 다루기 위해, 여기에서 개시된 특정한 실시예들은 검증 토큰이 제 3 자 출처로부터 분리된 보안 출처와 연관된 쿠키로서 저장되게 하며, 따라서 검증 토큰 쿠키는 제 3 자 출처로부터 호스팅된 클라이언트-측 스크립팅(악의적일 수 있는)에 의해 액세스되고 및/또는 수정될 수 없다. 특정한 실시예들에서, 사용자는 포털과 세션을 수립하도록 요청할 수 있다. 요청된 세션 키를 사용자에게 직접 제공하기보다는, 포털의 호스트는 사용자의 웹브라우저를 보안 출처로 리다이렉팅할 수 있다. 보안 출처는, 사용자의 요청에 응답하여, 뒤이은 통신들에서 사용된 세션 키의 무결성을 검증하기 위해 브라우저에 의해 사용될 수 있는, 검증 토큰을 사용자에게 제공할 수 있다. 검증 토큰은 보안 출처와 연관된 쿠키로서 저장될 수 있다. 보안 출처는 또한 넌스(nonce)와 함께 세션 키의 암호화 버전을 사용자에게 제공하며, 제 3 자 웹사이트들이 포털 상에서 제공되는 출처 또는 프록시를 재기록하기 위해 사용자의 브라우저를 리다이렉팅할 수 있다. 특정한 실시예들에서, 리다이렉션은 세션 키의 암호화된 버전 및 넌스가 재기록 출처에 제공되게 할 수 있다. 넌스가, 암호화 키가 이전에 복호화되지 않았음을 나타내면, 서버는 암호화된 세션 키를 복호화하며 복호화된 세션 키를 저장을 위해 브라우저로 리턴시킬 수 있다. 넌스 때문에, 암호화된 세션 키는 단지 한 번 복호화될 수 있다. 단지 사용자 또는 공격자/해커만이 - 양쪽 모두가 아닌 - 서버로부터 복호화된 세션 키를 얻을 수 있으므로, 사용자 및 공격자/해커는 양쪽 모두 동일한 세션 키를 획득할 수 없으며, 그에 의해 세션 고정을 방지한다.
여기에서 개시된 실시예들은 단지 예들이며, 본 개시의 범위는 그것에 제한되지 않는다. 특정한 실시예들은 상기 개시된 실시예들의 구성요소들, 요소들, 특징들, 기능들, 동작들, 또는 단계들 중 모두, 일부를 포함하거나, 또는 아무것도 포함하지 않을 수 있다. 발명에 따른 실시예들은 특히 방법, 저장 매체, 시스템 및 컴퓨터 프로그램 제품에 관한 첨부된 청구항들에서 개시되며, 여기에서 하나의 청구항 카테고리, 예컨대, 방법에 언급된 임의의 특징은 또 다른 청구항 카테고리, 예컨대, 시스템에서 또한 주장될 수 있다. 첨부된 청구항들에서의 의존성들 또는 역 참조들은 단지 형식적인 이유들로 선택된다. 그러나, 임의의 이전 청구항들(특히 다수의 의존성들)에 대한 의도적인 역 참조에서 기인한 임의의 주제가 또한 주장될 수 있으며, 따라서 청구항들 및 그것의 특징들의 임의의 조합이 개시되며 첨부된 청구항들에서 선택된 의존성들에 관계없이 주장될 수 있다. 주장될 수 있는 주제는 첨부된 청구항들에서 제시된 바와 같이 특징들의 조합들뿐만 아니라 또한 청구항들에서의 특징들의 임의의 다른 조합을 포함하며, 여기에서 청구항들에서 언급된 각각의 특징은 청구항들에서 임의의 다른 특징 또는 다른 특징들의 조합과 조합될 수 있다. 뿐만 아니라, 여기에서 설명되거나 또는 묘사된 실시예들 및 특징들 중 임의의 것은 별개의 청구항에서 및/또는 여기에서 설명된 또는 묘사된 임의의 실시예 또는 특징과 또는 첨부된 청구항들의 특징들 중 임의의 것과 임의로 조합하여 주장될 수 있다.
실시예들에서, 컴퓨터-구현 방법이 제공되며, 상기 방법은 다음의 단계들을 포함한다.
컴퓨팅 시스템에 의해, 사용자와 연관된 클라이언트 디바이스로부터 제 1 요청을 수신하는 단계로서, 상기 제 1 요청은 상기 컴퓨팅 시스템과 연관된 제 1 호스트로 향해지는, 상기 제 1 요청 수신 단계;
상기 컴퓨팅 시스템에 의해, 상기 제 1 요청에 응답하여 키를 생성하는 단계;
상기 컴퓨팅 시스템에 의해, 상기 키에 기초하여 검증 토큰을 생성하는 단계;
상기 컴퓨팅 시스템에 의해, 상기 키에 기초하여 암호화 키를 생성하는 단계;
상기 컴퓨팅 시스템에 의해, 제 1 지시들, 상기 검증 토큰 및 상기 암호화 키를 상기 컴퓨팅 시스템과 연관된 제 1 호스트로부터 상기 클라이언트 디바이스로 송신하는 단계로서, 상기 제 1 지시들은:
상기 검증 토큰이 상기 클라이언트 디바이스 상에서 제 1 쿠키로서 저장되게 하는 것으로, 상기 제 1 쿠키는 상기 제 1 호스트와 연관되는, 상기 제 1 쿠키로서 저장되게 하기;
상기 클라이언트 디바이스가 상기 암호화 키를 상기 컴퓨팅 시스템과 연관된 제 2 호스트로 송신하게 하도록 구성되는, 상기 송신 단계;
상기 컴퓨팅 시스템에 의해, 상기 클라이언트 디바이스로부터 상기 암호화 키를 포함한 제 2 요청을 수신하는 단계;
상기 컴퓨팅 시스템에 의해, 상기 암호화 키가 이전에 복호화되지 않았다고 결정할 때 상기 키를 획득하기 위해 상기 수신된 암호화 키를 복호화하는 단계; 및
상기 컴퓨팅 시스템에 의해, 상기 복호화로부터 획득된 제 2 지시들 및 키를 상기 제 2 호스트로부터 상기 클라이언트 디바이스로 송신하는 단계로서, 상기 제 2 지시들은 상기 복호화로부터 획득된 키가 상기 클라이언트 디바이스 상에서 제 2 쿠키로서 저장되게 하도록 구성되고, 상기 제 2 쿠키는 상기 제 2 호스트와 연관되는, 상기 제 2 지시들 및 키 송신 단계.
실시예들에서, 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체가 제공되며, 상기 저장 매체는 상기 프로세서들, 특히 컴퓨팅 시스템이 여기에서 또는 첨부된 청구항들에서 설명된 임의의 실시예에 따른 방법의 단계들 모두를 포함한 방법을 실행하게 하기 위해 컴퓨팅 시스템의 하나 이상의 프로세서들에 의해 실행될 때 동작 가능한 소프트웨어를 구체화한다.
실시예들에서, 컴퓨팅 시스템이 제공되며, 상기 컴퓨팅 시스템은 하나 이상의 프로세서들; 및 상기 프로세서들 중 하나 이상에 결합되며 상기 프로세서들 중 하나 이상에 의해 실행될 때, 시스템이 여기에서 또는 첨부된 청구항들에서 설명된 임의의 실시예에 따른 방법의 단계들 모두를 포함한 방법을 실행하게 하도록 동작 가능한, 지시들, 특히 컴퓨터-실행 가능한 지시들을 포함한 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체를 포함한다.
실시예들에서, 상기 방법은:
상기 컴퓨팅 시스템에 의해, 상기 클라이언트 디바이스로부터 이전 요청을 수신하는 단계로서, 상기 이전 요청은 상기 컴퓨팅 시스템과 연관된 제 3 호스트로 향해지며 상기 요청이 수신되기 전에 수신되는, 상기 이전 요청 수신 단계; 및
상기 컴퓨팅 시스템에 의해, 상기 이전 요청에 응답하여 상기 클라이언트 디바이스로 리다이렉션 지시를 송신하는 단계로서, 상기 리다이렉션 지시는 상기 클라이언트 디바이스가 상기 제 1 요청을 상기 제 1 호스트로 전송하게 하도록 구성되는, 상기 리다이렉션 지시 송신 단계를 포함할 수 있다.
실시예들에서, 상기 방법은:
상기 컴퓨팅 시스템에 의해, 넌스를 생성하는 단계; 및
상기 컴퓨팅 시스템에 의해, 상기 넌스를 상기 클라이언트 디바이스로 송신하는 단계를 더 포함할 수 있으며,
상기 제 1 지시들은 상기 클라이언트 디바이스가 상기 컴퓨팅 시스템과 연관된 상기 제 2 호스트로 상기 암호화 키와 함께 상기 넌스를 송신하게 하도록 구성되며;
상기 암호화 키가 이전에 복호화되지 않았다는 결정은 상기 넌스에 기초한다.
실시예들에서, 상기 방법은:
상기 컴퓨팅 시스템에 의해, 제 2 사용자와 연관된 제 2 클라이언트 디바이스로부터 제 3 요청을 수신하는 단계로서, 상기 제 3 요청은 상기 암호화 키 및 상기 넌스를 포함하는, 상기 제 3 요청 수신 단계;
상기 컴퓨팅 시스템에 의해, (1) 상기 넌스가 이전에 사용되었거나 또는 (2) 상기 넌스가 상기 암호화 키에 제한되지 않았음을 결정하는 단계; 및
상기 컴퓨팅 시스템에 의해, 상기 제 3 요청을 거절하는 단계를 더 포함할 수 있다.
방법의 실시예들에서, 제 1 쿠키는 클라이언트-측 스크립트들에 의해 액세스 가능하도록 구성될 수 있으며, 여기에서 상기 제 2 쿠키는 클라이언트-측 스크립트들에 의해 액세스 가능하지 않도록 구성될 수 있다.
방법의 실시예들에서, 상기 제 1 호스트 및 상기 제 2 호스트는 상이할 수 있다.
방법의 실시예들에서, 상기 제 2 호스트는 제 3 자에 의해 호스팅된 웹 페이지로의 액세스를 제공하도록 구성될 수 있다.
실시예들에서, 상기 방법은:
상기 컴퓨팅 시스템에 의해, 상기 제 2 쿠키로서 저장된 키를 포함한 제 3 요청을 상기 클라이언트 디바이스로부터 수신하는 단계;
상기 컴퓨팅 디바이스에 의해, 상기 제 3 요청과 함께 수신된 키에 기초하여 제 2 검증 토큰을 생성하는 단계; 및
상기 컴퓨팅 디바이스에 의해, 상기 제 3 요청에 응답하여 웹 페이지를 상기 클라이언트 디바이스로 송신하는 단계로서, 상기 웹 페이지는 상기 제 2 검증 토큰 및 지시들을 포함하며, 상기 지시들은 상기 클라이언트 디바이스로 하여금:
상기 제 1 쿠키로서 저장된 검증 토큰과 상기 제 2 검증 토큰을 비교하게 하며;
상기 비교에 기초하여 상기 웹 페이지를 렌더링할지를 결정하게 하도록 구성된 상기 제 2 검증 토큰 및 지시들을 포함하는, 상기 웹 페이지 송신 단계를 추가로 포함할 수 있다.
본 발명의 시스템 및 방법은 공격자 및 사용자가 양쪽 모두 동일한 ICK/ICKT를 사용하는 것을 방지할 것이며, 그에 의해 세션 고정을 방지한다.
도 1은 사용자가 서버와 세션을 안전하게 수립하는 예시적인 통신 시퀀스 다이어그램을 예시한다.
도 2는 서버와의 세션을 안전하게 수립하기 위한 예시적인 방법을 예시한다.
도 3은 예시적인 네트워크 환경을 예시한다.
도 4는 예시적인 컴퓨터 시스템을 예시한다.
특정한 실시예들에서, 하나 이상의 웹 서버들을 사용하여 제공된 포털 서비스와 같은, 온라인 애플리케이션은 사용자들이 제 3 자 웹사이트들을 액세스하도록 허용할 수 있다. 특정한 실시예들에서, 제 3 자 웹사이트들로의 액세스는 포털의 도메인의 서브도메인들을 통해 포털에 의해 제공될 수 있다. 특정한 실시예들에서, 제 3 자 웹사이트를 호스팅하기 위해 사용된 포털의 서브도메인은 제 3 자 웹사이트의 어드레스에 기초하여 생성될 수 있다. 예로서, 포털 서비스 제공자가 어드레스 0.fbs.com에서 호스팅되고 제 3 자 웹사이트가 www.3rdparty.com에서 호스팅되면, 포털은 제 3 자 웹사이트가 어드레스 www-3rdparth-com.0.fbs.com을 통해 이용 가능하게 할 수 있다. 이 예에서, 제 3 자 콘텐트로의 액세스는 포털의 서브도메인을 통해 제공된다.
특정한 실시예들에서, 사용자가 포털과 통신할 때, 포털은 사용자 및/또는 사용자와 포털 사이에서의 세션을 식별하기 위해 세션 키(예컨대, ICK)를 자동으로 생성할 수 있다. 세션 키는 각각의 사용자에 대해 고유할 수 있으며, 사용자의 클라이언트 디바이스 상에서의 쿠키에(예컨대, 클라이언트 디바이스 상에서의 브라우저에) 저장될 수 있다. 클라이언트 디바이스는 스마트폰, 데스크탑 또는 랩탑 컴퓨터, 태블릿, 착용 가능한 디바이스(예컨대, 스마트워치), 또는 가상 현실 헤드셋과 같은 임의의 적절한 컴퓨팅 디바이스일 수 있다. 저장된 쿠키는 둘 사이에서의 세션을 식별하기 위해 사용자 디바이스와 포털 사이에서의 통신들에서 사용될 수 있다. 특정한 실시예들에서, 상기 쿠키 내에서의 정보는 포털의 서버상에서의 쿠키 자(cookie jar)와 연관될 수 있다. 서버상에서의 쿠키 자는 사용자가 포털을 통해 상호 작용하는 제 3 자 웹사이트들의 쿠키들을 저장하기 위해 사용될 수 있다. 특정한 실시예들에서, 세션 키는 서버상에서의 대응하는 쿠키 자를 액세스하고 및/또는 복호화하기 위해 사용될 수 있다.
특정한 실시예들에서, 공격자는 공격자 및 사용자가 포털과 통신하기 위해 동일한 ICK를 사용한다면 세션 고정을 달성할 수 있다. ICK가 통신 엔티티(합법적 사용자 또는 공격자일 수 있는)로 하여금 대응하는 쿠키 자를 액세스하도록 허용하므로, 공격자 및 사용자 양쪽 모두는 그들 양쪽 모두가 동일한 ICK를 사용하여 포털과 통신한다면 동일한 쿠키 자를 액세스할 수 있다. 따라서, 예를 들어, 서버-측 쿠키 자가 사용자 및 그/그녀의 이메일 서버 사이에 세션 쿠키를 포함한다면, 사용자의 ICK를 가진 공격자는 공격자가 또한 이메일 서버의 세션 쿠키로의 액세스를 가지므로 상기 세션에 참여할 수 있을 것이다. 이를 달성하기 위해, 공격자는, 예를 들어, (1) 희생자의 ICK를 훔치거나 또는 (2) 희생자가 서버와 통신하기 위해 공격자의 ICK를 사용하도록 희생자의 시스템으로 공격자 자신의 ICK를 주입할 수 있다.
특정한 실시예들에서, ICK는 그것이 포털을 통해 제 3 자 웹 페이지들에 의해 호스팅된 악의적인 클라이언트-측 스크립트들로 액세스 가능하고 및/또는 수정 가능한 쿠키로서 저장된다면 공격들에 취약할 수 있다. 예를 들어, 이것은 ICK가 대응하는 제 3 자 웹 페이지로의 액세스를 제공하기 위해 포털에 의해 할당된 서브도메인(예컨대, www-3rdparty-com.0.fbs.com)의 부모 도메인(예컨대, 0.fbs.com)과 연관된 쿠키로서 저장된다면 발생할 수 있다. 악의적인 제 3 자 웹사이트는 클라이언트 디바이스 상에서 실행될 때, 임의의 액세스 가능한 클라이언트-측 쿠키들을 조작할 수 있는 클라이언트-측 스크립트들을 포함할 수 있다. 따라서, ICK가 부모 도메인과 연관된 쿠키로서 저장된다면, 브라우저가 통상적으로 쿠키를 쿠키 및 그것의 서브도메인들 중 임의의 것을 설정하기 위해 사용된 주어진 도메인으로 액세스 가능하게 할 것이기 때문에 취약할 수 있다. 따라서, 쿠키가 0.fbs.com과 연관되면, 그것은 상기 페이지가 0.fbs.com의 서브도메인으로부터 포털을 통해 제공될 때 제 3 자 웹 페이지에 의해 액세스될 수 있다(예컨대, JavaScript를 통해).
특정한 실시예들에서, 세션 고정은 요청에서 제공된 ICK로부터 도출된, 검증 토큰, ICKT를 포함하도록 포털로부터의 각각의 통신 응답을 요구함으로써 방지될 수 있다. 응답의 ICKT는 그 후 원래 송신된 ICK의 무결성을 보장하기 위해 안전하게 저장된 검증 토큰(ICKT)과 클라이언트 측 상에서 비교될 수 있다. 예로서, 포털을 통해 제 3 자 웹 페이지를 요청하는 사용자는 국소적으로 저장된 ICK를 포털의 서버로 제공할 수 있으며, 이것은 그 후 도함수(f(ick))를 사용하여 ICKT를 생성하고 그것을 리턴된 웹 페이지 내에 내장할 수 있다. 리턴된 웹 페이지를 로딩할 때, 수신 ICKT는 이전에 및 안전하게 저장된 ICKT에 비교될 수 있다. 불일치는 요청에서 전송된 ICK가 손상되었음을 의미한다. 특정한 실시예들에서, ICKT는 1-방향 함수(f(ick))(예컨대, HMAC)를 사용하여 원래 ICK로부터 도출될 수 있다. 특정한 실시예들에서, ICKT는 사용자가 처음에 로그인을 요청할 때와 같은, ICK가 생성될 때 생성될 수 있다. ICK와 달리, 특정한 실시예들에서 ICKT는 localStorage에서와 같은, 공격자에 의해 도달 가능하지 않은 위치에서 클라이언트 디바이스 상에 안전하게 저장될 수 있다. 쿠키들과 달리, 동일-출처 정책을 고수하는, localStorage는 출처에 의해 분리되며(각각의 출처는 그 자신의 별개의 localStorage를 갖는다), 이것은 하나의 출처에서의 JavaScript가 또 다른 출처의 localStorage를 액세스할 수 없음을 의미한다. 예로서, 제 3 자 웹사이트들이 재기록 출처를 통해 호스팅될 수 있는 포털의 맥락에서, 제 3 자 재기록 출처(예컨대, http://3rdparty.rewrite.0.fbs.com)을 통해 호스팅된 잠재적인 공격자의 페이지는 ICKT의 출처(예컨대, http://0.fbs.com)와 상이할 수 있다. 결과적으로, 공격자의 웹 페이지 상에서 호스팅된 스크립트들은 그것이 상이한 출처의 localStorage에 안전하게 저장되기 때문에 ICKT를 액세스할 수 없을 것이다. ICKT를 안전하게 보장하기 위한 localStorage의 사용과 관련되어, 특정한 실시예들은 2017년 2월 6일에 출원된, "도메인 포털을 통한 안전한 콘텐트 전달"이라는 제목의 미국 특허 출원 번호 제15/425,974호에서 개시된 하나 이상의 시스템들, 구성요소들, 요소들, 기능들, 방법들, 동작들, 또는 단계들을 이용할 수 있으며, 그 내용은 여기에서 전체적으로 참조로서 통합된다.
그러나, 모든 웹 브라우저들이 localStorage를 지원하는 것은 아니다(예컨대, Opera Mini). 특정한 실시예들에서, 안전한 저장 장치로서 localStorage를 사용하는 대신에, 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를 가로챌 수 있는 것이 가능할 수 있다. 그렇다면, 사용자 및 공격자 양쪽 모두는 ICK와 연관된 세션을 공유하며 연관된 세션을 액세스할 수 있을 것이다. 이를 방지하기 위해, 서버는 ICKT와 함께 ICK를 직접 전송하지 않을 수 있다. 특정한 실시예들에서, 서버는 대신에 사용자에게 암호화된 ICK를 송신할 수 있으며, 이것은 여기에서 EICK로 불리울 것이다. 특정한 실시예들에서, EICK는 단지 서버에게만 알려진 비밀 암호화 키를 갖고 2-방향 암호화 함수를 사용하여 암호화될 수 있다. EICK를 수신하면, 클라이언트 디바이스는 ICK를 얻기 위해 EICK를 복호화하도록 서버에 요청할 수 있다. 공격자가 동일한 EICK를 복호화하도록 서버에 유사하게 요청하는 것을 방지하기 위해, 특정한 실시예들에서, 시스템은 이러한 복호화가 승인될 횟수들을 제한하기 위해(예컨대, 한 번) 넌스에 EICK를 결속시킬 수 있다. 따라서, 공격자가 사용자가 또한 가질 수 있는, EICK 및 넌스를 가로챌 수 있을지라도, 당사자들 중 단지 하나(즉, 공격자 또는 사용자, 양쪽 모두는 아님)만이 넌스로 인해 EICK를 복호화하도록 서버에 성공적으로 요청할 수 있을 것이다. 이러한 보안 조치는 공격자 및 사용자가 양쪽 모두 동일한 ICK/ICKT를 사용하는 것을 방지할 것이며, 그에 의해 세션 고정을 방지한다.
도 1은 여기에서 설명된 특정한 실시예들에 따라 포털과 세션을 수립한 사용자의 통신 시퀀스 다이어그램의 예를 예시한다. 예시된 예는 사용자(100)와 포털(101)(예컨대, 0.freebasics.com), 보안 출처(102)(예컨대 www.0.freebasics.com) 및 재기록 출처(103)(예컨대, rewrite.i.org) 사이에서의 통신을 도시한다. 상기 논의된 바와 같이, 보안 출처(102)는 재기록 출처(103)를 통해 제공된 제 3 자 웹 페이지들에서 클라이언트-측 스크립트들로 액세스 가능하지 않은 그것의 쿠키들에 대하여 안전하다. 특정한 실시예들에서, 보안 출처(102)(예컨대, www.0.fbs.com 또는 secure.0.fbs.com)는 재기록 출처(예컨대, rewrite.i.org)와 비-공개-접미사-리스트 호스트를 공유하지 않을 수 있다. 상기 논의된 바와 같이, 재기록 출처(103)는 제 3 자 웹사이트들로의 사용자 액세스를 제공하도록 구성된다. 특정한 실시예들에서, 포털(101), 보안 출처(102) 및 재기록 출처(103)와 연관된 서버(들)는 공통 엔티티에 의해 제어된다.
단계(110)에서, 사용자(100)는 특정한 실시예들에서 그/그녀의 웹 브라우저 또는 포털과 연관된 원격 서버들과 통신할 수 있는 임의의 다른 유형의 애플리케이션을 통해 포털과 로그인 절차를 개시할 수 있다. 특정한 실시예들에서, 초기 요청은 HTTP GET 요청을 포함할 수 있다. 사용자는 웰컴 스크린, 로그인 스크린을 보게 되며 및/또는 포털(101)의 서비스 조건을 수용하도록 요청받을 수 있다.
단계(120)에서, 포털(101)은 사용자의 브라우저(100)를 보안 출처(102)로 리다이렉팅하기 위해 리다이렉션 지시로 응답할 수 있다(예컨대, 상태 코드 302를 가진 HTTP 응답을 사용하여).
단계(125)에서, 사용자의 브라우저(100)는 리다이렉션 지시에 따라 요청(예컨대, HTTP GET)을 보안 출처(102)로 전송할 수 있다. 특정한 실시예들에서, 요청에 응답하여, 보안 출처(102)와 연관된 서버는 ICK 키를 생성할 수 있다. 특정한 실시예들에서, ICK 키는 사용자가 포털과 세션을 수립하도록 요청할 때마다 새롭게 생성되는 랜덤 또는 의사-랜덤 키일 수 있다. 특정한 실시예들에서, ICK 키는 ICK 키와 연관된 쿠키 자를 콜드-액세스하는 것에 대해 사용자 프라이버시를 가능하게 하기 위해 서버에 의해 지속되지 않을 수 있다. ICK 키 생성은 그것의 무결성을 추가로 보장하기 위해 요청자에 의해 제공된 어떤 것에 의해서도 영향을 받지 않는다는 것이 이해되어야 한다. 특정한 실시예들에서, ICK 키가 생성되면, 서버는 또한 ICK 키와 연관된 수송 중(in-transit) 키를 생성할 수 있다. 특정한 실시예들에서, EICK로 불리울 수 있는, 수송 중 키는 EICK = E(SECRET, ICK)이도록 암호화 함수를 사용하여 ICK 키를 암호화함으로써 생성될 수 있으며, 여기에서 SECRET는 서버-측 비밀 키이고 암호화 함수(E(K, M))는 키(K) 하에서 메시지(M)의 대칭 암호화를 나타낸다. 특정한 실시예들에서, 서버는 또한 넌스(N)를 생성할 수 있으며, 이것은 EICK가 단지 한 번 복호화됨을 보장하기 위해 뒤이은 통신들에서 서버로 단지 한 번 제공될 수 있다. 특정한 실시예들에서, 넌스(N)는 넌스(N)의 검증이 연관된 EICK의 프리젠테이션에 의존하도록 EICK에 제한될 수 있다(예컨대, 넌스의 검증은 상이한 EICK가 넌스를 제공받는 경우 실패할 수 있다). 뿐만 아니라, 특정한 실시예들에서, 서버는 상기 논의된 바와 같이, 검증 토큰 ICKT를 생성할 수 있다. ICKT 토큰은 예로서, 비밀 키를 가진 HMAC 함수 또는 ICK가 ICKT로부터 획득될 수 없도록 임의의 다른 1-방향 함수를 사용하여 ICK로부터 도출될 수 있다.
단계(130)에서, 서버는 보안 출처(102)로부터의 응답을 사용자(100)로 전송할 수 있다. 응답은 사용자의 브라우저(100)가 예컨대, 보안 출처(103.1)와 연관된 JavaScript-액세스 가능한 클라이언트-측 쿠키로서 생성된 ICKT를 저장하게 하는 지시를 포함할 수 있다. 보안 출처(예컨대, secure.0.fbs.com 또는 www.0.fbs.com) 및 재기록 출처(예컨대, rewrite.i.org)는 비-공개-접미사-리스트 호스트를 공유하지 않으므로, 재기록 출처를 통해 호스팅된 사이트들(악의적인 코드를 포함할 수 있는)은 보안 출처와 연관된 쿠키들에 영향을 받고, 이를 액세스하거나 또는 섀도우잉할 수 없다. 공격자가 쿠키-플러딩을 사용하여 쿠키를 제거할 수 있지만, 이것은 새로운 ICK 및 ICKT가 획득되게 할 것이다. 특정한 실시예들에서, ICKT 쿠키는 클라이언트-측 스크립트들(예컨대, 보안 출처(102)에 의해 호스팅된 것들)로 액세스 가능하게 하는, HttpOnly 플래그로 설정되지 않으며, 따라서 ICKT는 ICK의 무결성을 검증하기 위해 클라이언트-측 스크립트들에 의해 사용될 수 있다. 특정한 실시예들에서, 서버는 또한 EICK 및 넌스(N)를 보안 출처(102)를 통해 사용자(100)로 전송할 수 있다. EICK 및 넌스(N)가 공격들에 취약할 수 있으므로, 실제 ICK보다는 암호화된 EICK를 전송하는 것이 이 스테이지에서 ICK가 공격자에게 노출되는 것을 방지한다는 것이 이해되어야 한다.
단계(140)에서, 사용자(100)는 EICK 및 넌스(N)를 재기록 출처(103)로 전송하여, EICK를 복호화하도록 요청할 수 있다. 예를 들어, EICK 및 넌스(N)는 재기록 출처(103)와 연관된 URL의 질의 파라미터들로서 송신될 수 있다. 요청을 수신하면, 재기록 출처(103)와 연관된 서버는 넌스(N)에 기초하여 요청이 유효한지를 검증할 수 있다. 예를 들어, 서버는 넌스(N)가 이전에 이미 사용되었는지를 체크할 수 있다. 넌스가 이미 사용되었다면, 서버는 요청을 차단하며 코드 403을 가진 HTTP 금지 응답을 발행할 수 있다. 서버는 또한 넌스(N)가 주어진 EICK에 결속되는지를 체크하며, 넌스(N) 및 EICK가 서로 결속되지 않았다면 요청을 차단할 수 있다. 이러한 프로세스는 임의의 주어진 EICK가 단지 한 번 서버에 의해 복호화될 수 있음을 보장하며, 이것은 결과적으로 단지 하나의 요청 당사자가 서버로부터 복호화된 ICK를 획득할 수 있음을 보장한다. 서버가, 넌스(N)가 EICK에 결속되며 결코 사용되지 않았다고 결정하면, 서버는 넌스를 사용 중인 것으로 표시하고 예컨대, ICK = D(SECRET, EICK)를 사용하여 EICK로부터 ICK를 복구할 수 있으며, 여기에서 SECRET는 상기 논의된 비밀 암호화 키를 나타내고 D(K, M)은 키(K) 하에서 메시지(M)의 대칭 복호화를 나타낸다.
단계(150)에서, 재기록 출처(103)와 연관된 서버는 ICK와 함께 응답을 사용자(100)로 전송할 수 있다. 특정한 실시예들에서, 응답은 사용자의 브라우저(100)가 재기록 출처(103)와 연관된 쿠키로서 ICK를 저장하게 하는 지시들을 포함할 수 있다. ICK는 그것이 클라이언트-측 스크립트들에 의해 액세스될 수 없도록 HttpOnly 쿠키로서 저장될 수 있다. 특정한 실시예들에서, 서버는 또한 사용자의 브라우저(100)가 포털(101)과의 통신을 재개하게 하는 리다이렉션 지시(예컨대, 코드 302를 가진 HTTP 응답)를 사용자(100)에게 전송할 수 있다(예컨대, 단계 160).
상이한 출처들로부터 ICKT 및 ICK를 요청하도록 사용자(100)를 리다이렉팅함으로써, 특정한 실시예들에서 ICKT 및 ICK 쿠키들은 상이한 호스트들과 연관된다(예컨대, ICKT는 보안 출처(102)와 연관되며 ICK는 재기록 출처(103)와 연관된다). 공격자가 재기록 출처(103)와 연관된 ICK를 제어할 수 있을지라도, 공격자는 그것이 ICKT에 일치하지 않기 때문에 ICK-고정 벡터로서 ICK를 사용할 수 없을 것이다. 예를 들어, 공격자가 EICK 및 넌스(N)를 제어할 수 있다고 가정하자(예컨대, 사용자의 EICK 및 N을 훔치거나 또는 사용자로 하여금 공격자의 EICK 및 N을 사용하게 함으로써). 공격자가 대응하는 ICK를 알고 싶어한다면, 그것은 (a) 복호화하도록 서버에 요청하지 않고 ICK를 직접 획득하기 위해 EICK(가능성이 적은)의 암호화를 깨거나; 또는 (b) EICK를 복호화하도록 서버에 요청해야 한다. 서버가 단지 EICK를 한 번 복호화하므로(넌스(N)로 인해), 공격자 또는 사용자가 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의 방법의 하나 이상의 단계들을 반복할 수 있다. 본 개시는 특정한 순서로 발생하는 것으로서 도 2의 방법의 특정한 단계들을 설명하고 예시하지만, 본 개시는 임의의 적절한 순서로 발생하는 도 2의 방법의 임의의 적절한 단계들을 고려한다. 게다가, 본 개시는 도 2의 방법의 특정한 단계들을 포함한 서버와의 세션을 안전하게 수립하기 위한 예시적인 방법을 설명하고 예시하지만, 본 개시는 적절한 경우, 도 2의 방법의 단계들 모두, 일부를 포함하거나 또는 포함하지 않을 수 있는, 임의의 적절한 단계들을 포함하여, 서버와 세션을 안전하게 수립하기 위한 임의의 적절한 방법을 고려한다. 더욱이, 본 개시는 도 2의 방법의 특정한 단계들을 실행하는 특정한 구성요소들, 디바이스들, 또는 시스템들을 설명하고 예시하지만, 본 개시는 도 2의 방법의 임의의 적절한 단계들을 실행하는 임의의 적절한 구성요소들, 디바이스들, 또는 시스템들의 임의의 적절한 조합을 고려한다.
도 3은 소셜-네트워킹 시스템과 연관된 예시적인 네트워크 환경(300)을 예시한다. 네트워크 환경(300)은 네트워크(310)에 의해 서로 연결된 클라이언트 시스템(330), 소셜-네트워킹 시스템(360) 및 제 3 자 시스템(370)을 포함한다. 도 3은 클라이언트 시스템(330), 소셜-네트워킹 시스템(360), 제 3 자 시스템(370) 및 네트워크(310)의 특정한 배열을 예시하지만, 본 개시는 클라이언트 시스템(330), 소셜-네트워킹 시스템(360), 제 3 자 시스템(370) 및 네트워크(310)의 임의의 적절한 배열을 고려한다. 제한으로서가 아닌 예로서, 클라이언트 시스템(330), 소셜-네트워킹 시스템(360) 및 제 3 자 시스템(370) 중 둘 이상은 서로 직접 연결되어, 네트워크(310)를 바이패스할 수 있다. 또 다른 예로서, 클라이언트 시스템(330), 소셜-네트워킹 시스템(360) 및 제 3 자 시스템(370) 중 둘 이상은 전체적으로 또는 부분적으로 서로 물리적으로 또는 논리적으로 동일한 장소에 배치될 수 있다. 게다가, 도 3은 특정한 수의 클라이언트 시스템들(330), 소셜-네트워킹 시스템들(360), 제 3 자 시스템들(370) 및 네트워크들(310)을 예시하지만, 본 개시는 임의의 적절한 수의 클라이언트 시스템들(330), 소셜-네트워킹 시스템들(360), 제 3 자 시스템들(370) 및 네트워크들(310)을 고려한다. 제한으로서가 아닌 예로서, 네트워크 환경(300)은 다수의 클라이언트 시스템(330), 소셜-네트워킹 시스템들(360), 제 3 자 시스템들(370) 및 네트워크들(310)을 포함할 수 있다.
본 개시는 임의의 적절한 네트워크(310)를 고려한다. 제한으로서가 아닌 예로서, 네트워크(310)의 하나 이상의 부분들은 애드 혹 네트워크, 인트라넷, 엑스트라넷, 가상 사설 네트워크(VPN), 근거리 네트워크(LAN), 무선 LAN(WLAN), 광역 네트워크(WAN), 무선 WAN(WWAN), 대도시 영역 네트워크(MAN), 인터넷의 일 부분, 공중 스위칭 전화 네트워크(PSTN)의 일 부분, 휴대 전화 네트워크, 또는 이것들 중 둘 이상의 조합을 포함할 수 있다. 네트워크(310)는 하나 이상의 네트워크들(310)을 포함할 수 있다.
링크들(350)은 클라이언트 시스템(330), 소셜-네트워킹 시스템(360) 및 제 3 자 시스템(370)을 통신 네트워크(310)에 또는 서로 연결할 수 있다. 본 개시는 임의의 적절한 링크들(350)을 고려한다. 특정한 실시예들에서, 하나 이상의 링크들(350)은 하나 이상의 와이어라인(예를 들어 디지털 가입자 회선(DSL) 또는 케이블 서비스 인터페이스 규격을 통한 데이터(DOCSIS)와 같은), 무선(예를 들어, Wi-Fi 또는 마이크로파 액세스를 위한 월드와이드 상호 연동성(WiMAX)과 같은), 또는 광학(예를 들어, 동기식 광학 네트워크(SONET) 또는 동기식 디지털 계층(SDH)과 같은) 링크들을 포함한다. 특정한 실시예들에서, 하나 이상의 링크들(350) 각각은 애드 혹 네트워크, 인트라넷, 엑스트라넷, VPN, LAN, WLAN, WAN, WWAN, MAN, 인터넷의 일 부분, PSTN의 일 부분, 셀룰러 기술-기반 네트워크, 위상 통신 기술-기반 네트워크, 또 다른 링크(350), 또는 둘 이상의 이러한 링크들(350)의 조합을 포함한다. 링크들(350)은 네트워크 환경(300) 전체에 걸쳐 반드시 동일할 필요는 없다. 하나 이상의 제 1 링크들(350)은 하나 이상의 면들에서 하나 이상의 제 2 링크들(350)과 상이할 수 있다.
특정한 실시예들에서, 클라이언트 시스템(330)은 하드웨어, 소프트웨어, 또는 내장된 로직 구성요소들 또는 둘 이상의 이러한 구성요소들의 조합을 포함하며 클라이언트 시스템(330)에 의해 구현되거나 또는 지원된 적절한 기능들을 실행할 수 있는 전자 디바이스일 수 있다. 제한으로서가 아닌 예로서, 클라이언트 시스템(330)은 데스크탑 컴퓨터, 노트북 또는 랩탑 컴퓨터, 넷북, 태블릿 컴퓨터, 전자-책 판독기, GPS 디바이스, 카메라, 개인용 디지털 보조기(PDA), 핸드헬드 전자 디바이스, 휴대 전화, 스마트폰, 증강/가상 현실 디바이스, 다른 적절한 전자 디바이스, 또는 그것의 임의의 적절한 조합과 같은 컴퓨터 시스템을 포함할 수 있다. 본 개시는 임의의 적절한 클라이언트 시스템들(330)을 고려한다. 클라이언트 시스템(330)은 클라이언트 시스템(330)에서의 네트워크 사용자가 네트워크(310)를 액세스할 수 있게 할 것이다. 클라이언트 시스템(330)은 그것의 사용자가 다른 클라이언트 시스템들(330)에서 다른 사용자들과 통신할 수 있게 할 것이다.
특정한 실시예들에서, 클라이언트 시스템(330)은 MICROSOFT INTERNET EXPLORER, GOOGLE CHROME 또는 MOZILLA FIREFOX와 같은 웹 브라우저(332)를 포함할 수 있으며, TOOLBAR 또는 YAHOO TOOLBAR와 같은, 하나 이상의 애드-온들, 플러그-인들, 또는 다른 확장부들을 가질 수 있다. 클라이언트 시스템(330)에서의 사용자는 웹 브라우저(332)를 특정한 서버(서버(362), 또는 제 3 자 시스템(370)과 연관된 서버와 같은)로 향하게 하는 고유 리소스 로케이터(URL) 또는 다른 어드레스를 입력할 수 있으며, 웹 브라우저(332)는 하이퍼 텍스트 전송 프로토콜(HTTP) 요청을 생성하고 HTTP 요청을 서버로 전달할 수 있다. 서버는 HTTP 요청을 수용하며 HTTP 요청에 응답하여 하나 이상의 하이퍼 텍스트 마크업 언어(HTML) 파일들을 클라이언트 시스템(330)으로 전달할 수 있다. 클라이언트 시스템(330)은 사용자로의 프리젠테이션을 위해 서버로부터의 HTML 파일들에 기초하여 웹페이지를 렌더링할 수 있다. 본 개시는 임의의 적절한 웹페이지 파일들을 고려한다. 제한으로서가 아닌 예로서, 웹페이지들은 특정한 요구들에 따라, HTML 파일들, 확장 가능한 하이퍼 텍스트 마크업 언어(XHTML) 파일들, 또는 확장 가능한 마크업 언어(XML) 파일들로부터 렌더링할 수 있다. 이러한 페이지들은 또한, 예를 들면 및 제한 없이, JAVASCRIPT, JAVA, MICROSOFT SILVERLIGHT, AJAX(비동기식 JAVASCRIPT 및 XML)와 같은 마크업 언어 및 스크립트들의 조합들 등으로 기록된 것들과 같은, 스크립트들을 실행할 수 있다. 여기에서, 웹페이지에 대한 참조는 적절한 경우, 하나 이상의 대응하는 웹페이지 파일들(브라우저가 웹페이지를 렌더링하기 위해 사용할 수 있는)을 포함하며 그 역 또한 마찬가지이다.
특정한 실시예들에서, 소셜-네트워킹 시스템(360)은 온라인 소셜 네트워크를 호스팅할 수 있는 네트워크-어드레스 가능한 컴퓨팅 시스템일 수 있다. 소셜-네트워킹 시스템(360)은 예를 들어, 사용자-프로파일 데이터, 개념-프로파일 데이터, 소셜-그래프 정보, 또는 온라인 소셜 네트워크에 관련된 다른 적절한 데이터와 같은, 소셜-네트워킹 데이터를 생성하고, 저장하고, 수신하며, 전송할 수 있다. 소셜-네트워킹 시스템(360)은 직접 또는 네트워크(310)를 통해 네트워크 환경(300)의 다른 구성요소들에 의해 액세스될 수 있다. 제한으로서가 아닌 예로서, 클라이언트 시스템(330)은 웹 브라우저(332), 또는 소셜-네트워킹 시스템(360)과 연관된 네이티브 애플리케이션(예컨대, 이동 소셜-네트워킹 애플리케이션, 메시징 애플리케이션, 또 다른 적절한 애플리케이션, 또는 그것의 임의의 조합)을 사용하여 직접 또는 네트워크(310)를 통해 소셜-네트워킹 시스템(360)을 액세스할 수 있다. 특정한 실시예들에서, 소셜-네트워킹 시스템(360)은 하나 이상의 서버들(362)을 포함할 수 있다. 각각의 서버(362)는 다수의 컴퓨터들 또는 다수의 데이터센터들을 포괄한 통합 서버 또는 분산형 서버일 수 있다. 서버들(362)은, 예를 들어 및 제한 없이, 웹 서버, 뉴스 서버, 메일 서버, 메시지 서버, 광고 서버, 파일 서버, 애플리케이션 서버, 교환 서버, 데이터베이스 서버, 프록시 서버, 여기에서 설명된 기능들 또는 프로세스들을 수행하기에 적절한 또 다른 서버, 또는 그것의 임의의 조합과 같은, 다양한 유형들일 수 있다. 특정한 실시예들에서, 각각의 서버(362)는 하드웨어, 소프트웨어, 또는 내장된 로직 구성요소들 또는 서버(362)에 의해 구현되거나 또는 지원된 적절한 기능들을 실행하기 위한 둘 이상의 이러한 구성요소들의 조합을 포함할 수 있다. 특정한 실시예들에서, 소셜-네트워킹 시스템(360)은 하나 이상의 데이터 저장소들(364)을 포함할 수 있다. 데이터 저장소들(364)은 다양한 유형들의 정보를 저장하기 위해 사용될 수 있다. 특정한 실시예들에서, 데이터 저장소들(364)에 저장된 정보는 특정 데이터 구조들에 따라 조직될 수 있다. 특정한 실시예들에서, 각각의 데이터 저장소(364)는 관계형, 컬럼형, 연관형, 또는 다른 적절한 데이터베이스일 수 있다. 본 개시는 특정한 유형들의 데이터베이스들을 설명하거나 또는 예시하지만, 본 개시는 임의의 적절한 유형들의 데이터베이스들을 고려한다. 특정한 실시예들은 클라이언트 시스템(330), 소셜-네트워킹 시스템(360), 또는 제 3 자 시스템(370)이 데이터 저장소(364)에 저장된 정보를 관리하고, 검색하고, 수정하고, 부가하거나 또는 삭제할 수 있게 하는 인터페이스들을 제공할 수 있다.
특정한 실시예들에서, 소셜-네트워킹 시스템(360)은 하나 이상의 데이터 저장소들(364)에 하나 이상의 소셜 그래프들을 저장할 수 있다. 특정한 실시예들에서, 소셜 그래프는 다수의 노드들 - 다수의 사용자 노드들(각각이 특정한 사용자에 대응하는) 또는 다수의 개념 노드들(각각이 특정한 개념에 대응하는)을 포함할 수 있는 - 및 상기 노드들을 연결하는 다수의 에지들을 포함할 수 있다. 소셜-네트워킹 시스템(360)은 사용자들과 통신하고 상호작용하기 위한 능력을 온라인 소셜 네트워크의 사용자들에게 제공할 수 있다. 특정한 실시예들에서, 사용자들은 소셜-네트워킹 시스템(360)을 통해 온라인 소셜 네트워크에 참여하고 그 후 그들이 연결되기를 원하는 소셜-네트워킹 시스템(360)의 다수의 다른 사용자들로의 연결들(예컨대, 관계들)을 부가할 수 있다. 여기에서, 용어("친구")는 사용자가 소셜-네트워킹 시스템(360)을 통해 연결, 연관, 또는 관계를 형성하여 온 소셜-네트워킹 시스템(360)의 임의의 다른 사용자를 나타낼 수 있다.
특정한 실시예들에서, 소셜-네트워킹 시스템(360)은 소셜-네트워킹 시스템(360)에 의해 지원된, 다양한 유형들의 아이템들 또는 오브젝트들에 대한 동작들을 취하기 위한 능력을 사용자들에게 제공할 수 있다. 제한으로서가 아닌 예로서, 아이템들 및 오브젝트들은 소셜-네트워킹 시스템(360)의 사용자들이 속할 수 있는 그룹들 또는 소셜 네트워크들, 사용자가 관심 있을 수 있는 이벤트들 또는 캘린더 엔트리들, 사용자가 사용할 수 있는 컴퓨터-기반 애플리케이션들, 사용자들이 서비스를 통해 아이템들을 구매하거나 또는 팔도록 허용하는 트랜잭션들, 사용자가 수행할 수 있는 광고들과의 상호작용들, 또는 다른 적절한 아이템들 또는 오브젝트들을 포함할 수 있다. 사용자는 소셜-네트워킹 시스템(360)에서 또는 소셜-네트워킹 시스템(360)으로부터 분리되며 네트워크(310)를 통해 소셜-네트워킹 시스템(360)에 결합되는, 제 3 자 시스템(370)의 오부 시스템에 의해 또는 소셜-네트워킹 시스템(360)에서 표현될 수 있는 어떤 것과 상호작용할 수 있다.
특정한 실시예들에서, 소셜-네트워킹 시스템(360)은 다양한 엔티티들을 연결할 수 있을 것이다. 제한으로서 아닌 예로서, 소셜-네트워킹 시스템(360)은 사용자들이 서로 상호작용할 뿐만 아니라 제 3 자 시스템들(370) 또는 다른 엔티티들로부터 콘텐트를 수신할 수 있게 하거나, 또는 사용자들이 애플리케이션 프로그래밍 인터페이스들(API) 또는 다른 통신 채널들을 통해 이들 엔티티들과 상호 작용하도록 허용할 수 있게 할 것이다.
특정한 실시예들에서, 제 3 자 시스템(370)은 하나 이상의 유형들의 서버들, 하나 이상의 데이터 저장소들, 이에 제한되지 않지만 API들을 포함한, 하나 이상의 인터페이스들, 하나 이상의 웹 서비스들, 하나 이상의 콘텐트 소스들, 하나 이상의 네트워크들, 또는 예컨대, 서버들이 통신할 수 있는 임의의 다른 적절한 구성요소들을 포함할 수 있다. 제 3 자 시스템(370)은 소셜-네트워킹 시스템(360)을 동작시키는 엔티티와 상이한 엔티티에 의해 동작될 수 있다. 특정한 실시예들에서, 그러나, 소셜-네트워킹 시스템(360) 및 제 3 자 시스템들(370)은 소셜-네트워킹 시스템(360) 또는 제 3 자 시스템들(370)의 사용자들로 소셜-네트워킹 서비스들을 제공하기 위해 서로 함께 동작할 수 있다. 이런 의미에서, 소셜-네트워킹 시스템(360)은 제 3 자 시스템들(370)과 같은, 다른 시스템들이 소셜-네트워킹 서비스들 및 기능을 인터넷에 걸쳐 사용자들에게 제공하기 위해 사용할 수 있는, 플랫폼, 또는 백본을 제공할 수 있다.
특정한 실시예들에서, 제 3 자 시스템(370)은 제 3 자 콘텐트 오브젝트 제공자를 포함할 수 있다. 제 3 자 콘텐트 오브젝트 제공자는 클라이언트 시스템(330)으로 전달될 수 있는 콘텐트 오브젝트들의 하나 이상의 소스들을 포함할 수 있다. 제한으로서가 아닌 예로서, 콘텐트 오브젝트들은 예를 들어, 영화 상영 시간들, 영화 리뷰들, 레스토랑 리뷰들, 레스토랑 메뉴들, 제품 정보 및 리뷰들, 또는 다른 적절한 정보와 같은, 사용자에게 관심 있는 것들 또는 활동들에 관한 정보를 포함할 수 있다. 제한으로서가 아닌 또 다른 예로서, 콘텐트 오브젝트들은 쿠폰들, 할인 티켓들, 상품권들, 또는 다른 적절한 인센티브 오브젝트들과 같은, 인센티브 콘텐트 오브젝트들을 포함할 수 있다.
특정한 실시예들에서, 소셜-네트워킹 시스템(360)은 또한 사용자-생성 콘텐트 오브젝트들을 포함하며, 이것은 소셜-네트워킹 시스템(360)과 사용자의 상호작용들을 강화할 수 있다. 사용자-생성 콘텐트는 사용자가 소셜-네트워킹 시스템(360)에 부가하고, 업로드하고, 전송하거나, 또는 "포스팅"할 수 있는 어떤 것을 포함할 수 있다. 제한으로서가 아닌 예로서, 사용자는 포스트들을 클라이언트 시스템(330)으로부터 소셜-네트워킹 시스템(360)으로 전달한다. 포스트들은 상태 업데이트들 또는 다른 텍스트 데이터, 위치 정보, 사진들, 비디오들, 링크들, 음악 또는 다른 유사한 데이터 또는 매체와 같은 데이터를 포함할 수 있다. 콘텐트는 또한 뉴스피드 또는 스트림과 같은, "통신 채널"을 통해 제 3 자에 의해 소셜-네트워킹 시스템(360)에 부가될 수 있다.
특정한 실시예들에서, 소셜-네트워킹 시스템(360)은 다양한 서버들, 서브-시스템들, 프로그램들, 모듈들, 로그들 및 데이터 저장소들을 포함할 수 있다. 특정한 실시예들에서, 소셜-네트워킹 시스템(360)은 다음: 웹 서버, 동작 p제어기, 동작 로그, 제 3 자-콘텐트-오브젝트-노출 로그, 추론 모듈, 권한/프라이버시 서버, 검색 모듈, 광고-타겟팅 모듈, 사용자-인터페이스 모듈, 사용자-프로파일 저장소, 연결 저장소, 제 3 자 콘텐트 저장소, 또는 위치 저장소를 포함할 수 있다. 소셜-네트워킹 시스템(360)은 또한 네트워크 인터페이스들, 보안 메커니즘들, 부하 분산기들, 페일오버(failover) 서버들, 관리-및-네트워크-동작들 콘솔들, 다른 적절한 구성요소들, 또는 그것의 임의의 적절한 조합을 포함할 수 있다. 특정한 실시예들에서, 소셜-네트워킹 시스템(360)은 사용자 프로파일들을 저장하기 위한 하나 이상의 사용자-프로파일 저장소들을 포함할 수 있다. 사용자 프로파일은, 예를 들면, 인물 정보, 데모그래픽 정보, 행동 정보, 소셜 정보, 또는 경력, 교육 이력, 취미들 또는 선호들, 관심들, 친밀도들, 또는 위치와 같은 다른 유형들의 기술적 정보를 포함할 수 있다. 관심 정보는 하나 이상의 카테고리들에 관련된 관심들을 포함할 수 있다. 카테고리들은 일반적이거나 또는 특정적일 수 있다. 제한으로서가 아닌 예로서, 사용자가 신발의 브랜드에 관한 기사를 "좋아한다면", 카테고리는 브랜드, 또는 "신발" 또는 "의류"의 일반적인 카테고리일 수 있다. 연결 저장소는 사용자들에 대한 연결 정보를 저장하기 위해 사용될 수 있다. 연결 정보는 유사한 또는 공통 경력, 그룹 멤버십들, 취미들, 교육 이력들을 갖거나 또는, 임의의 방식으로 관련되거나 또는 공통 속성들을 공유하는 사용자들을 나타낼 수 있다. 연결 정보는 또한 상이한 사용자들 및 콘텐트(내부 및 외부 양쪽 모두) 사이에서 사용자-정의 연결들을 포함할 수 있다. 웹 서버는 네트워크(310)를 통해 소셜-네트워킹 시스템(360)을 하나 이상의 클라이언트 시스템들(330) 또는 하나 이상의 제 3 자 시스템(370)에 연결하기 위해 사용될 수 있다. 웹 서버는 소셜-네트워킹 시스템(360) 및 하나 이상의 클라이언트 시스템들(330) 사이에서 메시지들을 수신하고 라우팅하기 위한 메일 서버 또는 다른 메시징 기능을 포함할 수 있다. API-요청 서버는 제 3 자 시스템(370)이 하나 이상의 API들을 호출함으로써 소셜-네트워킹 시스템(360)으로부터 정보를 액세스하도록 허용할 수 있다. 동작 로거는 소셜-네트워킹 시스템(360)을 온하거나 또는 오프한 사용자의 동작들에 대한 통신들을 웹 서버로부터 수신하기 위해 사용될 수 있다. 동작 로그와 함께, 제 3 자-콘텐트-오브젝트 로그는 제 3 자-콘텐트 오브젝트들로의 사용자 노출들에 대해 유지될 수 있다. 통지 제어기는 콘텐트 오브젝트들에 관한 정보를 클라이언트 시스템(330)으로 제공할 수 있다. 정보는 통지들로서 클라이언트 시스템(330)으로 푸시될 수 있거나, 또는 정보는 클라이언트 시스템(330)으로부터 수신된 요청에 응답하여 클라이언트 시스템(330)으로부터 풀링될 수 있다. 권한 서버들은 소셜-네트워킹 시스템(360)의 사용자들의 하나 이상의 프라이버시 설정들을 시행하기 위해 사용될 수 있다. 사용자의 프라이버시 설정은 사용자와 연관된 특정한 정보가 어떻게 공유될 수 있는지를 결정한다. 권한 서버는, 예를 들면, 적절한 프라이버시 설정들을 설정함으로써와 같이, 사용자들로 하여금 소셜-네트워킹 시스템(360)에 의해 로그하거나 또는 다른 시스템들(예컨대, 제 3 자 시스템(370))과 공유한 그들의 동작들에 참여하거나 또는 탈퇴하도록 허용할 수 있다. 제 3 자-콘텐트-오브젝트 저장소들은, 제 3 자 시스템(370)과 같은, 제 3 자들로부터 수신된 콘텐트 오브젝트들을 저장하기 위해 사용될 수 있다. 위치 저장소들은 사용자들과 연관된 클라이언트 시스템들(330)로부터 수신된 위치 정보를 저장하기 위해 사용될 수 있다. 광고-가격 책정 모듈들은 통지들의 형태로 관련 광고들을 사용자에게 제공하기 위해 소셜 정보, 현재 시간, 위치 정보, 또는 다른 적절한 정보를 조합할 수 있다.
도 4는 예시적인 컴퓨터 시스템(400)을 예시한다. 특정한 실시예들에서, 하나 이상의 컴퓨터 시스템들(400)은 여기에서 설명되거나 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 수행한다. 특정한 실시예들에서, 하나 이상의 컴퓨터 시스템들(400)은 여기에서 설명되거나 또는 예시된 기능을 제공한다. 특정한 실시예들에서, 하나 이상의 컴퓨터 시스템들(400) 상에서 구동하는 소프트웨어는 여기에서 설명되거나 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 수행하거나 또는 여기에서 설명되거나 또는 예시된 기능을 제공한다. 특정한 실시예들은 하나 이상의 컴퓨터 시스템들(400)의 하나 이상의 부분들을 포함한다. 여기에서, 컴퓨터 시스템에 대한 참조는 적절한 경우, 컴퓨팅 디바이스를 포함할 수 있으며, 그 역 또한 마찬가지이다. 게다가, 컴퓨터 시스템에 대한 참조는, 적절한 경우, 하나 이상의 컴퓨터 시스템들을 포함할 수 있다.
본 개시는 임의의 적절한 수의 컴퓨터 시스템들(400)을 고려한다. 본 개시는 임의의 적절한 물리적 형태를 취하는 컴퓨터 시스템(400)을 고려한다. 제한으로서가 아닌 예로서, 컴퓨터 시스템(400)은 내장형 컴퓨터 시스템, 시스템-온-칩(SOC), 단일-보드 컴퓨터 시스템(SBC)(예를 들어, 컴퓨터-온 모듈(COM) 또는 시스템-온-모듈(SOM)과 같은), 데스크탑 컴퓨터 시스템, 랩탑 또는 노트북 컴퓨터 시스템, 대화식 키오스크, 메인프레임, 컴퓨터 시스템들의 메시, 이동 전화, 개인용 디지털 보조기(PDA), 서버, 태블릿 컴퓨터 시스템, 증강/가상 현실 디바이스, 또는 이들 둘 이상의 조합일 수 있다. 적절한 경우, 컴퓨터 시스템(400)은 하나 이상의 컴퓨터 시스템들(400)을 포함하고; 통합되거나 또는 분산될 수 있고; 다수의 위치들을 포괄하고; 다수의 기계들을 포괄하고; 다수의 데이터 센터들을 포괄하거나; 또는 하나 이상의 네트워크들에 하나 이상의 클라우드 컴퓨터들을 포함할 수 있는 클라우드에 존재할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템들(400)은 여기에서 설명되거나 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을, 실질적인 공간적 또는 시간적 제한 없이, 수행할 수 있다. 제한으로서가 아닌 예로서, 하나 이상의 컴퓨터 시스템들(400)은 여기에서 설명되거나 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 실시간으로 또는 배치 모드로 수행할 수 있다. 하나 이상의 컴퓨터 시스템들(400)은 적절한 경우, 여기에서 설명되거나 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 상이한 시간들에서 또는 상이한 위치들에서 수행할 수 있다.
특정한 실시예들에서, 컴퓨터 시스템(400)은 프로세서(402), 메모리(404), 저장 장치(406), 입력/출력(I/O) 인터페이스(408), 통신 인터페이스(410) 및 버스(412)를 포함한다. 본 개시는 특정한 배열에서 특정한 수의 특정한 구성요소들을 가진 특정한 컴퓨터 시스템을 설명하고 예시하지만, 본 개시는 임의의 적절한 배열에서 임의의 적절한 수의 임의의 적절한 구성요소들을 가진 임의의 적절한 컴퓨터 시스템을 고려한다.
특정한 실시예들에서, 프로세서(402)는 컴퓨터 프로그램을 구성하는 것들과 같은, 지시들을 실행하기 위한 하드웨어를 포함한다. 제한으로서가 아닌 예로서, 지시들을 실행하기 위해, 프로세서(402)는 내부 레지스터, 내부 캐시, 메모리(404), 또는 저장 장치(406)로부터 지시들을 검색(또는 인출)하고; 그것들을 디코딩 및 실행하며; 그 후 하나 이상의 결과들을 내부 레지스터, 내부 캐시, 메모리(404), 또는 저장 장치(406)로 기록할 수 있다. 특정한 실시예들에서, 프로세서(402)는 데이터, 지시들, 또는 어드레스들을 위한 하나 이상의 내부 캐시들을 포함할 수 있다. 본 개시는 적절한 경우, 임의의 적절한 수의 임의의 적절한 내부 캐시들을 포함한 프로세서(402)를 고려한다. 제한으로서가 아닌 예로서, 프로세서(402)는 하나 이상의 지시 캐시들, 하나 이상의 데이터 캐시들 및 하나 이상의 변환 색인 버퍼들(TLB들)을 포함할 수 있다. 지시 캐시들에서의 지시들은 메모리(404) 또는 저장 장치(406)에서의 지시들의 사본들일 수 있으며, 지시 캐시들은 프로세서(402)에 의한 이들 지시들의 검색의 속도를 높일 수 있다. 데이터 캐시들에서의 데이터는 동작시킬 프로세서(402)에서 실행하는 지시들에 대한 메모리(404) 또는 저장 장치(406)에서의 데이터의 사본들; 프로세서(402)에서 실행한 뒤이은 지시들에 의한 액세스를 위해 또는 메모리(404) 또는 저장 장치(406)로 기록하기 위해 프로세서(402)에서 실행된 이전 지시들의 결과들; 또는 다른 적절한 데이터일 수 있다. 데이터 캐시들은 프로세서(402)에 의한 판독 또는 기록 동작들의 속도를 높일 수 있다. TLB들은 프로세서(402)를 위한 가상-어드레스 변환의 속도를 높일 수 있다. 특정한 실시예들에서, 프로세서(402)는 데이터, 지시들, 또는 어드레스들을 위한 하나 이상의 내부 레지스터들을 포함할 수 있다. 본 개시는 적절한 경우, 임의의 적절한 수의 임의의 적절한 내부 레지스터들을 포함한 프로세서(402)를 고려한다. 적절한 경우, 프로세서(402)는 하나 이상의 산술 논리 유닛들(ALU들)을 포함하고; 다중-코어 프로세서이거나; 또는 하나 이상의 프로세서(402)를 포함할 수 있다. 본 개시는 특정한 프로세서를 설명하고 예시하지만, 본 개시는 임의의 적절한 프로세서를 고려한다.
특정한 실시예들에서, 메모리(404)는 실행할 프로세서(402)에 대한 지시들 또는 동작시킬 프로세서(402)에 대한 데이터를 저장하기 위한 메인 메모리를 포함한다. 제한으로서가 아닌 예로서, 컴퓨터 시스템(400)은 저장 장치(406) 또는 또 다른 소스(예를 들어, 또 다른 컴퓨터 시스템(400)과 같은)로부터 메모리(404)로 지시들을 로딩할 수 있다. 프로세서(402)는 그 후 메모리(404)로부터 내부 레지스터 또는 내부 캐시로 지시들을 로딩할 수 있다. 지시들을 실행하기 위해, 프로세서(402)는 내부 레지스터 또는 내부 캐시로부터 지시들을 검색하고 그것들을 디코딩할 수 있다. 지시들의 실행 동안 또는 그 후, 프로세서(402)는 하나 이상의 결과들(중간 또는 최종 결과들일 수 있는)을 내부 레지스터 또는 내부 캐시로 기록할 수 있다. 프로세서(402)는 그 후 이들 결과들 중 하나 이상을 메모리(404)로 기록할 수 있다. 특정한 실시예들에서, 프로세서(402)는 하나 이상의 내부 레지스터들 또는 내부 캐시들에 또는 메모리(404)에(저장 장치(406) 또는 다른 곳과 대조적으로)에서의 지시들만을 실행하며 하나 이상의 내부 레지스터들 또는 내부 캐시들에 또는 메모리(404)에서(저장 장치(406) 또는 다른 곳과 대조적으로)의 데이터에 대해서만 동작한다. 하나 이상의 메모리 버스들(각각이 어드레스 버스 및 데이터 버스를 포함할 수 있는)은 메모리(404)에 프로세서(402)를 결합할 수 있다. 버스(412)는 이하에서 설명되는 바와 같이, 하나 이상의 메모리 버스들을 포함할 수 있다. 특정한 실시예들에서, 하나 이상의 메모리 관리 유닛들(MMU들)은 프로세서(402) 및 메모리(404) 사이에 존재하며 프로세서(402)에 의해 요청된 메모리(404)로의 액세스들을 가능하게 한다. 특정한 실시예들에서, 메모리(404)는 랜덤 액세스 메모리(RAM)를 포함한다. 이러한 RAM은 적절한 경우, 휘발성 메모리일 수 있다. 적절한 경우, 이러한 RAM은 동적 RAM(DRAM) 또는 정적 RAM(SRAM)일 수 있다. 게다가, 적절한 경우, 이러한 RAM은 단일-포팅 또는 다중-포팅 RAM일 수 있다. 본 개시는 임의의 적절한 RAM을 고려한다. 메모리(404)는 적절한 경우, 하나 이상의 메모리들(404)을 포함할 수 있다. 본 개시는 특정한 메모리를 설명하고 예시하지만, 본 개시는 임의의 적절한 메모리를 고려한다.
특정한 실시예들에서, 저장 장치(406)는 데이터 또는 지시들에 대한 대용량 저장 장치를 포함한다. 제한으로서가 아닌 예로서, 저장 장치(406)는 하드 디스크 드라이브(HDD), 플로피 디스크 드라이브, 플래시 메모리, 광학 디스크, 자기-광학 디스크, 자기 테이프, 또는 범용 직렬 버스(USB) 드라이브, 또는 이들 둘 이상의 조합을 포함할 수 있다. 저장 장치(406)는 적절한 경우, 착탈 가능한 또는 착탈 가능하지 않은(또는 고정된) 매체를 포함할 수 있다. 저장 장치(406)는 적절한 경우, 컴퓨터 시스템(400)의 내부에 있거나 또는 외부에 있을 수 있다. 특정한 실시예들에서, 저장 장치(406)는 비-휘발성, 고체-상태 메모리이다. 특정한 실시예들에서, 저장 장치(406)는 판독-전용 메모리(ROM)를 포함한다. 적절한 경우, 이러한 ROM은 마스크-프로그램된 ROM, 프로그램 가능한 ROM(PROM), 삭제 가능한 PROM(EPROM), 전기적으로 삭제 가능한 PROM(EEPROM), 전기적으로 변경 가능한 ROM(EAROM), 또는 플래시 메모리 또는 이들 둘 이상의 조합일 수 있다. 본 개시는 임의의 적절한 물리적 형태를 취하는 대용량 저장 장치(406)를 고려한다. 저장 장치(406)는 적절한 경우, 프로세서(402)와 저장 장치(406) 사이에서 통신을 가능하게 하는 하나 이상의 저장 제어 유닛들을 포함할 수 있다. 적절한 경우, 저장 장치(406)는 하나 이상의 저장 장치들(406)을 포함할 수 있다. 본 개시는 특정한 저장 장치를 설명하고 예시하지만, 본 개시는 임의의 적절한 저장 장치를 고려한다.
특정한 실시예들에서, I/O 인터페이스(408)는 하드웨어, 소프트웨어, 또는 양쪽 모두를 포함하여, 컴퓨터 시스템(400) 및 하나 이상의 I/O 디바이스들 사이에서의 통신을 위한 하나 이상의 인터페이스들을 제공한다. 컴퓨터 시스템(400)은 적절한 경우, 이들 I/O 디바이스들 중 하나 이상을 포함할 수 있다. 이들 I/O 디바이스들 중 하나 이상은 사람과 컴퓨터 시스템(400) 사이에서 통신을 가능하게 할 것이다. 제한으로서가 아닌 예로서, I/O 디바이스는 키보드, 키패드, 마이크로폰, 모니터, 마우스, 프린터, 스캐너, 스피커, 스틸 카메라, 스타일러스, 태블릿, 터치 스크린, 트랙볼, 비디오 카메라, 또 다른 적절한 I/O 디바이스 또는 이들 둘 이상의 조합을 포함할 수 있다. I/O 디바이스는 하나 이상의 센서들을 포함할 수 있다. 본 개시는 임의의 적절한 I/O 디바이스들 및 그것들을 위한 임의의 적절한 I/O 인터페이스들을 고려한다. 적절한 경우, I/O 인터페이스(408)는 프로세서(402)가 이들 I/O 디바이스들 중 하나 이상을 구동할 수 있게 하는 하나 이상의 디바이스 또는 소프트웨어 드라이버들을 포함할 수 있다. I/O 인터페이스(408)는 적절한 경우, 하나 이상의 I/O 인터페이스들(408)을 포함할 수 있다. 본 개시는 특정한 I/O 인터페이스를 설명하고 예시하지만, 본 개시는 임의의 적절한 I/O 인터페이스를 고려한다.
특정한 실시예들에서, 통신 인터페이스(410)는 컴퓨터 시스템(400) 및 하나 이상의 다른 컴퓨터 시스템들(400) 또는 하나 이상의 네트워크들 사이에서 통신(예를 들어, 패킷-기반 통신과 같은)을 위한 하나 이상의 인터페이스들을 제공하는 하드웨어, 소프트웨어, 또는 양쪽 모두를 포함한다. 제한으로서가 아닌 예로서, 통신 인터페이스(410)는 이더넷 또는 다른 유선-기반 네트워크와 통신하기 위한 네트워크 인터페이스 제어기(NIC) 또는 네트워크 어댑터 또는 WI-FI 네트워크와 같은, 무선 네트워크와 통신하기 위한 무선 NIC(WNIC) 또는 무선 어댑터를 포함할 수 있다. 본 개시는 임의의 적절한 네트워크 및 그것을 위한 임의의 적절한 통신 인터페이스(410)를 고려한다. 제한으로서가 아닌 예로서, 컴퓨터 시스템(400)은 애드 혹 네트워크, 개인 영역 네트워크(PAN), 근거리 네트워크(LAN), 광역 네트워크(WAN), 대도시 영역 네트워크(MAN), 또는 인터넷의 하나 이상의 부분들 또는 이들 둘 이상의 조합과 통신할 수 있다. 이들 네트워크들 중 하나 이상의 하나 이상의 부분들은 유선 또는 무선일 수 있다. 예로서, 컴퓨터 시스템(400)은 무선 PAN(WPAN)(예를 들어, BLUETOOTH WPAN과 같은), WI-FI 네트워크, WI-MAX 네트워크, 휴대 전화 네트워크(예를 들어, 이동 통신들을 위한 전역적 시스템(GSM) 네트워크와 같은), 또는 다른 적절한 무선 네트워크 또는 이들 둘 이상의 조합과 통신할 수 있다. 컴퓨터 시스템(400)은 적절한 경우, 이들 네트워크들 중 임의의 것을 위한 임의의 적절한 통신 인터페이스(410)를 포함할 수 있다. 통신 인터페이스(410)는 적절한 경우, 하나 이상의 통신 인터페이스들(410)을 포함할 수 있다. 본 개시는 특정한 통신 인터페이스를 설명하고 예시하지만, 본 개시는 임의의 적절한 통신 인터페이스를 고려한다.
특정한 실시예들에서, 버스(412)는 컴퓨터 시스템(400)의 구성요소들을 서로 결합시키는 하드웨어, 소프트웨어, 또는 양쪽 모두를 포함한다. 제한으로서가 아닌 예로서, 버스(412)는 가속 그래픽 포트(AGP) 또는 다른 그래픽 버스, 강화된 산업 표준 아키텍처(EISA) 버스, 프론트-사이드 버스(FSB), HYPERTRANSPORT(HT) 상호 접속, 산업 표준 아키텍처(ISA) 버스, INFINIBAND 상호 접속, 로우-핀-카운트(LPC) 버스, 메모리 버스, 마이크로 채널 아키텍처(MCA) 버스, 주변 구성요소 상호 접속(PCI) 버스, PCI-고속(PCIe) 버스, 직렬 고급 기술 접속(SATA) 버스, 비디오 전자 장치 표준 협회 로컬(VLB) 버스, 또는 또 다른 적절한 버스 또는 이들 중 둘 이상의 조합을 포함할 수 있다. 버스(412)는 적절한 경우, 하나 이상의 버스들(412)을 포함할 수 있다. 본 개시는 특정한 버스를 설명하고 예시하지만, 본 개시는 임의의 적절한 버스 또는 상호 접속을 고려한다.
여기에서, 컴퓨터-판독 가능한 비-일시적 저장 매체 또는 매체는 적절한 경우, 하나 이상의 반도체-기반 또는 다른 집적 회로들(IC들)(예를 들어, 필드-프로그램 가능한 게이트 어레이들(FPGA들) 또는 애플리케이션-특정 IC들(ASIC들)과 같은), 하드 디스크 드라이브들(HDD들), 하이브리드 하드 드라이브들(HHD들), 광학 디스크들, 광학 디스크 드라이브들(ODD들), 자기-광학 디스크들, 자기-광학 드라이브들, 플로피 디스켓들, 플로피 디스크 드라이브들(FDD들), 자기 테이프들, 고체-상태 드라이브들(SSD들), RAM-드라이브들, SECURE DIGITAL 카드들 또는 드라이브들, 임의의 다른 적절한 컴퓨터-판독 가능한 비-일시적 저장 매체, 또는 이들 중 둘 이상의 임의의 적절한 조합을 포함할 수 있다. 컴퓨터-판독 가능한 비-일시적 저장 매체는 적절한 경우, 휘발성, 비-휘발성, 또는 휘발성 및 비-휘발성의 조합일 수 있다.
여기에서, "또는"은 달리 명확하게 표시되거나 또는 달리 맥락에 의해 표시되지 않는다면, 배타적이 아닌 포괄적이다. 그러므로, 여기에서 "A 또는 B"는, 달리 명확하게 표시되거나 또는 달리 맥락에 의해 표시되지 않는다면 "A, B, 또는 양쪽 모두"를 의미한다. 그러므로, 여기에서 "A 및 B"는 달리 명확하게 표시되거나 또는 달리 맥락에 의해 표시되지 않는다면, "A 및 B를 공동으로 또는 각기"를 의미한다.
본 개시의 범위는 이 기술분야의 통상의 기술자가 이해할 여기에서 설명되거나 또는 예시된 예시적인 실시예들에 대한 모든 변화들, 대체들, 변형들, 변경들 및 수정들을 포함한다. 본 개시의 범위는 여기에서 설명되거나 또는 예시된 예시적인 실시예들에 제한되지 않는다. 게다가, 본 개시는 특정한 구성요소들, 요소들, 특징, 기능들, 동작들, 또는 단계들을 포함하는 것으로 여기에서 각각의 실시예들을 설명하고 예시하지만, 이들 실시예들 중 임의의 것은 이 기술분야의 통상의 기술자가 이해할 여기에서의 다른 곳에 설명되거나 또는 예시된 구성요소들, 요소들, 특징들, 기능들, 동작들, 또는 단계들 중 임의의 것의 임의의 조합 또는 순열을 포함할 수 있다. 더욱이, 첨부된 청구항에서 특정한 기능을 수행하도록 적응되고, 배열되고, 가능하고, 구성되고, 가능화되고, 동작 가능하거나 또는 동작적인 장치 또는 시스템 또는 장치 또는 시스템의 구성요소에 대한 참조는, 장치, 시스템, 또는 구성요소가 그렇게 적응되고, 배열되고, 가능해지고, 구성되고, 가능화되고, 동작 가능하거나 또는 동작적인 한, 특정한 기능이 활성화되는지, 턴 온되는지, 또는 잠금 해제되는지에 관계없이, 상기 장치, 시스템, 구성요소를 포함한다. 부가적으로, 본 개시는 특정한 이점들을 제공하는 것으로서 특정한 실시예들을 설명하거나 또는 예시하지만, 특정한 실시예들은 이들 이점들 중 일부 또는 모두를 제공하거나 또는 제공하지 않을 수 있다.
100: 사용자 101: 포털
102: 보안 출처 103: 재기록 출처
300: 네트워크 환경 310: 네트워크
330: 클라이언트 시스템 332: 웹 브라우저
350: 링크 360: 소셜-네트워킹 시스템
362: 서버 364: 데이터 저장소
370: 제 3 자 시스템 400: 컴퓨터 시스템
402: 프로세서 404: 메모리
406: 저장 장치 408: I/O 인터페이스
410: 통신 인터페이스 412: 버스

Claims (30)

  1. 방법에 있어서,
    컴퓨팅 시스템에 의해, 사용자와 연관된 클라이언트 디바이스로부터 제 1 요청을 수신하는 단계로서, 상기 제 1 요청은 상기 컴퓨팅 시스템과 연관된 제 1 호스트로 향해지는, 상기 제 1 요청을 수신하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 제 1 요청에 응답하여 키를 생성하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 키에 기초하여 검증 토큰을 생성하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 키에 기초하여 암호화 키를 생성하는 단계;
    상기 컴퓨팅 시스템에 의해, 제 1 지시들, 상기 검증 토큰 및 상기 암호화 키를 상기 컴퓨팅 시스템과 연관된 상기 제 1 호스트로부터 상기 클라이언트 디바이스로 송신하는 단계로서, 상기 제 1 지시들은:
    상기 검증 토큰이 상기 클라이언트 디바이스 상에서 제 1 쿠키로서 저장되게 하는 것으로서, 상기 제 1 쿠키는 상기 제 1 호스트와 연관되는, 상기 제 1 쿠키로서 저장되게 하고;
    상기 클라이언트 디바이스가 상기 컴퓨팅 시스템과 연관된 제 2 호스트로 상기 암호화 키를 송신하게 하도록 구성되는, 상기 제 1 지시들, 상기 검증 토큰 및 상기 암호화된 키를 송신하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 클라이언트 디바이스로부터 상기 암호화 키를 포함한 제 2 요청을 수신하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 암호화 키가 이전에 복호화되지 않았다고 결정할 때 상기 키를 획득하기 위해 상기 수신된 암호화 키를 복호화하는 단계; 및
    상기 컴퓨팅 시스템에 의해, 제 2 지시들 및 상기 복호화로부터 획득된 상기 키를 상기 제 2 호스트로부터 상기 클라이언트 디바이스로 송신하는 단계로서, 상기 제 2 지시들은 상기 복호화로부터 획득된 키가 상기 클라이언트 디바이스 상에서 제 2 쿠키로서 저장되게 하도록 구성되고, 상기 제 2 쿠키는 상기 제 2 호스트와 연관되는, 상기 제 2 지시들 및 상기 복호화로부터 획득된 키를 송신하는 단계를 포함하고,
    상기 제 1 쿠키는 클라이언트-측 스크립트들에 의해 액세스 가능하도록 구성되고,
    상기 제 2 쿠키는 클라이언트-측 스크립트들에 의해 액세스 가능하지 않도록 구성되는, 방법.
  2. 제 1 항에 있어서,
    상기 컴퓨팅 시스템에 의해, 상기 클라이언트 디바이스로부터 이전 요청을 수신하는 단계로서, 상기 이전 요청은 상기 컴퓨팅 시스템과 연관된 제 3 호스트로 향해지며 상기 요청이 수신되기 전에 수신되는, 상기 이전 요청을 수신하는 단계; 및
    상기 컴퓨팅 시스템에 의해, 상기 이전 요청에 응답하여 리다이렉션 지시(redirection instruction)를 상기 클라이언트 디바이스로 송신하는 단계로서, 상기 리다이렉션 지시는 상기 클라이언트 디바이스가 상기 제 1 요청을 상기 제 1 호스트로 전송하게 하도록 구성되는, 상기 리다이렉션 지시를 송신하는 단계를 더 포함하는, 방법.
  3. 제 1 항에 있어서,
    상기 컴퓨팅 시스템에 의해, 넌스(nonce)를 생성하는 단계; 및
    상기 컴퓨팅 시스템에 의해, 상기 넌스를 상기 클라이언트 디바이스로 송신하는 단계를 더 포함하고,
    상기 제 1 지시들은 상기 클라이언트 디바이스가 상기 암호화 키와 함께 상기 넌스를 상기 컴퓨팅 시스템과 연관된 상기 제 2 호스트로 송신하게 하도록 구성되고;
    상기 암호화 키가 이전에 복호화되지 않았다는 결정은 상기 넌스에 기초하는, 방법.
  4. 제 3 항에 있어서,
    상기 컴퓨팅 시스템에 의해, 제 2 사용자와 연관된 제 2 클라이언트 디바이스로부터 제 3 요청을 수신하는 단계로서, 상기 제 3 요청은 상기 암호화 키 및 넌스를 포함하는, 상기 제 3 요청을 수신하는 단계;
    상기 컴퓨팅 시스템에 의해, (1) 상기 넌스가 이전에 사용되었거나 또는 (2) 상기 넌스가 상기 암호화 키에 결속되지 않는다고 결정하는 단계; 및
    상기 컴퓨팅 시스템에 의해, 상기 제 3 요청을 거절하는 단계를 더 포함하는, 방법.
  5. 삭제
  6. 제 1 항에 있어서,
    상기 제 1 호스트 및 상기 제 2 호스트는 상이한, 방법.
  7. 제 1 항에 있어서,
    상기 제 2 호스트는 제 3 자에 의해 호스팅된 웹 페이지로의 액세스를 제공하도록 구성되는, 방법.
  8. 제 1 항에 있어서,
    상기 컴퓨팅 시스템에 의해, 상기 제 2 쿠키로서 저장된 상기 키를 포함한 제 3 요청을 상기 클라이언트 디바이스로부터 수신하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 제 3 요청과 함께 수신된 상기 키에 기초하여 제 2 검증 토큰을 생성하는 단계; 및
    상기 컴퓨팅 시스템에 의해, 상기 제 3 요청에 응답하여 웹 페이지를 상기 클라이언트 디바이스로 송신하는 단계로서, 상기 웹 페이지는 상기 제 2 검증 토큰 및 지시들을 포함하고, 상기 지시들은 상기 클라이언트 디바이스로 하여금:
    상기 제 1 쿠키로서 저장된 상기 검증 토큰과 상기 제 2 검증 토큰을 비교하게 하고;
    상기 비교에 기초하여 상기 웹 페이지를 렌더링할지를 결정하게 하도록 구성되는, 상기 웹 페이지를 송신하는 단계를 더 포함하는, 방법.
  9. 소프트웨어를 구체화한 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체에 있어서,
    상기 소프트웨어는 실행될 때:
    사용자와 연관된 클라이언트 디바이스로부터 제 1 요청을 수신하는 것으로서, 상기 제 1 요청은 컴퓨팅 시스템과 연관된 제 1 호스트로 향해지는, 상기 제 1 요청을 수신하고;
    상기 제 1 요청에 응답하여 키를 생성하고;
    상기 키에 기초하여 검증 토큰을 생성하고;
    상기 키에 기초하여 암호화 키를 생성하고;
    제 1 지시들, 상기 검증 토큰 및 상기 암호화 키를 상기 컴퓨팅 시스템과 연관된 상기 제 1 호스트로부터 상기 클라이언트 디바이스로 송신하는 것으로서, 상기 제 1 지시들은:
    상기 검증 토큰이 상기 클라이언트 디바이스 상에서 제 1 쿠키로서 저장되게 하는 것으로서, 상기 제 1 쿠키는 상기 제 1 호스트와 연관되는, 상기 제 1 쿠키로서 저장되게 하고;
    상기 클라이언트 디바이스가 상기 컴퓨팅 시스템과 연관된 제 2 호스트로 상기 암호화 키를 송신하게 하도록 구성되는, 상기 제 1 지시들, 상기 검증 토큰 및 상기 암호화 키를 송신하고;
    상기 클라이언트 디바이스로부터 상기 암호화 키를 포함한 제 2 요청을 수신하고;
    상기 암호화 키가 이전에 복호화되지 않았다고 결정하면 상기 키를 획득하기 위해 상기 수신된 암호화 키를 복호화하고;
    제 2 지시들 및 상기 복호화로부터 획득된 상기 키를 상기 제 2 호스트로부터 상기 클라이언트 디바이스로 송신하는 것으로서, 상기 제 2 지시들은 상기 복호화로부터 획득된 키가 상기 클라이언트 디바이스 상에서 제 2 쿠키로서 저장되게 하도록 구성되고, 상기 제 2 쿠키는 상기 제 2 호스트와 연관되는, 상기 제 2 지시들 및 상기 복호화로부터 획득된 키를 송신하도록 동작 가능하고,
    상기 제 1 쿠키는 클라이언트-측 스크립트들에 의해 액세스 가능하도록 구성되고,
    상기 제 2 쿠키는 클라이언트-측 스크립트들에 의해 액세스 가능하지 않도록 구성되는, 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체.
  10. 제 9 항에 있어서,
    상기 소프트웨어는 또한 실행될 때:
    상기 클라이언트 디바이스로부터 이전 요청을 수신하는 것으로서, 상기 이전 요청은 상기 컴퓨팅 시스템과 연관된 제 3 호스트로 향해지며 상기 요청이 수신되기 전에 수신되는, 상기 이전 요청을 수신하고;
    상기 이전 요청에 응답하여 리다이렉션 지시를 상기 클라이언트 디바이스로 송신하는 것으로서, 상기 리다이렉션 지시는 상기 클라이언트 디바이스가 상기 제 1 요청을 상기 제 1 호스트로 전송하게 하도록 구성되는, 상기 리다이렉션 지시를 송신하도록 동작 가능한, 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체.
  11. 제 9 항에 있어서,
    상기 소프트웨어는 또한 실행될 때:
    넌스를 생성하고;
    상기 넌스를 상기 클라이언트 디바이스로 송신하도록 동작 가능하고;
    상기 제 1 지시는 상기 클라이언트 디바이스가 상기 암호화 키와 함께 상기 넌스를 상기 컴퓨팅 시스템과 연관된 상기 제 2 호스트로 송신하게 하도록 구성되고;
    상기 암호화 키가 이전에 복호화되지 않았다는 결정은 상기 넌스에 기초하는, 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체.
  12. 제 11 항에 있어서,
    상기 소프트웨어는 또한 실행될 때:
    제 2 사용자와 연관된 제 2 클라이언트 디바이스로부터 제 3 요청을 수신하는 것으로서, 상기 제 3 요청은 상기 암호화 키 및 상기 넌스를 포함하는, 상기 제 3 요청 수신하고;
    (1) 상기 넌스가 이전에 사용되었거나 또는 (2) 상기 넌스가 상기 암호화 키에 결속되지 않는다고 결정하고;
    상기 제 3 요청을 거절하도록 동작 가능한, 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체.
  13. 제 9 항에 있어서,
    상기 제 2 호스트는 제 3 자에 의해 호스팅된 웹 페이지로의 액세스를 제공하도록 구성되는, 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체.
  14. 제 9 항에 있어서,
    상기 소프트웨어는 또한 실행될 때:
    상기 제 2 쿠키로서 저장된 키를 포함한 제 3 요청을 상기 클라이언트 디바이스로 수신하고;
    상기 제 3 요청과 함께 수신된 상기 키에 기초하여 제 2 검증 토큰을 생성하고;
    상기 제 3 요청에 응답하여 웹 페이지를 상기 클라이언트 디바이스로 송신하는 것으로서, 상기 웹 페이지는 상기 제 2 검증 토큰 및 지시들을 포함하고, 상기 지시들은 상기 클라이언트 디바이스로 하여금:
    상기 제 1 쿠키로서 저장된 상기 검증 토큰과 상기 제 2 검증 토큰을 비교하게 하고;
    상기 비교에 기초하여 상기 웹 페이지를 렌더링할지를 결정하게 하도록 구성된, 상기 웹 페이지를 송신하도록 동작 가능한, 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체.
  15. 컴퓨팅 시스템에 있어서,
    하나 이상의 프로세서들; 및
    상기 프로세서들 중 하나 이상에 결합되고 지시들을 포함한 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체로서, 상기 지시들은 상기 프로세서들 중 하나 이상에 의해 실행될 때, 상기 시스템으로 하여금:
    사용자와 연관된 클라이언트 디바이스로부터 제 1 요청을 수신하게 하는 것으로서, 상기 제 1 요청은 상기 컴퓨팅 시스템과 연관된 제 1 호스트로 향해지는, 상기 제 1 요청을 수신하게 하고;
    상기 제 1 요청에 응답하여 키를 생성하게 하고;
    상기 키에 기초하여 검증 토큰을 생성하게 하고;
    상기 키에 기초하여 암호화 키를 생성하게 하고;
    제 1 지시들, 상기 검증 토큰 및 상기 암호화 키를 상기 컴퓨팅 시스템과 연관된 제 1 호스트로부터 상기 클라이언트 디바이스로 송신하게 하는 것으로서, 상기 제 1 지시들은:
    상기 검증 토큰이 상기 클라이언트 디바이스 상에서 제 1 쿠키로서 저장되게 하는 것으로서, 상기 제 1 쿠키는 상기 제 1 호스트와 연관되는, 상기 검증 토큰이 저장되게 하고;
    상기 클라이언트 디바이스가 상기 컴퓨팅 시스템과 연관된 제 2 호스트로 상기 암호화 키를 송신하게 하도록 구성된, 상기 제 1 지시, 상기 검증 토큰 및 상기 암호화 키를 송신하게 하고;
    상기 클라이언트 디바이스로부터 상기 암호화 키를 포함한 제 2 요청을 수신하게 하고;
    상기 암호화 키가 이전에 복호화되지 않았다고 결정하면 상기 키를 획득하기 위해 상기 수신된 암호화 키를 복호화하게 하고;
    제 2 지시들 및 상기 복호화로부터 획득된 상기 키를 상기 제 2 호스트로부터 상기 클라이언트 디바이스로 송신하게 하는 것으로서, 상기 제 2 지시들은 상기 복호화로부터 획득된 키가 상기 클라이언트 디바이스 상에서 제 2 쿠키로서 저장되게 하도록 구성되고, 상기 제 2 쿠키는 상기 제 2 호스트와 연관되는, 상기 제 2 지시들 및 상기 복호화로부터 획득된 키를 송신하게 하도록 동작 가능한, 상기 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체를 포함하고,
    상기 제 1 쿠키는 클라이언트-측 스크립트들에 의해 액세스 가능하도록 구성되고,
    상기 제 2 쿠키는 클라이언트-측 스크립트들에 의해 액세스 가능하지 않도록 구성되는, 컴퓨팅 시스템.
  16. 제 15 항에 있어서,
    상기 프로세서들은 또한 상기 지시들을 실행할 때:
    상기 클라이언트 디바이스로부터 이전 요청을 수신하는 것으로서, 상기 이전 요청은 상기 컴퓨팅 시스템과 연관된 제 3 호스트로 향해지며 상기 요청이 수신되기 전에 수신되는, 상기 이전 요청을 수신하고;
    상기 이전 요청에 응답하여 리다이렉션 지시를 상기 클라이언트 디바이스로 송신하는 것으로서, 상기 리다이렉션 지시는 상기 클라이언트 디바이스가 상기 제 1 요청을 상기 제 1 호스트로 전송하게 하도록 구성되는, 상기 리다이렉션 지시를 송신하도록 동작 가능한, 컴퓨팅 시스템.
  17. 제 15 항에 있어서,
    상기 프로세서들은 또한 상기 지시들을 실행할 때:
    넌스를 생성하고;
    상기 넌스를 상기 클라이언트 디바이스로 송신하도록 동작 가능하고;
    상기 제 1 지시들은 상기 클라이언트 디바이스가 상기 암호화 키와 함께 상기 넌스를 상기 컴퓨팅 시스템과 연관된 상기 제 2 호스트로 송신하게 하도록 구성되고;
    상기 암호화 키가 이전에 복호화되지 않았다는 결정은 상기 넌스에 기초하는, 컴퓨팅 시스템.
  18. 제 17 항에 있어서,
    상기 프로세서들은 또한 상기 지시들을 실행할 때:
    제 2 사용자와 연관된 제 2 클라이언트 디바이스로부터 제 3 요청을 수신하는 것으로서, 상기 제 3 요청은 상기 암호화 키 및 상기 넌스를 포함하는, 상기 제 3 요청을 수신하고;
    (1) 상기 넌스가 이전에 사용되었거나 또는 (2) 상기 넌스가 상기 암호화 키에 결속되지 않는다고 결정하고;
    상기 제 3 요청을 거부하도록 동작 가능한, 컴퓨팅 시스템.
  19. 제 15 항에 있어서,
    상기 제 2 호스트는 제 3 자에 의해 호스팅된 웹 페이지로의 액세스를 제공하도록 구성되는, 컴퓨팅 시스템.
  20. 제 15 항에 있어서,
    상기 프로세서들은 또한 상기 지시들을 실행할 때:
    상기 제 2 쿠키로서 저장된 상기 키를 포함한 제 3 요청을 상기 클라이언트 디바이스로부터 수신하고;
    상기 제 3 요청과 함께 수신된 상기 키에 기초하여 제 2 검증 토큰을 생성하고;
    상기 제 3 요청에 응답하여 웹 페이지를 상기 클라이언트 디바이스로 송신하는 것으로서, 상기 웹 페이지는 상기 제 2 검증 토큰 및 지시들을 포함하고, 상기 지시들은 상기 클라이언트 디바이스로 하여금:
    상기 제 1 쿠키로서 저장된 상기 검증 토큰과 상기 제 2 검증 토큰을 비교하게 하고;
    상기 비교에 기초하여 상기 웹 페이지를 렌더링할지를 결정하게 하도록 구성된, 상기 웹 페이지를 송신하도록 동작 가능한, 컴퓨팅 시스템.
  21. 컴퓨터-구현 방법에 있어서,
    컴퓨팅 시스템에 의해, 사용자와 연관된 클라이언트 디바이스로부터 제 1 요청을 수신하는 단계로서, 상기 제 1 요청은 상기 컴퓨팅 시스템과 연관된 제 1 호스트로 향해지는, 상기 제 1 요청을 수신하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 제 1 요청에 응답하여 키를 생성하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 키에 기초하여 검증 토큰을 생성하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 키에 기초하여 암호화 키를 생성하는 단계;
    상기 컴퓨팅 시스템에 의해, 제 1 지시들, 상기 검증 토큰 및 상기 암호화 키를 상기 컴퓨팅 시스템과 연관된 상기 제 1 호스트로부터 상기 클라이언트 디바이스로 송신하는 단계로서, 상기 제 1 지시들은:
    상기 검증 토큰이 상기 클라이언트 디바이스 상에서 제 1 쿠키로서 저장되게 하는 것으로서, 상기 제 1 쿠키는 상기 제 1 호스트와 연관되는, 상기 검증 토큰이 저장되게 하고;
    상기 클라이언트 디바이스가 상기 컴퓨팅 시스템과 연관된 제 2 호스트로 상기 암호화 키를 송신하게 하도록 구성되는, 상기 제 1 지시들, 상기 검증 토큰 및 상기 암호화 키를 송신하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 클라이언트 디바이스로부터 상기 암호화 키를 포함한 제 2 요청을 수신하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 암호화 키가 이전에 복호화되지 않았다고 결정하면 상기 키를 획득하기 위해 상기 수신된 암호화 키를 복호화하는 단계; 및
    상기 컴퓨팅 시스템에 의해, 제 2 지시들 및 상기 복호화로부터 획득된 상기 키를 상기 제 2 호스트로부터 상기 클라이언트 디바이스로 송신하는 단계로서, 상기 제 2 지시들은 상기 복호화로부터 획득된 상기 키가 상기 클라이언트 디바이스 상에서 제 2 쿠키로서 저장되게 하도록 구성되고, 상기 제 2 쿠키는 상기 호스트와 연관되는, 상기 제 2 지시들 및 상기 복호화로부터 획득된 키를 송신하는 단계를 포함하고,
    상기 제 1 쿠키는 클라이언트-측 스크립트들에 의해 액세스 가능하도록 구성되고,
    상기 제 2 쿠키는 클라이언트-측 스크립트들에 의해 액세스 가능하지 않도록 구성되는, 컴퓨터-구현 방법.
  22. 제 21 항에 있어서,
    상기 컴퓨팅 시스템에 의해, 상기 클라이언트 디바이스로부터 이전 요청을 수신하는 단계로서, 상기 이전 요청은 상기 컴퓨팅 시스템과 연관된 제 3 호스트로 향해지며 상기 요청이 수신되기 전에 수신되는, 상기 이전 요청을 수신하는 단계; 및
    상기 컴퓨팅 시스템에 의해, 상기 이전 요청에 응답하여 리다이렉션 지시를 상기 클라이언트 디바이스로 송신하는 단계로서, 상기 리다이렉션 지시는 상기 클라이언트 디바이스가 상기 제 1 요청을 상기 제 1 호스트로 전송하게 하도록 구성되는, 상기 리다이렉션 지시를 송신하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  23. 제 21 항 또는 제 22 항에 있어서,
    상기 컴퓨팅 시스템에 의해, 넌스를 생성하는 단계; 및
    상기 컴퓨팅 시스템에 의해, 상기 넌스를 상기 클라이언트 디바이스로 송신하는 단계를 더 포함하고,
    상기 제 1 지시들은 상기 클라이언트 디바이스가 상기 암호화 키와 함께 상기 넌스를 상기 컴퓨팅 시스템과 연관된 상기 제 2 호스트로 송신하게 하도록 구성되고;
    상기 암호화 키가 이전에 복호화되지 않았다는 결정은 상기 넌스에 기초하는, 컴퓨터-구현 방법.
  24. 제 23 항에 있어서,
    상기 컴퓨팅 시스템에 의해, 제 2 사용자와 연관된 제 2 클라이언트 디바이스로부터 제 3 요청을 수신하는 단계로서, 상기 제 3 요청은 상기 암호화 키 및 넌스를 포함하는, 상기 제 3 요청을 수신하는 단계;
    상기 컴퓨팅 시스템에 의해, (1) 상기 넌스가 이전에 사용되었거나 또는 (2) 상기 넌스가 상기 암호화 키에 결속되지 않는다고 결정하는 단계; 및
    상기 컴퓨팅 시스템에 의해, 상기 제 3 요청을 거절하는 단계를 더 포함하는, 컴퓨터-구현 방법.
  25. 삭제
  26. 제 21 항 또는 제 22 항에 있어서,
    상기 제 1 호스트 및 상기 제 2 호스트는 상이한, 컴퓨터-구현 방법.
  27. 제 21 항 또는 제 22 항에 있어서,
    상기 제 2 호스트는 제 3 자에 의해 호스팅된 웹 페이지로의 액세스를 제공하도록 구성되는, 컴퓨터-구현 방법.
  28. 제 21 항 또는 제 22 항에 있어서,
    상기 컴퓨팅 시스템에 의해, 상기 제 2 쿠키로서 저장된 상기 키를 포함한 제 3 요청을 상기 클라이언트 디바이스로부터 수신하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 제 3 요청과 함께 수신된 상기 키에 기초하여 제 2 검증 토큰을 생성하는 단계; 및
    상기 컴퓨팅 시스템에 의해, 상기 제 3 요청에 응답하여 웹 페이지를 상기 클라이언트 디바이스로 송신하는 단계로서, 상기 웹 페이지는 상기 제 2 검증 토큰 및 지시들을 포함하고, 상기 지시들은 상기 클라이언트 디바이스로 하여금:
    상기 제 1 쿠키로서 저장된 상기 검증 토큰과 상기 제 2 검증 토큰을 비교하게 하고;
    상기 비교에 기초하여 상기 웹 페이지를 렌더링할지를 결정하게 하도록 구성된, 상기 웹 페이지 송신 단계를 더 포함하는, 컴퓨터-구현 방법.
  29. 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체에 있어서,
    컴퓨팅 시스템의 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 제 21 항 또는 제 22 항에 따른 방법의 단계들 모두를 포함한 방법을 실행하게 하도록 동작 가능한 소프트웨어를 구체화한, 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체.
  30. 컴퓨팅 시스템에 있어서,
    하나 이상의 프로세서들; 및 상기 프로세서들 중 하나 이상에 결합되고 상기 프로세서들 중 하나 이상에 의해 실행될 때 상기 시스템으로 하여금 제 21 항 또는 제 22 항에 따른 방법의 단계들 모두를 포함한 방법을 실행하게 하도록 동작 가능한 지시들을 포함한 하나 이상의 컴퓨터-판독 가능한 비-일시적 저장 매체를 포함하는, 컴퓨팅 시스템.
KR1020197036275A 2017-05-25 2017-05-26 도메인 포털을 통해 세션 고정을 방지하기 위한 시스템들 및 방법들 KR102365807B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/605,563 US10454672B2 (en) 2017-05-25 2017-05-25 Systems and methods for preventing session fixation over a domain portal
US15/605,563 2017-05-25
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
KR20200012889A KR20200012889A (ko) 2020-02-05
KR102365807B1 true KR102365807B1 (ko) 2022-02-23

Family

ID=64395781

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197036275A KR102365807B1 (ko) 2017-05-25 2017-05-26 도메인 포털을 통해 세션 고정을 방지하기 위한 시스템들 및 방법들

Country Status (5)

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

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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060212706A1 (en) * 2005-03-18 2006-09-21 Microsoft Corporation Scalable session management

Family Cites Families (20)

* 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
JP2001075468A (ja) * 1999-09-03 2001-03-23 Yamazaki Kyoiku Kizai Kk インターネット教育システム、クライアントサーバシステムおよび記録媒体
US6734886B1 (en) 1999-12-21 2004-05-11 Personalpath Systems, Inc. Method of customizing a browsing experience on a world-wide-web site
US6920560B2 (en) 1999-12-30 2005-07-19 Clyde Riley Wallace, Jr. Secure network user states
US20050154887A1 (en) * 2004-01-12 2005-07-14 International Business Machines Corporation System and method for secure network state management and single sign-on
JP4979210B2 (ja) * 2005-08-24 2012-07-18 株式会社みずほ銀行 ログイン情報管理装置及び方法
JP5262941B2 (ja) * 2009-04-10 2013-08-14 ソニー株式会社 認証装置、認証方法、及びプログラム
AU2011223767B2 (en) * 2010-03-01 2015-11-19 Emc Corporation System and method for network security including detection of attacks through partner websites
US8850219B2 (en) * 2010-05-13 2014-09-30 Salesforce.Com, Inc. Secure communications
US8694784B1 (en) 2012-10-09 2014-04-08 Sap Ag Secure client-side key storage for web applications
US8880885B2 (en) * 2012-10-09 2014-11-04 Sap Se Mutual authentication schemes
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 (ko) * 2013-12-20 2015-06-26 Samsung R & D Inst India Bangalore Private Ltd
CN106576041A (zh) * 2014-06-27 2017-04-19 林建华 客户端与服务器之间相互验证的方法
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060212706A1 (en) * 2005-03-18 2006-09-21 Microsoft Corporation Scalable session management

Also Published As

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

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
US9578011B2 (en) Proxy bypass login for applications on mobile devices
EP3510743B1 (en) Interchangeable retrieval of sensitive content via private content distribution networks
US10148627B2 (en) Establishing a direct connection between two devices
JP7046201B2 (ja) 近さに基づく信頼
JP2021519981A (ja) ブラウザクッキーの置換えとしてのドメイン固有ブラウザ識別子
KR102365807B1 (ko) 도메인 포털을 통해 세션 고정을 방지하기 위한 시스템들 및 방법들
US8898800B1 (en) Mechanism for establishing the trust tree
US8892647B1 (en) System and method for associating a cookie with a device identifier
JP2021503637A (ja) 認証のためのシステムおよび方法
US10243992B2 (en) Secure content delivery over a domain portal
US20230137345A1 (en) System and method for decentralized user controlled social media
US10069829B1 (en) Multi-party secure global attestation
EP3407561B1 (en) Systems and methods for preventing sessions fixation over a domain portal
EP3358801B1 (en) Secure content delivery over a domain portal
CN114244607B (zh) 单点登录方法、系统、设备、介质和程序
US20220394035A1 (en) Data clutch for unmatched network resources

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right