رفتار تصادفی سازی MAC

ویژگی تصادفی سازی MAC به دستگاه ها اجازه می دهد هنگام اتصال به شبکه Wi-Fi از یک آدرس MAC تصادفی استفاده کنند. برای دستورالعمل های پیاده سازی، به پیاده سازی تصادفی سازی MAC مراجعه کنید. این صفحه رفتار تصادفی سازی MAC را در اندروید شرح می دهد.

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

ویژگی تصادفی سازی MAC با استفاده از یک آدرس MAC تصادفی هنگام اتصال به شبکه Wi-Fi، حریم خصوصی کاربر را افزایش می دهد.

آدرس‌های MAC 48 بیت هستند و معمولاً با 12 رقم هگز (6 اکتت که هر اکتت 8 بیت است) مانند 00:11:22:AA:BB:CC نشان داده می‌شود. ویژگی تصادفی سازی MAC آدرس را با تنظیم بیت اداره شده محلی روی 1 و بیت unicast روی 0 تصادفی می کند. 46 بیت دیگر تصادفی هستند.

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

گزینه تصادفی سازی MAC

شکل 1. گزینه تصادفی سازی MAC.

انواع تصادفی سازی MAC

چارچوب Android از دو نوع تصادفی سازی MAC استفاده می کند: تصادفی سازی مداوم و تصادفی سازی غیر مداوم . اگر کاربر تصادفی سازی MAC را غیرفعال کند، از آدرس MAC کارخانه استفاده می شود.

Android تعیین می‌کند که از کدام نوع تصادفی‌سازی MAC هنگام اتصال دستگاه به شبکه Wi-Fi استفاده کند. به طور پیش فرض، اندروید از تصادفی سازی مداوم استفاده می کند. با شروع اندروید 12، اندروید در شرایط زیر از تصادفی سازی غیر مداوم استفاده می کند:

  • یک برنامه پیشنهاد شبکه مشخص می‌کند که از طریق WifiNetworkSuggestion.Builder#setMacRandomizationSetting API از تصادفی‌سازی غیرمداوم برای شبکه استفاده شود.
  • این شبکه یک شبکه باز است که با پورتال محرمانه مواجه نشده است و همپوشانی config_wifiAllowEnhancedMacRandomizationOnOpenSsids روی true تنظیم شده است. این همپوشانی به طور پیش فرض غیرفعال است (روی false تنظیم شده است).

تصادفی سازی مداوم

زمانی که ویژگی تصادفی سازی MAC فعال باشد، اندروید به طور پیش فرض از نوع تصادفی سازی مداوم استفاده می کند. Android یک آدرس MAC تصادفی دائمی را بر اساس پارامترهای نمایه شبکه از جمله SSID، نوع امنیتی یا FQDN (برای شبکه‌های Passpoint) تولید می‌کند. این آدرس مک تا تنظیم مجدد کارخانه ثابت می ماند. اگر کاربر شبکه Wi-Fi را فراموش کند و دوباره اضافه کند، آدرس MAC مجدداً تصادفی نمی شود زیرا مک آدرس داده شده به پارامترهای نمایه شبکه بستگی دارد.

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

برای اندروید 10 و 11، زمانی که تصادفی سازی MAC فعال باشد، چارچوب از تصادفی سازی مداوم برای همه شبکه ها استفاده می کند.

تصادفی سازی غیر مداوم

تحت نوع تصادفی‌سازی غیرمداوم، که برای برخی از شبکه‌ها در اندروید 12 یا بالاتر استفاده می‌شود، ماژول Wi-Fi آدرس MAC را در شروع هر اتصال مجدداً تصادفی می‌کند یا چارچوب از آدرس MAC تصادفی موجود برای اتصال به شبکه استفاده می‌کند. شبکه ماژول Wi-Fi آدرس MAC را در شرایط زیر مجدداً تصادفی می کند:

  • مدت اجاره DHCP منقضی شده است و بیش از 4 ساعت از آخرین قطع ارتباط دستگاه از این شبکه گذشته است.
  • MAC تصادفی فعلی برای نمایه شبکه بیش از 24 ساعت پیش تولید شد. تصادفی سازی مجدد آدرس MAC فقط در شروع اتصال جدید اتفاق می افتد. Wi-Fi به منظور تصادفی کردن مجدد آدرس MAC به طور فعال قطع نمی شود.

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

گزینه توسعه دهنده برای تصادفی سازی غیر مداوم

برای دستگاه‌هایی که Android 11 یا بالاتر دارند، کاربران می‌توانند از طریق صفحه گزینه‌های توسعه‌دهنده، تصادفی‌سازی غیردائم MAC را در سطح سراسری برای همه شبکه‌های Wi-Fi (که قابلیت تصادفی‌سازی MAC را فعال کرده‌اند) فعال کنند. گزینه فعال کردن تصادفی سازی غیر مداوم MAC برای همه نمایه ها در تنظیمات > گزینه های برنامه نویس > تصادفی سازی غیر دائمی MAC Wi-Fi یافت می شود.

گزینه تصادفی سازی غیر دائمی MAC Wi-Fi

شکل 2. گزینه تصادفی سازی غیر دائمی MAC Wi-Fi.

،

ویژگی تصادفی سازی MAC به دستگاه ها اجازه می دهد هنگام اتصال به شبکه Wi-Fi از یک آدرس MAC تصادفی استفاده کنند. برای دستورالعمل های پیاده سازی، به پیاده سازی تصادفی سازی MAC مراجعه کنید. این صفحه رفتار تصادفی سازی MAC را در اندروید شرح می دهد.

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

ویژگی تصادفی سازی MAC با استفاده از یک آدرس MAC تصادفی هنگام اتصال به شبکه Wi-Fi، حریم خصوصی کاربر را افزایش می دهد.

آدرس‌های MAC 48 بیت هستند و معمولاً با 12 رقم هگز (6 اکتت که هر اکتت 8 بیت است) مانند 00:11:22:AA:BB:CC نشان داده می‌شود. ویژگی تصادفی سازی MAC آدرس را با تنظیم بیت اداره شده محلی روی 1 و بیت unicast روی 0 تصادفی می کند. 46 بیت دیگر تصادفی هستند.

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

گزینه تصادفی سازی MAC

شکل 1. گزینه تصادفی سازی MAC.

انواع تصادفی سازی MAC

چارچوب Android از دو نوع تصادفی سازی MAC استفاده می کند: تصادفی سازی مداوم و تصادفی سازی غیر مداوم . اگر کاربر تصادفی سازی MAC را غیرفعال کند، از آدرس MAC کارخانه استفاده می شود.

Android تعیین می‌کند که از کدام نوع تصادفی‌سازی MAC هنگام اتصال دستگاه به شبکه Wi-Fi استفاده کند. به طور پیش فرض، اندروید از تصادفی سازی مداوم استفاده می کند. با شروع اندروید 12، اندروید در شرایط زیر از تصادفی سازی غیر مداوم استفاده می کند:

  • یک برنامه پیشنهاد شبکه مشخص می‌کند که از طریق WifiNetworkSuggestion.Builder#setMacRandomizationSetting API از تصادفی‌سازی غیرمداوم برای شبکه استفاده شود.
  • این شبکه یک شبکه باز است که با پورتال محرمانه مواجه نشده است و همپوشانی config_wifiAllowEnhancedMacRandomizationOnOpenSsids روی true تنظیم شده است. این همپوشانی به طور پیش فرض غیرفعال است (روی false تنظیم شده است).

تصادفی سازی مداوم

زمانی که ویژگی تصادفی سازی MAC فعال باشد، اندروید به طور پیش فرض از نوع تصادفی سازی مداوم استفاده می کند. Android یک آدرس MAC تصادفی دائمی را بر اساس پارامترهای نمایه شبکه از جمله SSID، نوع امنیتی یا FQDN (برای شبکه‌های Passpoint) تولید می‌کند. این آدرس مک تا تنظیم مجدد کارخانه ثابت می ماند. اگر کاربر شبکه Wi-Fi را فراموش کند و دوباره اضافه کند، آدرس MAC مجدداً تصادفی نمی شود زیرا مک آدرس داده شده به پارامترهای نمایه شبکه بستگی دارد.

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

برای اندروید 10 و 11، زمانی که تصادفی سازی MAC فعال باشد، چارچوب از تصادفی سازی مداوم برای همه شبکه ها استفاده می کند.

تصادفی سازی غیر مداوم

تحت نوع تصادفی‌سازی غیرمداوم، که برای برخی از شبکه‌ها در اندروید 12 یا بالاتر استفاده می‌شود، ماژول Wi-Fi آدرس MAC را در شروع هر اتصال مجدداً تصادفی می‌کند یا چارچوب از آدرس MAC تصادفی موجود برای اتصال به شبکه استفاده می‌کند. شبکه ماژول Wi-Fi آدرس MAC را در شرایط زیر مجدداً تصادفی می کند:

  • مدت اجاره DHCP منقضی شده است و بیش از 4 ساعت از آخرین قطع ارتباط دستگاه از این شبکه گذشته است.
  • MAC تصادفی فعلی برای نمایه شبکه بیش از 24 ساعت پیش تولید شد. تصادفی سازی مجدد آدرس MAC فقط در شروع اتصال جدید اتفاق می افتد. Wi-Fi به منظور تصادفی کردن مجدد آدرس MAC به طور فعال قطع نمی شود.

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

گزینه توسعه دهنده برای تصادفی سازی غیر مداوم

برای دستگاه‌هایی که Android 11 یا بالاتر دارند، کاربران می‌توانند از طریق صفحه گزینه‌های توسعه‌دهنده، تصادفی‌سازی غیردائم MAC را در سطح سراسری برای همه شبکه‌های Wi-Fi (که قابلیت تصادفی‌سازی MAC را فعال کرده‌اند) فعال کنند. گزینه فعال کردن تصادفی سازی غیر مداوم MAC برای همه نمایه ها در تنظیمات > گزینه های برنامه نویس > تصادفی سازی غیر دائمی MAC Wi-Fi یافت می شود.

گزینه تصادفی سازی غیر دائمی MAC Wi-Fi

شکل 2. گزینه تصادفی سازی غیر دائمی MAC Wi-Fi.