REST Resource: hashList

리소스: HashList

이름으로 식별된 해시 목록입니다.

JSON 표현
{
  "name": string,
  "version": string,
  "partialUpdate": boolean,
  "compressedRemovals": {
    object (RiceDeltaEncoded32Bit)
  },
  "minimumWaitDuration": string,
  "metadata": {
    object (HashListMetadata)
  },

  // Union field compressed_additions can be only one of the following:
  "additionsFourBytes": {
    object (RiceDeltaEncoded32Bit)
  },
  "additionsEightBytes": {
    object (RiceDeltaEncoded64Bit)
  },
  "additionsSixteenBytes": {
    object (RiceDeltaEncoded128Bit)
  },
  "additionsThirtyTwoBytes": {
    object (RiceDeltaEncoded256Bit)
  }
  // End of list of possible types for union field compressed_additions.

  // Union field checksum can be only one of the following:
  "sha256Checksum": string
  // End of list of possible types for union field checksum.
}
필드
name

string

해시 목록의 이름입니다. 글로벌 캐시도 해시 목록일 뿐이며 여기에서 참조할 수 있습니다.

version

string (bytes format)

해시 목록의 버전입니다. 클라이언트는 이러한 바이트를 조작하면 안 됩니다(MUST NOT).

base64 인코딩 문자열입니다.

partialUpdate

boolean

true인 경우 클라이언트가 이미 보유한 항목에 따라 추가 및 삭제가 포함된 부분적인 차이입니다. false인 경우 전체 해시 목록입니다.

false인 경우 클라이언트는 이 해시 목록의 로컬에 저장된 버전을 삭제해야 합니다(MUST). 이는 클라이언트가 소유한 버전이 심각하게 오래되었거나 클라이언트 데이터가 손상된 것으로 판단됨을 의미합니다. compressedRemovals 필드는 비어 있습니다.

true인 경우 클라이언트는 삭제 후 추가를 적용하여 증분 업데이트를 적용해야 합니다(MUST).

compressedRemovals

object (RiceDeltaEncoded32Bit)

삭제 색인의 라이스 델타 인코딩 버전입니다. 각 해시 목록에는 항목이 2^32개 미만이므로 색인은 32비트 정수로 처리되어 인코딩됩니다.

minimumWaitDuration

string (Duration format)

클라이언트는 해시 목록을 다시 가져오려면 이 시간 이상 기다려야 합니다. 생략되거나 0인 경우 클라이언트는 서버에 클라이언트로 전송할 추가 업데이트가 있지만 클라이언트가 지정한 제약 조건으로 인해 불가능하다는 의미이므로 즉시 가져와야 합니다(SHOULD).

소수점 아래가 최대 9자리까지이고 's'로 끝나는 초 단위 기간입니다. 예를 들면 "3.5s"입니다.

metadata

object (HashListMetadata)

해시 목록에 관한 메타데이터입니다. hashList.get 메서드로 채워지지 않고 ListHashLists 메서드로 채워집니다.

통합 필드 compressed_additions. 추가 항목의 라이스 델타 인코딩 버전입니다. 추가의 해시 접두사 길이는 목록의 모든 추가 항목에 균일합니다. 클라이언트가 보낸 desired_hash_length이거나 클라이언트가 해당 필드를 생략한 경우 서버가 선택한 값입니다. compressed_additions은 다음 중 하나일 수 있습니다.
additionsFourBytes

object (RiceDeltaEncoded32Bit)

4바이트 추가

additionsEightBytes

object (RiceDeltaEncoded64Bit)

8바이트 추가

additionsSixteenBytes

object (RiceDeltaEncoded128Bit)

16바이트 추가

additionsThirtyTwoBytes

object (RiceDeltaEncoded256Bit)

32바이트 추가

통합 필드 checksum. 제공된 업데이트를 적용한 후 데이터베이스에 존재하는 모든 해시의 정렬된 목록에 대한 체크섬입니다. 'oneof' 필드를 사용하여 여러 해싱 알고리즘을 허용합니다. 업데이트가 제공되지 않은 경우 서버에서 이 필드를 생략하여 클라이언트가 기존 체크섬을 사용해야 함을 나타낼 수도 있습니다. checksum은 다음 중 하나여야 합니다.
sha256Checksum

string (bytes format)

모든 해시가 정렬된 목록으로, SHA256으로 다시 해싱됩니다.

base64 인코딩 문자열입니다.

RiceDeltaEncoded32비트

Rice-Golomb 인코딩 데이터 해시 또는 삭제 색인에 사용됩니다. 여기서 모든 해시 또는 색인의 길이가 동일하며 이 길이는 정확히 32비트입니다.

일반적으로 모든 항목을 사전순으로 정렬하면 상위 비트가 하위 비트만큼 자주 변경되지 않는다는 것을 알게 됩니다. 즉, 항목 간의 인접한 차이도 취하면 더 높은 비트가 0이 될 확률이 높습니다. 이것은 기본적으로 특정 수의 비트를 선택함으로써 이렇게 높은 0의 확률을 이용합니다. 이보다 중요한 모든 비트는 0일 가능성이 높으므로 단항 인코딩을 사용합니다. riceParameter 필드를 참고하세요.

과거 참고사항: 라이스 델타 인코딩은 이 API의 V4에서 처음 사용되었습니다. V5에서는 두 가지 중요한 개선 사항이 있었습니다. 첫째, 이제 4바이트보다 긴 해시 접두사로 라이스 델타 인코딩을 사용할 수 있습니다. 둘째, 비용이 많이 드는 정렬 단계를 피할 수 있도록 인코딩된 데이터가 이제 big-endian으로 취급됩니다.

JSON 표현
{
  "firstValue": integer,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
필드
firstValue

integer (uint32 format)

인코딩된 데이터 (해시 또는 색인)의 첫 번째 항목 또는 단일 해시 접두사 또는 색인만 인코딩된 경우 해당 항목의 값입니다. 필드가 비어 있으면 항목이 0입니다.

riceParameter

integer

Golomb-Rice 매개변수입니다. 이 매개변수는 3에서 30 사이로 보장됩니다.

entriesCount

integer

인코딩된 데이터에서 델타로 인코딩된 항목 수입니다. 하나의 정수만 인코딩된 경우 0이 되고 단일 값은 firstValue에 저장됩니다.

encodedData

string (bytes format)

Golomb-Rice 코더를 사용하여 인코딩된 델타

base64 인코딩 문자열입니다.

RiceDeltaEncoded64비트

64비트 숫자를 인코딩한다는 점을 제외하고 RiceDeltaEncoded32Bit와 동일합니다.

JSON 표현
{
  "firstValue": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
필드
firstValue

string

인코딩된 데이터의 첫 번째 항목 (해시) 또는 단일 해시 접두사만 인코딩된 경우 해당 항목의 값입니다. 필드가 비어 있으면 항목이 0입니다.

riceParameter

integer

Golomb-Rice 매개변수입니다. 이 매개변수는 35 이상 62 이하입니다.

entriesCount

integer

인코딩된 데이터에서 델타로 인코딩된 항목 수입니다. 하나의 정수만 인코딩된 경우 0이 되고 단일 값은 firstValue에 저장됩니다.

encodedData

string (bytes format)

Golomb-Rice 코더를 사용하여 인코딩된 델타

base64 인코딩 문자열입니다.

RiceDeltaEncoded128비트

128비트 숫자를 인코딩한다는 점을 제외하고 RiceDeltaEncoded32Bit와 동일합니다.

JSON 표현
{
  "firstValueHi": string,
  "firstValueLo": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
필드
firstValueHi

string

인코딩된 데이터 (해시)에서 첫 번째 항목의 상위 64비트입니다. 필드가 비어 있으면 상위 64비트는 모두 0입니다.

firstValueLo

string (uint64 format)

인코딩된 데이터 (해시)의 첫 번째 항목의 하위 64비트입니다. 필드가 비어 있으면 하위 64비트는 모두 0입니다.

riceParameter

integer

Golomb-Rice 매개변수입니다. 이 매개변수는 99 이상 126 이하입니다.

entriesCount

integer

인코딩된 데이터에서 델타로 인코딩된 항목 수입니다. 하나의 정수만 인코딩된 경우 0이 되고 단일 값은 firstValue에 저장됩니다.

encodedData

string (bytes format)

Golomb-Rice 코더를 사용하여 인코딩된 델타

base64 인코딩 문자열입니다.

RiceDeltaEncoded256비트

256비트 숫자를 인코딩한다는 점을 제외하고 RiceDeltaEncoded32Bit와 동일합니다.

JSON 표현
{
  "firstValueFirstPart": string,
  "firstValueSecondPart": string,
  "firstValueThirdPart": string,
  "firstValueFourthPart": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
필드
firstValueFirstPart

string

인코딩된 데이터 (해시)의 첫 번째 항목의 처음 64비트입니다. 필드가 비어 있으면 첫 64비트는 모두 0입니다.

firstValueSecondPart

string (uint64 format)

인코딩된 데이터 (해시)의 첫 번째 항목의 65~128번째 비트입니다. 필드가 비어 있으면 65~128비트는 모두 0입니다.

firstValueThirdPart

string (uint64 format)

인코딩된 데이터 (해시)의 첫 번째 항목의 129~192번째 비트입니다. 필드가 비어 있으면 129에서 192번째 비트는 모두 0입니다.

firstValueFourthPart

string (uint64 format)

인코딩된 데이터 (해시)의 첫 번째 항목의 마지막 64비트입니다. 필드가 비어 있으면 마지막 64비트는 모두 0입니다.

riceParameter

integer

Golomb-Rice 매개변수입니다. 이 매개변수는 227과 254 사이로 보장됩니다.

entriesCount

integer

인코딩된 데이터에서 델타로 인코딩된 항목 수입니다. 하나의 정수만 인코딩된 경우 0이 되고 단일 값은 firstValue에 저장됩니다.

encodedData

string (bytes format)

Golomb-Rice 코더를 사용하여 인코딩된 델타

base64 인코딩 문자열입니다.

HashListMetadata

특정 해시 목록에 관한 메타데이터입니다.

JSON 표현
{
  "threatTypes": [
    enum (ThreatType)
  ],
  "likelySafeTypes": [
    enum (LikelySafeType)
  ],
  "mobileOptimized": boolean,
  "description": string,
  "supportedHashLengths": [
    enum (HashLength)
  ]
}
필드
threatTypes[]

enum (ThreatType)

순서가 지정되지 않은 목록입니다. 비어 있지 않으면 해시 목록이 일종의 위협 목록임을 나타내며 이 해시 목록의 해시 또는 해시 접두사와 관련된 위협의 종류를 나열합니다. 항목이 위협을 나타내지 않는 경우(즉, 안전한 유형을 나타내는 경우) 비어 있을 수 있습니다.

likelySafeTypes[]

enum (LikelySafeType)

순서가 지정되지 않은 목록입니다. 비어 있지 않으면 해시 목록이 안전한 해시 목록을 나타내도록 지정하며 안전한 것으로 간주되는 방식을 나열합니다. 이 필드는 ThreatTypes 필드와 상호 배타적입니다.

mobileOptimized

boolean

이 목록이 휴대기기 (Android 및 iOS)에 최적화되었는지 여부입니다.

description

string

이 목록에 대한 사람이 읽을 수 있는 설명입니다. 영어로 작성됨.

supportedHashLengths[]

enum (HashLength)

이 해시 목록에 지원되는 해시 길이입니다. 각 해시 목록은 길이를 하나 이상 지원합니다. 따라서 이 필드는 비어 있지 않습니다.

ThreatType

위협 유형.

열거형
THREAT_TYPE_UNSPECIFIED 알 수 없는 위협 유형입니다. 서버에서 이를 반환하면 클라이언트는 둘러싸고 있는 FullHashDetail를 모두 무시합니다.
MALWARE

멀웨어 위협 유형. 멀웨어란 컴퓨터, 휴대기기, 실행 중인 소프트웨어 또는 사용자에게 해를 끼치기 위해 설계된 소프트웨어 또는 모바일 애플리케이션입니다. 멀웨어는 사용자의 동의 없이 소프트웨어를 설치하거나 바이러스와 같은 유해한 소프트웨어를 설치하는 등 악의적인 방식으로 작동합니다.

자세한 정보는 여기를 참조하세요.

SOCIAL_ENGINEERING

소셜 엔지니어링 위협 유형. 소셜 엔지니어링 페이지는 시청자가 제3자의 실제 대리인만 믿고 맡길 수 있는 작업을 시청자로 유도할 목적으로 제3자를 대신한다고 허위로 주장합니다. 피싱은 시청자를 속여 로그인 사용자 인증 정보와 같은 특정 정보를 제공하게 하는 소셜 엔지니어링의 한 유형입니다.

자세한 정보는 여기를 참조하세요.

UNWANTED_SOFTWARE 원치 않는 소프트웨어 위협 유형 원치 않는 소프트웨어란 Google의 소프트웨어 정책은 준수하지 않지만 멀웨어는 아닌 모든 소프트웨어를 말합니다.
POTENTIALLY_HARMFUL_APPLICATION Play 스토어에 Google Play 프로텍트에서 사용하는 잠재적으로 위험한 애플리케이션 위협 유형입니다.

LikelySafeType

안전할 것 같은 사이트의 유형

SearchHashesResponse에는 의도적으로 LikelySafeType가 포함되지 않았습니다.

열거형
LIKELY_SAFE_TYPE_UNSPECIFIED 알 수 없음
GENERAL_BROWSING 이 사이트는 일반 브라우징용으로 충분히 안전할 수 있습니다. 이를 전역 캐시라고도 합니다.
CSD 이 사이트는 클라이언트 측 감지 모델이나 비밀번호 보호 검사를 실행할 필요가 없을 만큼 안전합니다.
DOWNLOAD 이 사이트는 안전할 만큼 충분히 안전하므로 사이트에서 다운로드한 항목은 확인하지 않아도 됩니다.

HashLength

해시 목록에 있는 해시의 길이입니다.

열거형
HASH_LENGTH_UNSPECIFIED 길이가 지정되지 않았습니다. 서버는 이 값을 클라이언트에 대한 응답으로 supportedHashLengths 필드에 반환하지 않지만 클라이언트는 이 값을 서버(desiredHashLength 필드)로 전송할 수 있습니다. 이 경우 서버는 자동으로 값을 선택합니다. 클라이언트는 서버가 값을 선택하도록 해야 합니다(SHOULD).
FOUR_BYTES 각 해시는 4바이트 접두사입니다.
EIGHT_BYTES 각 해시는 8바이트 접두사입니다.
SIXTEEN_BYTES 각 해시는 16바이트 접두사입니다.
THIRTY_TWO_BYTES 각 해시는 32바이트 전체 해시입니다.

메서드

get

해시 목록의 최신 콘텐츠를 가져옵니다.