KR102429406B1 - 콘텐츠 플랫폼에서 사용자 상호작용 확인 - Google Patents

콘텐츠 플랫폼에서 사용자 상호작용 확인 Download PDF

Info

Publication number
KR102429406B1
KR102429406B1 KR1020207032598A KR20207032598A KR102429406B1 KR 102429406 B1 KR102429406 B1 KR 102429406B1 KR 1020207032598 A KR1020207032598 A KR 1020207032598A KR 20207032598 A KR20207032598 A KR 20207032598A KR 102429406 B1 KR102429406 B1 KR 102429406B1
Authority
KR
South Korea
Prior art keywords
mac
data
interaction
application
operating system
Prior art date
Application number
KR1020207032598A
Other languages
English (en)
Other versions
KR20210102057A (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 KR20210102057A publication Critical patent/KR20210102057A/ko
Application granted granted Critical
Publication of KR102429406B1 publication Critical patent/KR102429406B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2133Verifying human interaction, e.g., Captcha

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Storage Device Security (AREA)

Abstract

콘텐츠 플랫폼에 디스플레이된 특정 콘텐츠와의 상호작용이 실제 인간 사용자에 의한 상호작용인지를 확인하기 위한, 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램을 포함하는 방법, 시스템 및 장치가 개시된다. 클릭 확인 토큰을 생성하도록 하는 요청은 클라이언트 장치에서 실행되는 제1 애플리케이션에서 수신될 수 있다. 요청은 제1 상호작용을 위한 제1 파라미터 세트 및 제1 메시지 인증 코드(MAC) 세트에 대한 데이터를 포함할 수 있다. 제1 MAC 세트가 요청에 포함된 일부 데이터를 사용하여 생성된 제2 MAC 세트와 매칭하면 클릭 확인 토큰이 생성될 수 있다. 클릭 확인 토큰은 제1 애플리케이션에 제공될 수 있으며, 이 토큰은 콘텐츠 확인 시스템에 제공할 수 있다. 콘텐츠 확인은 이 토큰을 사용하여 제1 상호작용이 실제 인간 사용자 상호작용인지 여부를 확인할 수 있다.

Description

콘텐츠 플랫폼에서 사용자 상호작용 확인
본 명세서는 콘텐츠 플랫폼에서 사용자 상호작용을 확인(검증)하는 것에 관한 것이다.
본 명세서는 일반적으로 콘텐츠 프레젠테이션에서 발생할 수 있는 오류를 검출하고, 콘텐츠 플랫폼에 디스플레이된 특정 콘텐츠 아이템과의 상호작용이 실제 인간 사용자의 상호작용인지 여부를 확인하는 것에 관한 것이다.
클라이언트 장치는 애플리케이션(예: 웹 브라우저, 네이티브 애플리케이션)을 사용하여 콘텐츠 플랫폼(예: 검색 플랫폼, 소셜 미디어 플랫폼 또는 콘텐츠를 호스팅하는 다른 플랫폼)에 액세스할 수 있다. 콘텐츠 플랫폼은 클라이언트 장치에서 시작된 애플리케이션 내에서 하나 이상의 콘텐츠 제공자에 의해 제공될 수 있는 콘텐츠를 디스플레이할 수 있다. 일부 사례에서 애플리케이션은 콘텐츠 플랫폼에서 제공되고 애플리케이션 내에 표시되는 콘텐츠와의 상호작용을 잘못 기록할 수 있다. 이는 콘텐츠 플랫폼이 표시되는 애플리케이션(애플리케이션의 소프트웨어 개발 키트(SDK) 포함)의 오류 및/또는 콘텐츠 플랫폼의 오류와 같은 여러 가지 이유때문일 수 있다.
일반적으로, 본 명세서에 기술된 요지의 하나의 혁신적인 양태는, 클라이언트 장치에서 실행하는 제1 애플리케이션으로부터, 제1 애플리케이션에 디스플레이하기 위해 제공된 특정 콘텐츠 아이템과의 제1 상호작용이 클라이언트 장치의 사용자의 상호작용인지 여부를 확인하는 데 사용되는 클릭 확인 토큰을 생성하도록 하는 요청을 수신하는 동작 -상기 요청은 운영 체제로부터 획득된 것으로서 제1 애플리케이션에 의해 식별되는 초기 증명(attestation) 데이터를 포함하며, 초기 증명 데이터는, 제1 상호작용을 설명하는 것으로 제1 애플리케이션에 의해 식별되는 제1 파라미터 세트에 대한 데이터; 그리고 제1 파라미터 세트에 대한 데이터를 사용하여 생성되는 것으로 제1 애플리케이션에 의해 식별되는 제1 메시지 인증 코드(MAC) 세트를 포함함-; 운영 체제로부터, 제1 MAC 세트가 제2 MAC 세트와 동일한지 여부를 지정하는 표시를 획득하는 동작 -제2 MAC 세트는 상기 요청에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 운영 체제에 의해 생성됨-; 제1 MAC 세트가 제2 MAC 세트와 동일하다고 지정하는 표시를 획득하는 것에 응답하여, 제1 상호작용이 클라이언트 장치의 사용자에 의한 상호작용인지를 확인하는 데 사용되는 클릭 확인 토큰을 생성하는 동작 -상기 클릭 확인 토큰의 페이로드는 (1) 제1 상호작용을 설명하는 제1 파라미터 세트에 대한 데이터 및 (2) 특정 콘텐츠 아이템 데이터를 식별하는 데이터를 포함함-; 상기 생성된 클릭 확인 토큰을 제1 애플리케이션에 제공하는 동작을 포함하는 방법으로 구현될 수 있다. 이 양태의 다른 실시 예는 방법의 동작을 수행하도록 구성된 해당 시스템, 디바이스, 장치 및 컴퓨터 프로그램을 포함한다. 컴퓨터 프로그램(예: 명령어)은 컴퓨터 저장 장치에 인코딩될 수 있다. 이들 및 다른 실시 예는 각각 선택적으로 다음 특징 중 하나 이상을 포함할 수 있다.
일부 구현에서, 방법은, 운영 체제에 의해 그리고 클라이언트 장치상의 제1 애플리케이션의 실행 중에, 클라이언트 장치의 디스플레이와의 사용자에 의한 제1 상호작용을 검출하는 단계; 운영 체제에 의해 그리고 사용자에 의한 제1 상호작용에 대해, 제1 상호작용을 설명하는 제1 파라미터 세트에 대한 데이터를 획득하는 단계; 운영 체제에 의해, 제1 파라미터 세트에 대한 데이터를 사용하여 제1 MAC 세트를 생성하는 단계; 운영 체제에 의해, (1) 운영 체제에 의해 획득된 제1 파라미터 세트에 대한 데이터 및 (2) 운영 체제에 의해 생성된 제1 MAC 세트를 포함하는 데이터를 제1 애플리케이션에 제공하는 단계를 포함하며, 상기 초기 증명 데이터에 포함된 데이터는 운영 체제에 의해 제1 애플리케이션에 제공되는 데이터를 나타낸다.
일부 구현에서는, 제1 파라미터 세트에 대한 데이터를 사용하여 제1 MAC 세트를 생성하는 단계는, 제1 파라미터 세트에 대한 데이터를 사용하여, 클라이언트 장치의 디스플레이와의 물리적 사용자 접촉에 대응하는 제1 사용자 액션에 대한 제1 MAC 그리고 디스플레이로부터의 물리적 사용자 접촉의 해제에 대응하는 제2 사용자 액션에 대한 제2 MAC을 생성하는 단계 -요청에 포함된 제1 MAC 세트는 제1 MAC 및 제2 MAC을 포함하고; 제1 파라미터 세트에 대한 데이터를 사용하여 운영 체제에 의해 생성된 제2 MAC 세트는 (1) 제1 사용자 액션에 대응하는 것으로 식별되는 요청에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 생성된 제3 MAC, 그리고 (2) 제2 사용자 액션에 대응하는 것으로 식별되는 요청에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 생성된 제4 MAC을 포함함-; 그리고 운영 체제로부터, 운영 체제가 제1 MAC 세트가 제2 MAC 세트와 동일하다고 결정하는 경우에만 제1 MAC 세트가 제2 MAC과 동일하다는 것을 지정하는 표시를 획득하는 단계를 포함하며, 제1 MAC 세트가 제2 MAC과 동일하다는 것을 지정하는 표시를 획득하는 단계는 (1) 제1 MAC이 제3 MAC과 동일하고, (2) 제2 MAC이 제4 MAC과 동일하다고 결정하는 단계를 포함한다.
일부 구현에서, 상기 제1 파라미터 세트는, 사용자 액션; 사용자 액션에 대응하는 디스플레이의 위치; 사용자 액션을 수행하는 데 사용되는 도구(tool); 사용자 액션이 수행된 시간을 식별하는 타임스탬프; 그리고 사용자 액션이 수신된 소스, 중에서 하나 이상을 포함한다.
일부 구현에서, 상기 제1 MAC 세트 및 상기 제2 MAC 세트 각각은 상기 운영 체제에 의해 저장된 해시 메시지 인증 코드 알고리즘 및 비밀 암호 키를 사용하여 생성된다.
일부 구현에서, 클릭 확인 토큰을 생성하는 단계는 제1 애플리케이션 및 운영 체제와 분리된 제2 애플리케이션에 의해 클릭 확인 토큰을 생성하는 단계를 포함한다.
일부 구현에서, 제1 애플리케이션은 사용자 애플리케이션 또는 네이티브 애플리케이션이 될 수 있으며, 제2 애플리케이션은 클라이언트 장치의 보안 환경에서 작동하는 신뢰된(trusted) 애플리케이션이 될 수 있다.
일부 구현에서는, 방법은, 제1 애플리케이션에 의해, 콘텐츠 확인 시스템에 상기 생성된 클릭 확인 토큰을 전송하는 단계; 콘텐츠 확인 시스템으로부터, 제1 상호작용이 사용자 상호작용임을 나타내는 메시지를 수신하는 단계를 포함하며, 콘텐츠 확인 시스템으로부터 수신된 메시지는, 콘텐츠 확인 시스템이 클릭 확인 토큰에 기초하여 제1 상호작용이 사용자 상호작용임을 확인하는 경우에만 생성된다.
본 명세서에 설명된 요지의 특정 실시 예는 다음 이점 중 하나 이상을 실현하기 위해 구현될 수 있다. 본 명세서에 설명된 기술은 콘텐츠 플랫폼에 의해 제공되는 콘텐츠 페이지 및/또는 콘텐츠 플랫폼의 오류를 제공하는 클라이언트 장치에서 실행되는 애플리케이션(애플리케이션의 SDK를 포함할 수 있음)의 오류(예: 소프트웨어 오류, 버그 등)를 식별할 수 있다. 예를 들면, 이러한 오류는 소프트웨어 오류일 수 있지만 악의적인 엔티티에 의해 주입된 오류일 수도 있느며, 이는 애플리케이션, SDK, 콘텐츠 제공자와 콘텐츠 플랫폼 간의 통신 채널 또는 애플리케이션과 함께 표시되는 콘텐츠 플랫폼이 손상되었을 수 있다. 이러한 오류 또는 악의적 인 액션을 식별하기 위해, 본 명세서에 설명된 기술은 제1 애플리케이션에서 디스플레이를 위해 제공된 특정 콘텐츠 아이템(예: 제3자 콘텐츠 제공자에서 제공하는 제3자 콘텐츠 아이템 또는 콘텐츠 플랫폼에서 제공하는 유기적 콘텐츠 아이템)과의 상호작용이 클라이언트 장치의 실제 인간 사용자에 의한 상호 작용인지 여부를 확인할 수 있다.
본 명세서에 설명된 기술은 또한 클라이언트 장치에서 실행되는 애플리케이션에서 표시하기 위해 제공된 특정 콘텐츠 아이템(예를 들어, 제3자 콘텐츠 제공자에 의해 제공되는 제3자 콘텐츠 아이템 또는 콘텐츠 플랫폼에 의해 제공되는 유기적 콘텐츠 아이템)과의 상호작용이 클라이언트 장치의 실제 인간 사용자에 의한 상호작용인지 여부에 대한 독립적인 확인(검증)을 제공한다. 즉, 본 명세서에 설명된 콘텐츠 상호작용 확인(검증) 기술은 애플리케이션 내에서 표시되는 콘텐츠와의 상호작용과 관련하여(기존 솔루션의 경우) 애플리케이션 및/또는 SDK(또는 애플리케이션 내에서 실행되는 콘텐츠 플랫폼)가 만든 표현(예: 제출한 데이터)에만 의존하지 않는다. 오히려, 본 명세서에 설명된 기술은 이러한 확인을 수행하기 위해 클라이언트 장치에 의한 독립적인 처리(프로세싱)(예: 단독으로 또는 클라이언트 장치에서 실행되는 별도의 애플리케이션과 협력하여 운영 체제(및/또는 웹 브라우저)의 처리)에 의존한다. 여기에 설명된 기술은 콘텐츠 플랫폼에서 제공되고 클라이언트 장치에 표시되는 콘텐츠와의 상호작용을 분석하고, 애플리케이션에 표시하기 위해 제공된 특정 콘텐츠 아이템과의 특정 상호작용이 클라이언트 장치의 실제 인간 사용자에 의한 상호작용인지 여부를 확인하는 데 사용할 수 있는 콘텐츠 확인 토큰을 생성한다.
이와 관련하여, 본 명세서에 설명된 기술은 특정 콘텐츠 아이템과의 제1 상호작용이 실제 인간 사용자에 의한 상호작용인지 여부를 검증(확인)하기 위해 콘텐츠 제공자(또는 다른 콘텐츠 검증 엔티티)에 의해 사용될 수 있는 정보의, 클라이언트 장치로부터 콘텐츠 제공자(또는 다른 콘텐츠 검증 엔티티)로의 보안 전송을 가능하게 한다. 악의적인 애플리케이션, SDK 또는 기타 소프트웨어 컴포넌트가(1) 운영 체제(또는 웹 브라우저)에 의해 기록 및 처리되고 애플리케이션에 제공되는 상호작용에 대한 데이터 및/또는(2) 특정 상호작용이 실제 인간 사용자 상호작용인지 여부를 확인하기 위해 클라이언트 장치에서 콘텐츠 제공자(또는 다른 콘텐츠 검증 엔티티)에 전송한 데이터에 대해 변조 또는 위조를 시도할 수 있다. 악의적 인 엔티티의 이러한 개입으로 인해 특정 상호작용이 실제 사용자 상호작용으로 잘못 확인될 수 있다. 이러한 악의적인 개입을 극복하기 위해, 본 명세서에 설명된 기술은 운영 체제에서 애플리케이션으로 그리고 애플리케이션/클라이언트 장치에서 콘텐츠 제공자로의 정보 전송을 보호하기 위해 특정 암호화 기술을 사용한다. 그 결과, 본 명세서에 설명된 콘텐츠 확인 프로세스는 콘텐츠 확인 프로세스 중에 콘텐츠 제공자(또는 다른 적절한 검증 시스템)를 속이도록 설계된 악의적이거나 부정(fraudulent) 액션에 굴복(succumb)할 가능성이 적다.
본 명세서에 기술된 요지의 하나 이상의 실시 예의 세부 사항은 첨부된 도면 및 이하의 설명에서 설명된다. 요지의 다른 특징, 양태 및 이점은 설명, 도면 및 청구 범위로부터 명백해질 것이다.
도 1은 클라이언트 장치의 애플리케이션 내에서 액세스되는 콘텐츠 플랫폼 내에서 디스플레이(표시)하기 위해 콘텐츠가 제공되는 예시적인 환경의 블록도이다.
도 2는 오류를 검출하고 그리고 애플리케이션에 표시하기 위해 제공된 특정 콘텐츠 아이템과의 상호작용이 실제 인간 사용자의 상호작용인지 여부를 확인하는 예제 프로세스를 보여주는 스윔 레인(swim lane) 다이어그램이다.
도 3은 예시적인 컴퓨터 시스템의 블록도이다.
다양한 도면에서 유사한 참조 번호 및 지정은 유사한 요소를 나타낸다.
본 개시는 콘텐츠 프레젠테이션에서 발생할 수 있는 오류를 검출하고 콘텐츠 플랫폼에 표시된 특정 콘텐츠 아이템과의 상호작용이 클라이언트 장치의 인간 사용자에 의한 실제 상호작용인지 여부 또는 상호작용의 표시(indication)가 컴퓨터 프로세스에 의해 생성되었는지 아니면 인간 사용자에 의해 상호작용으로 잘못 식별되었는지 여부를 확인하는 컴퓨터로 구현되는 방법 및 시스템에 관한 것이다.
콘텐츠 제공자(또는 다른 적절한 콘텐츠 검증 시스템)는 특정 콘텐츠 아이템(클라이언트 장치에서 실행되는 애플리케이션(제1 애플리케이션이라고도 함) 내에서 표시할(또는 표시를 위해 제공되는) 콘텐츠 플랫폼에 제공함)과의 상호작용(본 명세서에서는 제1 상호작용이라고도 함)이 인간 상호작용의 일부 위조된 표시가 아니라 클라이언트 장치의 인간 사용자에 의한 상호작용인지 확인하고자 할 수 있다. 본 명세서에 설명된 기술(아래에 요약되고, 본 명세서 전반에 걸쳐 추가 세부사항에 설명됨)은 콘텐츠 제공자(또는 다른 적절한 콘텐츠 검증 시스템)와 협력하여 운영 체제의 보안/권한 코드, 웹 브라우저 및/또는 신뢰된 시스템 애플리케이션(본 명세서에 더 설명된대로)과 같은 클라이언트 장치의 신뢰된 소프트웨어 프로세스에 의존하여 이러한 상호작용 확인(본 명세서에서는 클릭 확인(click verification)이라고도 함)을 가능하게 한다.
본 명세서 전반에 걸쳐 더 설명된 바와 같이, 신뢰된 애플리케이션(클라이언트 장치 또는 웹 브라우저의 운영 체제의 일부이거나 별개일 수 있음)은 제1 애플리케이션으로부터 클릭 확인 토큰을 생성하라는 요청을 수신한다. 이 클릭 확인 토큰은 예를 들어 콘텐츠 확인 시스템에 의해, 애플리케이션 내의 콘텐츠 페이지에 있는 특정 콘텐츠 아이템(예: 콘텐츠 제공자가 제공한 제3자 콘텐츠 아이템 또는 콘텐츠 플랫폼에서 제공/게시한 유기적 콘텐츠 아이템)과의 상호작용이 실제 인간 사용자의 상호작용인지 확인하는 데 사용될 수 있다.
클릭 확인 토큰을 생성하기 전에, 신뢰된 애플리케이션은 요청에 포함된 특정 데이터(운영 체제(또는 웹 브라우저)에서 획득된 것으로 제1 애플리케이션에 의해 식별됨)가 실제로 운영 체제(또는 웹 브라우저)로부터 생성 및/또는 획득되었는지 여부를 결정한다. 이 데이터는 제1 상호작용을 설명하는 것으로 제1 애플리케이션에 의해 식별되는 제1 파라미터 세트에 대한 데이터 및 제1 파라미터 세트에 대한 데이터를 사용하여 생성된 것으로 제1 애플리케이션에 의해 식별되는 제1 메시지 인증 코드(MAC: message authentication code) 세트를 포함할 수 있다. 신뢰된 애플리케이션은 이 데이터를 운영 체제(또는 웹 브라우저)에 제공하여, 요청에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 제2 MAC 세트를 생성한다.
제2 MAC 세트가 제1 MAC 세트와 동일하지 않으면, 운영 체제(또는 웹 브라우저)는 제1 상호작용이 실제 인간 사용자의 상호작용이 아니고 그리고 애플리케이션(및/또는 해당 SDK) 및/또는 콘텐츠 플랫폼에 오류가 있을 수 있다고 결정한다.
반면에 제2 MAC 세트가 제1 MAC 세트와 동일하면, 운영 체제(또는 웹 브라우저)는 제1 상호작용이 실제 인간 사용자의 상호작용이라고 결론을 내린다. 이 경우 운영 체제(또는 웹 브라우저)는 제1 MAC 세트가 제2 MAC 세트와 동일하므로 요청에 포함된 데이터가 인증(위조/손상되지 않음)되었음을 신뢰된 애플리케이션에 알린다.
제1 MAC 세트가 제2 MAC 세트와 동일하다는 결정에 응답하여, 신뢰된 애플리케이션은 요청에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 클릭 확인 토큰을 생성한다. 이 토큰을 생성할 때, 신뢰된 애플리케이션은 클릭 확인 토큰의 페이로드에(1) 제1 상호작용을 설명하는 제1 파라미터 세트에 대한 데이터 및/또는(2) 특정 콘텐츠 아이템을 식별하는 데이터를 포함한다.
클릭 확인 토큰은 제1 상호작용이 실제 인간 사용자의 상호작용인지 또는 제1 상호작용이 잘못 생성 및/또는 위조되었는지 확인(검증)하기 위해 콘텐츠 제공자(또는 다른 콘텐츠 확인 시스템)에 의해 이후에 사용된다. 이 클릭 확인의 일환으로, 콘텐츠 제공자는 클릭 확인 토큰이 인증되었는지 여부를 확인한다. 그렇지 않은 경우 콘텐츠 제공자는 제1 상호작용이 실제 인간 사용자의 상호작용이 아니며 애플리케이션(및/또는 SDK) 및/또는 콘텐츠 플랫폼에 오류가 있을 수 있다고 결론을 내린다. 콘텐츠 제공자가 클릭 확인 토큰이 인증된 것으로 결정하면, 규칙 엔진 또는 다른 통계 모델(예: 지도형(supervised) 또는 비지도형 기계 학습 모델)을 사용하여 제1 파라미터 세트에 대한 데이터가 제1 상호작용이 실제 인간 사용자의 상호작용임을 나타내는지 여부를 결정한다. 이 처리(프로세싱)를 바탕으로, 콘텐츠 제공자는 제1 상호작용이 실제 인간 사용자의 상호작용인지 아닌지 결론을 내릴 수 있다. 콘텐츠 제공자가 제1 상호작용이 실제 인간 사용자의 상호작용이 아니라고 결론을 내리면, 콘텐츠 제공자는 애플리케이션(및/또는 그 SDK) 및/또는 콘텐츠 플랫폼에 오류가 있을 수 있음을 나타내는 메시지를 애플리케이션 및/또는 콘텐츠 플랫폼에 제공할 수 있다.
위에서 설명한 기능과 추가 기능은 아래에서 더 자세히 설명한다.
도 1은 클라이언트 장치상의 애플리케이션 내에서 액세스되는 콘텐츠 플랫폼 내에서 디스플레이를 위해 콘텐츠가 제공되는 예시적인 환경(100)이다. 예시적인 환경(100)은 근거리 통신망(LAN), 광역 통신망(WAN), 인터넷, 또는 이들의 조합과 같은 네트워크(150)를 포함한다. 네트워크(150)는 클라이언트 장치(102), 콘텐츠 플랫폼(140) 및 콘텐츠 제공자(130)를 연결한다. 예시적인 환경(100)은 많은 상이한 콘텐츠 제공자(130), 콘텐츠 플랫폼(140) 및 클라이언트 장치(102)를 포함할 수 있다.
클라이언트 장치(102)는 네트워크(150)를 통해 콘텐츠를 요청하고 수신할 수 있는 전자 장치이다. 예시적인 클라이언트 장치(102)는 개인용 컴퓨터, 모바일 통신 장치, 디지털 어시스턴트 장치 및 네트워크(150)를 통해 데이터를 송수신할 수 있는 기타 장치를 포함한다. 클라이언트 장치(102)는 일반적으로 네트워크(150)를 통한 데이터의 송수신을 용이하게 하기 위해 웹 브라우저와 같은 사용자 애플리케이션을 포함하지만, 클라이언트 장치(102)에 의해 실행되는 네이티브 애플리케이션은 또한 네트워크(150)를 통한 콘텐츠의 송수신을 용이하게 할 수 있다. 클라이언트 장치(102)에 제시된 콘텐츠의 예는 웹 페이지, 워드 프로세싱 문서, PDF(Portable Document Format) 문서, 이미지, 비디오 및 검색 결과 페이지를 포함한다.
콘텐츠 플랫폼(140)은 콘텐츠 배포를 가능하게 하는 컴퓨팅 플랫폼(예를 들어, 도 3을 참조하여 설명된 데이터 처리 장치)이다. 예시적인 콘텐츠 플랫폼(140)은 검색 엔진, 소셜 미디어 플랫폼, 새로운 플랫폼, 데이터 수집기 플랫폼, 또는 다른 콘텐츠 공유 플랫폼을 포함한다. 각 콘텐츠 플랫폼(140)은 콘텐츠 플랫폼 서비스 제공자에 의해 운영될 수 있다.
콘텐츠 플랫폼(140)은 자신의 콘텐츠를 발행하고 이용 가능하게 할 수 있다. 예를 들어, 콘텐츠 플랫폼(140)은 자신의 뉴스 기사를 발행하는 뉴스 플랫폼일 수 있다. 콘텐츠 플랫폼(140)은 또한 콘텐츠 플랫폼(140)의 일부가 아닌 하나 이상의 콘텐츠 제공자(130)에 의해 제공되는 콘텐츠를 제공할 수 있다. 위의 예에서, 뉴스 플랫폼은 또한 하나 이상의 콘텐츠 제공자(130)에 의해 제공되는 제3자 콘텐츠를 제공할 수 있다. 또 다른 예로, 콘텐츠 플랫폼(140)은 자신의 콘텐츠를 게시하지 않고 다른 콘텐츠 제공자(130)에 의해 제공되는 제3자 콘텐츠를 집계하고 제공하는 데이터 수집기 플랫폼일 수 있다.
본 명세서에서 사용된 것처럼, 콘텐츠 제공자(130)는 데이터 처리 장치(도 3을 참조하여 설명됨) 일 수 있으며, 하나 이상의 엔티티에 의해 생성 및/또는 발행된 콘텐츠를 저장하고 이들 엔티티로부터의 콘텐츠에 대한 요청에 응답하여 콘텐츠를 콘텐츠 플랫폼(140) 및/또는 클라이언트 장치(102)에 제공하는 서버, 저장소, 또는 기타 저장 장치를 포함할 수 있다.
클라이언트 장치(102)가 애플리케이션, 애플리케이션 A(104)(예: 브라우저 또는 네이티브 애플리케이션) 내의 콘텐츠 플랫폼(140)에 의해 제공되는 콘텐츠 페이지에 액세스할 때, 콘텐츠 페이지의 스크립트는 콘텐츠 플랫폼(140)의 일부가 아닌 하나 이상의 콘텐츠 제공자(130)로부터의 콘텐츠를 요청한다. 이 콘텐츠 요청에 대한 응답으로, 콘텐츠 제공자(130)는 애플리케이션 내에서 콘텐츠 아이템(예를 들어, 콘텐츠 아이템 CI1(106) 또는 콘텐츠 아이템 CI2(108))로서 제시될 수 있는 제3자 콘텐츠를 제공한다.
클라이언트 장치(102)는 콘텐츠 제공자(130)에 의해 제공되는 특정 콘텐츠 아이템과의 상호작용이 사용자 상호작용인지 여부를 확인하기 위해 콘텐츠 제공자(130)와 협력하여 작동할 수 있다. 클라이언트 장치(102) 및 콘텐츠 제공자(130)가 이 확인을 협력적으로 수행하는 기술이 아래에 요약되어 있으며 도 2를 참조하여 추가로 상세하게 설명된다.
일부 구현에서(도 2를 참조하여 설명됨), 애플리케이션(104)은 신뢰된 애플리케이션에 콘텐츠 아이템 CI1(106)과의 상호작용 여부를 확인하는 데 사용되는 클릭 확인 토큰을 생성하도록 요청하고, 이는 애플리케이션(104) 내의 콘텐츠 페이지에 제공되고 클라이언트 장치의 디스플레이의 특정 부분에 표시되고 사용자 상호작용이다. 본 명세서에서 사용된 것처럼, 신뢰된 애플리케이션은 장치의 보안 환경 내에서 작동하고 특정 핵심 장치 서비스를 수행하는 애플리케이션이다(운영 체제 내의 권한/커널 코드에 의해 수행되는 장치 서비스와 유사함). 일부 구현에서는, 신뢰된 애플리케이션 자체는 운영 체제 또는 웹 브라우저의 일부이거나 운영 체제 공급 업체(또는 웹 브라우저 공급 업체)에서 구현 및/또는 게시할 수 있다.
운영 체제와 협력하는 신뢰된 애플리케이션(예를 들어, 장치 드라이버(110) 및 MAC 생성기 (112)와 같은 소프트웨어 컴폰너트를 포함하는 운영 체제(118) 내의 권한(privileged) 또는 신뢰된 코드)(또는 웹 브라우저)은 클릭 확인 토큰을 생성하고 이 토큰을 애플리케이션(104)에 제공하는 데 사용된다. 애플리케이션(104)은이 클릭 확인 토큰을 콘텐츠 제공자(130)에 제공하고, 이는 차례로 상호작용이 클라이언트 장치(102)의 실제 인간 사용자에 의한 상호작용이라는 확인을 수행할 때이 클릭 확인 토큰을 사용한다. 본 명세서에서 사용된 것처럼, 운영 체제 내에서 권한이 있거나 신뢰된 코드는 커널 모드에서만 실행되는 운영 체제 코드이다(즉, 다른 사용자, 애플리케이션 또는 엔티티가 아닌 운영 체제에 의해서만 실행될 수 있는 코드/명령어). 결과적으로 권한이 있거나 신뢰된 코드는 다른 애플리케이션/엔터티의 침투에 덜 취약한다.
일부 구현에서(또한 도 2를 참조하여 설명됨), 운영 체제(118)(신뢰된 애플리케이션 대신, 이는 운영 체제(118)의 일부이거나 별개일 수 있음)는 클릭 확인 토큰을 생성하고 이 클릭 확인 토큰을 애플리케이션(104)에 제공한다.
도 1의 상기 언급된 컴포넌트들 각각의 구조 및/또는 동작은 도 2를 참조하여 추가적으로 상세히 설명된다.
도 2는 제1 애플리케이션에서 디스플레이를 위해 제공된 특정 콘텐츠 아이템과의 상호작용이 실제 인간 사용자에 의한 상호작용인지 여부를 확인하고 오류를 검출하기 위한 예시적인 프로세스(200)를 예시하는 스윔 레인 다이어그램이다. 프로세스(200)의 동작은 도 1에 설명되고, 도시된 시스템의 컴포넌트에 의해 수행되는 것으로 아래에서 설명된다. 그러나 이러한 설명은 단지 설명을 위한 것이다. 프로세스(200)의 동작은 임의의 적절한 장치 또는 시스템, 예를 들어 도 3을 참조하여 설명된 임의의 적절한 데이터 처리 장치에 의해 수행될 수 있다. 프로세스(200)의 동작은 또한 비-일시적 컴퓨터 판독 가능 매체에 저장된 명령어로서 구현될 수 있다.
애플리케이션 A(104)(다음 설명에서 제1 애플리케이션 또는 애플리케이션(104)라고도 함)는 콘텐츠 페이지를 렌더링한다(202에서). 일부 구현에서, 애플리케이션(104)이 콘텐츠 페이지를 렌더링할 때, 애플리케이션(104), 콘텐츠 아이템 CI1(106) 및 CI2(108) 내에 디스플레이를 제공한다. 도 1을 참조하여 설명한 바와 같이, 이들 콘텐츠 아이템 중 하나 이상은 하나 이상의 콘텐츠 제공자(130)로부터 획득된 제3자 콘텐츠 아이템일 수 있다.
클라이언트 장치(102)에서 애플리케이션(104)을 실행하는 동안, 클라이언트 장치(102)의 운영 체제(118)는 클라이언트 장치(102)의 사용자에 의한 CI1(106)과 같은 디스플레이된 콘텐츠 아이템과의 제1 상호작용을 검출한다(204에서). 일부 구현에서는, 사용자에 의한 제1 상호작용은 2개의 사용자 액션 이벤트(클라이언트 장치의 디스플레이와의 물리적 사용자 접촉에 대응하는 제1 사용자 액션 및 디스플레이로부터의 물리적 사용자 접촉의 해제에 대응하는 제2 사용자 액션)로 구성된다. 그러나 제1 상호작용은 단일 사용자 액션(예: 제스처) 또는 두 개 이상의 사용자 액션일 수 있다.
일부 구현에서는, 운영 체제(118)의 장치 드라이버(110)(예: 터치 스크린이 있는 장치의 경우 장치 디스플레이 드라이버; 키보드, 마우스 또는 트랙볼이 있는 장치의 경우 이러한 장치에 해당하는 장치 드라이버)는 클라이언트 장치(102)의 디스플레이와의 모든 사용자 상호작용(예를 들어, 디스플레이의 일부에 대한 마우스 클릭, 터치 감지 디스플레이의 일부에 대한 터치(손가락 또는 스타일러스와 같은 다른 물체에 의한)을 능동적으로 청취하고(listening) 기록할 수 있다. 대안적으로, 장치 드라이버(110)는 장치 드라이버(110)에게 그 애플리케이션의 실행 동안 그러한 상호작용을 기록할 권한을 부여하는 애플리케이션에 응답하여 디스플레이상의 사용자 상호작용을 청취하고 기록할 수 있다.
장치 드라이버(110)는 사용자에 의한 제1 상호작용을 위한 제1 파라미터 세트에 대한 데이터를 획득한다(206에서). 일부 구현에서는, 사용자에 의한 제1 상호작용을 검출할 때, 장치 드라이버(110)는 사용자에 의한 제1 상호작용을 설명하는 하나 이상의 파라미터에 대한 정보를 기록한다. 이러한 파라미터의 비-제한적인 예는, (1) 사용자 액션(들)의 식별(예를 들어, 디스플레이와의 물리적 사용자 접촉에 대응하는 액션, 디스플레이로부터 물리적 사용자 접촉의 해제에 대응하는 다른 액션); (2) 사용자 액션(들)에 대응하는 클라이언트 장치(102)의 디스플레이의 위치(예를 들어, 사용자 액션에 대응하는 디스플레이상의 X-Y 좌표); (3) 액션을 수행하는 데 사용되는 도구(예: 마우스, 스타일러스, 손가락); (4) 사용자 액션이 수신된 소스(예: 디스플레이/터치 스크린, 마우스, 제스처 인식용 카메라); 그리고 (5) 사용자 액션이 수행된 시간을 식별하는 타임스탬프(예: 마이크로 또는 밀리 초 단위로 정확한 시간, 타임스탬프는 사용자 액션의 날짜일 수도 있음)를 포함한다.
예를 들면, 제1 상호작용에 두 가지 사용자 액션이 포함되어 있다고 가정한다. 상기 두 가지 사용자 액션은 장치(102)의 디스플레이와의 물리적 사용자 접촉에 대응하는 제1 사용자 액션(예: 화면 터치, 포인터가 디스플레이의 특정 지점에 있을 때 마우스 버튼 누르기) 및 디스플레이로부터의 물리적 사용자 접촉의 해제에 대응하는 제2 사용자 액션(예를 들어, 화면의 터치 해제, 포인터가 디스플레이의 특정 지점에 있을 때 마우스 버튼 해제)을 포함한다. 이 예에서, 장치 드라이버(110)는 제1 사용자 액션을 설명하는 (예를 들어, 하나 이상의) 제1 파라미터 세트(예를 들어, 위에서 설명된 파라미터)에 대한 제1 데이터 세트 및 제2 사용자 액션을 설명하는 동일한 제1 파라미터세트에 대한 제2 데이터 세트를 기록한다.
MAC 생성기(112)는 제1 파라미터 세트에 대한 데이터를 사용하여 제1 메시지 인증 코드(MAC) 토큰 세트를 생성한다(208에서). 일부 구현에서, 제1 MAC 세트는 각 사용자 액션에 대응하는 별도의 MAC을 포함한다. 제1 상호작용을 구성하는 두 가지 액션의 위 예를 사용하여, MAC 생성기(112)는 (1) 제1 사용자 액션에 대응하는 제1 파라미터 세트에 대한 데이터를 사용하여 제1 MAC(예: 클라이언트 장치의 디스플레이와의 물리적 사용자 접촉) 및 (2) 제2 사용자 액션(예를 들어, 디스플레이로부터의 물리적 사용자 접촉의 해제에 대응하는 제2 사용자 액션)에 대응하는 제1 파라미터 세트에 대한 데이터를 사용하여 제2 MAC을 생성한다. 대안적으로, 제1 MAC 세트는 사용자에 의한 제1 상호작용을 구성하는 모든 액션에 대응하는 단일 MAC을 포함할 수 있다.
일부 구현들에서, MAC 생성기(112)는 해시 기반 메시지 인증 코드(HMAC) 알고리즘(예를 들어, HMAC-SHA256 알고리즘)을 사용하여 제1 MAC 세트에서 각각의 MAC을 생성한다. 일부 구현에서는, MAC 생성기(112)는 운영 체제(118)의 비밀 암호화 키(클라이언트 장치(102) 내의 보안 위치에 저장됨)를 사용하여 장치 드라이버(110)에 의해 획득된 제1 파라미터 세트에 대한 데이터의 HMAC를 생성한다. 대안적으로, MAC 생성기(112)는 HMAC를 생성할 때 다른 보안 암호화 키를 사용할 수 있다.
예를 들면, 두 개의 사용자 액션이 제1 상호작용을 구성하는 경우, MAC 생성기(112)는 (1) 제1 사용자 액션에 대응하는 제1 파라미터 세트에 대한 데이터를 사용하여 제1 HMAC(즉, 제1 MAC) 및 (2) 제2 사용자 액션에 대응하는 제1 파라미터 세트에 대한 데이터를 사용하여 제2 HMAC(즉, 제2 MAC)를 생성한다. 또는 각 사용자 액션에 대해 별도의 토큰을 생성하는 대신, MAC 생성기(112)는 사용자에 의한 제1 상호작용을 구성하는 사용자 액션 각각에 대응하는 제1 파라미터 세트에 대한 데이터를 사용하여 단일 HMAC(즉, MAC)를 생성한다.
또는 HMAC를 생성하는 대신, MAC 생성기(112)는 다른 대칭 또는 비대칭 암호화 또는 인증 알고리즘을 사용하여 제1 사용자 상호작용을 구성하는 사용자 액션(들)에 대한 제1 파라미터 세트에 대한 데이터를 암호화하거나 그렇지 않으면 보안(secure)하는 하나 이상의 토큰을 생성할 수 있다.
편리함과 단순함을 위해, 다음 설명은 제1 상호작용이 두 개의 사용자 액션으로 구성되고, MAC 생성기(112)가 각 사용자 액션에 대한 제1 파라미터 세트에 대한 데이터에 대해 별도의 HMAC(또는 다른 암호화 또는 인증 기술을 사용하여 생성된 별도의 토큰)를 생성한다고 가정한다. 그러나 위에서 설명한 것처럼, 제1 상호작용은 하나 이상의 사용자 액션으로 구성될 수 있고, MAC 생성기(112)는
각각의 사용자 액션(들)에 대한 제1 파라미터 세트에 대한 데이터를 사용하여 별도의 HMAC(또는 다른 암호화 또는 인증 기술을 사용하여 생성된 토큰)을 생성하거나, 모든 사용자 액션(들)에 대한 제1 파라미터 세트에 대한 데이터에 대한 단일 HMAC(또는 다른 암호화 또는 인증 기술을 사용하여 생성된 토큰)를 생성할 수 있다.
운영 체제(118)는 초기 증명 데이터를 애플리케이션(104)에 전송한다(210에서). 일부 구현에서, 운영 체제(118)는 동작 204-208에서 획득 및/또는 처리된 하나 이상의 데이터 아이템을 초기 증명 데이터로 패키징한다. 따라서, 초기 증명 데이터는 (1) 장치 드라이버(110)에 의해 획득된 제1 파라미터 세트에 대한 데이터 및/또는(2) MAC 생성기(112)에 의해 생성된 제1 MAC 세트를 포함할 수 있다. 초기 증명 데이터의 각 데이터 아이템은 별도의 데이터 구조에 저장되거나 단일 데이터 구조에 있는 초기 증명 데이터의 다른 데이터 아이템과 함께 저장될 수 있다. 두 경우 모두 별도의 데이터 구조 또는 단일 데이터 구조의 컬렉션을 여전히 초기 증명 데이터라고 한다.
애플리케이션(104)은 운영 체제(118)에 의해 전송된 초기 증명 데이터를 수신한다(212에서). 일부 구현에서, 애플리케이션(104)은 초기 증명 데이터를 특정 콘텐츠 아이템과의 제1 상호작용과 연관시킨다(이 경우에는 CI1(106)). 예를 들어, 애플리케이션(104)은 (1) 특정 콘텐츠 아이템을 식별하는 데이터 및 (2) 특정 콘텐츠 아이템과 사용자에 의한 제1 상호작용에 대한 초기 증명 데이터를 포함하는 데이터 구조를 저장할 수 있다.
애플리케이션 A(104)는 애플리케이션 B(160)(제2 애플리케이션 또는 애플리케이션(160)라고도 함)로 전송하고, 애플리케이션 B(160)는 애플리케이션 A(104)로부터 클릭 확인 토큰을 생성하라는 요청을 수신한다(214에서). 본 명세서에서 사용된 것처럼, 클릭 확인 토큰은 애플리케이션에 표시하기 위해 제공된 특정 콘텐츠 아이템과의 상호작용(예를 들어, 클라이언트 장치(102)의 디스플레이를 사용한 마우스 클릭, 손가락 또는 스타일러스 터치에 기반하는지 여부)이 클라이언트 장치의 실제 인간 사용자에 의한 상호작용인지 여부를 확인하는 데 사용되는 디지털 서명된 토큰이다. 클릭 확인 토큰 생성에 대한 세부 사항은 224 단계를 참조하여 설명한다. 일부 구현에서는, 애플리케이션 B(160)는 애플리케이션 A(104) 및 운영 체제(118)와는 별개인 신뢰된 애플리케이션(본 명세서에서 설명됨)이다. 다른 구현에서, 애플리케이션 B(160)는 운영 체제(118)의 일부일 수 있거나 운영 체제 공급 업체에 의해 구현 및/또는 공개된다.
일부 구현에서, 네이티브 애플리케이션일 수 있는 애플리케이션(104)은 애플리케이션(104)이 요청을 생성하게 하는 소프트웨어 개발 키트(SDK) 또는 애플리케이션 프로그래밍 인터페이스(API)를 포함할 수 있다. 애플리케이션(104)이 웹 브라우저인 구현에서, 페이지에서 실행되는 스크립트는 요청을 생성할 수 있다.
일부 구현들에서, 클릭 확인 토큰을 생성하기 위한 요청은 운영 체제(118)로부터 획득되는 것으로 애플리케이션(104)에 의해 식별되는 초기 증명 데이터를 포함한다. 요청은 또한 특정 콘텐츠 아이템 CI1(106)을 식별하는 데이터를 포함할 수 있다.
애플리케이션(104)이 요청과 함께 제공하는 이 초기 증명 데이터는, (1) 애플리케이션(104)에 의해 제1 상호작용을 설명하는 것으로 식별되는 제1 파라미터 세트에 대한 데이터 및 (2) 제1 파라미터 세트에 대한 데이터를 사용하여 생성되는 것으로 애플리케이션(104)에 의해 식별되는 제1 MAC 세트를 포함할 수 있다. 요청에 포함된 제1 파라미터 세트에 대한 데이터는 제1 사용자 액션에 대응하는 것으로 식별되는 제1 파라미터 세트에 대한 데이터 및 제2 사용자 액션에 대응하는 것으로 식별되는 제1 파라미터 세트에 대한 데이터를 포함할 수 있다. 일부 구현에서, 초기 증명 데이터는 어레이(배열)(또는 다른 적절한 데이터 구조)로 제공될 수 있다.
요청에서 애플리케이션(104)에 의해 포함된 초기 증명 데이터는 운영 체제(118)가 동작 210에서 애플리케이션(104)에 전송하는 제1 사용자 상호작용에 대응하는 초기 증명 데이터일 수 있다. 일부 구현에서 두 데이터 세트는 동일한다. 대체 구현에서 두 데이터 세트는 실질적으로 동일할 수 있지만 변환된 데이터는 원본 데이터를 나타낸다. 예를 들면, 일부 변환이 적용될 수 있으며, 예를 들어 요청에 포함된 초기 증명 데이터의 X-Y 좌표는 화면의 절대 좌표에 있을 수 있으며, 운영 체제(118)에 의해 수집된 X-Y 좌표는 애플리케이션에 더 의미있는 다른 좌표계에 있을 수 있다.
그러나, 애플리케이션(104)은 또한 사용자에 의한 제1 상호작용에 대해 생성된(동작 210에서) 초기 증명(attestation) 데이터와는 다른 상이한 세트의 초기 증명 데이터를 제공할 수 있다. 이는 애플리케이션(104) 및/또는 콘텐츠 플랫폼(140)의 오류때문일 수 있다. 경우에 따라 이는 악의적인 엔티티/애플리케이션이 클릭 확인을 손상시키려고 시도하고 있음을 나타낼 수도 있다.
일부 구현에서는, 애플리케이션(104)으로부터 요청을 수신하면, 애플리케이션 B(160)는 애플리케이션(104)으로부터 수신된 요청에 포함된 초기 증명 데이터가 실제로 운영 체제(118)에 의해 생성/획득되었음을 확인한 후에 클릭 확인 토큰을 생성한다. 이 확인은 애플리케이션(104) 또는 콘텐츠 플랫폼(140)에 오류가 없음을 보장하고, 또한 클릭 확인을 부적절하게 획득하도록 설계된 위조되거나 유효하지 않은 데이터를 포함하려는 악의적인 엔티티/애플리케이션의 시도를 식별한다. 일부 구현에서는, 애플리케이션 B(160)에 의한 확인 요청은 요청에서 수신된 초기 증명 데이터가 운영 체제(118)에 의해 생성된 것을 운영 체제(118)가 확인하도록 요청한다. 초기 증명 데이터를 확인하도록 하는 요청과 함께, 애플리케이션 B(160)는 애플리케이션(104)으로부터 수신된 요청에 포함된 초기 증명 데이터를 운영 체제(118)에 전송한다(동작 214에서).
동작 214에 대한 응답으로, 운영 체제(118)는 애플리케이션(104)으로부터 수신된 요청에 포함된 초기 증명 데이터(동작 214)가 운영 체제(118)(218, 220)에 의해 생성 및/또는 획득되는지 여부를 확인한다. 일부 구현에서, 운영 체제(118)는 다음 단락에서 설명되는 바와 같이 두 단계로 이 확인(검증)을 수행한다.
먼저, 운영 체제(118)는 동작(단계)(214)에서 제공된 초기 증명 데이터에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 제2 MAC 세트를 생성한다. 일부 구현에서는, MAC 생성기(112)는 동작 214에서 제공된 초기 증명 데이터에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 HMAC 세트(또는 적절한 암호화 또는 인증 알고리즘을 사용하여 생성된 다른 보안 토큰)를 생성한다(동작 208 참조). 따라서, MAC 생성기(112)는, (1) 제1 사용자 액션에 대응하는 것으로 애플리케이션(104)에 의해 식별된 요청에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 적절한 암호화 또는 인증 알고리즘(즉, 제3 MAC)을 사용하여 생성된 제3 HMAC 또는 다른 보안 토큰 및 (2) 제2 사용자 액션에 대응하는 것으로 애플리케이션(104)에 의해 식별되는 요청에 포함된 제1 파라미터 세트에 대한 적절한 암호화 또는 인증 알고리즘(즉, 제4 MAC)을 사용하여 생성된 제4 HMAC 또는 다른 보안 토큰을 생성할 수 있다. MAC 생성기(112)는(동작 208에서 생성된) 제1 MAC 세트를 생성하는데 사용되는 동일한 알고리즘(들) 및 암호화 키를 사용하여 HMAC(또는 다른 적절한 보안 토큰)를 생성한다.
둘째, 운영 체제(118)는 제1 MAC 세트가 제2 MAC 세트와 동일한지 여부를 결정한다. 이 비교는 제1 MAC 세트 및 제2 MAC 세트 각각이 별도의 사용자 액션에 대응하는 2개의 MAC을 포함하는 전술한 예를 사용하여 설명된다. 따라서 위의 예에서, 애플리케이션(104)에 의해 제공된 초기 증명 데이터에 포함된 제1 MAC 세트는 (1) 애플리케이션(104)에 의해 제1 사용자 액션에 대응하는 것으로 식별되는 제1 MAC 및 (2) 애플리케이션(104)에 의해 제2 사용자 액션에 대응하는 것으로 식별되는 제2 MAC를 포함한다. 이 예제를 계속 진행하면, 제2 MAC 세트는, (1) 제1 사용자 액션에 대응하는 것으로 식별된 요청에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 생성된 제3 MAC, (2) 제2 사용자 액션에 대응하는 것으로 식별되는 요청에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 생성된 제4 MAC를 포함한다. 운영 체제(118)는 (1) 제1 MAC이 제3 MAC과 동일한지, (2) 제2 MAC이 제4 MAC과 동일한지를 결정함으로써 제1 MAC 세트가 제2 MAC 세트와 동일한지 여부를 결정한다.
운영 체제가 제1 MAC 세트가 제2 MAC 세트와 동일하다고 결정하는 경우(예: 제1 MAC은 제3 MAC과 동일하고 그리고 제2 MAC은 제4 MAC과 동일함), 운영 체제(118)는 초기 증명 데이터가 유효하다고 결론을 내리고(즉, 초기 증명 데이터가 운영 체제(118)에 의해 생성되었다) 애플리케이션 B(160)에 제1 MAC 세트가 제2 MAC 세트와 동일하다는 표시(indication)를 제공한다. 한편, 운영 체제가 제1 MAC 세트가 제2 MAC 세트와 동일하지 않다고 결정하면(예: 제1 MAC이 제3 MAC과 동일하지 않거나 제2 MAC이 제4 MAC과 동일하지 않음), 운영 체제(118)는 초기 증명 데이터가 유효하지 않다고 결론을 내리고(즉, 초기 증명 데이터가 운영 체제(118)에 의해 생성되지 않았다) 애플리케이션 B(160)에 제1 MAC 세트가 제2 MAC 세트와 동일하지 않다는 표시를 제공한다.
일부 구현에서, MAC 세트를 생성하는 대신(동작 208, 218 및 220에서), 운영 체제(118)는 초기 증명 데이터(또는 암호화 해시 함수를 사용하여 생성된 암호화 해시)의 일부로서 포함된 모든 데이터를 저장할 수 있다. 운영 체제(118)는 이 데이터(또는 암호 해시)를 애플리케이션(104)으로 전송한다. 이후, 애플리케이션 B(160)가 초기 증명 데이터의 확인을 요청하면(단계 216), 운영 체제(118)는 이 수신된 데이터(또는 암호 해시)를 저장된 초기 증명 데이터(또는 암호 해시)와 비교함으로써 수신된 초기 증명 데이터가 실제로 운영 체제에 의해 생성되었음을 확인할 수 있다.
운영 체제(118)로부터 제1 MAC 세트가 제2 MAC 세트와 동일한지 여부를 지정하는 표시를 수신하는 것에 응답하여, 애플리케이션 B(160)의 토큰 생성기(114)는 클릭 확인 토큰을 생성한다(224에서). 일부 구현에서는, 토큰 생성기(114)에 의해 생성된 클릭 확인 토큰은 데이터 세트를 포함할 수 있는 증명 토큰이고, 이는 적어도 사용자 식별자와 페이로드를 포함하며 일부 경우에는 장치 무결성 토큰도 포함한다(즉, 장치 무결성 토큰은 페이로드에 포함될 수 있지만 반드시 포함될 필요는 없음). 증명 토큰에는 이 데이터 세트의 디지털 서명도 포함된다. 다음 단락에서는 데이터 세트의 각 데이터 아이템과 이 데이터 세트의 디지털 서명에 대해 설명한다.
증명 토큰에 포함될 수 있는 사용자 식별자는 클라이언트 장치(102)의 공개 키를 포함한다. 예를 들어, 클라이언트 장치(102)는 장치 개인 키 및 장치 공개 키를 포함하는 하나 이상의 암호화 키 쌍을 생성 및/또는 유지할 수 있다. 장치 공개 키는 장치 개인 키에 해당하며 수학적으로 링크된다. 개인 키를 사용하여 디지털 서명된 데이터는 해당 공개 키를 사용해야 만 확인(검증)할 수 있다. 마찬가지로 공개 키를 사용하여 암호화된 데이터는 해당 개인 키를 사용해야만 해독(decrypted)할 수 있다.
증명 토큰에 포함될 수 있는 페이로드는 동작 214의 요청에 포함된 데이터를 포함하며, 동작 214의 요청에 포함된 데이터는 (1) 제1 상호작용을 설명하는 제1 파라미터 세트에 대한 데이터, (2) 특정 콘텐츠 아이템을 식별하는 데이터를 포함한다. 특정 콘텐츠 아이템을 식별하는 데이터와 하나 이상의 속성에 대한 데이터를 포함하는 각 데이터 아이템은 별도의 속성에 대한 데이터를 포함하는 어레이의 각 위치와 함께 어레이(또는 다른 데이터 구조)로 페이로드에 포함될 수 있다. 운영 체제(118)가 제1 MAC 세트가 제2 MAC 세트와 동일하지 않다고 결정하는 경우, 애플리케이션 B(160)는 제1 MAC 세트가 제2 MAC 세트와 동일하지 않음을 지정하는 운영 체제(118)에 의한 표시를 포함하는 메시지를 페이로드에 단순히 포함할 수 있다. 일부 경우에, 증명의 페이로드는 예를 들어 공개-개인 암호화 키 기술을 사용하여 암호화될 수 있다. 예를 들어 콘텐츠 확인 시스템의 공개 키로 페이로드에 서명할 수 있으며, 콘텐츠 확인 시스템의 개인 키를 통해서만 해독할 수 있다.
증명 토큰에 포함될 수 있는 무결성(integrity) 토큰은 엔티티가 신뢰된 클라이언트 장치(110)에 의해 요청(120)이 전송되었는지 여부를 결정할 수 있게 하는 장치 무결성 토큰을 포함한다. 장치 무결성 토큰은 클라이언트 장치의 부정(fraud) 신호를 평가하고, 그 평가에 따라 클라이언트 장치에 신뢰성(신뢰도)(trustworthiness) 레벨을 할당하는 제3자 장치 무결성 시스템에 의해 발급될 수 있다. 클라이언트 장치(102)에 대한 장치 무결성 토큰은, (1) 장치 무결성 토큰이 생성된 시점에 클라이언트 장치(102)의 신뢰도(또는 무결성) 레벨을 나타내는 판정(verdict), (2) 장치 무결성 토큰이 생성된 시간을 나타내는 장치 무결성 토큰 생성 시간, (3) 클라이언트 장치(102)에 대한 고유 식별자(예를 들어, 클라이언트 장치의 장치 공개 키 또는 그 파생물일 수 있음)를 포함할 수 있다. 장치 무결성 토큰에는 장치 무결성 토큰에 있는 데이터의 디지털 서명도 포함될 수 있다. 이 디지털 서명은 장치 무결성 시스템의 개인 키를 사용하여 생성될 수 있다.
예를 들어 장치 무결성 시스템은 시스템이 기밀로 유지하는 개인 키를 사용하여 데이터에 서명할 수 있다. 장치 무결성 토큰을 수신한 엔터티는 장치 무결성 토큰의 서명을 확인(검증)하기 위해 장치 무결성 시스템의 공개 키를 사용할 수 있다. 장치 무결성 토큰과 증명 토큰 모두에 클라이언트 장치(102)에 대한 장치 공개 키를 포함하는 것은 이 두 토큰을 함께 바인딩한다. 즉, 장치 무결성 토큰에 클라이언트 장치(102)의 장치 공개 키를 포함함으로써, 증명 토큰의 수신자는 장치 무결성 토큰이 그 클라이언트 장치(102)에 대해 생성되었음을 결정할 수 있다. 이렇게하면 다른 당사자가 에뮬레이터(emulator) 또는 손상된 클라이언트 장치의 요청에 신뢰된 장치에 대한 장치 무결성 토큰을 포함할 수 없다.
증명 토큰에 포함될 수 있는 디지털 서명은 전술한 데이터 세트(또는 그 일부 변형)의 디지털 서명일 수 있다. 이 디지털 서명은 클라이언트 장치(102)의 운영 체제(118)에 의해 안전하고 기밀로 유지될 수 있는 장치 개인 키를 사용하여 생성된다. 예를 들어 디지털 서명은 페이로드의 디지털 서명(암호화 또는 암호화되지 않음), 사용자 식별자(예: 장치 공개 키) 및 무결성 토큰일 수 있다. 일부 구현에서는, 운영 체제(118)는 ECDSA(Elliptic Curve Digital Signature Algorithm)를 사용하여 디지털 서명을 생성하지만, RSA와 같은 다른 서명 기술도 사용될 수 있다.
일부 구현에서는, 증명 토큰 대신, 토큰 생성기(114)에 의해 다른 유형의 보안 토큰이 생성될 수 있고, 이는 초기 증명의 전체/서브세트의 통신을 보호하는데도 사용될 수 있다. 예를 들어, 이 데이터는 제3자 무결성 시스템의 개인 키를 사용하여 디지털 서명될 수 있다. 콘텐츠 제공자(130)와 같이 이후에 클릭 확인 토큰을 수신하는 엔티티는 제3자 무결성 시스템으로부터 해당 공개 키를 요청할 수 있고, 이 키를 사용하여 서명 및 속성 데이터를 확인할 수 있다.
프로세스(200)로 돌아가서, 애플리케이션 B(160)는 생성된 클릭 확인 토큰을 애플리케이션 A(104)에 제공한다.
애플리케이션 A(104)는 콘텐츠 제공자(130)(또는 다른 적절한 콘텐츠 확인 시스템)에 클릭 확인 토큰을 전송한다. 이 클릭 확인 토큰은 동작 222에서 운영 체제(118)에 의해 생성된 토큰일 수 있거나, 애플리케이션(104)이 클릭 확인 토큰으로 식별하는 다른 데이터 아이템일 수 있다.
클릭 확인 토큰을 수신하면, 콘텐츠 제공자(130)(또는 다른 적절한 콘텐츠 확인 시스템)는 클릭 확인 토큰을 확인(유효성 검사 또는 검증)한다(224에서). 일부 구현에서는, 이 확인(유효성 검사)의 일부로, 콘텐츠 제공자(130)는 제1 파라미터 세트에 대한 데이터를 획득하기 위해 클릭 확인 토큰의 페이로드를 해독한다(페이로드가 암호화되는 시나리오를 가정).
증명 토큰이 클릭 확인 토큰으로 사용되는 구현에서, 콘텐츠 제공자(130)는 토큰에 포함된 디지털 서명을 확인하기 위해 증명 토큰에 포함된 장치 공개 키를 사용한다. 이러한 구현에서, 콘텐츠 제공자(130)는 해독된 페이로드, 장치 공개 키 및 장치 무결성 토큰에 포함된 데이터 아이템을 사용하여 디지털 서명을 생성하기 위해 장치의 공개 키를 사용하고, 생성된 디지털 서명을 증명 토큰에 포함된 디지털 서명과 비교한다. 비교 결과 동일한 디지털 서명이 표시되지 않으면, 콘텐츠 제공자(130)는 제1 상호작용이 클라이언트 장치(102)의 사용자에 의한 상호작용이 아니라는 결론을 내린다. 그러한 경우, 콘텐츠 제공자(130)는 애플리케이션(104)(및/또는 그 SDK) 및/또는 콘텐츠 플랫폼(140)에 오류가 있을 수 있음을 나타내는 메시지를 애플리케이션(104)에 전송할 수 있다. 반면 비교 결과 동일한 디지털 서명이있는 경우, 콘텐츠 제공자(130)는 증명 토큰의 페이로드에 포함된 제1 상호작용을 설명하는 제1 파라미터 세트에 대한 데이터를 획득하고, 클릭 확인을 계속한다.
일부 구현에서는, 증명 토큰에 서명된 장치 무결성 토큰이 포함된 경우, 콘텐츠 제공자(130)는 (위에서 설명된 바와 같이) 시스템에 대한 공개 키를 획득하기 위해 적절한 장치 무결성 시스템과 상호작용할 수 있다. 콘텐츠 제공자(130)는 장치 무결성 토큰의 디지털 서명을 확인함으로써, 장치 무결성 토큰이 실제로 장치 무결성 시스템에 의해 생성되었고 생성 후에 수정되지 않았음을 확인하기 위해 이 공개 키를 사용한다. 획득한 공개 키를 사용하여 장치 무결성 토큰의 디지털 서명이 성공적으로 확인된 경우, 그리고 확인된 장치 무결성 토큰에 존재하는 장치 무결성 데이터가 장치가 신뢰할 수 있음을 나타내는 경우, 콘텐츠 제공자(130)는 콘텐츠 확인을 계속한다. 반면, 획득한 공개 키를 사용하여 장치 무결성 토큰을 확인할 수 없는 경우 및/또는 토큰 확인시 획득한 장치 무결성 데이터가 장치를 신뢰할 수 없음을 나타내는 경우, 콘텐츠 제공자(130)는 임의의 추가 콘텐츠 확인을 중지할 수 있다. 그러한 예에서, 콘텐츠 제공자(130)는 또한 콘텐츠 확인을 위해 사용될 디지털 서명된 토큰을 전송한 클라이언트 장치(102)에 오류가 있을 수 있음을 나타내는 메시지를 애플리케이션(104)에 전송할 수 있다.
클릭 확인의 일환으로, 콘텐츠 제공자(130)는 제1 상호작용을 설명하고 증명 토큰에 포함된 제1 파라미터에 대한 데이터에 기초하여 제1 상호작용이 사용자에 의한 상호작용인지 여부를 확인한다. 일부 구현에서, 콘텐츠 제공자(130)는 제1 상호작용이 사용자에 의한 상호작용임을 제1 파라미터 세트에 대한 데이터가 나타내는지 여부를 평가하기 위한 규칙 세트를 저장하는 규칙 엔진을 포함할 수 있다. 이러한 규칙의 비제한적인 예는 다음 단락에서 제공된다.
클릭 확인 규칙의 일례는 사용자 액션에 대응하는 장치의 디스플레이의 위치(예: 장치 디스플레이의 X-Y 좌표, 애플리케이션(104)에 표시된 콘텐츠 페이지 내의 특정 콘텐츠 슬롯)가 애플리케이션(104) 내에 표시된 제3자 콘텐츠 아이템(CI1 106)의 위치(예를 들어, 콘텐츠 플랫폼(140)에 의해 특정 콘텐츠 아이템(CI1 106)에 할당된 애플리케이션(104)의 일부, 장치의 디스플레이의 일부를 지정하는 좌표 범위)에 대응/매칭하는지 여부를 포함한다. 그렇다면 제1 상호작용은 실제 인간 사용자에 의한 것일 수 있으며, 그렇지 않으면, 제1 상호작용은 콘텐츠 아이템(106)과의 실제 인간 사용자에 의한 것이 아닐 수 있다. 또 다른 예는 두 이벤트(예: "finger down" 및 "finger up")의 X-Y 좌표가 서로 크게 다르기 때문에 콘텐츠 아이템과의 사용자 상호작용이 클릭 대신 드래그일 가능성이 더 높다는 것을 나타낼 수 있다. 또 다른 예는 두 이벤트(예: "finger down" 및 "finger up")의 타임스탬프 사이에 상당한 시간이 경과(예, 1분 이상)할 수 있다는 것이며, 이는 기록된 상호작용이 사용자가 콘텐츠 아이템을 클릭하는 대신 터치 스크린에 있는 일부 객체(예: 연필)에서 온 것일 수 있음을 나타낼 수 있다. 또 다른 예는 두 이벤트(예: "finger down" 및 "finger up")가 시간 순서를 벗어난 것이며, 예를 들어 "finger up" 이벤트의 타임스탬프가 "finger down" 이벤트의 타임스탬프보다 오래되었음을 나타낼 수 있다. 그렇다면 제1 상호작용은 실제 인간 사용자가 아닐 가능성이 높으며, 그렇지 않으면, 제1 상호작용은 콘텐츠 아이템(106)과의 실제 인간 사용자에 의한 것일 수 있다.
클릭 확인 규칙의 또 다른 예는 사용자 액션을 수행하는 데 사용된 도구(tool)가 사용자 액션이 수신된 소스와 일치하는지(예: 매칭) 여부를 결정하는 것을 포함한다. 따라서, 예를 들어 마우스가 사용자 액션을 수행하는 데 사용되지만 사용자 액션의 소스가 터치 스크린인 경우 불일치를 나타낸다(예상된 도구가 스타일러스 또는 손가락이기 때문에). 이러한 불일치는 실제 인간 사용자가 제1 상호작용을 할 가능성이 없음을 나타낸다.
클릭 확인 규칙의 또 다른 예에는, 사용자 액션이 오래되었는지 여부를 확인하는 것이 포함된다. 사용자 액션은, 타임스탬프와 클릭 확인 토큰을 확인하도록 하는 요청이 수신된(동작 224에서) 시간의 차이가 부실(스테일네스(staleness)) 임계치(수신된 타임스탬프가 오래된 것으로 간주될 수 있는 기간을 지정하는 미리 결정된 임계치일 수 있음)를 충족(예: 만족 또는 초과)하는지 여부에 기초하여 부실한 것으로 간주될 수 있다. 그러므로, 부실 임계치가 2 분이면, 2:14:15의 수신된 타임스탬프는 클릭 확인 토큰을 확인하도록 하는 요청이 수신된 시간이 타임스탬프 시간보다 2분 이상(예: 2:17:10)인 경우 부실한 것으로 간주된다. 부실 사용자 액션은 제1 상호작용이 실제 사용자에 의해 생성되지 않았음을 나타낼 수 있다. 반대로, 비-부실 사용자 액션은 제1 상호작용이 실제 인간 사용자에 의한 것일 가능성이 있음을 나타낼 수 있다.
상기 규칙 중 하나 이상(및 제1 상호작용에 대한 제1 파라미터 세트에 대한 데이터 및/또는 콘텐츠 아이템을 식별하는 데이터에 기반한 다른 적절한 규칙)을 결합하여 제1 상호작용이 실제 인간 사용자의 상호작용일 가능성을 지정하는 점수를 획득할 수 있다. 일부 구현에서, 각각의 규칙에는 가중치가 할당될 수 있으며 규칙 엔진은 각 규칙에 점수를 할당한다. 규칙 엔진은 각 규칙에 대한 가중치 점수를 결합(예: 추가)하여 집계 점수를 생성한다(예: 각 규칙의 가중치에 해당 규칙에 대해 생성된 해당 점수를 곱함). 이 집계 점수가 특정 임계치(예: 사전 결정된 임계치)를 충족(예: 만족 또는 초과)하는 경우, 규칙 엔진은 제1 상호작용이 실제 인간 사용자의 상호작용이라고 결정하며, 그렇지 않으면 규칙 엔진은 제1 상호작용이 실제 사용자의 상호작용이 아니라고 결정한다.
일부 구현에서는, 규칙 엔진 대신, 예를 들어(지도형 또는 비지도형) 기계 학습 모델과 같은 통계 모델을 사용하여 제1 상호작용에 대한 제1 파라미터 세트의 데이터가, 제1 상호작용이 실제 사용자에 의한 상호작용임을 나타내는지 여부를 결정할 수 있다. 예를 들어, 지도형 기계 학습 모델은 여러 사용자 상호작용을 위한 학습 데이터를 사용하여 학습된 후 이를 수행하도록 학습될 수 있으며, 학습 데이터는 각 상호작용에 대한 파라미터 세트에 대한 데이터와 학습(훈련) 데이터의 특정 상호작용에 대한 파라미터 데이터가 실제 사용자의 상호작용인지 여부를 나타내는 해당 레이블 세트를 포함한다.
콘텐츠 제공자(130)(또는 다른 콘텐츠 확인 시스템)가 제1 상호작용이 실제 인간 사용자에 의한 상호작용이라고 결정하면, 콘텐츠 제공자(130)(또는 다른 콘텐츠 확인 시스템)는 제1 상호작용이 실제 인간 사용자에 의한 상호작용임을 나타내는 메시지를 생성한다. 한편, 콘텐츠 제공자(130)(또는 다른 콘텐츠 확인 시스템)가 제1 상호작용이 실제 인간 사용자의 상호작용이 아니라고 결정하면, 콘텐츠 제공자(130)(또는 다른 콘텐츠 확인 시스템)는 제1 상호작용이 실제 인간 사용자에 의한 상호작용이 아님을 나타내는 메시지를 생성한다. 이 경우, 콘텐츠 제공자(130)는 또한 애플리케이션(및/또는 그 SDK) 및/또는 콘텐츠 플랫폼에 오류가 있을 수 있음을 나타낼 수 있다.
상술한 프로세스 흐름 및 시스템 구현에서, 애플리케이션 B(APP B)(160)는 클릭 확인 토큰을 생성한다. 대안적인 구현에서, 운영 체제(118)(애플리케이션 B(160) 대신)는 클릭 확인 토큰을 생성할 수 있다. 이러한 구현에서, 운영 체제(118)가 동작(204 및 206)을 수행하는 동안, 애플리케이션 A(APP A)(104)에 제1 사용자 상호작용을 위해 획득된 제1 파라미터 세트에 대한 데이터(HMAC 또는 다른 암호화 알고리즘을 사용하여)를 안전하게 전송하기 위해 동작(208 및 210)을 수행할 필요가 없다. 비슷하게, 초기 증명 데이터가 운영 체제(118)에 의해 생성되었는지 여부를 확인하는 동작(즉, 동작 216-220)도 수행될 필요가 없다. 대신, 운영 체제(118)는 클릭 확인 토큰을 직접 생성할 수 있고(222 동작에서 설명한 것과 동일), 클릭 확인 토큰의 페이로드에서 제1 상호작용에 대한 제1 파라미터 세트에 대해 획득/생성된 데이터를 포함할 수 있다. 이러한 구현에서, 토큰 생성기(114)는 운영 체제(118) 내에 포함되고 클릭 확인 토큰을 생성할 때 운영 체제(118)에 의해 사용된다. 도 2를 참조하여 설명된 다른 액션은 동일한 엔터티에 의해 이 구현에서 여전히 수행될 수 있다.
다른 대안적인 구현에서, 애플리케이션 B(160)는 운영 체제(118)의 일부이다. 이러한 구현에서, 이전 단락에서 설명한 구현과 유사하게, 운영 체제(118)가 동작 204 및 206을 수행하는 동안, 애플리케이션 A(104)에 제1 사용자 상호작용을 위해 획득된 제1 파라미터 세트에 대한 데이터(HMAC 또는 다른 암호화 알고리즘을 사용하여)를 안전하게 전송하기 위해 동작(208 및 210)을 수행할 필요가 없다. 유사하게, 초기 증명 데이터가 운영 체제(118)에 의해 생성되었는지 여부를 확인하는 동작(즉, 동작 216-220)도 수행될 필요가 없다. 대신, 애플리케이션 B(160)(이 구현에서 운영 체제(118)의 일부임)는 클릭 확인 토큰을 직접 생성할 수 있으며(동작 222를 참조하여 설명된 것과 동일한 방식으로), 클릭 확인 토큰의 페이로드에 있는 제1 상호작용에 대한 제1 파라미터 세트에 대해 획득/생성된 데이터를 포함한다. 도 2를 참조하여 설명된 다른 액션은 동일한 엔터티에 의해 이 구현에서 여전히 수행될 수 있다.
다른 대안 구현에서, 운영 체제(118)(운영 체제(118) 또는 운영 체제(118)의 다른 컴포넌트(들)에 포함될 수 있는 애플리케이션 B(160)인지 여부)는 클릭 확인 토큰을 생성할 수 있다. 이 구현에서, 동작 204-212는 도 2를 참조하여 전술한 바와 같이 수행된다. 또한, 동작 214의 경우, 애플리케이션 A(104)는 운영 체제(118)에 클릭 확인 토큰을 요청하고, 이는 차례로 초기 증명 데이터 확인을 수행한다(동작 218 및 220을 참조하여 설명됨). 다시 말해서, 애플리케이션 B(160)가 초기 증명 데이터를 운영 체제(118)로 전송하게 하는 동작(216)은 이 구현에서 수행될 수 있지만 반드시 수행될 필요는 없다. 또한, 이 구현에서는, 운영 체제(118)는(동작(222)을 참조하여 설명된 것과 동일한 방식으로) 클릭 확인 토큰을 생성하고, 클릭 확인 토큰의 페이로드에서 제1 상호작용에 대한 제1 파라미터 세트에 대한 데이터를 포함한다. 다시 말해서, 토큰 생성기(114)는 이 구현에서 운영 체제(118) 내에 포함되고 클릭 확인 토큰을 생성할 때 운영 체제(118)에 의해 사용된다. 도 2를 참조하여 설명된 다른 동작은 동일한 엔터티에 의해 이 구현에서 여전히 수행될 수 있다.
일부 구현에서는, 운영 체제 대신 웹 브라우저는 도 2를 참조하여 설명된 프로세스에서 운영 체제(118)에 의해 수행되는 동작을 수행한다. 프로세스(200)의 동작에 대한 간략한 요약은 다음과 같이 설명되며, 여기서 운영 체제(118)의 동작은 이제 웹 브라우저에 의해 수행된다.
웹 브라우저를 사용하여 콘텐츠 페이지를 렌더링하면 프로세스가 시작된다. 이 경우 콘텐츠 페이지를 렌더링하는 동안 스크립트(예: 자바 스크립트)가 브라우저의 네이티브(native) 코드를 실행하여 초기 증명 데이터를 수집하도록 요청한다. 또는, 웹 브라우저의 네이티브 코드는 애플리케이션(104)에 의한 프롬프트없이 장치 디스플레이와의 이러한 상호작용(예: 터치스크린 터치, 디스플레이의 특정 부분의 마우스 클릭)을 검출하면 사용자 상호작용 처리(프로세싱)를 자동으로 시작한다. 브라우저의 네이티브 코드는 브라우저가 렌더링한 웹 페이지에서 실행되는 스크립트에 없는 권한을 가지며, 일반적으로 모든 스크립트가 브라우저의 네이티브 코드를 침투하는 것은 매우 어렵다.
그 다음 브라우저의 네이티브 코드는(단독으로 또는 운영 체제(118)와 협력하여) 제1 상호작용을 검출하고 제1 상호작용을 설명하는 제1 파라미터 세트를 획득하는 동작을 수행한다.
브라우저의 네이티브 코드는 운영 체제(118)의 장치 드라이버(110)와 상호작용하여 제1 상호작용을 검출하고, (동작 204 및 206에서와 같이) 제1 상호작용을 설명하는 제1 파라미터 세트를 획득한다. MAC 생성기(112)를 포함할 수 있는 브라우저의 네이티브 코드는 (동작 208을 참조하여 설명된 바와 같이) 제1 MAC 세트를 생성할 수 있다. 브라우저는 제1 MAC 세트를 생성하기 위해 MAC 생성기(112)에 의해 사용되는 암호화 키를 안전한 위치에 저장한다. 브라우저의 네이티브 코드는 제1 MAC 세트를 포함하는 초기 증명 데이터를 애플리케이션(104)으로 전송하고, 애플리케이션(104)은 초기 증명 데이터를 수신한다(동작 210 및 212에서와 같이).
브라우저에서 실행되는 스크립트는 애플리케이션 B(160)에 클릭 확인 토큰을 생성하도록 요청하고 이 요청은 초기 증명 데이터를 포함할 수 있다(동작 214를 참조하여 설명됨). 애플리케이션 B(160)는 웹 브라우저와 별개인 신뢰된 애플리케이션일 수 있거나, 대안적으로 애플리케이션 B(160)는 웹 브라우저의 일부일 수 있다. 어느 경우든, 애플리케이션 B(160)는 웹 브라우저가 초기 증명 데이터를 생성했는지 여부를 확인하도록 요청한다(운영 체제(118)가 동작 218 및 220에서 유사한 동작을 수행한 것과 실질적으로 동일한 방식으로). 이 확인을 바탕으로, 웹 브라우저의 일부이거나 그것과 분리될 수 있는 애플리케이션 B(160)는 클릭 확인 토큰을 생성할 수 있다(동작 222를 참조하여 설명된 것과 실질적으로 동일한 방식으로). 그 다음 애플리케이션 B는 생성된 클릭 확인 토큰을 애플리케이션 A(104)에 리턴(반환)한다. 일부 구현에서, 생성된 클릭 확인 토큰을 애플리케이션 A(104)에 리턴하는 대신, 애플리케이션 B(160)는 생성된 클릭 확인 토큰을 HTTP 헤더에 직접 삽입할 수 있다. 이렇게 하면 호출 스크립트(calling script)가 상기 생성된 클릭 확인 토큰을 볼 수 없으므로 추가 보안 문제(예: 스크립트 또는 기타 엔티티가 토큰을 손상시키려는 추가 시도)를 방지하고 개인 정보 보호에 도움이 된다(예: 클릭 인증 토큰에 포함된 데이터에 쉽게 액세스할 수 없음). 애플리케이션 A(104)는 생성된 클릭 확인 토큰을 콘텐츠 제공자(130)(또는 다른 콘텐츠 확인 시스템)에 제공하고, 그 다음 클릭 확인 토큰을 확인(검증)한다(동작 224를 참조하여 설명됨).
도 3은 전술한 동작을 수행하는데 사용될 수 있는 예시적인 컴퓨터 시스템(300)의 블록도이다. 시스템(300)은 프로세서(310), 메모리(320), 저장 장치(330) 및 입/출력 장치(340)를 포함한다. 컴포넌트(310, 320, 330 및 340) 각각은 예를 들어 시스템 버스(350)를 사용하여 상호 연결될 수 있다. 프로세서(310)는 시스템(300) 내에서 실행하기 위한 명령어를 처리할 수 있다. 일 구현에서, 프로세서(310)는 단일 스레드 프로세서이다. 다른 구현에서, 프로세서(310)는 다중 스레드 프로세서이다. 프로세서(310)는 메모리(320) 또는 저장 장치(330)에 저장된 명령어를 처리할 수 있다.
메모리(320)는 시스템(300) 내에 데이터를 저장한다. 일 구현에서, 메모리(320)는 컴퓨터 판독 가능 매체이다. 일 구현에서, 메모리(320)는 휘발성 메모리 유닛이다. 다른 구현에서, 메모리(320)는 비 휘발성 메모리 유닛이다.
저장 장치(330)는 시스템(300)에 대용량 저장 장치를 제공할 수 있다. 일 구현에서, 저장 장치(330)는 컴퓨터 판독 가능 매체이다. 다양한 구현에서, 저장 장치(330)는 예를 들어 하드 디스크 장치, 광 디스크 장치, 다수의 컴퓨팅 장치(예를 들어, 클라우드 저장 장치)에 의해 네트워크를 통해 공유되는 저장 장치, 또는 일부 다른 대용량 저장 장치를 포함할 수 있다.
입/출력 장치(340)는 시스템(300)에 대한 입/출력 동작을 제공한다. 일 구현에서, 입력/출력 장치(340)는 하나 이상의 네트워크 인터페이스 장치, 예를 들어 이더넷 카드, 직렬 통신 장치, 예를 들어 RS-232 포트, 및/또는 무선 인터페이스 장치, 예를 들어, 802.11 카드를 포함할 수 있다. 다른 구현에서, 입/출력 장치는 입력 데이터를 수신하고 출력 데이터를 다른 입/출력 장치, 예를 들어 키보드, 프린터 및 디스플레이 장치(360)로 전송하도록 구성된 드라이버(구동) 장치를 포함할 수 있다. 그러나 모바일 컴퓨팅 장치, 모바일 통신 장치, 셋톱 박스 텔레비전 클라이언트 장치 등과 같은 다른 구현도 사용할 수 있다.
도 3에는 예시적인 처리 시스템이 설명되어 있지만, 본 명세서에 기술된 요지 및 기능적 동작의 구현은 다른 유형의 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있으며, 본 명세서 및 그 구조적 등가물에 개시된 구조를 포함하여, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다.
미디어는 파일에 해당할 수 있지만 반드시 그럴 필요는 없다. 미디어는 다른 문서를 보관하는 파일의 일부, 해당 문서 전용 단일 파일 또는 여러 개의 조정된 파일에 저장될 수 있다.
본 명세서에서 설명된 요지 및 동작은 본 명세서 및 그 구조적 균등물에 개시된 구조 또는 이들 중 하나 이상의 조합을 포함하는 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로 구현될 수 있다. 본 명세서에서 설명된 요지는 하나 이상의 컴퓨터 프로그램, 예컨대 데이터 처리 장치에 의한 실행 또는 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 저장 매체상에 인코딩된 컴퓨터 프로그램 명령어의 하나 이상의 모듈로서 구현될 수 있다. 대안으로 또는 추가로, 프로그램 명령어는 데이터 처리 장치에 의한 실행을 위해 적합한 수신기 장치로 전송하기 위해 데이터를 인코딩하도록 생성되는 인위적으로 생성된 전파 신호(예: 기계에서 생성된 전기, 광학 또는 전자기 신호)에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 장치, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 장치, 또는 이들 중 하나 이상의 조합일 수 있거나 포함될 수 있다. 컴퓨터 저장 매체가 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령어의 소스 또는 목적지일 수 있다. 또한, 컴퓨터 저장 매체는 하나 이상의 개별 물리적 컴포넌트 또는 매체(예를 들어, 복수의 CD, 디스크 또는 다른 저장 장치)일 수 있거나 포함될 수 있다.
본 명세서에서 설명된 동작은 하나 이상의 컴퓨터 판독 가능 저장 장치에 저장된 데이터 또는 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작으로서 구현될 수 있다.
"데이터 처리 장치"라는 용어는 예를 들어, 프로그램 가능한 프로세서, 컴퓨터, 칩 상의 시스템, 또는 다수의 것들, 또는 이들의 조합들을 포함하는, 데이터를 프로세싱하기 위한 다양한 장치들, 디바이스들 및 기계들을 포함한다. 상기 장치는 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)을 포함할 수 있다. 상기 장치는, 하드웨어 이외에, 해당 컴퓨터 프로그램을 위한 실행 환경을 제작하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임(cross-platform runtime) 환경, 가상 기계, 또는 그들 중 하나 이상의 조합을 구성하는 코드를 또한 포함할 수 있다. 상기 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 기반구조들과 같은, 다양한 상이한 컴퓨팅 모델 기반구조들을 실현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 스크립트, 또는 코드로 또한 알려짐)은 컴파일된 또는 해석된 언어들, 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램을 또는 모듈, 컴포넌트, 서브루틴, 객체, 또는 컴퓨팅 환경에서의 사용을 위해 적합한 다른 유닛을 포함하는 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수도 있지만 그렇지 않을 수도 있다. 컴퓨터 프로그램은 다른 프로그램들 또는 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들), 해당 프로그램 전용의 단일 파일, 또는 다수의 조정된 파일들(예를 들어, 하나 이상의 모듈들, 서브 프로그램들, 또는 코드의 일부들을 저장하는 파일들)을 보유하는 파일의 일부에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 컴퓨터 또는 한 자리에 위치되거나 또는 복수의 자리들에 분산되고 그리고 통신 네트워크에 의해 상호연결된 복수의 컴퓨터들 상에도 실행되도록 배포될 수 있다.
본 명세서에 기술된 프로세스들 및 논리 흐름들은 입력 데이터를 동작시키고 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능한 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 특수 목적 논리 회로, 예를 들어, FPGA(field programmable gate array) or an ASIC(application specific integrated circuit)에 의해 또한 수행될 수 있으며, 장치들 또한 특수 목적 논리회로에 의해 구현될 수 있다.
컴퓨터 프로그램의 실행에 적절한 프로세서들은 예를 들어, 범용 및 특수 목적 마이크로프로세서들 둘 모두 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 엘리먼트들은 명령어들과 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들에 따라 액션들을 수행하기 위한 프로세서이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들(예를 들어, 자기, 광 자기 디스크들 또는 광학 디스크들)로부터 데이터를 수신하거나 저장 디바이스들로 데이터를 전송하기 위해 저장 디바이스들에 동작 가능하게 결합되거나 저장 디바이스들을 포함할 것이다. 그러나 컴퓨터에는 그러한 디바이스들이 필요 없다. 또한, 컴퓨터는 다른 디바이스, 예를 들어, 모바일 폰, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 디바이스(예를 들어, 범용 직렬 버스(USB) 플래시 드라이브)에 내장될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적절한 디바이스들은 모든 형태의 비-휘발성 메모리, 매체, 메모리 디바이스들을 포함하며, 상기 메모리 디바이스들은 반도체 메모리 디바이스들 예를 들어, EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들어, 내부 하드 디스크들 또는 분리성 디스크들; 광 자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들이다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 포함될 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에서 기술된 발명의 구현예들은 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스 예를 들어, 음극선관(CRT), 액정 디스플레이(LCD) 모니터, 및 사용자가 컴퓨터에 입력을 제공할 수 있는 터치스크린, 터치 패드, 키보드 및 포인팅 디바이스, 예를 들어, 마우스 또는 트랙볼 등을 갖는 컴퓨터상에서 구현될 수 있다. 다른 종류의 디바이스들이 사용자와의 상호작용을 제공하는데 사용될 수 있으며; 예를 들어, 사용자에게 제공되는 피드백은 시각적 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백을 포함할 수 있고; 그리고 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 추가로, 예를 들어, 웹브라우저로부터 수신된 요청들에 응답하여 사용자의 클라이언트 장치 상의 웹 브라우저에 웹 페이지들을 송신함으로써, 컴퓨터는 사용자에 의해 사용되는 디바이스로 문서들을 보내고 그로부터 문서들을 수신하여 사용자와 인터랙팅할 수 있다.
본 명세서에 기술된 발명은 컴퓨팅 시스템 내에서 구현될 수 있으며, 상기 컴퓨팅 시스템은 백 엔드 컴포넌트(예를 들어 데이터 서버)를 포함하거나 미들웨어 컴포넌트(예를 들어 애플리케이션 서버)를 포함하거나 프론트 엔드 컴포넌트(예를 들어 그래픽 사용자 인터페이스를 갖는 클라이언트 컴퓨터 또는 사용자가 본 명세서에 기술된 발명의 구현과 인터랙팅할 수 있는 웹 브라우저)를 포함하거나 또는 하나 이상의 그러한 백 엔드, 미들웨어, 프론트 엔드 컴포넌트들의 조합을 포함할 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신 예를 들어, 통신 네트워크, 의 임의의 형태 또는 매체에 의해 상호연결될 수 있다. 통신 네트워크들의 예시들은 근거리 통신망( "LAN") 및 광역 통신망("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어-투-피어 네트워크들(예를 들어, 애드 혹 피어-투-피어 네트워크들)을 포함할 수 있다.
컴퓨팅 시스템에는 사용자와 서버가 포함될 수 있다. 사용자와 서버는 일반적으로 서로 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호작용한다. 사용자와 서버의 관계는 각 컴퓨터에서 실행되고, 서로 사용자-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다. 일부 실시 예에서, 서버는(예를 들어, 클라이언트 장치와 상호작용하는 사용자에게 데이터를 표시하고 사용자로부터 사용자 입력을 수신하기 위해) 데이터(예를 들어, HTML 페이지)를 클라이언트 장치로 전송한다. 클라이언트 장치에서 생성된 데이터(예: 온라인 상호작용의 결과)는 서버의 클라이언트 장치로부터 수신될 수 있다.
본 명세서는 많은 특정 구현예 세부 사항들을 포함하지만, 이들이 발명들의 범위 또는 청구될 수 있는 범위의 제한들로 해석되어서는 안되며, 오히려 본 명세서에 기술된 시스템들 및 방법들의 특정한 구현예들에 특정적인 구성들의 설명들로 해석되어야한다. 별도 구현예들의 컨텍스트에서 본 명세서에 기술된 일정 구성들은 단일 구현으로 조합하여 또한 구현될 수 있다. 반대로, 단일 구현의 컨텍스트에서 기술된 다양한 구성들은 다수의 구현 구현예들에서 개별적으로 또는 임의의 적절한 하위조합으로 또한 구현될 수 있다. 또한, 구성들이 일정 조합들로 작용하는 것으로 기술되고 그렇게 초기에 청구될 수 있지만, 일부 경우들에서 청구된 조합으로부터의 하나 이상의 구성들은 조합으로부터 제거될 수 있고, 청구된 조합은 하위조합 또는 하위조합의 변형으로 유도될 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 도시되어 있지만, 이는 바람직한 동작을 달성하기 위해 이러한 동작이 도시된 순서 또는 순차적인 순서로 수행되거나 도시된 모든 동작이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서 멀티태스킹 및 병렬 처리가 유리할 수 있다. 또한, 상술한 구현 예에서 다양한 시스템 컴포넌트의 분리는 모든 구현 예에서 그러한 분리를 필요로 하는 것으로 이해되어서는 안되며, 서술된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품 내에 함께 통합되거나 다중 소프트웨어 제품들로 패키징될 수 있다는 것을 이해해야 한다.
따라서, 본 발명의 특정 구현 예가 설명되었다. 다른 구현 예들은 다음의 청구항들의 범위 내에 있다. 경우에 따라 청구 범위에 나열된 동작을 다른 순서로 수행할 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 또한, 첨부된 도면에 도시된 프로세스는 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요로 하지는 않는다. 특정 구현 예에서, 멀티태스킹 또는 병렬 처리가 유리할 수 있다.

Claims (20)

  1. 컴퓨터로 구현되는 방법으로서,
    클라이언트 장치에서 실행하는 제1 애플리케이션으로부터, 제1 애플리케이션에 디스플레이하기 위해 제공된 특정 콘텐츠 아이템과의 제1 상호작용이 클라이언트 장치의 사용자의 상호작용인지 여부를 확인하는 데 사용되는 클릭 확인 토큰을 생성하도록 하는 요청을 수신하는 단계 -상기 요청은 운영 체제로부터 획득된 것으로서 제1 애플리케이션에 의해 식별되는 초기 증명(attestation) 데이터를 포함하며, 초기 증명 데이터는,
    제1 상호작용을 설명하는 것으로 제1 애플리케이션에 의해 식별되는 제1 파라미터 세트에 대한 데이터; 그리고
    제1 파라미터 세트에 대한 데이터를 사용하여 생성되는 것으로 제1 애플리케이션에 의해 식별되는 제1 메시지 인증 코드(MAC) 세트를 포함함-;
    운영 체제로부터, 제1 MAC 세트가 제2 MAC 세트와 동일한지 여부를 지정하는 표시를 획득하는 단계 -제2 MAC 세트는 상기 요청에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 운영 체제에 의해 생성됨-;
    제1 MAC 세트가 제2 MAC 세트와 동일하다고 지정하는 표시를 획득하는 것에 응답하여, 제1 상호작용이 클라이언트 장치의 사용자에 의한 상호작용인지를 확인하는 데 사용되는 클릭 확인 토큰을 생성하는 단계 -상기 클릭 확인 토큰의 페이로드는 (1) 제1 상호작용을 설명하는 제1 파라미터 세트에 대한 데이터 및 (2) 특정 콘텐츠 아이템 데이터를 식별하는 데이터를 포함함-;
    상기 생성된 클릭 확인 토큰을 제1 애플리케이션에 제공하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서, 상기 방법은,
    운영 체제에 의해 그리고 클라이언트 장치상의 제1 애플리케이션의 실행 중에, 클라이언트 장치의 디스플레이와의 사용자에 의한 제1 상호작용을 검출하는 단계;
    운영 체제에 의해 그리고 사용자에 의한 제1 상호작용에 대해, 제1 상호작용을 설명하는 제1 파라미터 세트에 대한 데이터를 획득하는 단계;
    운영 체제에 의해, 제1 파라미터 세트에 대한 데이터를 사용하여 제1 MAC 세트를 생성하는 단계;
    운영 체제에 의해, (1) 운영 체제에 의해 획득된 제1 파라미터 세트에 대한 데이터 및 (2) 운영 체제에 의해 생성된 제1 MAC 세트를 포함하는 데이터를 제1 애플리케이션에 제공하는 단계를 더 포함하며,
    상기 초기 증명 데이터에 포함된 데이터는 운영 체제에 의해 제1 애플리케이션에 제공되는 데이터를 나타내는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  3. 제2항에 있어서,
    제1 파라미터 세트에 대한 데이터를 사용하여 제1 MAC 세트를 생성하는 단계는,
    제1 파라미터 세트에 대한 데이터를 사용하여, 클라이언트 장치의 디스플레이와의 물리적 사용자 접촉에 대응하는 제1 사용자 액션에 대한 제1 MAC 그리고 디스플레이로부터의 물리적 사용자 접촉의 해제에 대응하는 제2 사용자 액션에 대한 제2 MAC을 생성하는 단계 -요청에 포함된 제1 MAC 세트는 제1 MAC 및 제2 MAC을 포함하고; 제1 파라미터 세트에 대한 데이터를 사용하여 운영 체제에 의해 생성된 제2 MAC 세트는 (1) 제1 사용자 액션에 대응하는 것으로 식별되는 요청에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 생성된 제3 MAC, 그리고 (2) 제2 사용자 액션에 대응하는 것으로 식별되는 요청에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 생성된 제4 MAC을 포함함-; 그리고
    운영 체제로부터, 운영 체제가 제1 MAC 세트가 제2 MAC 세트와 동일하다고 결정하는 경우에만 제1 MAC 세트가 제2 MAC과 동일하다는 것을 지정하는 표시를 획득하는 단계를 포함하며, 제1 MAC 세트가 제2 MAC과 동일하다는 것을 지정하는 표시를 획득하는 단계는 (1) 제1 MAC이 제3 MAC과 동일하고, (2) 제2 MAC이 제4 MAC과 동일하다고 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  4. 제2항에 있어서, 상기 제1 파라미터 세트는,
    사용자 액션;
    사용자 액션에 대응하는 디스플레이의 위치;
    사용자 액션을 수행하는 데 사용되는 도구(tool);
    사용자 액션이 수행된 시간을 식별하는 타임스탬프; 그리고
    사용자 액션이 수신된 소스, 중에서 하나 이상을 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  5. 제2항에 있어서, 상기 제1 MAC 세트 및 상기 제2 MAC 세트 각각은 상기 운영 체제에 의해 저장된 해시 메시지 인증 코드 알고리즘 및 비밀 암호 키를 사용하여 생성되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  6. 제2항에 있어서,
    클릭 확인 토큰을 생성하는 단계는 제1 애플리케이션 및 운영 체제와 분리된 제2 애플리케이션에 의해 클릭 확인 토큰을 생성하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  7. 제6항에 있어서,
    제1 애플리케이션은 사용자 애플리케이션 또는 네이티브 애플리케이션이며,
    제2 애플리케이션은 클라이언트 장치의 보안 환경에서 작동하는 신뢰된(trusted) 애플리케이션인 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  8. 제2항에 있어서, 상기 방법은,
    제1 애플리케이션에 의해, 콘텐츠 확인 시스템에 상기 생성된 클릭 확인 토큰을 전송하는 단계;
    콘텐츠 확인 시스템으로부터, 제1 상호작용이 사용자 상호작용임을 나타내는 메시지를 수신하는 단계를 더 포함하며,
    콘텐츠 확인 시스템으로부터 수신된 메시지는, 콘텐츠 확인 시스템이 클릭 확인 토큰에 기초하여 제1 상호작용이 사용자 상호작용임을 확인하는 경우에만 생성되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  9. 시스템으로서,
    명령어를 저장하는 하나 이상의 메모리 장치; 그리고
    하나 이상의 메모리 장치와 상호작용하도록 구성된 하나 이상의 데이터 처리 장치를 포함하며, 하나 이상의 데이터 처리 장치는 상기 명령어 실행시 동작들을 수행하며, 상기 동작들은,
    클라이언트 장치에서 실행하는 제1 애플리케이션으로부터, 제1 애플리케이션에 디스플레이하기 위해 제공된 특정 콘텐츠 아이템과의 제1 상호작용이 클라이언트 장치의 사용자의 상호작용인지 여부를 확인하는 데 사용되는 클릭 확인 토큰을 생성하도록 하는 요청을 수신하는 동작 -상기 요청은 운영 체제로부터 획득된 것으로서 제1 애플리케이션에 의해 식별되는 초기 증명(attestation) 데이터를 포함하며, 초기 증명 데이터는,
    제1 상호작용을 설명하는 것으로 제1 애플리케이션에 의해 식별되는 제1 파라미터 세트에 대한 데이터; 그리고
    제1 파라미터 세트에 대한 데이터를 사용하여 생성되는 것으로 제1 애플리케이션에 의해 식별되는 제1 메시지 인증 코드(MAC) 세트를 포함함-;
    운영 체제로부터, 제1 MAC 세트가 제2 MAC 세트와 동일한지 여부를 지정하는 표시를 획득하는 동작 -제2 MAC 세트는 상기 요청에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 운영 체제에 의해 생성됨-;
    제1 MAC 세트가 제2 MAC 세트와 동일하다고 지정하는 표시를 획득하는 것에 응답하여, 제1 상호작용이 클라이언트 장치의 사용자에 의한 상호작용인지를 확인하는 데 사용되는 클릭 확인 토큰을 생성하는 동작 -상기 클릭 확인 토큰의 페이로드는 (1) 제1 상호작용을 설명하는 제1 파라미터 세트에 대한 데이터 및 (2) 특정 콘텐츠 아이템 데이터를 식별하는 데이터를 포함함-;
    상기 생성된 클릭 확인 토큰을 제1 애플리케이션에 제공하는 동작을 포함하는 것을 특징으로 하는 시스템.
  10. 제9항에 있어서, 상기 하나 이상의 데이터 처리 장치는,
    운영 체제에 의해 그리고 클라이언트 장치상의 제1 애플리케이션의 실행 중에, 클라이언트 장치의 디스플레이와의 사용자에 의한 제1 상호작용을 검출하는 동작;
    운영 체제에 의해 그리고 사용자에 의한 제1 상호작용에 대해, 제1 상호작용을 설명하는 제1 파라미터 세트에 대한 데이터를 획득하는 동작;
    운영 체제에 의해, 제1 파라미터 세트에 대한 데이터를 사용하여 제1 MAC 세트를 생성하는 동작;
    운영 체제에 의해, (1) 운영 체제에 의해 획득된 제1 파라미터 세트에 대한 데이터 및 (2) 운영 체제에 의해 생성된 제1 MAC 세트를 포함하는 데이터를 제1 애플리케이션에 제공하는 동작을 더 수행하도록 구성되며,
    상기 초기 증명 데이터에 포함된 데이터는 운영 체제에 의해 제1 애플리케이션에 제공되는 데이터를 나타내는 것을 특징으로 하는 시스템.
  11. 제10항에 있어서,
    제1 파라미터 세트에 대한 데이터를 사용하여 제1 MAC 세트를 생성하는 동작은,
    제1 파라미터 세트에 대한 데이터를 사용하여, 클라이언트 장치의 디스플레이와의 물리적 사용자 접촉에 대응하는 제1 사용자 액션에 대한 제1 MAC 그리고 디스플레이로부터의 물리적 사용자 접촉의 해제에 대응하는 제2 사용자 액션에 대한 제2 MAC을 생성하는 동작 -요청에 포함된 제1 MAC 세트는 제1 MAC 및 제2 MAC을 포함하고; 제1 파라미터 세트에 대한 데이터를 사용하여 운영 체제에 의해 생성된 제2 MAC 세트는 (1) 제1 사용자 액션에 대응하는 것으로 식별되는 요청에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 생성된 제3 MAC, 그리고 (2) 제2 사용자 액션에 대응하는 것으로 식별되는 요청에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 생성된 제4 MAC을 포함함-; 그리고
    운영 체제로부터, 운영 체제가 제1 MAC 세트가 제2 MAC 세트와 동일하다고 결정하는 경우에만 제1 MAC 세트가 제2 MAC과 동일하다는 것을 지정하는 표시를 획득하는 동작를 포함하며, 제1 MAC 세트가 제2 MAC과 동일하다는 것을 지정하는 표시를 획득하는 동작은 (1) 제1 MAC이 제3 MAC과 동일하고, (2) 제2 MAC이 제4 MAC과 동일하다고 결정하는 동작를 포함하는 것을 특징으로 하는 시스템.
  12. 제9항에 있어서, 상기 제1 파라미터 세트는,
    사용자 액션;
    사용자 액션에 대응하는 디스플레이의 위치;
    사용자 액션을 수행하는 데 사용되는 도구(tool);
    사용자 액션이 수행된 시간을 식별하는 타임스탬프; 그리고
    사용자 액션이 수신된 소스, 중에서 하나 이상을 포함하는 것을 특징으로 하는 시스템.
  13. 제9항에 있어서,
    상기 제1 MAC 세트 및 상기 제2 MAC 세트 각각은 상기 운영 체제에 의해 저장된 해시 메시지 인증 코드 알고리즘 및 비밀 암호 키를 사용하여 생성되는 것을 특징으로 하는 시스템.
  14. 제9항에 있어서,
    클릭 확인 토큰을 생성하는 동작은 제1 애플리케이션 및 운영 체제와 분리된 제2 애플리케이션에 의해 클릭 확인 토큰을 생성하는 동작을 포함하는 것을 특징으로 하는 시스템.
  15. 제9항에 있어서, 상기 하나 이상의 데이터 처리 장치는,
    제1 애플리케이션에 의해, 콘텐츠 확인 시스템에 상기 생성된 클릭 확인 토큰을 전송하는 동작;
    콘텐츠 확인 시스템으로부터, 제1 상호작용이 사용자 상호작용임을 나타내는 메시지를 수신하는 동작을 더 수행하도록 구성되며, 콘텐츠 확인 시스템으로부터 수신된 메시지는, 콘텐츠 확인 시스템이 클릭 확인 토큰에 기초하여 제1 상호작용이 사용자 상호작용임을 확인하는 경우에만 생성되는 것을 특징으로 하는 시스템.
  16. 하나 이상의 데이터 처리 장치에 의해 실행될 때 하나 이상의 데이터 처리 장치로 하여금 동작들을 수행하게 하는 명령어를 저장하는 비-일시적 컴퓨터 판독 가능 매체로서, 상기 동작들은,
    클라이언트 장치에서 실행하는 제1 애플리케이션으로부터, 제1 애플리케이션에 디스플레이하기 위해 제공된 특정 콘텐츠 아이템과의 제1 상호작용이 클라이언트 장치의 사용자의 상호작용인지 여부를 확인하는 데 사용되는 클릭 확인 토큰을 생성하도록 하는 요청을 수신하는 동작 -상기 요청은 운영 체제로부터 획득된 것으로서 제1 애플리케이션에 의해 식별되는 초기 증명(attestation) 데이터를 포함하며, 초기 증명 데이터는,
    제1 상호작용을 설명하는 것으로 제1 애플리케이션에 의해 식별되는 제1 파라미터 세트에 대한 데이터; 그리고
    제1 파라미터 세트에 대한 데이터를 사용하여 생성되는 것으로 제1 애플리케이션에 의해 식별되는 제1 메시지 인증 코드(MAC) 세트를 포함함-;
    운영 체제로부터, 제1 MAC 세트가 제2 MAC 세트와 동일한지 여부를 지정하는 표시를 획득하는 동작 -제2 MAC 세트는 상기 요청에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 운영 체제에 의해 생성됨-;
    제1 MAC 세트가 제2 MAC 세트와 동일하다고 지정하는 표시를 획득하는 것에 응답하여, 제1 상호작용이 클라이언트 장치의 사용자에 의한 상호작용인지를 확인하는 데 사용되는 클릭 확인 토큰을 생성하는 동작 -상기 클릭 확인 토큰의 페이로드는 (1) 제1 상호작용을 설명하는 제1 파라미터 세트에 대한 데이터 및 (2) 특정 콘텐츠 아이템 데이터를 식별하는 데이터를 포함함-;
    상기 생성된 클릭 확인 토큰을 제1 애플리케이션에 제공하는 동작을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
  17. 제16항에 있어서, 상기 명령어는 상기 하나 이상의 데이터 처리 장치로하여금,
    운영 체제에 의해 그리고 클라이언트 장치상의 제1 애플리케이션의 실행 중에, 클라이언트 장치의 디스플레이와의 사용자에 의한 제1 상호작용을 검출하는 동작;
    운영 체제에 의해 그리고 사용자에 의한 제1 상호작용에 대해, 제1 상호작용을 설명하는 제1 파라미터 세트에 대한 데이터를 획득하는 동작;
    운영 체제에 의해, 제1 파라미터 세트에 대한 데이터를 사용하여 제1 MAC 세트를 생성하는 동작;
    운영 체제에 의해, (1) 운영 체제에 의해 획득된 제1 파라미터 세트에 대한 데이터 및 (2) 운영 체제에 의해 생성된 제1 MAC 세트를 포함하는 데이터를 제1 애플리케이션에 제공하는 동작을 더 수행하게 하며,
    상기 초기 증명 데이터에 포함된 데이터는 운영 체제에 의해 제1 애플리케이션에 제공되는 데이터를 나타내는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
  18. 제17항에 있어서,
    제1 파라미터 세트에 대한 데이터를 사용하여 제1 MAC 세트를 생성하는 동작은,
    제1 파라미터 세트에 대한 데이터를 사용하여, 클라이언트 장치의 디스플레이와의 물리적 사용자 접촉에 대응하는 제1 사용자 액션에 대한 제1 MAC 그리고 디스플레이로부터의 물리적 사용자 접촉의 해제에 대응하는 제2 사용자 액션에 대한 제2 MAC을 생성하는 동작 -요청에 포함된 제1 MAC 세트는 제1 MAC 및 제2 MAC을 포함하고; 제1 파라미터 세트에 대한 데이터를 사용하여 운영 체제에 의해 생성된 제2 MAC 세트는 (1) 제1 사용자 액션에 대응하는 것으로 식별되는 요청에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 생성된 제3 MAC, 그리고 (2) 제2 사용자 액션에 대응하는 것으로 식별되는 요청에 포함된 제1 파라미터 세트에 대한 데이터를 사용하여 생성된 제4 MAC을 포함함-; 그리고
    운영 체제로부터, 운영 체제가 제1 MAC 세트가 제2 MAC 세트와 동일하다고 결정하는 경우에만 제1 MAC 세트가 제2 MAC과 동일하다는 것을 지정하는 표시를 획득하는 동작를 포함하며, 제1 MAC 세트가 제2 MAC과 동일하다는 것을 지정하는 표시를 획득하는 동작은 (1) 제1 MAC이 제3 MAC과 동일하고, (2) 제2 MAC이 제4 MAC과 동일하다고 결정하는 동작를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
  19. 제16항에 있어서,
    상기 제1 MAC 세트 및 상기 제2 MAC 세트 각각은 상기 운영 체제에 의해 저장된 해시 메시지 인증 코드 알고리즘 및 비밀 암호 키를 사용하여 생성되는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
  20. 제17항에 있어서, 상기 명령어는 상기 하나 이상의 데이터 처리 장치로 하여금,
    제1 애플리케이션에 의해, 콘텐츠 확인 시스템에 상기 생성된 클릭 확인 토큰을 전송하는 동작;
    콘텐츠 확인 시스템으로부터, 제1 상호작용이 사용자 상호작용임을 나타내는 메시지를 수신하는 동작을 더 수행하게 하며, 콘텐츠 확인 시스템으로부터 수신된 메시지는, 콘텐츠 확인 시스템이 클릭 확인 토큰에 기초하여 제1 상호작용이 사용자 상호작용임을 확인하는 경우에만 생성되는 것을 특징으로 하는 비-일시적 컴퓨터 판독 가능 매체.
KR1020207032598A 2020-02-06 2020-02-06 콘텐츠 플랫폼에서 사용자 상호작용 확인 KR102429406B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/016998 WO2021158227A1 (en) 2020-02-06 2020-02-06 Verifying user interactions on a content platform

Publications (2)

Publication Number Publication Date
KR20210102057A KR20210102057A (ko) 2021-08-19
KR102429406B1 true KR102429406B1 (ko) 2022-08-05

Family

ID=69771149

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207032598A KR102429406B1 (ko) 2020-02-06 2020-02-06 콘텐츠 플랫폼에서 사용자 상호작용 확인

Country Status (9)

Country Link
US (1) US12028460B2 (ko)
EP (1) EP3887981B1 (ko)
JP (1) JP7184927B2 (ko)
KR (1) KR102429406B1 (ko)
CN (1) CN113498515B (ko)
AU (1) AU2020260457B2 (ko)
BR (1) BR112020022548A2 (ko)
CA (1) CA3100322C (ko)
WO (1) WO2021158227A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11777992B1 (en) 2020-04-08 2023-10-03 Wells Fargo Bank, N.A. Security model utilizing multi-channel data
US12015630B1 (en) 2020-04-08 2024-06-18 Wells Fargo Bank, N.A. Security model utilizing multi-channel data with vulnerability remediation circuitry
US11706241B1 (en) 2020-04-08 2023-07-18 Wells Fargo Bank, N.A. Security model utilizing multi-channel data
US11720686B1 (en) * 2020-04-08 2023-08-08 Wells Fargo Bank, N.A. Security model utilizing multi-channel data with risk-entity facing cybersecurity alert engine and portal
IL285887B2 (en) * 2021-08-26 2024-07-01 Google Llc Secure attribution using anonymous signals
US11722900B2 (en) * 2021-08-31 2023-08-08 Visa International Service Association Mobile device data security using shared security values
CN116522312A (zh) * 2022-01-21 2023-08-01 华为技术有限公司 人机识别的方法和装置
US11695772B1 (en) * 2022-05-03 2023-07-04 Capital One Services, Llc System and method for enabling multiple auxiliary use of an access token of a user by another entity to facilitate an action of the user

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090292924A1 (en) * 2008-05-23 2009-11-26 Johnson Erik J Mechanism for detecting human presence using authenticated input activity

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6611607B1 (en) 1993-11-18 2003-08-26 Digimarc Corporation Integrating digital watermarks in multimedia content
JP3103061B2 (ja) 1997-09-12 2000-10-23 インターナショナル・ビジネス・マシーンズ・コーポレ−ション トークン作成装置および該トークンを用いたデータ制御システム
EP1378092B1 (en) 2001-02-22 2008-06-25 Bea Systems, Inc. System and method for message encryption and signing in a transaction processingsystem
CA2465321C (en) 2001-11-06 2010-05-11 International Business Machines Corporation Method and system for the supply of data, transactions and electronic voting
US20050278235A1 (en) 2004-06-10 2005-12-15 International Business Machines Corporation Method and system for a contract option
US20050278253A1 (en) * 2004-06-15 2005-12-15 Microsoft Corporation Verifying human interaction to a computer entity by way of a trusted component on a computing device or the like
CN101106455B (zh) 2007-08-20 2010-10-13 北京飞天诚信科技有限公司 身份认证的方法和智能密钥装置
US20100312653A1 (en) 2009-06-05 2010-12-09 Microsoft Corporation Verifiable advertisement presentation
EP2448170A4 (en) * 2009-06-23 2015-06-24 Panasonic Ip Man Co Ltd CLEF-CRYPTOGRAM DISTRIBUTION SYSTEM
US20110123062A1 (en) 2009-11-24 2011-05-26 Mordehay Hilu Device, software application, system and method for proof of display
US20110161145A1 (en) 2009-12-26 2011-06-30 Mahajan Ayeshwarya B Method and device for securely displaying digital content on a computing device
JP4988880B2 (ja) 2010-02-04 2012-08-01 シャープ株式会社 定着装置と、これを用いる画像形成装置と定着装置の制御方法
WO2014138430A2 (en) 2013-03-06 2014-09-12 Marvell World Trade Ltd. Secure simple enrollment
US20140282696A1 (en) * 2013-03-15 2014-09-18 Qualcomm Incorporated Advertising download verification
US20150150109A1 (en) * 2013-11-27 2015-05-28 Adobe Systems Incorporated Authenticated access to a protected resource using an encoded and signed token
US9860241B2 (en) * 2014-04-15 2018-01-02 Level 3 Communications, Llc Device registration, authentication, and authorization system and method
US10362007B2 (en) 2015-11-12 2019-07-23 Facebook, Inc. Systems and methods for user account recovery
EP3398049A4 (en) 2015-12-30 2019-08-07 Verimatrix, Inc. SYSTEMS AND METHODS FOR PRIVACY PRIVACY IN THE DIVISION OF DIGITAL CONTENTS WITH PRIVATE TOKENS
US11128478B2 (en) * 2017-03-01 2021-09-21 Apple Inc. System access using a mobile device
US11611808B2 (en) 2017-05-09 2023-03-21 Verimatrix, Inc. Systems and methods of preparing multiple video streams for assembly with digital watermarking
CN107342998A (zh) * 2017-07-04 2017-11-10 四川云物益邦科技有限公司 通过移动存储设备实现的个人信息提取方法
US10932129B2 (en) * 2017-07-24 2021-02-23 Cisco Technology, Inc. Network access control
CN108769041A (zh) * 2018-06-06 2018-11-06 深圳壹账通智能科技有限公司 登录方法、系统、计算机设备和存储介质
BR112020022501A2 (pt) 2020-02-06 2022-09-06 Google Llc Monitor de verificação de conteúdo de terceiras partes em um dispositivo de cliente

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090292924A1 (en) * 2008-05-23 2009-11-26 Johnson Erik J Mechanism for detecting human presence using authenticated input activity

Also Published As

Publication number Publication date
AU2020260457B2 (en) 2021-10-21
EP3887981A1 (en) 2021-10-06
US12028460B2 (en) 2024-07-02
JP7184927B2 (ja) 2022-12-06
KR20210102057A (ko) 2021-08-19
CN113498515A (zh) 2021-10-12
EP3887981B1 (en) 2022-04-06
JP2022522316A (ja) 2022-04-18
US20220123944A1 (en) 2022-04-21
BR112020022548A2 (pt) 2022-10-11
WO2021158227A1 (en) 2021-08-12
CA3100322A1 (en) 2021-08-06
CN113498515B (zh) 2022-10-14
CA3100322C (en) 2023-07-18
AU2020260457A1 (en) 2021-08-26

Similar Documents

Publication Publication Date Title
KR102429406B1 (ko) 콘텐츠 플랫폼에서 사용자 상호작용 확인
CN113015974B (zh) 针对隐私保护的可验证同意
US11949688B2 (en) Securing browser cookies
AU2020260456B2 (en) Verifying display of third party content at a client device
JP7189372B2 (ja) デバイスおよびアプリケーションの完全性の検証
KR102470639B1 (ko) 신뢰되는 코드 증명 토큰으로 데이터 무결성 향상
JP2022544461A (ja) クライアントデバイスからの通信の完全性の保護
TWI546698B (zh) 基於伺服器的登入系統、登入驗證伺服器及其驗證方法
KR102672181B1 (ko) 프라이버시 보호 애플리케이션 및 장치 오류 검출
US20240232322A1 (en) Verifying device and application integrity
KR20220000899A (ko) 웹뷰 내에서 콘텐츠 및 상호작용들을 확인

Legal Events

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