웹훅 보안 설정
  • 24 Oct 2024
  • 1 읽을 분
  • 기여자
  • 어두운

웹훅 보안 설정

  • 어두운

기사 요약

*이 페이지의 일부는 기계 번역되었습니다.

소개

이 문서에서는 추가 보안 조치로 웹훅 비밀 토큰을 생성, 설정 및 인증하는 데 필요한 단계를 안내합니다. 이렇게 하면 들어오는 웹훅이 Autify에서 오는지 여부를 확인할 수 있습니다.

웹훅 비밀 토큰

웹후크 비밀 토큰은 엔드포인트에서 수신할 페이로드의 진위 여부를 확인하는 데 사용되는 문자열입니다. 이 값은 사용자가 생성한 다음 Autify에서도 설정해야 합니다.

웹훅 비밀 토큰을 사용하지 않을 때의 위험성

웹훅 비밀 토큰을 사용하지 않으면 다음과 같은 위험이 있습니다:

  • 요청이 당사로부터 오는지 여부를 확인할 수 없음

  • 페이로드가 변조되었는지 여부를 확인할 수 없습니다.

웹훅 비밀 토큰 설정 시 변경 사항

웹훅 비밀 토큰을 설정하면 Autify는 이를 사용하여 각 페이로드에 대한 해시 서명을 생성합니다. 이 서명은 요청의 헤더로 'X-Autify-Signature'로 인코딩됩니다. 각 페이로드에 대한 서명을 계산하기 위해 해시 기반 메시지 인증 코드(HMAC)를 사용합니다.

# Autify 요청 예시
POST /payload HTTP/1.1
Host: localhost:4567
X-Autify-Signature: sha1=7d38cdd689735b008b3c702edd92eea23791c5f6
콘텐츠 유형: application/json

 <페이로드>

웹훅 비밀 토큰 생성 및 정의하기

  1. 웹훅을 설정하려는 워크스페이스의 설정 페이지로 이동합니다.

  2. 문자열을 생성합니다. 무작위로 생성된 값과 같이 추측하기 어려운 값을 사용합니다.

# 무작위 값 생성 예시
$ openssl rand -hex 20b2f82af62f9980f6b01e1cd7e716230d0a063f58
  1. 생성된 값으로 비밀 토큰 필드에 입력합니다.

  2. 생성 또는 업데이트 버튼을 클릭합니다.

웹훅 비밀 토큰으로 페이로드 유효성 검사하기

페이로드는 다음과 같은 방법으로 검증합니다:

  1. 웹후크 비밀 토큰을 사용하여 페이로드에 대한 HMAC 계산하기

  2. (1)에서 얻은 값을 sha1= 끝에 연결합니다.

  3. 수신한 요청 헤더 X-Autify-Signature의 값을 가져옵니다.

  4. (2)와 (3)에서 얻은 값을 비교하여 일치하는지 확인합니다.

    • 참고: 값이 일치하지 않으면 요청이 Autify가 아닌 다른 소스에서 온 것일 수 있습니다.

다음은 각 언어에서 값을 확인하는 방법의 예입니다:

Ruby

$ gem 설치 랙
require 'openssl'
require 'rack'

digest = OpenSSL::HMAC.hexdigest(
  OpenSSL::Digest.new('sha1'),
  '<웹훅 비밀 토큰>',
  '<페이로드>'
)

computed_signature = "sha1=${digest}"
요청_서명 = '<X-Autify-Signature>'

Rack::Utils.secure_compare(
  computed_signature,
  request_signature
)

Node.js

$ npm install crypto
const crypto = require('crypto');

const digest = crypto
  .createHmac('sha1','<웹훅 비밀 토큰>')
  .update('<페이로드>')
  .digest('hex')

const computedSignature = 'sha1=${digest}`
const requestSignature = '<X-Autify-Signature>'

crypto.timingSafeEqual(
  Buffer.from(computedSignature, 'utf8'),
  Buffer.from(requestSignature, 'utf8')
)

이 문서가 도움이 되었습니까?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.