MACランダム化動作

MACランダム化機能を使用すると、デバイスはWi-Fiネットワークに接続するときにランダム化されたMACアドレスを使用できます。実装手順については、 MACランダム化の実装を参照してください。このページでは、AndroidでのMACランダム化の動作について説明します。

MACアドレスは、Wi-Fiネットワークまたはアクセスポイントに接続するときにデバイスによって使用されます。これらのMACアドレスは暗号化なしで送信されるため、キャプチャしてユーザーの位置を追跡するために使用できる可能性があります。従来、デバイスは工場出荷時のMACアドレスを使用してWi-Fiネットワークに関連付けられていました。工場出荷時のMACアドレスはグローバルに一意で静的であるため、デバイスを追跡して個別に識別できます。

MACランダム化機能は、Wi-Fiネットワークに接続するときにランダム化されたMACアドレスを使用することにより、ユーザーのプライバシーを向上させます。

MACアドレスは48ビット長で、通常、 00:11:22:AA:BB:CCのように12桁の16進数(各オクテットは8ビットであるため6オクテット)で表されます。 MACランダム化機能は、ローカルで管理されるビットを1に設定し、ユニキャストビットを0に設定することにより、アドレスをランダム化します。他の46ビットはランダム化されます。

Android 10以降を実行しているデバイスの場合、フレームワークはデフォルトでランダム化されたMACアドレスを使用します。ユーザーは、図1に示すように、 [設定]の[ネットワークの詳細]画面のオプションを使用して、個々のネットワークのMACランダム化を有効または無効にできます。ユーザーがネットワークのMACランダム化を無効にすると、フレームワークは工場出荷時のMACアドレス(グローバルに一意のアドレス)を使用します。

MACランダム化オプション

1.MACランダム化オプション。

MACランダム化タイプ

Androidフレームワークは、永続的ランダム化永続的ランダム化の2種類のMACランダム化を使用します。ユーザーがMACランダム化を無効にすると、工場出荷時のMACアドレスが使用されます。

Androidは、デバイスがWi-Fiネットワークに関連付けられているときに使用するMACランダム化タイプを決定します。デフォルトでは、Androidは永続的なランダム化を使用します。 Android 12以降、Androidは次の状況で非永続的なランダム化を使用します。

  • ネットワーク提案アプリは、 WifiNetworkSuggestion.Builder#setMacRandomizationSettingを介してネットワークに非永続的なランダム化を使用することを指定します。
  • ネットワークはキャプティブポータルに遭遇していないオープンネットワークであり、 config_wifiAllowEnhancedMacRandomizationOnOpenSsidsオーバーレイがtrueに設定されています。このオーバーレイはデフォルトで無効になっています( falseに設定されています)。

永続的なランダム化

MACランダム化機能が有効になっている場合、Androidはデフォルトで永続的なランダム化タイプを使用します。 Androidは、SSID、セキュリティタイプ、FQDN(パスポイントネットワークの場合)などのネットワークプロファイルのパラメーターに基づいて、永続的なランダム化されたMACアドレスを生成します。このMACアドレスは、工場出荷時にリセットされるまで同じままです。アドレス指定されたMACはネットワークプロファイルのパラメーターに依存するため、ユーザーがWi-Fiネットワークを忘れて再度追加した場合、MACアドレスは再ランダム化されませ

永続的なMACアドレスは、ネットワークがMACアドレスの永続性に依存してユーザーに有用な機能を提供する場合に必要です。たとえば、デバイスを記憶してユーザーが期待どおりにログイン画面をバイパスできるようにしたり、ペアレンタルコントロールを有効にしたりします。

Android 10および11の場合、MACランダム化が有効になっていると、フレームワークはすべてのネットワークに永続的なランダム化を使用します。

非永続的なランダム化

Android 12以降の一部のネットワークで使用される非永続的なランダム化タイプでは、Wi-Fiモジュールがすべての接続の開始時にMACアドレスを再ランダム化するか、フレームワークが既存のランダム化されたMACアドレスを使用して通信網。 Wi-Fiモジュールは、次の状況でMACアドレスを再ランダム化します。

  • DHCPリース期間が満了し、デバイスがこのネットワークから最後に切断されてから4時間以上経過しました。
  • ネットワークプロファイルの現在のランダム化されたMACは、24時間以上前に生成されました。 MACアドレスの再ランダム化は、新しい接続の開始時にのみ発生します。 Wi-Fiは、MACアドレスを再ランダム化する目的でアクティブに切断されることはありません。

これらの状況のいずれにも当てはまらない場合、フレームワークは以前にランダム化されたMACアドレスを使用してネットワークに接続します。

非永続的なランダム化のための開発者オプション

Android 11または12を実行しているデバイスの場合、ユーザーは、開発者向けオプション画面を使用して、すべてのWi-Fiネットワーク(MACランダム化が有効になっている)に対して非永続的なMACランダム化をグローバルに有効にできます。すべてのプロファイルに対して非永続的MACランダム化を有効にするオプションは、 [設定]>[開発者向けオプション]>[Wi-Fi非永続的MACランダム化]にあります。

Wi-Fi非永続的MACランダム化オプション

2.Wi-Fi非永続的MACランダム化オプション。