KR102507826B1 - 부정 조작 방지된(Tamper-proof) 상호 작용 데이터 - Google Patents

부정 조작 방지된(Tamper-proof) 상호 작용 데이터 Download PDF

Info

Publication number
KR102507826B1
KR102507826B1 KR1020217022220A KR20217022220A KR102507826B1 KR 102507826 B1 KR102507826 B1 KR 102507826B1 KR 1020217022220 A KR1020217022220 A KR 1020217022220A KR 20217022220 A KR20217022220 A KR 20217022220A KR 102507826 B1 KR102507826 B1 KR 102507826B1
Authority
KR
South Korea
Prior art keywords
interaction
rendered element
rendered
client device
declared
Prior art date
Application number
KR1020217022220A
Other languages
English (en)
Other versions
KR20210144659A (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 KR20210144659A publication Critical patent/KR20210144659A/ko
Application granted granted Critical
Publication of KR102507826B1 publication Critical patent/KR102507826B1/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud
    • H04W12/128Anti-malware arrangements, e.g. protection against SMS fraud or mobile malware
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • 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/2119Authenticating web pages, e.g. with suspicious links

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Medical Informatics (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

방법, 시스템 및 디바이스는 허위 렌더링된 엘리먼트와의 상호 작용을 검증하기 위해 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램을 포함한다. 일 양태에서, 방법은 클라이언트 디바이스의 활성 창에 정의된 렌더링된 엘리먼트의 렌더링 통지 및 선언을 수신하는 단계와; 클라이언트 디바이스에서 렌더링된 엘리먼트와의 상호 작용을 검출하는 단계와; 상호 작용이 활성 창 내에서 렌더링된 엘리먼트의 선언된 위치에서 발생되었는지 여부를 결정하는 단계와; 그리고 상호 작용을 처리하는 단계를 포함하고, 상기 처리하는 단계는: 상호 작용이발생되었다는 결정에 응답하여: 클라이언트 디바이스의 활성 창의 스크린 샷을 캡처하는 단계; 렌더링된 엘리먼트의 선언된 외양을 이용하여 스크린 샷 내의 렌더링된 엘리먼트의 시각적 외양을 검증하는 단계; 및 상호 작용 증명을 생성하여 상호 작용을 검증하는 단계를 포함하고, 그리고 상호 작용이 발생되지 않았다는 결정에 응답하여, 상호 작용 증명 생성을 자제하는 단계를 포함한다.

Description

부정 조작 방지된(Tamper-proof) 상호 작용 데이터
프로그래밍 방식의 클릭은 사용자의 온라인 경험을 현저히 저하시키고 정확한 정보를 배포하는데 사용될 수 있는 컴퓨팅 리소스를 낭비하는 허위 정보의 광범위한 배포로 이어질 수 있다.
본 명세서는 데이터 처리와 관련되고 사용자 프라이버시를 보호하면서 컨텐츠와의 인간 상호 작용을 검증하기 위해 위조 불가능한 증명 토큰을 생성하는 기술을 설명한다.
일반적으로, 본 명세서에 기술된 주제의 하나의 혁신적인 양태는 클라이언트 디바이스의 활성 창에 정의된 렌더링된 엘리먼트의 렌더링 통지를 수신하는 단계와, 클라이언트 디바이스의 활성 창에 정의된 렌더링된 엘리먼트의 선언을 수신하는 단계와, 클라이언트 디바이스에서 상기 렌더링된 엘리먼트와의 상호 작용을 검출하는 단계와, 수신된 선언에 기초하여, 상호 작용이 활성 창 내에서 상기 렌더링된 엘리먼트의 선언된 위치에서 발생했는지 여부를 결정하는 단계와, 그리고 상호 작용이 선언된 위치에서 발생했는지 여부의 결정에 기초하여 상호 작용을 처리하는 단계의 액션들을 포함하는 방법으로 구현될 수 있다. 상호 작용을 처리하는 단계는 렌더링된 엘리먼트의 선언 위치에서 상호 작용이 발생했는지 확인하는 응답하여: 클라이언트 디바이스상의 활성 창의 스크린 샷을 캡처하는 단계와, 렌더링된 엘리먼트의 선언된 외양을 이용하여 스크린 샷내의 렌더링된 엘리먼트의 시각적 외양을 검증하는 단계와, 렌더링된 엘리먼트와의 상호 작용에 대한 상호 작용 증명을 생성하여 상호 작용을 검증하는 단계와, 상호 작용이 렌더링된 엘리먼트의 선언된 위치에서 발생하지 않았다는 결정에 응답하여, 렌더링된 엘리먼트와의 상호 작용에 대한 상호 작용 증명 생성을 자제하는 단계를 포함한다.
이 양태의 다른 실시예는 컴퓨터 저장 디바이스에 인코딩된 방법의 액션들을 수행하도록 구성된 대응하는 시스템, 장치 및 컴퓨터 프로그램을 포함한다.
이들 및 다른 실시예는 각각 다음의 특징들 중 하나 이상을 선택적으로 포함할 수 있다. 일부 구현에서, 렌더링 통지는 i) 활성 창내의 렌더링된 엘리먼트의 위치, ii) 렌더링된 엘리먼트의 안정적인 ID 및 URI, 및 iii) 렌더링된 엘리먼트를 렌더링한 사이트 또는 도메인 중 하나 이상을 포함한다.
일부 구현에서, 렌더링된 엘리먼트의 선언을 수신하는 단계는 렌더링된 엘리먼트의 검증된 외양을 수신하는 단계를 포함한다. 검증된 외양은 고유한 안정된 ID 및/또는 안정된 URL 및 검증된 모양을 포함할 수 있다.
일부 구현에서, 렌더링된 엘리먼트의 선언된 외양으로 스크린 샷 내의 렌더링된 엘리먼트의 시각적 외양을 검증하는 단계는 이미지 매칭 알고리즘을 이용하는 단계를 포함한다.
일부 구현에서, 상호 작용을 검출하는 단계는 활성 창 내에서 사용자 클릭의 XY 좌표를 지정하는 선택 신호를 수신하는 단계를 포함한다.
일부 구현에서, 방법은 렌더링된 엘리먼트의 복수의 인스턴스화와 복수의 상호 작용에 대한 상호 작용 증명을 집계하는 단계를 더 포함한다. 상호 작용 증명은 i) 선언된 외양의 안정적인 ID 및/또는 URI, ii) 상호 작용의 타임 스탬프, iii) 디바이스 무결성 토큰, iv) 클라이언트 디바이스에 의한 디지털 서명, v) 상호 작용의 XY 좌표, 및 vi) 클라이언트 디바이스 공개키 중 하나 이상을 포함할 수 있다.
일부 구현에서, 방법은 사용자 의도를 포함하는 상호 작용 증명에 응답하여, 사용자 의도에 기초하여 상호 작용의 보고를 수정하는 단계를 더 포함한다. 방법은 상호 작용이 사용자 의도와 상이하다는 결정에 응답하여, 렌더링된 엘리먼트가 허위 렌더링된 엘리먼트임을 결정하고 허위 상호 작용 응답을 트리거하는 단계를 더 포함할 수 있다. 방법은 허위 상호 작용 응답을 트리거하는 것에 응답하여, 허위 렌더링된 엘리먼트의 랜딩 페이지로의 클라이언트 디바이스의 경로를 인터셉트하는 단계를 더 포함할 수 있다.
일부 구현에서, 방법은 상호 작용이 렌더링된 엘리먼트의 선언된 위치에서 발생되지 않았다는 결정에 응답하여, 허위 상호 작용 응답을 트리거하는 단계를 더 포함한다.
본 명세서에 기술된 주제의 특정 실시예는 다음 이점들 중 하나 이상을 실현하도록 구현될 수 있다. 실제 사용자가 원격 클라이언트 디바이스에서 예를 들어 버튼, 엄지손가락 업/다운 등과 같은 렌더링된 엘리먼트와 상호 작용을 했는지 검증(확인)하는 것은 뉴스 기사와 같은 디지털 컴포넌트에 대한 순위 메커니즘의 신뢰성을 유지하고 악의적인 행위자가 순위가 지정된 디지털 컴포넌트 세트를 조작하는 것을 방지할 수 있다. 제3자 검증을 사용하여 원격 클라이언트 디바이스에서 렌더링된 컴포넌트의 외관(모양)을 검증함으로써, 시스템은 실제 사용자가 보조 액션을 시작(launch)하거나 상호 작용을 완전히 가로채려는 숨겨진 또는 조작된 엘리먼트가 아니라 의도한 렌더링된 엘리먼트(예를 들어, 버튼)와 상호 작용하고 있음을 보장할 수 있다.
본 주제는 사용자 프라이버시를 보호하는 검증된 증명 토큰을 사용하여 온라인 시스템을 통해 배포된 가짜 렌더링 요소들을 신속하게 식별하는데 활용될 수 있다. 검증된 증명 토큰을 사용하여 시스템은 검출된 상호 작용이 실제 사용자에 의해 원격 클라이언트 장치에서 수행되었고 검출된 상호 작용 시점에 사용자에게 실제로 컨텐츠가 제공되었음을 보장할 수 있다. 이러한 유형의 검증은 하나 이상의 디바이스에 의해 생성된 검증 가능한 디지털 서명을 사용하며 원격 클라이언트 디바이스에서 컨텐츠와의 상호 작용을 검증하기 운영자가 위조할 수 없다.
처리되고 있는 렌더링된 사용자 인터페이스(UI) 엘리먼트가 보조 액션의 처리, 예를 들어 랜딩 페이지에 대한 링크, 렌더링된 엘리먼트와 관련된 기본 순위 메커니즘 조정 전에 유효한지 확인함으로써, 리소스들이 가짜 렌더링 엘리먼트와 관련된 허위 정보를 저장, 배포 또는 제시하는데 사용되지 않기 때문에 최종 사용자에게 컨텐츠를 제공하는데 사용되는 처리, 메모리 및 리소스가 감소된다. 추가적으로, 증명 토큰을 사용하면 디지털 컴포넌트와 함께 제시되는 렌더링된 엘리먼트를 보다 안정적이고 효율적인 방식으로 허위로 분류하여 잘못된 정보를 저장하고 배포하는데 필요한 리소스들을 줄이는데 도움을 줄 수 있다. 예를 들어, 증명 토큰은 사용자의 프라이버시를 여전히 보호하면서 실제로 렌더링된 엘리먼트에 실제로 노출 및/또는 클릭한 사용자들이 렌더링된 엘리먼트와의 상호 작용을 수행하는 것을 보장하도록 구성된다. 이와 같이, 상호 작용은 악의적인 행위자(예를 들어, 특정 컨텐츠 배포자에게 해를 입히려는 엔티티)에 의해 이루어진 것이 아니라 합법적인 것으로 확인될 수 있다. 따라서, 리소스는 불법적으로 허위 렌더링된 엘리먼트 알림(경고)을 처리하는데 낭비되지 않으며, 허위 렌더링된 엘리먼트를 포함하는 디지털 컴포넌트에 관한 정보를 제공하는 결과 메트릭 및/또는 보고는 증명 토큰을 사용하여 렌더링된 각 엘리먼트를 합법 또는 불법으로 검증할 수 있는 기능으로 인해 더 정확하고 더 효율적으로 생성된다. 게다가, 본 문서 전체에 설명된 기술을 통해 시스템은 허위 또는 오해의 소지가 있는 컨텐츠가 제시될 때 사용자에게 경고하여 사용자에게 오해의 소지가 있거나 악의적인 컨텐츠를 피할 수 있는 기능을 제공할 수 있다.
도 1은 디지털 컴포넌트 시스템이 디지털 컴포넌트를 배포하는 환경의 블록도이다.
도 2a 및 2b는 렌더링된 엘리먼트 상호 작용이 검증되는 환경의 블록도이다.
도 3은 렌더링된 엘리먼트와의 상호 작용을 검증하기 위한 예시적인 프로세스를 예시하는 흐름도이다.
도 4는 예시적인 컴퓨터 시스템의 블록도이다.
개요
일반적으로 본 문서는 검증된 렌더링된 엘리먼트 외양(appearance) 및 상호 작용 증명(인증)을 사용하여 디지털 컴포넌트(예를 들어, 비디오 클립, 오디오 클립, 멀티미디어 클립, 이미지, 텍스트 또는 다른 컨텐츠 단위)와 함께 제시되는 허위(false) 렌더링된 엘리먼트(예를 들어, 낚시성 및/또는 비가시적 버튼)와의 상호 작용을 검증하기 위한 컴퓨터 구현 방법 및 시스템에 관한 것이다. 클라이언트 디바이스(예를 들어, 애플리케이션 환경 또는 웹 사이트)의 활성 창에 있는 렌더링된 엘리먼트와 사용자의 상호 작용은 활성 창내의 렌더링된 엘리먼트의 모앵과 관련된 정보(예를 들어, 활성 창의 스크린 샷)와 함께 운영 체제 또는 다른 신뢰(trusted) 애플리케이션 또는 웹 브라우저에 의해 보고될 수 있다. 렌더링된 엘리먼트의 외양은 제3자에 의해 검증(확인)될 수 있으며 렌더링된 엘리먼트를 제시하는 애플리케이션 및/또는 웹 브라우저에 의해 액세스 가능한 외양 선언(declaration)을 포함한다. 렌더링된 엘리먼트는 그 렌더링된 엘리먼트의 외양에 대한 제3자 선언 및 클라이언트 디바이스의 활성 창의 스크린 샷을 사용하여 유효성을 검사하여 사용자에 의한 상호 작용이 의도적인 것인지 검증할 수 있다. 상호 작용을 (자동화 또는 봇 상호 작용이 아닌) 인간 상호 작용으로 검증하고 렌더링된 엘리먼트를 허위 렌더링된 엘리먼트가 아닌 것으로 검증하는 것은 본 문서 전체에 걸쳐 논의되는 바와같이 허위 정보를 제시하는 디지털 컴포넌트를 배포하는데 사용되는 허위 렌더링된 엘리먼트를 제한, 수정 또는 중지할 수 있다.
예를 들어, 애플리케이션 및 브라우저를 위한 운영 체제(OS)는 프라이버시 보호 집계 측정을 구현하는 중앙 집계 서버를 사용하여 허위 렌더링된 엘리먼트를 식별할 수 있도록 프라이버시 보호 방식으로 렌더링된 엘리먼트와의 사용자 상호 작용을 검증할 수 있다. 집계된 허위 렌더링된 엘리먼트 보고가 렌더링된 엘리먼트와의 검증된 사용자 상호 작용으로부터 생성될 수 있는데, 이는 클라이언트 디바이스의 활성 창에 있는 잠재적 허위 렌더링된 엘리먼트에 대해 사용자에게 경고하는데 사용될 수 있다. 렌더링된 엘리먼트와의 사용자 상호 작용을 검증하기 위한 시스템 및 방법은 도 2a, 2b 및 3을 참조하여 아래에서 더 자세히 설명된다.
예시적인 동작 환경
도 1은 디지털 컴포넌트 시스템(150)이 디지털 컴포넌트를 분배하는 환경(100)의 블록도이다. 예시적인 환경(100)은 근거리 통신망(LAN), 광역 통신망(WAN), 인터넷, 모바일 네트워크, 또는 이들의 조합과 같은 데이터 통신 네트워크(105)를 포함한다. 네트워크(105)는 클라이언트 디바이스(110), 게시자(130), 웹 사이트(140), 디지털 컴포넌트 배포 시스템(150), 부정(fraud) 검출 시스템(170), 집계 시스템(180) 및 보고 시스템(190)을 연결한다. 예시적인 환경(100)은 많은 상이한 클라이언트 디바이스(110), 게시자(130) 및 웹 사이트(140)를 포함할 수 있다. 일부 구현에서, 환경(100)은 또한 다수의 디지털 컴포넌트 배포 시스템(150)을 포함할 수 있다.
웹 사이트(140)는 도메인 이름과 관련되고 하나 이상의 서버에 의해 호스팅되는 하나 이상의 리소스(145)이다. 예시적인 웹 사이트는 텍스트, 이미지, 멀티미디어 컨텐츠, 및 스크립트와 같은 프로그래밍 엘리먼트를 포함할 수 있는 HTML로 포멧된 웹 페이지의 모음이다. 각 웹 사이트(140)는 웹 사이트(140)를 제어, 관리 및/또는 소유하는 엔티티인 게시자(130)에 의해 유지된다.
리소스(145)는 네트워크(105)를 통해 제공될 수 있는 임의의 데이터이다. 리소스(145)는 그 리소스(145)과 관련된 리소스 주소, 예를 들어 URL에 의해 식별된다. 리소스에는 HTML 페이지, 워드 프로세싱 문서 및 PDF 문서, 이미지, 비디오 및 피드 소스가 포함된다. 리소스에는 임베딩된 정보(예를 들어, 하이퍼 링크의 메타 정보) 및/또는 임베딩된 명령(예를 들어, 스크립트)을 포함할 수 있는 단어, 구, 이미지 및 사운드와 같은 컨텐츠가 포함될 수 있다.
클라이언트 디바이스(110)는 네트워크(105)를 통해 통신할 수 있는 전자 디바이스이다. 예시적인 클라이언트 디바이스(110)는 개인용 컴퓨터, 모바일 통신 디바이스, 예를 들어 스마트 폰 및 네트워크(105)를 통해 데이터를 송수신할 수 있는 다른 디바이스를 포함한다.
클라이언트 디바이스(110)는 일반적으로 네트워크(105)를 통한 데이터의 송수신을 용이하게 하기 위해 웹 브라우저 및/또는 네이티브 애플리케이션과 같은 애플리케이션(112)을 포함한다. 네이티브 애플리케이션은 특정 플랫폼 또는 특정 디바이스용으로 개발된 애플리케이션이다. 게시자(130)는 클라이언트 디바이스(110)에 대한 네이티브 애플리케이션을 개발 및 제공할 수 있고, 예를 들어 다운로드가 가능하도록 할 수 있다. 일부 구현에서, 클라이언트 디바이스(110)는 디지털 미디어 디바이스, 예를 들어 텔레비전에 비디오를 스트리밍하기 위해 텔레비전 또는 다른 디스플레이에 연결하는 스트리밍 디바이스이다. 디지털 미디어 디바이스는 또한 비디오를 스트리밍하고 및/또는 리소스를 제시하는 웹 브라우저 및/또는 다른 애플리케이션을 포함할 수 있다.
웹 브라우저는 예를 들어, 클라이언트 디바이스(110)의 사용자가 웹 브라우저의 주소 표시줄에 리소스(145)에 대한 리소스 주소를 입력하거나 리소스 주소를 참조하는 링크를 선택하는 것에 응답하여. 게시자(130)의 웹 사이트(140)를 호스팅하는 웹 서버로부터 리소스(145)를 요청할 수 있다. 유사하게, 네이티브 애플리케이션은 게시자(130)의 원격 서버로부터 애플리케이션 컨텐츠를 요청할 수 있다.
일부 리소스(145), 애플리케이션 페이지, 또는 다른 애플리케이션 컨텐츠는 리소스(145) 또는 애플리케이션 페이지와 함께 디지털 컴포넌트를 제시하기 위한 디지털 컴포넌트 슬롯을 포함할 수 있다. 본 문서 전체에서 사용되는 바와같이, "디지털 컴포넌트"라는 무구는 디지털 컴포넌트 또는 디지털 정보의 개별 단위(예를 들어, 비디오 클립, 오디오 클립, 멀티미디어 클립, 이미지, 텍스트 또는 다른 컨텐츠 단위)를 지칭한다. 디지털 컴포넌트는 물리적 메모리 디바이스에 단일 파일 또는 파일 모음으로 전자적으로 저장될 수 있으며, 디지털 컴포넌트는 비디오 파일, 오디오 파일, 멀티미디어 파일, 이미지 파일 또는 텍스트 파일의 형태를 취할 수 있고 광고가 일종의 디지털 컴포넌트가 되도록 광고 정보를 포함한다. 예를 들어, 디지털 컴포넌트는 웹 페이지의 컨텐츠 또는 애플리케이션(112)에 의해 제시된 다른 리소스를 보충하도록 듸도된 컨텐츠일 수 있다. 보다 구체적으로, 디지털 컴포넌트는 리소스 컨텐츠와 관련된 디지털 컨텐츠를 포함할 수 있다(예를 들어, 디지털 컴포넌트는 웹 페이지 컨텐츠와 동일한 주제 또는 관련 토픽과 관련될 수 있다). 따라서 디지털 컴포넌트 배포 시스템(150)에 의한 디지털 컴포넌트의 제공은 웹 페이지 또는 애플리케이션 컨텐츠를 보충하고 일반적으로 향상시킬 수 있다.
애플리케이션(112)이 하나 이상의 디지털 컴포넌트 슬롯을 포함하는 리소스(145)(또는 애플리케이션 컨텐츠)를 로드할 때, 애플리케이션(112)은 디지털 컴포넌트 배포 시스템(150)으로부터 각 슬롯에 대한 디지털 컴포넌트를 요청할 수 있다. 디지털 컴포넌트 배포 시스템(150)은 차례로 디지털 컴포넌트 제공자(160)로부터 디지털 컴포넌트를 요청할 수 있다. 디지털 컴포넌트 제공자(160)는 리소스(145)와 함께 프리젠테이션을 위한 디지털 컴포넌트를 제공하는 엔티티이다.
일부 경우, 디지털 컴포넌트 배포 시스템(150)은 또한 하나 이상의 디지털 컴포넌트 파트너(157)로부터 디지털 컴포넌트를 요청할 수 있다. 디지털 컴포넌트 파트너(157)는 디지털 컴포넌트 요청에 응답하여 디지털 컴포넌트 제공자(160)를 대신하여 디지털 컴포넌트(129)(미도시)를 선택하는 엔티티이다.
디지털 컴포넌트 배포 시스템(150)은 다양한 기준에 기초하여 각 디지털 컴포넌트 슬롯에 대한 디지털 컴포넌트를 선택할 수 있다. 예를 들어, 디지털 컴포넌트 배포 시스템(150)은 디지털 컴포넌트 제공자(160) 및/또는 디지털 컴포넌트 파트너(157)로부터 수신된 디지털 컴포넌트로부터, 리소스(145)(또는 애플리케이션 컨텐츠)에 대한 관련성, 디지털 컴포넌트의 성능(예를 들어, 사용자가 디지털 컴포넌트와 상호 작용하는 비율)등에 기초하여 디지털 컴포넌트를 선택할 수 있다. 디지털 컴포넌트 배포 시스템(150)은 리소스(145) 또는 다른 애플리케이션 컨텐츠와 함께 프리젠테이션을 위해 상기 선택된 디지털 컴포넌트(들)를 클라이언트 디바이스(110)로 제공할 수 있다.
애플리케이션(112)이 디지털 컴포넌트를 제시할 때, 애플리케이션(112)(브라우저일 수 있음)은 디지털 컴포넌트의 프리젠테이션을 위한 노출 데이터(114)를 저장할 수 있다. 디지털 컴포넌트의 특정 프리젠테이션을 위한 노출 데이터(114)는 디지털 컴포넌트에 대한 랜딩 페이지의 URL 또는 도메인(예를 들어, 디지털 컴포넌트에 의해 링크된 페이지 및 사용자가 디지털 컴포넌트를 클릭하거나 상호 작용할 때 애플리케이션/브라우저는 사용자에게 페이지를 표시함)을 포함할 수 있다. 일부 구현에서, 디지털 컴포넌트의 특정 프리젠테이션을 위한 노출 데이터(114)는 예를 들어 클릭-투-콜 광고를 위한 전화 번호, 또는 예를 들어 매장 방문 광고를 위한 상점 주소를 포함할 수 있다.
디지털 컴포넌트의 특정 프리젠테이션을 위한 노출 데이터(114)는 디지털 컴포넌트에 대한 하나 이상의 식별자, 노출과 관련된 이벤트 레벨 데이터, 노출 데이터가 클라이언트 디바이스(110)로부터 삭제될 시기를 지정하는 만료 시간, 및/또는 디지털 컴포넌트에 대한 전환 보고가 전송될 보고 URL 또는 도메인을 더 포함할 수 있다. 이 데이터는 예를 들어 디지털 컴포넌트의 메타 데이터 또는 디지털 컴포넌트의 앵커 태그와 같이 디지털 컴포넌트에 의해 제공될 수 있다. 아래에서 더 상세히 설명되는 바와 같이, 디지털 컴포넌트의 각 노출에 대한 원시 노출 데이터를 저장하는 대신 또는 저장에 추가하여, 애플리케이션(112)은 부정 검출 시스템(170)에 의해 블라인드 서명된 노출 데이터를 저장할 수 있다.
애플리케이션(112)은 또한 전환(conversion)이 검출되는 것에 응답하여 전환 데이터(116)를 저장할 수 있다. 디지털 컴포넌트에 대한 전환은 디지털 컴포넌트가 사용자에게 제시 및/또는 상호 작용(예를 들어, 클릭 또는 탭)한 후 지정된 사용자 액션의 완료이다. 전환을 위한 전환 데이터(116)는 일부 전환이 다수의 유형을 가질 수 있으므로 전환의 유형을 나타내는 데이터를 포함할 수 있다. 전환 유형은 전환이 완료된 후 후속 액션을 지정할 수 있다. 예를 들어, 전환은 온라인 쇼핑 카트에 하이템을 추가하는 것일 수 있다. 이 예에서, 제1 유형의 전환은 체크 아웃하지 않고(예를 들어, 구매를 완료하지 않고) 아이템을 추가하는 것일 수 있고, 제2 유형의 전환은 체크 아웃일 수 있다. 다른 예의 전환은 광고주에게 전화 걸기, 애플리케이션의 설치, 광고주가 소유한 로컬 상점 방문 등을 포함한다. 아래에서 자세히 설명하는 바와같이, 전환을 위한 전환 데이터는 전환의 유형을 나타내는 하나 이상의 비트의 세트일 수 있고, 애플리케이션은 디지털 컴포넌트 배포 시스템(150)(또는 다른 적절한 시스템)에 의해 블라인드 서명된 전환 데이터를 저장할 수 있다.
일부 구현에서, 디지털 컴포넌트에 대한 전환은 디지털 컴포넌트와 함께 제시되는 렌더링된 엘리먼트와의 사용자 상호 작용에 대한 상호 작용 데이터를 포함한다. 렌더링된 엘리먼트와의 사용자 상호 작용을 포함하는 상호 작용 데이터(117)는 렌더링된 엘리먼트(예를 들어, 버튼)와의 상호 작용 유형(예를 들어 클릭, 스와이프, 손가락 위로/손가락 아래로 등)을 나타내는 데이터를 포함할 수 있다. 렌더링된 엘리먼트와의 상호 작용은 도 2a-b 및 3을 참조하여 아래에서 더 상세히 설명된다.
검출 시스템(170)은 클라이언트 디바이스(110)로부터 수신된 검출 신호를 평가하여 노출, 상호 작용 및/또는 전환이 유효하거나 무효인지 여부를 결정할 수 있다. 검출 신호는 애플리케이션에 따라 다를 수 있으며 구현에 따라 다를 수 있다. 애플리케이션(112)(또는 클라이언트 디바이스(110)의 운영 체제)은 디지털 컴포넌트가 애플리케이션(112)(또는 클라이언트 디바이스(110)의 운영 체제)을 호출하여 검출 신호를 수집하고 그 검출 신호를 검출 시스템(170)에 제공할 수 있게 하는 API를 포함할 수 있다.
검출 신호에 추가하여, 애플리케이션(112)은 노출에 대한 블라인드된 노출 데이터를 검출 시스템(170)으로 전송할 수 있다. 만약 검출 시스템(170)이 노출이 유효하다고 결정하면(예를 들어, 식별된 컨텐츠가 실제로 클라이언트 디바이스에 의해 제시된 것임), 검출 시스템(170)은 블라인드된 노출 데이터에 서명하고 그 서명된 블라인드된 노출 데이터를 애플리케이션(112)으로 제공할 수 있다. 블라인드된 노출 데이터를 생성하고 블라인드된 노출 데이터에 서명하는 기술의 예는 아래에 설명된다.
집계 시스템(180)은 클라이언트 디바이스(110)로부터 수신된 데이터에 기초하여 집계(통합)된 네트워크 측정을 생성할 수 있다. 다음의 설명에서, 측정 데이터 엘리먼트를 생성하고 제공하는 기술은 웹 브라우저 또는 네이티브 애플리케이션 일 수 있는 애플리케이션(112)에 의해 수행되는 것으로 설명된다. 그러나, 일부 구현에서는, 클라이언트 디바이스(110)의 운영 체제가 측정 데이터 엘리먼트를 생성하고 전송할 수 있다. 이러한 구현에서, 클라이언트 디바이스(110)상의 웹 브라우저(들) 및 애플리케이션(들)은 운영 체제에 노출 및 전환을 보고하도록 구성될 수 있다. 운영 체제는 애플리케이션(112)에 의해 수행되는 것으로 아래에 설명된 노출 및 전환을 보고하기 위한 각각의 동작을 수행할 수 있다.
클라이언트 디바이스(110)상의 애플리케이션(112)은 네트워크 데이터를 나타내는 암호화된 데이터를 포함하는 측정 데이터 엘리먼트를 집계 시스템(180)으로 제공할 수 있다. 네트워크 데이터에는 각 전환에 대한 노출 데이터 및/또는 전환 데이터가 포함될 수 있다. 예를 들어, 애플리케이션(112)은 클라이언트 디바이스(110)에서 발생하는 각 노출, 사용자 상호 작용 및/또는 전환에 대한 측정 데이터 엘리먼트를 생성하고 집계 시스템(180)으로 전송할 수 있다. 집계된 네트워크 측정에는 하나 이상의 디지털 컴포넌트 각각에 대해, 디지털 컴포넌트에 대한 총 노출수, 사용자 상호 작용, 및/또는 전환이 포함될 수 있으며, 그리고 선택적으로 다수의 클라이언트 디바이스(110)에 걸쳐 디지털 컴포넌트와 함께 제시되는 렌더링된 엘리먼트가 포함될 수 있다.
애플리케이션(112)은 (t, n) 임계값 기법(threshold scheme)을 사용하여 측정 데이터 엘리먼트에서 데이터를 생성할 수 있다. 일부 구현에서, 애플리케이션(112)이 전환을 검출하거나 전환을 위한 전환 데이터를 수신할 때, 애플리케이션(112)은 노출 데이터 및 전환을 위한 전환 데이터에 기초하여 그룹 키(예를 들어, 다항식 함수)를 생성한다. 그런 다음 애플리케이션은 그룹 키의 일부를 나타내고 동일한 노출 및 전환 쌍에 대해 충분한 수의 그룹 멤버 키가 수신된 경우에만 그룹 키를 재생성하는데 사용할 수 있는 그룹 멤버 키를 생성할 수 있다. 이 예에서 전환에 대한 측정 데이터 엘리먼트에는 애플리케이션에 의해 생성된 그룹 멤버 키와 노출 및 전환 쌍에 대응하는 태그가 포함될 수 있다. 각각의 고유한 노출 및 전환 쌍은 대응하는 고유 태그를 가질 수 있으므로 집계 시스템(180)은 그 태그를 사용하여 각 노출 및 전환 쌍에 대한 측정 데이터 엘리먼트를 집계할 수 있다.
일부 구현에서, 애플리케이션(112)이 상호 작용 및/또는 전환을 검출하거나 상호 작용 및/또는 전환에 대한 상호 작용 및/또는 전환 데이터를 수신할 때, 애플리케이션(112)은 노출 데이터, 상호 작용 데이터, 상호 작용 및/또는 전환에 대한 전환 데이터에 기초하여 그룹 키(예를 들어, 다항식 함수)를 생성한다. 그런 다음 애플리케이션은 그룹 키의 일부를 나타내며 동일한 노출 및 상호 작용/전환 쌍에 대해 충분한 수의 그룹 멤버 키가 수신된 경우에만 그룹 키를 재생성하는데 사용될 수 있는 그룹 멤버 키를 생성할 수 있다. 이 예에서 상호 작용/전환에 대한 측정 데이터 엘리먼트에는 애플리케이션에 의해 생성된 그룹 멤버 키와 노출 및 상호 작용/전환 쌍에 대응하는 태그가 포함될 수 있다. 각각의 고유한 노출 및 상호 작용/전환 쌍은 대응하는 고유 태그를 가질 수 있으므로 집계 시스템(180)은 그 태그를 사용하여 각 노출 및 상호 작용/전환 쌍에 대한 측정 데이터 엘리먼트를 집계할 수 있다.
(t, n)-임계갑 암호화 기법에서, 집계 서버(180)는 노출 및 전환 및/또는 상호 작용 데이터를 복호화(해독)할 수 있도록 동일한 노출 및 상호 작용/전환 쌍에 대해 적어도 t개의 그룹 멤버 키를 수신해야 한다. 만약 t개 미만의 그룹 멤버 키가 수신되면, 집계 서버(180)는 노출 및 전환 및/또는 상호 작용 데이터를 복호화할 수 없다. 일단 동일한 노출 및 전환 및/또는 상호 작용 쌍에 대한 적어도 t개의 측정 데이터 엘리먼트가 클라이언트 디바이스(110)로부터 수신되면, 집계 시스템(180)은 적어도 t개의 그룹 멤버 키로부터 그룹 키를 결정할 수 있고 그룹 키로부터 노출 및 전환 및/또는 상호 작용 데이터를 획득할 수 있다.
집계 시스템(180)은 노출 데이터, 상호 작용 데이터, 및/또는 노출 및 상호작용/전환 쌍에 대한 전환 데이터를 포함하는 수신된 측정 데이터 엘리먼트의 수에 기초하여 노출 및 전환 쌍에 대한 전환의 양을 결정할 수 있다. 예를 들어, 적어도 t개의 그룹 멤버 키를 사용하여 노출, 상호 작용 및 전환 데이터를 획득한 후, 집계 시스템(180)은 전환의 양으로서, 노출 및 상호 작용/전환 쌍에 대해 수신된 그룹 멤버 키의 수의 카운트를 결정할 수 있다. 집계 시스템(180)은 노출 데이터, 상호 작용 데이터, 전환 데이터, 상호 작용 및/또는 전환의 양을 보고 시스템(190)에 보고할 수 있으며, 이는 노출 및 전환 데이터에 대응하는 디지털 컴포넌트의 보고 URL에 해당하는 보고 도메인으로 구현될 수 있다.
허위 렌더링된 엘리먼트 보고 및 검증
디지털 컴포넌트 시스템(150)은 다양한 디지털 컴포넌트 제공자(160)로부터 클라이언트 디바이스(110)로 디지털 컴포넌트를 배포할 수 있다. 디지털 컴포넌트에는 사용자가 렌더링된 엘리먼트와 상호 작용할 수 있는 버튼과 같은 렌더링된 엘리먼트가 포함될 수 있다. 렌더링된 엘리먼트는 클라이언트 디바이스(110)의 활성 창에서 상기 렌더링된 엘리먼트의 외양을 캡처한 스크린 샷 및 외양 선언을 사용하여 검증될 수 있다. 더욱이, 렌더링된 엘리먼트들과 상호 작용은 보고하는 최종 사용자의 프라이버시를 보호하고 디지털 컴포넌트 제공자(160)의 이익을 보호하기 위해 검증 및 집계될 수 있다.
도 2a 및 2b는 렌더링된 엘리먼트 상호 작용이 검증되는 환경의 블록도이다. 허위 렌더링된 엘리먼트는 사용자에게 보이지 않거나 또는 오해의 소지가 있는 디지털 컴포넌트와 함께 제시되는 렌더링된 엘리먼트(예를 들어, 버튼 또는 선택 가능한 기능)를 지칭한다. 일부 구현에서, 허위 렌더링 엘리먼트는 사용자가 의도하지 않은 상호 작용을 트리거할 수 있다. 일 예에서, "창 닫기"버튼 위에 숨겨진 버튼(예를 들어, 화면에 제시된 버튼의 그래픽 시각화를 포함하지 않는 버튼에 대한 코드 정의 상호 작용 영역)은 사용자가 "창 닫기" 버튼을 선택하여 의도한 대로 현재 창이나 애플리케이션을 닫는 대신 다른 애플리케이션이나 웹 페이지에 대한 요청을 시작(launch)할 수 있다. 다른 예에서, 오해의 소지가 있는 렌더링된 엘리먼트는 "좋아요" 아이콘으로 나타날 수 있지만 오해의 소지가 있는 렌더링된 엘리먼트에 대한 사용자 선택은 의도된 "찬성 투표(vote up)" 기능이 아닌 "반대 투표(vote down)" 기능을 트리거할 수 있다.
도 2a는 렌더링된 엘리먼트 상호 작용이 검증되는 환경(200)의 블록도이다. 상호 작용 검증 시스템(202)은 클라이언트 디바이스(210)상의 운영 체제(208)로부터 렌더링 통지(204) 및 상호 작용 경고(alert, 알림)(206)를 수신하도록 구성된다. 상호 작용 검증 시스템(202)은 애플리케이션(218)의 활성 창(216)에서 렌더링된 엘리먼트(214)의 검증된 외양의 선언(212)을 수신하도록 더 구성된다. 추가적으로, 상호 작용 검증 시스템(202)은 운영 체제(208) 또는 클라이언트 디바이스(210)의 다른 신뢰(trusted) 애플리케이션(218)으로부터, 클라이언트 디바이스(210)에 디스플레이된 활성 창(216)의 스크린 샷(220)을 수신하도록 구성된다.
일부 구현에서, 상호 작용 검증 시스템(202)에 의해 수행되는 것으로 본 명세서에 설명된 하나 이상의 프로세스는 클라이언트 디바이스(210)상의 운영 체제(208) 또는 다른 신뢰 애플리케이션(218)에 의해 수행될 수 있다.
상호 작용 검증 시스템(202)은 상호 작용 결정 모듈(222), 시각적 분석 모듈(224) 및 증명 생성기(226)를 포함할 수 있다. 상호 작용 결정 모듈(222), 시각적 분석 모듈(224) 및 증명 생성기(226) 각각은 개별(respective) 모듈 및/또는 설명된 작업을 수행하도록 구성된 하나 이상의 프로세서를 참조하여 본 명세서에 설명된 작업을 수행하는 기능으로 인코딩된 컴퓨터 저장 판독 가능 매체를 포함할 수 있다. 상호 작용 결정 모듈(222)은 입력으로서 렌더링 통지(204) 및 상호 작용 경고(206)를 수신하도록 구성된다. 렌더링 통지(204)는 활성 창(216)내의 렌더링된 엘리먼트(214)의 위치, 렌더링된 엘리먼트(214)의 안정적인 식별(안정적인 ID) 및/또는 URI(niform resource identifier), 및 렌더링된 엘리먼트(214)를 렌더링한 사이트 또는 도메인을 포함할 수 있다.
렌더링된 엘리먼트(214)는 활성 창(216), 예를 들어 클라이언트 디바이스(210)상의 활성 창에서 볼 수 있는 엘리먼트이다. 렌더링 통지(204)는 렌더링된 엘리먼트(214)가 활성 창(216)에서 볼 수 있음을 운영 체제(208)에 통지하는 애플리케이션에 의해 생성될 수 있다. 다른 실시예에서, 렌더링 통지(204)는, 예를 들어, 아래 도 2b를 참조하여 설명된 바와 같이, 렌더링된 엘리먼트(214)가 웹 페이지의 활성 창에서 볼 수 있음을 웹 브라우저에 통지하는 웹 페이지/자바 스크립트에 의해 생성될 수 있다.
렌더링된 엘리먼트(214)는 디지털 컴포넌트(205)에 대한 요청의 일부로서 또는 이에 추가하여 운영 체제(208)에 의해 요청될 수 있다. 디지털 컴포넌트에 대한 요청은 렌더링된 엘리먼트(214), 예를 들어 공유, 찬성 투표 및 반대 투표 버튼이 있는 뉴스 포스트를 포함할 수 있다. 디지털 컴포넌트 제공자(234)는 렌더링된 엘리먼트(214)를 생성하기 위한 스키마 및 렌더링된 엘리먼트(214)에 대한 디지털 서명을 포함하는 렌더링 컨트롤을 제공할 수 있다.
렌더링 통지(204)는, 예를 들어, 사용자가 활성 창의 현재 뷰를 스크롤링, 크기 조정 또는 변경함으로써 활성 창의 외양이 변경될 때마다 생성될 수 있다. 활성 창(216) 내에서 상기 렌더링된 엘리먼트(214)의 위치를 추적하는 것은 사용자 스크롤링, 줌 기능 등을 추적하는 것을 포함할 수 있는데, 여기서 스크롤링 기능, 줌 기능 등과의 사용자 상호 작용은 렌더링 통지(204)을 업데이트하기 위한 신호를 트리거할 것이다. 일부 구현에서, 렌더링 통지는 돌연변이 관찰자와 같은 스크립트 또는 사용자 인터페이스(예를 들어, 웹 페이지의 DOM 또는 네이티브 애플리케이션 사용자 인터페이스의 구조)에 대한 변경을 검출할 수 있는 다른 스크립트에 의해 생성될 수 있다.
다시 도 2a를 참조하면, 렌더링된 엘리먼트(214)와의 상호 작용(207)은 사용자 선택, 예를 들어, 클릭, 스와이프, 핀치, 마우스 호버, 또는 렌더링된 엘리먼트(214)에 의해 점유되는 것으로 선언된 영역 내에서 상기 렌더링된 엘리먼트의 선택을 나타내는 다른 모션을 포함할 수 있지만 이에 한정되지 않는다. 상호 작용(207)은 디지털 컴포넌트(205)의 적어도 일부를 통한 사용자 스크롤링, 예를 들어 뉴스 기사의 하단으로의 스크롤링일수 있다. 상호 작용(207)은 디지털 컴포넌트(205)의 재생, 예를 들어 오디오, 비디오 또는 멀티미디어 파일의 재생을 수동적으로 허용하는 사용자일 수 있다. 일 예에서, 상호 작용(207)은 사용자의 손가락이 클라이언트 디바이스(210)의 터치 스크린을 터치 다운 및/또는 위로 들어올릴 때 검출된다.
추가적으로, 상호 작용 결정 모듈(222)은 선언(212)을 수신한다. 렌더링된 엘리먼트(214)의 선언(212)을 수신하는 것은 렌더링된 엘리먼트(214)의 검증된 외양을 수신하는 것을 포함할 수 있다. 렌더링된 엘리먼트(214)의 검증된 외양은 고유한 안정적인 ID, 예를 들어 리소스 파일의 암호화 해시(cryptohash), 또는 렌더링된 RGB 픽셀 값의 암호화 해시, 및/또는 안정된 URI, 및 렌더링된 엘리먼트(214)의 검증된 모양((shape)을 포함할 수 있다. 하나의 예에서, 획인된 모양에는 치수 및 모양 유형(예를 들어, 정사각형, 직사각형, 원 등)이 포함한다. 다른 예에서, 검증된 모양은 치수의 범위 및 일반적인 카테고리 및/또는 모양의 설명 식별자, 예를 들어 엄지 손가락 모양, 정지 신호 모양, 체크 박스 모양을 포함한다. 다른 예에서, 검증된 모양은 비트 맵(2D 어레이)으로 표시될 수 있으며, 여기서 1은 "모양의 일부"를 나타내고 그렇지 않으면 0을 나타낸다. 이러한 비트 맵은 임의적인 복잡한 모양을 나타낼 수 있다.
선언(212)은 사용자 특정적이지 않은, 예를 들어 특정 사용자 또는 특정 클라이언트 디바이스(210)에 특정되지 않는다. 렌더링된 엘리먼트(214)의 선언된 외양은 다양한 클라이언트 디바이스에서 충분히 큰 사용자 그룹에 대해 일관된다. 예를 들어, 선언된 외양에는 상이한 클라이언트 디바이스, 디스플레이 특성 및 사용자 선호도 사이에서 가능한 변형을 수용할 수 있는 치수 및 색상 팔레트의 범위가 포함된다. 다른 예에서, 선언된 외양은 렌더링된 엘리먼트(214)에 대해 가능한 다중 언어 및 다른 지역(region) 변형을 포함한다.
렌더링된 엘리먼트의 선언된 외양을 포함하는 선언(212)은 오해의 소지가 없는 것으로 제3자에 의해 독립적으로 검증된다. 일 예로, 애플리케이션에서 렌더링된 엘리먼트는 애플리케이션을 제공하기 위한 리뷰 및 승인 프로세스의 일부로서 애플리케이션을 나열하는 애플리케이션 스토어 또는 다른 제공자에 의해 검증될 수 있다. 다른 예에서, 웹 리소스에서 렌더링된 엘리먼트는 웹 브라우저 벤더 및/또는 웹 사이트 게시자를 위한 프라이버시 그룹에 의해 검증될 수 있다.
제3자 리뷰어는 렌더링된 버튼이 리뷰 기준을 충족하는지, 예를 들어 렌더링된 버튼과의 상호 작용이 사용자 의도와 일치하는 액션을 초래(발생)하는지 결정할 수 있고, 렌더링된 엘리먼트를 검증하는데 사용될 수 있는 렌더링된 엘리먼트 리소스(예를 들어, png 또는 비트 맵 파일)에 디지털 서명할 수 있다. 따라서 사용자 의도는 상기 렌더링된 엘리먼트의 외양에 의해 전달되는 액션에 해당할 수 있다. 일부 구현에서 제3자 리뷰어는 웹 브라우저가 액세스할 수 있는 승인된 외양의 활성화된 목록을 생성할 수 있다.
상호 작용 결정 모듈(222)은 수신된 선언(212)에 기초하여, 상호 작용 경고(206)의 상호 작용(207)이 클라이언트 디바이스(210)의 활성 창(216) 내의 상기 렌더링된 엘리먼트(214)의 선언(된) 위치에서 발생했는지 여부를 결정한다. 상호 작용(207)이 렌더링된 엘리먼트(214)의 선언 위치에서 발생했음을 검출하는 것은 운영 체제(208) 또는 다른 신뢰 애플리케이션(218)으로부터, 사용자 클릭의 XY 좌표 또는 활성 창(216) 내에서 상기 렌더링된 엘리먼트(214)와의 다른 형태의 사용자 상호 작용을 지정하는 선택 신호를 수신하는 것을 포함할 수 있다. 일부 구현에서, 렌더링된 엘리먼트의 선언 위치에서 상호 작용(207)을 검출하는 것은 활성 창(216)에서 렌더링된 엘리먼트가 차지하는 선언(된) 영역에 대한 X'-X" 범위 및 Y'-Y" 좌표 범위를 수신하는 것과, 상호 작용(207)의 X 좌표와 상호 작용(207)의 Y 좌표를 X'-X" 및 Y'-Y"의 범위와 비교하는 것과, 그리고 상호 작용(207)의 X 좌표와 상호 작용(207)의 Y 좌표가 각각 X'-X" 및 Y'-Y"범위 내에 있는지 여부를 결정하는 것을 포함한다.
상호 작용(207)이 활성 창(216) 내의 렌더링된 엘리먼트(214)의 선언 위치에서 발생했다는 결정에 기초하여, 상호 작용 결정 모듈(222)은 시각적 분석 모듈(224)에 출력으로서 상호 작용의 확인(confirmation)을 제공한다. 일 예에서, 애플리케이션(218)에 대해, 운영 체제(208)는 상호 작용(207)이 렌더링된 엘리먼트(214)에 의해 점유되는 것으로 선언된 영역 내에서 발생했는지 여부를 조사함으로써 상기 렌더링된 엘리먼트의 선언 위치에서 상호 작용(207)이 발생했다고 결정할 것이다. 다른 예에서, 도 2b에 도시된 바와 같이, 웹 리소스(254)에 대해, 브라우저(252)는 렌더링된 엘리먼트(264)에 의해 점유되는 것으로 선언된 영역 내에서 상호 작용(257)이 발생했는지 여부를 조사할 것이다.
시각적 분석 모듈(224)은 렌더링된 엘리먼트(214)를 포함하는 클라이언트 디바이스(210)의 활성 창의 스크린 샷(220)을 운영 체제(208)로부터 입력으로서 수신하도록 구성된다. 추가적으로, 시각적 분석 모듈(224)은 렌더링된 엘리먼트에 대한 선언의 저장소(212)로부터 상기 렌더링된 엘리먼트(214)의 선언을 입력으로서 수신하도록 구성된다. 시각적 분석 모듈(224)은 렌더링된 엘리먼트(214)의 선언(212)부터의 상기 렌더링된 엘리먼트(214)의 선언된 외양으로 스크린 샷(220)에서 상기 렌더링된 엘리먼트(214)의 시각적 외양을 검증한다.
일부 구현에서, 렌더링된 엘리먼트의 시각적 외양을 검증하는 것은 선언된 외양을 스크린 샷(220)과 비교하기 위해 하나 이상의 이미지 매칭 알고리즘을 이용하는 것을 포함한다. 예를 들어, 이미지 매칭 알고리즘은 렌더링된 엘리먼트의 이미지 특징(예를 들어, 픽셀 데이터)을 추출하고, (렌더링된 엘리먼트의 게시자가 이전에 선언한 대로) 렌더링된 엘리먼트에 해당하는 저장된 이미지 특징 세트를 식별하고, 그리고 추출된 이미지 특징들과 저장된 이미지 특징들 사이에 매칭이 있는지 여부를 결정하기 위해 추출된 이미지 특징들과 저장된 이미지 특징들을 비교할 수 있다. 렌더링된 엘리먼트의 시각적 외양을 검증할 때, 렌더링 차이로 인한, 예를 들어 스케일링, 화면 색조/밝기/대비 조정, 엘리먼트 텍스트를 렌더링하는데 사용되는 폰트 등으로 인한 변형이 고려될 수 있다. 예를 들어, 스크린 샷(220)을 렌더링된 엘리먼트(214)에 대한 선언(212)와 비교할 때, 이미지 매칭 알고리즘은 예를 들어 2차원 정규화된 교차 상관 알고리즘 또는 다른 적절한 알고리즘의 변형을 사용함으로써 크기, 대비, 밝기 등을 정규화하는 알고리즘을 사용하여 렌더링시 작은 변형을 허용할 수 있다.
일부 구현에서, 선언(212)은 엘리먼트가 특정 클라이언트 디바이스 또는 웹 리소스에서 렌더링될 때 발생할 수 있는 색조 마스크, 종횡비 왜곡, 또는 기타 유사한 렌더링 변경에 영향을 받지 않는 "참(true)" 렌더링 값을 포함할 수 있다. 이 실시예에서, 운영 체제 및/또는 브라우저는 렌더링시의 임의의 작은 변형을 반드시 고려하지 않고 선언(212)을 이용할 수 있다. 일 예에서, 운영 체제는 디바이스 독립적인 비트 맵을 포함하는 렌더링 아키텍처를 가질 수 있다.
일부 구현에서, 렌더링된 엘리먼트(214)의 시각적 외양 및 렌더링된 엘리먼트의 선언된 외양의 검증은 유사성 임계값(예를 들어, 렌더링된 엘리먼트의 렌더링된 외양이 렌더링된 엘리먼트의 선언된 와관으로부터 가변 범위 내에 있음)을 충족하는 것을 포함한다.
렌더링된 엘리먼트(214)의 시각적 외양이 매칭 및/또는 유사성 임계값 내에 있다는 검증에 기초하여, 시각적 분석 모듈(224)은 증명 생성기(226)에 출력으로서 상호 작용의 검증을 제공한다.
증명 생성기(226)는 시각적 외양의 검증 및 렌더링된 요소(214)와의 상호 작용에 관한 정보를 입력으로서 수신하여, 출력으로서 상호 작용 증명 토큰(221)을 생성하도록 구성된다. 상호 작용 증명 토큰(221)은 선언된 외양의 안정적인 ID 및/또는 URI, 상호 작용의 타임 스탬프(207), 신뢰 토큰(예를 들어, 운영 체제에 대한 디바이스 무결성 토큰 또는 웹 브라우저용 서명된 상환 기록(SRR)), 상호 작용 증명 토큰의 무결성을 검증하기 위해(예를 들어, 증명 토큰을 생성한 신뢰 디바이스를 검증하기 위해) 클라이언트 디바이스(210)에 의해 생성된 디지털 서명, 활성 창내에서 상호 작용이 발생한 위치의 XY 좌표, 클라이언트 디바이스 공개 키, 및 (예를 들어, 상호 작용 증명 토큰의 신뢰성을 증명하기 위해) 운영 체제 또는 웹 브라우저에 의해 생성된 위조 불가능한 디지털 서명을 포함할 수 있다.
일부 구현에서, 증명 토큰에 포함된 렌더링된 엘리먼트의 외양의 안정적인 ID 및/또는 URI는 렌더링된 엘리먼트와의 사용자 상호 작용의 실제 의도를 전달한다. 예를 들어 URI가 디지털 컴포넌트(예를 들어, 비디오 컨텐츠)에 대한 "좋아요"아이콘을 가리키는 경우, 증명 토큰은 사용자가 비디오 컨텐츠에 찬성 투표를하기 위해 "좋아요" 버튼을 실제로 클릭했음을 증명한다. 증명 토큰에 의해 증명된 실제 의도에 기초하여, 디지털 컨텐츠 제공자(234)는 예를 들어 이에 따라 행동, 즉 "좋아요" 카운트를 증가시킨다.
일부 구현에서, 사용자 의도는 렌더링된 엘리먼트의 의향에 의해 전달되는 액션에 대응한다. 사용자 상호 작용 보고는 증명 토큰에 포함된 사용자 상호 작용의 실제 의도에 기초하여 수정될 수 있다. 즉, 보고는 사용자가 상호 작용했다고 믿었던 상기 렌더링된 엘리먼트의 실제 외양에 기초하여 수정될 수 있다. 예를 들어, 서버는 "반대 투표" 사용자 의도를 전달하는 증명 토큰의 렌더링된 엘리먼트에 대한 응답으로 "찬성 투표" 카운트의 증가를 방지할 수 있다. 이를 통해 허위 또는 오해의 소지가 있는 정보의 전파를 방지하고 사용자의 향후 경험을 개선할 수 있다.
상호 작용 결정 모듈(222) 및/또는 시각적 분석 모듈이 상호 작용이 렌더링된 엘리먼트의 선언된 위치에서 발생하지 않았다고 결정하는 시나리오에서, 시스템(202)은 렌더링된 엘리먼트(214)와의 상호 작용(207)에 대한 상호 작용 증명 토큰(221)을 생성하는 것을 억제한다.
생성된 증명 토큰(221)은 상호 작용 검증 서버(203)로 제공될 수 있고, 디지털 컴포넌트(205)의 렌더링된 엘리먼트(214)와의 상호 작용의 집계에 추가 사용을 위해 저장될 수 있다. 상호 작용 검증 서버(203)는 집계 엔진(228) 및 응답 생성기(230)를 포함할 수 있다. 서버(203)는 입력으로서 증명 토큰(221)을 수신할 수 있다. 집계 엔진(228)은 렌더링된 엘리먼트(124)의 다중 인스턴스화, 예를 들어 다중 사용자에 의한 다중 클라이언트 디바이스(210)상의 렌더링된 엘리먼트(214)와의 다중 검증된 프리젠테이션/상호 작용과의 다중 상호 작용에 대한 상호 작용 증명을 집계(통합)할 수 있다.
일부 구현에서, 시스템(202)은 터치 스크린상의 사용자의 "손가락 아래로" 상호 작용을 위한 상호 작용 증명 토큰(221)과 터치 스크린상의 사용자의 "손가락 위로" 상호 작용(예를 들어, 순차적 상호 작용)을 위한 상호 작용 증명 토큰(221)을 함께 페어링하여, 상호 작용 증명 토큰 쌍(221)을 디지털 컴포넌트 제공자(234) 또는 다른 관심있는 제3자에게 제공한다. 두 상호 작용 증명 토큰은 사용자 사기 또는 잘못된 정보를 방지하기 위해 두 증명 토큰에 포함된 렌더링된 엘리먼트, 디바이스 공개키, 및 토큰 생성 타임 스탬프의 선언된 외양의 안정적인 ID 및/또는 URI를 갖는 것에 부분적으로 기초하여 쌍을 이룰 수 있다. .
응답 생성기(230)는 상호 작용 증명 토큰(221) 및 허위 상호 작용 응답을 수신할 수 있고, 출력으로서 허위 렌더링된 엘리먼트 응답(232)을 제공할 수 있다. 허위 렌더링된 엘리먼트 응답(232)은 예를 들어 클라이언트 디바이스(210) 및/또는 디지털 컴포넌트(205)의 디지털 컴포넌트 제공자(234)에게 제공될 수 있다.
일부 구현에서, 상호 작용(207)이 렌더링된 엘리먼트(214)의 선언된 위치에서 발생하지 않았다는 결정에 응답하여, 상호 작용 검증 시스템(202)은 허위 상호 작용 응답을 트리거할 수 있다. 허위 상호 작용 응답은 서버(203)로 제공될 수 있다. 집계 엔진(228)은 디지털 컴포넌트(205)에 대한 증명 토큰, 예를 들어, 노출 데이터(114) 및 클릭 전환 증명(116)뿐만 아니라 렌더링된 엘리먼트에 대한 상호 작용 증명 토큰(221)을 사용하여 허위 상호 작용 응답을 검증할 수 있다. 집계 엔진(228)은 허위 상호 작용 응답을 트리거하는 사용자들의 사용자 프라이버시를 유지하기 위해 검증된 허위 상호 작용 응답을 집계할 수 있다. 렌더링된 엘리먼트는 그 렌더링된 엘리먼트와 상호 작용하는 사용자들의 임계값 부분이 허위 렌더링 엘리먼트로 플래그를 지정할 때 허위 렌더링된 엘리먼트로서 보고될 수 있다. 허위 렌더링된 엘리먼트의 보고는 컨텐츠 제공 업체, 게시자 및 최종 사용자에게 제공될 수 있다. 허위 렌더링된 엘리먼트를 포함하는 디지털 컴포넌트의 배포는 결과적으로 제한, 수정 또는 중단될 수 있다. 디지털 컴포넌트 제공자(234)는 디바이스(210) 또는 애플리케이션(218)이 과도한 양의 허위 렌더링된 엘리먼트를 갖는 경우 신뢰할 수 없는 것으로 간주할 수 있다. 디지털 컴포넌트 공급자는 해당 디바이스 또는 애플리케이션에 대한 컨텐츠 제공을 차단하거나 제한할 수 있다.
일부 구현에서, 상호 작용 결정 모듈(222), 시각적 분석 모듈(224), 증명 생성기(226) 및 선택적으로 집계 엔진(228)과 응답 생성기(230)에 의해 수행되는 프로세스는 더 많거나 더 적은 수의 모듈에 의해 수행될 수 있으며, 각 모듈은 하나 이상의 프로세서를 포함할 수 있다.
일부 구현에서, 운영 체제(208) 및 애플리케이션(218)과 관련하여 도 2a를 참조하여 설명된 방법 및 시스템은 예를 들어 웹 브라우저에 의해 수행될 수 있다. 도 2b는 허위 렌더링된 엘리먼트 상호 작용이 검증되는 다른 환경(250)의 블록도이다. 도 2b에 도시된 바와 같이. 상호 작용 검증 시스템(202)은 웹 브라우저(252)로부터 렌더링 통지(204) 및 상호 작용 경고(206)를 수신하도록 구성된다. 상호 작용 검증 시스템(202)은 웹 리소스(254)의 활성 창(216)에서 렌더링된 엘리먼트(214)의 검증된 외양의 선언(212)을 수신하도록 더 구성된다. 추가적으로, 상호 작용 검증 시스템(202)은 웹 브라우저(252)로부터, 웹 리소스(254)가 디스플레이된 활성 창(216)의 스크린 샷(220)을 수신하도록 구성된다.
도 2b에 도시된 바와 같이, 렌더링된 엘리먼트(264)와의 상호 작용(257)은 디지털 컴포넌트(255), 예를 들어 팝업 창에 대한 "창 닫기" 렌더링된 엘리먼트(264)의 예를 들어 마우스 클릭을 이용한 사용자 상호 작용 또는 선택이다. 도 2b에 도시된 렌더링된 엘리먼트(264)는 허위 렌더링된 엘리먼트 일 수 있으며, 여기서 허위 렌더링된 엘리먼트와의 사용자 상호 작용(예를 들어, 클릭)과 관련된 액션은 사용자 의도와 상이하다. 예를 들어, 렌더링된 엘리먼트(264)와의 상호 작용(257)에 대한 사용자 의도는 디지털 컴포넌트(255)를 닫는 것, 예를 들어 팝업 창을 닫는 것이다. 그러나, 디지털 컴포넌트(255)를 닫는 대신, 렌더링된 엘리먼트(264)와의 상호 작용은 새로운 랜딩 페이지로의 리디렉션을 초래하거나 광고 사기의 전형적인 유형인 광고 클릭으로서 카운트된다.
일부 구현들에서, 상호 작용(257)이 허위 렌더링된 엘리먼트와 라는 결정에 응답하여, 허위 상호 작용 응답이 트리거될 수 있다. 허위 상호 작용 응답이 트리거되는 것에 응답하여, 서버는 사용자가 허위 렌더링된 엘리먼트의 결과로 새로운 랜딩 페이지에 도달하는 것을 방지하기 위해 클라이언트 디바이스의 경로를 인터셉트할 수 있다. 예를 들어, 서버는 새로운 랜딩 페이지로의 리디렉션을 방지함으로써 경로를 인터셉트할 수 있다. 이렇게 하면 허쉬 렌더링된 엘리먼트가 리디렉션되는 랜딩 페이지를 렌더링할 때 리소스 및 처리 사용량이 감소된다.
도 3은 렌더링된 엘리먼트와의 상호 작용을 검증하기 위한 예시적인 프로세스(300)를 도시하는 흐름도이다. 렌더링된 엘리먼트와의 상호 작용을 검증하기 위한 프로세스(300)는 도 2a에 도시된 바와 같이 운영 체제(208) 또는 다른 신뢰(된) 애플리케이션(218)에 의해 수행될 수 있고 및/또는 도 2b에 도시된 바와 같이 웹 브라우저(252)에 의해 수행될 수 있다.
클라이언트 디바이스상의 활성 창에 정의된 렌더링된 엘리먼트에 대한 렌더링 통지가 수신된다(302). 렌더링 통지(204)는 애플리케이션(218) 또는 웹 리소스(254)로부터 시스템(202)에 의해 수신된다. 일부 구현에서, 운영 체제(208) 및/또는 다른 신뢰 애플리케이션 또는 웹 브라우저(252)는 각각 애플리케이션(218) 또는 웹 리소스(254)로부터 렌더링 통지를 수신할 수 있다. 렌더링 통지(204)는 정보, 예를 들어, 활성 창에서 렌더링된 엘리먼트의 위치, 렌더링된 엘리먼트의 안정적인 ID 및 URI, 및 클라이언트 디바이스 또는 웹 사이트의 활성 창(216)에서 볼 수 있는 렌더링된 엘리먼트(214, 264)에 대한 상기 엘리먼트를 호출한 사이트 또는 도메인을 포함한다. 렌더링된 엘리먼트(214, 264)는 클라이언트 디바이스(210)에서 디지털 컴포넌트(205)와 함께 제시되는 엘리먼트일 수 있다.
클라이언트 디바이스의 활성 창에 정의된 렌더링된 엘리먼트의 선언이 수신된다(304). 선언(212)은 제3자에 의해 검증된 선언(212)의 저장소로부터 수신될 수 있다. 렌더링된 엘리먼트의 선언는 클라이언트 디바이스 또는 웹 페이지의 활성 창에서 보이는 상기 렌더링된 엘리먼트의 렌더링 통지를 수신하는 것에 응답하여 운영 체제(208) 또는 웹 브라우저(252)에 의해 요청될 수 있다.
클라이언트 디바이스에서 렌더링된 엘리먼트와의 상호 작용이 검출된다(306). 상호 작용은 예를 들어 클라이언트 디바이스(210) 또는 웹 브라우저(252)의 운영 체제(208)에 의해 검출될 수 있다. 렌더링된 엘리먼트(214)와의 상호 작용(207)은 예를 들어, 터치 스크린상의 사용자 손가락의 터치 다운 또는 클라이언트 디바이스(210)에서 터치 스크린에서 위로 들어 올리는 것일 수 있다. 다른 예에서, 렌더링된 엘리먼트(264)와의 상호 작용(257)은 웹 리소스(254)의 활성 창(216) 내의 마우스 클릭일 수 있다.
수신된 선언에 기초하여, 상호 작용이 활성 창 내의 렌더링된 엘리먼트의 선언 위치에서 발생했는지 여부가 결정된다(308). 도 2a에 도시된 실시예에서, 운영 체제(208)는 상호 작용(207)(예를 들어, 클릭)이 렌더링된 엘리먼트에 의해 점유되는 것으로 선언된 영역 내에서 발생했는지 여부를 조사할 것이다. 상호 작용(207)이 렌더링된 엘리먼트(214)의 선언된 위치에서 발생했음을 검출하는 것은 운영 체제(208) 또는 다른 신뢰 애플리케이션(218)으로부터, 활성 창(216) 내에서 사용자 클릭의 XY 좌표 또는 렌더링된 요소(214)와의 사용자 상호작용의 다른 형태를 지정하는 선택 신호를 수신하는 것을 포함할 수 있다. 일부 구현에서, 렌더링된 엘리먼트의 선언된 위치에서 상호 작용(207) 검출하는 것은 활성 창(216)에서 상기 렌더링된 엘리먼트가 차지하는 선언된 영역에 대한 X'-X" 범위 및 Y'-Y" 좌표 범위를 수신하는 것과, 상호 작용(207)의 X 좌표와 상호 작용(207)의 Y 좌표를 X'-X" 및 Y'-Y"의 범위와 비교하는 것과, 그리고 상호 작용(207)의 X 좌표 및 상호 작용(207)의 Y 좌표가 각각 X'-X" 및 Y'-Y" 범위 내에 있는지 여부를 결정하는 것을 포함한다. 도 2b에 도시된 실시예에서, 웹 브라우저(252)는 상호 작용(257)이 렌더링된 엘리먼트(264)에 의해 점유되는 것으로 선언된 영역 내에서 발생했는지 여부를 검사할 것이다.
상호 작용이 활성 창 내의 렌더링된 엘리먼트의 선언된 위치에서 발생했다는 결정에 대해, 클라이언트 디바이스상의 활성 창의 스크린 샷이 캡처된다(310). 렌더링된 엘리먼트(214, 264)가 악의적일 수 있음을 애플리케이션(218) 또는 웹 리소스(254)에 통지하기 전에, 운영 체제(208) 또는 웹 브라우저(252)는 활성 창(216)의 스크린 샷(220)을 캡처할 수 있다. 스크린 샷은 예를 들어 (예를 들어, 디바이스에 설치된 카메라 애플리케이션의) 스크린 샷 기능의 활성화를 트리거하는 신호를 생성함으로써 캡처될 수 있다. 생성된 신호는 카메라 애플리케이션으로 전달되어 카메라 애플리케이션이 클라이언트 디바이스상의 활성 창의 스크린 샷을 캡처하게 할 수 있다. 일부 구현에서, 디바이스 운영 체제는 디스플레이 프레임 버퍼를 복사함으로써 화면 캡처 동작을 직접 수행할 수 있다. 그런 다음 캡처된 스크린 샷은 클라이언트 디바이스 및/또는 서버 구현 기능에 설치된 하나 이상의 다른 애플리케이션에 의한 평가를 위해 사용될 수 있다.
스크린 샷내의 렌더링된 엘리먼트의 시각적 외양은 렌더링된 엘리먼트의 선언된 외양으로 검증된다(312). 운영 체제(208) 또는 웹 브라우저(252)는 선언(212)에서 상기 렌더링된 엘리먼트(214, 264)의 선언된 외양과 스크린 샷(220)을 비교할 것이다. 이 비교는 예를 들어 픽셀별 비교 또는 다른 비교(예를 들어, 블록 또는 특징 기반 비교)일 수 있다. 스크린 샷(220)에서 렌더링된 엘리먼트(214, 264)의 외양과 렌더링된 엘리먼트(214,264)에 대한 선언(212)의 선언 외양이 매칭하는 경우, 운영 체제(208) 또는 웹 브라우저(252)는 렌더링된 엘리먼트(314)와의 상호 작용에 대한 상호 작용 증명(221)을 생성할 것이다. 상호 작용 증명 토큰(221)은 도 2a를 참조하여 위에서 더 상세히 설명된 바와 같이, 상호 작용(207, 257)에 관한 정보를 포함할 수 있다.
일부 구현에서, 렌더링된 엘리먼트(214, 264)를 각각 렌더링한 애플리케이션(218) 또는 웹 리소스(254)는 "손가락 아래로"에 대한 상호 작용 증명 토큰(221)을 동일한 렌더링된 엘리먼트(214, 264)에 대한 "손가락 라애로" 상호 작용과 페어링할 수 있고, 측정, 감사 또는 다른 보고 기반 액션을 위해 상기 페어링된 상호 작용 증명 토큰(221)을 디지털 컴포넌트 제공자(234) 또는 기타 이해 당사자에게 제공할 수 있다.
상호 작용이 활성 창 내에서 렌더링된 엘리먼트의 선언 위치에서 발생하지 않았다는 결정에 대해, 시스템은 렌더링된 엘리먼트와의 상호 작용에 대한 상호 작용 증명 생성을 자제한다(316). 일부 구현에서, 허위 렌더링된 엘리먼트 응답이 운영 체제(208) 또는 웹 브라우저(252)에 의해 생성되어, 엘리먼트(214, 264)를 렌더링했거나 사용자가 그 렌더링된 엘리먼트와 상호 작용했다고 주장한 애플리케이션(218) 또는 웹 리소스(254)가 악의적일 수 있음을 서버(203)에 알리도록 서버(203)에 제공될 수 있다.
도 4는 전술한 동작들을 수행하는데 사용될 수 있는 예시적인 컴퓨터 시스템(400)의 블록도이다. 시스템(400)은 프로세서(410), 메모리(420), 저장 디바이스(430) 및 입/출력 디바이스(440)를 포함한다. 컴포넌트(410, 420, 430 및 440) 각각은 예를 들어 시스템 버스(450)를 사용하여 상호 연결될 수 있다. 프로세서(410)는 시스템(400) 내에서 실행하기 위한 명령들을 처리할 수 있다. 일부 구현에서, 프로세서(410)는 단일 스레드 프로세서이다. 다른 구현에서, 프로세서(410)는 다중 스레드 프로세서이다. 프로세서(410)는 메모리(420) 또는 저장 디바이스(430)에 저장된 명령들을 처리할 수 있다.
메모리(420)는 시스템(400) 내에 정보를 저장한다. 일 구현에서, 메모리(420)는 컴퓨터 판독 가능 매체이다. 일부 구현에서, 메모리(420)는 휘발성 메모리 유닛이다. 다른 구현에서, 메모리(420)는 비-휘발성 메모리 유닛이다.
저장 디바이스(430)는 시스템(400)을 위한 대용량 저장 디바이스를 제공할 수 있다. 일부 구현에서, 저장 디바이스(430)는 컴퓨터 판독 가능 매체이다. 다양한 다른 구현에서, 저장 디바이스(430)는 예를 들어, 하드 디스크 디바이스, 광 디스크 디바이스, 네트워크를 통해 다수의 컴퓨팅 디바이스(예를 들어, 클라우드 저장 디바이스)에 의해 공유되는 저장 디바이스, 또는 일부 다른 대용량 저장 디바이스를 포함할 수 있다.
입/출력 디바이스(440)는 시스템(400)에 대한 입/출력 동작을 제공한다. 일부 구현에서, 입/출력 디바이스(440)는 네트워크 인터페이스 디바이스, 예를 들어, 이더넷 카드, 직렬 통신 디바이스(예를 들어, RS-232 포트) 및/또는 무선 인터페이스 디바이스(예를 들어, 802.11 카드) 중 하나 이상을 포함할 수 있다. 다른 구현에서, 입/출력 디바이스는 입력 데이터를 수신하고 출력 데이터를 외부 디바이스(460), 예를 들어 키보드, 프린터 및 디스플레이 디바이스로 전송하도록 구성된 드라이버 디바이스를 포함할 수 있다. 그러나, 모바일 컴퓨팅 디바이스, 모바일 통신 디바이스, 셋탑 박스 텔레비전 클라이언트 디바이스 등과 같은 다른 구현도 사용될 수 있다.
예시적인 처리 시스템이 도 4에서 설명되었지만, 본 명세서에서 설명된 주제 및 기능적 동작들의 구현은 다른 유형의 디지털 전자 회로, 또는 본 명세서에 개시된 구조 및 그의 구조적 등가물을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다.
본 명세서에 기술된 주제 및 동작들의 실시예는 디지털 전자 회로, 또는 본 명세서에 개시된 구조 및 그의 구조적 등가물을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 기술된 주제의 실시예는 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 저장 미디어(또는 매체) 상에 인코딩된 컴퓨터 프로그램 명령의 하나 이상의 모듈로서 구현될 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령들은 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치의 전송을 위해 정보를 인코딩하도록 생성된 인위적으로 생성된 전파 신호, 예를 들어 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다.
컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 이에 포함될 수 있다. 더욱이, 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지가 될 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 물리적 컴포넌트 또는 매체(예를 들어, 다중 CD, 디스크 또는 기타 저장 디바이스)일 수 있거나 이에 포함될 수 있다.
본 명세서에 설명된 동작들은 하나 이상의 컴퓨터 판독 가능 저장 디바이스에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작으로서 구현될 수 있다.
"데이터 처리 장치"라는 용어는 예를 들어 프로그램 가능 프로세서, 컴퓨터, 칩상의 시스템, 또는 전술한 것들의 다수 또는 조합을 포함하여 데이터 처리를 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 장치는 특수 목적의 논리 회로, 예를 들어 FPGA(필드 프로그래밍 가능 게이트 어레이) 또는 ASIC(애플리케이션 특정 집적 회로)를 포함할 수 있다. 장치는 또한 하드웨어 외에도 문제의 컴퓨터 프로그램에 대한 실행 환경을 만드는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스 플랫폼 런타임 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 다른 컴퓨팅 모델 인프라를 구현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파일 또는 해석 언어, 선언적 또는 절차적 언어를 포함하여 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램이나 모듈, 컴포넌트, 서브 루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하여 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있지만 반드시 그럴 필요는 없다. 프로그램은 다른 프로그램 또는 데이터(예를 들어, 마크 업 언어 문서에 저장된 하나 이상의 스크립트)를 포함하는 파일의 일부, 해당 프로그램 전용 단일 파일 또는 다수의 조정 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 위치하거나 다수의 사이트에 분산되고 통신 네트워크로 상호 연결된 다수의 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에 설명된 프로세스 및 논리 흐름은 입력 데이터에 대해 동작하여 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 FPGA 또는 ASIC과 특수 목적 로직 회로로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예로서 범용 및 특수 목적의 마이크로 프로세서 모두를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령과 데이터를 수신한다. 컴퓨터의 필수 엘리먼트는 명령들에 따라 동작을 수행하기 위한 프로세서와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어 자기, 광 자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 데이터를 전송하거나 둘 모두를 하도록 작동 가능하게 결합된다. 그러나 컴퓨터에는 이러한 디바이스들이 필요하지 않다. 더욱이, 컴퓨터는 다른 디바이스(예를 들어, 모바일 전화기, PDA, 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 디바이스(예를 들어, 범용 직렬 버스(USB) 플래시 드라이브)에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터 저장에 적합한 디바이스에는 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스); 자기 디스크(예를 들어, 내부 하드 디스크 또는 이동식 디스크); 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함한 모든 형태의 비-휘발성 메모리, 미디어 및 메모리 디바이스가 포함된다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에 기술된 주제의 실시예는 사용자에게 정보를 표시하기 위한 디스플레이 디바이스(예를 들어, CRT(음극선 관) 또는 LCD(액정 디스플레이) 모니터) 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 갖는 컴퓨터 상에 구현될 수 있다. 사용자와의 상호 작용을 제공하기 위해 다른 종류의 디바이스가 사용될 수도 있는데, 예를 들어, 사용자에게 제공되는 피드백은 예를 들어 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하여 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자가 사용하는 디바이스로 문서를 전송하고 그로부터 문서를 수신함으로써 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 클라이언트 디바이스상의 웹 브라우저로 웹 페이지를 전송함으로써 사용자와 상호 작용할 수 있다.
본 명세서에 기술된 주제의 실시예는 백엔드 컴포넌트(예를 들어, 데이터 서버)를 포함하거나, 미들웨어 컴포넌트(예를 들어, 애플리케이션 서버)를 포함하거나 프런트 엔드 컴포넌트(예를 들어, 사용자가 본 명세서에 설명된 주제의 구현과 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터)를 포함하거나 이러한 백엔드, 미들웨어 또는 프런트 엔드 컴포넌트 중 하나 이상의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 연결될 수 있다. 통신 네트워크의 예에는 근거리 통신망("LAN") 및 광역 네트워크("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어-투-피어 네트워크(예를 들어, 애드혹 피어-투-피어 네트워크)가 포함될 수 있다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 개별 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다. 일부 실시예에서, 서버는 (클라이언트 디바이스와 상호 작용하는 사용자에게 데이터를 표시하고 사용로부터 사용자 입력을 수신하기 위해) 데이터(예를 들어, HTML 페이지)를 클라이언트 디바이스로 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용 결과)는 서버에서 클라이언트 디바이스로부터 수신될 수 있다.
사용자는 본 명세서에 설명된 시스템, 프로그램 또는 기능이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 위치에 대한 정보)의 수집을 가능하게 할 수 있는지 여부 및 사용자가 서버로부터 개인화된 컨텐츠 또는 통신을 전송받는지 여부에 대해 사용자가 선택할 수 있도록 하는 컨트롤을 제공받을 수 있다. 또한, 특정 데이터는 개인 식별 정보가 제거될 수 있도록 저장 또는 사용되기 전에 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 개인 식별 정보가 사용자에 대해 결정되지 않도록 사용자의 신원이 처리될 수 있거나, 사용자의 특정 위치가 결정되지 확인되지 않도록 사용자의 지리적 위치는 위치 정보가 획득된 곳(예를 들어, 도시, 우편 번호 또는 주 수준)으로 일반화될 수 있다. 따라서 사용자는 사용자에 관해 수집되는 정보, 해당 정보가 사용되는 방법, 정보 보유 정책 및 사용자에게 제공되는 정보를 제어할 수 있다.
본 명세서에는 많은 특정 구현 세부 사항이 포함되어 있지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 것에 대한 제한으로 해석되어서는 안되며, 오히려 특정 발명의 특정 실시예에 특정된 특징들의 설명으로 해석되어야 한다. 별도의 실시예의 맥락에서 본 명세서에 설명된 특정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 맥락에서 설명된 다양한 특징은 또한 다중 실시예에서 개별적으로 또는 임의의 적절한 서브 조합으로 구현될 수 있다. 더욱이, 특징들이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 심지어 처음에 그렇게 주장될 수도 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우 조합으로부터 제외될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 대한 것일 수 있다.
유사하게, 동작들은 특정 순서로 도면에 도사되지만, 이는 바람직한 결과를 달성하기 위해 그러한 동작들이 특정 순서 또는 순차적 순서로 수행되거나 모든 예시된 동작들이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서, 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 더욱이, 위에서 설명된 실시예에서 다양한 시스템 컴포넌트의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 설명된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키징될 수 있음을 이해해야 한다.
따라서, 주제의 특정 실시예들이 설명되었다. 다른 실시예는 다음 청구항의 범위 내에 있다. 일부 경우에, 청구 범위에 언급된 동작들은 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 또한, 첨부된 도면에 도시된 프로세스들은 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적인 순서를 반드시 필요로 하지 않는다. 특정 구현에서는 멀티 태스킹 및 병렬 처리가 유리할 수 있다.

Claims (16)

  1. 데이터 처리 장치에 의해 수행되는 방법으로서, 상기 방법은,
    클라이언트 디바이스의 활성 창에 정의된 렌더링된 엘리먼트의 렌더링 통지를 수신하는 단계;
    클라이언트 디바이스의 활성 창에 정의된 상기 렌더링된 엘리먼트의 선언(declaration)을 수신하는 단계와;
    클라이언트 디바이스에서 상기 렌더링된 엘리먼트와의 상호 작용을 검출하는 단계와;
    수신된 선언에 기초하여, 상호 작용이 활성 창 내의 상기 렌더링된 엘리먼트의 선언된 위치에서 발생되었는지 여부를 결정하는 단계와; 그리고
    상호 작용이 선언된 위치에서 발생되었는지 여부의 결정에 기초하여 상호 작용을 처리하는 단계를 포함하고, 상기 상호 작용을 처리하는 단계는,
    상호 작용이 렌더링된 엘리먼트의 선언된 위치에서 발생되었다는 결정에 응답하여:
    클라이언트 디바이스의 활성 창의 스크린 샷을 캡처하는 단계;
    렌더링된 엘리먼트의 선언된 외양을 이용하여 스크린 샷 내의 렌더링된 엘리먼트의 시각적 외양을 검증하는 단계;
    렌더링된 엘리먼트와의 상호 작용에 대한 상호 작용 증명을 생성하여 렌더링된 엘리먼트의 선언된 위치에서 발생된 상호 작용으로서 상기 상호 작용을 검증하는 단계, 상기 상호 작용 증명은 사용자 의도를 포함하고;
    렌더링된 엘리먼트의 시각적 외양이 사용자 의도와 상이한지 여부에 기초하여 상호 작용이 사용자 의도와 상이한지 여부를 결정하는 단계;
    상호작용이 사용자 의도와 상이하다는 결정에 응답하여, 렌더링된 엘리먼트가 허위 렌더링된 엘리먼트라고 결정하고 허위 상호작용 응답을 트리거하는 단계; 및
    허위 상호 작용 응답을 트리거하는 것에 응답하여, 허위 렌더링된 엘리먼트의 랜딩 페이지로의 클라이언트 디바이스의 경로를 인터셉트하는 단계; 및
    상호 작용이 렌더링된 엘리먼트의 선언된 위치에서 발생되지 않았다는 결정에 응답하여:
    렌더링된 엘리먼트와의 상호 작용에 대한 상호 작용 증명 생성을 억제하는 단계를 포함하는 데이터 처리 장치에 의해 수행되는 방법.
  2. 제1항에 있어서,
    렌더링 통지는,
    i) 활성 창내의 렌더링된 엘리먼트의 위치, ii) 렌더링된 엘리먼트의 안정적인 ID 및 URI, 및 iii) 렌더링된 엘리먼트를 렌더링한 사이트 또는 도메인 중 하나 이상을 포함하는 데이터 처리 장치에 의해 수행되는 방법.
  3. 제1항에 있어서,
    렌더링된 엘리먼트의 선언을 수신하는 단계는,
    렌더링된 엘리먼트의 검증된 외양을 수신하는 단계를 포함하는 데이터 처리 장치에 의해 수행되는 방법.
  4. 제3항에 있어서,
    검증된 외양은 고유한 안정된 ID 및/또는 안정된 URL 및 검증된 모양을 포함하는 데이터 처리 장치에 의해 수행되는 방법.
  5. 제1항에 있어서,
    렌더링된 엘리먼트의 선언된 외양으로 스크린 샷 내의 렌더링된 엘리먼트의 시각적 외양을 검증하는 단계는,
    이미지 매칭 알고리즘을 이용하는 단계를 포함하는 데이터 처리 장치에 의해 수행되는 방법.
  6. 제1항에 있어서,
    상호 작용을 검출하는 단계는,
    활성 창 내에서 사용자 클릭의 XY 좌표를 지정하는 선택 신호를 수신하는 단계를 포함하는 데이터 처리 장치에 의해 수행되는 방법.
  7. 제1항에 있어서,
    렌더링된 엘리먼트의 복수의 인스턴스화와 복수의 상호 작용에 대한 상호 작용 증명을 집계하는 단계를 더 포함하는 데이터 처리 장치에 의해 수행되는 방법.
  8. 제1항에 있어서,
    상호 작용 증명은,
    i) 선언된 외양의 안정적인 ID 및/또는 URI, ii) 상호 작용의 타임 스탬프, iii) 디바이스 무결성 토큰, iv) 클라이언트 디바이스에 의한 디지털 서명, v) 상호 작용의 XY 좌표, 및 vi) 클라이언트 디바이스 공개키 중 하나 이상을 포함하는 데이터 처리 장치에 의해 수행되는 방법.
  9. 제8항에 있어서,
    선언된 외양의 안정적인 ID 및/또는 URI은 상호 작용의 사용자 의도를 포함하는 데이터 처리 장치에 의해 수행되는 방법.
  10. 제9항에 있어서,
    사용자 의도는 렌더링된 엘리먼트의 외양에 의해 전달되는 액션에 대응하는 데이터 처리 장치에 의해 수행되는 방법.
  11. 제9항에 있어서,
    사용자 의도를 포함하는 상호 작용 증명에 응답하여, 사용자 의도에 기초하여 상호 작용의 보고를 수정하는 단계를 더 포함하는 데이터 처리 장치에 의해 수행되는 방법.
  12. 삭제
  13. 삭제
  14. 제1항에 있어서,
    상호 작용이 렌더링된 엘리먼트의 선언된 위치에서 발생되지 않았다는 결정에 응답하여, 허위 상호 작용 응답을 트리거하는 단계를 더 포함하는 데이터 처리 장치에 의해 수행되는 방법.
  15. 컴퓨터 프로그램으로 인코딩된 컴퓨터 저장 매체로서, 상기 프로그램은 데이터 처리 장치에 의해 실행될 때 데이터 처리 장치로 하여금 동작들을 수행하게 하는 명령들을 포함하고, 상기 동작들은,
    클라이언트 디바이스의 활성 창에 정의된 렌더링된 엘리먼트의 렌더링 통지를 수신하는 동작과;
    클라이언트 디바이스의 활성 창에 정의된 렌더링된 엘리먼트의 선언을 수신하는 동작과;
    클라이언트 디바이스에서 상기 렌더링된 엘리먼트와의 상호 작용을 검출하는 동작과;
    수신된 선언에 기초하여, 상호 작용이 활성 창 내의 상기 렌더링된 엘리먼트의 선언된 위치에서 발생되었는지 여부를 결정하는 동작과; 그리고
    상호 작용이 선언된 위치에서 발생되었는지 여부에 기초하여 상호 작용을 처리하는 동작을 포함하고, 상기 상호 작용을 처리하는 동작은,
    상호 작용이 렌더링된 엘리먼트의 선언된 위치에서 발생되었다는 결정에 응답하여:
    클라이언트 디바이스의 활성 창의 스크린 샷을 캡처하는 동작;
    렌더링된 엘리먼트의 선언된 외양을 이용하여 스크린 샷 내의 렌더링된 엘리먼트의 시각적 외양을 검증하는 동작; 및
    렌더링된 엘리먼트와의 상호 작용에 대한 상호 작용 증명을 생성하여 렌더링된 엘리먼트의 선언된 위치에서 발생된 상호 작용으로서 상기 상호 작용을 검증하는 동작, 상기 상호 작용 증명은 사용자 의도를 포함하고;
    렌더링된 엘리먼트의 시각적 외양이 사용자 의도와 상이한지 여부에 기초하여 상호 작용이 사용자 의도와 상이한지 여부를 결정하는 동작;
    상호작용이 사용자 의도와 상이하다는 결정에 응답하여, 렌더링된 엘리먼트가 허위 렌더링된 엘리먼트라고 결정하고 허위 상호작용 응답을 트리거하는 동작;
    허위 상호 작용 응답을 트리거하는 것에 응답하여, 허위 렌더링된 엘리먼트의 랜딩 페이지로의 클라이언트 디바이스의 경로를 인터셉트하는 동작; 및
    상호 작용이 렌더링된 엘리먼트의 선언 위치에서 발생되지 않았다는 결정에 응답하여:
    렌더링된 엘리먼트와의 상호 작용에 대한 상호 작용 증명 생성을 억제하는 동작을 포함하는 컴퓨터 저장 매체.
  16. 시스템으로,
    클라이언트 디바이스; 및
    클라이언트 디바이스와 상호 작용하고 동작들을 수행하도록 동작할 수 있는 하나 이상의 컴퓨터를 포함하고, 상기 동작들은,
    클라이언트 디바이스의 활성 창에 정의된 렌더링된 엘리먼트의 렌더링 통지를 수신하는 동작과;
    클라이언트 디바이스의 활성 창에 정의된 렌더링된 엘리먼트의 선언을 수신하는 동작과;
    클라이언트 디바이스에서 상기 렌더링된 엘리먼트와의 상호 작용을 검출하는 동작과;
    수신된 선언에 기초하여, 상호 작용이 활성 창 내의 상기 렌더링된 엘리먼트의 선언된 위치에서 발생되었는지 여부를 결정하는 동작과; 그리고
    상호 작용이 선언된 위치에서 발생되었는지 여부에 기초하여 상호 작용을 처리하는 동작을 포함하고, 상기 상호 작용을 처리하는 동작은,
    상호 작용이 렌더링된 엘리먼트의 선언된 위치에서 발생되었다는 결정에 응답하여:
    클라이언트 디바이스의 활성 창의 스크린 샷을 캡처하는 동작;
    렌더링된 엘리먼트의 선언된 외양을 이용하여 스크린 샷 내의 렌더링된 엘리먼트의 시각적 외양을 검증하는 동작;
    렌더링된 엘리먼트와의 상호 작용에 대한 상호 작용 증명을 생성하여 렌더링된 엘리먼트의 선언된 위치에서 발생된 상호 작용으로서 상기 상호 작용을 검증하는 동작, 상기 상호 작용 증명은 사용자 의도를 포함하고;
    렌더링된 엘리먼트의 시각적 외양이 사용자 의도와 상이한지 여부에 기초하여 상호 작용이 사용자 의도와 상이한지 여부를 결정하는 동작;
    상호작용이 사용자 의도와 상이하다는 결정에 응답하여, 렌더링된 엘리먼트가 허위 렌더링된 엘리먼트라고 결정하고 허위 상호작용 응답을 트리거하는 동작;
    허위 상호 작용 응답을 트리거하는 것에 응답하여, 허위 렌더링된 엘리먼트의 랜딩 페이지로의 클라이언트 디바이스의 경로를 인터셉트하는 동작; 및
    상호 작용이 렌더링된 엘리먼트의 선언 위치에서 발생되지 않았다는 결정에 응답하여:
    렌더링된 엘리먼트와의 상호 작용에 대한 상호 작용 증명 생성을 억제하는 동작을 포함하는 시스템.
KR1020217022220A 2020-05-22 2020-05-22 부정 조작 방지된(Tamper-proof) 상호 작용 데이터 KR102507826B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/034252 WO2021236101A1 (en) 2020-05-22 2020-05-22 Tamper-proof interaction data

Publications (2)

Publication Number Publication Date
KR20210144659A KR20210144659A (ko) 2021-11-30
KR102507826B1 true KR102507826B1 (ko) 2023-03-07

Family

ID=71083729

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217022220A KR102507826B1 (ko) 2020-05-22 2020-05-22 부정 조작 방지된(Tamper-proof) 상호 작용 데이터

Country Status (6)

Country Link
US (2) US11836209B2 (ko)
EP (1) EP3938933A1 (ko)
JP (1) JP7164726B2 (ko)
KR (1) KR102507826B1 (ko)
CN (1) CN114026559A (ko)
WO (1) WO2021236101A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220321354A1 (en) * 2021-03-30 2022-10-06 Cloudflare, Inc. Using a zero-knowledge proof to prove knowledge that a website visitor is a legitimate human user
WO2024076457A1 (en) * 2022-10-07 2024-04-11 Google Llc Text-based validation of user interface to confirm user intent

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140115701A1 (en) * 2012-10-18 2014-04-24 Microsoft Corporation Defending against clickjacking attacks
US20180324208A1 (en) * 2015-04-13 2018-11-08 Secful, Inc. System and method for identifying and preventing malicious api attacks

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070300178A1 (en) * 2006-06-21 2007-12-27 Mcardle James M Handling of secondary pop-ups or pop-behinds within a web browser
US20090292924A1 (en) 2008-05-23 2009-11-26 Johnson Erik J Mechanism for detecting human presence using authenticated input activity
US8667417B1 (en) * 2008-09-01 2014-03-04 Google Inc. Methods and systems for pop-up suppression
US20150205489A1 (en) * 2010-05-18 2015-07-23 Google Inc. Browser interface for installed applications
US8671389B1 (en) * 2011-09-27 2014-03-11 Google Inc. Web application resource manager on the web and localizable components
US9274913B2 (en) * 2012-03-08 2016-03-01 Google Inc. Event pages for web applications and extensions
US20140049462A1 (en) * 2012-08-20 2014-02-20 Google Inc. User interface element focus based on user's gaze
US9588636B1 (en) * 2013-12-17 2017-03-07 Google Inc. Exit full screen mode of a web browser on content-based event
US9607332B1 (en) * 2014-02-07 2017-03-28 Google Inc. Embedded web application gallery
US10223742B2 (en) * 2015-08-26 2019-03-05 Google Llc Systems and methods for selecting third party content based on feedback
US10679244B1 (en) * 2016-03-04 2020-06-09 Amazon Technologies, Inc. Publisher identity verification through cross-domain barrier
EP3349137A1 (en) 2017-01-11 2018-07-18 Sap Se Client-side attack detection in web applications
JP7250112B2 (ja) * 2020-05-19 2023-03-31 グーグル エルエルシー クラウドソーシングを用いて偽情報に対処すること

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140115701A1 (en) * 2012-10-18 2014-04-24 Microsoft Corporation Defending against clickjacking attacks
US20180324208A1 (en) * 2015-04-13 2018-11-08 Secful, Inc. System and method for identifying and preventing malicious api attacks

Also Published As

Publication number Publication date
KR20210144659A (ko) 2021-11-30
US20240054173A1 (en) 2024-02-15
JP2022536568A (ja) 2022-08-18
US20230073437A1 (en) 2023-03-09
CN114026559A (zh) 2022-02-08
JP7164726B2 (ja) 2022-11-01
US11836209B2 (en) 2023-12-05
EP3938933A1 (en) 2022-01-19
WO2021236101A1 (en) 2021-11-25

Similar Documents

Publication Publication Date Title
EP2433258B1 (en) Protected serving of electronic content
US8874639B2 (en) Determining advertising effectiveness outside of a social networking system
US10558789B2 (en) Creating and implementing scalable and effective multimedia objects with human interaction proof (HIP) capabilities, with challenges comprising different levels of difficulty based on the degree on suspiciousness
US9324085B2 (en) Method and system of generating digital content on a user interface
US20240054173A1 (en) Tamper-proof interaction data
US10373195B2 (en) Methods and systems to evaluate and determine degree of pretense in online advertisement
US9001979B2 (en) Apparatus and method for anonymously presenting targeted advertisements and desirable media content in association with a virtual currency
US20130326357A1 (en) Interactive branding and advertising using dynamic user input
US20230334142A1 (en) Data integrity with trusted code attestation tokens
US20190139077A1 (en) Providing reporting and analysis for campaign-driven messages and websites
US10679244B1 (en) Publisher identity verification through cross-domain barrier
Shaari et al. An extensive study on online and mobile ad fraud
JP7250112B2 (ja) クラウドソーシングを用いて偽情報に対処すること
US11423438B2 (en) Real-time online asset display campaign auditing system
US20230102116A1 (en) Verifying the trustworthiness of web applications
CN115087978A (zh) 用于欺诈检测的跨域频率滤波器
GB2569867A (en) Providing reporting and analysis for campaign-driven messages and websites

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