یک تابع پایتون بنویسید که هدرهای HTTP شامل "timestamp" و "payload" را با الگوریتم HMAC-SHA256 و یک کلید محرمانه امضا کند و تابع دیگری بنویسید که صحت آن امضا را بررسی کند.

16.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:29

0.0

برای انجام این کار از کتابخانه‌های استاندارد Python مانند hmac و hashlib و اختیاری base64 استفاده کنید: مقدارهای هدر (مثل timestamp و payload) را به بایت تبدیل کنید، آن‌ها را به صورت مشخصی (مثلاً با ':' جدا) به هم بچسبانید و hmac.new(secret, message, hashlib.sha256).digest() را محاسبه کنید و خروجی را به صورت hex یا base64 در هدر Signature قرار دهید. برای بررسی امضا، همان پیام را دوباره بسازید و با hmac.compare_digest خروجی محاسبه‌شده را با امضای دریافتی مقایسه کنید تا حملات زمان‌بندی را کاهش دهید. همچنین توصیه می‌شود کلید را از محیط (environment) یا پارامتر تابع بگیرید و با بررسی timestamp از حملات replay جلوگیری کنید.

توسط پژوهشگر در 201 روز قبل ساعت 03:29
دسته بندی ها: Python Python for beginner
sara در 201 روز قبل ساعت 06:17

کلید محرمانه را از محیط اجرا بخوانید تا از افشای کلید در کد جلوگیری شود و در هر درخواست از آن به طور یکسان استفاده کنید. برای مقاومت در برابر حملات زمان‌بندی از hmac.compare_digest استفاده کنید و با بررسی timestamp در یک پنجره زمانی مشخص از حملات Replay جلوگیری کنید. پیام را به صورت bytes با یک جداکننده ثابت مانند ':' بین timestamp و payload بسازید و امضای HMAC-SHA256 را به صورت hex یا base64 در هدر Signature قرار دهید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری