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

Cloudflare Workers로 웹훅 보안 강화: Didit 통합 가이드 (KO)

Cloudflare Workers를 활용하여 Didit 신원 확인을 위한 강력하고 안전한 웹훅 엔드포인트를 구축하는 방법을 알아보세요. 이 가이드는 HMAC 서명 확인, 타임스탬프 유효성 검사 및 웹훅을 보호하기 위한 모범 사례를 다룹니다.

작성자: Didit업데이트됨
securing-webhooks-with-cloudflare-workers-a-didit-integration-guide.png

Cloudflare Workers로 보안 강화 Cloudflare Workers는 웹훅을 안전하게 처리하기 위한 이상적인 서버리스 환경을 제공하며, 엣지 수준의 보호와 효율적인 서명 확인을 지원합니다.

HMAC 서명 확인의 중요성 수신되는 웹훅의 HMAC-SHA256 서명을 항상 확인하여 무단 데이터 삽입이나 변조를 방지하고, 웹훅의 진위 여부와 무결성을 보장해야 합니다.

타임스탬프 유효성 검사로 재전송 공격 완화 웹훅 요청이 최신 상태인지 확인하는 타임스탬프 검사를 구현하여 악의적인 행위자가 오래된 합법적인 요청을 재전송하는 재전송 공격으로부터 보호합니다.

Didit으로 안전한 신원 확인 간소화 Didit의 AI 기반 플랫폼은 모든 신원 확인 제품에 대해 강력하고 실시간 웹훅 알림을 제공하여 애플리케이션에 안전하고 신뢰할 수 있는 데이터 전송을 보장합니다.

오늘날 상호 연결된 디지털 환경에서 웹훅은 서비스 간 실시간 통신의 초석입니다. 웹훅은 신원 확인 결과, 결제 확인, 사용자 활동과 같은 이벤트에 대한 즉각적인 알림을 가능하게 합니다. 그러나 웹훅의 편리함에는 수신된 데이터의 진위와 무결성을 보장하는 중요한 보안 문제가 따릅니다. 적절한 보호 조치 없이는 애플리케이션이 스푸핑, 변조 또는 재전송 공격에 취약해질 수 있습니다.

이 가이드에서는 Cloudflare Workers를 사용하여 Didit 신원 확인을 위한 안전한 웹훅 엔드포인트를 구축하는 과정을 안내합니다. Cloudflare Workers는 엣지에서 강력한 서버리스 플랫폼을 제공하여 최소한의 지연 시간과 최대의 안정성으로 웹훅을 처리하고 보호하는 데 이상적입니다. AI 기반 신원 플랫폼인 Didit은 실시간 KYC 알림을 전달하기 위해 보안 웹훅에 의존하므로, Didit의 강력한 신원 확인 솔루션을 활용하는 모든 비즈니스에 이 통합이 중요합니다.

웹훅을 보호해야 하는 이유

사용자가 신원 확인에 실패했는데도 성공했다고 거짓으로 주장하는 웹훅 알림을 받는다고 상상해 보세요. 또는 악의적인 행위자가 오래된 합법적인 웹훅을 재전송하여 시스템에서 특정 작업을 여러 번 트리거할 수도 있습니다. 이러한 시나리오는 웹훅 보안의 중요한 필요성을 강조합니다.

웹훅 엔드포인트에 대한 주요 위협은 다음과 같습니다:

  • 스푸핑: 공격자가 Didit인 척 가장하여 가짜 웹훅을 보내 시스템이 무단 작업을 수행하도록 속입니다.
  • 변조: 공격자가 합법적인 웹훅을 가로채서 서버에 도달하기 전에 페이로드를 수정합니다.
  • 재전송 공격: 공격자가 합법적인 웹훅을 캡처하여 나중에 다시 보내 동일한 작업을 다시 트리거하여 중복 트랜잭션 또는 기타 문제를 유발할 수 있습니다.

웹훅을 보호하는 것은 발신자의 신원을 확인하고 데이터가 변경되지 않았음을 확인하는 것을 포함합니다. Didit은 HMAC-SHA256 서명 및 타임스탬프 유효성 검사를 통해 이를 위한 강력한 메커니즘을 제공하며, 이를 Cloudflare Worker에 구현할 것입니다.

Didit 웹훅 비밀 설정

Didit 웹훅을 확인하기 전에 고유한 웹훅 비밀 키가 필요합니다. 이 키는 암호화 서명 확인에 가장 중요합니다. 검색 방법은 다음과 같습니다:

  1. Didit 콘솔에 로그인합니다.
  2. 설정API 키로 이동합니다.
  3. 웹훅 비밀 키를 복사합니다.

이 비밀 키는 안전하게 저장되어야 하며 공개적으로 노출되어서는 안 됩니다. Cloudflare Workers의 경우, Worker 비밀 또는 환경 변수로 저장하는 것이 가장 좋습니다.

Didit 웹훅을 위한 안전한 Cloudflare Worker 구축

Cloudflare Workers는 Cloudflare의 글로벌 네트워크에서 사용자에게 가까이 실행되는 JavaScript, TypeScript 또는 WebAssembly 애플리케이션입니다. 이는 수신 웹훅 요청을 처리하는 데 매우 빠르고 확장성이 뛰어납니다. Didit 웹훅을 안전하게 처리하는 Worker를 만드는 단계별 가이드입니다.

1. Cloudflare Worker 생성

먼저 새 Cloudflare Worker 프로젝트를 설정합니다. wrangler CLI 도구를 사용하여 이 작업을 수행할 수 있습니다:

npx wrangler generate didit-webhook-handler
cd didit-webhook-handler

2. Didit 웹훅 비밀을 Cloudflare Secret으로 추가

웹훅 비밀을 안전하게 유지하려면 Worker에 비밀로 추가합니다:

npx wrangler secret put DIDIT_WEBHOOK_SECRET

프롬프트가 표시되면 Didit 콘솔에서 웹훅 비밀 키를 붙여넣습니다.

3. index.js에 웹훅 로직 구현

Worker의 index.js 파일에는 Didit 웹훅을 수신, 유효성 검사 및 처리하는 로직이 포함됩니다. 핵심 단계는 다음과 같습니다:

  1. 원시 요청 본문 읽기: HMAC 서명은 원시 요청 본문에서 생성되므로 확인 전에 구문 분석하지 않는 것이 중요합니다.
  2. HMAC-SHA256 서명 확인: X-Signature 헤더에 제공된 서명을 DIDIT_WEBHOOK_SECRET 및 원시 요청 본문을 사용하여 생성한 서명과 비교합니다.
  3. 타임스탬프 유효성 검사: X-Timestamp 헤더를 확인하여 요청이 최신 상태인지 확인(예: 5분 이내)하여 재전송 공격을 방지합니다.
  4. JSON 구문 분석 및 처리: 확인이 통과되면 JSON 본문을 구문 분석하고 신원 확인 결과를 처리합니다.

다음은 Worker 코드의 기본 예시입니다:

import { createHmac } from 'crypto'; // Cloudflare Workers provide 'crypto' module

export default {
  async fetch(request, env, ctx) {
    if (request.method !== 'POST') {
      return new Response('Method Not Allowed', { status: 405 });
    }

    const diditWebhookSecret = env.DIDIT_WEBHOOK_SECRET;
    if (!diditWebhookSecret) {
      return new Response('Webhook secret not configured', { status: 500 });
    }

    const signature = request.headers.get('X-Signature');
    const timestamp = request.headers.get('X-Timestamp');
    const rawBody = await request.text();

    if (!signature || !timestamp || !rawBody) {
      return new Response('Missing required webhook headers or body', { status: 400 });
    }

    // 1. Validate Timestamp (e.g., within 5 minutes)
    const FIVE_MINUTES_IN_SECONDS = 300;
    const currentTimestamp = Math.floor(Date.now() / 1000);
    if (Math.abs(currentTimestamp - parseInt(timestamp, 10)) > FIVE_MINUTES_IN_SECONDS) {
      return new Response('Webhook timestamp too old or in the future', { status: 403 });
    }

    // 2. Verify HMAC-SHA256 Signature
    const expectedSignature = createHmac('sha256', diditWebhookSecret)
      .update(`${timestamp}.${rawBody}`)
      .digest('hex');

    if (expectedSignature !== signature) {
      return new Response('Invalid webhook signature', { status: 403 });
    }

    // 3. Process the webhook payload
    try {
      const payload = JSON.parse(rawBody);
      // Log or process the payload, e.g., update user status in your database
      console.log('Received Didit webhook:', payload);

      // Example: Accessing verification status
      if (payload.event === 'session.completed' && payload.data.status === 'approved') {
        console.log(`User ${payload.data.vendor_data} successfully verified.`);
        // Trigger further actions like granting access or updating user profile
      }
      // Didit offers various products like ID Verification, Passive & Active Liveness, and AML Screening.
      // The webhook payload will reflect results from these checks.

      return new Response('Webhook processed successfully', { status: 200 });
    } catch (error) {
      console.error('Error parsing webhook body:', error);
      return new Response('Error parsing JSON payload', { status: 400 });
    }
  },
};

4. Worker 배포

코드가 준비되면 Cloudflare에 배포합니다:

npx wrangler deploy

배포 후 Cloudflare는 Worker의 URL을 제공합니다. 이 URL은 Didit 콘솔에서 웹훅을 수신하도록 구성할 엔드포인트입니다.

웹훅 전송을 위한 Didit 구성

안전한 Cloudflare Worker가 배포되었으므로, 마지막 단계는 Didit에게 실시간 알림을 보낼 위치를 알려주는 것입니다:

  1. Didit 콘솔로 돌아갑니다.
  2. 워크플로우로 이동하여 구성하려는 워크플로우를 선택합니다 (예: Didit의 ID 확인 및 수동 및 능동 생체 인식 기능을 사용하는 KYC 워크플로우).
  3. 워크플로우 설정에서 웹훅 URL 구성을 찾습니다.
  4. 배포된 Cloudflare Worker의 URL을 입력합니다.
  5. 변경 사항을 저장합니다.

이제 신원 확인 세션이 완료되거나 상태가 변경될 때마다 Didit은 안전한 웹훅 알림을 Cloudflare Worker로 보내고, Worker는 이를 확인하고 처리합니다.

Didit이 어떻게 도움이 되는가

Didit은 보안과 개발자 경험을 핵심으로 설계되었습니다. 당사의 AI 기반 신원 플랫폼은 복잡한 확인 워크플로우를 쉽게 구성할 수 있는 모듈식 아키텍처를 제공합니다. 웹훅에 관해서는 Didit이 다음을 통해 프로세스를 간소화합니다:

  • 안전한 웹훅 알림 제공: 모든 Didit 웹훅은 HMAC-SHA256 서명으로 서명되며 타임스탬프를 포함하여 수신하는 데이터의 진위와 무결성을 보장합니다. 이는 데이터 정확성이 가장 중요한 ID 확인, 1:1 얼굴 일치 및 AML 심사와 같은 제품에 중요합니다.
  • 실시간 업데이트: 확인 프로세스의 모든 단계에 대한 즉각적인 알림을 받아 애플리케이션이 사용자 확인 결과에 즉시 반응할 수 있도록 합니다.
  • 포괄적인 데이터: 웹훅 페이로드에는 수동 및 능동 생체 인식, 전화 및 이메일 확인, 주소 증명과 같은 다양한 Didit 제품의 결과를 포함하여 확인 세션에 대한 모든 필요한 세부 정보가 포함됩니다.
  • 개발자 우선 접근 방식: Didit은 즉각적인 샌드박스, 명확한 공개 문서 및 깔끔한 API를 제공하여 통합을 간단하게 만듭니다. 무료 핵심 KYC 계층과 설정 비용이 없는 성공적인 검사당 지불 모델을 통해 쉽게 시작하고 확장할 수 있습니다.

Didit 웹훅을 안전한 Cloudflare Worker와 통합함으로써 실시간 신원 확인 업데이트를 위한 탄력적이고 신뢰할 수 있는 채널을 구축하여 비즈니스와 사용자를 보호할 수 있습니다.

시작할 준비가 되셨습니까?

Didit의 작동 방식을 보시겠습니까? 오늘 무료 데모를 받아보세요.

Didit의 무료 계층으로 무료로 신원 확인을 시작하세요.

신원 및 사기 방지 인프라.

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

AI에게 이 페이지 요약 요청
Cloudflare Workers로 웹훅 보안 강화: Didit 통합 가이드.