KR20220039800A - 그룹 서명을 통한 익명 이벤트 증명 - Google Patents

그룹 서명을 통한 익명 이벤트 증명 Download PDF

Info

Publication number
KR20220039800A
KR20220039800A KR1020227007057A KR20227007057A KR20220039800A KR 20220039800 A KR20220039800 A KR 20220039800A KR 1020227007057 A KR1020227007057 A KR 1020227007057A KR 20227007057 A KR20227007057 A KR 20227007057A KR 20220039800 A KR20220039800 A KR 20220039800A
Authority
KR
South Korea
Prior art keywords
client device
token
request
integrity
group
Prior art date
Application number
KR1020227007057A
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 KR20220039800A publication Critical patent/KR20220039800A/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/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
    • H04L9/3255Cryptographic 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 using group based signatures, e.g. ring or threshold signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/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
    • H04L9/3257Cryptographic 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 using blind signatures
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/42Anonymization, e.g. involving pseudonyms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

방법, 시스템 및 컴퓨터 매체는 클라이언트 디바이스로부터 전송된 통신의 무결성을 보호하는 동시에 클라이언트 디바이스 또는 사용자를 추적하는데 사용될 수 있는 안정적인 디바이스 식별자의 사용을 방지하는 증명 토큰을 제공한다. 한자기 접근 방식에서, 클라이언트 디바이스는 선택된 디바이스 신뢰도 그룹의 구성원임을 나타내는 디바이스 무결성 컴퓨팅 시스템으로부터 익명 인증서를 수신할 수 있으며, 증명 토큰이 그룹 서명 방식을 사용하여 익명 인증서로 익명으로 서명될 수 있다. 클라이언트 디바이스는 클라이언트 디바이스에 의해 생성된 증명 토큰의 양에 제한을 부과하는 스로틀러(throttlers)를 포함할 수 있다.

Description

그룹 서명을 통한 익명 이벤트 증명
클라이언트 디바이스는 인터넷과 같은 공용 네트워크를 통해 요청과 기타 데이터를 전송한다. 이러한 통신은 통신을 가로채는 당사자 및/또는 통신을 수신하여 다른 당사자에게 포워딩하는 중개자와 같은 다른 당사자에 의해 변경될 수 있다.
클라이언트 디바이스는 또한 사용자 모르게 또는 승인 없이 사기성 요청을 보낼 수 있는 바이러스 및 맬웨어와 같은 악의적인 공격의 대상이 된다. 게다가, 다른 당사자는 클라이언트 디바이스를 에뮬레이트하여 클라이언트 디바이스로부터 발신된 것처럼 보이지만 실제로는 다른 당사자의 디바이스로부터 오는 요청을 송신할 수 있다.
사기 및 남용을 방지하고 공용 네트워크를 통한 트랜잭션의 무결성을 보호하기 위해 다양한 인증 기술이 사용될 수 있다. 동시에, 이러한 인증 기술은 프라이버시 보호 문제를 내포할 수 있다. 예를 들어, 클라이언트 디바이스의 사용자는 클라이언트 디바이스 또는 이러한 클라이언트 디바이스의 사용자를 추적하는데 사용될 수 있는 정보(예를 들어, 안정적인 디바이스 식별자)를 공유하기를 원하지 않을 수 있으며, 데이터 제공자는 이러한 정보를 받거나 처리하지 못하도록 하는 프라이버시 보호 표준에 따라 운영할 수 있다.
본 명세서는 클라이언트 디바이스 또는 그의 사용자를 추적하는데 사용될 수 있는 안정적인 디바이스 식별자의 사용을 피하는 동시에 클라이언트 디바이스에서 전송되는 통신의 무결성을 보호하기 위한 인증 기술과 관련된 기술을 설명한다.
일반적으로, 본 명세서에 설명된 주제의 제1 혁신적인 양태는 컴퓨터 구현 방법으로 구현될 수 있으며, 이 방법은 디바이스 무결성 컴퓨팅 시스템에 의해 클라이언트 디바이스로부터, N개의 디바이스 무결성 요소에 대한 요청을 수신하는 단계와, 상기 요청은 클라이언트 디바이스에 대한 디바이스-레벨 사기 탐지 신호 및 N개의 디바이스 무결성 요소 각각에 대해, (i) 디바이스 무결성 요소에 대한 개별 공개키 또는 (ii) 디바이스 무결성 요소에 대한 개별 공개키의 파생물 중 적어도 하나를 포함하는 공개키 데이터를 포함하고; 디바이스 무결성 컴퓨팅 시스템에 의해 적어도 디바이스-레벨 사기 탐지 신호에 기초하여, 클라이언트 디바이스의 신뢰도에 대한 판정을 결정하는 단계와; N개의 디바이스 무결성 요소 각각에 대해, 디바이스 무결성 컴퓨팅 시스템에 의해, 디바이스 무결성 요소에 대한 적어도 공개키 데이터를 사용하여 디바이스 무결성 요소를 생성하는 단계와, 상기 디바이스 무결성 요소는 디바이스 무결성 요소에 대한 공개키 데이터를 포함하는 컨텐츠 세트에 기초하여 생성된 디지털 서명을 포함하고; 그리고 디바이스 무결성 컴퓨팅 시스템에 의해, N개의 디바이스 무결성 요소를 클라이언트 디바이스로 전송하는 단계를 포함한다. N은 예를 들어 2보다 크거나 같은 정수일 수 있다. 이 양태의 다른 구현은 컴퓨터 저장 디바이스에 인코딩된 방법의 양태를 수행하도록 구성된 대응하는 장치, 시스템 및 컴퓨터 프로그램을 포함한다.
일부 양태에서, 각각의 디바이스 무결성 요소는 디바이스 무결성 요소에 대한 컨텐츠 세트를 포함하는 개별 디바이스 무결성 토큰을 포함하고, 디바이스 무결성 요소에 대한 컨텐츠 세트는 신뢰도의 판정이 결정된 시간을 나타내는 타임스탬프 및 디바이스 무결성 요소에 대한 공개키 데이터를 포함하고, 각각의 디바이스 무결성 요소를 생성하는 단계는 디바이스 무결성 컴퓨팅 시스템의 개인키를 사용하여 디바이스 무결성 요소에 대한 컨텐츠 세트를 디지털 서명하는 단계를 포함한다. 디바이스 무결성 요소에 대한 컨텐츠 세트는 신뢰도 판정을 추가로 포함할 수 있다.
일부 양태에서, 각각의 디바이스 무결성 요소를 생성하는 단계는 블라인드 서명 방식을 사용하여, 디바이스 무결성 요소에 대한 공개키 데이터의 블라인드 서명을 생성하는 단계를 포함하고, 디바이스 무결성 요소는 블라인드 서명이다. 방법은 클라이언트 디바이스에 대한 M개의 신뢰도 레벨에 대응하는 M개의 블라인드 서명 검증키를 공개하는 단계, 및 M개의 검증 키에 대응하는 M개의 개별 서명 키를 유지하는 단계를 더 포함할 수 있다.
일부 양태에서, 신뢰도 판정을 결정하는 단계는 M개의 신뢰도 레벨로부터 선택된 신뢰도 레벨을 클라이언트 디바이스에 할당하는 단계를 포함할 수 있다. 예를 들어, 각 디바이스 무결성 요소에 대한 공개키 데이터는 디바이스 무결성 요소에 대한 공개키의 파생물을 포함할 수 있고, 디바이스 무결성 요소에 대한 공개키의 파생물은 블라인드 서명 방식을 사용하여 블라인드된 블라인드 공개키를 포함할 수 있다. 디바이스 무결성 요소에 대한 공개키의 파생물은 디바이스 무결성 요소에 대한 공개키의 블라인드된 절단 암호화 해시를 포함할 수 있다.
일부 양태에서, 블라인드 서명 방식은 개인적으로 검증 가능한 블라인드 서명 방식을 포함한다. 예를 들어, 개인적으로 검증 가능한 블라인드 서명 방식은 IETF VOPRF 블라인드 서명 방식일 수 있다.
다른 양태에서, 블라인드 서명 방식은 공개적으로 검증 가능한 블라인드 서명 방식을 포함한다. 예를 들어, 공개적으로 검증 가능한 블라인드 서명 방식은 블라인드 RSA 서명 방식일 수 있다.
본 명세서에 기술된 주제의 또 다른 혁신적인 양태는 클라이언트 디바이스에 의해 수행되는 방법으로 구현될 수 있으며, 이 방법은 디바이스 무결성 컴퓨팅 시스템으로, 익명 인증서에 대한 제1 요청을 전송하는 단계와, 상기 요청은 클라이언트 디바이스에 대한 디바이스-레벨 사기 탐지 신호를 포함하고; 디바이스 무결성 컴퓨팅 시스템으로부터, 익명 인증서를 수신하는 단계와, 상기 익명 인증서는 적어도 디바이스-레벨 사기 탐지 신호에 기초하여 디바이스 신뢰도 그룹의 세트로부터 선택된 소정(given) 서명 그룹에 대응하고, 각 디바이스 신뢰도 그룹은 신뢰도의 개별 카테고리에 대응하고; (i) 제2 요청 및 익명 증명 토큰의 생성 시간을 나타내는 증명 토큰 생성 타임스탬프를 포함하는 데이터 세트 및 (ii) 익명 인증서와 함께 그룹 서명 방식을 사용하여 생성된 데이터 세트의 디지털 서명을 포함하는 익명 증명 토큰을 생성하는 단계와; 그리고 증명 토큰을 수신자에게 전송하는 단계를 포함한다. 이 양태의 다른 구현은 컴퓨터 저장 디바이스에 인코딩된 방법의 양태를 수행하도록 구성된 대응하는 장치, 시스템 및 컴퓨터 프로그램을 포함한다.
일부 양태에서, 그룹 서명 방식은 직접 익명 증명(DAA) 서명 방식이다. DAA 서명 방식은 ECC(Elliptic Curve Cryptography) DAA 서명 방식일 수 있다. ECC DAA 서명 방식은 Barreto-Naehrig 곡선이 있는 ECC DAA 서명 방식일 수 있다.
일부 양태에서, 익명 인증서는, 클라이언트 디바이스가 소정 서명 그룹에 취소 불가능하게 할당되었음을 나타내는 취소 불가능한 익명 인증서이다.
일부 양태에서, 디바이스 신뢰도 그룹 세트는 제1 신뢰도를 갖는 디바이스를 구성원으로 포함하는 적어도 제1 신뢰도 그룹 및 제1 신뢰도보다 낮은 제2 신뢰도를 갖는 디바이스를 구성원으로 포함하는 제2 신뢰도 그룹을 포함하고, 소정 그룹은 제1 그룹 또는 제2 서명 그룹 중 하나이다. 제1 및 제2 신뢰도 그룹은 디바이스 무결성 컴퓨팅 시스템에 의해 발행된 대응하는 제1 및 제2 그룹 공개키를 가질 수 있다.
일부 양태에서, 방법은 익명 인증서를 클라이언트 디바이스의 보안 개인키 저장소에 저장하는 단계를 더 포함한다.
일부 양태에서, 토큰 생성 타임스탬프는 약 밀리초 미만 또는 약 마이크로초 미만의 시간 분해능을 갖는다.
일부 양태에서, 방법은 증명 토큰 수량 제한을 나타내는 정보를 수신하는 단계와; 그리고 생성하는 단계 전에, 그 생성하는 단계가 증명 토큰 수량 제한을 초과하지 않는지 검증하는 단계를 더 포함한다. 증명 토큰 수량 제한은 선택된 시간 프레임 내에 클라이언트 디바이스로부터 선택된 대상 도메인으로 전송될 수 있는 익명 토큰의 수에 대한 제한일 수 있거나; 또는 증명 토큰 수량 제한은 선택된 시간 프레임 내에 클라이언트 디바이스의 하나 이상의 선택된 애플리케이션으로부터 선택된 대상 도메인으로 전송될 수 있는 익명 토큰의 수에 대한 제한일 수 있거나, 또는 증명 토큰 수량 제한은 선택된 시간 프레임 내에 클라이언트 디바이스로부터 선택된 대상 도메인 내의 선택된 엔드포인트로 전송될 수 있는 익명 토큰의 수에 대한 제한일 수 있거나, 또는 증명 토큰 수량 제한은 선택된 시간 프레임 내에 클라이언트 디바이스의 하나 이상의 선택된 애플리케이션으로부터 선택된 대상 도메인 내의 선택된 엔드포인트로 전송될 수 있는 익명 토큰의 수에 대한 제한일 수 있거나' 또는 이들의 임의의 조합일 수 있다.
본 명세서에 기술된 주제는 다음 이점들 중 하나 이상을 실현하기 위해 특정 실시예에서 구현될 수 있다.
클라이언트 디바이스로부터 데이터를 전송하기 위해 증명 토큰을 사용하는 것은 클라이언트 디바이스와 컴퓨터 또는 다른 엔티티의 다른 디바이스 사이에 보안 통신 채널을 제공한다. 증명 토큰으로, 증명 토큰에 포함된 데이터의 디지털 서명을 포함하면 엔터티는 증명 토큰이 생성된 후 증명 토큰의 데이터가 변경되지 않았는지 검증할 수 있다. 또한, 증명 토큰에 토큰 생성 시간을 포함하면 수신자가 요청이 새로운 것인지 아니면 재생 공격의 일부인지 확인할 수 있다.
증명 토큰은 또한 증명 토큰을 전송한 클라이언트 디바이스의 무결성을 나타내는 디바이스 무결성 토큰을 포함할 수 있으며, 이를 통해 증명 토큰의 수신자(들)는 데이터가 에뮬레이터나 손상된 디바이스가 아닌 신뢰할 수 있는 클라이언트 디바이스로부터 온 것임을 검증할 수 있다. 디바이스 무결성 토큰은 증명 토큰의 수신자가 클라이언트 디바이스가 신뢰할 수 있는 디바이스 분석기에 의해 평가되었으며 디바이스 무결성 토큰의 데이터가 신뢰할 수 있는 디바이스 분석기에 의해 생성된 후 수정되지 않았음을 검증할 수 있도록 신뢰할 수 있는 디바이스 분석기(예를 들어, 제3자 디바이스 분석기)에 의해 생성되고 디지털 서명될 수 있다.
증명 토큰은 클라이언트 디바이스들로부터 전송된 통신의 무결성을 보호하지만, 거기에는 증명 토큰의 사용과 관련된 잠재적인 프라이버시 문제가 있다. 첫 번째 프라이버시 문제는 다수의 증명 토큰 내에서 동일한 디바이스 무결성 토큰을 재사용하면 잠재적으로 증명 토큰 수신자가 동일한 클라이언트 디바이스에서 전송된 다수의 요청의 상관 관계를 지정하고 상관 관계에 기초하여 사용자 데이터를 집계할 수 있다는 것이다. 본 문서에 설명된 기술은 클라이언트 디바이스의 고유한 공개키를 각각 포함하는 다수의 디바이스 무결성 토큰을 사용함으로써 이러한 상관 관계에 대한 프라이버시를 향상시킬 수 있다. 예를 들어, 클라이언트 디바이스는 N개의 공개/개인 키 쌍의 배치를 생성한 다음 그 N개의 공개키를 제3자 디바이스 분석기로 전송하여 N개의 대응하는 디바이스 무결성 토큰의 배치를 수신할 수 있다. 그런 다음 클라이언트 디바이스는 예를 들어 각 요청에 대해 새로운 디바이스 무결성 토큰을 사용할 수 있거나, 또는 클라이언트 디바이스는 특정 시간 간격 내에서 모든 요청에 대해 동일한 디바이스 무결성 토큰을 사용할 수 있거나, 또는 클라이언트 디바이스는 클라이언트 디바이스상의 동일한 애플리케이션으로부터 발신된 모든 요청에 대해 동일한 디바이스 무결성 토큰을 사용하거나; 또는 이들의 일부 조합을 사용할 수 있다. 각 공개키의 사용을 제한하면 수신자가 공개키에 기초하여 상관시킬 수 있는 요청의 양이 제한된다. 이 배치 접근 방식을 사용하면 처리할 요청이 줄어들어 디바이스 분석기에 대한 부담이 줄어들고, 네트워크 대역폭 소비가 줄어들며, 그리고 디바이스 무결성 토큰이 필요할 때마다 클라이언트 디바이스가 디바이스 무결성 토큰에 대한 요청을 보낸 경우 도입될 디바이스 무결성 토큰을 포함하는 요청을 전송할 때 클라이언트 디바이스에서 대기 시간(latency)을 줄인다.
두 번째 프라이버시 문제는 클라이언트 디바이스의 안정적인 공개키를 디바이스 분석기와 공유하면 잠재적으로 디바이스 분석기가 클라이언트 디바이스를 추적할 수 있다는 것이다. 예를 들어, 디바이스 분석기와 공모함으로써, 다수의 개별 증명 토큰의 수신자는 디바이스 분석기가 동일한 디바이스로부터 동일한 배치 요청으로 해당 증명 토큰을 수신했음을 알 수 있고 따라서 이러한 증명 토큰의 수신자는 동일한 클라이언트 디바이스에 의해 전송된 다수의 요청의 상관 관계를 지정하고 상관 관계에 기초하여 사용자 데이터를 집계할 수 있다. 본 문서에 설명된 기술은 디바이스 분석기에 공개키의 원시값이 아닌 공개키의 블라인드(된) 버전을 전송함으로써 이러한 추적에 대한 프라이버시를 향상시킬 수 있다. 예를 들어, 클라이언트 디바이스 N개의 공개-개인 키 쌍의 배치를 생성하고, N개의 공개키(또는 공개 키의 암호화 해시)를 블라인드한 다음, N개의 블라인드된 키를 디바이스 분석기로 전송할 수 있으며, 제3자 디바이스 분석기는 클라이언트 디바이스 공개키의 원시값을 수신하지 않고 N개의 해당 블라인드 서명의 배치를 반환한다.
본 개시의 추가 양태는 공개키 서명 방식보다는 그룹 서명 방식을 사용함으로써 신뢰할 수 있는 디바이스 분석기 및 증명 토큰 수신자 모두에 의한 추적에 대한 프라이버시를 향상시키는 이점을 제공할 수 있다. 예를 들어, 제3자 디바이스 분석기는 클라이언트 디바이스를 클라이언트 디바이스의 신뢰도 레벨에 해당하는 서명 그룹에 할당하고 클라이언트 디바이스에 서명 그룹에 대한 익명 인증서를 제공할 수 있다. 그런 다음, 클라이언트는 익명 인증서와 함께 그룹 서명 방식을 사용하여 각 증명 토큰에 서명할 수 있으며, 증명 토큰 수신자는 제3자 디바이스 분석기에 의해 발행(게시)된 공개 그룹 키를 사용하여 익명 서명을 검증할 수 있다. 이 접근 방식을 사용하면 클라이언트 디바이스의 리소스에서 많은 공개/개인 키 쌍을 생성해야 하는 부담을 줄이고 디바이스 분석기 리소스에서 각 공개키에 대한 디바이스 무결성 토큰을 생성해야 하는 부담을 덜어준다. 이렇게 하면 다른 기능을 수행하기 위해 각각의 리소스를 확보할 수 있고 디바이스 분석기는 확보된 리소스를 사용하여 더 짧은 시간에 더 많은 클라이언트 디바이스를 평가할 수 있다. 따라서, 그룹 서명 방식을 사용하면 공개/개인 키 쌍의 생성이 줄어들어 보다 효율적인 프로세스를 제공한다.
전술한 주제의 다양한 특징 및 이점이 도면과 관련하여 아래에서 설명된다. 추가 특징 및 이점은 본 명세서 및 청구범위에 기재된 주제로부터 명백하다.
도 1은 디지털 컴포넌트 시스템이 디지털 컴포넌트를 분배하는 환경의 블록도이다.
도 2는 N개의 디바이스 무결성 토큰의 배치(batch)를 요청하고 수신하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 3은 증명 토큰을 송신, 수신 및 유효성 검사하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 4는 N개의 블라인드 서명된 디바이스 무결성 토큰의 배치를 요청하고 수신하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 5는 블라인드 서명된 증명 토큰을 송신, 수신 및 유효성 검사하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 6은 서명 그룹에 대한 익명의 개인키를 요청하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 7은 익명으로 서명된 증명 토큰을 송신, 수신 및 유효성 검사하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 8은 발행된 토큰 수량 제한을 준수하기 위해 증명 토큰을 조절하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 9는 예시적인 컴퓨터 시스템의 블록도이다.
다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 요소를 나타낸다.
일반적으로, 본 명세서에 설명된 시스템 및 기술은 디지털 컴포넌트 배포 시스템에 의한 배포를 위해 디지털 컴포넌트를 생성 및 제공하는 컨텐츠 발행자, 디지털 컴포넌트 배포 시스템 및 디지털 컴포넌트 제공자와 같은 다른 엔티티와 클라이언트 디바이스 사이에 보안 통신 채널을 제공할 수 있다. 클라이언트 디바이스는 네트워크를 통한 요청 및 기타 데이터 전송을 통해 다른 엔티티에서 요청의 무결성 및 클라이언트 디바이스의 무결성을 유효성 검사하는데 사용되는 증명 토큰을 제공할 수 있다. 요청은 예를 들어 사용자의 데이터를 관리하기 위한 요청(예를 들어, 사용자 관련 데이터를 삭제용), 컨텐츠에 대한 요청, 및/또는 다른 컨텐츠와 함께 제시할 디지털 컴포넌트에 대한 요청을 포함할 수 있다. 증명 토큰을 사용하여 통신 채널을 보호하는 것은 사기 사용자가 사용자 데이터를 변경, 삭제 또는 액세스하거나, 요청 내용을 변경하거나, 예를 들어 디지털 컴포넌트 배포 시스템 및/또는 제공자를 속이기 위해 새로운 요청을 생성할 수 없도록 한다.
일부 접근 방식에서, 증명 토큰은 클라이언트 디바이스의 개인키를 사용하여 디지털 서명될 수 있다. 클라이언트 디바이스는 개인키를 기밀로 유지할 수 있다. 증명 토큰은 무엇보다도 개인키에 대응하는 공개키, 페이로드 및 디바이스 무결성 토큰을 포함할 수 있다. 디바이스 무결성 토큰은 신뢰할 수 있는 디바이스 무결성 시스템, 예를 들어 클라이언트 디바이스의 사용자 및 증명 토큰의 수신자와 다른 엔터티에 의해 유지 관리되는 제3자 디바이스 무결성 시스템에 의해 결정된 클라이언트 디바이스의 무결성 레벨을 나타내는 판정(verdict)을 포함할 수 있다. 디바이스 무결성 토큰은 또한 디바이스 무결성 토큰을 클라이언트 디바이스에 바인딩하기 위해 클라이언트 디바이스의 공개키(또는 공개키의 암호화 해시)를 포함할 수 있다.
디바이스 무결성 토큰은 디바이스 무결성 시스템이 기밀로 유지하는 개인키를 사용하여 디바이스 무결성 시스템에 의해 디지털 서명될 수 있다. 이 개인키에 대응하는 공개키는 수신자에게 제공되어 클라이언트 디바이스가 예를 들어 공개키를 사용하여 디바이스 무결성 토큰의 디지털 서명을 검증(확인)함으로써 디바이스 무결성 시스템에 의해 평가되었음을 신뢰할 수 있다. 두 쌍의 키를 사용하는 이 조합은 수신자가 클라이언트 디바이스의 무결성과 클라이언트 디바이스로부터 수신된 통신의 무결성을 유효성 검사할수 있도록 하는 보안 통신 채널을 제공하고, 디바이스 무결성 토큰을 클라이언트 디바이스에 바인딩하여 다른 디바이스가 디바이스 무결성 토큰을 사용하여 무결성을 위조할 수 없도록 한다.
일부 접근 방식에서, 디바이스 무결성 시스템은 디바이스 무결성 토큰에 포함하기 위해 공개키의 원시 데이터를 수신하지 않는다. 대신에, 클라이언트 디바이스는 블라인드 서명 방식(scheme)을 사용하여 공개키 또는 그의 파생물을 블라인드함으로써 블라인드된 공개키 또는 공개키의 블라인드된 파생물(예를 들어, 공개키의 블라인드된 잘린 암호화 해시)을 송신할 수 있다. 블라인드 서명 방식으로, 디바이스 무결성 시스템은 클라이언트 디바이스의 공개키의 원시값을 수신하지 않고 클라이언트 디바이스의 무결성을 인증할 수 있으며, 공개키를 통한 잠재적인 추적의 위험을 줄임으로써 클라이언트 디바이스 또는 사용자의 프라이버시를 향상시킬 수 있다. 디바이스 무결성 시스템은 수신자가 블라인드 서명을 검증하는데 사용할 수 있는 블라인드 서명 검증키를 발행할 수 있다.
다른 접근법에서는, 디바이스 무결성 시스템을 그룹 관리자로서 사용하여 그룹 서명 방식이 사용될 수 있다. 예를 들어, 디바이스 무결성 시스템은 M개의 신뢰도(성) 그룹에 대한 M개의 그룹 검증키를 발행하고, M개의 신뢰도 그룹 중 하나에 클라이언트 디바이스를 할당하고, 클라이언트 디바이스로 익명 인증서를 전달할 수 있다. 클라이언트 디바이스는 익명 인증서를 사용하여 증명 토큰에 익명으로 서명할 수 있으며 이러한 익명 서명은 발행된 그룹 검증키를 사용하여 수신자에 의해 확인될 수 있다. 그룹 서명 방식을 통해, 디바이스 무결성 시스템이나 증명 토큰의 수신자는 클라이언트 디바이스의 공개키의 원시값을 수신할 필요가 없으므로 공개키를 통한 잠재적인 추적 위험을 줄임으로써 클라이언트 디바이스 또는 사용자의 프라이버시를 더욱 강화한다.
도 1은 디지털 컴포넌트 시스템(150)이 디지털 컴포넌트(129)를 배포하는 환경(100)의 블록도이다. 예시적인 환경(100)은 근거리 통신망(LAN), 광역 통신망(WAN), 인터넷, 모바일 네트워크 또는 이들의 조합과 같은 데이터 통신 네트워크(105)를 포함한다. 네트워크(105)는 클라이언트 디바이스(110), 발행자(130), 웹사이트(140), 디지털 컴포넌트 배포 시스템(150), 및 디바이스 무결성 시스템(170)(디바이스 무결성 컴퓨팅 시스템으로도 지칭될 수 있음)을 연결한다. 예시적인 환경(100)은 많은 상이한 클라이언트 디바이스(110), 발행자(130), 웹사이트(140), 디지털 컴포넌트 배포 시스템(150) 및 디바이스 무결성 시스템(170)을 포함할 수 있다.
웹사이트(140)는 도메인 이름과 연관되고 하나 이상의 서버에 의해 호스팅되는 하나 이상의 리소스(145)이다. 예시적인 웹 사이트는 텍스트, 이미지, 멀티미디어 컨텐츠, 및 스크립트와 같은 프로그래밍 요소를 포함할 수 있는 HTML 형식의 웹 페이지 모음이다. 각각의 웹사이트(140)는 웹사이트(140)를 제어, 관리 및/또는 소유하는 엔티티인 발행자(130)에 의해 유지된다.
리소스(145)는 네트워크(105)를 통해 제공될 수 있는 임의의 데이터이다. 리소스(145)는 리소스(145)와 관련된 URL과 같은 리소스 주소에 의해 식별된다. 리소스에는 몇 가지만 들면 HTML 페이지, 워드 프로세싱 문서, PDF 문서, 이미지, 비디오 및 피드 소스가 포함될 수 있다. 리소스에는 임베딩된 정보(예를 들어, 하이퍼링크의 메타 정보) 및/또는 임베딩된 명령(예를 들어, 스크립트)이 포함될 수 있는 단어, 구문, 이미지 및 소리와 같은 컨텐츠가 포함될 수 있다.
클라이언트 디바이스(110)는 네트워크(105)를 통해 통신할 수 있는 전자 디바이스이다. 예시적인 클라이언트 디바이스(110)는 개인용 컴퓨터, 모바일 통신 디바이스, 예를 들어 스마트 폰, 디지털 미디어 플레이어, 스마트 스피커, 웨어러블 디바이스(예를 들어, 스마트 워치), 및 네트워크(105)를 통해 데이터를 송수신할 수 있는 기타 디바이스를 포함한다. 클라이언트 디바이스(110)는 일반적으로 네트워크(105)를 통한 데이터의 송수신을 용이하게 하는 웹 브라우저 및/또는 기본 애플리케이션과 같은 애플리케이션(111)을 포함한다. 기본 애플리케이션은 특정 플랫폼 또는 특정 디바이스용으로 개발된 애플리케이션이다. 발행자(130)는 기본 애플리케이션을 개발하고 클라이언트 디바이스(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)은 클라이언트 디바이스(110)에서 동작하는 애플리케이션(111)에 의한 프리젠테이션을 위해 선택된 디지털 컴포넌트(129)를 하나 이상의 클라이언트 디바이스(110)로 전송할 수 있다.
애플리케이션(111)이 네트워크(105)를 통해 요청(120)을 전송할 때, 애플리케이션(111)은 요청과 함께 증명 토큰(122)을 전송할 수 있다. 예를 들어, 애플리케이션(111)이 디지털 컴포넌트 요청을 디지털 컴포넌트 배포 시스템(150)으로 전송하는 경우, 이 요청은 증명 토큰(122)을 포함할 수 있다. 유사하게, 애플리케이션(111)이 해당 엔티티에 의해 저장된 데이터를 관리, 예를 들어 삭제하기 위해 다른 엔티티(예를 들어, 발행(130), 디지털 컴포넌트 배포 시스템(150), 디지털 컴포넌트 파트너(152) 또는 디지털 컴포넌트 제공자(160))로 요청을 송신하는 경우, 이 요청은 증명 토큰(122)을 포함할 수 있다.
일부 구현에서, 애플리케이션(111)은 특정 유형의 요청에 대한 증명 토큰(122)을 전송하도록 구성된다. 예를 들어, 증명 토큰(122)을 전송하는 각각의 애플리케이션(111)은 그 애플리케이션(111)으로 하여금 증명 토큰(122)을 생성 및/또는 전송하게 하는 소프트웨어 개발 키트(SDK) 또는 애플리케이션 프로그래밍 인터페이스(API)를 포함할 수 있다. SDK는 증명 토큰(122)이 포함될 일련의 요청, 예를 들어 사용자 데이터 관리 요청, 디지털 컴포넌트 요청 등을 지정할 수 있다. 뉴스 웹 페이지 요청과 같은 다른 유형의 요청에는 증명 토큰(122)이 필요하지 않을 수 있다.
클라이언트 디바이스(110)는 또한 애플리케이션(111)에 대한 증명 토큰을 생성하는 신뢰(trusted) 프로그램(114)을 포함할 수 있다. 신뢰 프로그램(114)은 위조하기 어려운 신뢰할 수 있는 소스로부터의 신뢰할 수 있는 코드를 포함할 수 있다. 예를 들어, 신뢰 프로그램(114)은 운영 체제, 운영 체제의 일부, 웹 브라우저 등일 수 있다. 일반적으로, 신뢰 프로그램(114)은 침투하기 어렵고, 가해자가 신뢰 프로그램(114)을 변조하기 위해 소비해야 하는 시간과 노력의 양이 엄청나게 많다. 또한, 신뢰 프로그램(114)은 신뢰할 수 있는 소스에 의해 제공되고 유지되기 때문에, 발생하는 모든 취약성은 소스에 의해 해결될 수 있다. 이러한 방식으로 신뢰 프로그램을 사용하면 신뢰 프로그램이 침투하기 어렵기 때문에 클라이언트 디바이스에서 보안이 강화된다는 기술적 이점이 있다. 또한 신뢰 프로그램은 신뢰할 수 있는 소스에서 프로그램을 유지 관리하기 때문에 신뢰 프로그램의 취약성을 완화하는 이점을 제공한다.
신뢰 프로그램(114)은 클라이언트 디바이스(110)에 대해 로컬일 수 있다. 예를 들어, 신뢰 프로그램(114)은 클라이언트 디바이스(110)의 운영 체제의 디바이스 드라이버일 수 있다. 일부 구현에서, 신뢰 프로그램(114)은 클라이언트 디바이스(110)에 대해 전적으로 국부적으로 동작하여, 사용자 정보를 전송할 필요성을 감소시킨다. 일부 구현에서, 신뢰 프로그램(114)은 클라이언트 디바이스(110)에 대해 국부적으로 그리고 네트워크(105)와 같은 네트워크를 통해 동작할 수 있다. 예를 들어, 신뢰 프로그램(114)은 사용자 디바이스(110)에 설치되고 네트워크(105)를 통해 정보를 전송 및 수신하는 웹 브라우저일 수 있다.
신뢰 프로그램(114)은 암호화 키(예를 들어, 공개/개인키 쌍)를 생성하고, 암호화 키를 보안 저장소(115)(예를 들어, 보안 캐시)에 저장하고, 디바이스 무결성 토큰을 보안 저장소(115)에 저장하고, 증명 토큰을 생성하고, 암호화 키 또는 그 파생물의 블라인드 서명을 생성하고, 및/또는 아래에 더 자세히 설명하는 바와 같이 인증서를 페치 및 저장할 수 있다. 일부 구현에서, 신뢰 프로그램(114)은 디바이스 무결성 시스템(170)으로 데이터를 송수신하기 위해 디바이스 무결성 클라이언트와 상호작용한다. 일부 구현에서, 신뢰 프로그램(114)은 지정된 유형의 요청, 예를 들어 사용자 프라이버시 설정을 변경하기 위한 요청의 세트 각각에 대한 증명 토큰(122)을 생성하도록 구성된다.
증명 토큰(122)은 요청의 무결성 및 클라이언트 디바이스(110)의 무결성을 유효성 검사하기 위해 엔티티들에 의해 사용된다. 예를 들어, 사용자가 다른 엔터티에 의해 저장된 데이터를 관리할 수 있게 하면 악의적인 사용자가 다른 사용자의 데이터를 관리 및/또는 훔치려고 시도할 가능성이 열린다. 디지털 컴포넌트의 경우, 일부 악의적인 엔티티는 예를 들어, 디지털 컴포넌트가 제공될 다른 리소스를 지정하고 및/또는 요청이 실제보다 더 가치 있는 것처럼 보이게 하도록 디지털 컴포넌트가 제공될 다른 사용자를 지정하기 위해 디지털 컴포넌트 요청의 파라미터를 위조하려고 시도할 수 있다. 또한, 일부 악의적인 당사자는 악의적인 목적으로 다른 사람의 클라이언트 디바이스를 에뮬레이트하려고 시도할 수 있다.
증명 토큰(122)은 다른 사람이 요청(120)을 변경하는 것을 방지하고 요청(120)이 유효성 검사된 클라이언트 디바이스(110)로부터 온 것임을 보장하는 중개자를 통해 클라이언트 디바이스(110)와 컴퓨터 또는 다른 엔티티의 다른 디바이스 사이에 보안 통신 채널을 제공한다.
신뢰 프로그램(114)은 상이한 형태를 갖거나 상이한 컨텐츠를 포함하는 상이한 유형의 증명 토큰(122)을 생성할 수 있다. 일부 구현에서, 증명 토큰(122)은 클라이언트 디바이스(110)의 공개키(113), 증명 토큰(122)이 생성된 시간을 나타내는 토큰 생성 시간, 페이로드 데이터, 및 클라이언트 디바이스(110)로부터 수신된 데이터를 사용하여 디바이스 무결성 시스템(170) 또는 신뢰 프로그램(114)에 의해 생성된 디바이스 무결성 토큰을 포함하는 세트 컨텐츠를 포함한다. 증명 토큰(122)은 또한 증명 토큰(122) 및 컨텐츠 세트에 포함된 공개키(113)에 대응하는 개인키(112)를 사용하여 신뢰 프로그램(114)에 의해 생성된 디지털 서명을 포함할 수 있다. 즉, 신뢰 프로그램(114)은 개인키(112)를 사용하여 컨텐츠 세트에 디지털 서명하고 컨텐츠 세트와 함께 증명 토큰(122)에 결과 디지털 서명을 포함할 수 있다.
일부 구현에서, 증명 토큰(122)은 페이로드 데이터를 포함하는 컨텐츠 세트, 증명 토큰(122)이 생성되는 시간을 나타내는 증명 토큰 생성 시간, 및 컨텐츠 세트의 디지털 서명을 포함한다. 이 예에서, 신뢰 프로그램(114)은 그룹 서명 방식 및 디바이스 무결성 시스템(170)에 의해 클라이언트 디바이스(110)에 발급된 인증서를 사용하여 디지털 서명을 생성할 수 있다.
어느 하나의 예에서, 클라이언트 디바이스(110)는 디지털 컴포넌트 배포 시스템(150) 또는 다른 수신자에게 전송된 요청(120)에 증명 토큰(122)을 포함할 수 있다. 증명 토큰(122)의 수신자는 증명 토큰(122) 및/또는 (적절한 경우) 증명 토큰(122)에 포함된 디바이스 무결성 토큰을 유효성 검사하려고 시도할 수 있다. 증명 토큰(122)이 성공적으로 유효성 검사되는 경우, 수신자는 클라이언트 디바이스(110)가 신뢰할 수 있는 디바이스인지 여부를 결정하고 그에 따라 요청을 처리할 수 있다. 증명 토큰(122)이 성공적으로 유효성 검사되지 않은 경우, 수신자는 예를 들어 요청(120)에 응답하거나 이에 응답하여 데이터를 변경하지 않고 요청(120)을 무시하거나 삭제할 수 있다. 증명 토큰(122)을 포함하는 요청을 생성하고 증명 토큰을 유효성 검사하기 위한 예시적인 프로세스가 도 2-8에 예시되어 있고 아래에 설명되어 있다.
증명 토큰 생성 시간은 증명 토큰(122)이 생성된 시간을 나타낸다. 신뢰 프로그램(114)은 신뢰 프로그램(114)이 증명 토큰을 생성할 때 생성 시간을 기록할 수 있다. 이 증명 토큰 생성 시간은 (예를 들어, 초 단위, 밀리초 단위 또는 마이크로초 단위로 정확한) 고해상도 타임스탬프일 수 있다. 증명 토큰 생성 시간은 증명 토큰(122)을 포함하는 요청(120)이 새로운 요청인지 또는 최근 요청인지 여부를 결정하는데 사용될 수 있다. 예를 들어, 증명 토큰(122)을 수신하는 엔티티는 토큰 생성 시간을 현재 시간 또는 증명 토큰(122)이 수신된 시간과 비교할 수 있다. 두 시간 간의 차이가 임계값을 초과하면, 엔터티는 아래에서 더 자세히 설명하는 바와 같이 요청이 새롭지 않거나 유효하지 않다고 결정할 수 있다.
증명 토큰 생성 시간은 재생 공격을 탐지하는데에도 사용될 수 있다. 예를 들어, 동일한 증명 토큰 생성 시간을 포함하여 동일한 데이터 세트를 가진 다수의 요청이 수신되는 경우, 그 요청들을 수신하는 엔티티는 요청들이 중복인지 및/또는 요청들이 재생 공격의 일부인지 결정할 수 있다.
증명 토큰 생성 시간은 다른 데이터와 조합하여 요청(120)에 대한 트랜잭션 식별자 역할을 할 수도 있다. 예를 들어, 트랜잭션 식별자는 증명 토큰(122)이 공개키(113)를 포함하는 구현에서 증명 토큰(122)의 증명 토큰 생성 시간과 증명 토큰(122)의 공개키(113) 중 둘 이상의 조합일 수 있다. 트랜잭션 식별자는 다수의 채널로부터 수신된 동일한 요청의 다수의 버전을 중복 제거하는데 사용될 수 있다. 예를 들어, 디지털 컴포넌트 제공자(160-3)는 디지털 컴포넌트 배포 시스템(150) 및 디지털 컴포넌트 파트너(152) 모두로부터 동일한 요청을 수신할 수 있다. 이 예에서, 트랜잭션 식별자는 증명 토큰(122)의 토큰 생성 시간과 증명 토큰(122)의 공개키(113)를 기반으로 할 수 있다. 디지털 컴포넌트 제공자(160-3)는 요청들이 중복되는지 여부를 결정하기 위해 둘 이상의 요청에서 두 데이터 조각을 비교할 수 있다.
페이로드는 개별 요청(120)에 대한 데이터를 포함할 수 있다. 예를 들어, 요청(120)이 디지털 컴포넌트에 대한 것이라면, 페이로드는 디지털 컴포넌트를 선택하기 위해 사용될 수 있는 데이터를 포함할 수 있다. 이 페이로드는 디지털 컴포넌트 슬롯(또는 리소스(145)에 대한 URL)을 갖는 리소스(145), 리소스(145)에 관한 정보(예를 들어, 리소스의 토픽), 디지털 컴포넌트 슬롯에 관한 정보(예를 들어, 슬롯 수, 슬롯 유형, 슬롯 크기 등), 사용자가 이 기능을 활성화한 경우 클라이언트 디바이스(110)에 관한 정보(예를 들어, 디바이스의 유형, 디바이스의 IP 주소, 클라이언트 디바이스(110)의 지리적 위치), 및/또는 다른 적절한 정보를 포함할 수 있다.
요청(120)이 발행자(130), 디지털 컴포넌트 배포 시스템(150), 디지털 컴포넌트 파트너(152), 디지털 컴포넌트 제공자(160), 또는 다른 엔티티에서 사용자의 데이터를 관리하는 것인 경우, 요청(120)은 요청된 변경을 지정하는 데이터를 포함할 수 있다. 예를 들어, 사용자가 디지털 컴포넌트 제공자(160-2)로부터 사용자의 모든 데이터를 제거하기로 선택한 경우, 페이로드는 데이터 및 디지털 컴포넌트 제공자(160-2)(예를 들어, 디지털 컴포넌트 제공자(160-2)에 대한 식별자 또는 네트워크 주소)의 이러한 제거를 지정하는 데이터를 포함할 것이다.
디바이스 무결성 시스템(170)은 클라이언트 디바이스(110), 예를 들어 신뢰 프로그램(114)으로부터 수신된 디바이스-레벨 사기 탐지 신호를 평가하고, 디바이스-레벨 사기 탐지 신호에 기초하여 클라이언트 디바이스(110)의 신뢰도(또는 무결성) 레벨을 결정한다. 디바이스-레벨 사기 탐지 신호는 클라이언트 디바이스가 손상되었는지 여부 또는 클라이언트 디바이스가 일반 클라이언트 디바이스 또는 에뮬레이트된 클라이언트 디바이스로 작동하는지 여부를 결정하는데 사용될 수 있는 클라이언트 디바이스의 동작 특성 또는 메트릭을 나타내는 데이터를 포함할 수 있다. 특정 동작 특성 및 메트릭은 에뮬레이터에 비해 정품 클라이언트 디바이스에서 종종 다르다. 일부 구현에서, 디바이스-레벨 사기 탐지 신호는 신뢰 토큰을 요청하는 애플리케이션(111)의 동작 특성 및 메트릭을 포함하는 애플리케이션-레벨 사기 탐지 신호를 포함한다. 신뢰 프로그램(114)은 이러한 디바이스-레벨 사기 탐지 신호를 수집하고 신뢰 토큰에 대한 요청에 그 신호들을 포함할 수 있다.
디바이스 무결성 시스템(170)은 클라이언트 디바이스(110)의 신뢰도(또는 무결성)의 레벨을 나타내는 판정을 발행할 수 있다. 수신자는 판정을 사용하여 판정을 포함하는 요청(120)을 신뢰할지 여부를 결정한다. 예를 들어, 판정이 클라이언트 디바이스(110)가 신뢰할 수 없다는 것을 나타내면, 수신자는 요청을 무시할 수 있고, 예를 들어 요청에 응답하지 않을 수 있다.
위에서 논의한 바와 같이, 일부 접근 방식에서, 디바이스 개인/공개키 쌍(및 디바이스 공개키와 관련된 디바이스 무결성 토큰)은 다수의 증명 토큰에 걸쳐 변경될 수 있으므로 증명 토큰 수신자에 의한 추적에 대해 클라이언트 디바이스 또는 사용자의 프라이버시를 향상시킬 수 있다. 예를 들어, 클라이언트 디바이스는 개인/공개키 쌍의 배치를 생성하고 디바이스 무결성 서버로부터 디바이스 무결성 토큰의 해당 배치(batches)를 검색하여 디바이스 무결성 토큰의 재사용을 줄이거나 제거할 수 있다. 이 배치 프로세스의 예시적인 예가 도 2에 도시되어 있다.
이 예에서, 클라이언트 디바이스(200)는 N개의 공개/개인키 쌍을 생성한다(201). 예를 들어, 클라이언트 디바이스(200)의 신뢰 프로그램은 공개/개인키 쌍을 생성할 수 있다. 공개/개인키 쌍은 비대칭 키 쌍일 수 있다. 각 공개/개인키 쌍에는 개인키에 대응하고 수학적으로 연결된 개인키와 공개키가 포함된다. 개인키를 사용하여 디지털 서명된 데이터는 해당 공개키를 통해서만 검증(확인)될 수 있다. 마찬가지로, 공개키를 사용하여 암호화된 데이터는 해당 개인키를 사용해야만 복호화될 수 있다.
클라이언트 디바이스(200)는 N개의 디바이스 무결성 요소에 대한 요청을 디바이스 무결성 컴퓨팅 시스템(220)으로 전송한다(202). 숫자 N은 2보다 크거나 같은 정수일 수 있다. 이 예에서 디바이스 무결성 요소는 디바이스 무결성 토큰이고, 요청은 N개의 공개/개인키 쌍에 해당하는 N개의 디바이스 무결성 토큰에 대한 것이다. 신뢰 프로그램은 신뢰 프로그램이 요청에서 고유한 디바이스 무결성 토큰을 사용하는 빈도에 기초하여 요청할 디바이스 무결성 토큰의 수(N)를 결정할 수 있다. 클라이언트 디바이스는 요청된 각 디바이스 무결성 토큰에 대해 공개/개인키 쌍을 생성하고 요청에 공개키 데이터를 포함할 수 있다. 이 예에서 공개키 데이터는 공개키 자체일 수 있다. 따라서 요청은 클라이언트 디바이스(200)의 N개의 공개키(211)를 디바이스 무결성 서버(220)에 전달하는 것을 포함한다. 이 예에서, N개의 공개키(211)는 실제 공개키, 예를 들어 N개의 공개키(211)의 원시 데이터를 포함한다. 요청에는 디바이스-레벨 사기 탐지 신호도 포함될 수 있다. 예를 들어, 신뢰 프로그램은 디바이스-레벨 사기 탐지 신호를 수집하고 요청에 그 신호들을 포함할 수 있다.
디바이스 무결성 컴퓨팅 시스템(220)은 요청을 수신한다(221). 클라이언트 디바이스로부터 수신된 디바이스-레벨 사기 탐지 신호에 기초하여, 디바이스 무결성 컴퓨팅 시스템(220)은 클라이언트 디바이스의 신뢰도 레벨을 결정한다(222). 예를 들어, 디바이스 무결성 컴퓨팅 시스템은 개별 판정에 각각 대응하는 M개의 가능한 신뢰도 레벨을 가질 수 있다. 이 예에서, 디바이스 무결성 컴퓨팅 시스템(220)은 전술한 바와 같이, 디바이스-레벨 사기 탐지 신호에 기초하여 이러한 M개의 가능한 신뢰도 레벨 중 하나를 선택할 수 있다.
디바이스 무결성 컴퓨팅 시스템(220)은 N개의 디바이스 무결성 요소를 생성한다(223). 이 예에서, 각 디바이스 무결성 요소는 디바이스 무결성 토큰 형식이다. 즉, 디바이스 무결성 컴퓨팅 시스템(220)은 수신된 각각의 공개키에 대한 개별 디바이스 무결성 토큰을 생성한다.
각각의 디바이스 무결성 토큰은 신뢰도 판정, 신뢰도 판정에 대한 타임스탬프, 및 클라이언트 디바이스(200)의 N개의 공개키(211) 중 하나를 포함할 수 있다. 타임스탬프는 디바이스 무결성 토큰이 생성된 시간을 나타낸다. 디바이스 무결성 시스템은 N개의 공개키(211) 중 하나에 기초하여 각 디바이스 무결성 토큰을 생성할 수 있다. 예를 들어, 디바이스 무결성 시스템(220)은 클라이언트 디바이스(200)의 공개키, 신뢰도 판정 및 타임스탬프를 포함하는데이터 세트를 조합(assemble)할 수 있다. 신뢰도 판정에 두 가지 가능한 판정(신뢰할 수 있는 것 및 신뢰할 수 없는 것)만 포함되는 일부 접근 방식에서, 신뢰도 판정은 디바이스 무결성 토큰으로부터 생략될 수 있다. 다시 말해서, 이러한 접근 방식에서, 디바이스 무결성 시스템은 신뢰할 수 있는 디바이스에 대해 디바이스 무결성 토큰을 생성하고(이 토큰은 신뢰도에 대한 묵시적 판정을 생략함) 신뢰할 수 없는 디바이스에 대해 디바이스 무결성 토큰 생성을 거부할 수 있다.
디바이스 무결성 컴퓨팅 시스템(220)은 N개의 디바이스 무결성 토큰(224) 각각에 디지털 서명을 한다. 예를 들어, 디바이스 무결성 컴퓨팅 시스템(220은 디바이스 무결성 시스템의 개인키를 사용하고 디바이스 무결성 토큰의 다른 데이터(예를 들어, 신뢰도 판정, 클라이언트 디바이스(200)의 공개키 및 타임스탬프)에 기초하여 디지털 서명을 생성할 수 있다.
디바이스 무결성 컴퓨팅 시스템(220)은 N개의 디바이스 무결성 토큰을 클라이언트 디바이스로 전송한다(225). 클라이언트 디바이스(200)는 나중에 사용하기 위해 디바이스 무결성 토큰의 배치를 수신하고 저장한다(203). 클라이언트 디바이스(200)는 디바이스 무결성 토큰을 국부적으로, 예를 들어, 신뢰 프로그램에 의해 유지 괸리되는 캐시 또는 보안 저장소에 저장할 수 있다. 각각의 캐시된 디바이스 무결성 토큰은 예를 들어 (1) 디바이스 무결성 컴퓨팅 시스템(220)에 의해 결정된 신뢰도 판정; (2) 디바이스 무결성 토큰 생성을 위한 타임스탬프 (3) 클라이언트 디바이스의 공개키; 및 (4) 디바이스 무결성 컴퓨팅 시스템(220)의 개인키를 사용하여 서명된 토큰 컴포넌트의 디지털 서명을 포함할 수 있다.
도 2의 예에 도시된 바와 같이, 디바이스 무결성 토큰의 배치를 획득하면, 클라이언트 디바이스는 디바이스 무결성 토큰을 사용하여 위에서 논의한 바와 같이 디지털 컴포넌트 제공자 또는 기타 증명 토큰 수신자에게 향하는 다양한 요청의 일부로서 증명 토큰들을 조합하고 보낼 수 있다. 이러한 요청의 예시적인 예는 도 3의 프로세스 흐름도로서 묘사된다.
요청을 준비하기 위해, 클라이언트 디바이스(300)는 클라이언트 디바이스의 로컬 저장소로부터 디바이스 무결성 토큰을 검색할 수 있다(301). 다양한 접근 방식에서, 클라이언트 디바이스(300)는 예를 들어 (1) 각 요청에 대해 새로운 디바이스 무결성 토큰을 사용하고; 또는 (2) 선택된 시간 간격(예를 들어, 연속 H 시간) 동안 동일한 디바이스 무결성 토큰을 사용하고 해당 간격이 경과하면 다른 디바이스 무결성 토큰을 사용하고; 또는 (3) (예를 들어, 각 애플리케이션 또는 웹사이트에 대해 다른 디바이스 무결성 토큰이 사용되는 경우) 동일한 애플리케이션 또는 웹사이트로부터 발신된 모든 요청에 대해 동일한 디바이스 무결성 토큰을 사용하고; 또는 (4) (예를 들어, 선택된 시간 간격 내에서 동일한 애플리케이션 또는 웹사이트로부터 발신된 모든 요청에 대해 동일한 디바이스 무결성 토큰 사용하여) 이러한 토큰 재사용 접근 방식 중 둘 이상의 조합을 사용할 수 있다. 따라서, 클라이언트 디바이스(300)는 요청이 생성된 애플리케이션 또는 웹사이트 또는 요청이 생성된 현재 시간에 기초하여 디바이스 무결성 토큰을 검색할 수 있다.
클라이언트 디바이스(300)는 요청을 생성할 수 있다(302). 요청(311)은 예를 들어 페이로드 데이터(위에서 논의됨), 요청 생성 타임스탬프, 검색된 디바이스 무결성 토큰, 디바이스 무결성 토큰에 대응하는 디바이스 공개키, 및 요청 컴포넌트의 디지털 서명을 포함할 수 있다. 클라이언트 디바이스의 신뢰 프로그램 또는 클라이언트 디바이스의 운영 체제의 신뢰할 수 있는 컴포넌트는 페이로드 데이터 및 디바이스 무결성 토큰에 액세스함으로써 증명 토큰을 포함하거나 증명 토큰 형태일 수 있는 요청(311)을 생성할 수 있다. 신뢰 프로그램은 요청 생성 타임스탬프로서 현재 시간을 결정할 수 있다. 신뢰 프로그램은 클라이언트 디바이스의 개인 키(예를 들어, 요청에 포함된 디바이스 공개키에 해당하는 개인키)를 사용하여 페이로드 데이터, 공개키 및 타임스탬프의 디지털 서명을 생성할 수 있다. 일부 접근 방식에서는, 디바이스 공개키가 이미 증명 토큰의 컴포넌트로서 포함된 디바이스 무결성 토큰에 있기 때문에, 증명 토큰 크기를 줄이기 위한 간단한 최적화로서 증명 토큰에서 디바이스 공개키를 생략한다.
클라이언트 디바이스(300)는 요청(311)을 수신자의 컴퓨팅 시스템(320)으로 전송한다(303). 이 예에서, 수신자는 디지털 컴포넌트 제공자이다. 예를 들어, 클라이언트 디바이스(300)는 요청(311)을 디지털 컴포넌트 배포 시스템으로 전송할 수 있고 디지털 컴포넌트 배포 시스템은 하나 이상의 디지털 컴포넌트 제공자에게 요청을 전송할 수 있다.
수신자 컴퓨팅 시스템(320)은 요청을 수신한다(321). 수신자 컴퓨팅 시스템(320)은 요청을 유효성 검사한다(322). 예를 들어, 수신자 컴퓨팅 시스템(320)은 요청에 포함된 디바이스 공개키를 사용하여 요청의 디지털 서명을 검증함으로써 요청을 유효성 검사할 수 있다. 수신자 컴퓨팅 시스템(320)은 공개키 및 클라이언트 디바이스(300)에 의해 서명된 요청의 컨텐츠, 예를 들어 페이로드 데이터, 타임스탬프, 공개키 및 디바이스 무결성 토큰을 사용하여 디지털 서명을 검증하려고 시도할 수 있다. 디지털 서명이 생성된 후 임의의 컨텐츠가 변경된 경우 검증은 실패한다. 예를 들어, 악의적인 당사자가 다른 요청에 디바이스 무결성 토큰을 삽입하거나 요청에 더 높은 신뢰도 판정을 받은 다른 디바이스 무결성 토큰을 삽입한 경우 서명 검증은 실패할 것이다. 이는 예를 들어 중개자에 의해 요청 전송 중에 요청의 컨텐츠가 변경되지 않았음을 보장한다.
수신자 컴퓨팅 시스템(320)은 디바이스 무결성 토큰을 유효성 검사한다(323). 예를 들어, 수신자 컴퓨팅 시스템(320)은 디바이스 무결성 컴퓨팅 시스템의 공개키를 사용하여 디바이스 무결성 토큰의 서명을 검증함으로써 디바이스 무결성 토큰을 유효성 검사할 수 있다. 이것은 유사하게 디바이스 무결성 토큰이 디바이스 무결성 토큰 컴퓨팅 시스템에 의해 발행된 이후 디바이스 무결성 토큰의 컨텐츠가 변경되지 않았음을 보장한다. 증명 토큰에 디바이스 공개키가 포함된 경우, 디바이스 무결성 토큰의 유효성 검사에는 증명 토큰에 포함된 디바이스 공개키가 디바이스 무결성 토큰에 포함된 디바이스 공개키와 매칭한다는 확인도 포함될 수 있다.
수신자 컴퓨팅 시스템(320)은 예를 들어 디바이스 무결성 토큰이 최근에 생성되었는지 유효성 확인하고(즉, H, D = 1, 2, 3,…의 경우, 요청이 이루어진 시간 전 H 시간 또는 D일과 같이 선택된 시간 간격 이상 생성되지 않음), 디바이스 무결성 토큰의 신뢰도 판정이 요청을 수락하기에 충분한 판정인지 확인하기 위해, 디바이스 무결성 토큰의 적시성 및 클라이언트 디바이스의 신뢰도를 유효성 검사한다(324).
이러한 유효성 검사가 모두 통과되면, 수신자 컴퓨팅 시스템(320)은 예를 들어 위에서 논의된 바와같이 설정 변경, 사용자 데이터 추가 또는 제거, 디지털 컴포넌트를 전달하기 위해 요청에 응답할 수 있다(325). 유효성 검사 중 하나라도 실패하면, 수신자 컴퓨팅 시스템(320)은 요청을 무시할 수 있다. 예를 들어, 수신자 컴퓨팅 시스템(320)은 요청에 응답하지 않을 수 있고, 요청된 동작을 수행하지 않을 수 있다.
디지털 컴포넌트를 전달하는 것을 포함하는 요청의 경우, 응답(325)은 적절한 디지털 컴포넌트(312)를 선택적으로 전송하는 것을 포함할 수 있다. 예를 들어, 수신자 컴퓨팅 시스템(320)은 요청의 페이로드에 기초하여 디지털 컴포넌트를 선택하고 그 디지털 컴포넌트를 디지털 컴포넌트 제공자에게 요청을 보낸 디지털 컴포넌트 배포 시스템으로 보낼 수 있다. 차례로, 디지털 컴포넌트 배포 시스템은 디지털 컴포넌트를 클라이언트 디바이스(300)로 보낼 수 있다. 클라이언트 디바이스(300)는 디지털 컴포넌트(304)를 수신할 수 있다. 차례로, 클라이언트 디바이스(300)는 디지털 컴포넌트를 제시할 수 있다.
위에서 논의된 바와 같이, 일부 접근 방식에서, 디바이스 무결성 컴퓨팅 시스템이 클라이언트 디바이스의 공개키의 원시 데이터를 보지 않도록 디바이스 무결성 토큰을 생성하는 프로세스에서 블라인드 서명 방식이 사용될 수 있다. 예를 들어 클라이언트 디바이스는 개인/공개키 쌍의 배치를 생성한 다음, 디바이스 무결성 요소의 해당 배치를 검색하기 위해 공개키를 디바이스 무결성 시스템으로 전송하기 전에 블라인드 서명 방식을 사용하여 공개키(또는 공개 키의 암호화 해시 또는 디바이스 모델 번호와 연결된 공개키의 암호화 해시와 같은 블라인드 서명 방식의 커밋 단계(commit phase)에 대한 값으로 사용될 수 있는 이러한 공개키의 적절한 파생물)를 블라인드할 수 있다. 이 예에서 디바이스 무결성 요소는 블라인드 공개키의 블라인드 서명이다. 이러한 배치 프로세스의 예시적인 예가 도 4에 도시되어 있다.
이 예에서, 디바이스 무결성 컴퓨팅 시스템(420)은 클라이언트 디바이스에 대한 M개의 상이한 신뢰도 레벨을 정의하고 대응하는 M개의 신뢰도 레벨에 대해 M개의 상이한 블라인드 서명 검증키(411)를 발행할 수 있다(421). 예를 들어, M개의 레벨은 신뢰할 수 있음 및 신뢰할 수 없음의 2가지 레벨을 포함할 수 있다. 다른 예에서, M개의 레벨은 의심, 만족, 신뢰의 3가지 레벨을 포함할 수 있다. 다른 예에서, M개의 레벨은 사기, 의심, 만족 및 신뢰의 4가지 레벨을 포함할 수 있다. 다른 양의 레벨도 사용할 수 있다. 따라서, M은 2보다 크거나 같은 정수일 수 있다. 일부 접근 방식에서는, 가장 낮은 레벨의 신뢰도(예를 들어, "신뢰할 수 없음" 또는 "사기" 레벨의 신뢰도)에 대해 블라인드 서명 검증키를 할당하는 대신, 가장 낮은 레벨의 신뢰도가 M개 레벨의 신뢰도로부터 생략될 수 있으며, 디바이스 무결성 컴퓨팅 시스템은 단순히 가장 낮은 레벨의 신뢰도를 가진 디바이스에 대해 블라인드 서명 제공을 거부할 수 있다. 따라서, 이러한 접근 방식에서 M은 1보다 크거나 같은 정수일 수 있다.
디바이스 무결성 컴퓨팅 시스템(420)은 블라인드 서명 방식을 사용하여 신뢰도의 각 레벨에 대해 개별 블라인드 서명 검증키(411)를 생성할 수 있다. 블라인드 서명 방식은 IETF(Internet Engineering Task Force) VOPRF(Verifiable Oblivious Pseudorandom Functions) 블라인드 서명 방식과 같은 비공개적으로 검증 가능한 블라인드 서명 방식일 수 있다. 다른 접근 방식에서, 블라인드 서명 방식은 RSA(Rivest-Shamir-Adleman) 블라인드 서명 방식과 같이 공개적으로 검증 가능한 블라인드 서명 방식일 수 있다.
디바이스 무결성 컴퓨팅 시스템(420)은 클라이언트 디바이스(400)를 포함하는 클라이언트 디바이스들이 블라인드 서명 검증키(411)을 획득할 수 있도록 블라인드 서명 검증키(411)를 발행할 수 있다. 예를 들어, 디바이스 무결성 컴퓨팅 시스템(420)은 블라인드 서명 검증키(411)를 웹사이트 또는 모바일 앱 스토어에 발행할 수 있다.
클라이언트 디바이스(400)는 이러한 블라인드 서명 검증키를 수신할 수 있다(401). 예를 들어, 클라이언트 디바이스(400)는 블라인드 서명 검증키(411)를 다운로드하고 그 블라인드 서명 검증키(411)를 로컬, 예를 들어 보안 저장소 또는 캐시에 저장할 수 있다. 클라이언트 디바이스(400)는 아래에서 더 논의되는 바와 같이 디바이스 무결성 컴퓨팅 시스템(420)으로부터 나중에 수신된 블라인드 서명을 검증하기 위해 블라인드 서명 검증키(411)를 유지할 수 있다. 일부 접근 방식에서, 디바이스 무결성 컴퓨팅 시스템(420)은 새로운 블라인드 서명 검증키(411)를 주기적으로 발행할 수 있고(예를 들어, 매시간, 매일, 매주 또는 기타 적절한 주기마다), 블라인드 서명 검증키 세트의 이러한 리프레쉬(새로 고침)는 아래에서 추가로 설명되는 바와 같이 디바이스 무결성 토큰의 적시성을 유효성 검사하는데 사용될 수 있다.
N개의 디바이스 무결성 토큰의 배치를 획득하기 위해, 클라이언트 디바이스(400)는 N개의 공개/개인키 쌍을 생성한다(402). 예를 들어, 클라이언트 디바이스의 신뢰 프로그램은 각 디바이스 무결성 토큰에 대해 각각의 비대칭 공개/개인키 쌍을 생성할 수 있다.
클라이언트 디바이스(400)는 블라인드 서명 검증키를 생성하는데 사용되는 블라인드 서명 방식에 따라 각 공개키 또는 각 공개키의 파생물을 블라인드 서명한다(403). 즉, 클라이언트 디바이스(400)는 각각의 공개키에 대한 공개키 데이터를 블라인드 처리하는데, 여기서 공개키 데이터는 공개키 또는 공개키의 파생물이다. 공개키를 블라인드하는 것은 공개키의 원시값에 블라인드 인자(factor)를 적용함으로써 공개키의 원시값을 숨기는 것을 포함할 수 있다. 이러한 방식으로, 디바이스 무결성 컴퓨팅 시스템(420)은 클라이언트 디바이스(400)로부터 수신된 공개키의 원시값에 액세스할 수 없으며, 예를 들어, 추가 데이터와 함께 공개키의 원시값을 수신한 다른 엔티티로부터 수신된 데이터를 사용하여 사용자 또는 클라이언트 디바이스(400)를 추적하기 위해 이러한 값을 사용할 수 없다.
디바이스 무결성 컴퓨팅 시스템(420)에 의해 블라인드 서명될 필요가 있는 데이터의 양을 줄이기 위해, 각각의 전체 디바이스 공개키를 블라인드하는 대신에, 클라이언트 디바이스(400)(예를 들어, 그의 신뢰 프로그램)는 공개키의 파생물을 생성하고 공개키의 파생물을 블라인드할 수 있다. 파생물은 공개키의 암호화 해시일 수 있다. 예를 들어, 클라이언트 디바이스(400)는 암호화 해시 기능을 이용하여 각 공개키의 암호화 해시를 생성한 다음, 블라인드 서명 방식을 사용하여 공개키의 암호화 해시를 블라인드할 수 있다. 일부 구현에서, 암호화 해시 알고리즘은 SHA256일 수 있다.
일부 구현에서, 클라이언트 디바이스(420)는 암호화 해시를 절단함으로써 블라인드 공개키 데이터의 데이터 크기를 더 감소시킬 수 있고, 그런 다음 절단된 암호화 해시를 블라인드할 수 있다. 예를 들어, 이러한 절단은 데이터 크기가 더 큰 원본 암호화 해시로부터 암호화 해시를 16바이트로 제한할 수 있다. 이러한 절단은 클라이언트 디바이스(400)가 블라인드 서명 방식을 사용하여 블라인드하는 더 짧은 암호화 해시를 생성한다.
이러한 방식으로 블라인드 서명된 데이터의 양을 줄이는 것은 데이터를 블라인드 서명할 때 디바이스 무결성 컴퓨팅 시스템(420)에 가해지는 부담을 줄여(예를 들어, CPU 주기, 데이터 저장 요구사항, 메모리 소비 등을 감소시킴), 디바이스 무결성 컴퓨팅 시스템(420)이 전체 공개키의 블라인드 버전이 제공되는 경우보다 블라인드 서명을 더 빠르고 효율적으로 생성하고 더 많은 요청을 처리할 수 있도록 한다. 이것은 또한 요청이 전송되는 네트워크의 대역폭 소비를 줄이고 많은 양의 블라인드 공개키 데이터를 단일 요청으로 전송할 수 있도록 한다.
클라이언트 디바이스(400)는 N개의 디바이스 무결성 토큰에 대한 요청(412)을 디바이스 무결성 컴퓨팅 시스템(420)으로 전송한다(404). 숫자 N은 2보다 크거나 같은 정수일 수 있다. 요청은 클라이언트 디바이스(400)에 의해 생성된 각각의 공개키(411)에 대한 블라인드된 공개키 데이터를 포함할 수 있다. 예를 들어, 요청에는 N개의 블라인드된 공개키, 공개키의 N개의 블라인드된 암호화 해시 또는 공개키의 N개의 블라인드된 잘린 암호화 해시가 포함될 수 있다. 요청은 또한 예를 들어 클라이언트 디바이스(400)의 신뢰 프로그램에 의해 수집되는 디바이스-레벨 사기 탐지 신호를 포함할 수 있다.
디바이스 무결성 컴퓨팅 시스템(420)은 요청을 수신한다(422). 디바이스 무결성 컴퓨팅 시스템(420)은 디바이스-레벨 사기 탐지 신호에 기초하여 클라이언트 디바이스(400)의 신뢰도의 판정을 결정한다(423). 예를 들어, 디바이스 무결성 컴퓨팅 시스템(400)은 (동작(421)에서 발행된 M개의 블라인드 서명 검증키에 대응하는) M개의 가능한 신뢰도의 판정을 가질 수 있다. 디바이스 무결성 컴퓨팅 시스템(420)은 디바이스-레벨 사기 탐지 신호에 기초하여 M개의 가능한 판정 중 하나에 클라이언트 디바이스(400)를 할당할 수 있다.
클라이언트 디바이스(400)의 신뢰도에 대한 판정을 결정한 후, 디바이스 무결성 컴퓨팅 시스템(400)은 블라인드 서명 개인키를 사용하여 블라인드 공개키 데이터(예를 들어, 각각의 N개의 블라인드된 공개키 또는 각각의 블라인드된 암호화 해시)의 각 조각에 서명한다(424). 예를 들어, 디바이스 무결성 컴퓨팅 시스템(420)은 클라이언트 디바이스(400)에 대해 결정된 신뢰도의 판정에 대응하는 블라인드 서명 개인키, 예를 들어 결정된 신뢰도 판정에 대한 공개 블라인드 서명 검증키에 대응하는 블라인드 서명 개인키를 획득할 수 있다(424). 이러한 방식으로 블라인드 서명 방식을 사용하여, 디바이스 무결성 컴퓨팅 시스템(420)은 공개키 데이터의 실제 값을 알지 않고도 블라인드 공개키 데이터의 디지털 서명을 생성할 수 있다.
디바이스 무결성 컴퓨팅 시스템(420)은 N개의 블라인드 서명(413)을 클라이언트 디바이스에 반환한다(425). 클라이언트 디바이스(400)는 디바이스 무결성 컴퓨팅 시스템(405)으로부터 블라인드 서명을 수신한다.
클라이언트 디바이스(400)는 블라인드 서명 방식을 사용하여 블라인드 서명을 블라인드 해제한다(406). 예를 들어, 클라이언트 디바이스(400)의 신뢰 프로그램은 블라인드 서명이 생성된 블라인드 공개키 데이터 및 디바이스 무결성 컴퓨팅 시스템(420)에 의해 발행된 블라인드 서명 검증키를 사용하여 각 블라인드 서명을 유효성 검사할 수 있다. 이를 위해, 신뢰 프로그램은 예를 들어 각 신뢰도 판정에 대해 다수의 블라인드 서명 검증키를 사용하여 블라인드 서명의 유효성을 유효성 검사하려고 시도할 수 있다. 판정이 클라이언트 디바이스(400)에 할당된 판정과 매칭하지 않는 경우, 블라인드 서명은 해당 판정에 대한 블라인드 서명 검증키를 사용하여 유효성 검사되지 않을 것이다. 신뢰 프로그램은 블라인드 서명을 성공적으로 유효성 검사하는 블라인드 서명 검증키에 기초하여 클라이언트 디바이스(400)의 신뢰도에 대한 할당된 판정을 결정할 수 있는데, 예를 들어, 블라인드 검증키에 대응하는 신뢰도 판정은 클라이언트 디바이스(400)에 할당된 판정이다. 유효성 검사되는 경우, 신뢰 프로그램은 블라인드 서명 방식을 사용하여 블라인드 서명을 블라인드 해제할 수 있다.
클라이언트 디바이스(400)는 디바이스 무결성 토큰의 배치(batch)를 생성한다(408). 예를 들어, 클라이언트 디바이스(400)의 신뢰 프로그램은 위의 동작(402)에서 생성된 각각의 공개키에 대한 디바이스 무결성 토큰을 생성할 수 있다. 각 디바이스 무결성 토큰은 예를 들어 (1) 디바이스 무결성 토큰이 생성되는 클라이언트 디바이스의 공개키; (2) 디바이스 무결성 컴퓨팅 시스템에 의해 결정된 신뢰도 판정; 및 (3) 블라인드 공개키의 블라인드 해제된(unblinded) 블라인드 서명 또는 공개키의 암호화 해시(예를 들어, 잘림)을 포함할 수 있다. 일부 접근 방식에서, 디바이스 무결성 토큰은 블라인드 해제된 블라인드 서명로부터 암시될 수 있으므로 신뢰도 판정을 생략할 수 있다. 블라인드 서명이 공개적으로 검증 가능하지 않은 경우, 디바이스 무결성 컴퓨팅 시스템이 블라인드 서명을 검증하도록 요청될 때(예를 들어, 아래에서 논의되는 도 5의 541 참조), 디바이스 무결성 컴퓨팅 시스템은 또한 판정을 반환할 수 있다. 블라인드 서명이 공개적으로 검증 가능한 경우, 블라인드 서명을 검증하는 공개키는 또한 디바이스의 신뢰도 판정을 의미한다.
클라이언트 디바이스(400)는 디바이스 무결성 토큰을 저장한다(410). 예를 들어, 클라이언트 디바이스(400)의 신뢰 프로그램은 디바이스 무결성 토큰을 포함해야 하는 요청을 보낼 때 나중에 사용하기 위해 디바이스 무결성 토큰을 보안 저장소에 저장할 수 있다. 보안 저장소는 클라이언트 디바이스(400)의 토큰 캐시일 수 있다.
도 4의 예에 도시된 바와 같이 디바이스 무결성 토큰의 배치를 생성 및 저장하면, 클라이언트 디바이스는 디바이스 무결성 토큰을 사용하여 위에서 논의한 바와 같이 디지털 컴포넌트 제공자 또는 기타 증명 토큰 수신자에 대해 이루어진 다양한 요청의 일부로서 증명 토큰을 조합(assemble)하고 전송할 수 있다. 이러한 요청의 예시적인 예는 도 5의 프로세스 흐름도로서 묘사된다.
요청을 준비하기 위해, 클라이언트 디바이스(500)는 예를 들어 클라이언트 디바이스의 토큰 캐시로부터 디바이스 무결성 토큰을 검색할 수 있다(501). 다양한 접근 방식에서, 클라이언트는 예를 들어 (1) 각 요청에 대해 새로운 디바이스 무결성 토큰을 사용하거나; 또는 (2) 선택된 시간 간격(예를 들어, 연속 H 시간) 동안 동일한 디바이스 무결성 토큰을 사용하거나; 또는 (3) 동일한 애플리케이션 또는 웹사이트로부터 발생된 모든 요청에 대해 동일한 디바이스 무결성 토큰을 사용하거나; 또는 (4) (예를 들어, 선택된 시간 간격 내에서 동일한 애플리케이션 또는 웹사이트로부터 발생된 모든 요청에 대해 동일한 디바이스 무결성 토큰 사용하여) 이러한 토큰 재사용 접근 방식의 조합을 사용할 수 있다. 따라서, 클라이언트 디바이스(500)는 요청이 생성된 애플리케이션 또는 웹사이트 또는 요청이 생성된 현재 시간에 기초하여 디바이스 무결성 토큰을 검색할 수 있다.
클라이언트 디바이스(500)는 요청 페이로드(위에서 설명됨), 요청이 생성된 시간을 나타내는 요청 생성 타임스탬프, 디바이스 무결성 토큰, 및 디바이스 무결성 토큰에 해당하는 디바이스 공개키(예를 들어, 공개키 데이터가 블라인드 서명되고 블라인드 해제된 블라인드 서명과 함께 디바이스 무결성 토큰에 포함된 공개키)를 포함하는 컨텐츠 세트를 포함하는 요청(511)을 조합할 수 있다. 요청은 또한 클라이언트 디바이스의 개인키(예를 들어, 요청에 포함된 공개키에 대응하는 개인키)를 사용하여 서명된(502) 컨텐츠 세트의 디지털 서명을 포함할 수 있다. 예를 들어, 클라이언트 디바이스(500)의 신뢰 프로그램은 개인키를 사용하여 컨텐츠 세트에 기초하여 디지털 서명을 생성할 수 있다. 요청은 증명 토큰을 포함하거나 증명 토큰의 형식(form)일 수 있다. 예를 들어, 증명 토큰은 컨텐츠 세트(예를 들어, 증명 토큰 생성 타임스탬프 포함) 및 디지털 서명을 포함할 수 있다.
클라이언트 디바이스(500)는 요청(511)을 수신자의 컴퓨팅 시스템(520)으로 전송한다(503). 수신자가 디지털 컴포넌트 제공자이면, 클라이언트 디바이스(500)는 디지털 컴포넌트 배포 시스템으로 요청을 전송할 수 있으며, 이 시스템은 차례로 적절한 디지털 컴포넌트 제공자에게 요청을 포워딩한다.
수신자 컴퓨팅 시스템(520)은 요청을 유효성 검사한다(522). 수신자 컴퓨팅 시스템(520)은 요청에 포함된 디바이스 공개키를 사용하여 요청의 디지털 서명을 검증함으로써 요청을 유효성 검사할 수 있다. 수신자 컴퓨팅 시스템(520)은 또한 요청의 타임스탬프를 요청이 수신된 시간과 비교함으로써 요청을 유효성 검사할 수 있다. 서명이 성공적으로 유효성 검사되고 타임스탬프가 현재 시간의 임계 지속 기간 내에 있으면, 클라이언트 디바이스(500)는 요청이 유효성 검사된 것으로 간주할 수 있다.
수신자 컴퓨팅 시스템(520)은 또한 디바이스 무결성 토큰을 유효성 검사한다. 이 유효성 검사 프로세스는 블라인드 서명을 생성할 때 디바이스 무결성 컴퓨팅 시스템(540)에 의해 사용된 블라인드 서명 방식에 기초하여 상이할 수 있다. 블라인드 서명 방식이 공개적으로 검증 가능한 방식(예를 들어, RSA)인 경우, 수신자 컴퓨팅 시스템(520)은 디바이스 무결성 컴퓨팅 시스템을 호출하지 않고 디바이스 무결성 토큰을 유효성 검사할 수 있다(523a). 이 예에서, 수신자 컴퓨팅 시스템(520)은 블라인드 서명 방식을 사용하여 디바이스 무결성 토큰에 포함된 공개키 데이터의 블라인드 해제된 블라인드 서명을 검증할 수 있다. 공개키의 암호화 해시가 사용되는 경우, 수신자 컴퓨팅 시스템(520)은 클라이언트 디바이스(500)와 동일한 암호화 해시 기능을 사용하여 요청에 포함된 공개키의 암호화 해시를 생성할 수 있(적절한 경우 이를 잘라낼 수 있음), 블라인드 서명 방식을 사용하여 암호화 해시의 블라인드 해제된 블라인드 서명을 검증한다.
블라인드 서명 방식이 개인 검증 가능한 방식(예를 들어, IETF VOPRF)인 경우, 수신자 컴퓨팅 시스템(520)은 디바이스 무결성 컴퓨팅 시스템(540)을 호출하여 블라인드 해제된 블라인드 서명을 검증할 수 있다(523b). 이 예에서, 수신자 컴퓨팅 시스템(520)은 블라인드 해제된 블라인드 서명 및 공개키 또는 공개키의 암호화 해시를 디바이스 무결성 컴퓨팅 시스템(540)으로 전송할 수 있다.
디바이스 무결성 컴퓨팅 시스템(540)은 블라인드 서명 방식을 사용하여 블라인드 해제된 블라인드 서명을 검증하고 디지털 컴포넌트 제공자에게 응답을 제공하려고 시도할 수 있다(541). 응답은 검증의 성공 여부 및 블라인드 해제된 블라인드 서명을 검증하는 블라인드 서명 검증키에 해당하는 클라이언트 디바이스의 신뢰도를 나타낼 수 있다.
수신자 컴퓨팅 시스템(520)은 예를 들어, 디바이스 무결성 토큰이 최근에 생성되었는지 확인하고 디바이스 무결성 토큰의 신뢰도 판정이 요청을 수락하기에 충분한 판정인지 확인하기 위해, 디바이스 무결성 토큰의 적시성과 클라이언트 디바이스의 신뢰도를 유효성 검사한다(524). 디바이스 무결성 컴퓨팅 시스템(540)은 새로운 블라인드 서명 검증키를 주기적으로 재발행할 수 있기 때문에, 적시성 유효성 검사에는, 예를 들어 디바이스 무결성 토큰이 만료된 블라인드 서명 검증키로 검증되었는지 결정함으로써 디바이스 무결성 토큰의 블라인드 서명이 유효하지 않은 오래된 키로 서명되지 않았는지 확인하는 것이 포함될 수 있다. 하나의 접근 방식에서, 수신자 컴퓨팅 시스템은 블라인드 서명 검증키의 유효 날짜가 발행된 키에 대한 URL의 일부로 인코딩되었기 때문에 블라인드 서명 검증키가 만료되었다고 결정할 수 있다. 다른 접근 방식에서, 수신자 컴퓨팅 시스템은 검증키가 검증키의 만료 날짜를 인코딩하는 메타데이터와 함께 발행되기 때문에 블라인드 서명 검증키가 만료되었다고 결정할 수 있다.
이러한 유효성 검사가 모두 통과하면, 수신자 컴퓨팅 시스템(520)은 예를 들어, 위에서 논의한 바와 같이 설정 변경, 사용자 데이터 추가 또는 제거, 디지털 컴포넌트를 전달하기 위해 요청에 응답할 수 있다(525). 디지털 컴포넌트를 전달하는 것을 포함하는 요청의 경우, 응답(525)은 적절한 디지털 컴포넌트(512)를 클라이언트 디바이스(500)에 선택적으로 보내는 것을 포함할 수 있다. 이 예에서, 클라이언트 디바이스(500)는 디지털 컴포넌트를 제시할 수 있다. 유효성 검사 중 어느 하나라도 실패하면, 수신자 컴퓨팅 시스템(520)은 요청을 무시할 수 있으며, 예를 들어 요청, 업데이트 설정 등에 대한 응답을 보내지 않도록 선택할 수 있다.
도 2-5의 예에 예시되고 위에서 설명된 접근 방식이 클라이언트 디바이스의 디바이스 공개키를 사용하는 것을 포함하지만, 다른 접근 방식은 그룹 서명 방식을 위해 디바이스 공개키의 사용을 포기할 수도 있다. 일반적으로 말하면, 그룹 서명 방식은 그룹 구성원이 그룹을 대신하여 메시지에 익명으로 서명할 수 있도록 하는 방법이다. 그룹 서명 방식에서, 그룹 관리자는 인증서(C)로 메시지에 서명하는데 사용할 수 있는 그룹 서명 기능 기호(메시지(C))를 발행(게시)하는데, 여기서 인증서(C)는 그룹 관리자가 그룹 구성원에게 비공개적으로 발급한 기밀 인증서(익명 개인 키라고도 함)이다. 그룹 관리자는 또한 그룹 검증키(K)(그룹 공개키라고도 함) 및 그룹 서명 검증 함수 verify(sign(message,C), K)를 발행하여, 메시지가 익명 인증서(C)를 사용하여 그룹 서명 함수로 서명되고 K가 C에 대한 그룹 검증키인 경우에만 참(TRUE)을 반환한다.
이러한 기술은 디바이스 무결성 시스템을 그룹 관리자로 사용하여 클라이언트 디바이스 요청의 증명을 위해 그룹 서명 방식을 사용할 수 있다. 일부 그룹 서명 방식을 사용하면 그룹 관리자가 그룹 구성원이 만든 익명 서명을 익명 해제할 수 있지만, 프라이버시 고려 사항은 DAA(직접 익명 증명)와 같이 이 익명 해제 기능을 포함하지 않는 그룹 서명 방식을 선호할 수 있다. 예를 들어, 일부 접근 방식에서, 디바이스 무결성 시스템은 Barreto-Naehrig 곡선이 있는 ECC DAA와 같은 ECC(타원 곡선 암호화) DAA 방식을 사용할 수 있다. 더욱이, 일부 그룹 서명 방식은 그룹 관리자가 그룹 구성원 자격을 취소할 수 있지만, 효율성을 고려하면 이러한 취소 기능을 포함하지 않는 그룹 서명 방식을 선호할 수 있으므로 기술을 예를 들어 수백만 또는 수십억 명의 그룹 구성원을 갖는 그룹이 있는 인터넷 규모로 확장할 수 있다.
클라이언트 디바이스 요청의 증명을 위한 그룹 서명 방식의 예시적인 예가 도 6 및 7의 프로세스 흐름도에 도시되어 있다. 이 예에서, 디바이스 무결성 컴퓨팅 시스템(620)은 클라이언트 디바이스에 대한 M개의 상이한 레벨의 신뢰도를 정의하고 해당 M개 레벨의 신뢰도에 대해 M개의 상이한 그룹 검증키를 발행할 수 있다. 예를 들어, 디바이스 무결성 시스템은 하나, 둘 또는 그 이상의 그룹 검증키, 예를 들어, 디바이스 신뢰도 레벨에 해당하는 ECC DAA 검증키를 발행할 수 있다. M=1인 접근 방식의 경우, 그룹 검증키는 최소 레벨의 신뢰도에 해당하며, 해당 최소 레벨의 신뢰도를 충족하지 않는 디바이스는 신뢰도 그룹의 구성원으로 가입되지 않는다. M≥2인 접근 방식의 경우, 상이한 그룹 검증키는 디바이스 신뢰도의 개별 레벨 또는 분류에 해당한다. 일부 접근 방식에서, 디바이스 무결성 컴퓨팅 시스템은 새로운 그룹 검증키를 주기적으로 발행할 수 있으며(예를 들어, 매시간, 매일, 매주 또는 기타 적절한 기간 동안), 그룹 검증키 세트의 이러한 리프레쉬는 아래에 추가 설명된 바와 같이 클라이언트 디바이스 요청의 적시성을 유효성 검사하는데 사용될 수 있다.
이제 도 6을 참조하면, 클라이언트 디바이스(600)는 디바이스 무결성 서버(620)에 의해 관리되는 M개의 신뢰도 그룹 중 하나에 대한 기밀 인증서의 형태로 개인 디바이스 무결성 인증서를 요청할 수 있다(601). 요청은 예를 들어 클라이언트 디바이스(600)의 신뢰 프로그램에 의해 수집된 디바이스-레벨 사기 탐지 신호를 포함할 수 있다.
디바이스 무결성 컴퓨팅 시스템은 요청을 수신한다(621).디바이스 무결성 컴퓨팅 시스템(620)은 디바이스-레벨 사기 탐지 신호에 기초하여 클라이언트 디바이스의 신뢰도 판정을 결정할 수 있고 신뢰도 판정에 대응하는 선택된 신뢰도 그룹에 클라이언트 디바이스를 할당할 수 있다(622).
그런 다음, 디바이스 무결성 컴퓨팅 시스템(620)은 선택된 신뢰도 그룹에 대응하는 익명 인증서(611)를 생성 또는 선택하고 클라이언트 디바이스에 익명 인증서(611)를 반환할 수 있다(623). 예를 들어, 디바이스 무결성 컴퓨팅 시스템은 디바이스 무결성 컴퓨팅 시스템에 의해 디바이스에 할당된 디바이스 신뢰도 레벨과 관련된 ECC DAA 검증키에 대응하는 크리덴셜(자격 증명)을 생성할 수 있다. 클라이언트 디바이스(620)는 익명 인증서(611)를 수신하여 이를 클라이언트 디바이스(620)에, 예를 들어 개인키 저장소에 국부적으로 안전하게 저장할 수 있다(602). 예를 들어, 클라이언트 디바이스는 악의적인 당사자가 인증서를 남용하여 다른 디바이스에서 그것을 사용할 수 없도록 개인키 저장소의 마스터 키를 사용하여 인증서를 암호화할 수 있다.
특정 신뢰 그룹에 있는 회원의 익명 인증서를 얻은 후, 클라이언트 디바이스는 이 익명 인증서를 사용하여 디지털 컴포넌트 제공자 또는 기타 증명 토큰 수신자가 만든 다양한 요청의 일부로 증명 토큰을 조합하고 보낼 수 있다. 이 예에서, 증명 토큰은 클라이언트 디바이스의 공개키를 포함하지 않기 때문에 익명 증명 토큰으로 지칭될 수 있다. 이러한 요청의 예시적인 예는 도 7의 프로세스 흐름도로서 묘사된다.
클라이언트 디바이스(700)는 디지털 컴포넌트 제공자 또는 다른 증명 토큰 수신자가 수행할 요청(701)을 개시할 수 있다. 일부 구현에서, 클라이언트 디바이스는 아래에서 추가로 설명되는 바와 같이 선택적으로 요청이 증명 토큰 제한을 초과하지 않는지 확인할 수 있다(702). 클라이언트 디바이스(700)는 앞서 및 도 6에 설명된 바와 같이, 디바이스 무결성 컴퓨팅 시스템으로부터 인증서를 미리 획득한, 예를 들어 클라이언트 디바이스의 개인키 저장소로부터 익명 인증서를 검색한다(703).
클라이언트 디바이스(700)는 요청(711)을 생성하고 검색된 익명 인증서로 그 요청에 서명한다(704). 요청을 생성하는 것은 예를 들어 요청 페이로드 및 요청 생성 타임스탬프를 포함하는 컨텐츠 세트를 생성하는 것을 포함할 수 있다. 요청 페이로드는 예를 들어 디지털 컴포넌트를 선택하는데 사용할 수 있는 데이터 또는 데이터 제거와 같이 증명 토큰 수신자가 수행할 요청된 변경을 지정하는 데이터를 포함할 수 있다. 요청 생성 타임스탬프는 요청이 생성된 시간을 나타낼 수 있다. 경우에 따라, 요청 생성 타임스탬프는 중복 요청이나 재생 공격을 감지할 수 있을 만큼 충분히 작은 시간 분해능을 갖는다. 예를 들어, 요청 생성 타임스탬프는 약 밀리초 미만 또는 약 마이크로초 미만의 시간 분해능을 가질 수 있다. 그룹 서명 방식이 확률적 그룹 서명 방식인 접근 방식에서, 클라이언트 디바이스(700)에 의한 동일한 요청(711)의 2개의 개별 서명은 상이한 서명을 생성할 것이다. 이러한 접근 방식에서, 요청(711)의 수신자는 동일한 서명을 가진 요청을 거부함으로써 중복된 요청 또는 재생 공격을 방지할 수 있다.
위에서 그리고 도 3 및 5에서 설명된 다른 접근 방식과는 대조적으로, 요청(711)은 (도 3의 요청(311) 및 도 5의 요청(511)에 비해) 클라이언트 디바이스의 공개키를 포함하지 않으며 디바이스 무결성 토큰도 포함하지 않는다. 이전에 설명된 접근 방식의 이러한 증명 토큰 기능은 클라이언트 디바이스가 익명 인증서(C)를 소유하고 사용하는 것이 클라이언트 디바이스가 디바이스 무결성 컴퓨팅 시스템에 의해 관리되는 신뢰도 그룹의 구성원임을 나타내는 현재 접근 방식의 그룹 서명 방식에서는 필요하지 않다. 클라이언트 디바이스는 발행된 그룹 서명 기능인 sign(message,C)을 사용하여 익명 인증서(C)로 요청(711)에 서명한다. 예를 들어, 클라이언트 디바이스(700)는 익명 인증서(C)를 사용하여 컨텐츠 세트의 디지털 서명을 생성할 수 있는데, 예를 들어, 클라이언트 디바이스는 디바이스 무결성 서버에 의해 클라이언트 디바이스로 이전에 제공된 ECC DAA 크리덴셜로 ECC DAA 서명 방식을 사용하여 요청에 서명할 수 있다.
클라이언트 디바이스는 요청(711)을 수신자의 컴퓨팅 시스템(720)으로 전송한다(705). 수신자가 디지털 컴포넌트 제공자인 경우, 클라이언트 디바이스(700)는 디지털 컴포넌트 배포 시스템으로 요청을 전송할 수 있으며, 이 시스템은 차례로 적절한 디지털 컴포넌트 제공자에게 요청을 포워딩한다.
수신자 컴퓨팅 시스템(720)은 요청을 수신한다(722). 클라이언트 디바이스(700)로부터 요청(711)을 수신하기 전에, 수신자 컴퓨팅 시스템(720)은 디바이스 무결성 컴퓨팅 시스템의 M개의 신뢰도 클래스(등급)에 대한 M개의 상이한 그룹 검증키 세트를 수신한다(721). 디바이스 무결성 컴퓨팅 시스템(740)은 이러한 M개의 그룹 검증키를 발행하고(741), 새로운 그룹 검증키를 주기적으로(예를 들어, 매시간, 일, 주 또는 적절한 다른 기간마다) 다시 발행할 수 있으며, 이 경우 증명 토큰 수신자는 클라이언트 디바이스의 요청을 유효성 검사하는데 사용할 새로운 그룹 검증키를 주기적으로 수신할 것이다. 하나의 접근 방식에서, 그룹 검증키는 임의의 수신자 컴퓨팅 시스템(720)이 표준 HTTP 요청을 사용하여 그룹 검증키를 페치할 수 있도록 잘 알려진 URL을 사용하여 잘 알려진 경로상에 발행된다. 경로는 날짜/시간 정보를 인코딩할 수 있거나 그룹 검증키를 수반하는 메타 데이터는 키 만료 날짜를 인코딩할 수 있으므로 아래에서 추가로 논의되는 바와 같이 수신자 컴퓨팅 시스템이 키가 최신인지 여부를 결정할 수 있다.
수신자 컴퓨팅 시스템(720)은 요청의 적시성을 유효성 검사한다(723). 예를 들어, 수신자는 요청 생성 타임스탬프를 검토하여 무엇보다도 요청이 중복(또는 재생 시도)이 아니며 요청이 오래되지 않았는지(예를 들어, 요청 생성 타임스탬프와 수신자 컴퓨팅 시스템이 임계값 내에서 요청을 수신하는 시간간의 차이) 확인한다.
수신자 컴퓨팅 시스템(720)은 요청의 익명 서명 및 신뢰도를 유효성 검사한다(724). 예를 들어, 수신자는 M개의 발행된 그룹 검증키 세트 내의 각각의 발행된 그룹 검증키 K에 대해, 검증 함수 verify(sign(message,C), K)를 평가함으로써 익명 서명을 유효성 검사할 수 있다. 검증 함수는 예를 들어 디바이스 무결성 서버에 의해 이전에 발행된 ECC DAA 검증키를 사용하여 계산되는 ECC DAA 서명 검증 함수일 수 있다. 함수가 모든 발행된 그룹 검증키(K)에 대해 거짓(FALSE)이면, 수신자는 요청이 위조되었거나 클라이언트 디바이스(700)가 어떤 신뢰도 그룹에도 속하지 않는다고 결정할 수 있다. 반면에, 함수가 특정 그룹 검증키(K)에 대해 참(TRUE)이면, 클라이언트 디바이스(700)는 해당 특정 그룹 검증키(K)에 대응하는 신뢰도 그룹에 속한다.
이러한 유효성 검사가 통과하면, 증명 토큰 수신자는 요청에 응답하여(725) 위에서 논의된 바와같이 설정 변경, 사용자 데이터 추가 또는 제거, 디지털 컴포넌트 전달을 수행할 수 있다. 디지털 컴포넌트를 전달하는 것을 포함하는 요청의 경우, 응답(725)은 선택적으로 적절한 디지털 컴포넌트(712)를 클라이언트 디바이스(700)로 전송하는 것을 포함할 수 있다. 클라이언트 디바이스(700)는 디지털 컴포넌트를 수신한다(706). 차례로, 클라이언트 디바이스(700)는 클라이언트 디바이스(700)의 사용자에게 디지털 컴포넌트를 제시할 수 있다.
도 6 및 7에 예시되고 위에서 설명된 그룹 서명 접근 방식이 클라이언트 디바이스의 디바이스 공개키에 기반한 추적을 방지함으로써 클라이언트 디바이스 또는 사용자의 프라이버시를 향상시키고, 또한 증명 토큰 수신자(예를 들어, 디지털 컴포넌트 제공자)가 부당한 양의 요청을 증명 토큰 수신자에게 보낼 수 있는 남용 디바이스 또는 애플리케이션을 식별하는 것을 방지할 수 있다. 따라서, 일부 접근 방식에서, 클라이언트 디바이스는 과도한 양의 증명 토큰을 전송하는 것으로부터 클라이언트 디바이스를 제한할 수 있는 신뢰할 수 있는 스로틀러(throttler, 조절기)를 포함할 수 있다. 다시 도 7을 참조하면, 스로틀러는 예를 들어 요청이 진행되도록 허용하기 전에 개시된 요청이 증명 토큰 제한을 초과하지 않는지 검증하는 동작(702)을 수행할 수 있다. 스로틀러는 예를 들어 스레드, 프로세스, 서브루틴, 또는 클라이언트 디바이스의 신뢰할 수 있는 운영 체제의 기타 컴포넌트일 수 있다. 스로틀러가 도 6-8의 그룹 서명 접근 방식과 관련하여 아래에 설명되어 있지만, 스로틀러가 본 명세서에 설명된 임의의 증명 토큰 컨텍스트에서 증명 토큰의 양을 제한하는데 사용될 수 있음이 고려된다. 예를 들어, 스로틀러는 도 3의 요청(311) 또는 도 5의 요청(511)을 제한하는데 사용될 수 있다.
이러한 스로틀링 접근 방식의 예시적인 예가 도 8의 프로세스 흐름도에 묘사되어 있다. 디지털 컴포넌트 제공자 및 다른 요청 수신자 또는 증명 토큰을 포함하는 다른 통신과 같은 다양한 증명 토큰 수신자(850)는 증명 토큰 수량 제한을 나타내는 정보를 발행(게시)할 수 있다(851). 예를 들어, 증명 토큰 수신자는 (1) 선택된 시간 프레임 내에 각 개별 클라이언트 디바이스에서 수신자의 선택된 대상(목적지) 도메인으로 전송될 수 있는 토큰 수에 대한 제한(예를 들어, Y 초, 분 또는 시간 내에 X개 이하의 요청; (2) 선택된 시간 프레임 내에 개별 클라이언트 디바이스상의 하나 이상의 선택된 애플리케이션으로부터 수신자의 선택된 대상 도메인으로 전송될 수 있는 토큰 수에 대한 제한(예를 들어, Y 초, 분 또는 시간 이내에 애플리케이션(A)으로부터 또는 애플리케이션(A) 이외의 애플리케이션으로부터의 X개 이하의 요청); (3) 선택된 시간 프레임 내에 개별 클라이언트 디바이스로부터 수신자의 선택된 대상 도메인 내의 선택된 엔드포인트로 전송될 수 있는 토큰 수에 대한 제한; (4) 선택된 시간 프레임 내에 클라이언트 디바이스상의 하나 이상의 선택된 애플리케이션으로부터 선택된 대상 도메인 내의 선택된 엔드포인트로 전송될 수 있는 토큰의 수에 대한 제한; 또는 (5) 이러한 제한들 중 둘 이상의 임의의 조합을 발행할 수 있다.
스로틀러(830)는 클라이언트 디바이스(800)의 신뢰 프로그램(820)(예를 들어, 운영 체제)의 컴포넌트로서, 발행된 토큰 수량 제한 정보를 수신한다(821). 발행된 토큰 수량 제한 정보는 다양한 방법으로 수신될 수 있다. 한 가지 접근 방식에서, 각 증명 토큰 수신자는 토큰 수신자의 개인키로 서명된 파일에 토큰 수량 정보를 게시한다. 신뢰할 수 있는 크롤러(crawler)는 주기적으로 (토큰 수신자에 대한 공개키와 함께) 해당 파일을 페치하고, 해당 파일을 각 클라이언트 디바이스(800)에 전달한다. 그러면 각 클라이언트 디바이스의 스로틀러(830)는 토큰 수신자의 서명을 확인한 후 스로틀링(조절) 요구 사항을 따른다. 예를 들어, 스로틀러(830)는 제한을 초과하는 요청에 대한 증명 토큰을 생성하지 않음으로써 제한이 초과되지 않도록 할 수 있다.
다른 접근 방식에서, 각 토큰 수신자는 서명된 토큰 수량 정보를 (모바일 앱이 다운로드될 수 있는 모바일 앱 스토어와 같은) 디지털 배포 플랫폼에 제출한다. 디지털 배포 플랫폼은 토큰 수량 정보를 확인하고 서명한다. 각 토큰 수신자는 두 번 서명된 토큰 수량 정보를 클라이언트 디바이스(800)에 전달한다. 그런 다음 각 클라이언트 디바이스의 스로틀러(830)는 토큰 수신자와 디지털 배포 플랫폼 모두의 서명을 확인한 후 스로틀링 요구 사항을 따른다. 예를 들어, 스로틀러(830)는 제한을 초과하는 요청에 대한 증명 토큰을 생성하지 않음으로써 제한이 초과되지 않도록 할 수 있다.
클라이언트 디바이스의 애플리케이션(810)이 증명 토큰에 대한 요청을 신뢰 프로그램(820)으로 개시하는 경우(811), 신뢰 프로그램(820)은 이 요청을 수신한다(822). 그런 다음 신뢰 프로그램(820)은 요청을 따르는 것이 클라이언트 디바이스가 상기 발행된 토큰 수량 제한들 중 하나 이상을 초과하게 하는지 여부를 평가하기 위해 스로틀러를 호출할 수 있다(823). 만약 요청이 발행된 토큰 수량 제한들 중 하나 이상을 초과하면, 신뢰 프로그램(820)은 증명 토큰 요청을 거부한다(단계 823a). 만약 요청이 발행된 토큰 수량 제한을 초과하지 않으면, 신뢰할 수 있는 운영 체제(820)는 증명 토큰이 생성되어 적절한 증명 토큰 수신자에게 전송되는 것을 허용한다(단계 823b).
위의 설명에 더하여, 사용자는 본 명세서에 설명된 시스템, 프로그램 또는 기능이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션 또는 활동, 직업, 사용자의 선호도 또는 사용자의 현재 위치에 관한 정보)의 수집을 가능하게 할 수 있는지 여부와 사용자에게 개인화된 컨텐츠 또는 서버로부터의 통신이 전송되는지 여부에 대해 사용자가 선택할 수 있도록 하는 제어를 제공받을 수 있다. 또한, 특정 데이터는 개인 식별 정보가 제거될 수 있도록 저장 또는 사용되기 전에 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 사용자의 신원은 개인 식별 정보(예를 들어, 전화 번호, IMEI, 디바이스 일련 번호)가 사용자에 대해 결정될 수 없도록 처리될 수 있거나, 사용자의 지리적 위치는 사용자의 특정 위치가 결정될 수 없도록 위치 정보를 얻은 곳(예를 들어, 도시, 우편번호 또는 주 수준)으로 일반화될 수 있다. 따라서, 사용자는 사용자에 대해 수집되는 정보, 해당 정보가 사용되는 방법, 정보 보유 정책 및 사용자에게 제공되는 정보를 제어할 수 있다.
도 9는 위에서 설명된 동작들을 수행하는데 사용될 수 있는 예시적인 컴퓨터 시스템(900)의 블록도이다. 시스템(900)은 프로세서(910), 메모리(920), 저장 디바이스(930) 및 입출력 디바이스(940)를 포함한다. 컴포넌트(910, 920, 930, 940) 각각은 예를 들어 시스템 버스(950)를 사용하여 상호 연결될 수 있다. 프로세서(910)는 시스템(900) 내에서 실행하기 위한 명령들을 처리할 수 있다. 일부 구현에서, 프로세서(910)는 단일 스레드 프로세서이다. 다른 구현에서, 프로세서(910)는 다중 스레드 프로세서이다. 프로세서(910)는 메모리(920) 또는 저장 디바이스(930)에 저장된 명령들을 처리할 수 있다.
메모리(920)는 시스템(900) 내에 정보를 저장한다. 일 구현에서, 메모리(920)는 컴퓨터 판독 가능 매체이다. 일부 구현에서, 메모리(920)는 휘발성 메모리 유닛이다. 다른 구현예에서, 메모리(920)는 비-휘발성 메모리 유닛이다.
저장 디바이스(930)는 시스템(900)을 위한 대용량 저장 디바이스를 제공할 수 있다. 일부 구현에서, 저장 디바이스(930)는 컴퓨터 판독 가능 매체이다. 다양한 상이한 구현에서, 저장 디바이스(930)는 예를 들어, 하드 디스크 디바이스, 광 디스크 디바이스, 네트워크를 통해 여러 컴퓨팅 디바이스(예를 들어, 클라우드 저장 디바이스)에 의해 공유되는 저장 디바이스, 또는 일부 다른 대용량 저장 디바이스를 포함할 수 있다.
입/출력 디바이스(940)는 시스템(900)에 대한 입력/출력 동작을 제공한다. 일부 구현에서, 입/출력 디바이스(940)는 네트워크 인터페이스 디바이스, 예를 들어 이더넷 카드, 직렬 통신 디바이스, 예를 들어, RS-232 포트, 및/또는 무선 인터페이스 디바이스, 예를 들어, 802.11 카드 중 하나 이상을 포함할 수 있다. 다른 구현에서, 입/출력 디바이스는 입력 데이터를 수신하고 출력 데이터를 외부 디바이스(960), 예를 들어, 키보드, 프린터 및 디스플레이 디바이스로 전송하도록 구성된 드라이버 디바이스를 포함할 수 있다. 그러나, 모바일 컴퓨팅 디바이스, 모바일 통신 디바이스, 셋탑 박스 텔레비전 클라이언트 디바이스 등과 같은 다른 구현도 사용될 수 있다.
예시적인 처리 시스템이 도 9에 설명되었지만, 본 명세서에 설명된 주제 및 기능적 동작들의 구현은 다른 유형의 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어(본 명세서에 개시된 구조 및 그 구조적 등가물 포함), 또는 이들 중 하나 이상의 조합으로 구현될 수 있다.
본 명세서에 설명된 주제 및 동작들의 실시예는 본 명세서에 개시된 구조 및 그의 구조적 등가물을 포함하는 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 또는 이들의 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 기술된 주제의 실시예는 하나 이상의 컴퓨터 프로그램, 즉, 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 저장 매체(또는 매체)에 인코딩된 컴퓨터 프로그램 명령의 하나 이상의 모듈로 구현될 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령은 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로의 전송을 위해 정보를 인코딩하도록 생성되는 인공적으로 생성된 전파 신호, 예를 들어 기계 생성된 전기, 광학 또는 전자기 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 이에 포함될 수 있다. 더욱이, 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지가 될 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 물리적 컴포넌트 또는 매체(예를 들어, 다중 CD, 디스크 또는 기타 저장 디바이스)일 수 있거나 이에 포함될 수 있다.
본 명세서에서 설명된 동작들은 하나 이상의 컴퓨터 판독 가능 저장 디바이스에 저장되거나 다른 소스로부터 수신된 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작들로 구현될 수 있다.
"데이터 처리 장치"라는 용어는 예를 들어 프로그램 가능 프로세서, 컴퓨터, 시스템 온 칩, 또는 이들 중 다수의 것 또는 이들의 조합을 비롯하여 데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 장치는 예를 들어 FPGA(필드 프로그래머블 게이트 어레이) 또는 ASIC(주문형 집적 회로)과 같은 특수 목적 논리 회로를 포함할 수 있다. 장치는 또한 하드웨어 외에 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 플랫폼 간 런타임 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파일 또는 해석 언어, 선언적 또는 절차적 언어를 포함하여 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램이나 모듈, 컴포넌트, 서브 루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하여 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있지만 반드시 그런 것은 아니다. 프로그램은 다른 프로그램 또는 데이터(예를 들어, 마크 업 언어 문서에 저장된 하나 이상의 스크립트)를 포함하는 파일의 일부, 해당 프로그램 전용 단일 파일 또는 다수의 조정 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 위치하거나 다수의 사이트에 분산되고 통신 네트워크로 상호 연결된 다수의 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에 설명된 프로세스 및 논리 흐름은 입력 데이터에 대해 동작하여 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 FPGA 또는 ASIC과 특수 목적 로직 회로로 구현될 수 있고 장치 또한 이들로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예로서 범용 및 특수 목적의 마이크로 프로세서 모두를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령과 데이터를 수신한다. 컴퓨터의 필수 요소는 명령들에 따라 동작을 수행하기 위한 프로세서와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어 자기, 광 자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 데이터를 전송하거나 둘 모두를 하도록 작동 가능하게 결합된다. 그러나 컴퓨터에는 이러한 디바이스들이 필요하지 않다. 더욱이, 컴퓨터는 다른 디바이스(예를 들어, 모바일 전화기, PDA, 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 디바이스(예를 들어, 범용 직렬 버스(USB) 플래시 드라이브)에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터 저장에 적합한 디바이스에는 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스); 자기 디스크(예를 들어, 내부 하드 디스크 또는 이동식 디스크); 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함한 모든 형태의 비-휘발성 메모리, 미디어 및 메모리 디바이스가 포함된다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에 기술된 주제의 실시예는 사용자에게 정보를 표시하기 위한 디스플레이 디바이스(예를 들어, CRT(음극선 관) 또는 LCD(액정 디스플레이) 모니터) 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 갖는 컴퓨터 상에 구현될 수 있다. 사용자와의 상호 작용을 제공하기 위해 다른 종류의 디바이스가 사용될 수도 있는데, 예를 들어, 사용자에게 제공되는 피드백은 예를 들어 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하여 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자가 사용하는 디바이스로 문서를 전송하고 그로부터 문서를 수신함으로써 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 클라이언트 디바이스상의 웹 브라우저로 웹 페이지를 전송함으로써 사용자와 상호 작용할 수 있다.
본 명세서에 기술된 주제의 실시예는 백엔드 컴포넌트(예를 들어, 데이터 서버)를 포함하거나, 미들웨어 컴포넌트(예를 들어, 애플리케이션 서버)를 포함하거나 프런트 엔드 컴포넌트(예를 들어, 사용자가 본 명세서에 설명된 주제의 구현과 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터)를 포함하거나 이러한 백엔드, 미들웨어 또는 프런트 엔드 컴포넌트 중 하나 이상의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 연결될 수 있다. 통신 네트워크의 예에는 근거리 통신망("LAN") 및 광역 네트워크("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어-투-피어 네트워크(예를 들어, 애드혹 피어-투-피어 네트워크)가 포함될 수 있다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 개별 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램으로 인해 발생한다. 일부 실시예에서, 서버는 (클라이언트 디바이스와 상호 작용하는 사용자에게 데이터를 표시하고 사용로부터 사용자 입력을 수신하기 위해) 데이터(예를 들어, HTML 페이지)를 클라이언트 디바이스로 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용 결과)는 서버에서 클라이언트 디바이스로부터 수신될 수 있다.
본 명세서에는 많은 특정 구현 세부 사항이 포함되어 있지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 것에 대한 제한으로 해석되어서는 안되며, 오히려 특정 발명의 특정 실시예에 특정된 특징들의 설명으로 해석되어야 한다. 별도의 실시예의 맥락에서 본 명세서에 설명된 특정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 맥락에서 설명된 다양한 특징은 또한 다중 실시예에서 개별적으로 또는 임의의 적절한 서브 조합으로 구현될 수 있다. 더욱이, 특징들이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 심지어 처음에 그렇게 주장될 수도 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우 조합으로부터 제외될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형에 대한 것일 수 있다.
유사하게, 동작들은 특정 순서로 도면에 도사되지만, 이는 바람직한 결과를 달성하기 위해 그러한 동작들이 특정 순서 또는 순차적 순서로 수행되거나 모든 예시된 동작들이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서, 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 더욱이, 위에서 설명된 실시예에서 다양한 시스템 컴포넌트의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 설명된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키징될 수 있음을 이해해야 한다.
따라서, 주제의 특정 실시예들이 설명되었다. 다른 실시예는 다음 청구항의 범위 내에 있다. 일부 경우, 청구 범위에 언급된 동작들은 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 또한, 첨부된 도면에 도시된 프로세스는 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적인 순서를 반드시 필요로 하지 않는다. 특정 구현에서는 멀티 태스킹 및 병렬 처리가 유리할 수 있다.

Claims (16)

  1. 클라이언트 디바이스에 의해 수행되는 방법으로서,
    디바이스 무결성 컴퓨팅 시스템으로, 익명 인증서에 대한 제1 요청을 전송하는 단계와, 상기 요청은 클라이언트 디바이스에 대한 디바이스-레벨 사기 탐지 신호를 포함하고;
    디바이스 무결성 컴퓨팅 시스템으로부터, 익명 인증서를 수신하는 단계와, 상기 익명 인증서는 적어도 디바이스-레벨 사기 탐지 신호에 기초하여 디바이스 신뢰도 그룹의 세트로부터 선택된 소정(given) 서명 그룹에 대응하고, 상기 각 디바이스 신뢰도 그룹은 신뢰도의 개별 카테고리에 대응하고;
    (i) 제2 요청 및 익명 증명 토큰의 생성 시간을 나타내는 증명 토큰 생성 타임스탬프를 포함하는 데이터 세트 및 (ii) 익명 인증서와 함께 그룹 서명 방식을 사용하여 생성된 데이터 세트의 디지털 서명을 포함하는 익명 증명 토큰을 생성하는 단계와; 그리고
    증명 토큰을 수신자에게 전송하는 단계를 포함하는 것을 특징으로 하는 클라이언트 디바이스에 의해 수행되는 방법.
  2. 제1항에 있어서,
    상기 그룹 서명 방식은 직접 익명 증명(DAA) 서명 방식인 것을 특징으로 하는 클라이언트 디바이스에 의해 수행되는 방법.
  3. 제2항에 있어서,
    상기 DAA 서명 방식은 ECC(Elliptic Curve Cryptography) DAA 서명 방식인 것을 특징으로 하는 클라이언트 디바이스에 의해 수행되는 방법.
  4. 제3항에 있어서,
    상기 ECC DAA 서명 방식은 Barreto-Naehrig 곡선이 있는 ECC DAA 서명 방식인 것을 특징으로 하는 클라이언트 디바이스에 의해 수행되는 방법.
  5. 제1항 내지 제4항 중 어느 하나에 있어서,
    상기 익명 인증서는,
    클라이언트 디바이스가 소정 서명 그룹에 취소 불가능하게 할당되었음을 나타내는 취소 불가능한 익명 인증서인 것을 특징으로 하는 클라이언트 디바이스에 의해 수행되는 방법.
  6. 제1항 내지 제5항 중 어느 하나에 있어서,
    상기 디바이스 신뢰도 그룹 세트는,
    제1 신뢰도를 갖는 디바이스를 구성원으로 포함하는 적어도 제1 신뢰도 그룹 및 제1 신뢰도보다 낮은 제2 신뢰도를 갖는 디바이스를 구성원으로 포함하는 제2 신뢰도 그룹을 포함하고, 상기 소정 그룹은 제1 그룹 또는 제2 서명 그룹 중 하나인 것을 특징으로 하는 클라이언트 디바이스에 의해 수행되는 방법.
  7. 제6항에 있어서,
    상기 제1 및 제2 신뢰도 그룹은,
    디바이스 무결성 컴퓨팅 시스템에 의해 발행된 대응하는 제1 및 제2 그룹 공개키를 갖는 것을 특징으로 하는 클라이언트 디바이스에 의해 수행되는 방법.
  8. 제1항 내지 제7항 중 어느 하나에 있어서,
    익명 인증서를 클라이언트 디바이스의 보안 개인키 저장소에 저장하는 단계를 더 포함하는 것을 특징으로 하는 클라이언트 디바이스에 의해 수행되는 방법.
  9. 제1항 내지 제8항 중 어느 하나에 있어서,
    상기 토큰 생성 타임스탬프는,
    약 밀리초 미만 또는 약 마이크로초 미만인 시간 분해능을 갖는 것을 특징으로 하는 클라이언트 디바이스에 의해 수행되는 방법.
  10. 제1항 내지 제7항 중 어느 하나에 있어서,
    증명 토큰 수량 제한을 나타내는 정보를 수신하는 단계와; 그리고
    생성하는 단계 전에, 그 생성하는 단계가 증명 토큰 수량 제한을 초과하지 않는지 검증하는 단계를 더 포함하는 것을 특징으로 하는 클라이언트 디바이스에 의해 수행되는 방법.
  11. 제8항에 있어서,
    상기 증명 토큰 수량 제한은,
    선택된 시간 프레임 내에 클라이언트 디바이스로부터 선택된 대상 도메인으로 전송될 수 있는 익명 토큰의 수에 대한 제한인 것을 특징으로 하는 클라이언트 디바이스에 의해 수행되는 방법.
  12. 제8항에 있어서,
    상기 증명 토큰 수량 제한은,
    선택된 시간 프레임 내에 클라이언트 디바이스의 하나 이상의 선택된 애플리케이션으로부터 선택된 대상 도메인으로 전송될 수 있는 익명 토큰의 수에 대한 제한인 것을 특징으로 하는 클라이언트 디바이스에 의해 수행되는 방법.
  13. 제8항에 있어서,
    상기 증명 토큰 수량 제한은,
    선택된 시간 프레임 내에 클라이언트 디바이스로부터 선택된 대상 도메인 내의 선택된 엔드포인트로 전송될 수 있는 익명 토큰의 수에 대한 제한인 것을 특징으로 하는 클라이언트 디바이스에 의해 수행되는 방법.
  14. 제8항에 있어서,
    상기 증명 토큰 수량 제한은,
    선택된 시간 프레임 내에 클라이언트 디바이스의 하나 이상의 선택된 애플리케이션으로부터 선택된 대상 도메인 내의 선택된 엔드포인트로 전송될 수 있는 익명 토큰의 수에 대한 제한인 것을 특징으로 하는 클라이언트 디바이스에 의해 수행되는 방법.
  15. 시스템으로서,
    하나 이상의 프로세서; 및
    하나 이상의 프로세서로 하여금 제1항 내지 제14항 중 어느 한 항의 방법을 수행하도록 구성된 컴퓨터 판독 가능 명령들이 저장된 하나 이상의 메모리를 포함하는 것을 특징으로 하는 시스템.
  16. 하나 이상의 컴퓨터에 의한 실행 시 하나 이상의 컴퓨터로 하여금 제1항 내지 제14항 중 어느 한 항의 방법의 동작들을 수행하게 하는 명령들을 저장하는 비-일시적 컴퓨터 판독가능 매체.
KR1020227007057A 2020-07-09 2021-03-16 그룹 서명을 통한 익명 이벤트 증명 KR20220039800A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IL275954A IL275954A (en) 2020-07-09 2020-07-09 Anonymous event confirmation with group signatures
IL275954 2020-07-09
PCT/US2021/022506 WO2022010549A1 (en) 2020-07-09 2021-03-16 Anonymous event attestation with group signatures

Publications (1)

Publication Number Publication Date
KR20220039800A true KR20220039800A (ko) 2022-03-29

Family

ID=79553591

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227007057A KR20220039800A (ko) 2020-07-09 2021-03-16 그룹 서명을 통한 익명 이벤트 증명

Country Status (7)

Country Link
US (1) US12003649B2 (ko)
EP (1) EP4011033A1 (ko)
JP (2) JP7282982B2 (ko)
KR (1) KR20220039800A (ko)
CN (1) CN114342317A (ko)
IL (1) IL275954A (ko)
WO (1) WO2022010549A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023249320A1 (ko) * 2022-06-23 2023-12-28 주식회사 케이티 Dds 통신 방법, 장치 및 시스템

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230030816A1 (en) * 2021-07-30 2023-02-02 Red Hat, Inc. Security broker for consumers of tee-protected services

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2744818B1 (fr) 1996-02-12 1998-03-27 Bull Sa Procede de verification de la conservation de l'integrite d'une requete emise sans protection par un client vers un serveur au moyen de l'integrite de la reponse
US6871276B1 (en) 2000-04-05 2005-03-22 Microsoft Corporation Controlled-content recoverable blinded certificates
CN1937496A (zh) 2005-09-21 2007-03-28 日电(中国)有限公司 可延展伪名证书系统和方法
KR100847999B1 (ko) 2006-06-30 2008-07-23 포스데이타 주식회사 네트워크 기반의 dvr 시스템에 있어서 dvr 서버 및모니터링 대상 단말 접근 제어 방법
US8078876B2 (en) 2007-04-30 2011-12-13 Intel Corporation Apparatus and method for direct anonymous attestation from bilinear maps
JP4851497B2 (ja) 2007-07-17 2012-01-11 インテル コーポレイション 双線形マップからの直接匿名認証のための装置および方法
US8356181B2 (en) * 2007-11-15 2013-01-15 Intel Corporation Apparatus and method for a direct anonymous attestation scheme from short-group signatures
US8281149B2 (en) * 2009-06-23 2012-10-02 Google Inc. Privacy-preserving flexible anonymous-pseudonymous access
EP2558972A1 (en) 2010-04-12 2013-02-20 InterDigital Patent Holdings, Inc. Staged control release in boot process
US9208318B2 (en) 2010-08-20 2015-12-08 Fujitsu Limited Method and system for device integrity authentication
GB2521101B (en) * 2010-11-18 2019-01-30 Ibm A method for attesting a plurality of data processing systems
US8832447B2 (en) 2011-08-10 2014-09-09 Sony Corporation System and method for using digital signatures to assign permissions
US8595505B2 (en) * 2011-09-28 2013-11-26 Intel Corporation Apparatus and method for direct anonymous attestation from bilinear maps
EP2798778A4 (en) 2011-12-27 2015-08-19 Intel Corp METHOD AND SYSTEM FOR SECURE CALCULATION OF A BASE POINT IN A DIRECT ANONYMOUS CERTIFICATE
CN102594558B (zh) 2012-01-19 2014-08-06 东北大学 一种可信计算环境的匿名数字证书系统及验证方法
JP5475035B2 (ja) 2012-02-24 2014-04-16 日本電信電話株式会社 認証権限移譲システム、情報端末、トークン発行局、サービス提供装置、認証権限移譲方法、及びプログラム
US9177129B2 (en) * 2012-06-27 2015-11-03 Intel Corporation Devices, systems, and methods for monitoring and asserting trust level using persistent trust log
US9515832B2 (en) 2013-06-24 2016-12-06 Microsoft Technology Licensing, Llc Process authentication and resource permissions
ES2695245T3 (es) 2013-12-04 2019-01-02 Telefonica Digital Espana Slu Método implementado por ordenador y un sistema informático para evitar problemas de seguridad en el uso de certificados digitales en la firma de códigos y un producto de programa informático de los mismos
US9705879B2 (en) * 2014-09-17 2017-07-11 Microsoft Technology Licensing, Llc Efficient and reliable attestation
US9807610B2 (en) * 2015-03-26 2017-10-31 Intel Corporation Method and apparatus for seamless out-of-band authentication
US20170289185A1 (en) 2016-03-31 2017-10-05 Qualcomm Incorporated Device assisted traffic anomaly detection
GB2562454B (en) * 2017-02-20 2019-05-29 Trustonic Ltd Anonymous attestation
US10397005B2 (en) * 2017-03-31 2019-08-27 Intel Corporation Using a trusted execution environment as a trusted third party providing privacy for attestation
CN110771091B (zh) 2017-06-14 2022-10-18 哈曼国际工业有限公司 用于网络连接式装置的安全的系统和方法
US10313133B2 (en) 2017-06-21 2019-06-04 Visa International Service Association Secure communications providing forward secrecy
US10505978B2 (en) 2017-08-24 2019-12-10 Visa International Service Association Utilizing trust tokens to conduct secure message exchanges
CN107800688B (zh) 2017-09-28 2020-04-10 南京理工大学 一种基于收敛加密的云端数据去重和完整性审计方法
CN107948143B (zh) 2017-11-15 2021-03-30 安徽大学 一种云存储中基于身份的隐私保护完整性检测方法和系统
US11438168B2 (en) 2018-04-05 2022-09-06 T-Mobile Usa, Inc. Authentication token request with referred application instance public key
US10154061B1 (en) 2018-05-04 2018-12-11 INTEGRITY Security Services, Inc. Cloaking authority system
CN109005035B (zh) * 2018-07-12 2020-07-28 同济大学 一种网联汽车远程匿名签发验证通信系统
JP6937280B2 (ja) 2018-09-13 2021-09-22 株式会社東芝 情報処理装置、リソース提供装置、情報処理方法、情報処理プログラム、リソース提供方法、リソース提供プログラム
US11153098B2 (en) * 2018-10-09 2021-10-19 Ares Technologies, Inc. Systems, devices, and methods for recording a digitally signed assertion using an authorization token
US11240025B2 (en) * 2018-11-09 2022-02-01 Ares Technologies, Inc. Systems and methods for distributed key storage
CN109391631B (zh) * 2018-11-28 2021-07-13 重庆邮电大学 一种带有可控链接的车联网匿名认证系统及方法
US11218316B2 (en) * 2018-12-05 2022-01-04 Ares Technologies, Inc. Secure computing hardware apparatus
CN109688119B (zh) 2018-12-14 2020-08-07 北京科技大学 一种云计算中的可匿名追踪性身份认证方法
CN109788482B (zh) 2019-02-26 2021-09-03 武汉大学 一种车联网环境下车辆间的消息匿名认证方法及系统
US10742421B1 (en) * 2019-03-08 2020-08-11 Ares Technologies, Inc. Methods and systems for anonymous hardware attestation
US10735205B1 (en) * 2019-03-08 2020-08-04 Ares Technologies, Inc. Methods and systems for implementing an anonymized attestation chain
US11580321B2 (en) 2019-04-08 2023-02-14 Ares Technologies, Inc. Systems, devices, and methods for machine learning using a distributed framework
US11533316B2 (en) * 2019-06-27 2022-12-20 Intel Corporation Information-centric network namespace policy-based content delivery
KR20210017083A (ko) * 2019-08-06 2021-02-17 삼성전자주식회사 퓨즈된 키에 기반하여 증명 인증서를 생성하는 전자 장치 및 방법
CN110782252B (zh) 2019-10-24 2022-09-16 福建福链科技有限公司 一种基于区块链的监控视频数据交易方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023249320A1 (ko) * 2022-06-23 2023-12-28 주식회사 케이티 Dds 통신 방법, 장치 및 시스템

Also Published As

Publication number Publication date
US12003649B2 (en) 2024-06-04
US20220294643A1 (en) 2022-09-15
CN114342317A (zh) 2022-04-12
WO2022010549A1 (en) 2022-01-13
EP4011033A1 (en) 2022-06-15
JP7282982B2 (ja) 2023-05-29
JP2023096089A (ja) 2023-07-06
IL275954A (en) 2022-02-01
JP2022548827A (ja) 2022-11-22

Similar Documents

Publication Publication Date Title
JP7376727B2 (ja) 暗号学的に安全な要求の検証
US11949688B2 (en) Securing browser cookies
JP2023096089A (ja) グループ署名による匿名イベント証明
EP4022845B1 (en) Cryptographically secure data protection
KR102608325B1 (ko) 클라이언트 장치에서 통신의 무결성 보호
JP7389235B2 (ja) 匿名イベント認証
EP4162647B1 (en) Anonymous authentication with token redemption
US12039078B2 (en) Cryptographically secure data protection

Legal Events

Date Code Title Description
E902 Notification of reason for refusal