大家都知道這六個字節,通常以十六進制的格式顯示,是網卡出廠時就被分配的,乍看之下是隨機的。有些人知道地址的前三個位元組是製造商的ID,其餘三個位元組是分配給他們的。您也可以自行設定 隨意的 地址。許多人都聽說過 Wi-Fi 中的「隨機地址」。
讓我們弄清楚它是什麼。
MAC位址(媒體存取控制位址)是分配給網路適配器的唯一標識符,用於IEEE 802標準網絡,主要是以太網,Wi-Fi和藍牙。正式名稱為「EUI-48 類型識別碼」。從名稱可以明顯看出該位址長48位,即6個位元組。對於寫入該位址,沒有普遍接受的標準(與 IPv4 位址不同,其中八位元組始終以句點分隔)。它通常寫為用冒號分隔的六個十六進制數:00:AB:CD:EF:11:22,儘管一些設備製造商更喜歡使用 00-AB-CD-EF-11-22 甚至 00ab.cdef.1122 這樣的符號。
過去,網路卡的位址被寫入晶片組的ROM中,必須使用快閃記憶體編程器才能修改。但如今,可以透過作業系統以程式方式更改網路卡的MAC位址。您也可以手動設定網路卡的MAC位址。 Linux 以及 macOS(始終如此), Windows (幾乎總是如此,如果司機允許的話) Android (僅限已root的使用者);對於iOS(未root),這種技巧是不可能的。
地址結構
此位址由製造商識別碼部分、OUI 和製造商指派的識別碼組成。 OUI(組織唯一識別碼)識別碼的分配 IEEE 組織。實際上它的長度可能不只3個位元組(24位元),還有28位元或36位,分別形成大(MA-L)、中(MA-M)、小(MA-S)類型的位址區塊(MAC位址區塊,MA)。在這種情況下,發行的區塊的大小將分別為 24、20、12 位元或 16 萬、1 萬、4 個位址。目前已分發了約 38 個區塊,可以使用多種線上工具查看,例如 或 .
這些地址的所有者是誰?
輕鬆處理公開 IEEE 提供了相當多的信息。例如,一些組織為自己奪取了大量的 OUI 區塊。以下是我們的英雄:
小販
塊/記錄的數量
地址數量(百萬)
思科系統公司
888
14208
Apple
772
12352
Samsung
636
10144
華為技術有限公司
606
9696
英特爾公司
375
5776
ARRIS集團公司
319
5104
諾基亞公司
241
3856
私人的
232
2704
德州儀器(TI)
212
3392
中興通訊股份有限公司
198
3168
IEEE註冊中心
194
3072
惠普
149
2384
鴻海精密
136
2176
TP-LINK
134
2144
戴爾公司
123
1968
瞻博網絡
110
1760
薩基姆寬頻SAS
97
1552
烽火通信科技股份有限公司
97
1552
小米通訊有限公司
88
1408
廣東歐珀行動通訊有限公司
82
1312
谷歌只有 40 個這樣的設備,這並不奇怪:他們自己並不生產很多網路設備。
MA 塊不是免費提供的,可以以合理的價格(無訂閱費)分別購買,價格為 3000 美元、1800 美元或 755 美元。有趣的是,您可以支付額外的費用(每年)來購買有關分配區塊的「隱藏」公共資訊。目前共有 232 個,如上圖所示。
當 MAC 位址用完時
我們對十年來一直在說的「IPv10 位址即將耗盡」的故事已經感到厭倦了。是的,新的 IPv4 區塊不再容易取得。眾所周知,IP 位址 ;大型企業和美國政府機構擁有大量未充分利用的土地,幾乎不可能將它們重新分配給有需要的人。 NAT、CG-NAT和IPv6的普及使得公網位址短缺的問題不再那麼嚴重。
MAC 位址有 48 位,其中 46 位可被認為是「有用的」(為什麼?請繼續閱讀),這提供了 246 或 1014 個位址,是 IPv214 位址空間的 4 倍。
目前,已分發的地址約為 0.73 億個,僅佔總量的 XNUMX%。 MAC 位址耗盡之前還有很長的路要走。
比特的隨機性
可以假設 OUI 是隨機分佈的,然後供應商會以同樣隨機的方式將位址分配給各個網路設備。這是真的嗎?讓我們來看看我所掌握的 802.11 設備 MAC 位址資料庫中的位元分佈,這些資料庫由無線網路中的工作授權系統收集 。這些地址屬於三個國家中多年來一直連接到 Wi-Fi 的真實設備。此外,還有一個 802.3 有線 LAN 設備的小型資料庫。
我們將每個樣本的每個 MAC 位址(六個位元組)分解成逐位元組的位,並查看 1 個位置中位「48」出現的頻率。如果該位完全隨機設置,那麼獲得“1”的機率應該是 50%。
Wi-Fi 樣本 #1 (RF)
Wi-Fi 範例 #2(白俄羅斯)
Wi-Fi 範例 #3(烏茲別克)
LAN採樣(RF)
資料庫中的記錄數
5929000
1274000
366000
1000
位元號:
% 位“1”
% 位“1”
% 位“1”
% 位“1”
1
48.6%
49.2%
50.7%
28.7%
2
44.8%
49.1%
47.7%
30.7%
3
46.7%
48.3%
46.8%
35.8%
4
48.0%
48.6%
49.8%
37.1%
5
45.7%
46.9%
47.0%
32.3%
6
46.6%
46.7%
47.8%
27.1%
7
0.3%
0.3%
0.2%
0.7%
8
0.0%
0.0%
0.0%
0.0%
9
48.1%
50.6%
49.4%
38.1%
10
49.1%
50.2%
47.4%
42.7%
11
50.8%
50.0%
50.6%
42.9%
12
49.0%
48.4%
48.2%
53.7%
13
47.6%
47.0%
46.3%
48.5%
14
47.5%
47.4%
51.7%
46.8%
15
48.3%
47.5%
48.7%
46.1%
16
50.6%
50.4%
51.2%
45.3%
17
49.4%
50.4%
54.3%
38.2%
18
49.8%
50.5%
51.5%
51.9%
19
51.6%
53.3%
53.9%
42.6%
20
46.6%
46.1%
45.5%
48.4%
21
51.7%
52.9%
47.7%
48.9%
22
49.2%
49.6%
41.6%
49.8%
23
51.2%
50.9%
47.0%
41.9%
24
49.5%
50.2%
50.1%
47.5%
25
47.1%
47.3%
47.7%
44.2%
26
48.6%
48.6%
49.2%
43.9%
27
49.8%
49.0%
49.7%
48.9%
28
49.3%
49.3%
49.7%
55.1%
29
49.5%
49.4%
49.8%
49.8%
30
49.8%
49.8%
49.7%
52.1%
31
49.5%
49.7%
49.6%
46.6%
32
49.4%
49.7%
49.5%
47.5%
33
49.4%
49.8%
49.7%
48.3%
34
49.7%
50.0%
49.6%
44.9%
35
49.9%
50.0%
50.0%
50.6%
36
49.9%
49.9%
49.8%
49.1%
37
49.8%
50.0%
49.9%
51.4%
38
50.0%
50.0%
49.8%
51.8%
39
49.9%
50.0%
49.9%
55.7%
40
50.0%
50.0%
50.0%
49.5%
41
49.9%
50.0%
49.9%
52.2%
42
50.0%
50.0%
50.0%
53.9%
43
50.1%
50.0%
50.3%
56.1%
44
50.1%
50.0%
50.1%
45.8%
45
50.0%
50.0%
50.1%
50.1%
46
50.0%
50.0%
50.1%
49.5%
47
49.2%
49.4%
49.7%
45.2%
48
49.9%
50.1%
50.7%
54.6%
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
26,09
Samsung
19,79
華為技術有限公司
7,80
小米通訊有限公司
6,83
索尼移動通信公司
3,29
LG電子(行動通訊)
2,76
華碩電腦公司
2,58
TCT移動有限公司
2,13
中興通訊股份有限公司
2,00
IEEE 資料庫中未找到
1,92
聯想行動通訊科技有限公司
1,71
HTC公司
1,68
村田製作所
1,31
InPro 通訊
1,26
微軟公司
1,11
深圳市天瓏移動科技有限公司
1,02
摩托羅拉(武漢)行動技術通訊有限公司
0,93
諾基亞公司
0,88
上海風能技術有限公司
0,74
聯想行動通訊(武漢)有限公司
0,71
經驗表明,某個地區的無線網路用戶越富裕,蘋果設備的份額就越大。
獨特性
MAC 位址是唯一的嗎?理論上是的,因為每個設備製造商(MA 區塊的所有者)都必須為他們生產的每個網路適配器提供唯一的位址。然而,一些晶片製造商,即:
- 00:0A:F5 Airgo Networks, Inc.(現為高通)
- 00:08:22 InPro Comm(現為聯發科)
將 MAC 位址的最後三個位元組設定為一個隨機數,顯然是在裝置每次重新啟動後。我的樣本#1 中有 82 個這樣的位址。
當然,您可以透過故意將其設定為「像鄰居的一樣」、透過使用嗅探器進行識別或隨機選擇來為自己設定其他人的非唯一地址。也有可能意外地為自己設定一個非唯一的位址,例如,透過還原 Mikrotik 或 OpenWrt 等路由器配置的備份。
如果網路上有兩個具有相同 MAC 位址的裝置會發生什麼情況?這一切都取決於網路設備(有線路由器、無線網路控制器)的邏輯。最有可能的是,這兩個設備要么無法工作,要么只能間歇性地工作。從IEEE標準的角度來看,提出使用例如MACsec或802.1X來解決防止MAC位址偽造的問題。
如果您將第七位元或第八位元設定為「1」(即本機或多重播放位址)的 MAC 位址,會怎麼樣?您的網路很可能不會注意到這一點,但從形式上講,這樣的位址不符合標準,最好不要這樣做。
隨機化的工作原理
我們知道,為了防止透過掃描無線電波和收集MAC來追蹤人們的運動,智慧型手機作業系統多年來一直在使用隨機化技術。理論上,當掃描無線電波以查找已知網路時,智慧型手機會發送一個 802.11 探測請求類型的資料包(或一組資料包),以 MAC 位址作為來源:

啟用隨機化可讓您指定不是「硬編碼」位址,而是資料包來源的其他位址,這些位址會隨著每個掃描週期、隨著時間的推移或以其他方式而變化。它有用嗎?讓我們來看看所謂的「Wi-Fi雷達」從空中收集到的MAC位址統計資料:
整個樣本
僅第 7 位為零的選擇
資料庫中的記錄數
3920000
305000
位元號:
% 位“1”
% 位“1”
1
66.1%
43.3%
2
66.5%
43.4%
3
31.7%
43.8%
4
66.6%
46.4%
5
66.7%
45.7%
6
31.9%
46.4%
7
92.2%
0.0%
8
0.0%
0.0%
9
67.2%
47.5%
10
32.3%
45.6%
11
66.9%
45.3%
12
32.3%
46.8%
13
32.6%
50.1%
14
33.0%
56.1%
15
32.5%
45.0%
16
67.2%
48.3%
17
33.2%
56.9%
18
33.3%
56.8%
19
33.3%
56.3%
20
66.8%
43.2%
21
67.0%
46.4%
22
32.6%
50.1%
23
32.9%
51.2%
24
67.6%
52.2%
25
49.8%
47.8%
26
50.0%
50.0%
27
50.0%
50.2%
28
50.0%
49.8%
29
50.0%
49.4%
30
50.0%
50.0%
31
50.0%
49.7%
32
50.0%
49.9%
33
50.0%
49.7%
34
50.0%
49.6%
35
50.0%
50.1%
36
50.0%
49.5%
37
50.0%
49.9%
38
50.0%
49.8%
39
50.0%
49.9%
40
50.0%
50.1%
41
50.0%
50.2%
42
50.0%
50.2%
43
50.0%
50.1%
44
50.0%
50.1%
45
50.0%
50.0%
46
50.0%
49.8%
47
50.0%
49.8%
48
50.1%
50.9%
情況完全不同。
MAC位址第一個位元組的第8位元仍然對應探測請求包中SRC位址的單播性質。
第 7 位在 92.2% 的情況下設定為本地,即可以相當肯定地假設收集到的這些地址中正是隨機的,而真實的地址不到 8%。此外,此類真實位址的 OUI 中的位元分佈與上表中的資料大致一致。
根據 OUI,哪家製造商擁有隨機位址(即第 7 位元設定為「1」)?
製造商:OUI
在所有地址之間共用
IEEE 資料庫中未找到
62.45%
谷歌公司
37.54%
其餘的
0.01%
在這種情況下,所有分配給 Google 的隨機位址都屬於一個 OUI,其前綴為 日期:A1:19。這個前綴是什麼?讓我們來看看 .
private static final MacAddress BASE_GOOGLE_MAC = MacAddress.fromString("da:a1:19:0:0:0");原生 Android 使用特殊的、註冊的 OUI 來搜尋無線網絡,這是安裝了第七位的少數網路之一。
根據隨機 MAC 計算真實 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;
}
整個位址或其低三個位元組是乾淨的 隨機.nextLong()「獲得專利的MAC修復」是個騙局。可以高度肯定的是,製造商 Android手機中也使用了其他未註冊的 OUI。我們沒有 iOS 的源代碼,但很可能其中使用了類似的演算法。
上述內容不會取消基於探測請求訊框的其他欄位分析或裝置發送的請求相對頻率相關性對 Wi-Fi 使用者進行去匿名化的其他機制的運作。然而,使用外部手段可靠地追蹤訂閱者極為困難。所收集的數據更適合基於大量數據按位置和時間分析平均/峰值負載,而不受特定設備和人員的約束。只有「內部」人員才擁有準確的數據:行動作業系統製造商本身以及已安裝的應用程式。
如果有人獲知你設備的 MAC 位址,會有什麼危險?拒絕服務攻擊可以針對有線和無線網路發動。對於無線設備而言,它還可能被偵測到位於感測器位置附近。地址欺騙可以用來冒充你的設備,但這只有在沒有採取額外安全措施(例如授權和/或加密)的情況下才會奏效。 99.9% 這裡的人沒什麼好擔心的。
MAC 位址比它看起來的要複雜,但比它本來應該的要簡單。
來源: www.habr.com
