امروزه دنیای الکترونیک به طور ویژه ای با زندگی افراد گره خورده است. به طوری که به جرات میتوان گفت تمام افراد با حد اقل یک وسیله الکترونیکی یا الکتریکی سروکار دارند. این ارتباط با پیشرفت سریع تکلونوژی بیشتر و پیچیدهتر نیز خواهد شد.
همچنین دنیای الکترونیک یک دنیای بسیار گسترده است که در تمام حوزهها از صنعت لوازم خانگی تا پزشکی و دفاعی و مخابراتی و ... ورود کرده است. هر دستگاه پیرامون ما امروزه دارای یک بخش الکترونیکی است. این بخش وظیفه کنترل و فرماندهی عملکرد دستگاه را دارد.
انواع بخش های الکترونیکی یک دستگاه
بخشهای الکترونیکی یک دستگاه عموما به صورت زیر است:
• واحد کنترل وپردازنده
• واحد تغذیه
• واحد عملگرها و خروجی ها
• واحد سنسورها و ورودی ها
• واحد نمایشگر و رابط کاربری سریال
که هرکدام از این بخشها در ارتباط با سایر بخشها به عملکرد صحیح دستگاه کمک میکند.
بخش پردازنده دستگاههای الکترونیکی شامل آی سیهای برنامه پذیر مانند میکروکنترلرها و fpga ها و ای سیهای حافظه است. این ای سیها با برنامه ریزی توسط فرد یا شرکت سازنده عملکرد دستگاه را نشان میدهد و در عمل به عنوان واحد مغزی و فرماندهی دستگاه عمل میکند. برای آشنایی بیشتر با مقاله FPGA چیست قرار گرفته در همین سایت را مطالعه فرمایید.
برنامه نرم افزاری روی این ای سی ها بسته به نوع ای سی، شرکت سازنده و سایر موارد مانند الگوریتم انتخابی و محیط ide برنامه نویسی بخش مهم قسمت کنترل و پردازنده است. هر شرکت بسته به کاربرد دستگاه کد نرم افزاری مناسب و بهینه ای روی این ای سی ها پیاده میکند.
این برنامهها که به صرت متنی توسط برنامهنویس در محیط IED مخصوص میکروکنترلر نوشته می شود توسط کامپایلر به کد هگز و در نهایت به صورت زبان ماشین یعنی صفر و یک روی بخش حافظه میکروکنتلر قرار میگیرد و درواقع این توالی صفر و یک معنا دار برای میکروکنترلر عملکرد واحد های مختلف آن را مشخص میسازد.
قفل کردن ای سی های برنامه پذیر
گاهی پیش میآید که نویسنده کد یک میکروکنترلر برای حافظت از آن برنامه را روی آی سی لاک یا قفل میکند. که برای این کار شما باید با مفهوم اینکه میکروکنترلر چیست آشنا باشید.
لاک کردن یک میکروکنترلر به معنای اعمال تنظیمات و محدودیتهایی در دستگاه است که اجازه دسترسی یا تغییر تنظیمات آن را به افراد غیرمجاز نمیدهد. این کارها به دلایل مختلفی انجام میشوند، از جمله:
1. حفاظت از برنامه و کد منبع: یکی از دلایل اصلی برای لاک کردن یک میکروکنترلر، حفاظت از کد منبع و برنامههای مخصوص به دستگاه است. این اقدام جلوی دسترسی به کد منبع را توسط افراد غیرمجاز میگیرد و از کپی و یا تغییر برنامهها توسط شخصیتهای ناخواسته جلوگیری میکند.
2. محافظت از اطلاعات حساس: در برخی موارد، میکروکنترلرها دارای اطلاعات حساسی مانند کلیدهای رمزگذاری یا اطلاعات مربوط به امنیت هستند. لاک کردن میکروکنترلر میتواند از دسترسی غیرمجاز به این اطلاعات جلوگیری کند.
3. مدیریت تنظیمات سختافزاری: لاک کردن میکروکنترلر میتواند به تنظیم تنظیمات سختافزاری و پارامترهای مختلف آن کمک کند. این امر معمولاً در مواردی که تغییر تنظیمات توسط کاربران نهایی ممکن است مشکلات عملکردی ایجاد کند، مفید است.
4. کنترل نسخهها: لاک کردن میکروکنترلر میتواند به کنترل نسخههای مختلف برنامه و فریمورهای مورد استفاده در دستگاه کمک کند. این کار میتواند به بهروزرسانی و پشتیبانگیری از نرمافزارها و کنترل نسخهها کمک کند.
5. جلوگیری از تغییرات ناخواسته: لاک کردن میکروکنترلر میتواند از تغییرات ناخواسته در تنظیمات و کدهای مخصوص به دستگاه جلوگیری کند که ممکن است به عنوان ناپایداریها و مشکلات عملکردی تعبیر شوند.
6. احراز هویت: لاک کردن میکروکنترلر به احراز هویت کاربران و دسترسی به دستگاه مرتبط با آن کمک میکند. این مسئله مهم است زمانی که تنها افراد مجاز به تنظیمات و استفاده از دستگاه دسترسی داشته باشند.
به طور کلی، لاک کردن یک میکروکنترلر برای حفاظت از کد منبع، اطلاعات حساس، تنظیمات سختافزاری، و مدیریت عملکرد دستگاه از دسترسی غیرمجاز و تغییرات ناخواسته جلوگیری میکند.
لاک کردن میکروکنترلر درخانوادههای مختلف روشهای مختلف دارد برای مثال در خانوادههای avr از طریق تنظیم فیوزبیتها که بیتهای سخت افزاری برای تنظیمات کلی میکروکنترلر از جمله منابع تغذیه و کلاک و ... هستند صورت میگیرد. یا در خانوادههای stm به کمک تنظیم نرم افزاری در محیط IDE این حافظت صورت میگیرد. که میتوان هر گونه از حفاظت مانند عدم دسترسی به خواندن کد، عدم دسترسی به نوشتن کد یا هر دو را تنظیم کرد.
شکستن لاک میکروکنترلر
گاهی ما برای تعمیر یا مهندسی معکوس برد الکترونیکی نیاز داریم تا برنامه موجود روی میکروکنترلر آن را داشته باشیم. این اتفاق اگر برنامه روی میکروکنترلر لاک نباشد به سادگی رخ میدهد و میتوان به کمک نرم افزار و دستگاههای پروگرمر مانند tnm7000 و ... برنامه روی آی سی را خواند و آن را به صورت کد هگز و باینری در اختیار داشت.
اما اگر برنامه روی آی سی لاک باشد که معمولا به این صورت است خواندن آن کاری دشوار خواهد بود. معمولا شرکتهایی که محصولی به بازار عرضه میکنند برای حافظت از محصول خود برنامه روی آی سی خود را لاک میکنند.
اگرچه خواندن برنامه میکرو قفل شده کار دشواری است اما نشدنی نیست. گاهی ما برای مهندسی معکوس یک برد نیاز داریم تا این برنامه را در اختیار داشته باشیم.
در یک مفهوم فنیتر، هک آی سی عبارت است از دستکاری یا مهندسی معکوس آن که در راستای درک چگونگی عملکرد آی سی، اصلاح آن و یا دور زدن اقدامات امنیتی انجام میگیرد.
فلذا باید توجه داشت که در مهندسی معکوس برد الکترونیکی گام اول امکان سنجی خواندن برنامه روی میکروکنترلر آن است. چراکه در غیر این صورت ممکن است زمان و هزینه بسیار صرف شود و در نهایت به دلیل عدم امکان دسترسی به برنامه میکروکنترلر این کار تماما متوقف شود.
چگونه یک آی سی را کرک کنیم
به طور خلاصه کرک IC به پروسهی رمزگشایی آن با استفاده از روشهای مهندسی معکوس نیمه هادی اشاره دارد. همچنین هدف از انجام آن، استخراج کد آی سی توسط برنامه نویس میباشد.
به منظور نیل به این مقصود، از روش های زیر برای حمله به آی سی استفاده می کنیم.
1. حمله نرم افزاری
این فناوری معمولاً با استفاده از رابط های ارتباطی پردازنده به IC ها حمله می کند و از پروتکل ها، الگوریتم های رمزنگاری یا حفره های امنیتی در این الگوریتم ها سوء استفاده می کند. یک مثال معمولی از حمله نرم افزاری، حمله به خانواده میکروکنترلرهای اولیه ATMELAT89C بود.
مهاجم از حفرههای موجود در طراحی زمانبندی عملیات پاکسازی سری میکروکنترلرها استفاده کرد: با استفاده از برنامهای که خود طراحی کرده بود، پس از پاک کردن بیت قفل رمزگذاری، مرحله بعدی پاک کردن اطلاعات حافظه برنامه را متوقف کرد. برنامه غیر رمزگذاری شد و سپس فقط برنامه روی تراشه را توسط برنامه نویس خواند.
همچنین می توان از روش های رمزگذاری برای حمله به آی سی، بر اساس توسعه دستگاه های مهاجم جدید، با برخی نرم افزارها برای انجام حملات نرم افزاری استفاده کرد. اخیراً دستگاه مهاجمی در چین به نام تجهیزات رمزگشایی تراشه Kai Ke Di Technology 51 (طراحی شده توسط یک IC مهاجم Pro از چنگدو، چین) در چین وجود داشته است.
روش استفاده از برخی برنامه نویسان برای تعیین مکان بایت های درج شده است، از طریق این روش برای یافتن اینکه آیا تراشه دارای شکاف پیوسته است (بایت های FFFF پیوسته تراشه را بیابید). بایت های درج شده قادر به انجام دستورالعمل ارسال برنامه داخلی به خارج، و سپس استفاده از دستگاه رمزگشا برای رمزگذاری، برای بدست آوردن برنامه هستند.
2. حملات تشخیص الکترونیکی:
این فناوری معمولاً ویژگیهای آنالوگ پردازنده را در تمام اتصالات برق و رابط در طول عملکرد عادی با وضوح زمانی بالا و حملات با نظارت بر ویژگیهای تابش الکترومغناطیسی آن نظارت میکند. از آنجایی که میکروکنترلر یک دستگاه الکترونیکی فعال است، مصرف انرژی مربوطه با اجرای دستورالعمل های مختلف تغییر می کند.
این به مهاجم اجازه می دهد تا با تجزیه و تحلیل و تشخیص این تغییرات با استفاده از ابزارهای اندازه گیری الکترونیکی خاص و آمارهای ریاضی، اطلاعات حیاتی خاصی را در میکروکنترلر به دست آورد. همانطور که برای برنامه نویس RF می تواند به طور مستقیم به عنوان خوانده شده مدل قدیمی از برنامه رمزگذاری MCU استفاده از این اصل است.
3. فناوری حمله نسل خطا:
این فناوری از شرایط عملیاتی غیرعادی برای ایجاد خطاهای پردازنده استفاده می کند و سپس پردازنده دسترسی بیشتری را برای فعال کردن حملات فراهم می کند. پرکاربردترین فناوریهای تولید خطا شامل ضربههای ولتاژ و ساعت است. حملات ولتاژ پایین و ولتاژ بالا می توانند برای غیرفعال کردن حفاظت در مدار یا مجبور کردن پردازنده به انجام عملیات نادرست استفاده شوند.
یک انتقال ساعت ممکن است مدار حفاظتی را بدون ایجاد اختلال در اطلاعات محافظت شده بازنشانی کند. انتقال قدرت و ساعت می تواند بر رمزگشایی و اجرای یک دستورالعمل واحد در برخی از پردازنده ها تأثیر بگذارد.
نکته لازم به ذکر این است که عموما شکستن لاک آی سی ها (کرک آی سی) توسط برخی شرکتها در چین صورت میگیرد. سپردن انجام یک کار شکستن لاک میکروکنترلر به چین نیاز به شناخت دقیق شرکتها و اطمینان از انجام کار است.
چراکه بسته به نوع ای سی و سختی آن بعضا هزینه این کار بسیار بالا خواهد بود. فلذا ضروری است که از انجام صحیح و امن کار توسط شرکت مقصد اطمینان داشته باشیم. میتوان گفت که این امر نیاز به تجریه کافی در این زمینه دارد.
شرکت راشا مکاترونیک پارت با سابقه ۱۵ ساله در انجام پروژههای مهندسی معکوس بردهای الکترونیکی در سطوح و صنایع مختلف و همکاری با شرکتهای مورد اعتماد و متخصص در کشور چین طی سالیان متمادی این امینت و اطمینان از صحت و انجام کمترین هزینه و زمان ممکن را برای مشتریان خود تضمین میکند.