پرش به مطلب اصلی
علیرضا توفیقی
علیرضا توفیقی
کارشناسی علوم‌ کامپیوتر ۱۳۹۶

جعل موقعیت

در این چند روز اخیر، احتمالاً بسیار بیشتر از گذشته، اگر در تهران از نقشه و مسیریاب استفاده کنیم یا از خدماتی مانند اسنپ بهره ببریم، ممکن است متوجه شویم که موقعیت مکانی ما به‌درستی نمایش داده نمی‌شود. گاهی دایرۀ آبی مربوط به موقعیت مکانی، بزرگ باقی می‌ماند و به‌طور دقیق روی نقطه‌ای خاص متمرکز نمی‌شود، یا این‌که گوشی ما مصرانه مکان دیگری را به‌عنوان موقعیت فعلی‌مان نشان می‌دهد. به‌نظر می‌رسد (!) دلیل این اتفاق، ایجاد نویز یا جعل سیگنال‌های ماهواره‌های موقعیت‌یابی باشد. برای من که در بلد فعالیت می‌کنم، اختلال در GPS به‌منزلۀ زمان از کار افتادنdown-time است؛ زمان از کار افتادنی که هیچ اقدامی از سوی ما برای رفع آن ممکن نیست، چراکه مثل قطع اینترنت منبع آن چیزی خارج از کنترل اپلیکیشن ما و حتی گوشی‌های کاربران است. در چنین شرایطی، منِ توسعه‌دهنده که سال‌ها تلاش کرده‌ام، آموخته‌ام و زحمت کشیده‌ام تا بتوانم اپلیکیشنی ارائه دهم که دست‌کم از نظر پایداریup-time عملکرد خوبی داشته باشد، حتی در کوچک‌ترین زمان از کار افتادن نیز به حالت پشتیبانی پشتیبانیon-call درمی‌آیم؛ ولی این‌که کاری از دست‌مان برنمی‌آید، احساس بیچارگی بدی دارد. در این نوشته، قرار است ابتدا توضیح دهم که موقعیت‌یابی چگونه کار می‌کند، سپس منشأ این اختلال چیست و چگونه رخ می‌دهد. در پایان نیز، به‌عنوان یکی از افراد جامعه، کمی دربارۀ مشکلاتی که این وضعیت برای مردم به وجود می‌آورد صحبت خواهم کرد.

اصلاً موقعیت‌یابی در گوشی‌های هوشمند چگونه عمل می‌کند؟

موقعیت‌یابی در گوشی‌ها عمدتاً از یک سیستم ترکیبی استفاده می‌کند که چند فناوری مختلف را با یکدیگر ترکیب می‌نماید تا بتواند مکان دقیق ما را تشخیص دهد. اساس این فرآیند با استفاده از ماهواره‌هایی آغاز می‌شود که به آن‌ها به‌طور کلی سامانه‌های جهانی ناوبری ماهواره‌ایGASS گفته می‌شود و شناخته‌شده‌ترین آن‌ها GPS، متعلق به ایالات متحدهٔ آمریکاست. گوشی سیگنال‌هایی از ماهواره‌های GPS دریافت می‌کند که به دور زمین در حال گردش هستند. این ماهواره‌ها نوعی سیگنال زمانی ارسال می‌کنند؛ به‌طور شهودی، هر ماهواره زمان دقیق حال حاضر خود را با دقت بالا ارسال می‌نماید. گوشی ما این زمان‌ها را از چند ماهواره دریافت می‌کند. از آن‌جا که ماهواره‌ها در مکان‌های مختلفی قرار دارند و سرعت انتشار امواج نیز بی‌نهایت نیست، این زمان‌ها با یکدیگر متفاوت هستند. گوشی با مقایسۀ زمان دریافت این سیگنال‌ها از حداقل چهار ماهواره، می‌تواند با انجام محاسبات مثلثی، موقعیت مکانی خود، زمان دقیق فعلی و اطلاعات مشابه را محاسبه کند. ماهواره‌هایی مانند GPS آمریکا، BeiDou چین، GLONASS روسیه و Galileo اتحادیۀ اروپا از جمله سامانه‌های GNSS هستند. گوشی‌های اندرویدی تقریباً توانایی دریافت سیگنال‌های تمام این ماهواره‌ها را دارند. اما حتی اگر یکی از این سیگنال‌ها جعل شده باشد (برای مثال اگر سیگنال GPS آمریکایی جعل شود)، خطر آن وجود دارد که گوشی، موقعیت جعلی را به‌عنوان موقعیت واقعی بپذیرد! البته افزون‌بر سامانه‌های GNSS، گوشی هوشمند از موارد دیگری نیز برای موقعیت‌یابی بهره می‌برد، مانند شبکه‌های وای‌فای، دکل‌های مخابراتی و حتی حسگرهای داخلی، همچون شتاب‌سنج و ژیروسکوپ. برای نمونه، زمانی که وای‌فای روشن است، گوشی می‌تواند شبکه‌های بی‌سیم اطراف را اسکن کند و با استفاده از پایگاه داده‌ای که موقعیت این شبکه‌ها در آن ثبت شده، مکان تقریبی کاربر را حدس بزند. دکل‌های مخابراتی نیز عملکردی مشابه دارند و با استفاده از سیگنال‌های 4G یا 5G، موقعیتی تقریبی ارائه می‌دهند. مجموع این فناوری‌ها به‌صورت ترکیبی به‌کار گرفته می‌شوند تا حتی در صورتی که GPS به‌درستی عمل نکند، باز هم گوشی بتواند مکان تقریبی را نمایش دهد.

موقعیت و زمان در GPS چگونه محاسبه می‌شود؟

حال، بیایید کمی علمی‌تر به موضوع نگاه کنیم تا دریابیم GPS چگونه کار می‌کند و چرا اختلال در آن می‌تواند به‌سادگی همه‌چیز را برهم بزند. GPS یک سامانۀ موقعیت‌یابی جهانی است که با استفاده از مجموعه‌ای از ماهواره‌ها (حداقل ۲۴ عدد) عمل می‌کند. این ماهواره‌ها به دور زمین در حال گردش‌اند و به‌طور مداوم سیگنال ارسال می‌کنند. در هر سیگنال، دو مؤلفۀ اصلی وجود دارد: موقعیت دقیق ماهواره (که با داده‌های مداری یا به‌اصطلاح ephemeris مشخص می‌شود) و زمان ارسال سیگنال، که با استفاده از ساعت اتمی بسیار دقیق ماهواره ثبت شده‌است. گوشی یا هر دستگاه مجهز به GPS، این سیگنال‌ها را از چند ماهواره دریافت می‌کند. اما این دستگاه چگونه موقعیت ما را پیدا می‌کند؟ با محاسبۀ فاصلۀ خود از هر یک از ماهواره‌ها. این فاصله از طریق زمان رسیدن سیگنال محاسبه می‌شود. سیگنال با سرعت نور حرکت می‌کند (حدود ۳۰۰٬۰۰۰ کیلومتر بر ثانیه)، بنابراین اگر مدت زمانی که طول کشیده تا سیگنال از ماهواره به دستگاه ما برسد معلوم باشد، می‌توان فاصله را محاسبه کرد:

فاصله = سرعت نور × زمان تأخیر

اما یک مشکل وجود دارد: ساعت موجود در گوشی ما به دقت ساعت اتمی ماهواره نیست و یک اختلاف زمانی دارد که باید اصلاح شود. به همین دلیل، حداقل به سیگنال ۴ ماهواره نیاز است. با ۳ سیگنال می‌توان موقعیت سه‌بعدی (طول، عرض، ارتفاع) را به‌دست آورد، اما سیگنال چهارم برای اصلاح اختلاف زمانی دستگاه لازم است. فرض کنیم از ۴ ماهواره سیگنال دریافت کرده‌اید. هر سیگنال شامل این اطلاعات است: "من در فلان زمان سیگنالم را فرستادم و اکنون در فلان موقعیتم."، گوشی با مقایسۀ زمان دریافت سیگنال با زمان ارسال آن، فاصله تا هر ماهواره را محاسبه می‌کند. سپس با استفاده از مجموعه‌ای از معادلات (که به آن‌ها trilateration گفته می‌شود)، موقعیت دقیق خود را به‌دست می‌آورد. معادلۀ مورد نظر چیزی شبیه به این خواهد بود: فرمول فاصله برای هر ماهوارهٔ i :

(xxi)2+(yyi)2+(zzi)2\sqrt{(x - x_i)^2 + (y - y_i)^2 + (z - z_i)^2}

مختصات شما با نماد (x,y,z) نمایش داده می‌شود و مختصات ماهواره‌ها با (xi​,yi​,zi​) مشخص می‌گردد. با استفاده از چهار معادله از این نوع و با در نظر گرفتن زمان، چهار معادله و چهار مجهول خواهیم داشت. البته برای کاهش میزان خطا از روش‌هایی استفاده می‌شود و با بهره‌گیری از ماهواره‌های بیشتر و دریافت سیگنال در بازۀ زمانی مشخص، تلاش می‌شود تا این خطا به حداقل برسد. سیگنال‌ها دارای کدی ویژه به‌نام PRNPseudo-Random Noise هستند که مانند امضایی منحصر به فرد برای هر ماهواره عمل می‌کند. گوشی از طریق این کد تشخیص می‌دهد که سیگنال مربوط به کدام ماهواره است و می‌تواند میزان تأخیر آن را محاسبه کند. این سیگنال‌ها در کاربردهای نظامی، همراه با نوعی رمزنگاری ارسال می‌شوند. برای مثال، GPS که متعلق به ایالات متحده است، هم‌زمان با دادۀ اصلی، داده‌ای رمزنگاری‌شده نیز ارسال می‌کند که کلید رمزگشایی آن تنها در اختیار ارتش آمریکاست. این موضوع باعث می‌شود جعل سیگنال برای تجهیزات نظامی تقریباً غیرممکن باشد. اما در دستگاه‌هایی مانند گوشی‌های من و شما، چون ناچار به دریافت دادۀ خام هستیم، فریب دادن آن‌ها نسبتاً آسان است.

چگونه بر روی سیگنال‌های GPS نویز ایجاد می‌کنند یا آن‌ها را جعل می‌نمایند؟

همان‌طور که پیش‌تر اشاره شد، سیگنال‌های موقعیت‌یابی در واقع اطلاعات ساده‌ای در حد زمان فعلی هستند. افزون‌بر این، این سیگنال‌ها در کاربردهای غیرنظامی به‌صورت خام ارسال می‌شوند، بنابراین هر فردی می‌تواند سیگالی مشابه تولید و ارسال کند! جعل موقعیت یا آن‌طور که اصطلاحاً گفته می‌شود «اسپوفینگ»Spoofing زمانی اتفاق می‌افتد که فردی عمداً اقدام به تولید سیگنال‌های تقلبی GPS کند. این کار با استفاده از دستگاه‌هایی ویژه به‌نام GPS Spoofer انجام می‌شود؛ این دستگاه‌ها سیگنال‌های جعلی ارسال می‌کنند و گوشی یا دستگاه گیرنده را فریب می‌دهند تا گمان کند در مکان دیگری قرار دارد. این سیگنال‌های جعلی می‌توانند از نظر قدرت، قوی‌تر از سیگنال‌های واقعی ماهواره‌ها باشند، بنابراین گیرندۀ گوشی به‌جای دریافت و باور سیگنال‌های واقعی، سیگنال‌های تقلبی را دریافت کرده و آن‌ها را معتبر تلقی می‌کند. روش دیگری نیز وجود دارد به‌نام «جمینگ»Jamming که به‌جای جعل سیگنال، به‌طور کلی آن‌ها را مختل می‌کند. این کار با ارسال نویز روی فرکانس‌های GPS صورت می‌گیرد، که در نتیجۀ آن، گوشی نمی‌تواند سیگنال درستی دریافت کند. نتیجۀ این اختلال می‌تواند نمایش دایرۀ آبی بزرگ و مبهم یا حتی گم‌کردن کامل موقعیت باشد. جمینگ نسبت به اسپوفینگ ساده‌تر است، چرا که نیازی به تولید سیگنال‌های پیچیدۀ جعلی ندارد و تنها کافی‌ست نویز زیادی به سیستم وارد شود.

چرا چنین کاری انجام می‌دهند؟

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

چه پیامدهایی برای مردم دارد؟

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

اصلاً موقعیت‌یابی در گوشی‌های هوشمند چگونه عمل می‌کند؟

اکنون که بحث جنگ و درگیری در منطقه داغ شده‌است، ایجاد اختلال در GPS به‌شدت نمود پیدا کرده‌است. برای نمونه، در خلیج فارس و تنگۀ هرمز، گزارش‌ها حاکی از آن است که روزانه حدود ۹۷۰ کشتی تحت تأثیر این اختلالات قرار می‌گیرند (طبق داده‌های شرکت Windward). این بدان معناست که کشتی‌ها نمی‌توانند مسیر خود را به‌درستی تشخیص دهند، خطر برخورد افزایش می‌یابد و هزینه‌های عملیاتی شرکت‌های کشتیرانی به‌شدت بالا می‌رود. یکی از نمونه‌های آن، افزایش نرخ بیمه‌های مربوط به ریسک جنگ برای تانکرهای نفتی است که از ۰.۲۰ دلار به ازای هر بشکه، به ۰.۸۰ دلار رسیده‌است! برای یک تانکر بزرگ، این افزایش به معنای ۱.۲ میلیون دلار هزینۀ اضافی در هر سفر است. تصور کنید، ناگهان ۱.۲ میلیون دلار هزینۀ بیشتر تنها برای یک سفر! در داخل ایران نیز وضعیت برای سرویس‌های تاکسی اینترنتی نابسامان است. این اپلیکیشن‌ها بدون GPS، همانند خودرویی بدون چرخ هستند. راننده نمی‌داند مسافر کجاست، مسافر نیز موقعیت راننده را نمی‌داند، مسیرها به‌هم می‌ریزند و کل سیستم دچار اختلال می‌شود. به‌دلیل تأخیر در ارائۀ سرویس، درآمد رانندگان کاهش می‌یابد و مسافران نیز ناراضی می‌شوند. وب‌سایت زومیت ادعا کرده‌است که درآمد یک رانندۀ تمام‌وقت در تهران بین ۳۰۰ تا ۴۰۰ هزار تومان در روز کاهش یافته‌است. اگر فرض کنیم حدود ۲۰۰ هزار رانندۀ تمام‌وقت اسنپ در تهران فعالیت دارند (در حالی که مجموع رانندگان اسنپ بیش از ۶ میلیون نفر است، اما آمار دقیق رانندگان تمام‌وقت در تهران مشخص نیست و این عدد تقریبی است)، در این صورت، کاهش درآمدی در حدود ۶۰ تا ۸۰ میلیارد تومان در روز بر جیب مردم تحمیل می‌شود؛ آن هم تنها به‌دلیل تبعات این اختلال!

از سوی دیگر، شبکه‌های TD-LTE که ارائه‌دهندۀ اینترنت پرسرعت هستند نیز از این موضوع آسیب می‌بینند. این فناوری برای آن‌که دکل‌های مختلف به‌درستی با یکدیگر هماهنگ کار کنند، به زمان بسیار دقیقی نیاز دارد و همگام‌سازی زمانی آن به GPS وابسته است. اگر سیگنال GPS دچار اختلال شود، شبکه دچار بی‌نظمی می‌شود، سرعت اینترنت کاهش می‌یابد یا حتی به‌طور کامل قطع می‌شود. به‌طور کلی، یکی از مسائل جدی در سیستم‌های توزیع‌شده، داشتن زمان دقیق و هماهنگ است. پایگاه‌های دادۀ توزیع‌شده‌ای مانند Spanner در شرکت گوگل نیز با چنین فناوری‌هایی کار می‌کنند. وقتی در کشوری زندگی می‌کنیم که در آن هر لحظه ممکن است GPS مختل شود و هیچ گروه یا سازمانی مسئولیت این اقدام را بر عهده نمی‌گیرد، عملاً چشم خود را بر توسعه بسته‌ایم؛ و رسیدن به برخی فناوری‌ها حتی در رؤیا نیز ممکن نخواهد بود.

راه‌حل چیست؟

حال که GPS به این سادگی دچار اختلال می‌شود، چه را‌هکارهایی وجود دارد؟ یکی از گزینه‌ها استفاده از سیستم‌های دیگر مانند ناوبری اینرسیInertial Navigation است که با بهره‌گیری از حسگرهای داخلی گوشی (شتاب‌سنج و ژیروسکوپ) مکان تقریبی را تخمین می‌زند. البته این روش تنها برای مدت‌زمان کوتاه کارایی دارد و دقت آن پایین است. راهکار دیگر، توسعۀ گیرنده‌های مقاوم‌تر GPS است؛ گیرنده‌هایی که توانایی تشخیص سیگنال‌های جعلی را داشته باشند. برخی نیز در حال راه‌اندازی سیستم‌های زمینی مانند eLORAN هستند که به‌عنوان پشتیبان GPS عمل می‌کند. با این حال، این راه‌حل‌ها در حال حاضر به‌راحتی در دسترس عموم نیستند. بنابراین، اگر GPS دچار اختلال شد، بهترین راه‌حل همچنان استفاده از نقشۀ کاغذی یا پرس‌وجو از رهگذران خواهد بود! :(

پایان راه

جعل موقعیت مشکلی بزرگ است که از زندگی روزمره گرفته تا اقتصاد و امنیت را دچار اختلال می‌کند. در شرایط فعلی، این مسئله هزینه‌های سنگینی به‌همراه دارد؛ از میلیون‌ها دلار زیان برای ناوگان دریایی گرفته تا مختل شدن خدماتی چون مسیریاب‌ها و تاکسی‌های اینترنتی و TD-LTE و… امید است روزی به نقطه‌ای از امنیت برسیم که دیگر به بهانۀ حفظ امنیت، نیازهای روزمرۀ مردم قربانی نشوند. همین... هر بار GPS دچار اختلال می‌شود و هشدار افزایش خطاهای «مسیر یافت نشد» را دریافت می‌کنیم، دچار اندوه می‌شوم. وقتی نقاط روی نقشه را بررسی می‌کنم و می‌بینم که تعداد زیادی از مردم نمی‌توانند از سرویس استفاده کنند، اندوهم بیشتر می‌شود. این‌که کاری از دستم ساخته نیست، حس ناتوانی و درماندگی به من می‌دهد—به‌ویژه زمانی که مردم از ما انتظار دارند محصولی با کیفیت ارائه دهیم. اما دست ما کوتاه است :(