SpareNet Servers Advertising & Link Exchange

اطلاعیه

بستن
هیچ اطلاعیه ای هنوز ایجاد نشده است .

Side Channel Attacks ( Timing Analysis — Password Recovery)

بستن
X
 
  • فیلتر
  • زمان
  • نمایش
پاک کردن همه
نوشته‌های جدید

  • Side Channel Attacks ( Timing Analysis — Password Recovery)

    سلام به دوستان عزیز

    اگر مقالات ما را دنبال نمائید توضیحات تکمیلی در مورد درک رمزگذاری aes 256 خدمت شما ارائه دادیم در توضیحات اشاره شد که AES 128 آسیب پذیر به نوعی حمله با نام Side Channel Attacks میباشد در ایم مقاله میخواهیم نقل قولی از یکی از گروههای تحقیقاتی در این زمینه را که موفق به حل CTF با مزمون شکستن رمز AES 128 شده است را به شما به زبان فارسی به اشتراک بزاریم . با ما همراه باشید .

    نقل قول از yan1x0s
    ما به تازگی دوره ای را در دانشگاه درباره حملات کانال جانبی به پایان رسانده ایم و خوشحالم که در این قسمت اصول اولیه را با شما در میان بگذارم و در قسمت بعدی به موارد پیشرفته خواهیم پرداخت.
    آنچه من قصد دارم به اشتراک بگذارم یکی از آزمایشگاههای ایجاد شده توسط New AE Technology است.
    من و آناستازیا با هم کار کردیم و به نتایج زیر رسیدیم و هنوز یک مورد پیشرفته برای حملات کانال جانبی به AES (قسمت 2) داریم

    معرفی
    "حملات کانال جانبی" حملاتی هستند که براساس "اطلاعات کانال جانبی" ساخته شده اند.
    اطلاعات کانال جانبی اطلاعاتی است که می تواند از دستگاه رمزگذاری بازیابی شود که نه متن ساده رمزگذاری شود و نه متن رمز شده حاصل فرآیند رمزگذاری است. در گذشته ، یک دستگاه رمزگذاری به عنوان واحدی درک می شد که ورودی متن ساده را دریافت می کند و تولید می کند
    خروجی متن رمز و بالعکس.
    بنابراین حملات بر اساس دانستن متن رمز (مانند حملات فقط متن متن) ، یا دانستن هر دو (مانند حملات متن ساده شناخته شده) یا بر اساس توانایی تعریف متن رمزگذاری شده و سپس دیدن نتایج رمزگذاری (شناخته شده به عنوان حملات متن ساده انتخاب شده).
    امروزه مشخص شده است که دستگاه های رمزگذاری دارای خروجی اضافی و اغلب ورودی های اضافی هستند که متن ساده یا متن رمزدار نیستند. دستگاه های رمزگذاری اطلاعات زمان بندی (اطلاعات مربوط به زمانی را که عملیات انجام می شود) تولید می کنند که به راحتی قابل اندازه گیری است ، تابش های مختلف
    انواع ، آمار مصرف برق (که به راحتی قابل اندازه گیری است) و موارد دیگر. غالباً دستگاه رمزگذاری دارای ورودی های "غیرعمد" اضافی مانند ولتاژ است که می تواند برای ایجاد نتایج قابل پیش بینی اصلاح شود.
    حملات کانال جانبی برای بازیابی کلیدی که دستگاه از آن استفاده می کند ، از برخی یا همه این اطلاعات ، همراه با سایر روشهای تحلیلی رمزنگاری (شناخته شده) استفاده می کند. </s></s>
    تکنیک های تجزیه و تحلیل کانال های جانبی نگران کننده هستند زیرا حملات می توانند به سرعت انجام شوند و گاهی اوقات می توانند با استفاده از سخت افزارهای موجود که از چند صد دلار تا هزاران دلار هزینه دارند ، اجرا شوند.
    مدت زمان مورد نیاز برای حمله و تحلیل به نوع حمله بستگی دارد (تجزیه و تحلیل قدرت دیفرانسیل ، تجزیه و تحلیل قدرت ساده ، زمان بندی و غیره)
    در بخشهای بعدی ، نحوه انجام این نوع حملات و نحوه استفاده از سناریوهای زندگی واقعی را بیان خواهیم کرد.

    برای درک بهتر از الگوریتم AES در برخی نرم افزار ها همانند winrar winzip 7zip و ... برای امنیت بالای رمز گذاری استفاده میشود .

    قبل از شروع به مطالعه ، اگر نمی خواهید از تمام جزئیات مورد نیاز برای این آزمایشگاه مطلع شوید و اگر علاقه ای ندارید خسته می شوید ، فقط کافی است آن را رد کنید و به بخش دستورالعمل های قدرت بروید

    ابزار مورد نیاز
    سخت افزار
    این یک حمله کانال جانبی است ، این بدان معناست که برای حمله به یک سخت افزار نیاز داریم!
    اگر چنین موردی ندارید ، خواندن را متوقف نکنید زیرا ما سعی کردیم همه جزئیات را ارائه دهیم تا در مورد یک چیز شک نکنید. اگر هنوز این کار را می کنید ، به من پیام دهید یا گوگل دوست شماست: D
    تابلوهای ChipWhisperer ناامیدی از راه اندازی سخت افزار حملات کانال های جانبی را برطرف می کنند.
    برای انجام حمله کانال جانبی ، به دو مورد نیاز دارید:
    یک تابلوی ضبط. این یک اسیلوسکوپ روی استروئیدها است: این دستگاه دارای سخت افزار خاصی است که از آن برای گرفتن سیگنال های بسیار کوچک با یک ساعت دقیق همزمان استفاده می کند.
    یک تخته هدف. این به طور معمول پردازنده ای است که می تواند برای انجام نوعی عملیات ایمن برنامه ریزی شود.
    در مورد ما ، ما انتخاب می کنیم که از ChipWhisperer Light Classic استفاده کنیم:
    ChipWhisperer-Lite Bare Board از دو قسمت اصلی تشکیل شده است: یک ابزار ضبط تجزیه و تحلیل قدرت چند منظوره ، و یک صفحه هدف. برد هدف یک میکروکنترلر استاندارد است که می توانید الگوریتم ها را روی آن پیاده سازی کنید. به عنوان مثال اگر می خواهید یک کتابخانه AES را ارزیابی کنید ، می توانید آن کتابخانه را در صفحه هدف برنامه ریزی کرده و تجزیه و تحلیل قدرت را انجام دهید.

    نرم افزار
    پنج راه برای راه اندازی ChipWhisperer وجود دارد:
    ماشین مجازی VMWare: یک تصویر ماشین مجازی از قبل آماده شده را با تمام ابزارهای مورد نیاز از قبل نصب شده دریافت کنید. برای مبتدیان توصیه می شود.
    ● Windows Installer یک باینری ویندوز بگیرید که مخزن ChipWhisperer را روی رایانه شما نصب می کند. شامل کامپایلر WinAVR نیست.
    ip انتشار ChipWhisperer: یک فایل zip با آخرین کد پایدار ChipWhisperer دریافت کنید و آن را در محیط خود اجرا کنید.
    ● بسته PyPi: نصب chip whisperer. فقط شامل نرم افزار است - همراه با فایلهای منبع سخت افزاری ، درایورها یا سیستم عامل مثال نیست.
    ● مخزن Git: جدیدترین ویژگی ها و اشکالات موجود در لبه خونریزی را دریافت کنید. اگر توسعه دهنده باتجربه ای هستید و می خواهید در ChipWhisperer مشارکت کنید ، توصیه می شود.
    در مورد ما ، ما قبلاً ماشین مجازی را داشتیم که توسط NEW AE TECHNOLOGY پیشنهاد شده بود.

    Firmware Setup Build
    برای کار با ChipWhisperer ، باید پارامترهای تنظیم را تعیین کنیم:
    CO SCOPETYPE - سخت افزار ضبط را برای استفاده نشان می دهد. موارد کاربردی از ChipWhisperer Lite استفاده می کنند که با مقدار 'OPENADC' مطابقت دارد.
    AT PLATFORM - هدفی را که به آن حمله می کنیم انتخاب می کند. هدف XMEGA با استفاده از مقدار 'CWLITEXMEGA' مشخص شده است.
    ● CRYPTO_TARGET - کتابخانه رمزنگاری را برای استفاده در هدف انتخاب می کند. هنگام استفاده از توابع رمزنگاری ، مقدار باید برای هدف XMEGA "AVRCRYPTOLIB" باشد. در صورت عدم نیاز به کتابخانه رمزنگاری ، از "NONE" استفاده کنید.
    پروتکل ارتباطی
    SimpleSerial پروتکل ارتباطی است که تقریباً برای تمام پروژه های آزمایشی ChipWhisperer استفاده می شود. این یک پروتکل سریال بسیار اساسی است که به راحتی در اکثر سیستم ها قابل پیاده سازی است.
    همه پیام ها با متن ASCII ارسال می شوند و به طور معمول با یک خوراک خط خاتمه می یابند (‘\ n’). با این کار می توانید از طریق یک شبیه ساز ترمینال استاندارد با سیستم simpleserial ارتباط برقرار کنید.


    Firmware build procedure
    First we need to specify the setup parameters :
    — SCOPETYPE​ = OPENADC # ChipWhisperer Lite’s capture hardware
    — PLATFORM​ = CWLITEXMEGA # ChipWhisperer’s builtin target
    — CRYPTO_TARGET​ = NONE # No need for a cryptography library


    این عملکرد اصلی میان افزار است. در مرحله اول ، سیستم عامل (CWLITEXMEGA) مقداردهی اولیه می شود.
    پس از آن ، فرستنده جهانی ناهمزمان جهانی (UART) آغاز می شود. بنابراین هدف XMGA می تواند شخصیت های ascii را به ChipWhisperer بفرستد (به طرح بالا مراجعه کنید). سپس ، پین ماشه شروع می شود. ماشه برای نشان دادن Chipwhisperer استفاده می شود که باید شروع شود.
    پس از آن ، پیام "سلام" از طریق UART برای ChipWhisperer ارسال می شود.
    توابع simpleserial_XXXX برای تنظیم ماژول سریال ساده است:
    • simpleserial_init (): یک دستور v برای نسخه اضافه کنید.
    • simpleserial_addcmd (char ، len ، fp): یک فرمان 'char' از طول 'len' اضافه می کند و توابع آن را 'fp' ارجاع می دهد
    • get_key (): دستوراتی که با نویسه "k" شروع می شوند و ورودی با طول "16" را می پذیرند: یک کلید 16 بایت دریافت می کنید.
    • get_pt (): دستوراتی که با کاراکتر "p" شروع می شوند و ورودی با طول "16" را می پذیرند: متن ساده 16 بایت را دریافت کنید.
    • reset (): دستوراتی که با نویسه ‘x شروع می شوند و نیازی به ورودی ندارند: بافر دریافت را بازنشانی می کند.
    • simpleserial_get (): ورودی را می خواند ، می یابد کدام دستور است ، پارامتر مربوط به دستور را می خواند ، دستور را فرا می خواند.
    تدوین کد
    یک بار ، ما کد را نوشتیم و همه وابستگی ها را داریم. ما باید بتوانیم کد را کامپایل کنیم تا یک فایل باینری داشته باشیم که توسط هدف ما قابل اجرا باشد.
    برای کامپایل کد ، باید ابزار avr-gcc داشته باشیم:

    ما یک Makefile می نویسیم ، جایی که منبع هدف و پرونده وابستگی ها را مشخص می کنیم.

    ما ابزار make را اجرا می کنیم و همچنین پارامترهای مورد نیاز را که در ابتدای این بخش دیده ایم ارائه می دهیم.
    در نتیجه یک ELF (فایل پیوند اجرایی) و یک فایل HEX (سیستم عامل با فرمت باینری) بدست می آوریم که می تواند تا هدف فلش شود:

    سیستم عامل را فلش کنید
    به منظور بارگذاری سیستم عامل در هدف ، از ChipWhisperer Python API استفاده خواهیم کرد.
    ابتدا ماژول را وارد می کنیم:
    وارد کننده chip whisperer به عنوان cw
    در مرحله بعدی ما باید به پایان دامنه سخت افزار متصل شویم. `cw.scope` سعی خواهد کرد نوع خودکار را تشخیص دهد:
    دامنه = cw.scope ()
    همچنین باید رابط کاربری را با taget تنظیم کنیم
    target = cw.target (دامنه ، cw.targets.SimpleSerial)
    ما می توانیم از تنظیمات پیش فرض برای taget استفاده کنیم
    fush.default_setup ()
    سرانجام ، ما با ارائه دامنه ، نوع برنامه نویس و مسیر سیستم عامل در قالب هگز از عملکرد برنامه نویسی عمومی استفاده خواهیم کرد:
    prog = cw.programmers.XMEGAP برنامه نویس
    fw_path = '../hardware/victims/firmware/simpleserial-base-lab1/simpleserial-base-{}.hex'.format(PLATFORM)
    cw.program_target (دامنه ، برنامه ، fw_path)
    تفاوت قدرت
    اگر بدون خسته شدن به اینجا رسیده اید ، تبریک می گویم ، در غیر این صورت من واقعا می فهمم که وقتی علاقه ندارید ، روند نصب واقعا کسل کننده است.
    برای افرادی که از اولین افراد چشم پوشی کرده اند ، در اینجا یک TL_DR برای شما آورده شده است
    در این مرحله ما:
    - یک تخته هدف: با این کار سیستم عامل (برنامه) اجرا شده روی آن اجرا می شود.
    - یک تابلوی ضبط: این میزان مصرف انرژی تابلوی ضبط را هنگام اجرای برنامه اندازه گیری می کند.
    - SimpleSerial: یک پروتکل برای برقراری ارتباط با صفحه ضبط ما به طوری که نتیجه مصرف برق را ارسال می کند و همچنین ما می توانیم با هدف ارتباط برقرار کنیم و به او بگوییم برخی موارد را برای ما اجرا کند.
    برنامه واقعی که روی هدف داریم همانطور که در تصویر بالا نشان داده شده است: "سلام" را ارسال می کند سپس توابع را برای دریافت متن ساده ، کلیدها یا حتی تنظیم مجدد بافر هدف تنظیم می کند.
    با استفاده از ChipWhisperer API ، می توانیم با یک اسکریپت ساده شروع به اتصال به هدف کنیم و داده ها را بخوانیم:





    ادامه دارد ...

    -----------------------------SAFE MASTER---------------------------
    تاپیک هکر های تازه وارد
صبر کنید ..
X