Webhookのセキュリティ:HMAC署名

Webhookのセキュリティ:HMAC署名

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

プロジェクト、タスク、課題の Webhook を HMAC-SHA 256(SHA 256 を使用したハッシュベースメッセージ認証コード)で保護できます。Zoho プロジェクトでは、Webhook の真正性と完全性を確保・維持するための業界標準のハッシュ方式である HMAC-SHA 256 を使用して Webhook を保護することができます。

HMAC では次の点を確認できます:
  1. Webhook リクエストが Zoho プロジェクトから送信されたものかどうか(シークレットキーは Zoho プロジェクトと受信アプリケーションのみが知っている必要があります)。
  2. Webhook の内容が送信途中で改ざんされていないかどうか。

Webhook を保護する理由

Webhook は、あるアプリケーションから別のアプリケーションにリアルタイムデータを提供するための HTTP リクエストです。セキュリティ攻撃では、攻撃者が不正な Webhook を送信して正規のプロバイダーになりすまし、機密データを取得することが容易にできます。そのため、アプリが信頼できる送信元からの正規の処理のみを受信し、偽のリクエストや悪意のあるリクエストにだまされないよう、Webhook を保護する必要があります。

メリット:

  1. レポートへの誤ったデータの反映を防止
  2. 不正な更新を防止
  3. セキュリティ侵害を防止

Webhook セキュリティを有効にする

ユーザーは、Webhook の追加時または編集時に Webhook セキュリティ設定を有効にできます。
  1. [設定]>[自動化 / Issue Tracker]>[Webhook]に移動します。
  2. 新規 Webhook の場合は、Webhook フォームに詳細を入力し、[セキュリティ設定]をオンに切り替えます。既存の Webhook の場合は、セキュリティを有効にする Webhook を選択します。
  3. HMAC キーを入力します。[生成]をクリックして HMAC キーを生成することもできます。
  4. [保存]をクリックします。
Notes
HMAC キーの長さは 16~128 文字である必要があります。

Zoho プロジェクトでの Webhook セキュリティの仕組み

Zoho プロジェクトから Webhook が送信されると、X-ZP-Webhook-署名 という名前の HMAC 署名がリクエストヘッダーに含まれます。Webhook リクエストを受信したアプリケーションは、同じシークレットキーを使用して HMAC 署名を生成し、リクエストヘッダーに含まれる値と比較します。値が一致する場合はデータは正当であり、一致しない場合はデータが改ざんされています。

HMAC 署名の生成

Zoho プロジェクトは、HMAC-SHA256 アルゴリズムを使用して Webhook データの内容の署名を計算し、その結果を base64 形式でリクエストヘッダーに送信します。以下はサンプルデータを用いた説明です。

データの内容
{{'requests':{'request_name':'テスト 名前'},'通知': {'operation_type':'RequestSigningSuccess'}}
secret_key
  thisisthesamplekeyfortestingpurposes
base64encode(HMAC SHA-256(データの内容+secret_key))
drbSrM4H816RYKpZiRBLddUa0yHaTrwjtY04sIZFZus=

Webhook リクエストヘッダー(HMAC ヘッダー)がどのように表示されるかのイメージは次のとおりです。

受信アプリケーションでの HMAC 署名の検証

  1. JSON 形式で読み込む際にキーの順序が変わらないよう、データの内容は文字列として読み取る必要があります。
  2. シークレットキーを使用してデータの内容の HMAC SHA-256 ハッシュを計算し、その結果を base64 エンコードします。
  3. 手順 2 で取得した値と、受信した HMAC ヘッダー(X-ZP-Webhook-署名)の値を比較します。一致しない場合は、その Webhook リクエストを却下します。

HMAC 署名を認証するための Java コードスニペットのサンプル:


    Zoho CRM 管理者向けトレーニング

    「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。

    日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。

    Zoho CRM Training



              Zoho Campaigns Resources

                Zoho WorkDrive Resources




                  • Desk Community Learning Series


                  • Digest


                  • Functions


                  • Meetups


                  • Kbase


                  • Resources


                  • Glossary


                  • Desk Marketplace


                  • MVP Corner


                  • Word of the Day


                  • Ask the Experts









                                  Resources

                                  Videos

                                  Watch comprehensive videos on features and other important topics that will help you master Zoho CRM.



                                  eBooks

                                  Download free eBooks and access a range of topics to get deeper insight on successfully using Zoho CRM.



                                  Webinars

                                  Sign up for our webinars and learn the Zoho CRM basics, from customization to sales force automation and more.



                                  CRM Tips

                                  Make the most of Zoho CRM with these useful tips.