νΌλλ‘ λμκ°κΈ°
Dev.toSecurity
μλ¬Έ μ½κΈ°
HMAC-SHA256 λμ μ ν΅ν Webhook Spoofing μλ²½ μ°¨λ¨
Stop Fake Webhooks: Master HMAC Signatures in Laravel π‘οΈ
AI μμ½
Context
μΈλΆ μλΉμ€μ Webhookμ μ²λ¦¬νλ κ³΅κ° μλν¬μΈνΈμ 보μ μ·¨μ½μ λΆμ. λ¨μ HTTP POST μμ²μ μμ‘΄νλ κ΅¬μ‘°λ‘ μΈν΄ μ μμ μΈ Payload μ‘°μμ ν΅ν κΆν νλ λ° λΆμ κ²°μ μ²λ¦¬ μν μμ‘΄.
Technical Solution
- Zero-trust API μ€κ³λ₯Ό μν HMAC-SHA256 κΈ°λ° Signature Verification μ²΄κ³ λμ
- Business Controller μ§μ μ μμ²μ κ²μ¦νλ Middleware κ³μΈ΅μ Guard ꡬ쑰 μ€κ³
- Raw Request Bodyμ 곡μ Secret Keyλ₯Ό μ‘°ν©ν λ 립μ ν΄μ μμ± λ° λΉκ΅ λ‘μ§ κ΅¬ν
- Timing Attack λ°©μ§λ₯Ό μν΄ λ¨μ λΉκ΅ μ°μ°μκ° μλ
hash_equals()ν¨μλ₯Ό μ¬μ©ν μμ μκ° λΉκ΅ μ μ© - μ ν¨νμ§ μμ μκ·Έλμ² νμ§ μ μ¦κ°μ μΈ 401/403 μλ΅ λ°ν λ° IP κΈ°λ° λ‘κ·Έ κΈ°λ‘ μ²΄κ³ κ΅¬μΆ
μ€μ² ν¬μΈνΈ
- Webhook μλν¬μΈνΈ μ€κ³ μ λ°λμ 곡μ Secret κΈ°λ°μ Signature κ²μ¦ λ‘μ§ ν¬ν¨ - λ¬Έμμ΄ λΉκ΅ μ Timing Attack λ°©μ§λ₯Ό μν΄ μΈμ΄λ³ μμ μκ° λΉκ΅ ν¨μ(Constant-time comparison) μ¬μ© μ¬λΆ νμΈ - λΉμ¦λμ€ λ‘μ§ μ§μ μ Middleware λ¨κ³μμ μΈμ¦ λ° κ²μ¦μ μ²λ¦¬νμ¬ λ¦¬μμ€ λλΉ μ΅μν