KR20230151024A - 쿠키 도난으로부터 보호하기 위해 코-로케이팅된 세컨더리 디바이스들의 사용 - Google Patents

쿠키 도난으로부터 보호하기 위해 코-로케이팅된 세컨더리 디바이스들의 사용 Download PDF

Info

Publication number
KR20230151024A
KR20230151024A KR1020237033586A KR20237033586A KR20230151024A KR 20230151024 A KR20230151024 A KR 20230151024A KR 1020237033586 A KR1020237033586 A KR 1020237033586A KR 20237033586 A KR20237033586 A KR 20237033586A KR 20230151024 A KR20230151024 A KR 20230151024A
Authority
KR
South Korea
Prior art keywords
client device
authentication token
instance
request
service request
Prior art date
Application number
KR1020237033586A
Other languages
English (en)
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 KR20230151024A publication Critical patent/KR20230151024A/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/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/18Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
    • 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/3247Cryptographic 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 digital signatures

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)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

방법은, 서비스 제공자 플랫폼에 의해, 제1 클라이언트 디바이스로부터의 서비스 요청, 및 서비스 요청과 연관되고 제1 클라이언트 디바이스에 의해 생성된 인증 토큰의 제1 인스턴스를 수신하는 단계를 포함한다. 서비스 제공자 플랫폼은, 제2 클라이언트 디바이스로부터, 서비스 요청과 연관되고 제1 클라이언트 디바이스에 의해 생성된 인증 토큰의 제2 인스턴스를 추가로 수신할 수 있다. 인증 토큰의 제1 인스턴스가 인증 토큰의 제2 인스턴스와 매치된다고 결정하는 것에 응답하여, 서비스 요청은 서비스 제공자 플랫폼에 의해 프로세싱된다.

Description

쿠키 도난으로부터 보호하기 위해 코-로케이팅된 세컨더리 디바이스들의 사용
본 개시내용은 일반적으로 쿠키 도난(cookie theft)으로부터 사용자 디바이스를 보호하기 위한 기술에 관한 것이다. 보다 구체적으로, 본 개시내용은 쿠키 도난으로부터 보호하기 위해 코-로케이팅(co-locate)된 세컨더리 디바이스들을 사용하는 것에 관한 것이다.
HTTP(Hypertext Transfer Protocol) 쿠키(이하 "쿠키")는 클라이언트 디바이스에 저장되고 특정 클라이언트 디바이스 또는 애플리케이션(예를 들어, 브라우저)에 특정한 일정량의 데이터를 보유하는 파일을 의미할 수 있다. 기존 서비스 제공자 플랫폼들(예를 들어, 콘텐츠 공유 플랫폼들, 금융 플랫폼들, 이-커머스(e-commerce) 플랫폼들 등)은, 세션 동안, 쿠키(들)를 사용하여 사용자 계정 또는 클라이언트 디바이스의 애플리케이션을 인가(authorize)할 수 있다. 예를 들어, 사용자는 사용자 계정 정보(예를 들어, 사용자 이름 및 비밀번호)를 사용하여 서비스 제공자 플랫폼에 로그인할 수 있다. 서비스 제공자 플랫폼은 사용자 계정을 인가할 수 있고, 클라이언트 디바이스에 쿠키를 전송할 수 있다. 세션 동안 서비스 제공자 플랫폼에 대한 임의의 후속 요청들은 요청들에 쿠키를 포함할 수 있으며, 여기서, 쿠키는 사용자 계정에 의해 요청된 서비스들을 인가하는 데 사용될 수 있다.
쿠키 도난은 서드 파티가 쿠키를 복사하고 쿠키를 사용하여 클라이언트 디바이스의 사용자를 가장할 때 발생한다. 예를 들어, 쿠키 도난은 사용자가 보호되지 않거나 공용 Wi-Fi 네트워크를 통해 서비스 제공자 플랫폼에 액세스할 때 발생할 수 있다. 쿠키를 사용하여, 서드 파티는 악의적인 액션들, 이를테면, 사용자의 이름으로 허위 게시물들을 작성하거나 사용자 계정으로부터 자금을 이체하는 것을 수행할 수 있다.
다음은 이러한 양태들에 대한 기본적인 이해를 제공하기 위해 이 개시내용의 다양한 양태들에 대한 단순화된 요약을 제시한다. 이 요약은 모든 고려되는 양태들에 대한 광범위한 개요가 아니며, 핵심적이거나 중요한 요소들을 식별하거나 이러한 양태들의 범위를 설명하도록 의도되지 않는다. 그 목적은 나중에 제시되는 보다 상세한 설명에 대한 서두로서 단순화된 형태로 이 개시내용의 일부 개념들을 제시하는 것이다.
본 개시내용의 양태에서, 방법은, 서버가 제1 클라이언트 디바이스로부터의 서비스 요청을 수신하고, 서비스 요청과 연관되고 제1 클라이언트 디바이스에 의해 생성된 인증 토큰의 제1 인스턴스를 수신하는 단계를 포함한다. 서버는, 제2 클라이언트 디바이스로부터, 서비스 요청과 연관되고 제1 클라이언트 디바이스에 의해 생성된 인증 토큰의 제2 인스턴스를 추가로 수신할 수 있다. 인증 토큰의 제1 인스턴스가 인증 토큰의 제2 인스턴스와 매치된다고 결정하는 것에 응답하여, 서버는 서비스 요청을 프로세싱할 수 있다.
본 개시내용의 추가 양태는: 메모리; 및 메모리에 커플링되는 프로세싱 디바이스를 포함하는 시스템을 제공하며, 프로세싱 디바이스는 본 명세서에서 설명되는 임의의 양태 또는 실시예에 따른 방법을 수행한다.
본 개시내용의 추가 양태는, 제1 클라이언트 디바이스에 의해, 인증 토큰의 제1 인스턴스 및 인증 토큰의 제2 인스턴스를 생성하는 단계를 포함하는 방법을 제공한다. 제1 클라이언트 디바이스는 서버에 서비스 요청 및 인증 토큰의 제1 인스턴스를 전송할 수 있다. 제1 클라이언트 디바이스는 제2 클라이언트 디바이스에 인증 토큰의 제2 인스턴스를 추가로 전송할 수 있다. 제1 클라이언트 디바이스는, 콘텐츠 공유 플랫폼으로부터, 서버에 의한 서비스 요청의 수락을 나타내는 응답을 추가로 수신할 수 있으며, 응답은 제1 클라이언트 디바이스에 의해 서버에 전송된 인증 토큰의 제1 인스턴스가 제2 클라이언트 디바이스에 의해 서비스 제공자 플랫폼에 전송된 인증 토큰의 제2 인스턴스와 매치됨을 표시한다.
일 양태의 임의적인 피처(feature)들은 적절한 경우 다른 양태들과 조합될 수 있다.
본 개시내용의 양태들 및 구현들은 아래에 주어진 상세한 설명 및 본 개시내용의 다양한 양태들 및 구현들의 첨부 도면들로부터 더 완전하게 이해될 것이지만, 이는 본 개시내용을 특정 양태들 또는 구현들로 제한하는 것으로 취해져서는 안되고, 설명 및 이해만을 위한 것이다.
도 1은 본 개시내용의 일 구현에 따라, 제1 클라이언트 디바이스에 제공된 미디어 피처들이 제2 클라이언트 디바이스에 제시될 수 있도록 인에이블하기 위한 시스템 아키텍처의 예를 예시한다.
도 2는 실시예에 따라, 프라이머리 클라이언트 디바이스(primary client device)에 의해 개시된 서비스 요청을, 세컨더리 클라이언트 디바이스(secondary client device)를 사용하여, 인증하기 위한 방법의 상호작용 다이어그램을 도시한다.
도 3은 실시예에 따라, 프라이머리 클라이언트 디바이스에 의해 개시된 서비스 요청을, 세컨더리 클라이언트 디바이스를 사용하여, 인증하기 위한 다른 방법의 상호작용 다이어그램을 도시한다.
도 4는 본 개시내용의 일 구현에 따라, 프라이머리 클라이언트 디바이스에 의해 개시된 서비스 요청을 인증하기 위한 방법의 흐름도를 도시한다.
도 5는 본 개시내용의 일 구현에 따라, 인증 디바이스에 의한 인증을 요구하는 서비스 요청을 개시하기 위한 방법의 흐름도를 도시한다.
도 6은 본 개시내용의 하나 이상의 양태에 따라 동작하는 예시적인 컴퓨팅 디바이스의 블록도를 도시한다.
본 개시내용의 양태들 및 구현들은 쿠키 도난으로부터 보호하기 위한 메커니즘을 제공한다. 콘텐츠 공유 플랫폼(또는 사용자들에게 서비스들을 제공하는 임의의 다른 플랫폼)은 쿠키들을 사용하여 사용자 계정 또는 클라이언트 디바이스의 애플리케이션으로부터 발행된 서비스 요청들을 인가할 수 있다. 클라이언트 디바이스는 개인용 컴퓨터(personal computer)(PC), 랩탑, 스마트폰, 태블릿 컴퓨터 등일 수 있다. 서비스 요청은 로그인 요청들, 콘텐츠 업로드 요청들, 콘텐츠 검색 요청들, 콘텐츠 소비 요청들, 구매 요청들 등을 포함할 수 있다. 서드 파티가 쿠키를 복사하고 쿠키를 사용하여 클라이언트 디바이스의 사용자를 가장하는 것으로부터 보호하기 위해, 기존 시스템들은 특정 서비스 요청들(예를 들어, 로그인 요청들 및 구매 요청들)을 인증하기 위해, 2-팩터 인증(two-factor authentication)과 같은, 세컨더리 서비스 확인 방법(secondary service verification method)들을 사용할 수 있다. 2-팩터 인증은 콘텐츠 공유 플랫폼이 이메일 주소 또는 전화번호와 같은 사용자와 연관된 다른 애플리케이션에 확인 코드(verification code)를 전송하는 것을 포함할 수 있다. 그러면, 사용자는 콘텐츠 공유 플랫폼에 수신된 확인 코드를 전송하여 계류 중인(pending) 서비스 요청을 인증할 수 있다. 그러나, 2-팩터 인증을 사용하는 것은 사용자가 확인 코드를 리트리브(retrieve)하기 위해 콘텐츠 공유 플랫폼의 애플리케이션 또는 웹사이트를 종료(또는 스위칭)할 필요가 있을 수 있기 때문에 시간 소모적이고 번거롭다. 이로 인해, 특히, 각각의 서비스 요청에 사용되는 경우, 바람직하지 않은 레이턴시를 야기하여, 추가 시간 및 컴퓨팅 리소스들을 소비하고, 사용자에게 불편을 줄 수 있다.
본 개시내용의 양태들은 물리적으로 코-로케이팅된(예를 들어, 상대적으로 짧은 또는 사전 결정된 거리 내에서, 공유 시선(shared line of sight) 내에서 등) 세컨더리 클라이언트 디바이스가 서비스 제공자 플랫폼에 대해 프라이머리 클라이언트 디바이스에 의해 개시된 모든 또는 특정 유형들의 서비스 요청들을 인증할 수 있는 인증 디바이스로서 기능하도록 인에이블하기 위한 메커니즘을 제공함으로써 상기 및 다른 결함들을 해결한다. 본 개시내용의 일부 양태들에 따르면, 프라이머리 클라이언트 디바이스 및 세컨더리 클라이언트 디바이스는 서비스 제공자 플랫폼에 등록될 수 있다. 두 클라이언트 디바이스는 모두 동일한 사용자 계정과 연관될 수 있다. 예를 들어, 프라이머리 클라이언트 디바이스를 사용하여, 사용자는 사용자 이름 및 비밀번호와 같은 사용자 계정 정보를 제공함으로써 그들의 사용자 계정에 액세스할 수 있다. 일단 액세스하면, 사용자는, 예를 들어, 클라이언트 디바이스 식별 데이터(예를 들어, 디바이스 일련 번호, 식별 번호, IP(Internet Protocol) 주소, 위치 데이터, 또는 프라이머리 클라이언트 디바이스와 연관된 다른 식별 데이터 등)를 사용하여 사용자 계정에 프라이머리 클라이언트 디바이스를 등록할 수 있다. 유사하게, 사용자는, 세컨더리 클라이언트 디바이스를 통해, 서비스 제공자 플랫폼에 사용자 계정 정보를 제공함으로써 사용자 계정에 세컨더리 클라이언트 디바이스를 등록할 수 있다. 일부 실시예들에서, 등록에 응답하여, 서비스 제공자 플랫폼은 하나 이상의 공개 키 및/또는 하나 이상의 개인 키와 같은 하나 이상의 암호화 키를 프라이머리 클라이언트 디바이스 및/또는 세컨더리 클라이언트 디바이스에 전송할 수 있다. 암호화 키들은 개개의 클라이언트 디바이스들의 아이덴티티를 확인하는 데 사용될 수 있다. 프라이머리 클라이언트 디바이스 및 세컨더리 클라이언트 디바이스는 각각 상이한 암호화 키 세트를 수신할 수 있다.
그런 다음, 프라이머리 클라이언트 디바이스는 세컨더리 클라이언트 디바이스가 서비스 제공자 플랫폼에 의해 인증 디바이스로서 사용되도록 요청할 수 있다. 인증 디바이스는 프라이머리 클라이언트 디바이스에 의해 발행된 서비스 요청들을 인증하는 데 사용되는 물리적으로 코-로케이팅된 세컨더리 클라이언트 디바이스일 수 있다. 코-로케이팅된 세컨더리 디바이스를 사용하여 프라이머리 클라이언트 디바이스에 의해 발행된 서비스 요청들을 인증하면 원격 서드 파티가 프라이머리 클라이언트 디바이스의 사용자를 가장하는 것을 방지하는데, 왜냐하면, 서드 파티가 물리적으로 프라이머리 클라이언트 디바이스 근처에 위치되어야 할 것이기 때문이다. 일부 실시예들에서, 인증 디바이스(예를 들어, 세컨더리 클라이언트 디바이스)에 의한 인증을 요구하는 서비스 요청의 유형은 사전-정의될 수 있다. 예를 들어, 사용자 입력에 응답하여, 서비스 제공자 플랫폼은 콘텐츠 업로드 요청들 및 구매 요청들에 대해서만 세컨더리 디바이스 검증을 인에이블할 수 있다.
일부 구현들에서, 프라이머리 클라이언트 디바이스는 또한 인증 토큰을 생성하기 위해 세컨더리 디바이스 검증을 요구하는 서비스 요청을 발행할 수 있다. 인증 토큰은 난수(random number), 랜덤 문자열(random string), 암호화 서명, 키-값 쌍, 해시 값, 인증서 등을 포함할 수 있다. 그런 다음, 프라이머리 클라이언트 디바이스는 서비스 제공자 플랫폼에게 서비스 요청 및 인증 토큰을 전송할 수 있다. 일부 실시예들에서, 프라이머리 클라이언트 디바이스는 인증 토큰을 서비스 요청에 첨부할 수 있다. 다른 실시예들에서, 프라이머리 클라이언트 디바이스는 2개의 별도 송신으로 서비스 요청 및 인증 토큰을 전송할 수 있다. 프라이머리 클라이언트 디바이스는 세컨더리 클라이언트 디바이스(예를 들어, 인증 디바이스)에 인증 토큰을 추가로 전송할 수 있다. 일부 실시예들에서, 프라이머리 클라이언트 디바이스는 단거리 통신 기술(short range communication technology)을 사용하여 세컨더리 클라이언트 디바이스에 인증 토큰을 전송할 수 있다. 단거리 통신 기술은 프라이머리 클라이언트 디바이스와 세컨더리 클라이언트 디바이스가 물리적으로 코-로케이팅됨을 확립하는 데 사용될 수 있다. 일부 실시예들에서, 단거리 통신 기술은, 예를 들어, P2P(peer-to-peer), Bluetooth®, Bluetooth® Low Energy, Whisper®, Wi-Fi®, Wi-Fi Direct(Wi-Fi P2P), 적외선 기술, 또는 초음파 기술과 같은 무선 기술을 포함할 수 있다. 일부 실시예들에서, 단거리 통신 기술은 케이블 연결(예를 들어, USB(Universal Serial Bus) 커넥터, 이더넷 커넥터, 라이트닝 커넥터(Lighting connector) 등)과 같은 유선 기술을 포함할 수 있다. 일단 수신되면, 세컨더리 클라이언트 디바이스는 서비스 제공자 플랫폼에 인증 토큰을 전송할 수 있다. 일부 실시예들에서, 세컨더리 클라이언트 디바이스는 먼저 인증 토큰을 암호화하거나, 세컨더리 클라이언트 디바이스의 아이덴티티를 확인하기 위해 서비스 제공자 플랫폼으로부터 수신된 개인 및/또는 공개 키를 사용하여 인증 토큰에 서명할 수 있다.
서비스 제공자 플랫폼은 클라이언트 디바이스들 둘 모두로부터 인증 토큰들을 수신할 수 있고, 임의적으로 개인 및/또는 공개 키들을 사용하여 클라이언트 디바이스들의 진위성(authenticity)을 해독하거나 검증할 수 있고, 프라이머리 클라이언트 디바이스로부터 수신된 인증 토큰을 세컨더리 클라이언트 디바이스로부터 수신된 인증 토큰과 비교할 수 있다. 2개의 인증 토큰이 매치된다고(예를 들어, 프라이머리 클라이언트 디바이스의 수신된 송신으로부터의 숫자 또는 문자열이 세컨더리 클라이언트 디바이스의 수신된 송신으로부터의 숫자 또는 문자열과 동일함) 결정하는 것에 응답하여, 서비스 제공자 플랫폼은 프라이머리 클라이언트 디바이스로부터 수신된 서비스 요청을 인가하거나 프로세싱할 수 있다. 일부 실시예들에서, 세컨더리 클라이언트 디바이스는 백그라운드 프로세스(예를 들어, 사용자 개입 없이 실행되는 프로세스)로서 인증 토큰을 중계(예를 들어, 수신 및 송신)하는 것을 수행할 수 있다. 따라서, 사용자에 의해 개시된 각각의 서비스 요청은 세컨더리 디바이스 검증을 통해 제공되는 추가 보안에 의해, 추가 레이턴시가 거의 또는 전혀 없이 프로세싱될 수 있다.
일부 실시예들에서, 클라이언트 디바이스들 둘 모두의 물리적 코-로케이션(co-location)은, 예를 들어, IP(Internet Protocol) 주소들, MAC(media access control) 주소들, GPS(Global Positioning System) 데이터 등과 같은 위치 데이터를 사용하여 확립될 수 있다. 특히, 프라이머리 클라이언트 디바이스 및 세컨더리 클라이언트 디바이스는 개개의 위치 데이터가 첨부된 인증 토큰을 서비스 제공자 플랫폼에 전송할 수 있다. 인증 토큰들을 수신하면, 서비스 제공자 플랫폼은 각각의 토큰의 위치 데이터를 비교하고, 위치 데이터가 매치되는지 여부를 결정할 수 있다(예를 들어, 하나의 인증 토큰에 첨부된 IP 주소가 다른 인증 토큰에 첨부된 IP 주소에 대응하는지 여부를 결정할 수 있다). 2개의 인증 토큰이 매치되고 각각의 인증 토큰에 첨부된 위치 데이터도 매치된다고 결정하는 것에 응답하여, 서비스 제공자 플랫폼은 프라이머리 클라이언트 디바이스로부터 수신된 서비스 요청을 인가하거나 프로세싱할 수 있다.
따라서, 본 개시내용의 양태들 및 구현들은 코-로케이팅된 세컨더리 클라이언트 디바이스를 통해 서비스 요청들을 인증함으로써 사용자를 가장하기 위해 훔친 쿠키를 사용하려고 시도하는 서드 파티에 대한 사용자 보호를 제공한다. 본 명세서에서 개시되는 기술은 현재 사용자들이 이용가능한 제한된 능력들 및 기능들을 극복하여 그들의 계정들로부터 인가되지 않은 서비스 요청들을 방지할 수 있기 때문에 유리하다. 대신, 사용자들은 이제 추가 레이턴시가 거의 또는 전혀 없이, 사용자 입력을 요구하는 프롬프트를 생성하지 않고(예를 들어, 사용자가 임의의 사용자 디바이스에 임의의 확인 코드를 수동으로 입력하도록 요구하지 않고) 서비스 제공자 플랫폼에 안전하게 서비스 요청들을 발행할 수 있다. 따라서, 본 명세서에서 개시되는 기술은 사용자가 서비스 제공자 플랫폼과 더욱 안전한 세션을 갖도록 인에이블하며, 다르게는 확인 코드를 리트리브하고, 사용자에게 확인 코드를 입력하도록 요청하는 프롬프트를 생성하고, 사용자 입력을 모니터링하고 프로세싱하기 위해 사용자가 상이한 애플리케이션 또는 웹사이트로 스위칭하는 것을 지원하는 데 소비되는 시간 및 컴퓨팅 리소스들을 감소시킨다.
본 개시내용의 구현들은 단순성 및 간결성을 위해 콘텐츠 공유 플랫폼에 대한 서비스 요청들을 인증하는 것을 참조한다. 그러나, 본 개시내용의 교시들은, 예를 들어, 금융 플랫폼들, 은행 플랫폼들, 소셜 미디어 플랫폼들, 이-커머스 플랫폼들 등과 같은, 쿠키들(또는 다른 인가 데이터)을 활용하는 임의의 서비스 제공자 플랫폼들에 적용될 수 있다.
도 1은 본 개시내용의 일 구현에 따른 시스템 아키텍처(100)의 예를 예시한다. 시스템 아키텍처(100)(본 명세서에서는 "시스템"으로서도 지칭됨)는 제1 클라이언트 디바이스(110), 제2 클라이언트 디바이스(120), 서버(130), 네트워크(150), 및 데이터 스토어(135)를 포함한다.
네트워크(150)는 공용 네트워크(예를 들어, 인터넷), 사설 네트워크(예를 들어, LAN(local area network) 또는 WAN(wide area network)), 유선 네트워크(예를 들어, 이더넷 네트워크), 무선 네트워크(예를 들어, 802.11 네트워크 또는 Wi-Fi 네트워크), 셀룰러 네트워크(예를 들어, LTE(Long Term Evolution) 네트워크), 라우터들, 허브들, 스위치들, 서버 컴퓨터들, 및/또는 이들의 조합을 포함할 수 있다.
데이터 스토어(135)는 (미디어 아이템들과 같은) 콘텐츠 아이템들뿐만 아니라, 콘텐츠 아이템들을 태깅하고, 구성하고, 인덱싱하기 위한 데이터 구조들을 저장할 수 있는 영구 스토리지일 수 있다. 데이터 스토어(135)는 메인 메모리, 자기 또는 광학 스토리지 기반 디스크들, 테이프들 또는 하드 드라이브들, NAS, SAN 등과 같은 하나 이상의 스토리지 디바이스에 의해 호스팅될 수 있다. 일부 실시예들에서, 데이터 스토어(135)는 네트워크-어태치형(network-attached) 파일 서버일 수 있지만, 다른 실시예들에서, 데이터 스토어(135)는 서비스 제공자 플랫폼(130) 또는 서비스 제공자 플랫폼(130)에 커플링되는 하나 이상의 상이한 머신에 의해 호스팅될 수 있는 객체-지향 데이터베이스, 관계형 데이터베이스 등과 같은 일부 다른 유형의 영구 스토리지일 수 있다. 일부 실시예들에서, 데이터 스토어(135)는 네트워크(150)를 통해 서비스 제공자 플랫폼(130)에 커플링될 수 있다.
클라이언트 디바이스들(110, 120)은 각각 개인용 컴퓨터들(PC들), 랩탑들, 모바일폰들, 스마트폰들, 태블릿 컴퓨터들, 넷북 컴퓨터들, 네트워크-연결 텔레비전들 등과 같은 컴퓨팅 디바이스들을 포함할 수 있다. 일부 실시예들에서, 클라이언트 디바이스들(110, 120)은 "사용자 디바이스들"로서도 지칭될 수 있다. 일부 실시예들에서, 각각의 클라이언트 디바이스(110, 120)는 미디어 플레이어(112)(또는 미디어 뷰어), 링크 모듈(112), 및 토큰 모듈(116)을 포함할 수 있다.
일부 실시예들에서, 미디어 플레이어들(112)은 사용자들이 이미지들, 비디오 아이템들, 웹 페이지들, 문서들, 오디오 아이템들 등과 같은 콘텐츠를 재생, 보기, 또는 업로드하도록 허용하는 애플리케이션들일 수 있다. 예를 들어, 미디어 플레이어(112)는 웹 서버에 의해 서빙되는 콘텐츠(예를 들어, HTML(Hyper Text Markup Language) 페이지들과 같은 웹 페이지들, 디지털 미디어 아이템들 등)를 액세스, 리트리브, 제시, 또는 내비게이션할 수 있는 웹 브라우저일 수 있다. 미디어 플레이어(112)는 사용자에게 콘텐츠(예를 들어, 웹 페이지, 미디어 뷰어)를 렌더링, 디스플레이, 또는 제시할 수 있다. 미디어 플레이어(112)는 또한 웹 페이지(예를 들어, 온라인 상인에 의해 판매되는 제품에 대한 정보를 제공할 수 있는 웹 페이지)에 임베딩되는 임베디드 미디어 플레이어(예를 들어, Flash® 플레이어 또는 HTML5 플레이어)를 포함할 수 있다. 다른 예에서, 미디어 플레이어(112)는 사용자들이 디지털 미디어 아이템들(예를 들어, 디지털 비디오 아이템들, 디지털 이미지들, 전자 책들 등)을 재생하도록 허용하는 독립형 애플리케이션(standalone application)(예를 들어, 모바일 애플리케이션, 또는 네이티브 애플리케이션(native application))일 수 있다. 본 개시내용의 양태들에 따르면, 미디어 플레이어(112)는 사용자들이 콘텐츠 공유 플랫폼에서 공유하기 위해 콘텐츠를 레코딩, 편집, 및/또는 업로드하는 콘텐츠 공유 플랫폼 애플리케이션일 수 있다. 따라서, 미디어 플레이어들(112)은 서비스 제공자 플랫폼(130)에 의해 클라이언트 디바이스들(110, 120)에 제공될 수 있다. 예를 들어, 미디어 플레이어들(112)은 서비스 제공자 플랫폼(130)에 의해 제공되는 웹 페이지들에 임베딩되는 임베디드 미디어 플레이어들일 수 있다. 다른 예에서, 미디어 플레이어들(112)은 서비스 제공자 플랫폼(130)으로부터 다운로드되는 애플리케이션들일 수 있다. 본 개시내용의 구현들은 단순성 및 간결성을 위해 콘텐츠 공유 플랫폼과의 통신(예를 들어, 서비스 요청들 전송, 콘텐츠 수신 등)을 위한 애플리케이션으로서 미디어 플레이어(112)를 참조한다. 그러나, 다른 실시예들에서, 미디어 플레이어(112)는, 예를 들어, 금융 플랫폼들, 은행 플랫폼들, 소셜 미디어 플랫폼들, 이-커머스 플랫폼들 등과 같은 다른 유형들의 서비스 제공자 플랫폼들과의 통신을 인에이블하는 하나 이상의 애플리케이션일 수 있다.
일부 실시예들에서, 제1 클라이언트 디바이스(110)는 링크 모듈(114)을 사용하여 하나 이상의 제2 클라이언트 디바이스(120)와 커플링(예를 들어, 페어링) 및/또는 통신할 수 있다. 일부 실시예들에서, 커플링은 단거리 통신 기술에 기초할 수 있고, 클라이언트 디바이스(110, 120)는 둘 모두 물리적으로 코-로케이팅될 수 있다(예를 들어, 상대적으로 짧은 또는 사전 결정된 거리 내에서, 공유 시선 내에서 등). 일부 실시예들에서, 제1 클라이언트 디바이스(110) 및 제2 클라이언트 디바이스(120)는 제1 클라이언트 디바이스(110)와 제2 클라이언트 디바이스(120) 사이의 단거리 커플링을 확립하기 위한 무선 기술을 포함할 수 있다. 무선 통신 기술은 P2P(peer-to-peer), Bluetooth®, Bluetooth® Low Energy, Whisper®, Wi-Fi®, Wi-Fi Direct(Wi-Fi P2P), 적외선, 초음파, 또는 다른 기술을 포함할 수 있다. 일부 실시예들에서, 제1 클라이언트 디바이스(110) 및 제2 클라이언트 디바이스(120)는 제1 클라이언트 디바이스(110)와 제2 클라이언트 디바이스(120) 사이의 단거리 커플링을 확립하기 위한 유선 기술을 포함할 수 있다. 유선 통신 기술은, 예를 들어, USB(Universal Serial Bus) 커넥터, 이더넷 커넥터, 라이트닝 커넥터, 또는 임의의 다른 가능한 커넥터와 같은 케이블 연결을 포함할 수 있다.
일부 실시예들에서, 링크 모듈(114)은, 서비스 제공자 플랫폼(130)에 의해, 제1 클라이언트 디바이스(110)와 제2 클라이언트 디바이스(120)가 물리적으로 코-로케이팅됨을 확립하는데 사용될 수 있는 위치 데이터를 생성할 수 있다. 예를 들어, (각각의 클라이언트 디바이스(110, 120)의) 링크 모듈(114)은 개개의 클라이언트 디바이스(110, 120)와 연관된 위치 데이터를 서비스 제공자 플랫폼(120)에 전송할 수 있다. 위치 데이터는 클라이언트 디바이스(110, 120)와 연관된 IP(Internet Protocol) 주소, 클라이언트 디바이스(110, 120)와 연관된 MAC(media access control) 주소, 지오-로케이션(geo-location) 데이터(예를 들어, GPS(Global Position System) 데이터, 셀폰 타워 데이터(cell phone tower data), Wi-Fi 액세스 포인트 데이터 등), 임의의 다른 위치 데이터, 또는 이들의 임의의 조합을 포함할 수 있다. 일부 실시예들에서, 위치 데이터는 인증 토큰 또는 서비스 요청과 같은 다른 데이터에 첨부될 수 있다. 다른 실시예들에서, 위치 데이터는, 다른 데이터와 관계 없이, 서비스 제공자 플랫폼(130)에 전송될 수 있다. 물리적 코-로케이션을 확립하기 위해, 서비스 제공자 플랫폼(130)은 클라이언트 디바이스(110 및 120)로부터 수신된 위치 데이터를 비교하고, 위치 데이터가 매치되는지 여부를 결정할 수 있다(예를 들어, 위치 데이터는 클라이언트 디바이스들(110 및 120)의 근접성(close proximity)을 표시함). 예를 들어, 서비스 제공자 플랫폼(130)은 제1 클라이언트 디바이스(110)와 연관된 IP 주소가 제2 클라이언트 디바이스(120)와 연관된 IP 주소와 동일한지 여부를 결정할 수 있다(예를 들어, 클라이언트 디바이스들 둘 모두 동시에 동일한 네트워크에 연결되는 경우).
토큰 모듈(116)은 하나 이상의 인증 토큰을 생성하는 데 사용될 수 있다. 인증 토큰(들)은 서비스 제공자 플랫폼(130)에 발행된 서비스 요청들에 대해 생성될 수 있고, 검증 클라이언트 디바이스(예를 들어, 서비스를 요청하는 클라이언트 디바이스와 물리적으로 코-로케이팅된 클라이언트 디바이스)를 사용함으로써 서비스 요청을 인증하는 데 사용될 수 있다. 서비스 요청은 서비스 제공자 플랫폼(130)에 클라이언트 디바이스(110, 120)에 의해 발행된 임의의 유형의 요청, 이를테면, 예를 들어, 로그인 요청들, 콘텐츠 업로드 요청들, 콘텐츠 검색 요청들, 콘텐츠 소비 요청들, 콘텐츠 승인 요청들, 콘텐츠 비승인 요청들, 콘텐츠에 대한 코멘트 요청들, 설정 변경 요청들, 개인 상세 변경 요청들, 또는 구매 요청들 등일 수 있다. 일부 실시예들에서, 인증 토큰은 랜덤으로 생성된 숫자(예를 들어, 64비트 숫자, 128비트 숫자 등) 또는 문자열일 수 있다. 다른 실시예들에서, 인증 토큰은 암호화 서명, 키-값 쌍, 해시 값, 인증서 등일 수 있다.
인증 토큰은 클라이언트 디바이스(110, 120)에 의해 클라이언트 디바이스(120, 110)에 각각, 그리고 서비스 제공자 플랫폼(130)에 전송될 수 있다. 일부 실시예들에서, 클라이언트 디바이스(110, 120) 및/또는 서비스 제공자 플랫폼(130)은, 아래에서 더 상세하게 논의되는 바와 같이, 인증 토큰을 해독하고, 및/또는 인증 토큰의 암호화 서명을 결정하고, 및/또는 토큰을 인증하는 것과 연관된 임의의 다른 프로세스를 수행함으로써, 수신된 인증 토큰에 대한 인증 프로세스를 수행할 수 있다. 인증 토큰(들)을 인증하는 것에 응답하여, 서비스 제공자 플랫폼(130)은 요청된 서비스 요청을 수락하거나 실행할 수 있다. 예를 들어, 서비스 제공자 플랫폼(130)은 요청된 디지털 미디어 아이템의 재생을 개시하거나 계속할 수 있거나, 요청된 디지털 미디어 아이템의 업로드를 허용할 수 있거나, 기타 등등을 수행할 수 있다.
일부 실시예들에서, (확인 클라이언트 디바이스에 의한) 검증을 요구하는 서비스 요청(들)의 유형은 사전-정의될 수 있다. 예를 들어, 사용자는 물리적으로 코-로케이팅된 검증 디바이스에 의한 검증을 요구하는 서비스 요청들의 유형을, 미디어 플레이어(112)를 사용하여, 선택할 수 있으며, 여기서, 모든 다른 요청들은 검증 디바이스에 의한 검증을 요구하지 않을 수 있다. 예를 들어, 사용자 입력에 응답하여, 데이터 인가 서비스(authorizing data service)(124)는 로그인 요청들, 콘텐츠 업로드 요청들, 및 구매 요청들에 대해서만 검증 디바이스 인증을 인에이블할 수 있다.
일부 실시예들에서, 서비스 제공자 플랫폼(130)은 사용자에게 미디어 아이템들에 대한 액세스를 제공하거나 사용자에게 미디어 아이템들을 제공하는 데 사용될 수 있는 하나 또는 다수의 컴퓨팅 디바이스들(이를테면, 랙마운트 서버, 라우터 컴퓨터, 서버 컴퓨터, 개인용 컴퓨터, 메인프레임 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 데스크탑 컴퓨터 등), 데이터 스토어들(예를 들어, 하드 디스크들, 메모리들, 데이터베이스들), 네트워크들, 소프트웨어 컴포넌트들, 또는 하드웨어 컴포넌트들을 포함할 수 있다. 예를 들어, 서비스 제공자 플랫폼(130)은 사용자가 미디어 아이템들을 소비, 업로드, 검색, 승인("좋아요(like)"), 비승인("싫어요(dislike)")하거나, 이에 대해 코멘트하도록 허용할 수 있다. 서비스 제공자 플랫폼(130)은 또한 사용자에게 미디어 아이템들에 대한 액세스를 제공하는 데 사용될 수 있는 웹사이트(예를 들어, 웹페이지) 또는 애플리케이션 백-엔드 소프트웨어를 포함할 수 있다.
본 개시내용의 일부 실시예들에서, "사용자"는 단일 개인으로서 표현될 수 있다. 그러나, 본 개시내용의 다른 실시예들은 사용자들의 세트 및/또는 자동화된 소스에 의해 제어되는 엔티티인 "사용자"를 포함한다. 예를 들어, 소셜 네트워크에서 커뮤니티로서 연합된 개인 사용자들의 세트가 "사용자"로 간주될 수 있다. 다른 예에서, 자동화된 소비자는 서비스 제공자 플랫폼(130)의, 토픽 채널과 같은, 자동화된 수집 파이프라인(automated ingestion pipeline)일 수 있다.
서비스 제공자 플랫폼(130)은 다수의 채널들을 포함할 수 있다. 채널은 공통 소스로부터 이용가능한 데이터 콘텐츠 또는 공통 토픽, 테마, 또는 내용을 갖는 데이터 콘텐츠일 수 있다. 데이터 콘텐츠는 사용자에 의해 선택된 디지털 콘텐츠, 사용자에 의해 이용가능하게 된 디지털 콘텐츠, 사용자에 의해 업로드된 디지털 콘텐츠, 콘텐츠 제공자에 의해 선택된 디지털 콘텐츠, 방송사(broadcaster)에 의해 선택된 디지털 콘텐츠 등일 수 있다. 예를 들어, 채널 X는 비디오 Y 및 Z를 포함할 수 있다. 채널은 채널에서 액션들을 수행할 수 있는 사용자인 소유자와 연관될 수 있다. 소유자의 액션들, 이를테면, 소유자가 채널에서 디지털 콘텐츠를 이용가능하게 하는 것, 소유자가 다른 채널과 연관된 디지털 콘텐츠를 선택하는 것(예를 들어, 좋아요), 소유자가 다른 채널과 연관된 디지털 콘텐츠에 대해 코멘트하는 것 등에 기초하여 상이한 액티비티들이 채널과 연관될 수 있다. 채널과 연관된 액티비티들은 채널에 대한 액티비티 피드로 수집될 수 있다. 채널의 소유자가 아닌 사용자들은 관심 있는 하나 이상의 채널을 구독(subscribe)할 수 있다. '구독(subscribing)'의 개념은 '좋아요(liking)', '팔로잉(following)', '친구맺기(friending)' 등으로서도 지칭될 수 있다.
사용자가 채널을 구독하면, 사용자에게는 채널의 액티비티 피드로부터의 정보가 제시될 수 있다. 사용자가 다수의 채널들을 구독하는 경우, 사용자가 구독하는 각각의 채널에 대한 액티비티 피드는 신디케이티드 액티비티 피드(syndicated activity feed)로 조합될 수 있다. 신디케이티드 액티비티 피드로부터의 정보가 사용자에게 제시될 수 있다. 채널들은 그들 자신의 피드들을 가질 수 있다. 예를 들어, 서비스 제공자 플랫폼에서 채널의 홈 페이지로 내비게이팅할 때, 해당 채널에 의해 생성된 피드 아이템들이 채널 홈 페이지에서 보여질 수 있다. 사용자들은 적어도 사용자가 구독하는 모든 채널들로부터의 콘텐츠 아이템 서브세트를 포함하는 피드인 신디케이티드 피드를 가질 수 있다. 신디케이티드 피드들은 사용자가 구독하지 않는 채널들로부터의 콘텐츠 아이템들도 포함할 수 있다. 예를 들어, 서비스 제공자 플랫폼(130) 또는 다른 소셜 네트워크들은 사용자의 신디케이티드 피드에 추천 콘텐츠 아이템들을 삽입할 수 있거나, 신디케이티드 피드에 사용자의 관련 연결과 연관된 콘텐츠 아이템들을 삽입할 수 있다.
각각의 채널은 하나 이상의 미디어 아이템을 포함할 수 있다. 미디어 아이템의 예들은 디지털 비디오, 디지털 영화들, 디지털 사진들, 디지털 음악, 오디오 콘텐츠, 멜로디들, 웹사이트 콘텐츠, 소셜 미디어 업데이트들, 전자 책들(이북들), 전자 잡지들, 디지털 신문들, 디지털 오디오북들, 전자 저널들, 웹 블로그들, RSS(real simple syndication) 피드들, 전자 만화책들, 소프트웨어 애플리케이션들 등을 포함할 수 있지만, 이에 제한되지 않는다. 일부 실시예들에서, 미디어 아이템은 콘텐츠 또는 콘텐츠 아이템으로서도 지칭된다.
제한이 아닌 간결성 및 단순성을 위해, 비디오 아이템, 오디오 아이템, 또는 게임 아이템이 이 문서 전반에 걸쳐 미디어 아이템의 예로서 사용된다. 본 문서에서 사용되는 바와 같이, "미디어", 미디어 아이템, "온라인 미디어 아이템", "디지털 미디어", "디지털 미디어 아이템", "콘텐츠", 및 "콘텐츠 아이템"은 엔티티에 디지털 미디어 아이템을 제시하도록 구성된 소프트웨어, 펌웨어 또는 하드웨어를 사용하여 실행되거나 로드될 수 있는 전자 파일을 포함할 수 있다. 일 실시예에서, 서비스 제공자 플랫폼(130)은 데이터 스토어(106)를 사용하여 미디어 아이템들(132)을 저장할 수 있다. 다른 실시예에서, 서비스 제공자 플랫폼(130)은 데이터 스토어(135)를 사용하여 하나 이상의 포맷의 전자 파일들로서 비디오 아이템들 또는 지문(fingerprint)들을 저장할 수 있다.
일부 실시예들에서, 미디어 아이템들은 비디오 아이템들이다. 비디오 아이템은 모션 중인 장면을 나타내는 순차적 비디오 프레임들(예를 들어, 이미지 프레임들)의 세트이다. 예를 들어, 일련의 순차적 비디오 프레임들은 연속적으로 캡처되거나 나중에 재구성되어 애니메이션을 생성할 수 있다. 비디오 아이템들은 아날로그, 디지털, 2차원 및 3차원 비디오를 포함하되, 이에 제한되지 않는 다양한 포맷들로 제시될 수 있다. 또한, 비디오 아이템들은 영화들, 비디오 클립들 또는 순차대로 디스플레이될 임의의 애니메이션 이미지 세트를 포함할 수 있다. 또한, 비디오 아이템은 비디오 컴포넌트 및 오디오 컴포넌트를 포함하는 비디오 파일로서 저장될 수 있다. 비디오 컴포넌트는 비디오 코딩 포맷 또는 이미지 코딩 포맷(예를 들어, H.264(MPEG-4 AVC), H.264 MPEG-4 Part 2, GIF(Graphic Interchange Format), WebP 등)의 비디오 데이터를 의미할 수 있다. 오디오 컴포넌트는 오디오 코딩 포맷(예를 들어, AAC(advanced audio coding), MP3 등)의 오디오 데이터를 의미할 수 있다. GIF는 이미지 파일(예를 들어, .gif 파일)로서 저장되거나 애니메이션 GIF(예를 들어, GIF89a 포맷)로 일련의 이미지들로서 저장될 수 있다는 점에 유의할 수 있다. H.264는, 예를 들어, 비디오 콘텐츠의 레코딩, 압축, 또는 배포를 위한 블록-지향 모션-보상-기반 비디오 압축 표준인 비디오 코딩 포맷일 수 있다는 점에 유의할 수 있다.
일부 실시예들에서, 미디어 아이템은 클라이언트 디바이스들(110, 120) 중 하나 이상에, 라이브 스트림과 같이, 스트리밍될 수 있다. "스트리밍된" 또는 "스트리밍"은 미디어 아이템과 같은 콘텐츠의 송신 또는 브로드캐스트를 의미하며, 여기서, 미디어 아이템의 수신된 부분들은 수신 즉시(기술적 제한들 내에서) 또는 미디어 콘텐츠의 다른 부분들이 전달되고 있는 동안, 수신 디바이스에 의해 전체 미디어 아이템이 수신되지는 않았더라도, 수신 디바이스에 의해 재생될 수 있다는 점에 유의한다. "스트림"은 스트리밍되거나 스트리밍하고 있는, 미디어 아이템과 같은, 콘텐츠를 의미할 수 있다. 라이브-스트림 미디어 아이템은 라이브 이벤트의 라이브 브로드캐스트 또는 송신을 의미할 수 있으며, 여기서, 미디어 아이템은 이벤트가 수신 디바이스에 발생할 때, 적어도 부분적으로, 동시에 송신되고, 미디어 아이템은 그 전체적으로 이용가능하지는 않다.
일부 실시예들에서, 서비스 제공자 플랫폼(130)은 사용자들이 미디어 아이템들을 포함하는 플레이리스트들을 생성, 공유, 보기 또는 사용하도록 허용할 수 있다. 플레이리스트는 임의의 사용자 상호 작용 없이 특정 순서에 따라 차례로 재생하도록 구성되는 미디어 아이템들의 컬렉션을 의미한다. 일부 실시예들에서, 서비스 제공자 플랫폼(130)은 사용자를 대신하여 플레이리스트를 유지할 수 있다. 일부 실시예들에서, 서비스 제공자 플랫폼(130)의 플레이리스트 피처는 사용자들이 재생을 위해 그들의 좋아하는 미디어 아이템들을 단일 위치에서 함께 그룹화하도록 허용한다. 일부 실시예들에서, 서비스 제공자 플랫폼(130)은 재생 또는 디스플레이를 위해 플레이리스트의 미디어 아이템을 클라이언트 디바이스(110, 120)에 전송할 수 있다. 예를 들어, 미디어 뷰어(112)는 미디어 아이템들이 플레이리스트에 나열되는 순서대로 플레이리스트의 미디어 아이템들을 재생하는 데 사용될 수 있다. 다른 예에서, 사용자는 플레이리스트의 미디어 아이템들 사이에서 트랜지션할 수 있다. 또 다른 예에서, 사용자는 플레이리스트의 다음 미디어 아이템이 재생되기를 대기할 수 있거나 재생을 위해 플레이리스트의 특정 미디어 아이템을 선택할 수 있다.
일부 실시예들에서, 사용자는 사용자 계정을 통해 공유 플랫폼(130)의 콘텐츠에 액세스할 수 있다. 사용자는 클라이언트 디바이스(110, 120)의 애플리케이션(예를 들어, 미디어 뷰어(112))을 통해 사용자 계정 정보(예를 들어, 사용자 이름 및 비밀번호)를 제공함으로써 사용자 계정에 액세스할 수 있다(예를 들어, 로그인할 수 있다). 일부 실시예들에서, 사용자 계정은 단일 사용자와 연관될 수 있다. 다른 실시예들에서, 사용자 계정은 공유 계정(예를 들어, 다수의 사용자들에 의해 공유되는 가족 계정)(본 명세서에서는 "공유 사용자 계정"으로서도 지칭됨)일 수 있다. 공유 계정은 각각 상이한 사용자와 연관된 다수의 사용자 프로파일들을 가질 수 있다. 다수의 사용자들은 동일한 계정 정보 또는 상이한 계정 정보를 사용하여 공유 계정에 로그인할 수 있다. 일부 실시예들에서, 공유 계정의 다수의 사용자들은 공유 계정의 상이한 사용자 프로파일들에 기초하여 구별될 수 있다.
일부 실시예들에서, 데이터 인가 서비스(134)는 사용자 계정이 요청된 콘텐츠를 획득하도록 허가되도록 사용자 계정을 인가할 수 있다. 일부 실시예들에서, 데이터 인가 서비스(134)는 요청된 콘텐츠에 대한 사용자 계정(예를 들어, 사용자 계정과 연관된 클라이언트 디바이스) 액세스를 인가하거나, 클라이언트 디바이스에 대한 요청된 콘텐츠의 전달을 인가하거나, 또는 둘 모두를 인가할 수 있다. 요청된 콘텐츠에 액세스하기 위한 사용자 계정의 인가는 어떤 콘텐츠가 액세스되는지 및 누가 콘텐츠에 액세스하도록 허가되는지를 인가하는 것을 포함할 수 있다. 콘텐츠 전달의 인가는 어떻게 콘텐츠가 전달되는지를 인가하는 것을 포함할 수 있다.
일부 실시예들에서, 데이터 인가 서비스(134)는 사용자 계정 정보를 사용하여 사용자 계정을 인가할 수 있다. 일부 실시예들에서는, 클라이언트 디바이스(110, 120) 또는 미디어 플레이어(112)와 연관된 인증 토큰(예를 들어, 세션-기반 인증 토큰, 콘텐츠-기반 인증 토큰 등)이 사용자 계정 및/또는 요청된 콘텐츠의 재생을 인가하는 데 사용될 수 있다. 일부 실시예들에서, 데이터 인가 서비스(134)는 서비스 제공자 플랫폼(130)의 일부이다. 일부 실시예들에서, 데이터 인가 서비스(134)는 서비스 제공자 플랫폼(130)의 일부가 아니며, 서드 파티에 의해 제공되는 인가 서비스와 같은 외부 서비스이다(예를 들어, 신뢰할 수 있는 인증 서비스).
본 개시내용의 실시예들은 콘텐츠 공유 플랫폼들 및 서비스 제공자 플랫폼(130)에서 콘텐츠 아이템의 소셜 네트워크 공유를 프로모션하는 것 측면에서 논의되었지만, 실시예들은 또한 일반적으로 사용자들 사이에, 콘텐츠 전달 플랫폼들에, 또는 서비스 제공자 플랫폼들에 연결들을 제공하는 임의의 유형의 네트워크에 적용될 수도 있다. 본 개시내용의 구현들은 사용자들에게 채널 구독들을 제공하는 콘텐츠 공유 플랫폼들에 제한되지 않는다.
위의 설명들에 추가로, 사용자는 본 명세서에서 설명되는 시스템들, 프로그램들, 또는 피처들이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션들, 또는 액티비티들, 직업, 사용자의 선호도들, 또는 사용자의 현재 위치에 대한 정보)의 컬렉션을 인에이블할 수 있는지 여부 및 그 시기, 및 사용자가 서버로부터 콘텐츠 또는 통신들을 전송받는지 여부에 대해 사용자가 선택하도록 허용하는 제어들을 제공받을 수 있다. 또한, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 방법으로 처리(treat)되어, 개인 식별가능 정보가 제거될 수 있다. 예를 들어, 사용자에 대해 개인 식별가능 정보가 결정되지 않을 수 있도록, 또는 사용자의 지리적 위치가 (도시, ZIP 코드, 또는 주 레벨과 같이) 위치 정보가 획득되는 곳에서 일반화될 수 있도록 사용자의 아이덴티티가 처리될 수 있어, 사용자의 특정 위치가 결정되는 것이 가능하지 않다. 따라서, 사용자는 사용자에 대해 어떤 정보가 수집되고, 해당 정보가 어떻게 사용되고, 어떤 정보가 사용자에게 제공되는지에 대한 제어를 가질 수 있다.
도 2는 본 개시내용의 실시예들에 따라, 프라이머리 클라이언트 디바이스에 의해 개시된 서비스 요청을, 세컨더리 클라이언트 디바이스를 사용하여, 인증하기 위한 동작들의 다이어그램이다. 시스템(200)은 도 1의 시스템 아키텍처(100)와 유사한 컴포넌트들을 포함할 수 있다. 도 1의 컴포넌트들은 도 2를 설명하는 것을 돕는 데 사용될 수 있다는 점에 유의할 수 있다. 제한이 아닌 예시의 목적들을 위해, 시스템(200)에 대한 동작들은 서비스 제공자 플랫폼(130)의 데이터 인가 서비스(124), 프라이머리 클라이언트 디바이스(205), 및 세컨더리 클라이언트 디바이스(210)에 의해 수행되는 것으로서 설명된다. 일부 실시예들에서, 프라이머리 클라이언트 디바이스(205)는 클라이언트 디바이스(110)와 유사하거나 동일할 수 있고, 세컨더리 클라이언트 디바이스(210)는 클라이언트 디바이스(120)와 유사하거나 동일할 수 있다. 이와 같이, 시스템(200)에 대한 동작들은, 달리 설명되지 않는 한, 클라이언트 디바이스들(110, 120)의 임의의 컴포넌트, 이를테면, 예를 들어, 미디어 플레이어(112), 링크 모듈(114), 및/또는 토큰 모듈(116)에 의해 수행될 수 있다. 도 2에 대해 설명되는 동작들은 제한이 아닌 예시를 위해 순차적으로 수행되는 것으로 도시되어 있다. 동작들은 임의의 순서로 수행될 수 있고, 동작들 중 임의의 것은 하나 이상의 다른 동작과 동시에 수행될 수 있다는 점에 유의할 수 있다. 일부 구현들에서는, 동일하거나, 상이하거나, 더 적거나, 또는 더 많은 수의 동작들이 임의의 순서로 수행될 수 있다.
동작(212)에서, 프라이머리 클라이언트 디바이스(205)는 콘텐츠 공유 플랫폼(예를 들어, 서비스 제공자 플랫폼(130))과 연관된 사용자 계정에 프라이머리 클라이언트 디바이스(205)를 등록하기 위한 등록 요청을 데이터 인가 서비스(124)에 전송할 수 있다. 예를 들어, 사용자는 프라이머리 클라이언트 디바이스(205)의 미디어 뷰어 애플리케이션(예를 들어, 미디어 뷰어(112))을 사용하여, 사용자 이름 및 비밀번호와 같은, 사용자 계정 정보를 제공함으로써 사용자 계정에 액세스할 수 있다. 일단 액세스되면(예를 들어, 콘텐츠 공유 플랫폼이 사용자 계정을 인가함), 미디어 뷰어(112)는 디바이스 등록 버튼을 제시할 수 있다. 사용자는 콘텐츠 공유 플랫폼에 프라이머리 클라이언트 디바이스(205)를 등록하기 위한 등록 요청을 전송하기 위해 디바이스 등록 버튼을 선택할 수 있다. 일부 실시예들에서, 등록 요청은 데이터 인가 서비스(124)가 프라이머리 클라이언트 디바이스(205)를 등록하는 데 사용할 수 있는 클라이언트 디바이스 식별 데이터를 포함할 수 있다. 클라이언트 디바이스 식별 데이터는 디바이스 일련 번호, 식별 번호, IP 주소, 위치 데이터, 또는 프라이머리 클라이언트 디바이스(205)와 연관된 다른 식별 데이터를 포함할 수 있다. 일부 실시예들에서, 등록 요청에 응답하여, 데이터 인가 서비스(124)는 프라이머리 클라이언트 디바이스(205)에 쿠키를 전송할 수 있다. 그러면, 프라이머리 클라이언트 디바이스(205)는 콘텐츠 공유 플랫폼에 대한 후속 요청들 동안 등록을 증명하기 위해 쿠키를 사용할 수 있다. 일부 실시예들에서, 등록 요청에 응답하여, 데이터 인가 서비스(124)는 하나 이상의 공개 키 및/또는 하나 이상의 개인 키와 같은 하나 이상의 암호화 키, 인증서 등을 프라이머리 클라이언트 디바이스(205)에 전송할 수 있으며, 이들은, 콘텐츠 공유 플랫폼에 의해, 프라이머리 클라이언트 디바이스(205)의 아이덴티티를 확인하는 데 사용될 수 있다.
동작(214)에서, 세컨더리 클라이언트 디바이스(210)는 콘텐츠 공유 플랫폼(예를 들어, 서비스 제공자 플랫폼(130))과 연관된 사용자 계정에 세컨더리 클라이언트 디바이스(210)를 등록하기 위한 등록 요청을 데이터 인가 서비스(124)에 전송할 수 있다. 세컨더리 클라이언트 디바이스(210)를 등록하는 것은 프라이머리 클라이언트 디바이스(205)를 등록하는 것과 유사할 수 있다. 특히, 사용자는 세컨더리 클라이언트 디바이스(210)의 미디어 뷰어 애플리케이션(예를 들어, 미디어 뷰어(112))을 사용하여, 사용자 이름 및 비밀번호와 같은, 사용자 계정 정보를 제공함으로써 사용자 계정에 액세스할 수 있다. 일단 액세스되면(예를 들어, 콘텐츠 공유 플랫폼이 사용자 계정을 인가함), 미디어 뷰어(112)는 디바이스 등록 버튼을 제시할 수 있다. 사용자는 콘텐츠 공유 플랫폼에 세컨더리 클라이언트 디바이스(210)를 등록하기 위한 등록 요청을 전송하기 위해 디바이스 등록 버튼을 선택할 수 있다. 일부 실시예들에서, 등록 요청은 데이터 인가 서비스(124)가 세컨더리 클라이언트 디바이스(210)를 등록하는 데 사용할 수 있는 클라이언트 디바이스 식별 데이터를 포함할 수 있다. 클라이언트 디바이스 식별 데이터는 디바이스 일련 번호, 식별 번호, IP 주소, 위치 데이터, 또는 세컨더리 클라이언트 디바이스(210)와 연관된 다른 식별 데이터를 포함할 수 있다. 일부 실시예들에서, 등록 요청에 응답하여, 데이터 인가 서비스(124)는 세컨더리 클라이언트 디바이스(210)에 쿠키를 전송할 수 있다. 그러면, 세컨더리 클라이언트 디바이스(210)는 콘텐츠 공유 플랫폼에 대한 후속 요청들 동안 등록을 증명하기 위해 쿠키를 사용할 수 있다. 일부 실시예들에서, 등록 요청에 응답하여, 데이터 인가 서비스(124)는 하나 이상의 공개 키 및/또는 하나 이상의 개인 키와 같은 하나 이상의 암호화 키, 인증서 등을 세컨더리 클라이언트 디바이스(210)에 전송할 수 있으며, 이들은, 세컨더리 클라이언트 디바이스(210)에 의해, 콘텐츠 공유 플랫폼이 세컨더리 클라이언트 디바이스(210)의 아이덴티티를 확인하도록 허용하기 위해 콘텐츠 공유 플랫폼에 전송된 메시지들에 서명하는 데(또는 추가하는 데) 사용될 수 있다.
동작(216)에서, 프라이머리 클라이언트 디바이스(205)는 세컨더리 클라이언트 디바이스(210)를 인증 디바이스로서 인에이블하기 위한 요청을 데이터 인가 서비스(124)에 전송한다. 인증 디바이스는 프라이머리 클라이언트 디바이스(205)에 의해 발행된 서비스 요청들을 인증하는 데 사용되는 물리적으로 코-로케이팅된 세컨더리 디바이스일 수 있다. 서비스 요청은 클라이언트 디바이스에 의해 콘텐츠 공유 플랫폼에 발행된 특정 서비스에 대한 임의의 유형의 요청일 수 있다. 일부 실시예들에서, (인증 디바이스에 의한) 인증을 요구하는 서비스 요청의 유형은 사전-정의될 수 있다. 예를 들어, 사용자 입력에 응답하여, 데이터 인가 서비스(124)는 로그인 요청들, 콘텐츠 업로드 요청들, 및 구매 요청들에 대해서만 세컨더리 디바이스 인증을 인에이블할 수 있다.
동작(218)에서, 프라이머리 클라이언트 디바이스(205)는 서비스 요청을 데이터 인가 서비스(124)에 전송한다. 예를 들어, 프라이머리 클라이언트 디바이스(205)는 사용자 계정과 연관된 채널에 콘텐츠를 업로드하기 위한 요청을 데이터 인가 서비스(124)에 전송할 수 있다.
동작(220)에서, 동작(216)에서의 서비스 요청이 세컨더리 디바이스 인증을 요구한다고 결정하는 것에 응답하여, 프라이머리 클라이언트 디바이스(205)는 인증 토큰을 생성한다. 인증 토큰은 랜덤으로 생성된 숫자(예를 들어, 64비트 숫자, 128비트 숫자 등), 문자열, 암호화 서명, 키-값 쌍, 해시 값, 인증서 등일 수 있다. 일부 실시예들에서, 프라이머리 클라이언트 디바이스(205)는 세컨더리 디바이스 인증을 요구하는 서비스 요청들의 유형들을 나열하는 데이터 구조를 스캐닝하고 서비스 요청 유형이 리스팅에 포함되어 있다고 결정함으로써 서비스 요청이 세컨더리 디바이스 인증을 요구한다고 결정할 수 있다. 일부 실시예들에서, 프라이머리 클라이언트 디바이스(205)는 데이터 인가 서비스(124)로부터 세컨더리 디바이스 인증이 요구된다는 표시(예를 들어, 경고)를 수신할 수 있다.
동작(222)에서, 프라이머리 클라이언트 디바이스(205)는 데이터 인가 서비스(124)에 인증 토큰의 제1 인스턴스를 전송한다. 인증 토큰의 제1 인스턴스는 암호화되지 않은 데이터로서 전송될 수 있거나, 프라이머리 클라이언트 디바이스(205)에 의해 암호화될 수 있다. 일부 실시예들에서, 프라이머리 클라이언트 디바이스(205)는 인증 토큰의 제1 인스턴스에 개인 및/또는 공개 키, 인증서, 쿠키, 또는 데이터 인가 서비스(124)에 대해 프라이머리 클라이언트 디바이스(205)를 식별할 수 있는 임의의 다른 식별 데이터를 첨부할 수 있다. 일부 실시예들에서, 프라이머리 클라이언트 디바이스(205)는 인증 토큰의 제1 인스턴스에 IP 주소, MAC 주소, GPS 데이터 등과 같은 위치 데이터를 첨부할 수 있다. 위치 데이터는 데이터 인가 서비스(124)에 의해 프라이머리 클라이언트 디바이스(205)와 세컨더리 클라이언트 디바이스(210)가 물리적으로 코-로케이팅됨을 확인하는 데 사용될 수 있다.
일부 실시예들에서, 인증 토큰의 제1 인스턴스는 서비스 요청에 첨부될 수 있다. 예를 들어, 콘텐츠 공유 플랫폼에 대한 서비스 요청에 대한 사용자 입력을 수신하는 것에 응답하여, 프라이머리 클라이언트 디바이스(205)는 서비스 요청을 생성하고, 인증 토큰을 생성하고, 인증 토큰의 제1 인스턴스를 서비스 요청에 첨부하고, 첨부된 서비스 요청을 데이터 인가 서비스(124)에 전송할 수 있다.
동작(224)에서, 프라이머리 클라이언트 디바이스(205)는 세컨더리 클라이언트 디바이스(210)에 인증 토큰의 제2 인스턴스를 전송한다. 인증 토큰의 제2 인스턴스는 암호화되지 않은 데이터로서 전송될 수 있거나, 프라이머리 클라이언트 디바이스(205)에 의해 암호화될 수 있다. 인증은 프라이머리 클라이언트 디바이스(205)와 물리적으로 코-로케이팅되어 있는 세컨더리 클라이언트 디바이스(210)에 기초하기 때문에, 일부 실시예들에서, 프라이머리 클라이언트 디바이스(205)는 단거리 통신 기술을 사용하여 세컨더리 클라이언트 디바이스(210)에 인증 토큰의 제2 인스턴스를 전송할 수 있다. 예를 들어, 프라이머리 클라이언트 디바이스(205)는, 예를 들어, P2P, Bluetooth®, Bluetooth® Low Energy, Whisper®, Wi-Fi®, Wi-Fi Direct(Wi-Fi P2P), 적외선, 초음파, 또는 다른 단거리 통신 기술과 같은 단거리 무선 통신 기술을 사용하여 세컨더리 클라이언트 디바이스(210)에 인증 토큰의 제2 인스턴스를 전송할 수 있다. 일부 실시예들에서, 인증 토큰의 제2 인스턴스는 케이블 연결(예를 들어, USB(Universal Serial Bus) 커넥터, 이더넷 커넥터, 라이트닝 커넥터, 또는 임의의 다른 가능한 커넥터)과 같은 유선 통신 기술을 사용하여 프라이머리 클라이언트 디바이스(205)로부터 세컨더리 클라이언트 디바이스(210)로 전송될 수 있다. 일부 실시예들에서, 프라이머리 클라이언트 디바이스(205)는 세컨더리 클라이언트 디바이스(210)에 인증 토큰을 전송하기 위해 하나보다 많은 유형의 단거리 통신 기술을 사용할 수 있다. 예를 들어, 프라이머리 클라이언트 디바이스(205)는 먼저 Bluetooth® 기술을 사용하여 세컨더리 클라이언트 디바이스(210)에 인증 토큰을 전송하려고 시도할 수 있고, 실패한 시도에 응답하여, 프라이머리 클라이언트 디바이스(205)는 적외선 기술을 사용하여 세컨더리 클라이언트 디바이스(210)에 인증 토큰의 제2 인스턴스를 전송하려고 시도할 수 있다. 사용되는 단거리 통신 기술의 유형들, 사용될 각각의 단거리 통신 기술의 우선 순위, 및 각각의 유형의 단거리 통신 기술의 시도 횟수는 클라이언트 디바이스들에 의해(예를 들어, 사용자 계정의 사용자 설정들을 통해) 또는 콘텐츠 공유 플랫폼에 의해 구성될 수 있다.
동작(226)에서, 세컨더리 클라이언트 디바이스(210)는 데이터 인가 서비스(124)에 인증 토큰의 제2 인스턴스를 전송한다. 일부 실시예들에서, 인증 토큰의 제2 인스턴스를 전송하기 전에, 세컨더리 클라이언트 디바이스(210)는 그것이 프라이머리 클라이언트 디바이스(205)와 코-로케이팅됨을 컨펌한다. 일부 실시예들에서, 코-로케이션은 Bluetooth®, Bluetooth® Low Energy를 사용하여(예를 들어, 프라이머리 클라이언트 디바이스(205)가 범위 내에 있는지 여부를 결정하기 위한 디스커버리 기능을 사용하여, 페어링 기능을 사용하여 등), 초음파 오디오 모뎀을 사용하여(예를 들어, 코-로케이션을 확립하기 위한 데이터를 통신하기 위해 클라이언트 디바이스들의 스피커들 및 마이크로폰들을 사용하여), 공유 IP 검출을 사용하여(예를 들어, 프라이머리 클라이언트 디바이스(205) 및 세컨더리 클라이언트 디바이스(210) 둘 모두 동일한 IP 주소를 사용하고 있는지 여부를 결정), 지오-로케이션 데이터(예를 들어, GPS(Global Position System) 데이터, 셀폰 타워 데이터, Wi-Fi 액세스 포인트 데이터 등)를 사용하여, 유선 연결을 사용하여, 기타 등등을 사용하여 컨펌될 수 있다. 인증 토큰의 제2 인스턴스는 암호화되지 않은 데이터로서 전송될 수 있거나, 세컨더리 클라이언트 디바이스(210)에 의해 암호화될 수 있다. 일부 실시예들에서, 세컨더리 클라이언트 디바이스(210)는 인증 토큰의 제2 인스턴스에 개인 및/또는 공개 키, 인증서, 쿠키, 또는 데이터 인가 서비스(124)에 대해 세컨더리 클라이언트 디바이스(205)를 식별할 수 있는 임의의 다른 식별 데이터를 첨부할 수 있다. 일부 실시예들에서, 세컨더리 클라이언트 디바이스(210)는 인증 토큰의 제2 인스턴스에 IP 주소, MAC 주소, GPS 데이터 등과 같은 위치 데이터를 첨부할 수 있다. 위치 데이터는 데이터 인가 서비스(124)에 의해 프라이머리 클라이언트 디바이스(205)와 세컨더리 클라이언트 디바이스(210)가 물리적으로 코-로케이팅됨을 확인하는 데 사용될 수 있다.
동작(228)에서, 데이터 인가 서비스(124)는 (예를 들어, 수신된 메시지(들)를 해독한 후에) 각각의 클라이언트 디바이스로부터 수신된 인증 토큰들의 제1 인스턴스와 제2 인스턴스를 비교하고, 인증 토큰의 인스턴스들이 매치되는지 여부를 결정한다. 예를 들어, 데이터 인가 서비스(124)는 프라이머리 클라이언트 디바이스(205)로부터 수신된 숫자 또는 문자열이 세컨더리 클라이언트 디바이스(210)로부터 수신된 숫자 또는 문자열과 동일한지 여부, 각각의 클라이언트 디바이스로부터 수신된 인증서들이 매치되는지 여부 등을 결정할 수 있다. 일부 실시예들에서, 데이터 인가 서비스(124)는 먼저 인증 토큰들 중 하나 또는 둘 모두를 해독하고, 및/또는 인증 토큰(들)의 암호화 서명을 결정하고, 및/또는 토큰(들)을 인증하는 것과 연관된 임의의 다른 프로세스를 수행할 수 있다. 인증 토큰들의 인스턴스들이 매치되지 않는 실시예들에서, 데이터 인가 서비스(124)는 계류 중인 서비스 요청을 거부할 수 있다.
동작(230)에서, 데이터 인가 서비스(124)는, 임의적으로, 프라이머리 클라이언트 디바이스(205)와 세컨더리 클라이언트 디바이스(210)가 물리적으로 코-로케이팅된다고 결정할 수 있다. 일부 실시예들에서, 데이터 인가 서비스(124)는 프라이머리 클라이언트 디바이스(205) 및 세컨더리 클라이언트 디바이스(210)로부터 수신된 인증 토큰들에 첨부된 위치 데이터를 사용함으로써 물리적 코-로케이션을 결정할 수 있다. 예를 들어, 데이터 인가 서비스(124)는 각각의 개개의 토큰에 첨부된 위치 데이터를 비교하고, 프라이머리 클라이언트 디바이스(205)로부터 수신된 인증 토큰에 첨부된 IP 주소, MAC 주소, 또는 GPS 데이터가 세컨더리 클라이언트 디바이스(210)로부터 수신된 인증 토큰에 첨부된 IP 주소, MAC 주소, 또는 GPS 데이터와 각각 매치되는지 여부를 결정할 수 있다. 위치 데이터가 매치되지 않는 실시예들에서, 데이터 인가 서비스(124)는 계류 중인 서비스 요청을 거부할 수 있다. 다른 실시예들에서, 클라이언트 디바이스들(205, 210)의 물리적 코-로케이션은 세컨더리 클라이언트 디바이스(210)로부터 인증 토큰을 수신함으로써 확립될 수 있기 때문에 동작(230)이 임의적이라는 점에 유의해야 하는데, 왜냐하면, 이러한 다른 실시예들에서는, 세컨더리 클라이언트 디바이스(210)가 그것이 프라이머리 클라이언트 디바이스(205)와 코-로케이팅됨을 컨펌하는 경우에만(이는, 예를 들어, 세컨더리 클라이언트 디바이스(210)가 단거리 통신 기술을 사용하여 프라이머리 클라이언트 디바이스(205)와 통신가능한 경우에 컨펌될 수 있음) 인증 토큰을 전송하도록 구성되기 때문이다.
동작(232)에서, 데이터 인가 서비스(124)는 서비스 요청을 인가한다. 예를 들어, 데이터 인가 서비스(124)는 프라이머리 클라이언트 디바이스(205)로부터 수신된 계류 중인 서비스 요청을 프로세싱한다.
도 3은 본 개시내용의 실시예들에 따라, 프라이머리 클라이언트 디바이스에 의해 개시된 서비스 요청을, 세컨더리 클라이언트 디바이스를 사용하여, 인증하기 위한 다른 동작들의 다이어그램이다. 시스템(300)은 도 1의 시스템 아키텍처(100)와 유사한 컴포넌트들을 포함할 수 있다. 도 1의 컴포넌트들은 도 3을 설명하는 것을 돕는 데 사용될 수 있다는 점에 유의할 수 있다. 제한이 아닌 예시의 목적들을 위해, 시스템(300)에 대한 동작들은 서비스 제공자 플랫폼(130)의 데이터 인가 서비스(124), 프라이머리 클라이언트 디바이스(305), 및 세컨더리 클라이언트 디바이스(310)에 의해 수행되는 것으로서 설명된다. 일부 실시예들에서, 프라이머리 클라이언트 디바이스(305)는 클라이언트 디바이스(110)와 유사하거나 동일할 수 있고, 세컨더리 클라이언트 디바이스(310)는 클라이언트 디바이스(120)와 유사하거나 동일할 수 있다. 이와 같이, 시스템(300)에 대한 동작들은, 달리 설명되지 않는 한, 클라이언트 디바이스들(110, 120)의 임의의 컴포넌트, 이를테면, 예를 들어, 미디어 플레이어(112), 링크 모듈(114), 및/또는 토큰 모듈(116)에 의해 수행될 수 있다. 도 3에 대해 설명되는 동작들은 제한이 아닌 예시를 위해 순차적으로 수행되는 것으로 도시되어 있다. 동작들은 임의의 순서로 수행될 수 있고, 동작들 중 임의의 것은 하나 이상의 다른 동작과 동시에 수행될 수 있다는 점에 유의할 수 있다. 일부 구현들에서는, 동일하거나, 상이하거나, 더 적거나, 또는 더 많은 수의 동작들이 임의의 순서로 수행될 수 있다.
동작(312)에서, 프라이머리 클라이언트 디바이스(305)는 연관된 콘텐츠 공유 플랫폼(예를 들어, 서비스 제공자 플랫폼(130))에 프라이머리 클라이언트 디바이스(305)를 등록하기 위한 등록 요청을 데이터 인가 서비스(124)에 전송할 수 있다. 등록 요청은 데이터 인가 서비스(124)가 프라이머리 클라이언트 디바이스(205)를 등록하기 위해 사용할 수 있는 클라이언트 디바이스 식별 데이터를 포함할 수 있다. 일부 실시예들에서, 등록 요청에 응답하여, 데이터 인가 서비스(124)는 프라이머리 클라이언트 디바이스(305)에 쿠키, 하나 이상의 공개 키 및/또는 하나 이상의 개인 키와 같은 하나 이상의 암호화 키, 인증서 등을 전송할 수 있다.
동작(314)에서, 세컨더리 클라이언트 디바이스(310)는 연관된 콘텐츠 공유 플랫폼(예를 들어, 서비스 제공자 플랫폼(130))에 세컨더리 클라이언트 디바이스(310)를 등록하기 위한 등록 요청을 데이터 인가 서비스(124)에 전송할 수 있다. 세컨더리 클라이언트 디바이스(310)를 등록하는 것은 프라이머리 클라이언트 디바이스(305)를 등록하는 것과 유사할 수 있다. 일부 실시예들에서, 등록 요청에 응답하여, 데이터 인가 서비스(124)는 세컨더리 클라이언트 디바이스(310)에 쿠키, 하나 이상의 공개 키 및/또는 하나 이상의 개인 키와 같은 하나 이상의 암호화 키, 인증서 등을 전송할 수 있다.
동작(316)에서, 프라이머리 클라이언트 디바이스(305)는 세컨더리 클라이언트 디바이스(310)를 인증 디바이스로서 인에이블하기 위한 요청을 데이터 인가 서비스(124)에 전송한다. 일부 실시예들에서, (인증 디바이스에 의한) 인증을 요구하는 서비스 요청의 유형은 사전-정의될 수 있다.
동작(318)에서, 프라이머리 클라이언트 디바이스(305)는 서비스 요청을 데이터 인가 서비스(124)에 전송한다. 예를 들어, 프라이머리 클라이언트 디바이스(305)는 사용자 계정과 연관된 채널에 콘텐츠를 업로드하기 위한 요청을 데이터 인가 서비스(124)에 전송할 수 있다. 일부 실시예들에서, 프라이머리 클라이언트 디바이스(310)는 서비스 요청에 IP 주소, MAC 주소, GPS 데이터 등과 같은 위치 데이터를 첨부할 수 있다. 위치 데이터는 데이터 인가 서비스(124)에 의해 프라이머리 클라이언트 디바이스(305)와 세컨더리 클라이언트 디바이스(310)가 물리적으로 코-로케이팅됨을 확인하는 데 사용될 수 있다.
동작(320)에서, 동작(316)에서의 서비스 요청이 세컨더리 디바이스 인증을 요구한다고 결정하는 것에 응답하여, 데이터 인가 서비스(124)는 인증 토큰을 생성한다. 인증 토큰은 랜덤으로 생성된 숫자(예를 들어, 64비트 숫자, 128비트 숫자 등), 문자열, 암호화 서명, 키-값 쌍, 해시 값, 인증서 등일 수 있다. 일부 실시예들에서, 데이터 인가 서비스(124)는 세컨더리 디바이스 인증을 요구하는 서비스 요청들의 유형들을 나열하는 데이터 구조를 스캐닝하고 서비스 요청 유형이 리스팅에 포함되어 있다고 결정함으로써 서비스 요청이 세컨더리 디바이스 인증을 요구한다고 결정할 수 있다. 일부 실시예들에서, 프라이머리 클라이언트 디바이스(305)는 데이터 인가 서비스(124)로부터 세컨더리 디바이스 인증이 요구된다고 표시하는 경고를 수신할 수 있다.
동작(322)에서, 데이터 인가 서비스(124)는 프라이머리 클라이언트 디바이스(305)에 인증 토큰을 전송한다. 인증 토큰은 암호화되지 않은 데이터로서 전송될 수 있거나, 데이터 인가 서비스(124)에 의해 암호화될 수 있다.
동작(324)에서, 프라이머리 클라이언트 디바이스(305)는 세컨더리 클라이언트 디바이스(310)에 인증 토큰을 전송한다. 인증 토큰은 암호화되지 않은 데이터로서 전송될 수 있거나, 프라이머리 클라이언트 디바이스(305)에 의해 암호화될 수 있다. 인증은 프라이머리 클라이언트 디바이스(305)와 물리적으로 코-로케이팅되어 있는 세컨더리 클라이언트 디바이스(310)에 기초하기 때문에, 일부 실시예들에서, 프라이머리 클라이언트 디바이스(305)는 단거리 통신 기술을 사용하여 세컨더리 클라이언트 디바이스(310)에 인증 토큰을 전송할 수 있다. 예를 들어, 프라이머리 클라이언트 디바이스(305)는 단거리 무선 통신 기술 또는 유선 통신 기술을 사용하여 세컨더리 클라이언트 디바이스(310)에 인증 토큰을 전송할 수 있다. 일부 실시예들에서, 프라이머리 클라이언트 디바이스(305)는 세컨더리 클라이언트 디바이스(310)에 인증 토큰을 전송하기 위해 하나보다 많은 유형의 단거리 통신 기술을 사용할 수 있다.
동작(326)에서, 세컨더리 클라이언트 디바이스(310)는 데이터 인가 서비스(124)에 인증 토큰을 전송한다. 유사하게, 인증 토큰은 암호화되지 않은 데이터로서 전송될 수 있거나, 세컨더리 클라이언트 디바이스(310)에 의해 암호화될 수 있다. 일부 실시예들에서, 세컨더리 클라이언트 디바이스(310)는 인증 토큰에 개인 및/또는 공개 키, 인증서, 쿠키, 또는 데이터 인가 서비스(124)에 대해 세컨더리 클라이언트 디바이스(305)를 식별할 수 있는 임의의 다른 식별 데이터를 첨부할 수 있다. 일부 실시예들에서, 세컨더리 클라이언트 디바이스(310)는 인증 토큰에 IP 주소, MAC 주소, GPS 데이터 등과 같은 위치 데이터를 첨부할 수 있다. 위치 데이터는 데이터 인가 서비스(124)에 의해 프라이머리 클라이언트 디바이스(305)와 세컨더리 클라이언트 디바이스(310)가 물리적으로 코-로케이팅됨을 확인하는 데 사용될 수 있다.
동작(328)에서, 데이터 인가 서비스(124)는 세컨더리 클라이언트 디바이스(310)로부터 수신된 인증 토큰을 동작(322)에서 프라이머리 클라이언트 디바이스(305)에 발행된 인증 토큰과 비교하고, 인증 토큰이 매치되는지 여부를 결정한다. 예를 들어, 데이터 인가 서비스(124)는 세컨더리 클라이언트 디바이스(310)로부터 수신된 숫자 또는 문자열이 데이터 인가 서비스(124)에 의해 생성된 숫자 또는 문자열과 동일한지 여부를 결정할 수 있다. 일부 실시예들에서, 데이터 인가 서비스(124)는 먼저 수신된 인증 토큰을 해독하고, 및/또는 인증 토큰의 암호화 서명을 결정하고, 및/또는 세컨더리 클라이언트 디바이스(310)로부터 수신된 토큰을 인증하는 것과 연관된 임의의 다른 프로세스를 수행할 수 있다. 인증 토큰들이 매치되지 않는 실시예들에서, 데이터 인가 서비스(124)는 계류 중인 서비스 요청을 거부할 수 있다.
동작(330)에서, 데이터 인가 서비스(124)는, 임의적으로, 프라이머리 클라이언트 디바이스(305)와 세컨더리 클라이언트 디바이스(310)가 물리적으로 코-로케이팅된다고 결정할 수 있다. 일부 실시예들에서, 데이터 인가 서비스(124)는 프라이머리 클라이언트 디바이스(305)로부터 수신된 서비스 요청에 첨부된 위치 데이터 및 세컨더리 클라이언트 디바이스(310)로부터 수신된 인증 토큰에 첨부된 위치 데이터를 사용함으로써 물리적 코-로케이션을 결정할 수 있다. 예를 들어, 데이터 인가 서비스(124)는 위치 데이터를 비교하고, 프라이머리 클라이언트 디바이스(305)로부터 수신된 서비스 요청에 첨부된 IP 주소, MAC 주소, 또는 GPS 데이터가 세컨더리 클라이언트 디바이스(310)로부터 수신된 인증 토큰에 첨부된 IP 주소, MAC 주소, 또는 GPS 데이터와 각각 매치되는지 여부를 결정할 수 있다. 위치 데이터가 매치되지 않는 실시예들에서, 데이터 인가 서비스(124)는 계류 중인 서비스 요청을 거부할 수 있다.
동작(332)에서, 데이터 인가 서비스(124)는 서비스 요청을 인가한다. 예를 들어, 데이터 인가 서비스(124)는 프라이머리 클라이언트 디바이스(305)로부터 수신된 계류 중인 서비스 요청을 프로세싱한다.
도 4는 본 개시내용의 일부 양태들에 따라, 프라이머리 클라이언트 디바이스에 의해 개시된 서비스 요청을 인증하기 위한 프로세스를 보여주는 방법(400)의 흐름도를 도시한다. 방법(400)은 하드웨어(회로부(circuitry), 전용 로직 등), 소프트웨어(이를테면, 범용 컴퓨터 시스템 또는 전용 머신에서 실행됨), 또는 이들 둘 모두의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행된다. 일 구현에서, 방법은 서비스 제공자 플랫폼(130)의 서버 또는 도 1의 서비스 제공자 플랫폼(130)의 서버와 연관된 데이터 인가 서비스(124)에 의해 수행되고, 일부 다른 구현들에서, 도 4의 하나 이상의 블록은 다른 머신에 의해 수행될 수 있다. 일 구현에서는, 데이터 인가 서비스(134)의 프로세싱 디바이스가 방법(400)을 수행한다.
동작(412)에서, 프로세싱 디바이스는 사용자 계정에 프라이머리 클라이언트 디바이스를 등록한다. 예를 들어, 프로세싱 디바이스는 서비스 제공자 플랫폼과 연관된 사용자 계정에 프라이머리 클라이언트 디바이스를 등록하기 위해 프라이머리 클라이언트 디바이스(예를 들어, 제1 클라이언트 디바이스(110))로부터 등록 요청을 수신할 수 있다. 일부 실시예들에서, 프로세싱 디바이스는 먼저 프라이머리 클라이언트 디바이스가 사용자 계정에 액세스하도록 인에이블하기 위해, 사용자 이름 및 비밀번호와 같은, 사용자 계정 정보를 수신할 수 있다. 일부 실시예들에서, 등록 요청은 디바이스 일련 번호, 식별 번호, IP 주소, 위치 데이터, 또는 프라이머리 클라이언트 디바이스와 연관된 다른 식별 데이터와 같은 클라이언트 디바이스 식별 데이터를 포함할 수 있다. 일부 실시예들에서, 일단 등록되면, 프로세싱 디바이스는 프라이머리 클라이언트 디바이스에 쿠키를 전송할 수 있다. 그러면, 프라이머리 클라이언트 디바이스는 서비스 제공자 플랫폼에 대한 후속 요청들 동안 등록을 증명하기 위해 쿠키를 사용할 수 있다. 일부 실시예들에서, 일단 등록되면, 프로세싱 디바이스는 하나 이상의 공개 키 및/또는 하나 이상의 개인 키와 같은 하나 이상의 암호화 키, 인증서 등을 프라이머리 클라이언트 디바이스에 전송할 수 있다.
동작(414)에서, 프로세싱 디바이스는 사용자 계정에 세컨더리 클라이언트 디바이스를 등록한다. 예를 들어, 프로세싱 디바이스는 서비스 제공자 플랫폼과 연관된 사용자 계정에 세컨더리 클라이언트 디바이스를 등록하기 위해 세컨더리 클라이언트 디바이스(예를 들어, 제2 클라이언트 디바이스(120))로부터 등록 요청을 수신할 수 있다. 일부 실시예들에서, 프로세싱 디바이스는 먼저 세컨더리 클라이언트 디바이스가 사용자 계정에 액세스하도록 인에이블하기 위해, 사용자 이름 및 비밀번호와 같은, 사용자 계정 정보를 수신할 수 있다. 일부 실시예들에서, 등록 요청은 디바이스 일련 번호, 식별 번호, IP 주소, 위치 데이터, 또는 세컨더리 클라이언트 디바이스와 연관된 다른 식별 데이터와 같은 클라이언트 디바이스 식별 데이터를 포함할 수 있다. 일부 실시예들에서, 일단 등록되면, 프로세싱 디바이스는 세컨더리 클라이언트 디바이스에 쿠키를 전송할 수 있다. 그러면, 세컨더리 클라이언트 디바이스는 서비스 제공자 플랫폼에 대한 후속 요청들 동안 등록을 증명하기 위해 쿠키를 사용할 수 있다. 일부 실시예들에서, 일단 등록되면, 프로세싱 디바이스는 하나 이상의 공개 키 및/또는 하나 이상의 개인 키와 같은 하나 이상의 암호화 키, 인증서 등을 세컨더리 클라이언트 디바이스에 전송할 수 있다.
동작(416)에서, 프로세싱 디바이스는, 프라이머리 클라이언트 디바이스 또는 세컨더리 클라이언트 디바이스로부터, 세컨더리 클라이언트 디바이스가 인증 디바이스로서 기능하도록 인에이블하기 위한 요청을 수신한다. 일부 실시예들에서, (인증 디바이스에 의한) 인증을 요구하는 서비스 요청의 유형은 사전-정의될 수 있다. 예를 들어, 프로세싱 디바이스는 로그인 요청들, 콘텐츠 업로드 요청들, 및 구매 요청들에 대해서만 세컨더리 디바이스 인증을 인에이블하기 위한 사용자 입력을 수신할 수 있다.
동작(418)에서, 프로세싱 디바이스는 프라이머리 클라이언트 디바이스로부터 서비스 요청을 수신한다. 예를 들어, 프로세싱 디바이스는 사용자 계정과 연관된 채널에 콘텐츠를 업로드하기 위한 요청을 수신할 수 있다. 일부 실시예들에서 서비스 요청은 쿠키 또는 프라이머리 클라이언트 디바이스의 아이덴티티를 확인하는 데 사용되는 임의의 다른 유형의 식별 데이터를 포함할 수 있다. 또한, 프로세싱 디바이스는 프라이머리 클라이언트 디바이스로부터 인증 토큰의 제1 인스턴스를 수신한다. 인증 토큰의 제1 인스턴스는 서비스 요청과 연관될 수 있다. 일부 실시예들에서, 인증 토큰의 제1 인스턴스는 서비스 요청에 첨부된다. 인증 토큰의 제1 인스턴스는 랜덤으로 생성된 숫자(예를 들어, 64비트 숫자, 128비트 숫자 등), 문자열, 암호화 서명, 키-값 쌍, 해시 값, 인증서 등일 수 있다. 일부 실시예들에서, 인증 토큰의 제1 인스턴스는 IP 주소, MAC 주소, GPS 데이터 등과 같은 프라이머리 클라이언트 디바이스와 연관된 위치 데이터를 포함할 수 있다. 일부 실시예들에서, 프로세싱 디바이스는, 일단 인증 토큰의 제1 인스턴스가 수신되면, 인증 토큰의 제1 인스턴스를 해독하고, 및/또는 인증 토큰의 암호화 서명을 결정하고, 및/또는 토큰을 인증하는 것과 연관된 임의의 다른 프로세스를 수행할 수 있다.
동작(420)에서, 프로세싱 디바이스는 세컨더리 클라이언트 디바이스로부터 인증 토큰의 제2 인스턴스를 수신한다. 일부 실시예들에서, 인증 토큰의 제2 인스턴스는 IP 주소, MAC 주소, GPS 데이터 등과 같은 세컨더리 클라이언트 디바이스와 연관된 위치 데이터를 포함할 수 있다. 일부 실시예들에서, 인증 토큰의 제2 인스턴스는 개인 및/또는 공개 키, 인증서, 쿠키, 또는 세컨더리 클라이언트 디바이스를 식별할 수 있는 임의의 다른 식별 데이터를 포함한다. 일부 실시예들에서, 세컨더리 클라이언트 디바이스는 먼저 그것이 프라이머리 클라이언트 디바이스와 코-로케이팅됨을 컨펌한 다음에만, (예를 들어, 그것의 개인 키(들)를 사용하여 서명한 후에) 인증 토큰의 제2 인스턴스를 전송할 수 있다. 일부 실시예들에서, 프로세싱 디바이스는 (예를 들어, 대응하는 공개 키를 사용하여) 먼저 인증 토큰의 제2 인스턴스를 해독하고, 및/또는 인증 토큰의 암호화 서명을 결정하고, 및/또는 토큰을 인증하는 것과 연관된 임의의 다른 프로세스를 수행할 수 있다.
동작(422)에서, 프로세싱 디바이스는 인증 토큰의 제1 인스턴스와 인증 토큰의 제2 인스턴스를 비교하여 2개의 인스턴스가 매치되는지 여부를 결정할 수 있다. 예를 들어, 프로세싱 디바이스는 제1 인스턴스와 연관된 숫자 또는 문자열이 제2 인스턴스와 연관된 숫자 또는 문자열과 동일한지 여부를 결정할 수 있다. 인증 토큰들의 인스턴스들이 매치되지 않는 실시예들에서, 프로세싱 디바이스는 계류 중인 서비스 요청을 거부할 수 있다.
동작(424)에서, 임의적으로, 프로세싱 디바이스는 프라이머리 클라이언트 디바이스와 세컨더리 클라이언트 디바이스가 물리적으로 코-로케이팅된다고 결정할 수 있다. 일부 실시예들에서, 프로세싱 디바이스는 인증 토큰들의 제1 인스턴스 및 제2 인스턴스로부터 수신된 위치 데이터를 사용함으로써 물리적 코-로케이션을 결정할 수 있다. 예를 들어, 프로세싱 디바이스는 인증 토큰의 제1 인스턴스와 연관된(또는 서비스 요청과 연관된) IP 주소, MAC 주소, 또는 GPS 데이터가 인증 토큰의 제2 인스턴스와 연관된 IP 주소, MAC 주소, 또는 GPS 데이터에 각각 대응하는지(예를 들어, 매치되거나 다르게는 근접성을 나타내는지) 여부를 결정할 수 있다. 프라이머리 클라이언트 디바이스의 위치 데이터가 세컨더리 클라이언트 디바이스의 위치 데이터에 대응하지 않는 실시예들에서, 프로세싱 디바이스는 계류 중인 서비스 요청을 거부할 수 있다.
동작(426)에서, 프로세싱 디바이스는 서비스 요청을 인가한다. 예를 들어, 프로세싱 디바이스는 프라이머리 클라이언트 디바이스로부터 수신된 계류 중인 서비스 요청을 프로세싱할 수 있다.
도 5는 본 개시내용의 일부 양태들에 따라, 인증 디바이스에 의한 인증을 요구하는 서비스 요청을 개시하기 위한 프로세스를 보여주는 방법(500)의 흐름도를 도시한다. 방법(500)은 하드웨어(회로부, 전용 로직 등), 소프트웨어(이를테면, 범용 컴퓨터 시스템 또는 전용 머신에서 실행됨), 또는 이들 둘 모두의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행된다. 일 구현에서, 방법은 도 1의 제1 클라이언트 디바이스(110)에 의해 수행되고, 일부 다른 구현들에서, 도 5의 하나 이상의 블록은 다른 머신에 의해 수행될 수 있다. 일 구현에서는, 제1 클라이언트 디바이스(110)의 프로세싱 디바이스가 방법(500)을 수행한다.
동작(512)에서, 프로세싱 디바이스는 서버(예를 들어, 콘텐츠 공유 플랫폼 또는 임의의 다른 서비스 제공자 플랫폼의 서버)에 서비스 요청을 전송한다. 예를 들어, 프로세싱 디바이스는 사용자 계정과 연관된 채널에 콘텐츠를 업로드하기 위한 요청을 전송할 수 있다. 일부 실시예들에서, 서비스 요청은 쿠키 또는 프로세싱 디바이스와 연관된 프라이머리 클라이언트 디바이스의 아이덴티티를 확인하는 데 사용되는 임의의 다른 유형의 식별 데이터를 포함할 수 있다. 일부 실시예들에서, 프라이머리 클라이언트 디바이스는 서비스 제공자 플랫폼에 등록될 수 있다.
동작(514)에서, 프로세싱 디바이스는 인증 토큰을 생성한다. 인증 토큰은 랜덤으로 생성된 숫자(예를 들어, 64비트 숫자, 128비트 숫자 등), 문자열, 암호화 서명, 키-값 쌍, 해시 값, 인증서 등일 수 있다.
동작(516)에서, 프로세싱 디바이스는 서버에 인증 토큰의 제1 인스턴스를 전송한다. 인증 토큰의 제1 인스턴스가 서비스 요청에 첨부되는 일부 실시예들에서, 동작들(512 및 516)은 동작(514) 후에 수행되는 단일 동작으로 조합된다. 일부 실시예들에서, 인증 토큰의 제1 인스턴스는 IP 주소, MAC 주소, GPS 데이터 등과 같은 프라이머리 클라이언트 디바이스와 연관된 위치 데이터를 포함할 수 있다. 일부 실시예들에서, 인증 토큰에는 개인 및/또는 공개 키, 인증서, 쿠키, 또는 임의의 다른 식별 데이터가 첨부될 수 있다.
동작(518)에서, 프로세싱 디바이스는 세컨더리 클라이언트 디바이스에 인증 토큰의 제2 인스턴스를 전송한다. 세컨더리 클라이언트 디바이스는 프라이머리 클라이언트 디바이스에 의해 발행된 서비스 요청들을 인증하는 데 사용되는 물리적으로 코-로케이팅된 인증 디바이스일 수 있다. 인증 토큰의 제2 인스턴스는 암호화되지 않은 데이터로서 전송될 수 있거나, 프로세싱 디바이스에 의해 암호화될 수 있다. 인증은 프라이머리 클라이언트 디바이스와 물리적으로 코-로케이팅되는 세컨더리 클라이언트 디바이스에 기초하기 때문에, 일부 실시예들에서, 프로세싱 디바이스는 유선 또는 무선 단거리 통신 기술을 사용하여 세컨더리 클라이언트 디바이스에 인증 토큰을 전송할 수 있다.
동작(520)에서, 프로세싱 디바이스는, 서버로부터, 서버에 의한 서비스 요청의 수락을 나타내는 응답을 수신하며, 응답은 제1 클라이언트 디바이스에 의해 서버에 전송된 인증 토큰의 제1 인스턴스가 제2 클라이언트 디바이스에 의해 서버에 전송된 인증 토큰의 제2 인스턴스와 매치됨을 표시한다. 일부 실시예들에서, 응답은 서비스 요청이 프로세싱되었거나 완료되었다는 표시를 포함한다. 서비스 요청은 서버가 인증 토큰의 제1 인스턴스를 인증 토큰의 제2 인스턴스와 비교하고 2개의 인스턴스가 매치된다고 결정하는 것에 응답하여 프로세싱되거나 완료될 수 있다. 인증 토큰들의 인스턴스들이 매치되지 않는 실시예들에서, 프로세싱 디바이스는 서비스 요청이 거부되었다는 표시를 수신할 수 있다.
도 6은 본 개시내용의 실시예에 따른 예시적인 컴퓨터 시스템(600)을 예시하는 블록도이다. 컴퓨터 시스템(600)은, 머신으로 하여금, 본 명세서에서 논의된 방법론들 중 임의의 하나 이상을 수행하게 하는 하나 이상의 명령어 세트를 실행한다. 명령어 세트, 명령어들 등은, 컴퓨터 시스템(600)을 실행했을 때, 컴퓨터 시스템(600)으로 하여금, 클라이언트 디바이스(110, 120)(도시되지 않음), 및/또는 데이터 인가 서비스의 하나 이상의 동작을 수행하게 하는 명령어들을 의미할 수 있다. 머신은 클라이언트-서버 네트워크 환경에서 서버 또는 클라이언트 디바이스의 용량으로, 또는 피어-투-피어(또는 분산) 네트워크 환경에서 피어 머신으로서 동작할 수 있다. 머신은 개인용 컴퓨터(PC), 태블릿 PC, 셋톱박스(set-top box)(STB), 개인 휴대 정보 단말(personal digital assistant)(PDA), 모바일 전화, 웹 어플라이언스(web appliance), 서버, 네트워크 라우터, 스위치 또는 브리지, 또는 해당 머신에 의해 취해질 액션들을 지정하는 명령어 세트(순차적 또는 다른 방식)를 실행할 수 있는 임의의 머신일 수 있다. 또한, 단일 머신만이 예시되어 있지만, "머신"이라는 용어는 또한 본 명세서에서 논의된 방법론들 중 임의의 하나 이상을 수행하기 위한 명령어 세트를 개별적으로 또는 공동으로 실행하는 머신들의 임의의 컬렉션을 포함하는 것으로 취해져야 할 것이다.
컴퓨터 시스템(600)은 프로세싱 디바이스(602), 메인 메모리(604)(예를 들어, 판독 전용 메모리(read-only memory)(ROM), 플래시 메모리, 동적 랜덤 액세스 메모리(dynamic random access memory)(DRAM), 이를테면, 동기식 DRAM(synchronous DRAM)(SDRAM) 또는 램버스 DRAM(Rambus DRAM)(RDRAM) 등), 정적 메모리(606)(예를 들어, 플래시 메모리, 정적 랜덤 액세스 메모리(static random access memory)(SRAM) 등) 및 데이터 스토리지 디바이스(616)를 포함하며, 이들은 버스(608)를 통해 서로 통신한다.
프로세싱 디바이스(602)는 마이크로프로세서, 중앙 프로세싱 유닛 등과 같은 하나 이상의 범용 프로세싱 디바이스를 나타낸다. 보다 구체적으로, 프로세싱 디바이스(602)는 CISC(complex instruction set computing) 마이크로프로세서, RISC(reduced instruction set computing) 마이크로프로세서, VLIW(very long instruction word) 마이크로프로세서, 또는 다른 명령어 세트들을 구현하는 프로세싱 디바이스 또는 명령어 세트들의 조합을 구현하는 프로세싱 디바이스들일 수 있다. 프로세싱 디바이스(602)는 또한 ASIC(application specific integrated circuit), FPGA(field programmable gate array), DSP(digital signal processor), 네트워크 프로세서 등과 같은 하나 이상의 특수 목적 프로세싱 디바이스일 수 있다. 프로세싱 디바이스(602)는 본 명세서에서 논의된 동작들을 수행하기 위해 시스템 아키텍처(100) 및 인가 모듈(151)의 명령어들을 실행하도록 구성된다.
컴퓨터 시스템(600)은 LAN(local area network), 인트라넷, 엑스트라넷, 또는 인터넷과 같은 네트워크(618)를 통해 다른 머신들과의 통신을 제공하는 네트워크 인터페이스 디바이스(622)를 더 포함할 수 있다. 컴퓨터 시스템(600)은 또한 디스플레이 디바이스(610)(예를 들어, LCD(liquid crystal display) 또는 CRT(cathode ray tube)), 영숫자(alphanumeric) 입력 디바이스(612)(예를 들어, 키보드), 커서 제어 디바이스(614)(예를 들어, 마우스), 및 신호 생성 디바이스(620)(예를 들어, 스피커)를 포함할 수 있다.
데이터 스토리지 디바이스(616)는 본 명세서에서 설명된 방법론들 또는 기능들 중 임의의 하나 이상을 구현하는 시스템 아키텍처(100) 또는 인가 모듈(138)의 명령어 세트가 저장되는 비일시적 컴퓨터 판독가능 저장 매체(624)를 포함할 수 있다. 시스템 아키텍처(100), 클라이언트 디바이스(110, 120)(도시되지 않음), 및/또는 데이터 인가 서비스의 명령어 세트들은 또한 컴퓨터 시스템(600)에 의한 그 실행 동안 메인 메모리(604) 및/또는 프로세싱 디바이스(602) 내에 완전히 또는 적어도 부분적으로 상주할 수 있으며, 메인 메모리(604) 및 프로세싱 디바이스(602)는 또한 컴퓨터 판독가능 저장 매체들을 구성한다. 명령어 세트들은 또한 네트워크 인터페이스 디바이스(622)를 통해 네트워크(618)를 통해 추가로 송신되거나 수신될 수 있다.
컴퓨터 판독가능 저장 매체(624)의 예가 단일 매체로서 도시되어 있지만, "컴퓨터 판독가능 저장 매체"라는 용어는 명령어 세트들을 저장하는 단일 매체 또는 다수의 매체들(예를 들어, 중앙 집중식 또는 분산형 데이터베이스, 및/또는 연관된 캐시들 및 서버들)을 포함할 수 있다. "컴퓨터 판독가능 저장 매체"라는 용어는, 머신에 의한 실행을 위한 명령어 세트를 저장, 인코딩 또는 운반할 수 있고 머신으로 하여금 본 개시내용의 방법론들 중 임의의 하나 이상을 수행하게 하는 임의의 매체를 포함할 수 있다. "컴퓨터 판독가능 저장 매체"라는 용어는 솔리드-스테이트 메모리들, 광학 매체들, 및 자기 매체들을 포함할 수 있지만, 이에 제한되지 않는다.
전술한 설명에서, 수많은 세부사항들이 설명되었다. 그러나, 본 개시내용이 이러한 특정 세부사항들 없이 실시될 수 있다는 것은 본 개시내용의 이점을 갖는 본 기술분야의 통상의 기술자에게 명백할 것이다. 일부 인스턴스들에서는, 본 개시내용을 모호하게 하는 것을 피하기 위해, 널리 공지된 구조들 및 디바이스들은 상세하게보다는 블록도 형태로 도시되었다.
상세한 설명의 일부 부분들은 컴퓨터 메모리 내의 데이터 비트들에 대한 오퍼레이션들의 알고리즘들 및 기호 표현들의 관점에서 제시되었다. 이러한 알고리즘 설명들 및 표현들은 데이터 프로세싱 기술 분야의 통상의 기술자에 의해 그들의 작업 내용을 본 기술분야의 다른 통상의 기술자에게 가장 효과적으로 전달하는 데 사용되는 수단들이다. 여기에는 알고리즘이 있으며, 이는 일반적으로, 원하는 결과로 이어지는 자체-일관된(self-consistent) 오퍼레이션들의 시퀀스로 생각된다. 오퍼레이션들은 물리적 양들의 물리적 조작들을 요구하는 것들이다. 대개, 반드시 그런 것은 아니지만, 이러한 양들은 저장, 전송, 조합, 비교, 및 다른 방식으로 조작될 수 있는 전기 또는 자기 신호들의 형태를 취한다. 주로 일반적인 사용 이유들로 인해, 이러한 신호들을 비트들, 값들, 요소들, 기호들, 문자들, 용어들, 숫자들 등으로서 지칭하는 것이 때때로 편리한 것으로 입증되었다.
그러나, 이들 및 유사한 용어들 모두는 적절한 물리적 양들과 연관되어야 하며 단지 이러한 양들에 적용되는 편리한 레이블들일 뿐이라는 점을 염두에 둘 수 있다. 달리 구체적으로 언급하지 않는 한, 설명 전반에 걸쳐, "생성하는(generating)", "제공하는(providing)", "조정하는(adjusting)", "수신하는(receiving)", "취소하는(canceling)" 등과 같은 용어들을 활용하는 논의들은 컴퓨터 시스템 메모리들 또는 레지스터들 내에서 물리적(예를 들어, 전자적) 양들로서 표현된 데이터를 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 이러한 정보 저장, 송신 또는 디스플레이 디바이스들 내에서 물리적 양들로서 유사하게 표현된 다른 데이터로 조작하고 변환하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 액션들 및 프로세스들을 의미한다는 점이 이해되어야 한다.
본 개시내용은 또한 본 명세서의 동작들을 수행하기 위한 장치에 관한 것이다. 이 장치는 요구되는 목적들에 대해 특별히 구성될 수도 있고, 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨터를 포함할 수도 있다. 이러한 컴퓨터 프로그램은 플로피 디스크, 광 디스크, CD-ROM(compact disc read-only memory), 자기-광 디스크(magnetic-optical disk), ROM(read-only memory), RAM(random access memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable programmable read-only memory), 자기 또는 광학 카드, 또는 전자 명령어들을 저장하기에 적절한 임의의 유형의 매체들을 포함하는 임의의 유형의 디스크와 같되, 이에 제한되지 않는 컴퓨터 판독가능 저장 매체에 저장될 수 있다.
본 명세서에서 "예(example)" 또는 "예시적인(exemplary)"이라는 단어들은 예, 인스턴스, 또는 예시(illustration)로서의 역할을 의미하는 것으로 사용된다. 본 명세서에서 "예" 또는 "예시적인"으로서 설명된 임의의 양태 또는 설계는 반드시 다른 양태들 또는 설계들에 비해 바람직하거나 유리한 것으로서 해석되어서는 안된다. 오히려, "예" 또는 "예시적인"이라는 단어들의 사용은 구체적인 방식으로 개념들을 제시하도록 의도된다. 본 출원에서 사용되는 바와 같이, "또는(or)"이라는 용어는 배타적(exclusive) "논리합(or)"이 아닌 포함적(inclusive) "또는(or)"을 의미하도록 의도된다. 즉, 달리 명시되지 않거나 문맥에서 명확하지 않는 한, "X가 A 또는 B를 포함한다(X includes A or B)"는 자연 포함적인 순열(permutation)들 중 임의의 것을 의미하도록 의도된다. 즉, X가 A를 포함하거나; X가 B를 포함하거나; 또는 X가 A 및 B 둘 모두를 포함하는 경우, "X가 A 또는 B를 포함한다"는 전술한 인스턴스들 중 임의의 것 하에서 충족된다. 또한, 본 출원 및 첨부된 청구범위에서 사용된 관사들("a" 및 "an")은 달리 명시되지 않거나 문맥에서 단수형으로 지시되는 것이 명확하지 않는 한 일반적으로 "하나 이상"을 의미하는 것으로 해석될 수 있다. 또한, 전반에 걸쳐 "실시예" 또는 "일 실시예" 또는 "구현" 또는 "일 구현"이라는 용어의 사용은 동일한 실시예 또는 구현으로서 설명되지 않는 한 이를 의미하도록 의도되지 않는다. 본 명세서에서 사용된 바와 같은 "제1", "제2", "제3", "제4" 등의 용어들은 상이한 요소들을 구별하기 위한 레이블들로서 의미되며, 그들의 숫자 지정에 따라 반드시 서수적인 의미를 가질 필요는 없을 수 있다.
설명의 단순성을 위해, 본 명세서의 방법들은 일련의 행위들 또는 동작들로서 도시되고 설명된다. 그러나, 본 개시내용에 따른 행위들은 다양한 순서들로 및/또는 동시에, 그리고 본 명세서에서 제시 및 설명되지 않은 다른 행위들과 함께 발생할 수 있다. 또한, 개시된 주제에 따른 방법들을 구현하기 위해 모든 예시된 행위들이 요구되는 것은 아닐 수도 있다. 또한, 본 기술분야의 통상의 기술자는 방법들이 상태 다이어그램 또는 이벤트들을 통해 일련의 상호 관련된 상태들로서 대안적으로 표현될 수 있음을 이해하고 인식할 것이다. 추가적으로, 본 명세서에서 개시된 방법들은 이러한 방법들을 컴퓨팅 디바이스들에 운반하고 전송하는 것을 용이하게 하기 위해 제조물(article of manufacture)에 저장될 수 있다는 것이 이해되어야 한다. 본 명세서에서 사용된 바와 같은 제조물이라는 용어는 임의의 컴퓨터 판독가능 디바이스 또는 저장 매체들로부터 액세스가능한 컴퓨터 프로그램을 포함하도록 의도된다.
추가적인 실시예들에서는, 위에서 설명된 실시예들의 동작들을 수행하기 위한 하나 이상의 프로세싱 디바이스가 개시된다. 추가적으로, 본 개시내용의 실시예들에서는, 비일시적 컴퓨터 판독가능 저장 매체가 설명된 실시예들의 동작들을 수행하기 위한 명령어들을 저장한다. 또한, 다른 실시예들에서는, 설명된 실시예들의 동작들을 수행하기 위한 시스템들도 개시된다.
상기 설명은 제한이 아닌 예시적인 것으로 의도됨이 이해되어야 한다. 위의 설명을 읽고 이해하면 본 기술분야의 통상의 기술자에게 다른 실시예들이 명백해질 것이다. 따라서, 본 개시내용의 범위는 첨부된 청구범위를, 그러한 청구범위에 부여되는 균등물들의 전체 범위와 함께 참조하여 결정될 수 있다.

Claims (21)

  1. 방법으로서,
    서버에 의해, 제1 클라이언트 디바이스로부터의 서비스 요청, 및 상기 서비스 요청과 연관되고 상기 제1 클라이언트 디바이스에 의해 생성된 인증 토큰의 제1 인스턴스를 수신하는 단계;
    제2 클라이언트 디바이스로부터, 상기 서비스 요청과 연관되고 상기 제1 클라이언트 디바이스에 의해 생성된 인증 토큰의 제2 인스턴스를 수신하는 단계; 및
    상기 인증 토큰의 제1 인스턴스가 상기 인증 토큰의 제2 인스턴스와 매치된다고 결정하는 것에 응답하여, 상기 서비스 요청을 프로세싱하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제1 클라이언트 디바이스와 연관된 제1 위치 데이터를 수신하는 단계;
    상기 제2 클라이언트 디바이스와 연관된 제2 위치 데이터를 수신하는 단계;
    상기 제1 위치 데이터가 상기 제2 위치 데이터에 대응한다고 결정하는 것에 응답하여, 상기 서비스 요청을 프로세싱하는 단계
    를 더 포함하는, 방법.
  3. 제2항에 있어서, 상기 제1 위치 데이터는 IP(Internet Protocol) 주소, MAC(media access control) 주소, GPS(Global Position System) 데이터, 셀폰 타워 데이터(cell phone tower data), 또는 Wi-Fi 액세스 포인트 데이터 중 적어도 하나를 포함하는, 방법.
  4. 제1항에 있어서, 상기 서비스 요청은 로그인 요청, 콘텐츠 업로드 요청, 콘텐츠 검색 요청, 콘텐츠 소비 요청, 콘텐츠 승인 요청, 콘텐츠 비승인 요청, 콘텐츠에 대한 코멘트 요청, 설정 변경 요청, 개인 상세 변경 요청, 또는 구매 요청 중 적어도 하나를 포함하는, 방법.
  5. 제1항에 있어서, 상기 인증 토큰은 랜덤으로 생성된 숫자, 랜덤으로 생성된 문자열(string), 암호화 서명, 키-값 쌍, 해시 값, 또는 인증서 중 적어도 하나를 포함하는, 방법.
  6. 제1항에 있어서, 상기 제2 클라이언트 디바이스는 상기 제1 클라이언트 디바이스에 대한 인증 디바이스로서 등록되는, 방법.
  7. 제1항에 있어서, 상기 서비스 요청은 상기 제2 클라이언트 디바이스에 의한 인증을 요구하는 소정 유형의 서비스 요청으로서 식별되는, 방법.
  8. 제1항에 있어서,
    상기 인증 토큰의 제1 인스턴스가 상기 인증 토큰의 제2 인스턴스와 매치되지 않는다고 결정하는 것에 응답하여, 상기 서비스 요청을 거부하는 단계
    를 더 포함하는, 방법.
  9. 제2항에 있어서,
    상기 제1 위치 데이터가 상기 제2 위치 데이터에 대응하지 않는다고 결정하는 것에 응답하여, 상기 서비스 요청을 거부하는 단계
    를 더 포함하는, 방법.
  10. 방법으로서,
    제1 클라이언트 디바이스에 의해, 인증 토큰의 제1 인스턴스 및 상기 인증 토큰의 제2 인스턴스를 생성하는 단계;
    상기 제1 클라이언트 디바이스에 의해, 서버에 서비스 요청 및 상기 인증 토큰의 제1 인스턴스를 전송하는 단계;
    제2 클라이언트 디바이스에 상기 인증 토큰의 제2 인스턴스를 전송하는 단계; 및
    상기 서버로부터, 상기 서버에 의한 상기 서비스 요청의 수락을 나타내는 응답을 수신하는 단계 - 상기 응답은 상기 제1 클라이언트 디바이스에 의해 상기 서버에 전송된 상기 인증 토큰의 제1 인스턴스가 상기 제2 클라이언트 디바이스에 의해 상기 서버에 전송된 상기 인증 토큰의 제2 인스턴스와 매치됨을 표시함 -
    를 포함하는, 방법.
  11. 제10항에 있어서, 상기 인증 토큰의 제2 인스턴스는 단거리 통신 기술(short range communication technology)을 사용하여 상기 제2 클라이언트 디바이스에 전송되는, 방법.
  12. 제10항에 있어서, 상기 서버에 상기 제1 클라이언트 디바이스와 연관된 제1 위치 데이터를 전송하는 단계를 더 포함하며, 상기 서버에 의한 상기 서비스 요청의 수락을 나타내는 응답은 상기 제1 클라이언트 디바이스에 의해 상기 서버에 전송된 상기 제1 위치 데이터가 상기 제2 클라이언트 디바이스에 의해 상기 서버에 전송된 제2 위치 데이터에 대응함을 추가로 표시하는, 방법.
  13. 제12항에 있어서, 상기 제1 위치 데이터는 IP(Internet Protocol) 주소, MAC(media access control) 주소, GPS(Global Position System) 데이터, 셀폰 타워 데이터, 또는 Wi-Fi 액세스 포인트 데이터 중 적어도 하나를 포함하는, 방법.
  14. 제10항에 있어서, 상기 서비스 요청은 로그인 요청, 콘텐츠 업로드 요청, 콘텐츠 검색 요청, 콘텐츠 소비 요청, 콘텐츠 승인 요청, 콘텐츠 비승인 요청, 콘텐츠에 대한 코멘트 요청, 설정 변경 요청, 개인 상세 변경 요청, 또는 구매 요청 중 적어도 하나를 포함하는, 방법.
  15. 제10항에 있어서, 상기 인증 토큰은 랜덤으로 생성된 숫자, 랜덤으로 생성된 문자열, 암호화 서명, 키-값 쌍, 해시 값, 또는 인증서 중 적어도 하나를 포함하는, 방법.
  16. 제10항에 있어서, 상기 제2 클라이언트 디바이스는 상기 제1 클라이언트 디바이스에 대한 인증 디바이스로서 등록되는, 방법.
  17. 제10항에 있어서, 상기 서비스 요청은 상기 제2 클라이언트 디바이스에 의한 인증을 요구하는 소정 유형의 서비스 요청으로서 식별되는, 방법.
  18. 제12항에 있어서, 상기 제2 위치 데이터는, 상기 제2 클라이언트 디바이스가 상기 제1 클라이언트 디바이스와 코-로케이팅(co-locate)된다고 상기 제2 클라이언트 디바이스가 결정한 후에 상기 제2 클라이언트 디바이스에 의해 상기 서버에 전송되는, 방법.
  19. 시스템으로서,
    메모리; 및
    상기 메모리에 커플링되는 프로세싱 디바이스
    를 포함하고, 상기 프로세싱 디바이스는:
    제1 클라이언트 디바이스로부터 서비스 요청을 수신하고;
    상기 제1 클라이언트 디바이스로부터, 상기 서비스 요청과 연관된 인증 토큰의 제1 인스턴스를 수신하고;
    제2 클라이언트 디바이스로부터, 상기 서비스 요청과 연관된 상기 인증 토큰의 제2 인스턴스를 수신하고 - 상기 인증 토큰의 제2 인스턴스는 상기 제1 클라이언트 디바이스에 의해 생성됨 -;
    상기 인증 토큰의 제1 인스턴스가 상기 인증 토큰의 제2 인스턴스와 매치된다고 결정하는 것에 응답하여, 상기 서비스 요청을 프로세싱하도록
    구성되는, 시스템.
  20. 제19항에 있어서, 상기 프로세싱 디바이스는:
    상기 제1 클라이언트 디바이스와 연관된 제1 위치 데이터를 수신하고;
    상기 제2 클라이언트 디바이스와 연관된 제2 위치 데이터를 수신하고;
    상기 제1 위치 데이터가 상기 제2 위치 데이터에 대응한다고 결정하는 것에 응답하여, 상기 서비스 요청을 프로세싱하도록
    추가로 구성되는, 시스템.
  21. 제19항에 있어서, 상기 프로세싱 디바이스는:
    상기 인증 토큰의 제1 인스턴스가 상기 인증 토큰의 제2 인스턴스와 매치되지 않는다고 결정하는 것에 응답하여, 상기 서비스 요청을 거부하도록
    추가로 구성되는, 시스템.
KR1020237033586A 2021-10-28 2022-10-27 쿠키 도난으로부터 보호하기 위해 코-로케이팅된 세컨더리 디바이스들의 사용 KR20230151024A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/513,564 US20230137767A1 (en) 2021-10-28 2021-10-28 Using co-located secondary devices to protect against cookie theft
US17/513,564 2021-10-28
PCT/US2022/048082 WO2023076512A1 (en) 2021-10-28 2022-10-27 Using co-located secondary devices to protect against cookie theft

Publications (1)

Publication Number Publication Date
KR20230151024A true KR20230151024A (ko) 2023-10-31

Family

ID=84367311

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237033586A KR20230151024A (ko) 2021-10-28 2022-10-27 쿠키 도난으로부터 보호하기 위해 코-로케이팅된 세컨더리 디바이스들의 사용

Country Status (7)

Country Link
US (1) US20230137767A1 (ko)
EP (1) EP4292247A1 (ko)
JP (1) JP2024519654A (ko)
KR (1) KR20230151024A (ko)
CN (1) CN117121437A (ko)
TW (1) TW202318231A (ko)
WO (1) WO2023076512A1 (ko)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9185108B2 (en) * 2005-05-06 2015-11-10 Symantec Corporation Token sharing system and method
US8875236B2 (en) * 2007-06-11 2014-10-28 Nokia Corporation Security in communication networks
US9154953B2 (en) * 2010-12-10 2015-10-06 At&T Intellectual Property I, L.P. Network access via telephony services
MY183320A (en) * 2011-09-19 2021-02-18 E Lock Corp Sdn Bhd Method of controlling access to an internet-based application
US8752156B1 (en) * 2012-03-30 2014-06-10 Emc Corporation Detecting soft token copies
US9413758B2 (en) * 2012-05-24 2016-08-09 Fmr Llc Communication session transfer between devices
US8788471B2 (en) * 2012-05-30 2014-07-22 International Business Machines Corporation Matching transactions in multi-level records
US20130332358A1 (en) * 2012-06-12 2013-12-12 Ebay, Inc. Fraud detection system
US20140173695A1 (en) * 2012-12-18 2014-06-19 Google Inc. Token based account access
US20140282923A1 (en) * 2013-03-14 2014-09-18 Motorola Mobility Llc Device security utilizing continually changing qr codes
US9836727B1 (en) * 2013-08-30 2017-12-05 Capital One Financial Corporation Systems and methods for point of sale deposits
US10548007B2 (en) * 2013-11-15 2020-01-28 Here Global B.V. Security operations for wireless devices
WO2017031504A1 (en) * 2015-08-20 2017-02-23 Cloudwear, Inc. Method and apparatus for geographic location based electronic security management
US11494727B2 (en) * 2016-08-11 2022-11-08 TruckPay Inc. Job verification method and system based on code scanning

Also Published As

Publication number Publication date
US20230137767A1 (en) 2023-05-04
CN117121437A (zh) 2023-11-24
JP2024519654A (ja) 2024-05-21
WO2023076512A1 (en) 2023-05-04
EP4292247A1 (en) 2023-12-20
TW202318231A (zh) 2023-05-01

Similar Documents

Publication Publication Date Title
AU2017272276B2 (en) Transferring authorization from an authenticated device to an unauthenticated device
US20220286300A1 (en) Systems and methods to evaluate client device trust in a distributed computing system
JP7540019B2 (ja) 複数の暗号学的デジタル署名を使用したコンテンツアクセスおよびコンテンツ配信の認可の分離
US20230217054A1 (en) Systems and methods to deliver content during client authentication process in a distributed computing system
US20230137767A1 (en) Using co-located secondary devices to protect against cookie theft