بخشی از مقاله

خلاصه

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

تا کنون تکنیکهای مختلفی ارائه شده است، که ما نیزدر این مقاله پیرو کارهای انجام شده مسئله استخراج کد را به یک مسئله طبقه بندی تبدیل میکنیم، بدین صورت که هر دستورالعمل میکروکنترلر را به عنوان یک کلاس در نظر میگیریم و با استفاده از الگوریتمهای کاهش ابعاد مانند PCAو LDAاطلاعات منحصر به فرد هر کلاس را استخراج کرده و سپس با استفاده از الگوریتم KNNطبقه بندی را انجام می دهیم. در اینجا از روش های مختلف کاهش ابعاد استفاده نمودهایم و در نهایت با استفاده از الگوریتم LDA برای 4 دستور به بیشترین نرخ استخراج برابر 80,75 درصد رسیدیم.

.1 مقدمه

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

در تمامی موارد گفته شده به دست آوردن دستورالعمل در حال اجرا بر روی میکروکنترلر کمک بسیاری خواهد کرد. تا کنون از روشهای مختلفی برای به دستآوردن بخشی از کد یا تمامی کد استفاده شده است. دو موضوع مرتبط اما مجزا در رابطه با حملات کانالجانبی مبتنی بر مهندسی معکوس وجود دارد: حملات کانالجانبی به منظور مهندسی معکوس - SCARE* - و حملات کانالجانبی مبتنی بر جداسازی SCARE . - SCANDAL - عمدتا برای بازیابی مقادیر منحصر به فرد یک الگوریتم شناخته شده است و SCANDAL در رابطه با استخراج دستورالعملهای در حال اجرا بر روی یک میکروکنترلر میباشد . هدف ما در این مقاله استفاده از SCANDAL میباشد. تا کنون تکنیک ها و ایدههای مختلفی در جهت این موضوع انجام شده است.

درسال2002، در[1] یک حمله همبستگی بااستفاده از فرهنگ لغت تولید شده برای هردستور ارائه شدهاست، که هر مشاهده ناشناخته با آن مقایسه میشود. درادامه، شبکه عصبی به منظور خودکارسازی فرایند مورد استفاده قرارگرفت و نرخ استخراج 87 برای یک میکروپروسسور با معماری CISC ارائه شد. اما، محققان هیچ نتیجه دقیقی درباره جزئیات حمله به یک میکروکنترلربامعماریRISC ارائه ندادند، و اعلام نمودندکه امکان استخراج کد در میکروکنترلر با معماریRISCوجود ندارد.

درسال2008، در[2] یک تجزیه و تحلیل بر روی یک میکروکنترلر8 بیتیPIC16F687 با معماریRISC ساخت شرکت میکروچیپ ارائه شد، که در آن مدل توانی با دقت خوبی به دست آمده است اما از لحاظ استخراج کد موفق نبوده است، و تنها میتوان برای مسائل عیبیابی از این روش استفاده کرد. بهبود این کار در[3] انجام شد، کهدرآنالگوریتم-هایمختلف کاهش ابعاد مورد آزمایش قرارگرفتند که نتیجه آن نرخ استخراج 70,1 برای دیتای آزمایشی و40,7 برای کد واقعی** بود. علاوه برآن استفاده از مدل پنهان مارکوف به عنوان الگوریتم طبقه بندیکننده، باعث بهبود نتایج برای کد واقعی تا میزان 58 شد.

در[4] نرخ استخراج چشمگیری برای SCANDAL برای میکروکنترلرATXmega163 ارائه داده شد. در این کار روش کاهش ابعاد >5@ - LVKHUʼV / $ با KNN ترکیب شد نرخ استخراج 48,74 به دست آمد و روش mean-PCA [6] باKNN ترکیب شد، نرخ استخراج بهتری در حدود 56,88 ارائه شد. PCA ساده با KNN بهتر از تمام روش های دیگربا نتایج گزارش شده 100 میباشد. اگرچه این نرخ چشمگیر است، اما در تمامی این آزمایشها 39دستور از 130 دستور میکروکنترلر استفاده شده است و همچنین این روش روی کد واقعی تست نشده است.

همانطور که یافته های دیگران نشان می دهد ، اغلب تفاوت زیادی بین نرخ تشخیص داده ها روی دیتای آزمایشی و دیتای واقعی وجود دارد. در نهایت، در[7] بازسازی روش استفاده شده در مرجع [4] بر یک میکروکنترلر متفاوت - اما مشابه - ساخت شرکت میکروچیپ PIC16F687، انجام شد. نرخ استخراخ به دست آمده بر روی کد واقعی با روش کاهش ابعاد - LVKHUʼs LDA با ترکیب الگوریتم KNN به ازای K=10 برابر با %42,13 می باشد و PCA باترکیب KNN به ازای K=10 برابر با 24.76 به دست آمده است. همچنین با استفاده از روشهای گفته شده، نتایج برای کد آزمایشی برابر با %96,24 می باشد.

در[7] از روشی مشابه مراجع[2,3] ودقیقا همان میکروکنترلراستفاده شده است اما نحوهی به دست آوردن اطلاعات کانال جانبی آن متفاوت می باشد، که در مراجع پیشین توان مصرفی مورد استفاده قرار گرفته است، اما دراین مقاله از انتشار الکترومعناطیسی استفاده شده است. همچنین نحوه پروب گذاری نیز بدین صورت می باشد که در 20 نقطه مختلف اندازه گیری انجام شده است. ما در این مقاله پیرو کارهای انجام شده در[7] عمل خواهیم کرد . با این تفاوت که ما از تحلیل توانی استفاده نموده و نرخ استخراج % 80,1 به دست آوردهایم.

در مقایسه با حالت توانی که در مرجع [3] به دست آمده نتایج بهتری به دست آمده است. هر چند نرخ استخراج کمتری نسبت به مرجع [7] دست یافته ایم اما استفاده از تحلیل توان و نحوه اندازه گیری، پیچیدگی کار و مدت زمان مورد نیاز جهت به دست آوردن دیتاها 20 برابر کمتر شده است. همچنین در آنجا از روش تخریبی* برای انجام نمونه برداری استفاده شده است در حالی که ما از روش غیر تخریبی استفاده نموده ایم.

ما ابتدا یک مدل توان مصرفی که در مرجع[2] آمده است را به دست آوردیم و دقیقا به نتایج گفته شده رسیدیم. با توجه به امکانات موجود، به علت کاهش پیچیدگی 4دستور از 30 دستور میکروکنترلر مورد آزمایش را انتخاب نمودیم. سپس روشهای مختلف کاهش ابعاد LDA وPCA بررسی شده است. در نهایت باترکیب دو الگوریتم LDA و KNN به بیشترین نرخ استخراج دست پیدا کرده ایم. درادامه این مقاله، به ترتیب در فصل 2 روش تحقیق و جزئیات الگوریتمهای گفته شده بیان خواهد شد. در فصل 3 روش اندازهگیری و نحوهی انجام آزمایشات توضیح داده شده است و در نهایت در فصل 4 و 5 نتایج حاصل شده و نتیجهگیری های به دست آمده ارائه داده می شود.

.2 روش تحقیق

مساله استخراج کد را به دوقسمت تقسیم می کنیم:-1 مرحله پیش پردازش یا استخراج ویژگی -2 مرحله طبقه بندی هر دستورالعمل میکروکنترلر به عنوان یک کلاس در نظر گرفته میشود. در اولین مرحله باید برای هر دستور یک الگو - که به صورت یک برداراست - که مشخص کننده و جدا کننده از دیگر کلاس ها باشد به دست آوریم که به آن دیتای آزمایشی گفته میشود. سپس توسط الگوریتم طبقه بندی، ورودی ناشناخته را در کلاس های صحیح طبقه بندی می کنیم.

.1-2× مرحله پیش پردازش:

هر کلاس شامل یک بردار باL نمونه می باشد. این نمونهها شامل اطلاعات اضافه می باشند، لذا از روش های کاهش ابعاد مانند LDA یا PCA استفاده شده است تا اطلاعات اضافه را حذف کنیم و در نتیجه پیچیدگی محاسبات با این روش کاهش مییابد.

PCA .1-1-2×

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

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید