بخشی از مقاله
چکیده
با گسترش روزافزون تراشههای الکترونیکی، موارد استفاده از این قطعات در بیشتر کاربردهای پردازش و کنترل سیگنالهای الکتریکی روز به روز بیشتر میشود. از این رو علاوه بر تأمین امنیت نرمافزاری، اطمینان از امنیت سختافزاری این قطعات از اهمیت ویژهای برخوردار است. تروژانهای سختافزاری یکی انواع حملات سخت افزاری است که طی سالهای اخیر بسیار مورد توجه طراحان مدارهای مجتمع قرار گرفته است.
در این مقاله راهکاری مؤثر جهت کشف این نوع بدافزار، با تجزیه و تحلیل سیگنال کانال جانبی توان مصرفی در حوزه فرکانس ارائه شده است. به منظور ارزیابی عملی ایده، از برد SASEBO-W استفاده شده است. الگوریتم رمز AES روی تراشه Xilinx-Spartan6 پیادهسازی شده و توان مصرفی هستهی آن حین انجام عملیات رمزنگاری به ازای بردارهای ورودی مختلف اندازهگیری شده است. در نهایت با انجام پردازشهای لازم روی نمونههای جمعآوری شده، چگونگی کشف موفقیتآمیز حضور یک نمونه تروژان از نوع شمارنده را با استفاده از این روش جدید ارائه شده است.
-1 مقدمه
امروزه در بیشتر سامانههای الکترونیکی به ویژه کاربردهای حساس رمزنگاری، از مدارهای مجتمع استفاده میشود. از این رو در این عرصه، توجه به حفظ امنیت و قابلیت اطمینان این سامانهها روز به روز در حال افزایش است.
فرآیند طراحی و ساخت تراشه مدارهای مجتمع مراحل مختلفی دارد که در برخی از این مراحل امکان نفوذ عامل خارجی محتمل تر بوده و گاهی غیر قابل اجتناب میباشد. از طرفیفرآیند تولید و ساخت تراشه معمولاً در کارخانهای خارج از سازمان طراحی تراشه انجام میپذیرد که این مسئله احتمال نفوذ و تغییر طرح اصلی را افزایش میدهد. یکی از حملات سخت-افزاری به مدارهای مجتمع که امروزه بسیار مورد توجه قرار گرفته است، تروژانهای سختافزاری1 نام دارند. تروژان سختافزاری عبارت است از مداری که در طول فرآیند طراحی و ساخت تراشه توسط طراحان مدار و یا کارخانهی اصلی، در مدار اصلی گنجانده شده و باعث تغییرات خرابکارانه در عملکرد مدار میشود.
با توجه به تنوع زیاد مدارهای تروژان و عملکرد پنهان آن در سطح وسیعی از مدارهای لاجیک تراشه، تشخیص مدارهای تروژان در تراشه پس از ساخت و با استفاده از تست لاجیک آن، بسیار دشوار و گاهی غیر عملی میباشد. امروزه روش آنالیز سیگنالهای کانال جانبی1 محتملترین روش برای تشخیص تروژان محسوب میشود؛ چراکه این روش با کارآیی بالا، نتایج خوبی را در تشخیص با کمترین هزینه ارائه کردهاست و از آن مهمتر اینکه برای استفاده از آن نیاز به تخریب تراشه نداریم.
در ادامهی این مقاله ابتدا در بخش 2 مختصری در رابطه با کارهای انجام شده در این زمینه توضیح داده میشود و در بخش 3 با روشهای موجود در تشخیص تروژان آشنا میشویم. در بخش 4 نیز با تئوری تشخیص ارائه شده در این مقاله آشنا شده و نتایج آزمایشات انجام شده در این راستا ارائه خواهد شد. و در نهایت در بخش 5 نتیجهگیری از کارهای انجام شده در این مقاله ارائه خواهد شد.
-2 کارهای انجام شده در این زمینه
در سالهای اخیر امنیت سختافزاری و اطمینان در مدارهای مجتمع از موضوعات تحقیقاتی مهم به شمار میرود. . تروژانها می توانند به صورت-های مختلف از قبیل سخت افزارهای بهینه سازی شده در ASIC ها، قطعات تجاری سازی شده بوسیله تولید انبوه - COTS - ، میکروپروسسورها، میکروکنترلرها، پردازشگرهای شبکه و یا پردازشگرهای سیگنالهای دیجیتال - DSP - اجرا شوند. همچنین تروژانها می توانند بصورت برنامه های دائمی مانند رشته ای از بیت ها در FPGA اجرا شوند. اهمیت این موضوع بقدری است که اخیرا گزارشهایی توسط هیات علمی سازمان دفاع امریکا، سنای آمریکا، IEEE و کمیسیون تجهیزات و مواد نیمه هادی - SEMI - ارائه شده است.
در زمینهی دستهبندی تروژانهای سختافزاری مقالهی [4] در سال 2008 یک تقسیمبندی کلی با نگاه همه جانبه بر اساس مشخصات فیزیکی، نوع مدار تحریک و عملکرد مدار تروژان ارائه کرده است. بعد از آن مقالهی [5] در سال 2010 با نگاه کلیتر به نوع عملکرد مدار اصلی تروژان و مدار تحریک آن یک تقسیمبندی کلی از آن ارائه میکند. در نهایت مقالهی [6] در سال 2010 این تقسیمبندی را با نگاهی جدیدتر و کاملتر وسعت بخشیده است و یک طرح دقیقتر از مجموعهی تروژانهای سختافزاری ارائه کرده است.
در راستای بررسی اثر تروژان بر مدارات تراشه، محققان طرحهایی برای پیاده-سازی تروژانهای مختلف مطرح کردهاند و با استفاده از روشهای موجود میزان تشخیص آنها را سنجیدهاندعموماً. مبنای اصلی عملکرد تروژانهای مطرح شده بر پایه عملکرد یک شمارنده و یا یک مقایسه کننده میباشد. اکثر تروژانها برای فعال شدن به یک نوع تحریک نیاز دارند. این تحریک میتواند از طرف فعالسازهای خارجی مثل کلید، آنتن، حسگرهای محیطی و یا بلوک-های الکترونیکی دیگر در خارج تراشه باشد؛ و یا میتواند با در نظر گرفتن و مقایسه چند گره خاص از مدار اصلی تراشه باشد.
تا به حال کارهای زیادی درر زمینهی تشخیص تروژان انجام شده است. آنالیز سیگنالهای کانال جانبی شامل توان و زمان از جمله مهمترین روشهای مطرح در این زمینه میباشند. مراجع [10] تا [15] از مهمترین مقالات مطرح در این زمینه میباشند. در هر یک از این مقالات با آنالیز ریاضی و شبیه-سازیهای کامپیوتری روشهایی برای کشف تروژان با استفاده از سیگنالهای کانال جانبی توان و یا تأخیر مطرح شده است.
از جمله مقالات کلیدی در این زمینه میتوان به مقالهی [10] و[14] و مقالهی[12] اشاره کرد. مقالهی [10] یک روش تعریف شناسه با استفاده از سیگنال کانال جانبی توان مصرفی تراشه را، برای هر تراشه بدون تروژان مطرح میکند. سپس با استفاده شناسههای بدست آمده، سالم یا ناسالم بودن سایر تراشههای مشکوک - از نظر حضور تروژان - تعیین میشود. روش مطرح شده در [14] مشابه [10] است با این تفاوت که در آن به جای توان مصرفی از سیگنال کانال جانبی تأخیر - زمان - استفاده شده است. مرجع [12] نیز سیگنال زمانی جریان منبع تغذیه در پورتهای مختلف را در نظر گرفته و آنالیز میکند و در انتها با ارائه یک تکنیک کالیبراسیون اثر تغییرات محیطی آزمون را کاهش میدهد.
با وجود نوآوری و تلاشهای بسیار انجام شده در مقالات نام برده، تنها در تعداد محدودی از آنها روش مطرح شده را با یک تست عملی نیز نشان داده-اند. در این مقاله بر آن شدیم تا علاوه بر ارائه روشی جدید از تحلیل سیگنال کانال جانبی توان مصرفی تراشه برای کشف تروژان در آن، با استفاده از نمونههای بدست آمده از تست عملی روی یک تراشه FPGA نیز درستی و برتری روش پیشنهادی را با اثبات برسانیم.
-3 راههای شناسایی تروژانهای سختافزاری
با توجه به روشهای ممکن برای پیادهسازی انواع تروژان، خطر احتمال وجود آنها در قطعات الکترونیکی همواره رو به افزایش است. در نتیجه در این راستا پیدا کردن روشی مناسب برای شناسایی تروژانها به ویژه در تراشههای حساس امنیتی بسیار اهمیت پیدا میکند. تا به امروز روشهای مختلفی در مقالات برای شناسایی تروژان معرفی شده است که از نظر عملکردشان می-توان آنها را را به دو دستهی کلی مخرب و غیر مخرب تقسیم کردهاند. روش-های ارائه شده برای تشخیص تروژان با توجه به ساختار آنها در چهار دسته قرار میگیرند:
1. بازرسی یا معاینه فیزیکی : در این روش با دسترسی فیزیکی و اعمال مهندسی معکوس بر تراشه به حضور تروژان در آن پی میبرند. [9] این روش جزء روشهای مخرب بوده و برای عملی کردن آن به تجهیزات بسیار دقیق و گران قیمتی نیاز میباشد.
2. آزمونهای عملکرد مدار: در این روش ابتدا مجموعهای از ورودیهای مختلف به تراشه اعمال شده و خروجیهای مربوط به هر یک ثبت میگردد. در ادامه با مقایسه خروجیهای بدست آمده با الگوهای مبنا به حضور یک نقص فیزیکی و یا تروژان در تراشه پی برده میشود. این روش غیر مخرب بوده و در مواردی که تعداد پینهای ورودی زیاد باشد تشخیص به وسیلهی آن بسیار مشکل خواهد بود.
3. تکنیکهای آزمون خودکار تعبیه شده در تراشه: هر تراشه شامل اجزایی است که وظیفهی انجام اعمال کلیدی مدار را بر عهده دارند. در تکنیک آزمون خودکار در حین طراحی تراشه و قبل از ساخت آن بلوکهای دیگری نیز در کنار بلوک عملگر اصلی قرار داده میشوند تا بعد از ساخت درستی مدار اصلی را تست کنند. بعد از تست از تراشه مورد نظر مشخصاتی بدست میآید که با مقایسهی این مشخصات با مقادیر بدست آمده از تست تراشه سالم، به وجود نقص و یا تروژان در تراشه پی برده میشود.
4. آنالیز کانال جانبی: هر قطعه الکترونیکی وقتی از نظر الکتریکی فعال میشود سیگنالهای مختلف مثل میدان مغناطیسی و الکتریکی از خود منتشر میکنند. با آنالیز سیگنال-های منتشر شده از آن میتوان اطلاعاتی در رابطه با عملیات درون آن و دادههایی که پردازش میکند پیدا کرد. سیگنالهای کانال جانبی معمول مورد استفاده عبارتند از:
1. اطلاعات زمانی
2. توان مصرفی
3. آنالیزهای الکترومغناطیسی
4. آنالیزهای گرمایی
ایده اصلی این روش به صورت اندازهگیری یکی از سیگنالهای کانال جانبی نام برده و مقایسه آن با مقادیر مربوطه در تراشههای مرجع میباشد. در نتیجه اکثر روشهایی که بر اساس آنالیز کانال جانبی معرفی شده است به تعداد اندکی از تراشههای سالم و بدون تروژان به عنوان مرجع نیاز دارند که به نمونههای طلایی1 معروفند.
تا به امروز روشهای تشخیص تروژان با استفاده از آنالیز سیگنالهای کانال جانبی احتمالاً تنها بر روی تراشههایی ممکن خواهد بود که خودمان آن را طراحی کرده باشیم و در مورد تراشههایی که از طراحی درون آنها هیچ اطلاعی نداریم ممکن نخواهد بود. علاوه بر این همانطور که گفته شد هیچ یک از این مقالات برای اثبات روش خود از تست عملی روی تراشه استفاده نکردهاند. در نتیجه میتوان گفت تا امروز تعداد روشهای ممکن و غیر مخرب برای تشخیص تروژان بسیار محدود بوده و در بیشتر موارد غیر ممکن می-باشد.
-4 بررسی روش شناسایی با آنالیز سیگنال کانال جانبی توان
-1-4 تئوری تشخیص تروژان
در این مقاله از روش آنالیز سیگنال توان مصرفی برای تشخیص تروژان استفاده شده است. تئوری تشخیص تروژان بر پایه آنالیز توان اولین بار در [10] مطرح شده است. کل توان مصرفی در هر قطعه از دو بخش عمده تشکیل شده است: توان دینامیک و توان استاتیک. توان دینامیک مربوط به رفتار سوئیچینگ قطعه است، در نتیجه به فرکانس کاری آن بستگی دارد و توان استاتیک مربوط به زمانی است که قطعه در حالت دائمی قرار دارد. با توجه به [10] برای توان کل مصرفی مدار میتوان رابطهی زیر را در نظر گرفت:
در این رابطه پارامترهای C و Qse و VDD وابسته به تکنولوژی بوده و پارامترهای N، f و Ileak به ترتیب فعالیت سوئیچینگ، فرکانس سیگنال ساعت و جریان نشتی میباشند. این جریان نشتی در اثر حضور هر گونه گیت فعال یا غیر فعال در مدار، متناسب با تعداد این گیتها تغییر میکند. از آنجا که توان دینامیک با فرکانس سیگنال ساعت رابطه خطی داشته و توان استاتیک با مساحت اشغالی متناسب است و به فعال بودن یا نبودن تروژان بستگی ندارد، میتوان با آزمون مدار در فرکانسهای پایین به راحتی حضور تروژان با مساحت بزرگ در مدار را تشخیص داد.
با این وجود، اختلاف ایجاد شده در توان مصرفی در اثر حضور تروژان بسیار ناچیز است و به راحتی قابل تشخیص نیست. از این رو برای تشخیص تروژان باید با استفاده از روشهای ریاضی موجود، دادههای بدست آمده را آنالیز کنیم. در این مقاله از روش آنالیز Decomposition - استفاده شده است.
-2-4 مراحل کار در تشخیص تروژان
مراحل انجام کار برای تشخیص تروژان با استفاده از آنالیز سیگنال توان به صورت شکل1 میباشد.
شکل.1 مراحل اصلی کار در تشخیص تروژان
با توجه به بلوک دیاگرام نشان داده شده در شکل1 مراحل اصلی در تشخیص تروژان را میتوان به این ترتیب نام برد: - 1 - اجرای تستهای لاجیک مدار و تکرار آن به ازای هر ورودی بر روی نمونه تراشههای موجود. - 2 - انتخاب چند تراشه به طور تصادفی و معاینه فیزیکی برای اطمینان از سلامت آنها. - 3 - به دلیل حساس بودن مقادیر اندازهگیری شده به نویز ابزار تست، آزمایش را برای هر ورودی چند بار تکرار میکنیم. با متوسطگیری از مقادیر بدست آمده می-باشد.