ترکیب محاسبات چندجانبه (Multi-Party Computation یا MPC) و محیطهای اجرای مورد اعتماد (Trusted Execution Environments یا TEE) با هدف افزایش امنیت محاسبات حساس به کار میرود. در حالی که MPC اعتماد را بین چندین طرف مستقل توزیع میکند، TEEها اعتماد را به سختافزار سازنده و زیرساختهای Attestation (تصدیق) منتقل میکنند. با این حال، این ترکیب اگر بدون در نظر گرفتن نقش «میزبان غیرقابل اعتماد» (Untrusted Host) پیادهسازی شود، میتواند منجر به آسیبپذیریهای جدی گردد.
تضاد در مدلهای اعتماد
در MPC، هدف اصلی توزیع اعتماد است تا هیچ طرف واحدی نتواند محاسبات را به مخاطره بیندازد. در مقابل، TEEها اعتماد را متمرکز میکنند؛ زیرا کل سیستم به سازنده سختافزار و گواهینامههای ریشه (Root Certificate) او وابسته است. علاوه بر این، در TEEها فرض بر این است که سیستمعامل میزبان احتمالاً مخرب است، در حالی که کد داخل TEE مورد اعتماد است. این تغییر رویکرد، سطوح حمله (Attack Surfaces) جدیدی ایجاد میکند.
محیطهای TEE چه مواردی را در MPC حل میکنند؟
اگر فرآیند Attestation به درستی پیاده شود، TEE میتواند تضمین کند که تمام طرفین دقیقاً نسخه مورد نظر از پروتکل را اجرا میکنند. این امر باعث میشود پروتکلهای Semi-honest (نیمهصادق) عملاً امنیت مدل Malicious (مخرب) را به دست آورند، زیرا دیگر هیچ طرفی نمیتواند با ارسال پیامهای تغییر یافته یا نادیده گرفتن مراحل پروتکل، سیستم را فریب دهد. TEEها میتوانند دستههای زیر از آسیبپذیریها را کاهش دهند:
- رمزگذاریهای مبهم در توابع Hash
- رفتارهای غیرمنتظره یا مخرب شرکتکنندگان
- پارامترهای گمشده در تبدیلهای Fiat-Shamir
- عدم اعتبارسنجی ورودیها (Input Validation)
خطرات و نقاط ضعف رایج
با وجود مزایا، پیادهسازیهای نادرست منجر به ریسکهای زیر میشود:
- حملات Rollback: در طرحهای امضای آستانهای (Threshold Signatures)، اگر میزبان مخرب بتواند وضعیت سیستمفایل را به حالت قبلی بازگرداند، ممکن است باعث شود امضاکننده از یک Nonce تکراری استفاده کند که منجر به افشای سهم کلید خصوصی (Private Key Share) میشود.
- Attestation ناقص: اگر تمام اجزای حیاتی در اندازهگیریهای (Measurements) TEE گنجانده نشوند، مهاجم میتواند بخشهایی از کد را بدون شناسایی تغییر دهد.
- حملات Side-channel: میزبان غیرقابل اعتماد میتواند با تحلیل زمانبندی یا دسترسی فیزیکی به حافظه (مانند حملات DDRop)، اطلاعات حساس را از داخل TEE استخراج کند.
- تمرکز اعتماد: استفاده از یک سازنده سختافزاری یا یک ارائهدهنده Cloud واحد برای تمام گرههای MPC، هدف توزیع اعتماد را خنثی میکند.
بهترین روشها برای پیادهسازی (Best Practices)
برای بهرهمندی از امنیت لایهای (Defense-in-Depth)، توصیههای زیر پیشنهاد میشود:
- پیادهسازی Attestation قوی: تصدیقها را به هویت طرفین MPC متصل کرده و تمام مراحل زنجیره گواهینامه را بررسی کنید.
- پایان دادن به ارتباطات Peer-to-Peer داخل TEE: کانالهای TLS را مستقیماً بین Enclaveها برقرار کنید تا میزبان نتواند پیامها را مشاهده یا تغییر دهد.
- استفاده از کد Constant-time: برای جلوگیری از حملات Side-channel مبتنی بر زمانبندی، تمام عملیاتهای حساس رمزنگاری را با زمان ثابت اجرا کنید.
- تنوع در سختافزار: برای جلوگیری از تمرکز اعتماد، پروتکل MPC را روی TEEهای سازندگان مختلف (مثلاً ترکیب Intel SGX و AMD SEV) اجرا کنید.