حمله کانال جانبی

[بندانگشتی| تلاش برای رمزگشایی بیت‌های کلید [آراس‌ای|RSA با استفاده از تحلیل قدرت. قله سمت چپ نشانگر تغییرات قدرت CPU در مرحله الگوریتم بدون ضرب، قله راست (گسترده‌تر) با ضرب است و به مهاجم اجازه می‌دهد بیت‌های ۰، ۱ را بخواند.]]
در بحث امنیت رایانه **حمله کانال جانبی** به حمله ای گفته می‌شود که بر اساس اطلاعات به دست آمده از پیاده‌سازی یک سیستم رایانه ای باشد تا ضعف‌هایی که در الگوریتم پیاده‌سازی آن وجود دارد (بعنوان مثال رمزنگاری و اشکالات نرم‌افزاری). اطلاعات زمانبندی، مصرف برق، نشت الکترومغناطیسی یا حتی صدا می‌توانند یک منبع اطلاعات عظیم اطلاعات را فراهم آورد که قابل بهره‌برداری و سوءاستفاده باشد.

برخی از حملات کانال جانبی به دانش فنی دربارهٔ عملکرد داخلی سیستم احتیاج دارند؛ اگرچه برخی دیگر مانند تحلیل قدرت دیفرانسیل به اندازه حملات جعبه سیاه مؤثر هستند. طبق گفته محققانمایکروسافت و دانشگاه ایندیانا، ظهور برنامه‌های کاربردی وب ۲٫۰ و سرویس‌های نرم‌افزاری نیز امکان حملات کانال جانبی را بر روی وب ایجاد کرده‌است حتی اگر انتقال بین مرورگر وب و سرور رمزگذاری شده باشد (به عنوان مثال از طریق HTTPS یا رمزگذاری WiFi). بسیاری از حملات کانالهای جانبی قدرتمند، مبتنی بر روشهای آماری هستند که توسط پل کوچر برای اولین بار ارائه شده‌است.

تلاش برای شکستن یک سیستم رمزنگاری با فریب دادن یا اجبار افرادی که دسترسی قانونی دارند معمولاً جزو حملات کانال جانبی به‌شمار نمی‌آیند: به مهندسی اجتماعی و رمزنگاری شیلنگ لاستیکی مراجعه کنید.

## مطالب عمومی
کلاسهای عمومی حمله کانال جانبی عبارتند از:
* حمله به حافظه پنهان (کَش) &#x2014; این حملات مبتنی بر توانایی مهاجم در نظارت بر روی دسترسی‌های حافظه پنهان می‌باشد که توسط قربانی در یک سیستم فیزیکی مشترک نظیر محیط‌های مجازی یا گونه ای از سرویس‌های ابری ایجاد شده‌است.
* حمله زمانبندی &#x2014; این حملات مبتنی بر اندازه‌گیری میزان زمان انجام محاسبات مختلف می‌باشد؛ مثلاً مقایسه رمز عبور داده شده یک مهاجم با رمز عبور نا معلوم یک قربانی.
* حمله به مانیتورینگ نیرو &#x2014; حملاتی که باعث می‌شوند در هنگام محاسبه، انرژی‌های متفاوتی توسط سخت‌افزار استفاده شود.
* حمله الکترومغناطیسی &#x2014; حملاتی مبتنی بر تشعشعات الکترومغناطیسی نشت یافته که می‌تواند به‌طور مستقیم متن اصلی (plaintext) و سایر اطلاعات را فراهم آورد. از این اندازه‌گیری‌ها می‌توان برای استنباط کلیدهای رمزنگاری با استفاده از تکنیکهایی که در آنالیز قدرت به کار می‌روند استفاده کرد یا می‌توان در حملات غیر رمزنگاری، به عنوان مثال حمله تمپس (با نام مستعار ون Eck یا نظارت بر اشعه) به کار برد.
* رمزنگاری صوتی &#x2014; حملاتی که از صدای تولید شده در طول یک محاسبه سوءاستفاده می‌کنند؛ مانند تحلیل قدرت.
* تجزیه و تحلیل خطای تفاضلی &#x2014; حملاتی که در آنها رموز با ایجاد خطاهایی در یک محاسبه کشف می‌شوند.
* پایداری داده &#x2014; حملاتی که در آن داده‌های حساسی که محذوف فرض شده‌اند، بازخوانی می‌شوند. (یا همان حمله بوت سرد)
* حملات خطای مبتنی بر نرم‌افزار &#x2014; در حال حاضر یک کلاس کمیاب حملات کانال جانبی می‌باشد. چکش Row یک نمونه از این حملات می‌باشد که در آن اغلب می‌توان حافظه نامحدودی را می‌توان با دسترسی به حافظه مجاور تغییر داد (باعث از دست رفتن پایداری حافظه می‌شود)
* نوری - حملاتی که در طی آن به کمک دوربین‌های با وضوح بالا یا سایر دستگاه‌هایی با چنین قابلیت‌هایی، داده‌های حساس و رموز قابل خواندن می‌شوند. (به مثال‌های زیر مراجعه کنید).

در همه موارد، اصل اساسی این است که اثرات فیزیکی ناشی از عملکرد سیستم رمزنگاری می‌تواند اطلاعات مفیدی در مورد اسرار و رمزهای سیستم تولید کند؛ مانند کلید رمزنگاری، اطلاعات حالت، متون اصلی کامل یا جزئی و موارد دیگر. اصطلاح cryptophthora (تخریب مخفی) گاهی برای بیان تنزیل مواد کلیدی پنهانی ناشی از نشت کانال جانبی به کار می‌رود.

## مثال‌ها
**** (حمله کانال جانبی حافظه پنهان) با استفاده از مونیتورینگ عملیات حیاتی امنیتی مانند ورود به جدول TES AES یا دسترسی‌های مضارب نمایی مدولار انجام می‌شود. سپس مهاجم بسته به دسترسی‌های ساخته شده یا ساخته نشده توسط قربانی، می‌تواند کلید رمزنگاری را بازیابی کند. همچنین برخلاف برخی دیگر از حملات کانال جانبی، این روش در عملیات رمزنگاری هیچ گونه خطایی ایجاد نمی‌کند و از دید قربانی پنهان می‌ماند.

در سال ۲۰۱۷، آسیب‌پذیری‌های مبتنی بر حافظه نهان در CPUها (ملقب به '''ملتداون''' و Spectre) کشف شده‌اند که به مهاجمان اجازه می‌دهد تا محتوای حافظه سایر فرایندها و خود سیستم عامل را نشت دهد.

یک **حمله زمان‌بندی،** حرکت داده به داخل یاخارج از CPU یا حافظه روی سخت‌افزار اجرا کننده الگوریتم رمزنگاری را مشاهده می‌کند. به سادگی با مشاهده گوناگونی زمان انجام عملیات رمزنگاری، می‌توان کل کلید مخفی را تعیین کرد. این گونه حملات در بر گیرنده تحلیل آماری از اندازه‌گیری‌های زمانی است و از طریق شبکه‌ها نشان داده شده‌اند.

یک **حمله آنالیز قدرت** حتی می‌تواند از طریق مشاهده مصرف انرژی یک دستگاه سخت‌افزاری مانند CPU یا مدار رمزنگاری، اطلاعات دقیق تری را ارائه دهد. این حملات، به‌طور ساده، به دو دسته آنالیزتوان ساده (SPA) و آنالیز توان تفاضلی (DPA) طبقه‌بندی می‌شوند.

نوسانات جریان نیز امواج رادیویی تولید می‌کند که حملات مبتنی بر تجزیه و تحلیل اندازه‌گیری میزان انتشار الکترومغناطیسی را ممکن می‌سازد. این حملات معمولاً شامل تکنیک‌های آماری مشابه به حملات آنالیز قدرت هستند.

یک **حمله به کانال جانبی مبتنی بر یادگیری عمیق**، با استفاده از اطلاعات الکترومغناطیسی و توان در چندین دستگاه نشان داده‌است که دارای پتانسیل شکستن کلید رمز چند دستگاه مختلف ولی یکسان را با یک پیمایش ساده می‌باشد.

شباهت‌های تاریخی حملات کانال جانبی مدرن شناسایی شده‌اند. یک سند NSA نشان می‌دهد که در سال ۱۹۴۳، یک مهندس با تلفن بل، اسپایک‌های قابل تفسیر را در یک اسلیوسکوپ متصل به خروجی رمزگشایی شده یک تله تایپ رمزگذاری شده مشاهده کرد. به گفته افسر سابق **[[ام‌آی۵]]**، پیتر رایت، سرویس امنیتی انگلیس در ۱۹۶۰ انتشار گازهای گلخانه ای از تجهیزات فرانسوی را مورد تجزیه و تحلیل قرار داد. در ۱۹۸۰، استراق سمع کنندگان اتحاد جماهیر شوروی به وجود اشکالاتی داخل ماشین تحریرهای آی بی ام Selectric پی بردند که ناشی از نویز الکتریکی حاصل از برخورد قطعات مکانیکی به کاغذ بود. ویژگی‌های این سیگنال‌ها می‌تواند تعیین کند که کدام کلید فشرده شده‌است.

مصرف برق دستگاه‌ها باعث گرمایش می‌شود که با اثر خنک‌کننده جبران می‌شود. تغییرات دما تنش مکانیکی ناشی از گرما ایجاد می‌کند. این تنش می‌تواند ایجاد کننده تشعشات صوتی سطح پایینی ناشی از عملکرد CPUها باشد (در بعضی حالات در حدود ۱۰کیلوهرتز). تحقیقات اخیر شمر و همکاران پیشنهاد کرده‌است که از این طریق می‌توان اطلاعات مربوط به کارکرد رمزنگاری و الگوریتم‌ها را نیز بدست آورد. این یک **حمله رمزنگاری آکوستیک (صوتی) است**.

اگر سطح تراشه CPU یا در بعضی حالات سطح پکیج CPU قابل مشاهده باشد، تصاویر مادون قرمز نیز می‌تواند اطلاعاتی را در مورد کدهای در حال اجرا در CPU را نشان دهد؛ که **معروف به** **حمله تصویربرداری حرارتی می‌باشد**. 

نمونه‌های **حمله کانال جانبی نوری** شامل جمع‌آوری اطلاعات از نشانگر فعالیت هارد دیسک جهت خواندن تعداد کمی فوتون‌های ساطع شده توسط ترانزیستورها هنگام تغییر حالت می‌باشد.

## اقدامات متقابل
از آنجا که حملات کانال جانبی به رابطه اطلاعات فاش شده از طریق یک کانال جانبی و داده‌های مخفی متکی هستند، اقدامات متقابل به دو دسته عمده تقسیم می‌شوند: (۱) حذف یا کاهش انتشار این دست اطلاعات (۲) حذف ارتباط بین اطلاعات فاش شده و داده‌های مخفی، که به‌طور معمول از طریق نوعی تصادفی کردن متن رمز شده که داده‌ها را به گونه ای تبدیل می‌کند که پس از تکمیل فرایند رمزنگاری قابل خنثی شدن باشد

در دسته اول، نمایشگرهایی با محافظ مخصوص به منظور کاهش تشعشعات الکترومغناطیسی که حساسیت به حملات TEMPEST را کاهش می‌دهند، امروزه تجاری شده‌اند. بهبود و فیلترینگ توان خطوط انتقال قدرت می‌تواند به جلوگری از حملات مانیتورینگ نیرو کمک کند؛ هر چند چنین اقداماتی باید با احتیاط استفاده شوند چرا که حتی همبستگی‌های بسیار کوچک می‌توانند باقی بمانند و امینت را به چالش بکشاند. محفظه‌های فیزیکی می‌توانند خطر نصب پنهانی میکروفون‌ها (برای مقابله با حملات صوتی) و سایر دستگاه‌های مانیتورینگ خیلی کوچک (در مقابله با حمله رسم توان CPU یا حملات تصویربرداری حرارتی) را کاهش دهند.

یکی دیگر از اقدامات متقابل دسته اول، گمراه سازی کانال منتشر شده با نویز است. به عنوان مثال، یک تأخیر تصادفی می‌تواند برای جلوگیری از حملات زمان‌بندی اضافه شود؛ اگرچه مخالفان می‌توانند میانگین‌گیری از اندازه‌گیری‌های چندگانه این تاخیرها را جبران کنند (یا به‌طور کلی، اندازه‌گیری‌های بیشتری را در تحلیل استفاده کنند). با افزایش مقدار نویز در کانال جانبی، دشمن باید اندازه‌گیری‌های بیشتری را جمع‌آوری کند.

یکی دیگر از اقدامات متقابل در دسته اول، استفاده از نرم‌افزار آنالیز امنیتی برای شناسایی دسته‌های خاصی از حملات کانال جانبی است که می‌توان در طی مراحل اساسی طراحی سخت‌افزار پیدا شوند. حملات زمانبندی و حملات حافظه نهان هر دو از طریق بعضی نرم‌افزارهای تحلیل امنیتی تجاری که امکان تست آسیب‌پذیری را فراهم می‌کنند، قابل شناسایی هستند. جامع‌ترین روش برای استفاده از این اقدام متقابل، ایجاد یک چرخه عمر توسعه ایمن سخت‌افزاری شامل بهینه‌سازی پلتفرم‌های حلیل امنیتی در دسترس در مراحل مربوط به چرخه توسعه سخت‌افزار می‌باشد.

در مورد حملات زمانبندی علیه اهدافی که زمان محاسبه آنها به شمارش کلاک سایکل‌های گسسته تقسیم شده، یک اقدام متقابل مؤثر، طراحی نرم‌افزار به صورت هم‌زمان می‌باشد. این، حمله به زمانبندی را غیرممکن می‌سازد. چنین اقدامات متقابلی در عمل می‌تواند دشوار باشد؛ زیرا حتی هر دستور العمل می‌تواند در پردازنده‌های گوناگون، زمان اجرای متفاوتی داشته باشد.

یک راه مقابله نسبی در برابر حملات تحلیل توان ساده (نه تحلیل توان تفاضلی) این است که نرم‌افزاری را طراحی کنیم که program counter آن در امن‌ترین حالت ممکن قرار داشته باشد (PC-Secure). در یک برنامه PC-Secure، مسیر اجرا به مقادیر مخفی بستگی ندارد. به عبارت دیگر، انشعابات شرطی فقط به اطلاعات عمومی بستگی دارند. (این شرایط محدودیت بیشتری نسبت به کد isochronous، و محدودیت کمتری نسبت به کد بدون انشعاب دارد) اگرچه عملیات ضرب در پردازنده‌ها بیشتر از NOP توان مصرف می‌کند، استفاده از یک مسیر اجرای ثابت از بروز این دست اختلافات توان وابسته به عملیات (تفاوت در توان مصرفی بین شاخه‌های مختلف) و در نتییجه نشت هر گونه اطلاعات مخفی جلوگیری می‌کند.

دلیل دیگری که یک کد non-isochronous باشد، وجود حافظه پنهان در CPUهای مدرن است؛ دسترسی به اطلاعاتی که ندرتاً استفاده می‌شوند موجب بروز هزینه زمانی زیادی می‌شود و در نتیجه افشای برخی اطلاعات مربوط به دفعات استفاده از بلوک‌های حافظه را در پی دارد. کد رمزنگاری شده طوری طراحی می‌شود که با استفاده روش‌های قابل پیش‌بینی استفاده از حافظه، در مقابل حملات کَش مقاوم باشد (نظیر دسترسی به داده‌های ورودی، خروجی و انجام این کار بر اساس یک الگوی ثابت). به عنوان مثال، از جستجوی جداول جستجوی وابسته به داده باید احتراز کرد زیرا حافظه پنهان ممکن است حاوی بخشی از داده‌های این جداول باشد.

سایر اقدامات متقابل جزئی سعی در کاهش میزان اطلاعات به دست آمده از تفاضل توان وابسته به داده‌ها دارند. بعضی از عملیات‌ها از توانی استفاده می‌کنند که به تعداد بیت‌های ۱ در داده مخفی وابسته می‌باشد. استفاده از یک کد با وزن ثابت (مانند استفاده از گیت‌های Fredkin یا رمزگذاری دو ریلی) می‌تواند نشت اطلاعات مرتبط با وزن Hamming داده مخفی را کاهش دهد؛ اگرچه ارتباطات قابل بهره‌برداری ممکن است باقی بماند مگر اینکه تعادل کامل برقرار باشد. این «طراحی متعادل» می‌تواند به وسیله اثر متقابل داده و مکمل آن بر روی یکدیگر، تقریب زده شود.

چندین CPU امن به عنوان CPUهای غیر همزمان ساخته شده‌اند. آن‌ها هیچ مرجع جهانی زمانبندی ای ندارند؛ از آنجا که این پردازنده‌ها برای حملات زمانبندی و توان را دشوار کنند، تحقیقات دریافته اند که تغییرات زمان‌بندی در مدارهای ناهمگام برای حذف سخت‌تر است. 

نمونه بارز دسته دوم تکنیکی است که با عنوان *پرده کور* شناخته می‌شود. در مورد رمزگشایی RSA با نمای مخفی d و نمای رمزگذاری مربوطه e و مدول m، این روش به شرح زیر صورت می‌پذیرد (برای سادگی، کاهش مدولار *m* از فرمول‌ها حذف شده‌است): قبل از رمزگشایی، یعنی قبل از محاسبه نتیجه y^d برای متن رمز شده y ، سیستم یک عدد تصادفی r را انتخاب می‌کند و آن را با نمای عمومی e رمزگذاری کرده تاr^e بدست آید. سپس رمزگشایی رویy \cdot r^e انجام می‌شود تا عبارت {(y \cdot r^e)}^d = y^d \cdot r^{e\cdot d} = y^d \cdot r به دست آید. از آنجا که سیستم رمزگشایی r را انتخاب کرده، می‌تواند مدول m را محاسبه کند تا فاکتور r را در نتیجه حذف نموده و y^d (نتیجه واقعی رمزگشایی) را به دست آورد. برای حمله‌هایی که نیازمند جمع‌آوری اطلاعات کانال جانبی از عملیات‌هایی که مهاجم داده‌های آن را کنترل می‌کند، روش پرده کور یک اقدام متقابل مؤثر است چرا که عملیات واقعی بر روی نسخه تصادفی داده اجرا می‌شود که مهاجم کنترل و دانشی نسبت به آن ندارد.

یک اقدامات متقابل عمومی تر (که در مقابل همه جملات کانال جانبی مؤثر است) ماسک کردن است. اصل ماسک کردن جلوگیری از هرگونه اثرگذاری مستقیم بر روی داده‌های حساس y و در عوض اثرگذاری بر روی به اشتراک گذاشته شدهٔ آن است: مجموعه ای از متغیرها (به نام "سهام") y_1, ..., y_d به گونه ای که y = y_1 \oplus ... \oplus y_d  (\oplus عملیات XOR است). یک مهاجم باید تمام مقادیر به اشتارک گذاشته شده را بازیابی کرده تا بتواند اطلاعات معنی داری بدست آورد.

یکی دیگر از اقدامات متقابل اندازه‌گیری سطح کارآمد انرژی در برابر هر دو حمله کانال جانبی، یعنی توان و تشعشعات الکترومغناطیسی، که اثر میرایی بر سخت‌افزار دارند، نشان داده شده در ترکیب با مسیریابی محلی سطح پایین فلز، تا یک میلیارد جهش مقاومند. این تکنیک یک آنالیز جعبه سفید از رمزنگاری IC را انجام می‌دهد و قبل از رسیدن به لایه‌های فلزی سطوح بالاتر که به عنوان آنتن بهتر عمل می‌کنند، اطلاعات حیاتی را در قالب کانال‌های جانبی تشعشعات الکترومغناطیسی به‌طور قابل ملاحظه ای سرکوب می‌کنند.

## جستارهای وابسته
* حمله بی رحمانه
* نظارت رایانه
* کانال مخفی
* عوارض جانبی

## منابع

## برای مطالعهٔ بیشتر
### کتابها
* 

### مقالات
* http://www.rambus.com/differential-power-analysis/، تجزیه و تحلیل قدرت افتراقی، P. Kocher ,J. Jaffe , B. Jun، در CRYPTO'99 ظاهر شدند.
* http://www.rambus.com/timing-attacks-on-implementations-of-diffie-hellman-rsa-dss-and-other-systems/، زمانبندی حملات به پیاده‌سازی Diffie-Hellman ,RSA ,DSS و سایر سیستم‌ها، P. Kocher.
* http://www.rambus.com/introduction-to-differential-power-analysis-and-related-attacks/، مقدمه ای بر تجزیه و تحلیل قدرت دیفرانسیل و حملات مرتبط، ۱۹۹۸، P Kocher ,J Jaffe ,B Jun.
* Nist.gov، یک یادداشت محتاطانه در مورد ارزیابی کاندیداهای AES در کارتهای هوشمند، ۱۹۹۹، سارا چاری، سی جوتلا، جی آر رائو، پ. روهگی
* DES و تجزیه و تحلیل قدرت دیفرانسیل، L Goubin و J Patarin، در مجموعه مقالات CHES'99، یادداشت‌های سخنرانی در علوم کامپیوتر شماره ۱۷۱۷، Springer-Verlag
*     
* 
* 

## پیوند به بیرون
* سیما، میایی؛ Brisson , André (۲۰۱۵)، اجرای رمزگذاری Whitenoise با افزایش استحکام در برابر حملات جانبی کانال
* بریسون، آندره (۲۰۱۵) ، دانشگاه ویکتوریا، بریتانیا، کلمبیا مطالعه مقاومت در برابر حمله حملات کانال سفید وایتنویز 
* تکنیک‌های جدید حمله کانال جانبی
* کارگاه بین‌المللی COSADE کارگاه بین‌المللی در مورد تجزیه و تحلیل سازنده کانال کانال و طراحی ایمن

رده:حمله‌های رمزنگاری
رده:حمله‌های کانال جانبی
رده:ویکی‌سازی رباتیک