حملات بازپخش امضای دیجیتال در Solidity: باگی که درست به نظر میرسد
یک دسته باگ امنیتی در سالیدیتی به بازپخش امضا معروفه که ظاهر کاملاً صحیحی داره. کد چکهای لازم رو انجام میده، آدرس درست رو بازیابی میکنه، ولی با این حال به مهاجم اجازه میده همون امضای تأیید رو بارها و بارها اجرا کنه. نویسنده سه شکل رایج این باگ و روشهای شناساییش رو توضیح داده.
چرا مهمه؟
بازپخش امضا برخلاف باگهایی مثل reentrancy، با یک نگاه ساده به کد دیده نمیشه. دقیقاً همین باعث شده توسعهدهندههای باسابقه هم در دامش بیفتن. قراردادهایی که از meta-transaction و استانداردهای permit استفاده میکنن بیشتر در معرض این مشکل هستن. شناخت این الگو امنیت قراردادهای هوشمند رو حسابی بالا میبره.
به درد کی میخوره؟
توسعهدهندگان سالیدیتی و قرارداد هوشمند ممیزهای امنیتی پروتکلهای Web3 تیمهای فنی پروژههای DeFi مهندسان بلاکچین
تو عمل چی کار کنیم؟
هر توسعهدهندهای که با امضای دیجیتال و meta-transaction کار میکنه میتونه با بررسی کدهاش از این باگ جلوگیری کنه. شناخت الگوی بازپخش امضا کمک میکنه حین ممیزی یا کدنویسی، نشانههای این مشکل رو سریعتر تشخیص بده.
نظر BlueIT News
مقالههای فنی که ظاهر ساده دارن ولی عمیقن، همیشه ارزشمندن. بازپخش امضا از اون دسته باگهاییه که توسعهدهندهها باید پیش از افتادن باهاش آشنا بشن، نه بعد از خالی شدن یک صرافی غیرمتمرکز.