본문으로 건너뛰기
Didit, 신원·사기 방지 인프라 구축 위해 750만 달러 투자 유치
Didit
블로그로 돌아가기
블로그 · 2026년 8월 4일

안면 검색 1:N: 한 사람이 제어하는 모든 계정 찾기 (KO)

API 호출 한 번으로 보유한 모든 인증된 사용자 중에서 얼굴을 검색하고, 사용자 정의 식별자가 첨부된 모든 일치 계정을 반환합니다. Didit 인증으로 무료 제공 — 계정 목록을 행위자 맵으로 변환하는 기본 기능입니다.

작성자: Didit업데이트됨
face-search-duplicate-account-detection.png

플랫폼에서 40개의 계정을 운영하는 운영자는 40개의 이메일 주소, 아마도 40개의 결제 수단, 그리고 40개의 장치를 가지고 있을 것입니다. 하지만 40개의 얼굴은 가지고 있지 않습니다.

접근 흐름의 어느 부분이든 셀카를 캡처한다면, 당신은 이미 복제하기 정말 비싼 단 하나의 식별자를 가지고 있는 것입니다. 안면 검색 1:N은 이를 사용하는 호출입니다. 한 번의 요청, 하나의 얼굴, 그리고 동일한 사람이 인증한 당신 시스템의 모든 계정이 돌아옵니다.

Didit 신원 인증 시 무료이며, 2초 이내에 결과를 반환하고, 인증 세션 중 라이브니스(Liveness) 단계에서 자동으로 실행됩니다.

주요 내용

  • POST /v3/face-search/는 공유된 전역 인덱스가 아닌, 자체 애플리케이션이 등록한 얼굴(save_api_request=true로 실행된 세션)을 대상으로 얼굴을 검색합니다.
  • 일치하는 결과는 각 항목에 자체 vendor_data와 함께 반환되므로, 결과가 계정 ID에 직접 매핑됩니다.
  • 두 가지 모드: 중복 제거 및 재방문 사용자 감지를 위한 most_similar, 차단 목록 스크리닝을 위한 blocklisted_or_approved.
  • status는 차단 목록 일치 시에만 "Declined"입니다. 중복은 DUPLICATED_FACE 경고와 함께 "Approved"를 반환합니다. 이는 정보 제공용이며, 중복 제거 정책은 사용자에게 달려 있기 때문입니다.
  • 응답은 배열이 아닌 단일 face_search 객체입니다. 이 점은 혼동을 줄 수 있습니다.
  • Didit 인증 시 무료입니다. 2초 미만의 응답 시간을 제공하며, 라이브니스 단계에서 자동으로 실행됩니다.

1:N의 의미와 올바른 도구인 이유

1:1 안면 매칭은 "이것이 이 문서에 있는 사람인가?"라는 질문에 답합니다. 이는 인증 질문이며, 온보딩 중에 실행됩니다.

1:N 검색은 다른 질문에 답합니다. "내가 이미 인증한 모든 사람들 중에서, 이 사람이 그들 중 한 명인가?" 하나의 이미지가 입력되면, 인덱스에 있는 모든 일치 항목이 나옵니다.

조직적인 계정 남용의 경우, 두 번째 질문이 중요합니다. Anthropic의 증류 캠페인 보고서는 공유된 결제 수단, 조정된 타이밍, 공유된 인프라와 같은 관계형 신호에서 구축된 속성을 설명했습니다. 생체 인식 1:N 검색은 운영자가 복제해야 하는 가장 비싼 식별자에서 얻은 동일한 종류의 신호입니다.

인덱스는 귀하의 것입니다. 안면 검색은 이전 인증(save_api_request=true로 실행된 세션 또는 save_api_request=true가 포함된 수동 라이브니스)을 통해 자체 애플리케이션이 등록한 얼굴을 대상으로 실행됩니다. 다른 Didit 고객의 사용자를 대상으로 하는 검색이 아닙니다. 얼굴을 등록하지 않았다면 검색할 것이 없습니다.

API

요청

curl -X POST 'https://verification.didit.me/v3/face-search/' \
  -H 'x-api-key: YOUR_API_KEY' \
  -F 'user_image=@./selfie.jpg' \
  -F 'search_type=most_similar' \
  -F 'save_api_request=true' \
  -F 'vendor_data=acct_8842'

multipart/form-data 형식이며, x-api-key로 인증됩니다.

필수: user_image — jpg, jpeg, png, tiff 또는 webp 형식, 최대 5MB. PDF는 허용되지 않습니다. 이미지에는 최소한 하나의 감지 가능한 얼굴이 포함되어야 합니다. 여러 얼굴이 있는 경우, 가장 큰 경계 상자가 선택됩니다.

선택 사항:

  • search_type — 중복 제거 및 재방문 사용자 감지를 위한 most_similar(기본값) 또는 차단 목록 스크리닝을 위한 blocklisted_or_approved.
  • save_api_request — 이 이미지를 인덱스에 등록합니다.
  • vendor_data — 주제에 대한 자체 식별자.

응답

응답은 단일 face_search 객체를 포함합니다. 대부분의 Didit 기능은 복수 배열을 반환하므로, 파서를 작성하기 전에 이 형식을 주의 깊게 읽어볼 가치가 있습니다.

{
  "request_id": "...",
  "face_search": {
    "status": "Approved",
    "total_matches": 12,
    "matches": [
      {
        "session_id": "...",
        "session_number": 4471,
        "similarity_percentage": 97.4,
        "vendor_data": "acct_3310",
        "verification_date": "2026-06-02T09:14:00Z",
        "user_details": { },
        "match_image_url": "...",
        "status": "Approved",
        "is_blocklisted": false
      }
    ],
    "user_image": { "entities": [] },
    "warnings": []
  }
}

조사에 사용되는 필드:

  • total_matches — 이 얼굴을 공유하는 계정 수.
  • 각 일치 항목의 vendor_data — 귀하의 식별자이므로, 일치 목록이 즉시 계정 목록이 됩니다.
  • similarity_percentage — 각 개별 일치의 강도.
  • verification_date — 타임라인. 11개월에 걸쳐 인증된 12개의 계정은 한 오후에 인증된 12개의 계정과 다르게 해석됩니다.
  • is_blocklisted — 이 일치 항목이 이미 차단 목록에 있는지 여부.
  • session_id — 해당 세션이 캡처한 모든 다른 정보(장치 및 네트워크 경고 포함)로 연결되는 피벗.

상태 의미론

이것이 전체 엔드포인트에서 가장 중요한 동작입니다.

status는 적어도 하나의 차단 목록 일치 항목이 발견될 때만 "Declined"입니다. 순수한 중복 일치는 "Approved"를 반환합니다.

중복은 거부가 아닙니다. 정보입니다. Didit은 중복에 대한 결정을 고의로 당신에게 맡깁니다. 중복에는 합법적인 설명이 있을 수 있으며, 당신의 제품 규칙을 아는 것은 당신뿐이기 때문입니다.

경고

경고의미
FACE_IN_BLOCKLIST확실한 차단 목록 일치 — 거부
POSSIBLE_FACE_IN_BLOCKLIST정확한 임계값 미만의 경계 일치 — 수동 검토로 라우팅
DUPLICATED_FACE이 얼굴은 다른 vendor_data로 이미 인증됨
POSSIBLE_DUPLICATED_FACE경계 중복
MULTIPLE_FACES_DETECTED제출된 이미지에 여러 얼굴 감지됨

실패 모드

  • HTTP 400user_image에서 얼굴이 감지되지 않음. 재촬영 요청.
  • HTTP 403 — 크레딧 부족.
  • status: "Declined"FACE_IN_BLOCKLIST — 확실한 일치. 거부.
  • POSSIBLE_FACE_IN_BLOCKLIST — 정확한 임계값 미만. 수동 검토.
  • DUPLICATED_FACE — 다른 vendor_data로 이미 인증됨. 정책에 따라 병합, 차단 또는 허용.

자동 경로

대부분의 경우 엔드포인트를 호출할 필요가 없습니다. 안면 검색은 인증 세션 내에서 라이브니스 단계 중 자동으로 실행됩니다.

  • 얼굴 생체 인식이 이전에 인증된 모든 사용자와 비교됩니다.
  • 잠재적인 중복 계정은 얼굴 유사성으로 식별됩니다.
  • 구성된 유사성 임계값에 따라 일치 항목에 플래그가 지정됩니다.
  • 얼굴은 차단 목록과 대조되며, 차단 목록 일치 시 자동으로 인증이 거부됩니다.

따라서 전체 인증을 이미 실행하는 모든 계층에서 중복 감지는 추가 비용이나 추가 호출 없이 포함됩니다. 독립형 엔드포인트는 세션 흐름이 다루지 않는 경우(사후 계정 조사, 다른 방법으로 얻은 이미지 스크리닝 또는 search_type을 전환하여 이미 보유한 이미지에 대한 차단 목록 중심 검색 실행)를 위한 것입니다.

일치 항목을 행위자 맵으로 변환

하나의 의심스러운 계정에서 시작하는 실용적인 워크플로:

  1. 얼굴을 검색합니다. total_matches: 12 — 12개의 계정, 한 사람.
  2. vendor_data를 읽습니다. 12개의 자체 계정 ID, 조인 필요 없음.
  3. 타임라인을 읽습니다. verification_date 값을 클러스터링합니다. 짧은 시간 내에 생성된 계정은 수년에 걸쳐 생성된 계정과 운영상 다릅니다.
  4. session_id를 기준으로 피벗합니다. 각 세션의 장치 및 네트워크 경고를 가져옵니다. DUPLICATED_DEVICE_FINGERPRINT를 공유하는 얼굴은 클러스터를 강화합니다. 관련 없는 장치의 계정은 다른 배열일 수 있습니다.
  5. 확장합니다. 4단계에서 드러난 장치 및 IP 범위는 안면 검색에서 놓쳤던 계정을 끌어들일 것입니다. 이는 다른 사람이 해당 확인을 완료했기 때문입니다.
  6. 한 번 결정하고 식별자 전반에 걸쳐 적용합니다. 클러스터가 남용으로 확인되면, 확인된 reference_session_id를 관심 있는 각 항목 유형 차단 목록(얼굴, 장치, IP, 이메일, 전화, 문서)에 게시합니다. 각 목록당 한 번의 호출이며, 각 호출은 해당 세션에서 올바른 값을 자동으로 추출하므로 수동으로 다시 입력할 필요가 없습니다.

여섯 단계, 하나의 시작점, 그리고 어떤 프롬프트 검사도 없습니다. 트래픽 계층은 이 계정에 뭔가 문제가 있다고 알려줍니다. 이것은 실제로 얼마나 많은 계정인지를 알려줍니다.

명확히 말할 가치가 있습니다. 1:N 안면 검색은 모델 추출을 방지하지 않으며 감지하지도 않습니다. 안면 검색은 API 트래픽에 대한 가시성이 없습니다. 계정을 사람으로 해결하여, 단일 행이 아닌 전체 클러스터에 걸쳐 경고에 조치할 수 있게 합니다. 모델 수준 출력 제어 및 의미론적 트래픽 감지는 별도의 계층이며, 모델 제공업체의 책임으로 남아 있습니다.

사용 사례

AI API 플랫폼은 행동 경고를 운영자가 제어하는 전체 계정 세트로 해결합니다.

무료 등급 및 크레딧 남용 — 한 사람이 여러 시험 계정을 사용하는 것은 위험도가 낮은 동일한 감지 문제입니다.

마켓플레이스 및 긱 플랫폼은 금지된 판매자, 운전자 또는 배달원이 재등록하는 것을 적발합니다.

iGaming은 단일 계정 규칙 및 자가 배제를 시행합니다. 여기서 재방문하는 배제된 플레이어는 단순한 남용 사례가 아니라 규제 실패입니다.

금융 서비스는 하나의 실제 얼굴이 여러 조작된 신원에 걸쳐 확산되는 합성 신원 조직을 식별합니다.

자주 묻는 질문

제 얼굴 인덱스가 다른 Didit 고객과 공유되나요?

아니요. 안면 검색은 자체 인증을 통해 자체 애플리케이션이 구축한 인덱스를 대상으로 실행됩니다. 이는 고객 간 검색이 아닙니다.

어떤 것이 얼굴이 인덱스에 들어가는지 제어하나요?

인증 세션 또는 수동 라이브니스 호출에서 save_api_request=true입니다. 생체 인식 데이터 처리에 대한 자체 개인 정보 보호 고지 및 법적 근거에 따라 무엇을 등록하고 보존을 제어할지 결정합니다.

어떤 유사성 임계값을 사용해야 하나요?

튜닝이 적용되는 부분을 인지하십시오. 독립형 엔드포인트에서는 확인된 일치 항목(FACE_IN_BLOCKLIST, DUPLICATED_FACE)과 가능한 일치 항목(POSSIBLE_FACE_IN_BLOCKLIST, POSSIBLE_DUPLICATED_FACE)을 구분하는 유사성 대역이 내부적으로 고정되어 있습니다. 애플리케이션별 임계값 튜닝은 워크플로 라이브니스 검사에 적용되며 POST /v3/face-search/에는 적용되지 않습니다. 따라서 독립형 경로에서는 각 일치 항목의 similarity_percentage를 읽고 애플리케이션 로직에서 자체 기준을 적용하며, POSSIBLE_* 경고를 거부 대기열이 아닌 검토 대기열로 처리하십시오.

대규모 환경에서 얼마나 빠릅니까?

2초 미만의 응답 시간.

Didit 인증을 거치지 않은 얼굴도 검색할 수 있나요?

예. 허용된 형식의 모든 user_image가 작동합니다. 얼굴이 감지되지 않으면 호출은 HTTP 400을 반환합니다.

정말 무료인가요?

예. 안면 검색 1:N은 Didit 신원 인증 시 무료입니다. 검색당 요금은 없습니다. 인덱스를 구축하는 인증에 대해 비용을 지불하며, 전체 번들의 경우 $0.33이고 매월 첫 500회는 무료입니다.

같은 사람이 합법적으로 두 개의 계정을 가지고 있다면 어떻게 되나요?

그렇다면 DUPLICATED_FACE는 의도된 정보 신호 그대로입니다. 이것이 거부되지 않는 이유입니다. 제품 규칙에 따라 병합하거나, 허용하거나, 사용자에게 문의하십시오.

시작할 준비가 되셨나요?

안면 검색은 별도의 제품을 구매할 필요 없이 모든 Didit 계정에서 사용할 수 있습니다.

신원 및 사기 방지 인프라.

KYC, KYB, 거래 모니터링, 지갑 심사를 위한 단일 API. 5분 만에 통합하세요.

AI에게 이 페이지 요약 요청
중복 계정 감지를 위한 안면 검색 1:N | Didit.