KR20210112359A - 브라우저 쿠키 보안 - Google Patents

브라우저 쿠키 보안 Download PDF

Info

Publication number
KR20210112359A
KR20210112359A KR1020217024826A KR20217024826A KR20210112359A KR 20210112359 A KR20210112359 A KR 20210112359A KR 1020217024826 A KR1020217024826 A KR 1020217024826A KR 20217024826 A KR20217024826 A KR 20217024826A KR 20210112359 A KR20210112359 A KR 20210112359A
Authority
KR
South Korea
Prior art keywords
request
token
cookie
recipient
integrity
Prior art date
Application number
KR1020217024826A
Other languages
English (en)
Inventor
강 왕
마르셀 엠. 모티 융
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20210112359A publication Critical patent/KR20210112359A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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
    • G06F21/6263Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Abstract

방법, 시스템 및 장치는 요청의 무결성을 검증하기 위한 장치를 포함한다. 일부 양태에서, 방법은 애플리케이션으로부터, 애플리케이션의 증명 토큰을 포함하는 요청을 수신하는 단계를 포함한다. 증명 토큰은 적어도 애플리케이션의 공개키 및 증명 토큰이 생성된 시간을 나타내는 토큰 생성 시간을 포함하는 데이터 세트를 포함한다. 증명 토큰은 또한 데이터 세트의 서명을 포함한다. 서명은 공개키에 대응하는 개인키를 사용하여 생성된다. 요청의 무결성은 증명 토큰을 사용하여 검증된다. 검증은 토큰 생성 시간이 상기 요청이 수신된 시간의 임계 시간 기간 내에 있다는 결정 및 데이터 세트가 수정되지 않았다는 결정에 기초하여 요청의 무결성이 유효하다고 결정하는 단계를 포함한다.

Description

브라우저 쿠키 보안
본 출원은 국제 출원으로 2019년 8월 13일자로 출원된 미국 출원 번호 62/886,195의 이익을 주장한다. 전술한 출원의 개시는 그 전체가 참고로 본 명세서에 포함된다.
본 명세서는 브라우저 쿠키의 인증 및 보안과 관련된 기술을 설명한다.
브라우저 쿠키는 웹 브라우저가 사용자 디바이스에 저장하는 소량의 데이터이다. 브라우저 쿠키는 상태 정보 저장, 브라우징 활동 기록, 사용자 인증 등을 포함하여 다양한 용도로 사용될 수 있다. 당사자(first-party) 쿠키와 제3자 쿠키를 비롯한 여러 유형의 쿠키가 있다. 당사자 쿠키는 사용자가 직접 보는 도메인, 즉 브라우저의 주소 표시줄에서 볼 수 있는 도메인이 생성하는 쿠키이다. 반면에, 제3자 쿠키는 주소 표시줄에서 볼 수 있는 도메인과 다른 도메인이 생성 및/또는 액세스하는 쿠키이다.
일반적으로, 본 명세서에 기술된 주제의 하나의 혁신적인 양태는 클라이언트 디바이스의 애플리케이션으로부터, 애플리케이션의 증명 토큰을 포함하는 요청을 수신하는 단계와, 상기 증명 토큰은 적어도 애플리케이션의 공개키 및 증명 토큰이 생성된 시간을 나타내는 토큰 생성 시간을 포함하는 데이터 세트; 및 데이터 세트의 서명을 포함하고, 상기 서명은 공개키에 대응하는 개인키를 사용하여 생성되고; 그리고 증명 토큰을 사용하여 요청의 무결성을 검증하는 단계와, 상기 검증하는 단계는 토큰 생성 시간이 상기 요청이 수신된 시간의 임계 기간 내에 있는지 여부를 결정하는 단계와; 공개키 및 상기 개인키를 사용하여 생성된 데이터 세트의 서명을 사용하여, 증명 토큰이 생성된 후 데이터 세트가 수정되었는지 여부를 결정하는 단계와; 그리고 토큰 생성 시간이 상기 요청이 수신된 시간의 임계 기간 내에 있다는 결정 및 증명 토큰이 변경된 후에 데이터 세트가 수정되지 않았다는 결정에 적어도 기초하여 상기 요청의 무결성이 유효하다고 결정하는 단계를 포함하고; 그리고 요청의 무결성이 유효하다는 결정에 응답하여 요청에 응답하는 단계를 포함하는 방법에서 구현된다. 이 양태의 다른 구현은 컴퓨터 저장 디바이스에 인코딩된 방법의 양태를 수행하도록 구성된 대응하는 장치, 시스템 및 컴퓨터 프로그램을 포함한다.
이들 및 다른 구현은 각각 다음의 특징들 중 하나 이상을 선택적으로 포함할 수 있다. 일부 양태에서 애플리케이션은 웹 브라우저이다.
일부 양태에서, 데이터 세트는 웹 브라우저의 무결성이 유효한지 여부를 지정하는 브라우저 무결성 토큰을 포함한다. 요청의 무결성이 유효하다고 결정하는 단계는 브라우저 무결성 토큰이 웹 브라우저의 무결성이 유효함을 지정한다고 결정하는 단계를 포함할 수 있다.
일부 양태에서, 요청은 애플리케이션으로의 전달을 위한 컨텐츠에 대한 것이다. 양태는 요청이 유효하다는 결정에 응답하여 컨텐츠를 제공하는 단계를 포함할 수 있다. 데이터 세트는 요청에 특정된(specific to) 데이터를 포함하는 페이로드를 포함할 수 있다. 요청은 사용자 데이터를 삭제하라는 요청일 수 있고, 페이로드는 사용자 데이터를 삭제하기 위한 동작을 지정하는 데이터를 포함할 수 있다.
일부 양태에서, 증명 토큰은 요청의 복수의 수신자 요청 각각에 대해, 수신자의 공개키를 사용하여 클라이언트 디바이스에 저장된 수신자 쿠키를 암호화한 암호화 결과를 포함하는 개별 암호화된 쿠키 요소를 포함하는 암호화된 쿠키 요소 그룹을 포함한다. 각 수신자에 대한 개별 암호화된 쿠키 요소의 암호화 결과는 수신자의 쿠키 및 데이터 세트의 서명의 조합을 암호화한 암호화 결과를 포함한다. 요청의 무결성이 유효하다고 결정하는 단계는 주어진 수신자에 의해 주어진 수신자의 개인키를 사용하여, 복호화된 쿠키 요소를 생성하기 위해 주어진 암호화된 쿠키 요소를 복호화하는 단계와; 복호화된 쿠키 요소가 데이터 세트의 서명과 매칭하는 제1 부분을 포함한다고 결정하는 단계와; 그리고 복호화된 쿠키 요소가 주어진 수신자의 쿠키 식별자와 매칭하는 제2 부분을 포함한다고 결정하는 단계를 포함할 수 있다..
일부 양태에서, 각 수신자에 대한 개별 암호화된 쿠키 요소의 암호화 결과는 암호화 초기화 벡터로서 데이터 세트의 서명을 사용하여 수신자의 쿠키를 암호화한 암호화 결과를 포함할 수 있다. 요청의 무결성이 유효하다고 결정하는 단계는 주어진 수신자에 의해 암호화 초기화 벡터로서 주어진 수신자의 개인키 및 데이터 세트의 서명을 사용하여, 복호화된 쿠키 요소를 생성하기 위해 주어진 암호화된 쿠키 요소를 복호화하는 단계와; 그리고 복호화된 쿠키 요소가 주어진 수신자의 쿠키 식별자와 매칭한다고 결정하는 단계를 포함할 수 있다. 일부 양태는 요청의 무결성이 유효하지 않다는 결정이 내려질 때마다 요청을 무시하는 단계를 포함할 수 있다.
일반적으로, 본 명세서에 기술된 주제의 또 다른 혁신적인 양태는 클라이언트 장치의 웹 브라우저에서, 적어도 (i) 웹 브라우저의 공개키, (ii) 증명 토큰이 생성된 시간을 나타내는 토큰 생성 시간, 및 (iii) 데이터 세트의 서명을 포함하는 데이터 세트를 갖는 증명 토큰을 생성하는 단계와, 상기 서명은 상기 공개키에 대응하는 개인키를 사용하여 생성되고; 그리고 인증 토큰을 포함하는 요청을 수신자에게 전송하는 단계를 포함하는 방법으로 수현될 수 있다. 이 양태의 다른 구현은 컴퓨터 저장 디바이스에 인코딩된 방법의 양태를 수행하도록 구성된 대응하는 장치, 시스템 및 컴퓨터 프로그램을 포함한다.
이들 및 다른 구현은 각각 다음의 특징들 중 하나 이상을 선택적으로 포함할 수 있다. 일부 양태에서, 데이터 세트는 웹 브라우저의 무결성이 유효한지 여부를 지정하는 브라우저 무결성 토큰을 포함한다. 데이터 세트는 요청에 특정된 데이터를 포함하는 페이로드를 포함할 수 있다.
일부 양태에서, 데이터 세트는 요청에 특정된 데이터를 포함하는 페이로드를 더 포함하고, 요청은 사용자 데이터를 삭제하기 위한 요청을 포함하고, 그리고 페이로드는 사용자 데이터를 삭제하기 위한 동작을 지정하는 데이터를 포함한다. 증명 토큰은 요청의 복수의 수신자 요청 각각에 대해, 수신자의 공개키를 사용하여 클라이언트 디바이스에 저장된 수신자 쿠키를 암호화한 암호화 결과를 포함하는 개별 암호화된 쿠키 요소를 포함하는 암호화된 쿠키 요소 그룹을 포함할 수 있다. 각 수신자에 대한 개별 암호화된 쿠키 요소의 암호화 결과는 수신자의 쿠키 및 데이터 세트의 서명의 조합을 암호화한 암호화 결과를 포함할 수 있다. 각 수신자에 대한 개별 암호화된 쿠키 요소의 암호화 결과는 암호화 초기화 벡터로서 데이터 세트의 서명을 사용하여 수신자의 쿠키를 암호화한 암호화 결과를 포함할 수 있다.
본 명세서에 기술된 주제는 다음 이점들 중 하나 이상을 실현하기 위해 특정 실시예에서 구현될 수 있다. 브라우저들(또는 다른 애플리케이션)에 의해 내보낸 요청들에 포함된 증명 토큰을 사용하여 웹 브라우저와 그 요청들을 수신하는 다른 엔터티들 간의 보안 통신 채널을 생성할 수 있다. 이 보안 채널을 통해 사용자들은 다른 당사자들이 자신의 데이터를 부정하게 관리할 위험 없이 다른 당사자에 의해저장된 데이터를 관리할 수 있다. 증명 토큰과 함께 그 증명 토큰에 포함된 데이터의 디지털 서명을 전송함으로써 요청 수신자는 증명 토큰에 있는 임의의 데이터가 생성 후 수정되었는지 여부를 결정할 수 있다. 또한, 증명 토큰에 토큰 생성 시간을 포함하면 수신자들이 요청이 새로운 것인지 또는 잠재적으로 재전송 공격의 일부인지 여부를 결정할 수 있다.
증명 토큰은 다수의 수신자 각각에 대해 해당 수신자에 의해 복호화될 수 있는 수신자의 암호화된 쿠키를 포함하는 암호화된 쿠키 요소 그룹을 포함할 수 있다. 이를 통해 동일한 증명 토큰을 다수의 수신자에게 보낼 수 있으며 수신자가 다른 수신자의 쿠키에 액세스하는 것을 방지하여 쿠키의 데이터 보안을 보호할 수 있다. 또한, 증명 토큰에 포함된 다른 데이터에 기초하여 생성된 서명을 사용하여 쿠키를 암호화함으로써 암호화된 쿠키 요소는 요청에 따라 다르며 쿠키를 소유한 도메인을 제외한 모든 도메인에서 사용자를 추적하는데 사용할 수 없다.
전술한 주제의 다양한 특징 및 이점이 도면과 관련하여 아래에서 설명된다. 추가 특징 및 이점은 본 명세서에 기재된 주제 및 청구범위로부터 명백하다.
도 1은 디지털 컴포넌트 시스템이 디지털 컴포넌트를 배포하는 환경의 블록도이다.
도 2는 요청의 무결성을 검증하고 요청에 응답하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 3은 증명 토큰을 사용하여 요청의 무결성이 유효한지 여부를 결정하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 4는 증명 토큰을 사용하여 요청의 무결성이 유효한지 여부를 결정하기 위한 다른 예시적인 프로세스를 도시하는 흐름도이다.
도 5는 증명 토큰을 사용하여 요청의 무결성이 유효한지 여부를 결정하기 위한 다른 예시적인 프로세스를 도시하는 흐름도이다.
도 6은 예시적인 컴퓨터 시스템의 블록도이다.
다양한 도면에서 동일한 참조 번호 및 명칭은 동일한 요소를 나타낸다.
일반적으로, 본 명세서에 설명된 시스템 및 기술은 사용자의 웹 브라우저와 다른 엔티티, 예를 들어, 컨텐츠 게시자, 디지털 컴포넌트 배포 시스템, 및 디지털 컴포넌트 배포 시스템에 의한 배포를 위한 배포할 디지털 컴포넌트를 생성 및 제공하는 디지털 컴포넌트 제공자간에 보안 통신 채널을 제공할 수 있다. 웹 브라우저는 요청과 함께 다른 엔터티에서 요청의 무결성을 검증(확인)하는데 사용하는 증명 토큰을 제공할 수 있다. 요청은 예를 들어 사용자의 데이터를 관리(예를 들어, 사용자 관련 데이터를 삭제)하기 위한 요청 및/또는 디지털 컴포넌트가 다른 컨텐츠와 함께 제시되게 하기 위한 요청을 포함할 수 있다. 증명 토큰을 이용한 통신 채널 보안은 사기 당사자가 사용자 데이터를 변경, 삭제 또는 액세스하거나, 예를 들어 요청의 성격 및/또는 소스와 관련하여 디지털 컴포넌트 배포 시스템 및/또는 제공자를 속이기 위해 요청 컨텐츠를 변경할 수 없도록 보장한다.
도 1은 디지털 컴포넌트 시스템(150)이 디지털 컴포넌트(129)를 배포하는 환경(100)의 블록도이다. 예시적인 환경(100)은 LAN(Local Area Network), WAN(Wide Area Network), 인터넷, 모바일 네트워크, 또는 이들의 조합과 같은 데이터 통신 네트워크(105)를 포함한다. 네트워크(105)는 클라이언트 디바이스(110), 게시자30), 웹사이트(140), 디지털 컴포넌트 배포 시스템(150) 및 브라우저 무결성 시스템(170)을 연결한다. 예시적인 환경(100)은 많은 상이한 클라이언트 디바이스(110), 게시자(130), 및 웹사이트(140)를 포함할 수 있다.
웹사이트(140)는 도메인 이름과 연관되고 하나 이상의 서버에 의해 호스팅되는 하나 이상의 리소스(145)이다. 예시적인 웹 사이트는 텍스트, 이미지, 멀티미디어 컨텐츠, 및 스크립트와 같은 프로그래밍 요소를 포함할 수 있는 HTML 형식의 웹 페이지 모음이다. 각 웹사이트(140)는 웹사이트(140)를 제어, 관리 및/또는 소유하는 엔티티인 게시자(130)에 의해 유지된다.
리소스(145)는 네트워크(105)를 통해 제공될 수 있는 임의의 데이터이다. 리소스(145)는 리소스(145)와 연관된 리소스 주소, 예를 들어 URL에 의해 식별된다. 리소스에는 HTML 페이지, 워드 프로세싱 문서, PDF 문서, 이미지, 비디오 및 피드 소스가 포함된다. 리소스에는 임베딩된 정보(얘를 들어, 하이퍼링크의 메타 정보) 및/또는 임베딩된 명령(얘를 들어, 스크립트)이 포함될 수 있는 단어, 구, 이미지 및 사운드와 같은 컨텐츠가 포함될 수 있다.
클라이언트 디바이스(110)는 네트워크(105)를 통해 통신할 수 있는 전자 디바이스이다. 예시적인 클라이언트 디바이스(110)는 개인용 컴퓨터, 모바일 통신 디바이스, 예를 들어 스마트폰, 및 네트워크(105)를 통해 데이터를 송수신할 수 있는 다른 디바이스를 포함한다. 클라이언트 디바이스(110)는 일반적으로 웹 브라우저(111)와 같은 애플리케이션 및/또는 네트워크(105)를 통한 데이터의 송수신을 용이하게 하는 기본(native) 애플리케이션을 포함한다. 기본 애플리케이션은 특정 플랫폼 또는 특정 디바이스용으로 개발된 애플리케이션이다. 게시자(130)는 기본 애플리케이션을 개발하여 클라이언트 디바이스(110)에 제공할 수 있다. 웹 브라우저(111)에 의해 수행되는 동작 및 기능에 대한 아래의 설명은 기본 애플리케이션에 의해 수행될 수 있다.
웹 브라우저(111)는 클라이언트 디바이스(110)의 사용자가 웹 브라우저(111)의 주소 표시줄에 리소스(145)에 대한 리소스 주소를 입력하거나 리소스 주소를 참조하는 링크를 선택하는 것에 응답하여, 게시자(130)의 웹사이트(140)를 호스팅하는 웹 서버로부터 리소스(145)를 요청할 수 있다. 웹 서버가 웹 브라우저(111)에 리소스(145)를 제공할 때, 웹 서버는 또한 웹 브라우저(111)가 클라이언트 디바이스(110) 상에 저장하는 게시자(130)의 쿠키(115)를 제공할 수 있다. 쿠키(115)는 상태 정보를 저장하고, 브라우징 활동을 기록하고, 사용자를 인증하는 것을 포함하여 많은 목적에 사용될 수 있는 소량의 데이터, 예를 들어 텍스트 파일이다. 쿠키(115)는 고유 쿠키 식별자 및 (쿠키 값, 속성 등을 포함할 수 있는) 소량의 데이터를 포함할 수 있다. 이 쿠키는 사용자가 직접 보는 웹사이트, 즉 웹 브라우저(111)의 주소 표시줄에서 해당 도메인을 볼 수 있는 웹사이트에 의해 생성되는 쿠키이므로 당사자 쿠키로 지칭된다.
웹 브라우저(111)는 웹 브라우저(111)가 이후에 리소스(145)를 탐색할 때 및/또는 리소스(145)가 웹 브라우저(111)에 의해 제시되는 동안 웹사이트(140)를 호스팅하는 웹 서버로 게시자의 당사자 쿠키를 보낼 수 있다. 웹 서버는 예를 들어 사용자에 대한 컨텐츠를 맞춤화하기 위해 쿠키(115)의 데이터를 사용할 수 있다.
일부 경우, 다른 웹사이트를 호스팅하는 다른 웹 서버도 해당 웹사이트의 도메인이 웹 브라우저(111)의 주소 표시줄에서 볼 수 없고 사용자가 해당 웹사이트로 웹 브라우저를 이동하지 않더라도 리소스(145)가 웹 브라우저(111)에서 제시되는 동안 클라이언트 디바이스(110)에 쿠키(115)를 저장한다. 이 쿠키를 제3자 쿠키라고 한다. 제3자 쿠키는 리소스(145)가 다른 웹 서버에서 컨텐츠를 호출할 때 클라이언트 디바이스(110)에 저장될 수 있다.
일부 리소스(145)는 리소스(145)와 함께 디지털 컴포넌트를 제공하기 위한 디지털 컴포넌트 슬롯을 포함한다. 이 문서 전체에서 사용되는 바와같이, "디지털 컴포넌트"라는 문구는 디지털 컨텐츠 또는 디지털 정보의 개별 단위(얘를 들어, 비디오 클립, 오디오 클립, 멀티미디어 클립, 이미지, 텍스트 또는 다른 컨텐츠 단위)를 지칭한다. 디지털 컴포넌트(129)는 물리적 메모리 디바이스에 단일 파일 또는 파일 모음으로 전자적으로 저장될 수 있고, 디지털 컴포넌트는 비디오 파일, 오디오 파일, 멀티미디어 파일, 이미지 파일 또는 텍스트 파일의 형태를 취할 수 있다. 예를 들어, 디지털 컴포넌트(129)는 웹 브라우저(111)에 의해 제시되는 웹 페이지의 컨텐츠 또는 다른 리소스를 보완하도록 의도된 컨텐츠일 수 있다. 보다 구체적으로, 디지털 컴포넌트(129)는 리소스 컨텐츠와 관련된 디지털 컨텐츠를 포함할 수 있다(예를 들어, 디지털 컴포넌트는 웹 페이지 컨텐츠와 동일한 토픽 또는 관련 토픽과 관련될 수 있음). 따라서, 디지털 컴포넌트 배포 시스템(150)에 의한 디지털 컴포넌트의 제공은 웹 페이지 컨텐츠를 보완하고 일반적으로 향상시킬 수 있다.
웹 브라우저(111)가 하나 이상의 디지털 컴포넌트 슬롯을 포함하는 리소스(145)를 로드할 때, 웹 브라우저(111)는 디지털 컴포넌트 배포 시스템(150)으로부터 각 슬롯에 대한 디지털 컴포넌트(129)를 요청할 수 있다. 디지털 컴포넌트 배포 시스템(150)은 차례로 디지털 컴포넌트 제공자(160)로부터 디지털 컴포넌트를 요청할 수 있다. 디지털 컴포넌트 제공자(160)는 리소스(145)와 함께 프리젠테이션하기 위한 디지털 컴포넌트를 제공하는 엔티티이다.
일부 경우, 디지털 컴포넌트 배포 시스템(150)은 또한 하나 이상의 디지털 컴포넌트 파트너(152)로부터 디지털 컴포넌트를 요청할 수 있다. 디지털 컴포넌트 파트너(152)는 디지털 컴포넌트 요청에 응답하여 디지털 컴포넌트 제공자(160)를 대신하여 디지털 컴포넌트를 선택하는 엔티티이다.
디지털 컴포넌트 배포 시스템(150)은 다양한 기준에 기초하여 각 디지털 컴포넌트 슬롯을 위한 디지털 컴포넌트를 선택할 수 있다. 예를 들어, 디지털 컴포넌트 배포 시스템(150)은 디지털 컴포넌트 제공자(160) 및/또는 디지털 컴포넌트 파트너(152)로부터 수신된 디지털 컴포넌트로부터, 리소스(145)에 대한 관련성에 기초하여, 디지털 컴포넌트의 성능(얘를 들어, 사용자가 디지털 컴포넌트와 상호 작용하는 속도)을 선택할 수 있다. 이어서 디지털 컴포넌트 배포 시스템(150)은 리소스(145)와의 프리젠테이션을 위해 상기 선택된 디지털 컴포넌트(들)를 클라이언트 디바이스(110)로 제공할 수 있다.
일부 경우, 디지털 컴포넌트 배포 시스템(150), 디지털 컴포넌트 파트너(152), 및/또는 디지털 컴포넌트가 제공되는 디지털 컴포넌트 제공자(160)는 또한 클라이언트 디바이스(110)에 제3자 쿠키(115)를 저장할 수 있다. 웹 브라우저(111)는 또한 제3자 쿠키(115)를 클라이언트 디바이스(110)에 제3자 쿠키를 저장한 엔티티에 제공할 수 있다. 이러한 방식으로, 엔티티는 제3자 쿠키(115)에 저장된 정보를 사용하여 클라이언트 디바이스(110)에서 프리젠테이션하기 위한 디지털 컴포넌트를 선택할 수 있다.
디지털 컴포넌트 배포 시스템(150)은 웹 브라우저(111) 및/또는 클라이언트 디바이스(110) 상에서 동작하는 다른 애플리케이션(예를 들어, 특정 플랫폼을 위해 개발된 기본 애플리케이션)에 의한 프리젠테이션을 위해 디지털 컴포넌트(129)를 하나 이상의 클라이언트 디바이스(110)로 전송할 수 있다.
웹 브라우저(111)는 당사자 쿠키 및 제3자 쿠키에 수집되어 저장되는 데이터를 사용자가 관리할 수 있게 하는 툴을 포함할 수 있다. 웹 브라우저(111)는 또한 게시자(130), 디지털 컴포넌트 배포 시스템(150), 디지털 컴포넌트 파트너(152) 및 디지털 컴포넌트 제공자(160)를 포함하여 다른 엔티티에 의해 저장된 데이터를 사용자가 관리할 수 있게 하는 툴을 포함할 수 있다. 예를 들어, 웹 브라우저(111)는 사용자가 자신의 클라이언트 디바이스(110)에 저장된 쿠키(115)를 보고, 각 쿠키(115)가 저장할 수 있는(또는 저장할 수 없는) 데이터 유형을 선택하고, 다른 엔티티에 의해 저장될 수 있는 데이터를 선택할 수 있게 하는 메뉴를 포함할 수 있다. 이러한 툴은 사용자가 자신의 데이터와 개인 정보를 관리할 수 있도록 한다.
웹 브라우저(111)가 네트워크(105)를 통해 요청(120)을 전송할 때, 웹 브라우저(111)는 요청과 함께 증명 토큰(122)을 생성하고 전송할 수 있다. 예를 들어, 웹 브라우저(111)가 디지털 컴포넌트 요청을 디지털 컴포넌트 배포 시스템(150)으로 전송하는 경우, 이 요청은 증명 토큰(122)을 포함할 수 있다. 유사하게, 웹 브라우저(111)가 해당 엔티티에 의해 저장된 데이터를 관리(예컨대, 삭제)하기 위해 다른 엔티티(예를 들어, 게시자(130), 디지털 컴포넌트 배포 시스템(150), 디지털 컴포넌트 파트너(152) 또는 디지털 컴포넌트 제공자(160))에 요청을 전송하는 경우, 이 요청은 증명 토큰(122)을 포함할 수 있다.
증명 토큰(122)은 이들 엔티티에 의해 사용되어 요청의 무결성을 검증하고 요청이 변조되지 않았음을 보장할 수 있다. 예를 들어, 사용자가 다른 엔터티에 의해 저장된 데이터를 관리할 수 있게 하면 인터넷상의 악의적인 당사자가 다른 사용자의 데이터를 관리 및/또는 훔치려고 시도할 가능성이 열린다. 디지털 컴포넌트에 대해, 일부 악의적인 엔티티는 예를 들어 디지털 컴포넌트가 제공될 다른 리소스를 지정하고 및/또는 디지털 컴포넌트가 제시될 다른 사용자를 지정하기 위해 디지털 컴포넌트 요청의 파라미터를 위조하려고 시도할 수 있다.
증명 토큰(122)은 웹 브라우저(111)와 다른 엔티티들 사이에 보안 통신 채널을 제공하는 정보 및 암호화 체계를 포함한다. 이것은 다른 사람이 요청(120)을 변경하고, 다른 엔티티의 쿠키를 획득하고, 동일한 요청을 (예를 들어, 재전송 공격의 형태로) 여러 번 제출하는 것을 방지하고 및/또는 요청(120)이 검증된 웹 브라우저에서 온 것임을 보장한다.
증명 토큰(122)은 데이터 세트(123) 및 데이터 세트(123)의 서명(124), 예를 들어 디지털 서명을 포함한다. 데이터 세트(123)는 요청을 전송하는 웹 브라우저(111)의 공개키(예를 들어, 공개키(123)), 증명 토큰(122)이 생성된 시간을 나타내는 토큰 생성 시간, 페이로드, 및/또는 브라우저 무결성 토큰을 포함할 수 있다.
웹 브라우저(111)는 개인키(112)에 대응하고 개인키(112)에 수학적으로 링크된 개인키(112) 및 공개키(113)를 포함하는 관련 암호화 키의 하나 이상의 쌍을 생성하고 유지할 수 있다. 일부 구현에서, 키(112, 113)는 다른 애플리케이션 또는 디바이스로부터 웹 브라우저(111)에 제공된다. 개인키(112)를 사용하여 디지털 서명된 데이터는 대응하는 공개키(113)를 통해서만 검증될 수 있다. 마찬가지로, 공개키(113)를 사용하여 암호화된 데이터는 개인키(112)를 통해서만 복호화(해독)할 수 있다.
웹 브라우저(111)는 데이터 세트(123)가 웹 브라우저(111)에 의해 생성된 후 변경되지 않았음을 확인하고 요청이 브라우저(111)에서 비롯되었음을 증명함으로써요청(120)의 무결성을 검증하는데 사용하기 위해 개인키(112)를 사용하여 데이터 세트(123)의 디지털 서명(124)을 생성한다. 일부 구현에서, 웹 브라우저(111)는 전자 서명을 생성하기 위해 타원 곡선 디지털 서명 알고리즘(ECDSA)을 사용하지만, 다른 서명 기술(예를 들어, RSA)이 또한 사용될 수 있다. 대응하는 공개키(113)는 증명 토큰(122)과 함께 제공되어, 그 증명 토큰(122)을 수신하는 엔티티는 공개키(113)를 사용하여 데이터 세트(123)의 서명(124)을 확인할 수 있다. 웹 브라우저(111)는 개인키(112)를 사용하여 데이터 세트(123)에 서명함으로써 디지털 서명을 생성할 수 있다.
일부 구현에서, 증명 토큰(122)은 유리하게 예를 들어 게시자(130) 또는 디지털 컴포넌트 배포 시스템(150)을 위한 당사자 쿠키의 역할을 할 수 있으므로 저장, 전송 및 관리되어야 하는 개별 쿠키의 수를 줄일 수 있다. 이러한 경우, 데이터(123)의 일부인 공개키(113)는 당사자 쿠키에 대한 쿠키 식별자 역할을 할 수 있다.
일부 구현에서, 공개키(113)(및 그에 대응하는 개인키(112))는 제한된 수명 주기를 갖는 임시키이다. 동일한 공개키(113)가 동일한 웹 브라우저(113)로부터 많은 요청 및/또는 장기간에 걸쳐 전송되는 경우, 공개키(113)로 요청을 수신하는 엔티티는 웹 브라우저의 사용자를 추적할 수 있다. 예를 들어, 엔티티는 공개키(113)를 사용자에 대한 식별자로 사용하고 각 요청의 페이로드 데이터를 해당 식별자와 상관시킬 수 있다. 따라서, 공개키(113)의 수명 주기를 제한하는 것은 이러한 추적 능력을 제한할 수 있고 따라서 사용자의 개인 정보를 보호할 수 있다.
공개키(113)의 라이프사이클(수명 주기)은 사용자 프라이버시의 목표 레벨에 기초하여 구성될 수 있다. 대부분의 프라이버시를 위해, 라이프사이클은 단일 요청일 수 있다. 즉, 웹 브라우저(111)는 웹 브라우저(111)에 의해 전송된 각각의 요청(120)에 대해 새로운 공개/개인키 쌍을 생성할 수 있다. 이 수준의 프라이버시에 대한 절충점은 공개/개인키 쌍을 생성하는 계산 비용(얘를 들어, 처리 전력, 리소스 사용량 등)이다. 아래에 설명된 바와 같이 각각의 공개/개인키 쌍에 대해 브라우저 무결성 토큰이 생성되는 구현에서, 계산 비용은 훨씬 더 높을 수 있고 네트워크(105)를 통해 브라우저 무결성 시스템(170)과의 통신으로 인한 추가적인 지연(latency)이 있을 수 있다.
일부 구현에서, 공개키(113)의 라이프사이클은 단일 페이지 뷰에 대한 것일 수 있다. 이 예에서, 웹 브라우저(111)는 웹 브라우저가 리소스(145)를 다운로드하고 제시할 때마다 새로운 공개/개인키 쌍을 생성할 수 있다. 페이지가 제시되는 동안 다수의 요청이 동일한 페이지뷰로부터 전송되면, 각 요청은 동일한 공개키(113) 및 동일한 공개키(113)를 사용하여 생성된 디지털 서명을 갖는 증명 토큰(122)을 포함할 수 있다. 이것은 각 요청(120)에 대한 새로운 공개/개인키 쌍을 생성하는 것과 관련된 계산 및 지연 비용을 줄일 수 있다.
일부 구현에서, 공개키(113)의 라이프사이클은 주어진 게시자 도메인에 대한 것일 수 있다. 이 예에서, 웹 브라우저(111)는 사용자가 웹사이트(140)를 방문하는 각각의 게시자(130)에 대한 개별 공개/개인키 쌍을 생성할 수 있다. 이 예에서, 주어진 게시자에 대한 증명 토큰(122)은 주어진 게시자에 대한 당사자 쿠키의 역할을 할 수 있다. 또한, 공개키(113)는 주어진 게시자에 대한 당사자 쿠키(예를 들어, 증명 토큰(122))에 대한 쿠키 식별자의 역할을 할 수 있다. 이는 브라우저에서 관리하는 당사자 판독 전용 쿠키를 효과적으로 제공한다. 이 예시적인 라이프사이클은 각 요청(120)에 대한 새로운 공개/개인키 쌍을 생성하고 각 페이지 뷰에 대해 새로운 공개/개인키 쌍을 생성하는 것과 관련된 계산 및 지연 비용을 추가로 줄일 수 있다.
일부 구현에서, 웹 브라우저(111)는 또한 웹 브라우저(111)가 사용자가 웹사이트(140)를 방문하는 각 게시자(130)에 대해 개별 공개/개인키 쌍을 생성할 수 있는 방식과 유사하게, 각각의 디지털 컴포넌트 제공자(160)에 대한 개별 공개/개인키 쌍을 생성할 수 있다. 이는 브라우저에서 관리하는 제3자 판독 전용 쿠키를 효과적으로 제공한다.
상술한 바와 같이, 토큰 생성 시간은 증명 토큰(122)이 생성된 시간을 나타낸다. 웹 브라우저(111)는 웹 브라우저(111)가 증명 토큰을 생성할 때 생성 시간을 기록할 수 있다. 이 토큰 생성 시간은 (얘를 들어, 초 단위, 밀리초 단위 또는 마이크로초 단위로 정확한) 고해상도 타임스탬프일 수 있다. 토큰 생성 시간은 증명 토큰(122)을 포함하는 요청(120)이 새로운 요청인지 또는 최근 요청인지 여부를 결정하는데 사용될 수 있다. 예를 들어, 증명 토큰(122)을 수신하는 엔티티는 토큰 생성 시간을 현재 시간 또는 증명 토큰이 수신된 시간과 비교할 수 있다. 만약 두 시간 간의 차이가 임계치를 초과하는 경우, 엔티티는 아래에서 더 자세히 설명하는 것처럼 요청이 새롭지 않거나 유효하지 않다고 결정할 수 있다.
토큰 생성 시간은 또한 재전송 공격(replay attacks)을 탐지하는데 사용될 수 있다. 예를 들어, 동일한 토큰 생성 시간을 포함하여 동일한 데이터 세트(123)를 갖는 다수의 요청이 수신되는 경우, 그 요청들을 수신하는 엔티티는 요청들이 중복되고 및/또는 요청들이 재전송 공격의 일부임을 결정할 수 있다.
토큰 생성 시간은 다른 데이터와 조합하여 요청(120)에 대한 트랜잭션 식별자 역할도 할 수 있다. 예를 들어, 트랜잭션 식별자는 증명 토큰(122)의 토큰 생성 시간, 증명 토큰(122)의 공개키(113) 및 수신자의 제3자 쿠키(얘를 들어, 아래에 기술된 암호화된 쿠키들 중 하나) 중 하나 이상의 조합일 수 있다. 트랜잭션 식별자는 다중 채널로부터 수신된 동일한 요청의 다중 버전을 중복 제거하는데 사용될 수 있다. 예를 들어, 디지털 컴포넌트 제공자(160-3)는 디지털 컴포넌트 배포 시스템(150) 및 디지털 컴포넌트 파트너(152) 모두로부터 동일한 요청을 수신할 수 있다. 이 예에서, 트랜잭션 식별자는 증명 토큰(122)의 토큰 생성 시간, 증명 토큰(122)의 공개키(113), 및 디지털 컴포넌트 제공자(160-3)의 복호화된 제3자 쿠키에 기초할 수 있다. 디지털 컴포넌트 제공자(160-3)는 2개 이상의 요청에서 3개의 데이터를 비교하여 요청들이 중복되는지 여부를 결정함으로써 중복되고 불필요한 응답의 전송을 방지할 수 있다.
페이로드는 개별 요청(120)에 대한 데이터를 포함할 수 있다. 예를 들어, 요청(120)이 디지털 컴포넌트에 대한 것인 경우, 페이로드는 디지털 컴포넌트를 선택하는데 사용될 수 있는 데이터를 포함할 수 있다. 이 페이로드는 디지털 컴포넌트 슬롯을 갖는 리소스(145)(또는 자원(145)에 대한 URL), 자원(145)에 관한 정보(예를 들어, 리소스의 토픽), 디지털 컴포넌트 슬롯에 관한 정보(예를 들어, 슬롯 수, 슬롯 유형, 슬롯 크기 등). 사용자가 이 기능을 활성화한 경우 클라이언트 디바이스(110)에 관한 정보(얘를 들어, 디바이스 유형, 디바이스의 IP 주소, 클라이언트 디바이스(110)의 지리적 위치) 및/또는 다른 적절한 정보를 포함할 수 있다.
요청(120)이 게시자(130), 디지털 컴포넌트 배포 시스템(150), 디지털 컴포넌트 파트너(152), 디지털 컴포넌트 제공자(160), 또는 다른 엔티티에서 사용자 데이터를 관리하는 것인 경우, 요청(120)은 요청된 변경을 지정하는 데이터를 포함할 수 있다. 예를 들어, 사용자가 디지털 컴포넌트 제공자(160-2)로부터 사용자의 모든 데이터를 제거하기로 선택한 경우, 페이로드는 데이터 및 디지털 컴포넌트 제공자(160-2)(예를 들어, 디지털 컴포넌트 제공자(160-2)에 대한 식별자 또는 네트워크 주소)의 이러한 제거를 지정하는 데이터를 포함할 것이다.
브라우저 무결성 토큰은 웹사이트(140)와의 사용자 상호 작용이 진짜인지 여부와 같은 더 많은 종류의 사기 검출을 가능하게 함으로써 증명 토큰(122)의 사기 검출 능력을 향상시킨다. 웹 브라우저(111)는 네트워크(105)에 연결된 하나 이상의 서버를 사용하여 구현될 수 있는 브라우저 무결성 시스템(170)과 상호 작용하는 브라우저내 무결성 컴포넌트를 포함할 수 있다. 브라우저내 무결성 컴포넌트는 브라우저 무결성 시스템(170)에 의해 분석될 사기 탐지 신호를 수집할 수 있다. 사기 신호는 예를 들어 마우스 이동 속도, 방향, 중단 및 다른 패턴, 클릭 패턴, 및/또는 브라우저가 손상된 시기를 결정하는데 사용될 수 있는 다른 디바이스 수준 신호를 포함할 수 있다. 브라우저 무결성 시스템(170)이 브라우저(111)의 무결성이 유효하다고 결론지으면, 브라우저 무결성 시스템(170)은 웹 브라우저(111)에 브라우저 무결성 토큰을 발행할 수 있다.
브라우저 무결성 토큰은 브라우저 무결성 토큰이 생성된 시간을 나타내는 토큰 생성 시간, 브라우저 무결성 토큰을 요청한 브라우저(111)의 공개키(113), 판정(verdict)(예를 들어, 브라우저가 유효한지 여부), 및/또는 나머지 브라우저 무결성 토큰의 디지털 서명(얘를 들어, 토큰 생성 시간, 공개키(113), 및/또는 판정)을 포함할 수 있다. 공개키(113)를 포함하는 데이터의 디지털 서명을 사용하면 브라우저 무결성 토큰이 공개키(113)에 바인딩되고 따라서 클라이언트 디바이스(110) 및 웹 브라우저(111)에 바인딩된다.
브라우저 무결성 토큰의 디지털 서명은 브라우저 무결성 시스템(170)이 소유하고 안전하게 저장한 개인키에 의해 생성될 수 있다. 디지털 서명은 브라우저 무결성 시스템(170)이 소유하고 안전하게 저장한 개인키에 해당하는 공개키에 의해 공개적으로 검증 가능하다. 브라우저 무결성 시스템의 개인 및 공개키의 사용은 브라우저 무결성 토큰에 디지털 서명하고, 웹 브라우저(111)의 개인 및 공개키와 함께 이러한 디지털 서명을 확인하여 증명 토큰(122)에 디지털 서명하고, 증명 토큰(122)의 서명이 보안 통신을 제공하는지 확인하고 도 1의 엔티티 간에 신뢰 체인을 설정한다.
예를 들어, 디지털 컴포넌트 배포 시스템(150), 디지털 컴포넌트 파트너(152), 및 디지털 컴포넌트 제공자(160)는 브라우저 무결성 시스템(170)을 신뢰한다. 디지털 컴포넌트 배포 시스템(150), 디지털 컴포넌트 파트너(152) 및 디지털 컴포넌트 제공자(160)는 디지털 서명을 생성하는데 사용되는 개인키에 대응하고 브라우저 무결성 시스템(170)에 의해 안전하게 저장된 공개키를 사용하여 디지털 서명을 검증함으로써 브라우저 무결성 시스템(170)이 브라우저 무결성 토큰이 실제로 브라우저 무결성 시스템(170)에 의해 생성되고 전송 중에 수정되지 않았음을 검증할 수 있다고 신뢰한다. 브라우저 무결성 토큰이 사용자가 신뢰할 수 있음을 나타낸다고 가정하면, 디지털 컴포넌트 배포 시스템(150), 디지털 컴포넌트 파트너(152) 및 디지털 컴포넌트 제공자(160)는 브라우저 무결성 토큰 및 증명 토큰(122)(동일함)에 포함된 브라우저 공개키(113)를 사용하여 상기 브라우저 공개키(113)/개인 키(112) 쌍을 소유하는 웹 브라우저(111)에 의해 증명 토큰(122)이 실제로 생성되었고 전송 중에 수정되지 않았음을 검증할 수 있다.
일부 구현에서, 웹 브라우저(111)와 브라우저 무결성 시스템(170)은 상호 작용하여 배치(batch) 프로세스에서 다수의 브라우저 무결성 토큰을 생성한다. 예를 들어, 웹 브라우저(111)는 브라우저 무결성 시스템(170)으로 다수의 공개키를 전송할 수 있다. 웹 브라우저(111)는 또한 사기 탐지 신호를 수집하고 이러한 신호를 브라우저 무결성 시스템(170)에 제공할 수 있다. 브라우저 무결성 시스템(170)은 사기 탐지 신호를 분석하고 사기 탐지 신호에 기초하여 판정을 결정할 수 있다. 브라우저 무결성 시스템(170)은 웹 브라우저(111)로부터 수신된 각각의 공개키에 대해 브라우저 무결성 토큰을 생성할 수 있다. 이 배치 프로세스는 웹 브라우저(111)에 의해 필요에 따라 한 번에 하나씩 브라우저 무결성 토큰을 생성하는 것에 비해 브라우저 무결성 토큰을 생성하는데 필요한 지연 및 처리 시간/리소스를 줄일 수 있다. 웹 브라우저(111)는 클라이언트 디바이스(110)에 브라우저 무결성 토큰을 저장할 수 있고 공개키(113)의 라이프사이클에 기초하여 (예를 들어, 요청당, 페이지 뷰당, 게시자 도메인당 등) 각각의 공개키(113)에 대해 하나의 브라우저 무결성 토큰을 소비할 수 있다.
일부 구현에서, 증명 토큰(122)은 또한 암호화된 쿠키 요소들(125)을 포함한다. 각각의 암호화된 쿠키 요소(125)는 쿠키(115)가 클라이언트 디바이스(110)에 저장되었던 엔티티에 대한 암호화된 쿠키를 포함할 수 있다. 예를 들어, 클라이언트 디바이스(110)가 디지털 컴포넌트 배포 시스템(150)의 쿠키(115)를 포함하고 요청(120)이 디지털 컴포넌트(129)에 대한 것인 경우, 증명 토큰(122)은 디지털 컴포넌트 배포 시스템(150)에 대한 암호화된 쿠키 요소(125)를 포함할 수 있다. 다른 예에서, 클라이언트 디바이스(110)가 다수의 디지털 컴포넌트 제공자(160)의 쿠키(115)를 포함하는 경우, 증명 토큰(122)은 다수의 디지털 컴포넌트 제공자(160) 각각에 대한 암호화된 쿠키 요소(125)를 포함할 수 있다. 암호화된 쿠키 요소(125)는 아래에서 더 상세히 설명되는 바와 같이 요청(120)의 수신자에 의해 파싱되는 문자열의 형태일 수 있다.
클라이언트 디바이스(110)에 쿠키(115)를 저장하는 엔티티들은 엔티티의 공개키(114)를 클라이언트 디바이스(110)로 제공할 수 있다. 웹 브라우저(111)는 엔티티의 공개키(114)를 사용하여 클라이언트 디바이스(110)에 저장된 인티티의 쿠키(115)의 쿠키값을 암호화할 수 있다. 아래에서 더 자세히 설명되는 바와 같이, 증명 토큰(122)을 수신하는 각 엔티티는 암호화된 쿠키 요소(115)를 복호화하여 상기 요청의 무결성을 검증하고 쿠키값을 획득할 수 있다. 예를 들어, 게시자(130)는 웹 브라우저(111)에 의해 제시되는 리소스(145)의 컨텐츠를 맞춤화하기 위해 그의 쿠키 값을 사용할 수 있다. 디지털 컴포넌트 제공자(160)는 자신의 쿠키 값을 사용하여 클라이언트 디바이스(110)에 제공할 디지털 컴포넌트를 선택할 수 있다.
이러한 방식으로 쿠키(115)를 암호화함으로써, 증명 토큰(122)(및 요청(120))은 다수의 상이한 엔티티에 대한 쿠키(115)를 안전하게 전달할 수 있다. 이것은 중개자와 해커가 다른 엔티티의 쿠키에 액세스하는 것을 방지한다.
또한, 중개자가 데이터 세트(123)의 부분과 다른 요청의 서명(124) 부분을 혼합하고 매칭시키는 것을 방지하기 위해, 암호화된 쿠키 요소(125)는 데이터 세트(123) 및 디지털 서명(124)에 바인딩될 수 있다. 예를 들어, 각각의 암호화된 쿠키 요소(125)는 엔티티의 쿠키를 포함하는 제1 부분과 디지털 서명(124)의 암호화 해시(cryptohash)를 포함하는 제2 부분을 포함할 수 있다. 즉, 엔티티에 대한 암호화된 쿠키 요소(125)는 엔티티의 쿠키(115)와 디지털 서명(124)의 조합의 암호화된 버전을 포함할 수 있다. 조합은 엔티티의 공개키 114를 사용하여 암호화될 수 있다.
엔티티가 증명 토큰(122)을 수신할 때, 엔티티는 암호화된 쿠키 요소(125)에서 자신의 쿠키를 찾으려고 시도할 수 있다. 예를 들어, 엔티티는 자신의 쿠키(115)를 암호화하는데 사용될 공개키(114)에 대응하는 자신의 개인키를 사용하여, 예를 들어 한 번에 하나씩 또는 병렬로 쿠키 요소(125)를 복호화할 수 있다. 그런 다음 엔티티는 복호화된 쿠키 요소가 엔티티가 사용자 디바이스에 저장한(얘를 들어, 엔티티는 각각이 고유 쿠키 식별자를 갖는 다수의 클라이언트 디바이스에 쿠키를 저장할 수 있음) 쿠키의 쿠키 식별자를 포함하는지 여부를 결정할 수 있다. 엔티티는 또한 복호화된 쿠키 요소의 일부가 디지털 서명(124)과 매치(일치)하는지 여부를 결정할 수 있다. 매칭이 모두 발견되면, 엔터티는 복호화된 쿠키 요소가 자신의 쿠키이고 요청이 유효한지 확인할 수 있다. 부분들 중 하나가 매칭하지 않으면, 엔티티는 암호화된 쿠키 요소(125)가 엔티티에 속하지 않는다고 결정할 수 있다. 암호화된 쿠키 요소(125) 중 어느 것도 엔티티에 속하지 않는 경우, 엔티티는 요청(120)이 전송되거나 요청(120)이 위조된 클라이언트 디바이스(110)에 쿠키를 저장하지 않는다.
엔티티가 증명 토큰(122)에서 암호화된 쿠키 요소(125)를 더 쉽게 찾을 수 있도록 하기 위해, 웹 브라우저(111)는 암호화된 쿠키 요소가 증명 토큰(122)에 포함된 도메인 목록 또는 암호화된 쿠키 요소(125)를 그들의 도메인에 매핑하는 목록을 증명 토큰(122)에 포함하도록 구성될 수 있다. 그러나, 클라이언트 디바이스(110) 또는 블랙리스트에 등록된 엔티티에 쿠키(115)를 저장하지 않은 엔티티와 같은 엔티티는 도메인 목록을 지문 신호로 사용하여 개별 사용자를 추적할 수 있다. 또한, 엔티티는 많은 요청(120)에 포함된 목록을 사용하여 도메인의 개인 데이터일 수 있는 각 도메인의 도달 범위를 결정할 수 있다. 따라서, 도메인 목록을 포함하는 것은 사용자 및 도메인에 대한 프라이버시 및 보안을 감소시킬 수 있다.
도 2는 요청의 무결성을 검증하고 요청에 응답하기 위한 예시적인 프로세스(200)를 도시하는 흐름도이다. 프로세스(200)는 예를 들어, 게시자(130), 디지털 컴포넌트 배포 시스템(150), 디지털 컴포넌트 파트너(152), 또는 도 1의 디지털 컴포넌트 제공자(160)와 같은 요청의 수신자에 의해 구현될 수 있다. 프로세스(200)의 동작들은 또한 비-일시적 컴퓨터 판독 가능 매체에 저장된 명령들로서 구현될 수 있고, 하나 이상의 데이터 처리 장치에 의한 명령들의 실행은 하나 이상의 데이터 처리 장치로 하여금 프로세스(200)의 동작들을 수행하게 할 수 있다.
증명 토큰을 포함하는 요청이 수신된다(202). 클라이언트 디바이스의 웹 브라우저는 웹 브라우저와의 사용자 상호 작용에 응답하여 요청을 전송할 수 있다. 예를 들어, 사용자가 리소스를 보기 위해 웹 사이트를 탐색하는 경우, 웹 브라우저는 웹 사이트에 요청을 보낼 수 있다. 다른 예에서, 리소스가 디지털 컴포넌트 슬롯을 포함하는 경우, 웹 브라우저는 디지털 컴포넌트 배포 시스템으로 디지털 컴포넌트에 대한 요청을 보낼 수 있다. 또 다른 예에서, 사용자가 사용자 데이터를 저장하기 위한 설정을 변경하는 경우(예를 들어, 쿠키에 캡처되어 다른 엔티티로 전송된 사용자 데이터의 저장소), 요청은 사용자 데이터 수정(예컨대, 삭제) 요청일 수 있다.
전술한 바와같이, 요청은 데이터 세트, 데이터 세트의 디지털 서명, 및 선택적으로 하나 이상의 수신자에 대한 암호화된 쿠키 요소를 포함하는 증명 토큰을 포함할 수 있다. 데이터 세트에는 요청을 보낸 웹 브라우저의 공개키, 웹 브라우저에서 증명 토큰이 생성된 시간을 나타내는 토큰 생성 시간, 페이로드 및/또는 브라우저 무결성 토큰이 포함될 수 있다. 웹 브라우저는 브라우저의 공개키를 사용하여 데이터 세트의 디지털 서명을 생성할 수 있다. 웹 브라우저 또는 다른 신뢰(된) 프로그램(예를 들어, 클라이언트 디바이스의 운영 체제)이 증명 토큰을 생성할 수 있다.
웹 브라우저는 요청의 하나 이상의 수신자에 대해 암호화된 쿠키 요소를 생성할 수 있다. 주어진 수신자에 대해, 웹 브라우저는 수신자의 공개키를 사용하여 클라이언트 디바이스에 저장된 수신자의 쿠키를 암호화함으로써 암호화된 쿠키 요소를 생성할 수 있다. 다른 예에서, 웹 브라우저는 암호화된 쿠키 요소를 요청에 바인딩하기 위해 수신자의 쿠키 및 증명 토큰의 디지털 서명을 암호화함으로써 주어진 수신자에 대한 암호화된 쿠키 요소를 생성할 수 있다.
요청의 무결성이 유효한지 여부가 결정된다(204). 증명 토큰이 생성된 시간사이에 데이터 세트내의 임의의 변경된 경우, 토큰 생성 시간과 요청이 수신된 시간 사이의 시간 기간이 임계값을 초과하는 경우, 브라우저 무결성 토큰이 유효하지 않거나, 증명 토큰에 수신자의 암호화된 쿠키가 포함되어 있지 않는 경우, 요청의 무결성은 유효하지 않을 수 있다. 요청의 무결성이 유효한지 여부를 결정하기 위한 예시적인 프로세스가 도 3 및 아래에 설명되어 있다.
요청의 무결성이 유효하지 않다는 결정이 내려지면, 요청에 대한 응답이 제공되지 않는다(206). 즉, 수신자는 요청을 무시할 수 있다. 예를 들어 요청이 리소스에 대한 것인 경우, 웹사이트에서 리소스를 제공하지 않을 수 있다. 요청이 디지털 컴포넌트에 대한 것인 경우 요청이 유효하지 않다고 결정한 수신자는 디지털 컴포넌트를 제공하지 않을 수 있다. 예를 들어, 디지털 컴포넌트 제공자는 제공자의 쿠키가 증명 토큰의 암호화된 쿠키 요소에 포함되어 있지 않기 때문에 요청이 유효하지 않다고 결정할 수 있다. 그러나, 다른 디지털 컴포넌트 제공자는 제공자의 쿠키가 증명 토큰의 암호화된 쿠키 요소에 포함되어 있기 때문에 요청이 유효하다고 결정할 수 있다. 만약 요청이 사용자 데이터 삭제 또는 변경에 대한 것인 경우, 요청의 무결성이 유효하지 않으면 사용자는 요청에 응답하여 사용자 데이터를 삭제하거나 변경할 수 없다.
요청의 무결성이 유효하다는 결정이 내려지면, 요청에 대한 응답이 제공된다(208). 예를 들어, 용청이 리소스에 대한 것인 경우, 웹사이트는 요청에 응답하여 리소스를 제공할 수 있다. 요청이 디지털 컴포넌트에 대한 것인 경우, 요청이 유효하다고 결정하는 수신자는 요청에 응답하여 디지털 컴포넌트를 제공할 수 있다. 요청이 사용자 데이터의 삭제 또는 변경에 대한 것인 경우, 수신자는 요청의 무결성이 유효하면 요청에 응답하여 사용자 데이터를 삭제 또는 변경할 수 있다.
도 3은 증명 토큰을 사용하여 요청의 무결성이 유효한지 여부를 결정하기 위한 예시적인 프로세스(300)를 도시하는 흐름도이다. 프로세스(300)는 예를 들어, 도 1의 게시자(130), 디지털 컴포넌트 배포 시스템(150), 디지털 컴포넌트 파트너(152), 또는 디지털 컴포넌트 제공자(160)와 같은 요청의 수신자에 의해 구현될 수 있다. 프로세스(300)의 동작들은 또한 비-일시적 컴퓨터 판독 가능 매체에 저장된 명령들로 구현될 수 있고, 하나 이상의 데이터 처리 장치에 의한 명령들의 실행은 하나 이상의 데이터 처리 장치로 하여금 프로세스(300)의 동작들을 수행하게 할 수 있다.
증명 토큰이 액세스된다(302). 증명 토큰은 웹 브라우저로부터 수신된 요청에 포함될 수 있다. 전술한 바와 같이, 증명 토큰은 데이터 세트, 데이터 세트의 디지털 서명, 및 선택적으로 하나 이상의 수신자에 대한 암호화된 쿠키 요소를 포함한다. 데이터 세트에는 요청을 보낸 웹 브라우저의 공개키, 증명 토큰이 웹 브라우저에 의해 생성된 시간을 나타내는 토큰 생성 시간, 페이로드 및/또는 브라우저 무결성 토큰이 포함될 수 있다.
토큰 생성 시간이 요청이 수신된 시간의 임계 시간 기간 내에 있는지 또는 현재 시간의 임계 시간 기간 내에 있는지 여부에 대한 결정이 이루어진다(304). 예를 들어, 요청이 수신된 시간(또는 현재 시간)과 토큰 생성 시간 간의 차이가 결정될 수 있다. 만약 차이가 임계 시간 기간보다 이하이면, 토큰 생성 시간은 임계 시간 기간 내에 있다. 만약 토큰 생성 시간이 임계 시간 기간 내에 있지 않은 경우, 예를 들어 요청이 오래되었음을 의미하는 경우, 요청의 무결성은 무효로 분류될 수 있다(312).
토큰 생성 시간이 임계 시간 기간 내에 있는 경우, 예를 들어 요청이 신규 또는 최근임을 의미하는 경우, 증명 토큰의 데이터 세트의 데이터가 인증 토큰의 디지털 서명이 생성된 후에 수정되었는지 여부가 결정된다(306). 예를 들어, 증명 토큰에 포함된 브라우저의 공개키는 증명 토큰의 디지털 서명을 확인하는데 사용될 수 있다. 만약 서명이 공개키를 사용하여 확인될 수 없는 경우, 데이터 세트의 데이터가 수정되어Y다고 결정한다. 예를 들어, 그러한 데이터는 요청을 가로챈 엔터티 또는 중개자에 의해 수정되었을 수 있다. 공개키를 사용하여 디지털 서명이 확인되면, 증명 토큰 데이터 세트내의 데이터가 수정되지 않은 것으로 결정된다.
데이터 세트의 데이터가 수정되었다는 결정이 내려지면, 요청의 무결성은 무효인 것으로 분류된다(312). 만약 증명 토큰의 데이터 세트내의 데이터가 수정되지 않았다는 결정이 내려지면, 브라우저 무결성 토큰이 유효한지 여부가 결정된다(308). 이 결정은 브라우저 무결성 토큰의 판정이 유효한지 여부를 결정하고 브라우저 무결성 토큰의 공개키가 증명 토큰의 공개키와 매칭하는지 여부를 결정하는 것을 포함할 수 있다. 판정이 유효하지 않거나 공개 키가 매칭하지 않으면, 브라우저 무결성 토큰이 유효하지 않은 것으로 결정되고 요청의 무결성이 유효하지 않은 것으로 분류된다. 판정이 유효하고 공개키가 매칭하면, 브라우저 무결성 토큰이 유효한 것으로 결정이 내려진다.
이 결정은 또한 브라우저 무결성 토큰의 디지털 서명을 검증하는 것을 포함할 수 있다. 상술한 바와 같이, 브라우저 무결성 시스템은 브라우저 무결성 시스템의 개인키를 이용하여 브라우저 무결성 토큰의 데이터에 디지털 서명할 수 있다. 브라우저 무결성 시스템은 브라우저 무결성 시스템에 의해 생성된 디바이스 무결성 토큰을 수신할 수 있는 수신자들에게 이 개인키에 해당하는 공개키를 제공할 수 있다. 요청의 각 수신자는 이 공개키를 사용하여 브라우저 무결성 토큰의 서명을 확인할 수 있다. 이 서명은 성공할 경우 브라우저 무결성 토큰의 데이터가 생성된 이후 수정되지 않았음을 나타낸다. 이 예에서, 판정이 유효하고 공개키가 매칭하고, 브라우저 무결성 토큰의 디지털 서명이 성공적으로 확인되면, 브라우저 무결성 토큰이 유효하다는 결정이 내려진다.
브라우저 무결성 토큰이 유효하다는 결정이 내려지면, 증명 토큰이 수신자의 쿠키를 포함하는지 여부가 결정된다(310). 전술한 바와같이, 증명 토큰은 하아 이상의 요청 수신자 각각에 대해, 암호화된 쿠키 요소를 포함할 수 있다. 암호화된 쿠키 요소에는 수신자의 공개키를 사용하여 암호화된 수신자 쿠키의 암호화된 버전이 포함될 수 있다. 증명 토큰이 수신자의 쿠키를 포함하는지 여부를 결정하기 위한 예시적인 프로세스는 도 4 및 5에 도시되어 있고 아래에 설명된다.
증명 토큰에 수신자의 쿠키가 포함되어 있는 경우, 요청의 무결성이 유효한 것으로 분류될 수 있다(314). 그렇지 않은 경우, 요청의 무결성은 무효로 분류될 수 있거나(312), 수신자는 요청이 전송된 클라이언트 디바이스에서 수신자가 쿠키를 저장하지 않았다고 결정할 수 있다.
일부 구현에서, 동작(310)은 배제되거나 스킵될 수 있다. 이러한 구현에서, 모든 동작(304-308)이 통과되면 요청은 유효한 것으로 분류될 수 있다.
도 4 및 5는 엔티티들에 대한 암호화된 쿠키 요소를 포함하는 요청의 무결성을 결정하기 위한 프로세스를 도시한다. 수신자의 암호화된 쿠키 요소에 수신자의 쿠키만 포함되어 잇으면 암호화 결과는 안정적이다. 요청에 액세스할 수 있는 중개자 또는 기타 사용자는 암호화된 쿠키 요소를 안정적인 식별자로 사용하여 사용자를 추적할 수 있다. 이러한 추적을 방지하기 위해, 암호화 프로세스에 임의성 (randomness)을 도입하여 주어진 수신자 및 주어진 클라이언트 디바이스에 대한 암호화 요소가 각 요청에 고유(specific)하도록 할 수 있다. 프로세스(400 및 500)는 이러한 임의성을 도입하는 두 가지 예시적인 방법이다.
도 4는 증명 토큰을 사용하여 요청의 무결성이 유효한지 여부를 결정하기 위한 다른 예시적인 프로세스(400)를 도시하는 흐름도이다. 프로세스(400)는 예를 들어, 도 1의 게시자(130), 디지털 컴포넌트 배포 시스템(150), 디지털 컴포넌트 파트너(152), 또는 디지털 컴포넌트 제공자(160)와 같은 요청 수신자에 의해 구현될 수 있다. 프로세스(400)의 동작들은 또한 비-일시적 컴퓨터 판독 가능 매체에 저장된 명령들로서 구현될 수 있고, 하나 이상의 데이터 처리 장치에 의한 명령들의 실행은 하나 이상의 데이터 처리 장치로 하여금 프로세스(400)의 동작들을 수행하게 할 수 있다.
이 예시적인 프로세스(400)에서, 요청은 암호화된 쿠키 요소 그룹, 예를 들어 다수의 수신자 각각에 대해 하나씩 증명 토큰을 포함한다. 각 수신자의 암호화된 쿠키 요소는 클라이언트 디바이스에 저장된 수신자의 쿠키와 증명 토큰에 포함된 데이터 세트의 디지털 서명의 암호화 해시의 조합의 암호화된 버전이다. 즉, 요청을 전송하는 웹 브라우저는 주어진 수신자의 공개키를 사용하여 수신자의 쿠키와 디지털 서명의 암호화 해시의 조합을 암호화할 수 있다. 각 수신자에 대한 디지털 서명의 암호화 해시는 디지털 서명에 대해 암호화 해시 알고리즘(예를 들어, SHA256)을 적용하여 계산할 수 있다. 이 암호화 해시는 암호화된 쿠키 요소를 각 요청에 고유하게 만들고 암호화된 쿠키 요소를 나머지 증명 토큰에 암호화 방식으로 바인딩하는 임의성을 도입한다.
요청의 증명 토큰에 있는 데이터 세트의 디지털 서명의 암호화 해시가 계산된다(402). 디지털 서명의 암호화 해시는 브라우저에 의해 채택된 암호화 해시 알고리즘을 사용하여 계산될 수 있다.
암호화된 쿠키 요소 그룹의 암호화된 제1 쿠키 요소가 액세스된다(404). 이 예에서, 암호화된 각 쿠키 요소는 하나씩 액세스된다. 다른 구현에서, 다수의 쿠키 요소는 예를 들어 다중 스레드 또는 다중 프로세서를 사용하여 병렬로 액세스 및 처리될 수 있다.
암호화된 쿠키 요소가 복호화된다(406). 암호화된 쿠키 요소는 쿠키를 암호화하는데 사용된 수신자의 공개키에 대응하는 수신자의 개인키를 사용하여 복호화될 수 있다.
복호화된 쿠키 요소가 동작(402)에서 계산된 디지털 서명의 암호화 해시와 매칭하는 부분을 포함하는지 여부가 결정된다(408). 예를 들어, 디지털 서명의 암호와 해시는 암호화 해시와 상기 복호화된 쿠키 요소의 일부 사이에 매칭이 있는지 여부를 결정하기 위해 복호화된 쿠키 요소와 비교될 수 있다.
매칭하지 않는 경우, 현재 액세스된 쿠키 요소가 그룹에 포함된 마지막 암호화된 쿠키 요소인지 여부가 결정된다(410). 현재 액세스된 쿠키 요소가 그룹의 마지막으로 암호화된 쿠키 요소가 아닌 경우, 다음 암호화된 쿠키 요소가 액세스된다(412). 그런 다음 이 쿠키 요소에 대해 동작(406 및 408)이 수행된다.
디지털 서명의 암호화 해시와 매칭하는 부분을 포함하는 각각의 복호화된 쿠키 요소에 대해, 복호화된 쿠키 요소가 수신자의 쿠키 식별자와 매칭하는 부분을 포함하는지 여부가 결정된다(416). 예를 들어 수신자는 다수의 클라이언트 디바이스에 쿠키를 저장한 게시자 또는 디지털 컴포넌트 제공자일 수 있다. 각 쿠키에는 게시자 또는 디지털 컴포넌트 제공자에 의해 저장된 고유 쿠키 식별자가 있을 수 있다. 따라서, 수신자는 자신의 쿠키 식별자를 복호화된 쿠키 요소와 비교하여 복호화된 쿠키 요소가 수신자의 유효한 쿠키 식별자를 포함하는지 여부를 결정할 수 있다. 그렇지 않은 경우, 프로세스(400)는 동작(416)에서 매치가 발견되거나 그룹의 모든 암호화된 쿠키 요소가 액세스되고 처리될 때까지 동작(410)으로 돌아간다.
복호화된 쿠키 요소가 수신자의 유효한 쿠키 식별자와 매칭하는 부분(및 동작(408)에서 디지털 서명의 암호와 해시와 일치하는 부분)을 포함하는 경우, 요청은 유효한 것으로 분류된다(418). 복호화된 쿠키 요소 중 어느 것도 매칭하는 부분을 모두 포함하지 않으면, 요청이 무효한 것으로 분류되거나(414), 수신자가 요청이 전송된 클라이언트 디바이스에 쿠키를 저장하지 않았다고 결정할 수 있다.
도 5는 증명 토큰을 사용하여 요청의 무결성이 유효한지 여부를 결정하기 위한 다른 예시적인 프로세스(500)를 도시하는 흐름도이다. 프로세스(500)는 예를 들어, 도 1의 게시자(130), 디지털 컴포넌트 배포 시스템(150), 디지털 컴포넌트 파트너(152), 또는 디지털 컴포넌트 제공자(160)와 같은 요청의 수신자에 의해 구현될 수 있다. 프로세스(500)의 동작들은 또한 비-일시적 컴퓨터 판독 가능 매체에 저장된 명령들로 구현될 수 있고, 하나 이상의 데이터 처리 장치에 의한 명령들의 실행은 하나 이상의 데이터 처리 장치로 하여금 프로세스(500)의 동작들을 수행하게 할 수 있다.
이 예시적인 프로세스(500)에서, 요청은 암호화된 쿠키 요소의 그룹, 예를 들어, 다수의 수신자 각각에 대해 하나씩 증명 토큰을 포함한다. 각 수신자에 대한 암호화된 쿠키 요소는 암호화 초기화 벡터로서 증명 토큰에 포함된 데이터 세트의 디지털 서명을 사용하는 수신자 쿠키의 암호화된 버전이다. 암호화 초기화 벡터를 사용하면 암호화된 쿠키 요소를 각 요청에 고유하게 만들고 암호화된 쿠키 요소를 나머지 증명 토큰에 암호화 방식으로 바인딩하는 임의성이 도입된다.
요청의 증명 토큰에 있는 데이터 세트의 디지털 서명의 암호화 해시가 계산된다(502). 디지털 서명의 암호화 해시는 브라우저에 의해 채택된 것과 동일한 암호화 해시 알고리즘을 사용하여 계산될 수 있다.
암호화된 쿠키 요소 그룹의 암호화된 제1 쿠키 요소가 액세스된다(504). 이 예에서, 암호화된 각 쿠키 요소는 하나씩 액세스된다. 다른 구현에서, 다수의 쿠키 요소는 예를 들어 다중 스레드 또는 다중 프로세서를 사용하여 병렬로 액세스 및 처리될 수 있다.
암호화된 쿠키 요소가 복호화된다(506). 암호화된 쿠키 요소는 쿠키를 암호화하는데 사용되는 수신자의 공개키에 해당하는 수신자의 개인키 및 암호화 초기 벡터로서 증명 토큰에 포함된 디지털 서명을 사용하여 복호화될 수 있다.
복호화된 쿠키 요소가 수신자의 쿠키 식별자와 매칭하는지 여부가 결정된다(508). 예를 들어, 수신자는 다수의 클라이언트 디바이스에 쿠키를 저장한 게시자 또는 디지털 컴포넌트 제공자일 수 있다. 각 쿠키에는 게시자 또는 디지털 컴포넌트 제공자에 의해 저장된 고유한 쿠키 식별자가 있을 수 있다. 따라서, 수신자는 자신의 쿠키 식별자를 복호화된 쿠키 요소와 비교하여, 복호화된 쿠키 요소가 수신자의 유효한 쿠키 식별자를 포함하는지 여부를 결정할 수 있다. 그렇지 않은 경우, 현재 액세스된 쿠키 요소가 그룹에 포함된 마지막 암호화된 쿠키 요소인지 여부가 결정된다(510). 현재 액세스된 쿠키 요소가 그룹에 있는 마지막 암호화된 쿠키 요소가 아닌 경우, 다음 암호화된 쿠키 요소가 액세스된다(512). 그런 다음 이 쿠키 요소에 대해 동작(506 및 508)이 수행된다.
복호화된 쿠키 요소가 수신자의 유효한 쿠키 식별자와 매칭하면, 요청은 유효한 것으로 분류된다(516). 복호화된 쿠키 요소 중 어느 것도 수신자의 유효한 쿠키 식별자와 매칭하지 않는 경우, 요청은 무효한 것으로 분류되거나(514), 수신자가 요청이 전송된 클라이언트 디바이스에 쿠키를 저장하지 않았다고 결정할 수 있다.
도 6은 전술한 동작들을 수행하는데 사용될 수 있는 예시적인 컴퓨터 시스템(600)의 블록도이다. 시스템(600)은 프로세서(610), 메모리(620), 저장 디바이스(630) 및 입출력 디바이스(640)를 포함한다. 컴포넌트(610, 620, 630, 640) 각각은 예를 들어 시스템 버스(650)를 사용하여 상호연결될 수 있다. 프로세서(610)는 시스템(600) 내에서 실행하기 위한 명령들을 처리할 수 있다. 일부 구현에서, 프로세서(610)는 단일 스레드 프로세서이다. 다른 구현에서, 프로세서(610)는 다중 스레드 프로세서이다. 프로세서(610)는 메모리(620) 또는 저장 디바이스(630)에 저장된 명령들을 처리할 수 있다.
메모리(620)는 시스템(600) 내에 정보를 저장한다. 일 구현에서, 메모리(620)는 컴퓨터 판독 가능 매체이다. 일부 구현에서, 메모리(620)는 휘발성 메모리 유닛이다. 다른 구현에서, 메모리(620)는 비-휘발성 메모리 유닛이다.
저장 디바이스(630)는 시스템(600)을 위한 대용량 저장소를 제공할 수 있다. 일부 구현에서, 저장 디바이스(630)는 컴퓨터 판독 가능 매체이다. 다양한 다른 구현에서, 저장 디바이스(630)는 예를 들어 하드 디스크 디바이스, 광 디스크 디바이스, 네트워크를 통해 다수의 컴퓨팅 디바이스(예를 들어, 클라우드 저장 디바이스)에 의해 공유되는 저장 디바이스, 또는 일부 다른 대용량 저장 디바이스를 포함할 수 있다.
입/출력 디바이스(640)는 시스템(600)에 대한 입/출력 동작을 제공한다. 일부 구현에서, 입/출력 디바이스(640)는 네트워크 인터페이스 디바이스들, 예를 들어, 이더넷 카드, 직렬 통신 디바이스(예를 들어, RS-232 포트), 및/또는 무선 인터페이스 디바이스(예를 들어, 802.11 카드) 중 하나 이상을 포함할 수 있다. 다른 구현에서, 입/출력 디바이스는 입력 데이터를 수신하고 출력 데이터를 외부 디바이스(660), 예를 들어, 키보드, 프린터 및 디스플레이 디바이스로 보내도록 구성된 드라이버 디바이스들을 포함할 수 있다. 그러나, 모바일 컴퓨팅 디바이스, 모바일 통신 디바이스, 셋탑 박스 텔레비전 클라이언트 디바이스 등과 같은 다른 구현도 사용될 수 있다.
예시적인 처리 시스템이 도 6에 설명되었지만, 본 명세서에 설명된 주제 및 기능적 동작의 구현은 다른 유형의 디지털 전자 회로, 또는 본 명세서에 개시된 구조 및 그 구조적 등가물을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다.
본 명세서에 기술된 주제 및 동작들의 실시예는 디지털 전자 회로, 또는 본 명세서에 개시된 구조 및 그의 구조적 등가물을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 기술된 주제의 실시예는 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 저장 미디어(또는 매체) 상에 인코딩된 컴퓨터 프로그램 명령의 하나 이상의 모듈로서 구현될 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령들은 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치의 전송을 위해 정보를 인코딩하도록 생성된 인위적으로 생성된 전파 신호, 예를 들어 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 이에 포함될 수 있다. 더욱이, 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지가 될 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 물리적 컴포넌트 또는 매체(예를 들어, 다중 CD, 디스크 또는 기타 저장 디바이스)일 수 있거나 이에 포함될 수 있다.
본 명세서에 설명된 동작들은 하나 이상의 컴퓨터 판독 가능 저장 디바이스에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작으로 구현될 수 있다.
"데이터 처리 장치"라는 용어는 예를 들어 프로그램 가능 프로세서, 컴퓨터, 칩상의 시스템, 또는 전술한 것들의 다수 또는 조합을 포함하여 데이터 처리를 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 장치는 특수 목적의 논리 회로, 예를 들어 FPGA(필드 프로그래밍 가능 게이트 어레이) 또는 ASIC(애플리케이션 특정 집적 회로)를 포함할 수 있다. 장치는 또한 하드웨어 외에도 문제의 컴퓨터 프로그램에 대한 실행 환경을 만드는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스 플랫폼 런타임 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 다른 컴퓨팅 모델 인프라를 구현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파일 또는 해석 언어, 선언적 또는 절차적 언어를 포함하여 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램이나 모듈, 컴포넌트, 서브 루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하여 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있지만 반드시 그럴 필요는 없다. 프로그램은 다른 프로그램 또는 데이터(예를 들어, 마크 업 언어 문서에 저장된 하나 이상의 스크립트)를 포함하는 파일의 일부, 해당 프로그램 전용 단일 파일 또는 다수의 조정 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 위치하거나 다수의 사이트에 분산되고 통신 네트워크로 상호 연결된 다수의 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에 설명된 프로세스 및 논리 흐름은 입력 데이터에 대해 동작하여 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 FPGA 또는 ASIC과 특수 목적 로직 회로로 구현될 수 있고 장치 또한 이들로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예로서 범용 및 특수 목적의 마이크로 프로세서 모두를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령들에 따라 동작을 수행하기 위한 프로세서와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어 자기, 광 자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 데이터를 전송하거나 둘 모두를 하도록 작동 가능하게 결합된다. 그러나 컴퓨터에는 이러한 디바이스들이 필요하지 않다. 더욱이, 컴퓨터는 다른 디바이스(예를 들어, 모바일 전화기, PDA, 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 디바이스(예를 들어, 범용 직렬 버스(USB) 플래시 드라이브)에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터 저장에 적합한 디바이스에는 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스); 자기 디스크(예를 들어, 내부 하드 디스크 또는 이동식 디스크); 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함한 모든 형태의 비-휘발성 메모리, 미디어 및 메모리 디바이스가 포함된다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에 기술된 주제의 실시예는 사용자에게 정보를 표시하기 위한 디스플레이 디바이스(예를 들어, CRT(음극선 관) 또는 LCD(액정 디스플레이) 모니터) 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 갖는 컴퓨터 상에 구현될 수 있다. 사용자와의 상호 작용을 제공하기 위해 다른 종류의 디바이스가 사용될 수도 있는데, 예를 들어, 사용자에게 제공되는 피드백은 예를 들어 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하여 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자가 사용하는 디바이스로 문서를 전송하고 그로부터 문서를 수신함으로써 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 클라이언트 디바이스상의 웹 브라우저로 웹 페이지를 전송함으로써 사용자와 상호 작용할 수 있다.
본 명세서에 기술된 주제의 실시예는 백엔드 컴포넌트(예를 들어, 데이터 서버)를 포함하거나, 미들웨어 컴포넌트(예를 들어, 애플리케이션 서버)를 포함하거나 프런트 엔드 컴포넌트(예를 들어, 사용자가 본 명세서에 설명된 주제의 구현과 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터)를 포함하거나 이러한 백엔드, 미들웨어 또는 프런트 엔드 컴포넌트 중 하나 이상의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 연결될 수 있다. 통신 네트워크의 예에는 근거리 통신망("LAN") 및 광역 네트워크("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어-투-피어 네트워크(예를 들어, 애드혹 피어-투-피어 네트워크)가 포함될 수 있다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 개별 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다. 일부 실시예에서, 서버는 (클라이언트 디바이스와 상호 작용하는 사용자에게 데이터를 표시하고 사용로부터 사용자 입력을 수신하기 위해) 데이터(예를 들어, HTML 페이지)를 클라이언트 디바이스로 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용 결과)는 서버에서 클라이언트 디바이스로부터 수신될 수 있다.
본 명세서에는 많은 특정 구현 세부 사항이 포함되어 있지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 것에 대한 제한으로 해석되어서는 안되며, 오히려 특정 발명의 특정 실시예에 특정된 특징들의 설명으로 해석되어야 한다. 별도의 실시예의 맥락에서 본 명세서에 설명된 특정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 맥락에서 설명된 다양한 특징은 또한 다중 실시예에서 개별적으로 또는 임의의 적절한 서브 조합으로 구현될 수 있다. 더욱이, 특징들이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 심지어 처음에 그렇게 주장될 수도 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우 조합으로부터 제외될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 대한 것일 수 있다.
유사하게, 동작들은 특정 순서로 도면에 도사되지만, 이는 바람직한 결과를 달성하기 위해 그러한 동작들이 특정 순서 또는 순차적 순서로 수행되거나 모든 예시된 동작들이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서, 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 더욱이, 위에서 설명된 실시예에서 다양한 시스템 컴포넌트의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 설명된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키징될 수 있음을 이해해야 한다.
따라서, 주제의 특정 실시예들이 설명되었다. 다른 실시예는 다음 청구항의 범위 내에 있다. 일부 경우에, 청구 범위에 언급된 동작들은 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 또한, 첨부된 도면에 도시된 프로세스들은 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적인 순서를 반드시 필요로 하지 않는다. 특정 구현에서는 멀티 태스킹 및 병렬 처리가 유리할 수 있다.

Claims (21)

  1. 컴퓨터 구현 방법으로서,
    클라이언트 디바이스의 애플리케이션으로부터, 애플리케이션의 증명 토큰을 포함하는 요청을 수신하는 단계와, 상기 증명 토큰은:
    적어도 애플리케이션의 공개키 및 증명 토큰이 생성된 시간을 나타내는 토큰 생성 시간을 포함하는 데이터 세트; 및
    데이터 세트의 서명을 포함하고, 상기 서명은 공개키에 대응하는 개인키를 사용하여 생성되고; 그리고
    증명 토큰을 사용하여 요청의 무결성을 검증하는 단계와, 상기 요청의 무결성을 검증하는 단계는:
    토큰 생성 시간이 상기 요청이 수신된 시간의 임계 기간 내에 있는지 여부를 결정하는 단계;
    공개키 및 상기 개인키를 사용하여 생성된 데이터 세트의 서명을 사용하여, 증명 토큰이 생성된 후 데이터 세트가 수정되었는지 여부를 결정하는 단계; 및
    토큰 생성 시간이 상기 요청이 수신된 시간의 임계 기간 내에 있다는 결정 및 증명 토큰이 변경된 후에 데이터 세트가 수정되지 않았다는 결정에 적어도 기초하여 요청의 무결성이 유효하다고 결정하는 단계를 포함하고; 그리고
    요청의 무결성이 유효하다는 결정에 응답하여 요청에 응답하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 애플리케이션은 웹 브라우저인 것을 특징으로 하는 컴퓨터 구현 방법.
  3. 제2항에 있어서,
    상기 데이터 세트는 웹 브라우저의 무결성이 유효한지 여부를 지정하는 브라우저 무결성 토큰을 더 포함하고, 그리고
    상기 요청의 무결성이 유효하다고 결정하는 단계는 브라우저 무결성 토큰이 웹 브라우저의 무결성이 유효함을 지정한다고 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  4. 제1항, 제2항 또는 제3항에 있어서,
    상기 요청은 애플리케이션으로 전달하기 위한 컨텐츠에 대한 것이고, 상기 방법은 요청이 유효하다는 결정에 응답하여 컨텐츠를 제공하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  5. 임의의 선행하는 청구항에 있어서,
    상기 데이터 세트는 요청에 특정된 데이터를 포함하는 페이로드를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  6. 제1항, 제2항 또는 제3항에 있어서,
    상기 데이터 세트는 요청에 특정된 데이터를 포함하는 페이로드를 더 포함하고, 상기 요청은 사용자 데이터를 삭제하기 위한 요청을 포함하고, 그리고 상기 페이로드는 사용자 데이터를 삭제하기 위한 동작을 지정하는 데이터를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  7. 임의의 선행하는 청구항에 있어서,
    상기 증명 토큰은,
    요청의 복수의 수신자 요청 각각에 대해, 수신자의 공개키를 사용하여 클라이언트 디바이스에 저장된 수신자의 쿠키를 암호화한 암호화 결과를 포함하는 개별 암호화된 쿠키 요소를 포함하는 암호화된 쿠키 요소 그룹을 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  8. 제7항에 있어서,
    상기 각 수신자에 대한 개별 암호화된 쿠키 요소의 암호화 결과는,
    수신자의 쿠키 및 데이터 세트의 서명의 조합을 암호화한 암호화 결과를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  9. 제8항에 있어서,
    상기 요청의 무결성이 유효하다고 결정하는 단계는,
    주어진 수신자에 의해 주어진 수신자의 개인키를 사용하여, 복호화된 쿠키 요소를 생성하기 위해 주어진 암호화된 쿠키 요소를 복호화하는 단계;
    복호화된 쿠키 요소가 데이터 세트의 서명과 매칭하는 제1 부분을 포함한다고 결정하는 단계; 및
    복호화된 쿠키 요소가 주어진 수신자의 쿠키 식별자와 매칭하는 제2 부분을 포함한다고 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  10. 제7항에 있어서,
    상기 각 수신자에 대한 개별 암호화된 쿠키 요소의 암호화 결과는,
    데이터 세트의 서명을 암호화 초기화 벡터로서 사용하여 수신자의 쿠키를 암호화한 암호화 결과를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  11. 제10항에 있어서,
    상기 요청의 무결성이 유효하다고 결정하는 단계는,
    주어진 수신자에 의해 주어진 수신자의 개인키 및 데이터 세트의 서명을 암호화 초기화 벡터로서 사용하여, 복호화된 쿠키 요소를 생성하기 위해 주어진 암호화된 쿠키 요소를 복호화하는 단계; 및
    복호화된 쿠키 요소가 주어진 수신자의 쿠키 식별자와 매칭한다고 결정하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  12. 제1항에 있어서,
    요청의 무결성이 유효하지 않다는 결정이 내려질 때마다 요청을 무시하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  13. 컴퓨터 구현 방법으로서,
    클라이언트 디바이스의 웹 브라우저에서, 적어도 (i) 웹 브라우저의 공개키, (ii) 증명 토큰이 생성된 시간을 나타내는 토큰 생성 시간, 및 (iii) 데이터 세트의 서명을 포함하는 데이터 세트를 갖는 증명 토큰을 생성하는 단계와, 상기 서명은 공개키에 대응하는 개인키를 사용하여 생성되고; 그리고
    인증 토큰을 포함하는 요청을 수신자에게 전송하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  14. 제13항에 있어서,
    상기 데이터 세트는 웹 브라우저의 무결성이 유효한지 여부를 지정하는 브라우저 무결성 토큰을 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  15. 제13항 또는 제14항에 있어서,
    상기 데이터 세트는 요청에 특정된 데이터를 포함하는 페이로드를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  16. 제13항 내지 제15항 중 어느 한 항에 있어서,
    상기 데이터 세트는 요청에 특정된 데이터를 포함하는 페이로드를 더 포함하고, 상기 요청은 사용자 데이터를 삭제하기 위한 요청을 포함하고, 그리고 상기 페이로드는 사용자 데이터를 삭제하기 위한 동작을 지정하는 데이터를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  17. 제13항 내지 제16항 중 어느 한 항에 있어서,
    상기 증명 토큰은,
    요청의 복수의 수신자 요청 각각에 대해, 수신자의 공개키를 사용하여 클라이언트 디바이스에 저장된 수신자의 쿠키를 암호화한 암호화 결과를 포함하는 개별 암호화된 쿠키 요소를 포함하는 암호화된 쿠키 요소 그룹을 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  18. 제17항에 있어서,
    상기 각 수신자에 대한 개별 암호화된 쿠키 요소의 암호화 결과는,
    수신자의 쿠키 및 데이터 세트의 서명의 조합을 암호화한 암호화 결과를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  19. 제17항에 있어서,
    상기 각 수신자에 대한 개별 암호화된 쿠키 요소의 암호화 결과는,
    데이터 세트의 서명을 암호화 초기화 벡터로서 사용하여 수신자의 쿠키를 암호화한 암호화 결과를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  20. 시스템으로서,
    하나 이상의 프로세서; 및
    하나 이상의 프로세서로 하여금 임의의 선행하는 청구항의 방법을 수행하게 하도록 구성된 컴퓨터 판독 가능 명령들이 저장된 하나 이상의 메모리를 포함하는 시스템.
  21. 하나 이상의 컴퓨터에 의한 실행시 하나 이상의 컴퓨터로 하여금 제1항 내지 제19항 중 어느 한 항의 방법의 동작들을 수행하게 하는 명령들을 저장하는 비-일시적 컴퓨터 판독 가능 매체.






KR1020217024826A 2019-08-13 2020-08-13 브라우저 쿠키 보안 KR20210112359A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962886195P 2019-08-13 2019-08-13
US62/886,195 2019-08-13
PCT/US2020/046101 WO2021030545A1 (en) 2019-08-13 2020-08-13 Securing browser cookies

Publications (1)

Publication Number Publication Date
KR20210112359A true KR20210112359A (ko) 2021-09-14

Family

ID=72235018

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217024826A KR20210112359A (ko) 2019-08-13 2020-08-13 브라우저 쿠키 보안

Country Status (6)

Country Link
US (1) US11949688B2 (ko)
EP (1) EP3900300A1 (ko)
JP (1) JP7319380B2 (ko)
KR (1) KR20210112359A (ko)
CN (1) CN113424188A (ko)
WO (1) WO2021030545A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220137955A (ko) * 2021-03-03 2022-10-12 구글 엘엘씨 개인 정보 보호 활동 집계 메커니즘
US20230231722A1 (en) * 2022-01-14 2023-07-20 Lenovo (Singapore) Pte. Ltd. Apparatus, methods, and program products for generating secure short universal resource locators
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

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272538B1 (en) * 1996-07-30 2001-08-07 Micron Technology, Inc. Method and system for establishing a security perimeter in computer networks
US6985953B1 (en) 1998-11-30 2006-01-10 George Mason University System and apparatus for storage and transfer of secure data on web
US7478434B1 (en) * 2000-05-31 2009-01-13 International Business Machines Corporation Authentication and authorization protocol for secure web-based access to a protected resource
CA2555465A1 (en) 2004-02-04 2006-03-16 Passmark Security, Inc. Method and apparatus for authentication of users and communications received from computer systems
US20060059346A1 (en) 2004-09-14 2006-03-16 Andrew Sherman Authentication with expiring binding digital certificates
US7734911B2 (en) * 2005-05-31 2010-06-08 Tricipher, Inc. Secure login using augmented single factor split key asymmetric cryptography
US8862871B2 (en) * 2011-04-15 2014-10-14 Architecture Technology, Inc. Network with protocol, privacy preserving source attribution and admission control and method
WO2015122009A1 (ja) 2014-02-17 2015-08-20 富士通株式会社 サービス提供方法、サービス要求方法、情報処理装置、及び、クライアント装置
US10505916B2 (en) 2017-10-19 2019-12-10 T-Mobile Usa, Inc. Authentication token with client key
CN108965230B (zh) * 2018-05-09 2021-10-15 深圳市中信网安认证有限公司 一种安全通信方法、系统及终端设备
US10841100B2 (en) * 2018-08-07 2020-11-17 The Toronto-Dominion Bank Dynamically managing exchanges of data using a distributed ledger and homomorphic commitments

Also Published As

Publication number Publication date
JP2022543947A (ja) 2022-10-17
WO2021030545A1 (en) 2021-02-18
CN113424188A (zh) 2021-09-21
EP3900300A1 (en) 2021-10-27
JP7319380B2 (ja) 2023-08-01
US20220166780A1 (en) 2022-05-26
US11949688B2 (en) 2024-04-02

Similar Documents

Publication Publication Date Title
US11790111B2 (en) Verifiable consent for privacy protection
JP7319380B2 (ja) ブラウザクッキーを保護する
US20220300643A1 (en) Cryptographically secure data protection
KR20220123695A (ko) 암호화 방식으로 보안 요청 검증
JP2023096089A (ja) グループ署名による匿名イベント証明
KR102608325B1 (ko) 클라이언트 장치에서 통신의 무결성 보호
JP7389235B2 (ja) 匿名イベント認証
JP7410280B2 (ja) 複数受信者セキュア通信
US11381600B1 (en) Encryption techniques for constraining browser cookies
JP2023524360A (ja) プライバシーを守る活動集約メカニズム
CN116348874A (zh) 使用鉴证令牌的安全归因
CN116034596A (zh) 具有令牌赎回的匿名认证

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal