حمله کانال جانبی
در بحث امنیت رایانه حمله کانال جانبی به حمله ای گفته می‌شود که بر اساس اطلاعات بدست آمده از پیاده‌سازی یک سیستم رایانه ای باشد تا ضعف‌هایی که در الگوریتم پیاده‌سازی آن وجود دارد (بعنوان مثال رمزنگاری و اشکالات نرم‌افزاری). اطلاعات زمانبندی، مصرف برق، نشت الکترومغناطیسی یا حتی صدا می‌توانند یک منبع اطلاعات عظیم اطلاعات را فراهم آورد که قابل بهره‌برداری و سوءاستفاده باشد.
برخی از حملات کانال جانبی به دانش فنی دربارهٔ عملکرد داخلی سیستم احتیاج دارند؛ اگرچه برخی دیگر مانند تحلیل قدرت دیفرانسیل به اندازه حملات جعبه سیاه مؤثر هستند. طبق گفته محققانمایکروسافت و دانشگاه ایندیانا، ظهور برنامه‌های کاربردی وب ۲٫۰ و سرویس‌های نرم‌افزاری نیز امکان حملات کانال جانبی را بر روی وب ایجاد کرده‌است حتی اگر انتقال بین مرورگر وب و سرور رمزگذاری شده باشد (به عنوان مثال از طریق HTTPS یا رمزگذاری WiFi). بسیاری از حملات کانالهای جانبی قدرتمند، مبتنی بر روشهای آماری هستند که توسط پل کوچر برای اولین بار ارائه شده‌است.
تلاش برای شکستن یک سیستم رمزنگاری با فریب دادن یا اجبار افرادی که دسترسی قانونی دارند معمولاً جزو حملات کانال جانبی به‌شمار نمی‌آیند: به مهندسی اجتماعی و رمزنگاری شیلنگ لاستیکی مراجعه کنید.
کلاسهای عمومی حمله کانال جانبی عبارتند از:
در همه موارد، اصل اساسی این است که اثرات فیزیکی ناشی از عملکرد سیستم رمزنگاری می‌تواند اطلاعات مفیدی در مورد اسرار و رمزهای سیستم تولید کند؛ مانند کلید رمزنگاری، اطلاعات حالت، متون اصلی کامل یا جزئی و موارد دیگر. اصطلاح cryptophthora (تخریب مخفی) گاهی برای بیان تنزیل مواد کلیدی پنهانی ناشی از نشت کانال جانبی به کار می‌رود.
(حمله کانال جانبی حافظه پنهان) با استفاده از مونیتورینگ عملیات حیاتی امنیتی مانند ورود به جدول TES AES یا دسترسی‌های مضارب نمایی مدولار انجام می‌شود. سپس مهاجم بسته به دسترسی‌های ساخته شده یا ساخته نشده توسط قربانی، می‌تواند کلید رمزنگاری را بازیابی کند. همچنین برخلاف برخی دیگر از حملات کانال جانبی، این روش در عملیات رمزنگاری هیچ گونه خطایی ایجاد نمی‌کند و از دید قربانی پنهان می‌ماند.
در سال ۲۰۱۷، آسیب‌پذیری‌های مبتنی بر حافظه نهان در CPUها (ملقب به Meltdown و Spectre) کشف شده‌اند که به مهاجمان اجازه می‌دهد تا محتوای حافظه سایر فرایندها و خود سیستم عامل را نشت دهد.
یک حمله زمان‌بندی، حرکت داده به داخل یاخارج از CPU یا حافظه روی سخت‌افزار اجرا کننده الگوریتم رمزنگاری را مشاهده می‌کند. به سادگی با مشاهده گوناگونی زمان انجام عملیات رمزنگاری، می‌توان کل کلید مخفی را تعیین کرد. این گونه حملات در بر گیرنده تحلیل آماری از اندازه‌گیری‌های زمانی است و از طریق شبکه‌ها نشان داده شده‌اند.
یک حمله آنالیز قدرت حتی می‌تواند از طریق مشاهده مصرف انرژی یک دستگاه سخت‌افزاری مانند CPU یا مدار رمزنگاری، اطلاعات دقیق تری را ارائه دهد. این حملات، به‌طور ساده، به دو دسته آنالیزتوان ساده (SPA) و آنالیز توان تفاضلی (DPA) طبقه‌بندی می‌شوند.
نوسانات جریان نیز امواج رادیویی تولید می‌کند که حملات مبتنی بر تجزیه و تحلیل اندازه‌گیری میزان انتشار الکترومغناطیسی را ممکن می‌سازد. این حملات معمولاً شامل تکنیک‌های آماری مشابه به حملات آنالیز قدرت هستند.
یک حمله به کانال جانبی مبتنی بر یادگیری عمیق، با استفاده از اطلاعات الکترومغناطیسی و توان در چندین دستگاه نشان داده‌است که دارای پتانسیل شکستن کلید رمز چند دستگاه مختلف ولی یکسان را با یک پیمایش ساده می‌باشد.
شباهت‌های تاریخی حملات کانال جانبی مدرن شناسایی شده‌اند. یک سند NSA نشان می‌دهد که در سال ۱۹۴۳، یک مهندس با تلفن بل، اسپایک‌های قابل تفسیر را در یک اسلیوسکوپ متصل به خروجی رمزگشایی شده یک تله تایپ رمزگذاری شده مشاهده کرد. به گفته افسر سابق MI5، پیتر رایت، سرویس امنیتی انگلیس در ۱۹۶۰ انتشار گازهای گلخانه ای از تجهیزات فرانسوی را مورد تجزیه و تحلیل قرار داد. در ۱۹۸۰، استراق سمع کنندگان اتحاد جماهیر شوروی به وجود اشکالاتی داخل ماشین تحریرهای آی بی ام Selectric پی بردند که ناشی از نویز الکتریکی حاصل از برخورد قطعات مکانیکی به کاغذ بود. ویژگی‌های این سیگنال‌ها می‌تواند تعیین کند که کدام کلید فشرده شده‌است.
مصرف برق دستگاه‌ها باعث گرمایش می‌شود که با اثر خنک‌کننده جبران می‌شود. تغییرات دما تنش مکانیکی ناشی از گرما ایجاد می‌کند. این تنش می‌تواند ایجاد کننده تشعشات صوتی سطح پایینی ناشی از عملکرد CPUها باشد (در بعضی حالات در حدود ۱۰کیلوهرتز). تحقیقات اخیر شمر و همکاران پیشنهاد کرده‌است که از این طریق می‌توان اطلاعات مربوط به کارکرد رمزنگاری و الگوریتم‌ها را نیز بدست آورد. این یک حمله رمزنگاری آکوستیک (صوتی) است.
اگر سطح تراشه CPU یا در بعضی حالات سطح پکیج CPU قابل مشاهده باشد، تصاویر مادون قرمز نیز می‌تواند اطلاعاتی را در مورد کدهای در حال اجرا در CPU را نشان دهد؛ که معروف به حمله تصویربرداری حرارتی می‌باشد.
نمونه‌های حمله کانال جانبی نوری شامل جمع‌آوری اطلاعات از نشانگر فعالیت هارد دیسک جهت خواندن تعداد کمی فوتون‌های ساطع شده توسط ترانزیستورها هنگام تغییر حالت می‌باشد.
از آنجا که حملات کانال جانبی به رابطه اطلاعات فاش شده از طریق یک کانال جانبی و داده‌های مخفی متکی هستند، اقدامات متقابل به دو دسته عمده تقسیم می‌شوند: (۱) حذف یا کاهش انتشار این دست اطلاعات (۲) حذف ارتباط بین اطلاعات فاش شده و داده‌های مخفی، که به‌طور معمول از طریق نوعی تصادفی کردن متن رمز شده که داده‌ها را به گونه ای تبدیل می‌کند که پس از تکمیل فرایند رمزنگاری قابل خنثی شدن باشد
در دسته اول، نمایشگرهایی با محافظ مخصوص به منظور کاهش تشعشعات الکترومغناطیسی که حساسیت به حملات TEMPEST را کاهش می‌دهند، امروزه تجاری شده‌اند. بهبود و فیلترینگ توان خطوط انتقال قدرت می‌تواند به جلوگری از حملات مانیتورینگ نیرو کمک کند؛ هر چند چنین اقداماتی باید با احتیاط استفاده شوند چرا که حتی همبستگی‌های بسیار کوچک می‌توانند باقی بمانند و امینت را به چالش بکشاند. محفظه‌های فیزیکی می‌توانند خطر نصب پنهانی میکروفون‌ها (برای مقابله با حملات صوتی) و سایر دستگاه‌های مانیتورینگ خیلی کوچک (در مقابله با حمله رسم توان CPU یا حملات تصویربرداری حرارتی) را کاهش دهند.
یکی دیگر از اقدامات متقابل دسته اول، گمراه سازی کانال منتشر شده با نویز است. به عنوان مثال، یک تأخیر تصادفی می‌تواند برای جلوگیری از حملات زمان‌بندی اضافه شود؛ اگرچه مخالفان می‌توانند میانگین‌گیری از اندازه‌گیری‌های چندگانه این تاخیرها را جبران کنند (یا به‌طور کلی، اندازه‌گیری‌های بیشتری را در تحلیل استفاده کنند). با افزایش مقدار نویز در کانال جانبی، دشمن باید اندازه‌گیری‌های بیشتری را جمع‌آوری کند.
یکی دیگر از اقدامات متقابل در دسته اول، استفاده از نرم‌افزار آنالیز امنیتی برای شناسایی دسته‌های خاصی از حملات کانال جانبی است که می‌توان در طی مراحل اساسی طراحی سخت‌افزار پیدا شوند. حملات زمانبندی و حملات حافظه نهان هر دو از طریق بعضی نرم‌افزارهای تحلیل امنیتی تجاری که امکان تست آسیب‌پذیری را فراهم می‌کنند، قابل شناسایی هستند. جامع‌ترین روش برای استفاده از این اقدام متقابل، ایجاد یک چرخه عمر توسعه ایمن سخت‌افزاری شامل بهینه‌سازی پلتفرم‌های حلیل امنیتی در دسترس در مراحل مربوط به چرخه توسعه سخت‌افزار می‌باشد.
در مورد حملات زمانبندی علیه اهدافی که زمان محاسبه آنها به شمارش کلاک سایکل‌های گسسته تقسیم شده، یک اقدام متقابل مؤثر، طراحی نرم‌افزار به صورت هم‌زمان می‌باشد. این، حمله به زمانبندی را غیرممکن می‌سازد. چنین اقدامات متقابلی در عمل می‌تواند دشوار باشد؛ زیرا حتی هر دستور العمل می‌تواند در پردازنده‌های گوناگون، زمان اجرای متفاوتی داشته باشد.
یک راه مقابله نسبی در برابر حملات تحلیل توان ساده (نه تحلیل توان تفاضلی) این است که نرم‌افزاری را طراحی کنیم که program counter آن در امن‌ترین حالت ممکن قرار داشته باشد (PC-Secure). در یک برنامه PC-Secure، مسیر اجرا به مقادیر مخفی بستگی ندارد. به عبارت دیگر، انشعابات شرطی فقط به اطلاعات عمومی بستگی دارند. (این شرایط محدودیت بیشتری نسبت به کد isochronous، و محدودیت کمتری نسبت به کد بدون انشعاب دارد) اگرچه عملیات ضرب در پردازنده‌ها بیشتر از NOP توان مصرف می‌کند، استفاده از یک مسیر اجرای ثابت از بروز این دست اختلافات توان وابسته به عملیات (تفاوت در توان مصرفی بین شاخه‌های مختلف) و در نتییجه نشت هر گونه اطلاعات مخفی جلوگیری می‌کند.
دلیل دیگری که یک کد non-isochronous باشد، وجود حافظه پنهان در CPUهای مدرن است؛ دسترسی به اطلاعاتی که ندرتاً استفاده می‌شوند موجب بروز هزینه زمانی زیادی می‌شود و در نتیجه افشای برخی اطلاعات مربوط به دفعات استفاده از بلوک‌های حافظه را در پی دارد. کد رمزنگاری شده طوری طراحی می‌شود که با استفاده روش‌های قابل پیش‌بینی استفاده از حافظه، در مقابل حملات کَش مقاوم باشد (نظیر دسترسی به داده‌های ورودی، خروجی و انجام این کار بر اساس یک الگوی ثابت). به عنوان مثال، از جستجوی جداول جستجوی وابسته به داده باید احتراز کرد زیرا حافظه پنهان ممکن است حاوی بخشی از داده‌های این جداول باشد.
سایر اقدامات متقابل جزئی سعی در کاهش میزان اطلاعات به دست آمده از تفاضل توان وابسته به داده‌ها دارند. بعضی از عملیات‌ها از توانی استفاده می‌کنند که به تعداد بیت‌های ۱ در داده مخفی وابسته می‌باشد. استفاده از یک کد با وزن ثابت (مانند استفاده از گیت‌های Fredkin یا رمزگذاری دو ریلی) می‌تواند نشت اطلاعات مرتبط با وزن Hamming داده مخفی را کاهش دهد؛ اگرچه ارتباطات قابل بهره‌برداری ممکن است باقی بماند مگر اینکه تعادل کامل برقرار باشد. این «طراحی متعادل» می‌تواند به وسیله اثر متقابل داده و مکمل آن بر روی یکدیگر، تقریب زده شود.
چندین CPU امن به عنوان CPUهای غیر همزمان ساخته شده‌اند. آن‌ها هیچ مرجع جهانی زمانبندی ای ندارند؛ از آنجا که این پردازنده‌ها برای حملات زمانبندی و توان را دشوار کنند، تحقیقات دریافته اند که تغییرات زمان‌بندی در مدارهای ناهمگام برای حذف سخت‌تر است.
نمونه بارز دسته دوم تکنیکی است که با عنوان "پرده کور" شناخته می‌شود. در مورد رمزگشایی RSA با نمای مخفی formula_1 و نمای رمزگذاری مربوطه formula_2 و مدول formula_3، این روش به شرح زیر صورت می‌پذیرد (برای سادگی، کاهش مدولار "m" از فرمول‌ها حذف شده‌است): قبل از رمزگشایی، یعنی قبل از محاسبه نتیجه formula_4 برای متن رمز شده formula_5 ، سیستم یک عدد تصادفی formula_6 را انتخاب می‌کند و آن را با نمای عمومی formula_2 رمزگذاری کرده تاformula_8 بدست آید. سپس رمزگشایی رویformula_9 انجام می‌شود تا عبارت formula_10 به دست آید. از آنجا که سیستم رمزگشایی formula_6 را انتخاب کرده، می‌تواند مدول formula_3 را محاسبه کند تا فاکتور formula_6 را در نتیجه حذف نموده و formula_4 (نتیجه واقعی رمزگشایی) را به دست آورد. برای حمله‌هایی که نیازمند جمع‌آوری اطلاعات کانال جانبی از عملیات‌هایی که مهاجم داده‌های آن را کنترل می‌کند، روش پرده کور یک اقدام متقابل مؤثر است چرا که عملیات واقعی بر روی نسخه تصادفی داده اجرا می‌شود که مهاجم کنترل و دانشی نسبت به آن ندارد.
یک اقدامات متقابل عمومی تر (که در مقابل همه جملات کانال جانبی مؤثر است) ماسک کردن است. اصل ماسک کردن جلوگیری از هرگونه اثرگذاری مستقیم بر روی داده‌های حساس formula_5 و در عوض اثرگذاری بر روی به اشتراک گذاشته شدهٔ آن است: مجموعه ای از متغیرها (به نام "سهام") formula_16 به گونه ای که formula_17 (formula_18 عملیات XOR است). یک مهاجم باید تمام مقادیر به اشتارک گذاشته شده را بازیابی کرده تا بتواند اطلاعات معنی داری بدست آورد.
یکی دیگر از اقدامات متقابل اندازه‌گیری سطح کارآمد انرژی در برابر هر دو حمله کانال جانبی، یعنی توان و تشعشعات الکترومغناطیسی، که اثر میرایی بر سخت‌افزار دارند، نشان داده شده در ترکیب با مسیریابی محلی سطح پایین فلز، تا یک میلیارد جهش مقاومند. این تکنیک یک آنالیز جعبه سفید از رمزنگاری IC را انجام می‌دهد و قبل از رسیدن به لایه‌های فلزی سطوح بالاتر که به عنوان آنتن بهتر عمل می‌کنند، اطلاعات حیاتی را در قالب کانال‌های جانبی تشعشعات الکترومغناطیسی به‌طور قابل ملاحظه ای سرکوب می‌کنند.