تکنولوژی هاپینگ کد چیست؟
امنیت در ریموت کنترلها مسئلهی مهمی است. چراکه امروزه به تعداد زیادی ریموت برای انجام کارهای مختلف نیاز داریم که هک شدن آنها منجر به فاجعه خواهد شد. ریموت کنترلهای مربوط به خودروها، درب پارکینگها و انواع ریموتهایی که در خانه استفاده میکنیم از جمله این موارد هستند. اگر کسی ریموت کنترلها را هک کند؛ عملاً اختیار وسایل ما را در اختیار میگیرد. یکی از راههای جلوگیری از هک شدن ریموت، استفاده از کد هاپینگ است. کد هاپینگ به وسیلهی رمزگذاری ریموت از هک شدن آن جلوگیری میکند.
رمزگذاری ریموت
قبل از اینکه کد هاپینگ را معرفی کنیم، ابتدا با تکنولوژی ارتباط ریموت کنترلها آشنا شوید. ارتباط ریموت کنترلها به دو نوع تقسیم میشود.
• ارتباط یکطرفه
• ارتباط دوطرفه
در ارتباط یکطرفه، با فشردن دکمه ریموت یک پیغام به سمت منبع ارسال میشود. در این مقاله منظور ما از منبع هر وسیلهای است که از طریق ریموت، کنترل میشود. در ارتباط یکطرفه، بدون اینکه پاسخی از منبع دریافت کنیم، بلافاصله فرمان ریموت اجرا میشود. در واقع در اکثر موارد، پیام ارسالشده ثابت و بدون رمزنگاری است. بعد از ارسال پیام نیز پاسخی از منبع (خودرو، ماشین و…) دریافت نمیکنیم. در ارتباطات دوطرفه، فرمان از ریموت به سمت دزدگیر ارسال میشود و دزدگیر یک پیغام مبنی بر اجازهی اجرای فرمان را به سمت ریموت ارسال میکند. درصورتیکه کاربر پیام دریافتی را تأیید کند، دستورات اعمال میشود. ارتباط دوطرفه، همچنین شامل یک رمزنگاری اختصاصی با پروتکلهای پیچیده است که البته پیادهسازی آن نسبت به ارتباطات یکطرفه، هزینه بیشتری خواهد داشت.
روش کد هاپینگ از نوع ارتباطات یکطرفه است. اما لازم به ذکر است که شامل رمزگذاری است و این رمزگذاری از طریق کد هاپینگ در بستری قابلاطمینان و امن، اجرا میشود؛ تا حدی که میتوان گفت هک شدن ریموت کنترلهایی که از پروتکل کد هاپینگ استفاده میکنند، غیرممکن است. بنابراین کد هاپینگ، الگوریتمی ارزان، امن و مناسب برای ریموت کنترلها و انواع سنسورهایی است که به دزدگیرها متصل میشوند.
انواع ارتباطات یک طرفه
• کدفیکس:
کدفیکس، از نوع ارتباطات بسیار ضعیف و یکطرفه است. در ریموت کنترل کدفیکس، سریال نامبری که بین ریموت و منبع بهصورت یونیک توافق شده است در هشت پایه که هرکدام سه حالت دارد درج میشود. این سه حالت، صفر، یک و عدم اتصال هستند. پس در کل ۶۵۰۰ حالت داریم. تست کردن ۶۵۰۰ حالت، نهایتاً در ۵ ساعت انجام میشود. ضمن اینکه کدگذاری در کدفیکس بهوسیلهی لحیمکاری پایههای تراشهای در ریموت کنترل انجام میشود. در واقع هر کسی که یک ریموت کنترل کدفیکس را باز کند؛ میتواند با دیدن لحیمکاری پایههای داخل ریموت، رمز ریموت را پیدا کند. بنابراین هک کردن ریموتی که از طریق تکنولوژی کدفیکس پیادهسازی شده، بسیار ضعیف است و برای ریموت دزدگیرها بههیچعنوان توصیه نمیشود.
• کدلرن (learning code):
کدلرن، بهوسیلهی ۲۰ بیت در داخل تراشه، رمزنگاری میشود. یک تراشه ۲۰ بیتی قابلبرنامهریزی، به معنی در اختیار داشتن ۲ به توان ۲۰ حالت مختلف! هکرها برای حملههای بروت فورس کردن این تعداد حالت متفاوت، وقت ندارند. پس عملاً از طریق آزمون و خطا یا تست کردن همهی حالتها، غیرممکن است. درست است که الگوریتم کدلرن نسبت به کدفیکس، بهبودیافتهتر است ولی همچنان ایراداتی دارد.
مشکل مدل ریموت کنترلهایی که از طریق کدلرن پیادهسازی شدهاند، این است که، حالتهای مختلف تولید سیگنال، رمزگذاری نمیشوند. عدم رمزگذاری در سیگنالهای تولیدشده، درست مانند این است که رمز شب برای ورود به یک مکان را با صدای بلند فریاد بزنید. پس هر کسی در نزدیکی شما باشد بهسادگی میتواند صدای شما را بشنود. کدهای رمزگذاری نشده برای هکرهایی که از طریق ردیابی سیگنالها، رمز ریموت کنترلها را پیدا میکنند، درست مانند گفتن رمز شب با صدای بلند است. پس به علت رمز نشدن سیگنالهای کدلرن، ریموتهایی که با این الگوریتم پیادهسازی شدهاند، قابل هک شدن میباشند.
• کدهاپینگ (hopping code):
کد هاپینگ که به نامهای رولینگ کد و هوپینگ کد نیز شناخته میشوند. در این روش، علاوه بر رمزگذاری سیگنالهای تولیدشده، از یک شمارنده نیز در تولید کدها استفاده میشود. استفاده از کد هاپینگ، باعث میشود که رمز ورود هر بار تغییر کند و هکرها هرگز نمیتوانند رمز بعدی ریموت را حدس بزنند و یا بتوانند با کشف رمز فعلی، ریموت را هک کنند.
در learning code، سیگنال سنکرون کردن ریموت و دستگاه، یک کد ثابت و بدون رمز است که بهسادگی هک میشود. بنابراین امنیت لازم برای استفاده در ریموت دزدگیر خودرو را ندارد. اما hopping code، یک روشِ کد متغیر است و در آن میتوان با الگوریتمهای خاصی به صورت متعدد کدهای رمز شدهی مختلف، تولید کرد. ریموت دزدگیر آرنا و ریموت کنترل دزدگیر اماکن رابین، از پروتکل کد هاپینگ یا هوپینگ استفاده میکنند. کد هاپینگ نه تنها در ریموت دستگاهها بلکه به منظور پیادهسازی تمامی سنسورها با دستگاه مرکزی دزدگیر نیز مورداستفاده قرار میگیرد.
تکنولوژی کد هاپینگ چگونه کار میکند؟
در ریموت هایی که با استفاده از الگوریتم کد هاپینگ پیادهسازی میشوند، یک تراشه HCS301 با قابلیت کدگذاری دادههای ارسالی وجود دارد. کد هاپینگ از یک کلید ۶۴ بیتی، به منظور جلوگیری از هک شدن ریموت استفاده میکند. قابلیت برنامهریزی تراشه داخل ریموت هم در تنظیم این کلید نقش دارد. از طرفی بین گیرنده (منبع) و فرستنده (ریموت)، یک کلید به صورت توافقی قرار داده میشود تا کدهای رمزگذاری شده را دیکد کند و دستورات بهدرستی اجرا شوند. کلید توافق شده در این سیستم در واقع رشته بیتی است به نام KEY که به صورت یکسان در هر دو دستگاه گیرنده و فرستنده قرارداد میشود. کلید شامل یک رشته ۶۴ بیتی است. تست کردن ۲ به توان ۶۴ حالت، قرنها طول میکشد؛ پس هک کردن کد هاپینگ از این طریق نیز غیرممکن است.
بهعنوانمثال اگر بخواهیم فرمان باز شدن در را با ریموت ارسال کنیم، پیغام باز شدن در به صورت مستقیم ارسال نمیشود. فرض کنید عدد این پیغام به صورت ۰۱۰۰۱۱، باشد. این عدد از طریق کلیدی که در ریموت قرار دارد به عدد دیگری مثلاً ۱۰۰۰۱۱، تبدیل شده و ارسال میشود. کلید دستگاه منبع، این عدد را دریافت میکند و از طریق دیکد کردن آن به عدد ۰۱۰۰۱۱، که همان فرمان باز کردن در است دست پیدا میکند. بهاینترتیب سیگنالهای ارسالی از طرف ریموت کنترل، تنها در منبعی که کلید یکسان با ریموت را داشته باشد، قابل رمزگشایی و اجرا است.
الگوریتم کار هاپینگ کد
علاوه بر موارد گفته شده به منظور جلوگیری از هک شدن ریموتهای کد هاپینگ، یک شمارنده نیز در این الگوریتم تعبیه شده است. فرض کنید زمانی که برای اولین بار از ریموت استفاده میکنید، کد فرمان به همراه عدد یک ارسال میشود. در زمان فرمان بعدی که توسط ریموت اجرا میشود، عدد شمارنده یک واحد بیشتر میشود. به علت اضافه شدن شمارههای این بخش از کد هاپینگ به این الگوریتم رولینگ نیز میگویند.
حال اگر ما فرض کنیم که هکر با تشخیص سیگنالهای دریافتی، بخواهد ریموت را رمزگشایی کند؛ پیدا کردن عدد شمارنده غیرممکن است. به طور مثال اگر عدد شمارنده کدهاپینگ ۱۰ و کد فرمان ۱۰۰۱۱۰، برای باز کردن درب خودرو صادر شود. هکر با وارد کردن این سیگنالها موفق به بازگشایی درب خودرو نخواهد شد؛ چراکه گیرنده انتظار دارد شمارنده هماکنون عدد ۱۱ را ارسال کند. گیرنده با دریافت شمارنده تکراری تشخیص میدهد، سیگنالها از طریق ریموت اصلی فرستاده نشده است. ازآنجاییکه هکر، کلید توافق شده بین دو دستگاه گیرنده و فرستنده را در دست ندارد؛ پس هرگز موفق به تولید عدد شمارنده نخواهد شد. عدد شمارنده، یک عدد ۳۲ بیتی است که از ۱ تا ۲ به توان ۳۲ شمارش را انجام میدهد و به صورت اتوماتیک ریست میشود.
وضعیت کلیدهای ریموت که شامل کد فرمان است در کنار عدد شمارنده که بهصورت ترتیبی افزایش پیدا میکند، پس از رمز شدن، به سمت منبع ارسال میشوند. دستگاه هدف، کد فرمان و عدد شمارنده را با کمک کلید مشترک دیکد کرده و پس از تصدیق عدد شمارنده، فرمان را اجرا میکند. بهاینترتیب فقط دستگاه هدف یا منبع، قادر به رمزگشایی گیرنده میباشد چون یافتن کلید ۶۴ بیتی برای هکر بسیار دشوار میباشد.
مزایای کد هاپینگ
پیامهای حاوی کد هاپینگ برای استفاده در برنامههای کنترل از راه دور یکطرفه و کمهزینه، به ویژه در مواردی که امنیت لازم باشد، ایده آل هستند. به منظور جلوگیری از هک شدن ریموت کنترلها یک چیپ قابل برنامهنویسی در ریموت قرار میگیرد. تکنولوژی کد هایپنگ یا رولینگ کد، در مقابل حملات تکرار مقاوم هستند. در پروتکلهای ضعیف مانند ریموتهای کدفیکس، میتوان با وارد کردن تمام احتمالات برای وضعیت پایههای این ریموت، به راحتی ریموت را هک کرد. اما کد هاپینگ در مقابل این حمله هکرها مصون است.
نحوه رمزگذاری ریموت به روش کد هاپینگ
هسته اصلی پیام حاوی کد، یک هاپ کد ۳۲ بیتی است که با هر انتقال جدید تغییر میکند. این هاپ کد با استفاده از یک کلید ۶۴ بیتی رمزگذاری شده است، همراه با یک I.D. منحصربهفرد ۲۸ بیتی. (شماره سریال) و یک کد کنترل ۴ بیتی یا عملکرد اجرا میشود. کلید ۶۴ بیتی برای کاربر قابلدیدن نیست. کدهای ارسالی از سمت ریموت، دارای سه بخش مجزا میباشد که در هنگام رمزگذاری ریموت از آنها استفاده میشود.
• قسمت اول که حاوی ۱۰ بیت مربوط به وضعیت کلیدها است و ۲ بیت هم به منظور نشان دادن وضعیت ریموت.
• بخش دوم ۲۸ بیت که سریال ریموت است و به منظور شبیهسازی استفاده میشود.
• در آخر ۳۲ بیت برای اطلاعات کدگذاری شده اختصاص داده شده است که در جلوگیری از هک شدن ریموتها تأثیر دارد.
اما این مدل کدگذاری چگونه باعث جلوگیری از هک شدن ریموت میشود. مهمترین بخش وجود شمارنده در دادههای ارسالی از ریموت است. با هر بار فشرده شدن کلید، به شمارنده یک واحد اضافه میشود. وقتی کلید کدگذاری تنظیمشده باشد، گیرندههای دیگر قادر به رمزگشایی کدها نیستند. به طور مثال اگر یک هکر بخواهد بهوسیلهی یک ریموت قفل ماشین شما را باز کند، چون شمارنده ریموت شما را نمیداند هرگونه کدی را هم که وارد کند باز موفق به بازگشایی در خودرو نخواهد شد. چون شمارنده شما ممکن است هر عددی باشد و رمزگشایی این کد برای هکرها تقریباً غیرممکن است.
کد هاپینگ در چه محصولاتی استفاده میشود؟
• دزدگیر خودرو
• قفل از راه دور
• زنگ هشدارها
• سیستمهای درب ورودی
• کنترل از راه دور صنعتی
• سنسورهاو کنترل پنل در دزدگیر اماکن
رمزگذاری اطلاعاتی که از سنسورهای اماکن دریافت میشود، نیز توسط پروتکل کد هاپینگ پیادهسازی میشود. کد هاپینگ امنترین و ارزانترین پروتکل یکطرفه است که در ریموت کنترل و سنسورهای دزدگیر اماکن رابین و سیستم امنیتی آرنا از آن استفاده شده است. ریموت هایی که از طریق کد هاپینگ رمزگذاری شدهاند و همچنین سنسورهایی که اطلاعات خود را از طریق پروتکل کد هاپینگ ارسال میکنند، غیرقابل هک شدن هستند.
در سالهای اخیر دانشگاه ماساچوست، میکرو چیپ جدیدی را با توجه به تکنولوژی پیشرفتهتری ارائه کرده است که امنیت ارتباط یکطرفه هاپینگ کد را بسیار افزایش داده است و هک کردن این الگوریتم را تقریباً غیرممکن کرده است. به همین علت از این الگوریتم در بیشتر ریموتها استفاده میشود.
در نهایت میتوانیم بگویم تمامی محصولات آرشین، که بر بستر انتقال سیگنالها کار میکنند از جمله ردیاب بهیاب، دزدگیر آرنا و دزدگیر منزل رابین از حملهی هکرها مصون هستند. چنانچه هنوز جواب سؤال خود را در مورد هک نشدن سیستم ریموت ها پیدا نکردهاید، هماکنون با ما تماس بگیرید یا سؤال خود را در این مورد برای ما ارسال کنید.
برای اطلاعات بیشتر در رابطه با انواع مدلها و قیمتهای ردیاب بهیاب و دزدگیر آرنا میتوانید از طریق تماس با شماره تلفن ۵۸۴۳۱ – ۰۲۱ با کارشناسان فروش مجموعه در ارتباط باشید.