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

0
1254
ریموت کنترل‌های هاپینگ
ریموت کنترل‌های هاپینگ

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

 

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

وقتی قرار‌باشد برای درب ورودی منزل یا مغازه، ریموت کنترل نصب‌کنید، همه ریموت‌های هاپینگ را پیشنهاد می‌دهند و استدلال می‌کنند که این ریموت‌ها از امنیت بیشتری نسبت‌به ریموت‌های کدفیکس و کدلرن برخوردار هستند. قبلاً در پست ریموت کدلرن و چگونگی دکد بررسی کردیم که ریموت‌های کدلرن و یا کد فیکس چطور کار می‌کنند؛ مثلاً ریموت‌های کدلرن دارای یک کد ۲۰ بیتی منحصر‌به‌فرد هستند که تک‌تک ریموت‌ها را از هم تفکیک می‌کند یا در ریموت‌های کدفیکس شما می‌توانید با تعیین‌حالت ۸عدد پایه، کد مورد‌نظر خود را ایجادکنید. اما ریموت‌های هاپینگ چطور کار می‌کنند که قادر هستند امنیت بیشتری را تامین کنند؟ آیا واقعاً ریموت‌های هاپینگ دارای امنیت بیشتری هستند؟ متأسفانه با جستجو در وب‌فارسی جز‌اینکه ریموت‌های هاپینگ دارای امنیت بیشتری هستند چیزی دستگیرتان نمی‌شود. حتی تولید‌کنندگان این نوع ریموت کنترل در داخل کشور نیز مقاله‌ای در خصوص امنیت آن‌ها منتشر نکرده‌اند که جای تأمل دارد! چرا این نوع ریموت‌ها امنیت بالاتری دارند؟ سازوکار آن‌ها به چه صورت است که امنیت بیشتری را تأمین می‌کنند؟ در این مقاله به این سؤالات پاسخ خواهیم داد.

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

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

ریموت‌های کدفیکس
ریموت‌های کدفیکس

 

فرض‌کنید شما از این مدل ریموت برای دزدگیر ماشین خود استفاده می‌کنید. اگر سارق بتواند نحوه‌ی اتصال پایه‌ها را متوجه‌شود (راه‌های مختلفی برای این مسئله وجود دارد که وارد جزئیات نمی‌شویم.) با خرید یک ریموت از همین مدل و تغییر پایه‌های مورد‌نظر مطابق ریموت شما، به‌راحتی و بدون دردسر می‌تواند دزدگیر ماشین شما را کنترل‌کند. اصلاً فرض‌کنیم نحوه‌ی اتصال پایه‌ها را نداشته باشد! آی‌سی PT2262 که در این ریموت‌ها استفاده می‌شود، از 8 پایه برای آدرس‌دهی استفاده می‌کند که درمجموع باتوجه‌به سه حالته‌بودن هر بیت (متصل به مثبت – متصل به منفی و بدون اتصال) قادر است تقریباً ۶۵۰۰ حالت مختلف را ایجاد کند. اگر دستگاهی بسازیم که حالت‌های مختلف را ایجاد کند و هرحالت 3 ثانیه تداوم داشته‌باشد، به‌راحتی در مدت‌زمان 5 ساعت می تواند کد ریموت مورد‌نظر را پیدا‌کند. به‌نقل‌از یک آشنا، در زمان‌های دور که همه دزدگیرها از این نوع ریموت استفاده می‌کردند، چنین دستگاهی ساخته و در پارکینگ دانشگاه آژیر تمام ماشین‌ها را به‌صدا در آورده‌است! درگذشته از این نوع ریموت برای درب ساختمان‌ها و مغازه‌ها استفاده می‌شده که خوشبختانه دیگر استفاده نمی‌شود. درمورد ریموت‌های کدلرن، مسئله مقداری متفاوت است. کد منحصر‌به‌فرد توسط کارخانه‌ی تولید‌کننده، در آی‌سی ریموت قرارمی‌گیرد و کاربر نمی‌تواند آنرا تغییردهد. همین تغییر کوچک به‌خودی‌خود باعث می‌شود که امنیت به‌مراتب بالاتر برود؛ چراکه افراد نمی‌توانند با دست‌کاری در مدار ریموت، آنرا مثل ریموت‌های دیگر تغییردهند. همچنین کد مذکور ۲۰بیتی شده‌است که قادر‌است ۱۰۴۸۵۷۶ حالت مختلف ایجاد‌کند.

کد آی‌سی
کد آی‌سی

 

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

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

 

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

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

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

 

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

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

 

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

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

انکدر KeeLoQ
انکدر KeeLoQ

 

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

تنظیم داده‌های ارسالی و دریافتی
تنظیم داده‌های ارسالی و دریافتی

 

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

  1. بخش ابتدایی که طبق دیتاشیت ۶ بیت است و حاوی ۴ بیت وضعیت کلید‌های فشرده است و ۲ بیت هم وضعیت ریموت را گزارش می‌کنند(مثل ضعیف‌شدن باطری).
  2. ۲۸ بیت ادامه، سریال ریموت است. این بخش‌ها کد‌گذاری نشده است و به‌راحتی می‌توان آن‌ها را شبیه‌سازی کرد.
  3. ۳۲ بیت بعد حاوی اطلاعات کدگذاری شده است. این ۳۲ بیت باعث ایجاد تفاوت چشمگیری در امنیت این نوع ریموت‌ها شده‌است. کدگذاری بااستفاده‌از ۶۴ بیت داده‌ی ذخیره‌شده در EEPROM صورت می‌گیرد.
داده‌های کدگذاری شده
داده‌های کدگذاری شده

 

همان‌طورکه در عکس فوق مشخص است، داده‌های کدگذاری شده، حاوی ۱۶ بیت شمارنده و ۱۰بیت DISC (که خود شامل بیت‌های دیگری است) و ۴ بیت هم وضعیت کلید‌های ریموت هستند. اما این داده‌ها چطور به امنیت کمک خواهندکرد؟ شاید مهم‌ترین بخش وجود شمارنده در داده‌های ارسالی از ریموت است. شمارنده با هربار فشرده‌شدن کلید، ۱واحد اضافه می‌شود. اگر کلید کدگذاری تنظیم شده‌باشد، هر گیرنده‌ای که داده‌ها را دریافت می‌کند، قادربه رمز‌گشایی بخش کدگذاری شده نیست و نمی‌تواند داده‌های آنرا استخراج کند. برای روشن‌ترشدن موضوع سعی می‌کنیم مثال فوق درخصوص ریموت‌های کدلرن را بااستفاده‌از این نوع ریموت تشریح کنیم: فرض‌کنید یک هکر با دستگاه مناسب مشغول شنود سیگنال‌های ارسالی از ریموت شما است و باز فرض‌کنید کانتر ریموت شما، مقدار ۱۰ را دارد. داده‌های ارسالی توسط گیرنده دریافت می‌شود و دزدگیر غیرفعال می‌شود. هنگام پیاده‌شدن، کلید ریموت را برای فعال‌کردن دزدگیر فشار می‌دهید، مقدار کانتر ۱۱ می‌شود، کد ارسال و دزدگیر فعال می‌شود. هکر برای غیر‌فعال‌کردن دزدگیر ماشین، کد اول را دوباره شبیه‌سازی و ارسال می‌کند. اگر ماشین شما از تکنولوژی ریموت‌های کدلرن و کدفیکس استفاده می‌کرد، دزدگیر غیر‌فعال می‌شد اما درمورد ریموت‌های هاپینگ این اتفاق نمی‌افتد. ریموت، سیگنال ارسالی هکر را دریافت، قسمت کدشده را دکد و مقدار کانتر را از آن استخراج می‌کند. بله مقدار آن ۱۰ است. آخرین کدی که دریافت‌شده ۱۱ بوده، پس مقدار ۱۰ را غیرواقعی شناسایی می‌کند و به آن اهمیتی نمی‌دهد. هکر اگر بخواهد دزدگیر را غیر‌فعال کند باید کدی را ارسال‌کند که مقدار کانتر آن ۱۲ باشد ولی چنین کاری مقدور نیست؛ چرا‌ که کلید رمزگذاری را ندارد و نمی‌تواند داده‌ها را استخراج کند. این‌چنین است که این نوع ریموت‌ها در مقابل هک‌شدن مقاومت بیشتری دارند ولی یادتان باشد: هیچ‌کاری غیر‌ممکن نیست، حتی غیر‌ممکن!

هشدار جدی

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

 

 

 

 

منبع: سیسوگ

مطلب قبلیآموزش آردوینو پروژه ششم : سلام کپیتان! – قسمت اول
مطلب بعدیآشنایی با همینگ کد و لذت یک ارتباط امن و بدون خطا

پاسخ دهید

لطفا نظر خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید