يعلم الجميع أن هذه ست وحدات بايت ، وعادةً ما يتم عرضها بتنسيق سداسي عشري ، يتم تعيينها على بطاقة شبكة في المصنع ، وهي للوهلة الأولى عشوائية. يعرف بعض الأشخاص أن البايتات الثلاثة الأولى من العنوان هي معرّف الشركة المصنعة ، ويتم تعيين البايتات الثلاثة المتبقية لهم. من المعروف أيضًا أنه يمكنك تعيين عنوان تعسفي لنفسك. سمع الكثيرون عن "العناوين العشوائية" في شبكة Wi-Fi.
دعونا معرفة ما هو عليه.
عنوان MAC (عنوان التحكم في الوصول إلى الوسائط) - معرف فريد مخصص لمحول شبكة ؛ يتم استخدامه في الشبكات القياسية IEEE 802 ، وخاصة شبكة Ethernet و Wi-Fi و Bluetooth. رسميا ، يطلق عليه "معرف نوع EUI-48". من الواضح أن الاسم يبلغ طوله 48 بتًا ، أي 6 بايت. لا يوجد معيار مقبول عمومًا لكتابة عنوان (على عكس عنوان IPv4 ، حيث يتم فصل الثمانيات دائمًا بالنقاط) ، وعادةً ما يتم كتابتها على شكل ستة أرقام عشرية ، مفصولة بنقطتين: 00: AB: CD: EF: 11: 22 ، على الرغم من أن بعض الشركات المصنعة للمعدات تفضل الكتابة مثل 00 -AB-CD-EF-11-22 وحتى 00ab.cdef.1122.
تاريخياً ، كانت العناوين مخيطة في ذاكرة الوصول العشوائي لمجموعة شرائح بطاقة الشبكة دون إمكانية تعديلها دون مبرمج فلاش ، ولكن في الوقت الحالي يمكن تغيير العنوان برمجيًا ، من نظام التشغيل. يمكنك تعيين عنوان MAC لبطاقة الشبكة يدويًا في Linux و MacOS (دائمًا) ، و Windows (تقريبًا دائمًا ، إذا سمح برنامج التشغيل) ، Android (الجذر فقط) ؛ مع iOS (بدون جذر) خدعة مماثلة أمر مستحيل.
هيكل العنوان
يتكون العنوان من جزء من معرف الشركة المصنعة ، OUI ، والمعرف المعين من قبل الشركة المصنعة. يتم تعيين OUI (معرّف فريد تنظيميًا) بواسطة IEEE. في الواقع ، لا يمكن أن يكون طولها 3 بايت فقط (24 بت) ، ولكن 28 أو 36 بت ، يتم منها إنشاء كتل عناوين MAC (MA) الكبيرة (MA-L) والمتوسطة (MA-M) والأنواع الصغيرة (MA-S) على التوالي. سيكون حجم الكتلة الصادرة ، في هذه الحالة ، 24 ، 20 ، 12 بت أو 16 مليون ، 1 مليون ، 4 آلاف قطعة من العناوين. في الوقت الحالي ، يتم توزيع حوالي 38 ألف قطعة ، ويمكن مشاهدتها مع العديد من الأدوات عبر الإنترنت ، على سبيل المثال ، IEEE أو Wireshark .
من يملك العناوين
توفر المعالجة البسيطة لقاعدة بيانات تحميل IEEE المتاحة للجمهور الكثير من المعلومات. على سبيل المثال ، اتخذت بعض المنظمات الكثير من كتل OUI. هنا أبطالنا:
لدى Google 40 منهم فقط ، وهذا ليس مفاجئًا: فهي تنتج فقط عددًا كبيرًا من أجهزة الشبكات.
لا يتم توفير كتل MA مجانًا ، ويمكن شراؤها بسعر معقول (بدون رسوم شهرية) بمبلغ 3000 دولار أو 1800 دولار أو 755 دولار على التوالي. من المثير للاهتمام أنه مقابل المال الإضافي (سنويًا) ، يمكنك شراء "إخفاء" المعلومات العامة حول الكتلة المخصصة. هناك 232 منهم الآن ، كما يتبين أعلاه.
متى ينفد عنوان MAC؟
لقد سئمنا جميعًا القصة التي استمرت عشر سنوات والتي تقول "عناوين IPv4 توشك على النفاد". نعم ، لم تعد كتل IPv4 الجديدة سهلة المنال. ومن المعروف أيضًا أن عناوين IP يتم توزيعها بشكل غير متساوٍ للغاية ؛ هناك كتل عملاقة صغيرة الاستخدام مملوكة لشركات كبيرة وحكومة الولايات المتحدة ، ولكن دون أمل كبير في إعادة توزيعها لصالح المحتاجين. جعل انتشار NAT و CG-NAT و IPv6 مشكلة نقص العناوين العامة أقل حدة.
يحتوي عنوان MAC على 48 بت ، 46 منها مفيدة (لماذا؟ اقرأ على) ، والتي تعطي 2 46 أو 10 14 عنوانًا ، أي 2 14 ضعف مساحة عنوان IPv4.
في الوقت الحالي ، يتم توزيع ما يقرب من نصف تريليون عنوان ، أو 0.73 ٪ فقط من إجمالي الحجم. لا يزال استنفاد عناوين MAC بعيدًا جدًا.
بت عشوائي
يمكن افتراض أن وحدات OUI يتم توزيعها بشكل عشوائي ، ويقوم البائع بعد ذلك أيضًا بتعيين العناوين بشكل عشوائي إلى أجهزة شبكة فردية. هل هذا صحيح؟ دعونا نلقي نظرة على توزيع البت في قواعد MAC لعناوين أجهزة 802.11 التي لدي تحت تصرفي ، والتي تم جمعها عن طريق أنظمة ترخيص العمل في شبكات WNAM اللاسلكية. تنتمي العناوين إلى أجهزة حقيقية تم توصيلها بشبكة Wi-Fi لعدة سنوات في ثلاثة بلدان. بالإضافة إلى ذلك ، هناك قاعدة صغيرة من أجهزة LAN 802.3 السلكية.
نقوم بتقسيم كل عنوان MAC (ستة بايتات) من كل عينة إلى وحدات بايت ، وننظر إلى تكرار حدوث البتة "1" في كل موقع من المواضع الـ 48. إذا تم ضبط البت بطريقة تعسفية بالكامل ، فيجب أن يكون احتمال الحصول على "1" 50٪.
من أين يأتي هذا الظلم في البتات 7 و 8؟ هناك دائما تقريبا الأصفار.
في الواقع ، يعرف المعيار هذه البتات بأنها خاصة ( ويكيبيديا ):

تسمى البتة الثامنة (من البداية) من البايتة الأولى من عنوان MAC بت بتة البث الأحادي / الإرسال المتعدد وتحدد نوع الإطار (الإطار) الذي يتم إرساله بهذا العنوان ، عادي (0) أو البث (1) (الإرسال المتعدد أو البث). للتفاعل العادي ، أحادي الإرسال لمحول الشبكة ، يتم تعيين هذا البت على "0" في جميع الحزم المرسلة إليه.
تسمى البتة السابعة (من البداية) من البايت الأول من عنوان MAC بت U / L (العالمي / المحلي) وتقرر ما إذا كان العنوان فريدًا عالميًا (0) أو فريدًا محليًا (1). تبعًا للإعدادات الافتراضية ، تكون جميع العناوين "المُصنَّعة من قِبل الشركة المصنعة" فريدة من نوعها على مستوى العالم ، وبالتالي فإن العدد الهائل من عناوين MAC التي تم جمعها يحتوي على البتة السابعة المعيّنة على "0". في جدول معرّفات OUI المعينة ، يوجد حوالي 130 إدخالًا فقط تحتوي على بت U / L من "1" ، ويبدو أن هذه عبارة عن كتل من عناوين MAC للاحتياجات الخاصة.
من البتات من السادس إلى الأول من البايت الأول ، يتم توزيع البايتات من البايتتين الثانية والثالثة في معرفات OUI ، وحتى أكثر من ذلك ، البتات في البايتات 4-6 من العنوان المعين من قبل الشركة المصنعة ، يتم توزيعها بشكلٍ متساوٍ أو أقل.
وبالتالي ، في عنوان MAC الحقيقي لمحول الشبكة ، تكون البتات معادلة عملياً ولا تحمل معنى تقنيًا ، باستثناء اثنتين من وحدات الخدمة ذات البايت العالي.
انتشار
أتساءل ما هي الشركات المصنعة للمعدات اللاسلكية الأكثر شعبية؟ الجمع بين البحث OUI مع نموذج البيانات رقم 1.
تدل الممارسة على أنه كلما كان عدد المشتركين اللاسلكي في هذا المكان أكثر ازدهارًا ، زادت نسبة أجهزة Apple.
تميز
هل عناوين MAC فريدة من نوعها؟ من الناحية النظرية ، نعم ، لأن كل من الشركات المصنعة للأجهزة (أصحاب وحدة MA) مطلوبة لتوفير عنوان فريد لكل من محولات الشبكة الخاصة بها. ومع ذلك ، بعض الشركات المصنعة رقاقة ، وهي:
- 00: 0A: F5 Airgo Networks، Inc. (الآن كوالكوم)
- 00:08:22 InPro Comm (الآن MediaTek)
اضبط البايت الثلاث الأخيرة من عنوان MAC على رقم عشوائي ، على ما يبدو بعد كل إعادة تشغيل للجهاز. كان هناك 82 ألف من هذه العناوين في العينة رقم 1.
يمكنك تعيين نفسك غريباً ، وليس عنوانًا فريدًا ، بالطبع ، عن طريق إعداده عن قصد "مثل الجار" ، أو تعريفه على أنه متشمم أو اختيار عشوائي. من الممكن أيضًا أن تحدد بنفسك عنوانًا غير فريد عن طريق الخطأ ، على سبيل المثال ، من خلال استعادة تكوين نسخة احتياطية لجهاز توجيه مثل Mikrotik أو OpenWrt.
ماذا يحدث في حالة وجود جهازين بنفس عنوان MAC على الشبكة؟ كل هذا يتوقف على منطق معدات الشبكة (الموجه السلكي ، وحدة تحكم الشبكة اللاسلكية). على الأرجح ، لن يعمل كلا الجهازين ، أو سيعملان بشكل متقطع. من وجهة نظر معايير IEEE ، يُقترح حل الحماية من تزوير عناوين MAC باستخدام ، على سبيل المثال ، MACsec أو 802.1X.
ماذا لو وضعت نفسك MAC مع تعيين بت السابعة أو الثامنة إلى "1" ، أي عنوان محلي أو متعدد البث؟ على الأرجح ، لن تهتم شبكتك بهذا ، ولكن بشكل رسمي ، لن يتوافق هذا العنوان مع المعيار ، ومن الأفضل عدم القيام بذلك.
كيف تعمل العشوائية
نحن نعلم أنه لمنع تتبع حركة الأشخاص عن طريق مسح الهواء وجمع أنظمة تشغيل MAC للهواتف الذكية ، تم استخدام تقنية التوزيع العشوائي لعدة سنوات. من الناحية النظرية ، عند مسح الهواء بحثًا عن شبكات معروفة ، يرسل الهاتف الذكي حزمة (مجموعة من الحزم) من طلب التحقيق من النوع 802.11 مع عنوان MAC كمصدر:

يسمح لك التوزيع العشوائي المتضمن بتحديد "الوميض" ، ولكن عنوان مصدر آخر للحزمة ، يتغير مع كل دورة مسح ، في الوقت المناسب أو بطريقة أو بأخرى. هل هذا العمل؟ دعونا نلقي نظرة على إحصائيات عناوين MAC التي تم جمعها من الجو باستخدام ما يسمى "رادار Wi-Fi":
الصورة مختلفة تماما.
لا يزال الجزء الثامن من البايت الأول من عنوان MAC يتطابق مع الطابع الأحادي لعنوان SRC في حزمة طلب الفحص.
تم تعيين البت السابع في 92.2٪ من الحالات على Local ، أي مع قدر لا بأس به من اليقين ، يمكننا أن نفترض أن العديد من العناوين التي تم جمعها عشوائية ، وأقل من 8 ٪ حقيقية. علاوة على ذلك ، فإن توزيع البتات في OUI لهذه العناوين الحقيقية يتزامن تقريبًا مع البيانات الموجودة في الجدول السابق.
وفقًا لـ OUI ، ما هي الجهة المصنعة التي تنتمي إليها العناوين العشوائية (أي ، مع الجزء السابع في "1")؟
علاوة على ذلك ، فإن جميع العناوين العشوائية المخصصة لـ Google تنتمي إلى OUI واحدة مع البادئة DA: A1: 19 . ما هي هذه البادئة؟ لنلقِ نظرة على الكود المصدري لنظام Android .
private static final MacAddress BASE_GOOGLE_MAC = MacAddress.fromString("da:a1:19:0:0:0");
يستخدم android android الأسهم OUI الخاصة المسجلة ، وهي واحدة من الشركات القليلة التي تحتوي على المجموعة السابعة ، في البحث عن الشبكات اللاسلكية.
حساب MAC الحقيقي من عشوائي
دعنا ننظر هناك:
private static final long VALID_LONG_MASK = (1L << 48) - 1; private static final long LOCALLY_ASSIGNED_MASK = MacAddress.fromString("2:0:0:0:0:0").mAddr; private static final long MULTICAST_MASK = MacAddress.fromString("1:0:0:0:0:0").mAddr; public static @NonNull MacAddress createRandomUnicastAddress(MacAddress base, Random r) { long addr; if (base == null) { addr = r.nextLong() & VALID_LONG_MASK; } else { addr = (base.mAddr & OUI_MASK) | (NIC_MASK & r.nextLong()); } addr |= LOCALLY_ASSIGNED_MASK; addr &= ~MULTICAST_MASK; MacAddress mac = new MacAddress(addr); if (mac.equals(DEFAULT_MAC_ADDRESS)) { return createRandomUnicastAddress(base, r); } return mac; }
العنوان بالكامل ، أو وحدات البايت الثلاث على الأقل ، هو Random.nextLong () خالص. "استرداد براءة اختراع من MAS الحقيقي" - عملية احتيال. مع درجة عالية من اليقين ، من المتوقع أن يستخدم مصنعو هواتف Android أجهزة OUI الأخرى غير المسجلة. ليس لدينا أي مصادر iOS ، ولكن على الأرجح يتم استخدام خوارزمية مماثلة هناك.
ما ورد أعلاه لا يلغي تشغيل آليات أخرى لتحديد هوية المشتركين في Wi-Fi ، استنادًا إلى تحليل الحقول الأخرى في إطار طلب التحقيق ، أو ارتباط التردد النسبي للطلبات المرسلة بواسطة الجهاز. ومع ذلك ، فإن تتبع المشترك بشكل موثوق من خلال وسائل خارجية يمثل مشكلة كبيرة للغاية. البيانات التي تم جمعها هي أكثر ملاءمة لتحليل متوسط / ذروة الحمل حسب الموقع والوقت ، على أساس أعداد كبيرة ، دون الإشارة إلى أجهزة وأشخاص محددين. البيانات الدقيقة هي فقط لأولئك الذين "داخل" ، الشركات المصنعة لنظام التشغيل المحمول أنفسهم ، والتطبيقات المثبتة.
ما الذي قد يكون خطيرًا إذا اكتشف شخص آخر عنوان MAC لجهازك؟ بالنسبة للشبكات السلكية واللاسلكية ، يمكن تنظيم هجوم رفض الخدمة. بالنسبة للجهاز اللاسلكي ، بالإضافة إلى ذلك ، مع بعض الاحتمالات ، من الممكن إصلاح لحظة الظهور في المكان الذي تم تثبيت المستشعر عليه. عن طريق خداع العنوان ، يمكنك محاولة "التظاهر" ليكون جهازك ، والذي لا يعمل إلا إذا كنت لا تستخدم ميزات أمان إضافية (التخويل و / أو التشفير). 99.9 ٪ من الناس هنا ليس لديهم ما يدعو للقلق.
عنوان MAC أكثر تعقيدًا مما يبدو ، ولكنه أبسط مما يمكن أن يكون.