3
我正在開發一項服務,客戶可以註冊他們的webhook url,我將在註冊的url上發送更新。爲了安全起見,我希望讓客戶端(接收方)識別其發送請求的我(服務器)。如何保護webhook身份
Facebook和Github都發送X-Hub-Signature
,其中包含以密鑰爲前綴的有效載荷的散列。
我可以遵循相同的策略。但如果我簡單地使用jwt
:
- 在註冊webhook時,我與客戶端共享密鑰。
- 然後在每個webhook請求中,我將發送使用相同密鑰計算的jwt。
我對密碼學知之甚少,但jwt方法似乎更有效,因爲我不必一次又一次計算簽名,因爲我沒有在簽名中使用有效載荷。
但是爲什麼facebook和github都遵循另一種方法?
同意!但關於「發送每封郵件的祕密並不明智,因爲這可能會導致祕密被泄密。 ' 我不是普通的祕密。我會發送'jwt'。 –
感謝您指出重播攻擊。 –
它看起來像我誤解了你的問題的一部分。智威湯遜包含一個MAC。您需要將有效載荷包含在MAC/JWT的計算中,否則攻擊者可以使用不同有效負載的MAC。 –