Local List Mode

클라이언트가 이 모드에서 Google Safe Browsing v5를 사용하기로 선택하면 클라이언트 동작은 v5의 개선된 API 노출 영역을 사용하는 것을 제외하고 v4 업데이트 API와 유사합니다. 클라이언트는 호스트 서픽스/경로 접두사 URL 표현식의 SHA256 해시 접두사로 형식이 지정된 위협 목록 집합을 로컬 데이터베이스에 유지합니다. 클라이언트가 특정 URL을 확인하려고 할 때마다 로컬 위협 목록을 사용하여 확인이 실행됩니다. 일치하는 항목이 있는 경우에만 클라이언트가 서버에 연결하여 검사를 계속합니다.

위와 마찬가지로 클라이언트는 영구 스토리지에 있을 필요가 없는 로컬 캐시도 유지합니다.

로컬 위협 목록 URL 확인 절차

이 절차는 클라이언트가 실시간 모드 절차를 사용하고 UNSURE 값을 반환하는 경우에도 실행됩니다.

이 절차는 단일 URL u를 사용하고 SAFE 또는 UNSAFE를 반환합니다.

  1. expressions을 URL u에 의해 생성된 서픽스/프리픽스 표현식 목록이라고 가정합니다.
  2. expressionHashes를 목록이라고 가정합니다. 여기서 요소는 expressions에 있는 각 표현식의 SHA256 해시입니다.
  3. expressionHashPrefixes를 목록이라고 가정합니다. 여기서 요소는 expressionHashes에 있는 각 해시의 처음 4바이트입니다.
  4. expressionHashPrefixes의 각 expressionHashPrefix에 대해 다음을 실행합니다.
    1. 로컬 캐시에서 expressionHashPrefix을 조회합니다.
    2. 캐시된 항목이 발견되면 다음을 실행합니다.
      1. 현재 시간이 만료 시간보다 큰지 확인합니다.
      2. 더 큰 경우 다음을 실행합니다.
        1. 찾은 캐시 항목을 로컬 캐시에서 삭제합니다.
        2. 루프를 계속 진행합니다.
      3. 더 크지 않은 경우 다음을 실행합니다.
        1. expressionHashPrefixes에서 이 특정 expressionHashPrefix를 삭제합니다.
        2. expressionHashes 내의 해당 전체 해시가 캐시된 항목에 있는지 확인합니다.
        3. 찾은 경우 UNSAFE을 반환합니다.
        4. 찾을 수 없는 경우 루프를 계속합니다.
    3. 캐시된 항목을 찾을 수 없는 경우 루프를 계속합니다.
  5. expressionHashPrefixes의 각 expressionHashPrefix에 대해 다음을 실행합니다.
    1. 로컬 위협 목록 데이터베이스에서 expressionHashPrefix를 조회합니다.
    2. expressionHashPrefix을 로컬 위협 목록 데이터베이스에서 찾을 수 없는 경우 expressionHashPrefixes에서 삭제합니다.
  6. RPC SearchHashes 또는 REST 메서드 hashes.search를 사용하여 expressionHashPrefixes를 Google 세이프 브라우징 v5 서버로 전송합니다. 오류가 발생한 경우 (네트워크 오류, HTTP 오류 등) SAFE를 반환합니다. 그렇지 않으면 응답이 SB 서버에서 수신한 response(위협의 성격(소셜 엔지니어링, 멀웨어 등)을 식별하는 일부 보조 정보와 캐시 만료 시간 expiration이 포함된 전체 해시 목록)이 되도록 합니다.
  7. response의 각 fullHash에 대해 다음을 실행합니다.
    1. expiration와 함께 fullHash를 로컬 캐시에 삽입합니다.
  8. response의 각 fullHash에 대해 다음을 실행합니다.
    1. isFoundexpressionHashes에서 fullHash을 찾은 결과라고 하겠습니다.
    2. isFound이 False이면 루프를 계속합니다.
    3. isFound이 True이면 UNSAFE를 반환합니다.
  9. SAFE를 반환합니다.