رمزگشایی تراشه همچنین به عنوان رمزگشایی تک تراشه (رمزگشایی IC) شناخته میشود. از آنجایی که تراشههای میکروکامپیوتر تک تراشهای در محصول رسمی رمزگذاری شدهاند، برنامه را نمیتوان مستقیماً با استفاده از برنامهنویس خواند.
به منظور جلوگیری از دسترسی غیرمجاز یا کپی برنامههای روی تراشه میکروکنترلر، اکثر میکروکنترلرها دارای بیتهای قفل رمزگذاری شده یا بایتهای رمزگذاری شده برای محافظت از برنامههای روی تراشه هستند. اگر بیت قفل رمزگذاری در حین برنامهنویسی فعال (قفل) شود، برنامه موجود در میکروکنترلر نمیتواند مستقیماً توسط یک برنامهنویس معمولی خوانده شود، که به آن رمزگذاری میکروکنترلر یا رمزگذاری تراشه میگویند. مهاجمان MCU از تجهیزات ویژه یا تجهیزات خودساخته استفاده میکنند، از نقاط ضعف یا نقصهای نرمافزاری در طراحی تراشه MCU سوءاستفاده میکنند و از طریق روشهای فنی مختلف میتوانند اطلاعات کلیدی را از تراشه استخراج کرده و برنامه داخلی MCU را به دست آورند. به این کار کرک کردن تراشه میگویند.
روش رمزگشایی تراشه
۱. حمله نرمافزاری
این تکنیک معمولاً از رابطهای ارتباطی پردازنده استفاده میکند و از پروتکلها، الگوریتمهای رمزگذاری یا حفرههای امنیتی موجود در این الگوریتمها برای انجام حملات بهره میبرد. یک نمونه معمول از یک حمله نرمافزاری موفق، حمله به میکروکنترلرهای اولیه سری ATMEL AT89C است. مهاجم از حفرههای موجود در طراحی توالی عملیات پاک کردن این سری از میکروکامپیوترهای تک تراشهای استفاده کرد. پس از پاک کردن بیت قفل رمزگذاری، مهاجم عملیات بعدی پاک کردن دادهها در حافظه برنامه روی تراشه را متوقف کرد، به طوری که میکروکامپیوتر تک تراشهای رمزگذاری شده به میکروکامپیوتر تک تراشهای رمزگذاری نشده تبدیل میشود و سپس از برنامهنویس برای خواندن برنامه روی تراشه استفاده میکند.
بر اساس سایر روشهای رمزگذاری، میتوان برخی تجهیزات را طوری توسعه داد که با نرمافزارهای خاص برای انجام حملات نرمافزاری همکاری کنند.
۲. حمله تشخیص الکترونیکی
این تکنیک معمولاً ویژگیهای آنالوگ تمام اتصالات برق و رابط پردازنده را در حین عملکرد عادی با وضوح زمانی بالا رصد میکند و با نظارت بر ویژگیهای تابش الکترومغناطیسی آن، حمله را پیادهسازی میکند. از آنجا که میکروکنترلر یک دستگاه الکترونیکی فعال است، هنگام اجرای دستورالعملهای مختلف، مصرف برق مربوطه نیز متناسب با آن تغییر میکند. به این ترتیب، با تجزیه و تحلیل و تشخیص این تغییرات با استفاده از ابزارهای اندازهگیری الکترونیکی ویژه و روشهای آماری ریاضی، میتوان اطلاعات کلیدی خاصی را در میکروکنترلر به دست آورد.
۳. فناوری تولید خطا
این تکنیک از شرایط عملیاتی غیرعادی برای ایجاد اشکال در پردازنده استفاده میکند و سپس دسترسی اضافی برای انجام حمله را فراهم میکند. پرکاربردترین حملات ایجادکننده خطا شامل افزایش ولتاژ و افزایش کلاک است. حملات ولتاژ پایین و ولتاژ بالا میتوانند برای غیرفعال کردن مدارهای حفاظتی یا مجبور کردن پردازنده به انجام عملیات نادرست استفاده شوند. گذراهای کلاک ممکن است مدار حفاظتی را بدون از بین بردن اطلاعات محافظتشده، مجدداً تنظیم کنند. گذراهای برق و کلاک میتوانند بر رمزگشایی و اجرای دستورالعملهای فردی در برخی از پردازندهها تأثیر بگذارند.
۴. فناوری پروب
این فناوری به این صورت است که سیمکشی داخلی تراشه را مستقیماً در معرض دید قرار میدهد و سپس میکروکنترلر را مشاهده، دستکاری و در آن اختلال ایجاد میکند تا به هدف حمله دست یابد.
برای راحتی، افراد چهار تکنیک حمله فوق را به دو دسته تقسیم میکنند، یکی حمله نفوذی (حمله فیزیکی)، این نوع حمله نیاز به تخریب بستهبندی و سپس استفاده از تجهیزات تست نیمههادی، میکروسکوپها و میکروپوزیشنرها در یک آزمایشگاه تخصصی دارد. تکمیل آن میتواند ساعتها یا حتی هفتهها طول بکشد. همه تکنیکهای میکروپروبینگ حملات تهاجمی هستند. سه روش دیگر حملات غیرتهاجمی هستند و میکروکنترلر مورد حمله از نظر فیزیکی آسیب نمیبیند. حملات غیرنفوذی در برخی موارد به ویژه خطرناک هستند زیرا تجهیزات مورد نیاز برای حملات غیرنفوذی اغلب میتوانند خودساخته و ارتقا داده شوند و بنابراین بسیار ارزان هستند.
بیشتر حملات غیرتهاجمی مستلزم آن است که مهاجم دانش خوبی در مورد پردازنده و نرمافزار داشته باشد. در مقابل، حملات کاوشگر تهاجمی به دانش اولیه زیادی نیاز ندارند و معمولاً میتوان از مجموعهای گسترده از تکنیکهای مشابه علیه طیف وسیعی از محصولات استفاده کرد. بنابراین، حملات به میکروکنترلرها اغلب از مهندسی معکوس نفوذی شروع میشوند و تجربه انباشته شده به توسعه تکنیکهای حمله غیرتهاجمی ارزانتر و سریعتر کمک میکند.