امنیت و نفوذ, توصیه شده, معرفی, مقاله

همه چیز درباره ریموت کنترل‌های هاپینگ

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

در این مقاله، به بررسی امنیت انواع ریموت کنترل خواهیم پرداخت. پس با سیسوگ همراه باشید.

معرفی اجمالی ریموت هاپینگ

وقتی قرار باشد برای درب ورودی منزل یا مغازه، ریموت کنترل نصب کنید، همه ریموت‌های هاپینگ را پیشنهاد می‌دهند و استدلال می‌کنند که این ریموت‌ها از امنیت بیشتری نسبت به ریموت‌های کدفیکس و کدلرن برخوردار هستند. قبلاً در پست ریموت کدلرن و چگونگی دکد بررسی کردیم که ریموت‌های کدلرن و یا کد فیکس چطور کار می‌کنند؛ مثلاً ریموت‌های کدلرن دارای یک کد 20 بیتی منحصر‌به‌فرد هستند که تک‌تک ریموت‌ها را از هم تفکیک می‌کند یا در ریموت‌های کدفیکس شما می‌توانید با تعیین حالت 8 عدد پایه، کد مورد‌نظر خود را ایجاد کنید.

اما ریموت‌های هاپینگ چطور کار می‌کنند که قادر هستند امنیت بیشتری را تامین کنند. آیا واقعاً ریموت‌های هاپینگ دارای امنیت بیشتری هستند؟

متأسفانه با جستجو در وب فارسی جز این‌که ریموت‌های هاپینگ دارای امنیت بیشتری هستند چیزی دستگیرتان نمی‌شود. حتی تولید‌کنندگان این نوع ریموت کنترل در داخل کشور نیز مقاله‌ای در خصوص امنیت آن‌ها منتشر نکرده‌اند که جای تأمل دارد!

چرا این نوع ریموت‌ها امنیت بالاتری دارند؟ سازوکار آن‌ها به چه صورت است که امنیت بیشتری را تأمین می‌کنند؟ در این مقاله به این سؤالات پاسخ خواهیم داد.

چگونگی هک ریموت‌های کدلرن

ریموت‌های کد لرن و کد فیکس هر دو دارای یک شناسه‌ی منحصر‌به‌فرد هستند که ریموت شما را از دیگر ریموت‌ها جدا می‌کند. این شناسه‌ی منحصر‌به‌فرد در ریموت‌های کدفیکس (PT2262) با تغییر وضعیتِ پایه‌ها، قابل‌تغییر است (عکس زیر ). این مسئله باعث شده که این نوع ریموت‌ها در دسته‌ای با امنیت پایین‌تر، حتی نسبت به ریموت‌های کدلرن قرار بگیرند.

 

فرض کنید شما از این مدل ریموت برای دزدگیر ماشین خود استفاده می‌کنید. اگر سارق بتواند نحوه‌ی اتصال پایه‌ها را متوجه شود (راه‌های مختلفی برای این مسئله وجود دارد که وارد جزئیات نمی‌شویم.) با خرید یک ریموت از همین مدل و تغییر پایه‌های مورد‌نظر مطابق ریموت شما، به‌راحتی و بدون دردسر می‌تواند دزدگیر ماشین شما را کنترل کند. اصلاً فرض کنیم نحوه‌ی اتصال پایه‌ها را نداشته باشد! آی سی PT2262 که در این ریموت‌ها استفاده می‌شود، از 8 پایه برای آدرس‌دهی استفاده می‌کند که در مجموع با توجه به سه حالته بودن هر بیت (متصل به مثبت – متصل به منفی و بدون اتصال) قادر است تقریباً 6500 حالت مختلف را ایجاد کند. اگر دستگاهی بسازیم که حالت‌های مختلف را ایجاد کند و هر حالت 3 ثانیه تداوم داشته باشد، به‌راحتی در مدت‌زمان 5 ساعت می تواند کد ریموت مورد‌نظر را پیدا کند.

به نقل از یک آشنا، در زمان‌های دور که همه دزدگیرها از این نوع ریموت استفاده می‌کردند، چنین دستگاهی ساخته و در پارکینگ دانشگاه آژیر تمام ماشین‌ها را به صدا در آورده است!

در گذشته از این نوع ریموت برای درب ساختمان‌ها و مغازه‌ها استفاده می‌شده که خوشبختانه دیگر استفاده نمی‌شود.

در مورد ریموت‌های کدلرن، مسئله مقداری متفاوت است. کد منحصر‌به‌فرد توسط کارخانه‌ی تولید‌کننده، در آی سی ریموت قرار می‌گیرد و کاربر نمی‌تواند آن را تغییر دهد. همین تغییر کوچک به‌خودی‌خود باعث می‌شود که امنیت به‌مراتب بالاتر برود؛ چرا که افراد نمی‌توانند با دست‌کاری در مدار ریموت، آن را مثل ریموت‌های دیگر تغییر دهند. همچنین کد مذکور 20 بیتی شده است که قادر است 1048576 حالت مختلف ایجاد کند.

ولی همچنان راه هک کردن آن‌ها مسدود نشده است. هکر‌ها می توانند پروتکل ارسال ریموت را شبیه‌سازی کنند و اگر بخواهند از طریق سناریو بالا (سعی و خطا) برای هک ریموت استفاده کنند، مدت‌زمانی در حدود 36 روز لازم است تا با تست کردن کدهای مختلف به کد مورد‌نظر برسند. این احتمالاً در بدترین حالت است ولی خب باز امکان‌پذیر است. از طرفی هکر می‌تواند در شنود سیگنال ارسالی ریموت شما، آن را دکد کند و کد صحیح را به‌دست بیاورد! این راه زیاد زمان‌بر نیست و فقط کافی است هکر در زمان درست در جای درست باشد. این ریموت نیز از امنیت بالایی برخوردار نیست و متأسفانه بخش بزرگی از ریموت‌های درب منازل، از این نوع استفاده می‌کنند.

هک کردن همیشه نیاز به خلاقیت دارد. این‌که بتوانیم راهی که توسط سازنده دیده نشده را پیدا کنیم و با استفاده از آن سیستم را دور بزنیم، علاوه بر دانش کافی در خصوص نحوه‌ی کارکرد و عملکرد سیستم، نیاز به خلاقیت نیز دارد. هکر واقعی انسان خلاقی است و در خصوص امنیت هیچ‌وقت نمی‌توان با اطمینان صحبت کرد.

خوشبختانه بیشتر افراد که خود را هکر می‌نامند هکر واقعی نیستند و از نرم‌افزار‌ها و ابزار‌هایی که توسط افراد دیگر ایجاد شده‌اند و از راه‌های کشف‌شده توسط هکران واقعی استفاده می‌کنند و به سیستم‌های مختلف نفوذ می‌کنند و خود را هکر می‌نامند. این توضیحات برای این ارائه شد که بگوییم قطعاً کسی با این توضیحاتِ مختصر هکر نمی‌شود و قادر به هک سیستم‌های کنترلی شما نخواهد بود، مگر این‌که از قبل هکر بوده باشد.

ریموت‌های هاپینگ

سؤالی که مطرح می‌شود، این است که ریموت‌های هاپینگ چه قابلیتی دارند که باعث می‌شود امنیت بیشتری در پروتکل آن وجود داشته باشد؟

قبل از هر اقدامی، برای این‌که بررسی‌ها بر اساس واقعیت باشد، تعدادی ریموت هاپینگ از بازار تهیه کردیم. دو عدد از آن‌ها را باز کردیم و چیپست و مدار آن‌ها را مورد‌بررسی قرار دادیم:

 

چیپ مورد‌استفاده در هر دو مدل ریموت، hcs301 بود که تولید شرکت Microchip است. آی سی مذکور داری یک EEPROM داخلی است (در ادامه کاربرد آن را توضیح می‌دهیم) که قابلیت پروگرام شدن توسط کاربر را دارا است. یکی از ریموت‌ها درگاه مناسبی برای پروگرام شدن دارد (عکس زیر) و دیگری متأسفانه فاقد چنین درگاهی است که واقعاً امیدوارم که چیپ، قبل از استفاده، پروگرام شده باشد.

 

امنیت در ریموت‌های هاپینگ

رولینگ کد یا (آن‌طور که در بازار شناخته می‌شود) هاپینگ کد، از الگوریتمی استفاده می‌کند که در مقابل حملات تکرار (Replay attack) مقاوم است. نوع حملاتی که در موارد قبلی ذکر کردیم از این نوع حمله بودند؛ یعنی یا با شنود و یا با سعی و خطا، تلاش می‌کردیم کد صحیح را بدست آوریم، ولی این نوع ریموت در مقابل این نوع حملات مقاوم است. اما چطور؟

چیپست HCS301، یک انکدر KeeLoQ می‌باشد که قابلیت کد‌گذاری داده‌های ارسالی را با استفاده از پروتکل KeeLoQ دارد.

سیستم کدگذاری KeeloQ، از یک کلید 64 بیتی برای رمزگذاری داده استفاده می‌کند. در واقع پروگرام شدن آی سی به خاطر تنظیم همین کلید است. کاربر می‌تواند کلید مورد‌نظر خود را برای داده‌های ارسالی توسط ریموت تنظیم کند، به صورتی که فقط گیرنده‌ی مورد‌نظر ما که کلید را دارد، قادر به دکد داده‌های دریافتی از ریموت باشد. اما این رمز‌گذاری چطور به بالا رفتن امنیت کمک می‌کند؟ برای روشن شدن قضیه به عکس زیر دقت کنید:

همان‌طور که در عکس می‌بینید، کدهای ارسالی از سمت ریموت، دارای سه بخش مجزا هستند:

  1. بخش ابتدایی که طبق دیتاشیت 6 بیت است و حاوی 4 بیت وضعیت کلید‌های فشرده است و 2  بیت هم وضعیت ریموت را گزارش می‌کنند (مثل ضعیف شدن باطری).
  2. 28 بیت ادامه، سریال ریموت است. این بخش‌ها کد‌گذاری نشده است و به‌راحتی می‌توان آن‌ها را شبیه‌سازی کرد.
  3. 32 بیت بعد حاوی اطلاعات کدگذاری شده است. این 32 بیت باعث ایجاد تفاوت چشمگیری در امنیت این نوع ریموت‌ها شده است. کدگذاری با استفاده از 64 بیت داده‌ی ذخیره‌شده در EEPROM صورت می‌گیرد.

همان‌طور که در عکس فوق مشخص است، داده‌های کدگذاری شده، حاوی 16 بیت شمارنده و 10 بیت DISC (که خود شامل بیت‌های دیگری است) و 4 بیت هم وضعیت کلید‌های ریموت هستند. اما این داده‌ها چطور به امنیت کمک خواهند کرد؟

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

فرض کنید یک هکر با دستگاه مناسب مشغول شنود سیگنال‌های ارسالی از ریموت شما است و باز فرض کنید کانتر ریموت شما، مقدار 10 را دارد. داده‌های ارسالی توسط گیرنده دریافت می‌شود و دزدگیر غیرفعال می‌شود. هنگام پیاده شدن، کلید ریموت را برای فعال کردن دزدگیر فشار می‌دهید، مقدار کانتر 11 می‌شود، کد ارسال و دزدگیر فعال می‌شود. هکر برای غیر‌فعال کردن دزدگیر ماشین، کد اول را دوباره شبیه‌سازی و ارسال می‌کند. اگر ماشین شما از تکنولوژی ریموت‌های کدلرن و کدفیکس استفاده می‌کرد ، دزدگیر غیر‌فعال می‌شد اما در مورد ریموت‌های هاپینگ این اتفاق نمی‌افتد. ریموت، سیگنال ارسالی هکر را دریافت، قسمت کد شده را دکد و مقدار کانتر را از آن استخراج می‌کند. بله مقدار آن 10 است. آخرین کدی که دریافت شده 11 بوده، پس مقدار 10 را غیرواقعی شناسایی می‌کند و به آن اهمیتی نمی‌دهد. هکر اگر بخواهد دزدگیر را غیر‌فعال کند باید کدی را ارسال کند که مقدار کانتر آن 12 باشد ولی چنین کاری مقدور نیست؛ چرا‌ که کلید رمزگذاری را ندارد و نمی‌تواند داده‌ها را استخراج کند.

این چنین است که این نوع ریموت‌ها در مقابل هک شدن مقاومت بیشتری دارند ولی یادتان باشد: هیچ کاری غیر‌ممکن نیست، حتی غیر‌ممکن! 😉

 

هشدار جدی

متأسفانه مشاهده شده که برخی از تولید‌کنندگان، ریموت کنترل هاپینگ را بدون تعیین کلیدِ کدگذاری مورد‌استفاده و فروش قرار می‌دهند که باعث می‌شود با وجود تکنولوژی بالا، به‌سادگی قابل هک شدن باشند و هیچ گونه امنیتی را برای شما تأمین نمی‌کنند. خرید یک گاوصندوق با تکنولوژی روز دنیا برای محافظت از اسناد کافی نیست. باید درب گاوصندوق را نیز قفل کنید تا کارایی داشته باشد!

 



انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.  همکاری با سیسوگ

 

نوشته های مشابه

19 دیدگاه در “همه چیز درباره ریموت کنترل‌های هاپینگ

  1. Avatar محمد رضا گفت:

    با سلام ممنون بابت اموزش خوبتان در مورد ریموت های
    هاپینگ اگر حالا ریموت دور ازگیرنده بود مقدارش را ایا یکی اضافه می کند روی ریموت در حالی که گیرنده اون کد را نگرفته است و عملا یه نتاقض پیش می ایید در سیستم ممکن است این را روشن و شفاف کنید ممنون

    1. زئوس Zeus زئوس Zeus گفت:

      خوب با یک شرط ساده میشه این تناقض رو رفع کرد ؛ به این شکل که اگر شماره کانتر بزرگتر از شمارنده موجود در گیرنده باشه ؛ شماره بزرگتر ست بشه توی گیرنده و با فشار دوباره کلید افزایش کانتر ثابت میکنه که ریموت واقعی در دسترس است به همین سادگی

  2. Avatar علی گفت:

    سلام سخت افزار مناسب دریافت این ریموت ها مثل کدلرن هست؟ فرکانس کاریش چنده؟

    1. زئوس Zeus زئوس Zeus گفت:

      بله دقیقا از همون سخت افزار میتونید که استفاده کنید !
      فرکانس های کاری معمولا یا 315 هستند یا 433

  3. Avatar الیاسی گفت:

    لطفا آدرس ومحل فروش وتلفن فروشگاه تان را برای ما ارسال کنید ممنون

    1. زئوس Zeus زئوس Zeus گفت:

      با آیدی تلگرام سیسوگ در ارتباط باشید دوست عزیز

  4. Avatar shahin haji گفت:

    سلام. ممنون از مطلب مفیدتون. بسیار عالی و کامل بود.
    یه سوالی داشتم. شما نوشتید که برای دیکد کردن و هک ریموتهای هاپینگ کد هم روشهایی هست. میشه بنده رو راهنمایی کنید که چجوری میتونم این کار رو انجام بدم؟

    1. زئوس Zeus زئوس Zeus گفت:

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

  5. Sajjad Azadfalah سجاد گفت:

    عالی بود ممنون

  6. Avatar سیاوش گفت:

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

    1. زئوس Zeus زئوس Zeus گفت:

      بله – هیچ کاری نشد ندارد ، قبلا این کار را نیز ما انجام داده ایم 🙂
      ولی خوب مقداری روند کار پیچیده تر از ریموت های معمولی است.

  7. Avatar kian گفت:

    مطالب عالی بود تشکر از زحمتی که کشیدید
    اگر درموردروش کار الگوریت که اطلاعات را دیکد میکند ونحوتایین کلیدکه باید چگونه باشد ونحوه پرو گرام کردن ایسی واینکه ایا میشود حافظه ای سی را خواند وکلید را بدست اورد بیشتر توضیح بدهید ممنون میشم من دیتاشیت را مطالعه کردم اما خیلی پیچیده بود
    درکل ازمطالب مفیدی که گذاشتید بسیار تشکر میکنم

    1. زئوس Zeus زئوس Zeus گفت:

      خواهش می‌کنم دوست عزیز
      احتمالا در مورد نحوه دکد داده های ارسالی پستی خواهیم نوشت و آموزش خواهیم داد که چطور می توانیم از این نوع ریموت ها استفاده کنیم
      پروگرام کردن آیسی هم کار بسیار ساده ای است و از پروتکل سریال برای پروگرام استفاده کنید و نمونه کد های زیادی براش موجود هست ، خوشبختانه به دلایل امنیتی امکان خواندن کی نوشته شده نیست و آیسی این اجازه رو نمی ده

  8. Avatar محمد گفت:

    سلام
    ممنون از اطلاعات نابی که منتشر میکنید
    سوال: اگر فرستنده چندین بار کد را ارسال کند و گیرنده در خارج برد (رنج) سیگنال باشد و ترتیب شماره سریال از دست برود چه اتفاقی میافتد؟

    1. زئوس Zeus زئوس Zeus گفت:

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

  9. Avatar النا گفت:

    سلام. ببخشید یه سوال داشتم.
    از کجا می تونیم بفهمیم که ریموت ما از چه روشی استفاده می کنه؟ مثلا کدلرن هست یا هاپینگ؟
    ممنونم.

    1. زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      دو راه وجود داره ، اول این که دیتای ارسالی از ریموت رو آنالیز کنیدکه قطعا کار ساده ای نیست
      راه دوم اینه که درب ریموت رو باز کنید ، شماره چیپست رو در اینترنت جستجو کنید ببینید نوع کدینگ داده چی هست 🙂

  10. Avatar Hamed Akbari گفت:

    سلام
    مطلب مفید و جالب گذاشتین
    ممنون

    1. زئوس Zeus زئوس Zeus گفت:

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *