MarshmallowでPEAP 802.1x EAPに繋がらない問題について


少し前に気がついたのですが、Android 5.1.1からAndroid6.0にアップデートした際に、大学内のWi-Fiへの接続でトラブルがありました。今回はMarshmallowにおけるPEAP 802.1x EAPに繋がらない問題の対処方法について説明します。

では内容に入ります。

対処方法ですが、簡潔に言ってしまうと、TLS(Transport Layer Security) 1.2を無効にします。これによりPEAP 802.1x EAPでの接続を可能にします。
しかし、問題もあります。TLSはインターネット等でデータをやりとりする際に暗号化して送受信するプロトコルで、現在はTLS 1.0/1.1/1.2/(1.3は本記事投稿時では草稿の段階)があります。これのどれを利用するかはWebブラウザとWebサーバーがそれぞれサポートしている規格の中から「認証」と「使用する暗号アルゴリズムの決定」を目的とするネゴシエーションによって決定されます。しかし、TLS 1.0とTLS 1.1にはプロトコルや実装上の脆弱性が明らかになっており[link]、セキュリティ上の危険性が高いです。そのため、本記事はあくまで対症療法的解決案であり、原因療法的解決案ではないことをご理解お願いします。

ここまで長々と説明してきましたが、ご了解いただけた方のみ引き続きお読みください。

必要なもの

  • Android 6.x(Marshmallow)の搭載されたroot化済みのAndroid端末
  • システム領域への書き込みを行えるファイルマネージャー(説明ではSolid Explorerを使用します)

手順

全体の流れは以下のようになっています。
  1. ファイルマネージャで/data/misc/wifiにアクセスする。
  2. wpa_supplicant.confを編集する。
  3. 端末を再起動する。
では、実際に手順に従っていきましょう。

1. ファイルマネージャで/data/misc/wifiにアクセスする。

Launcher等からファイルマネージャーを開き、/data/misc/wifiにアクセスしてください。


2. wpa_supplicant.confを編集する。

まず、端末のWi-FiをOFFにしてください。また、システム領域を編集するため、バックアップなどはとってあることを前提とします。wpa_supplicant.confを開いたら

network={
       ssid="接続したいSSID名"

の行を探してください。そこを

network={
    ssid="hoge"
    key_mgmt=WPA-EAP IEEE8021X
    eap=PEAP
    identity="user_name"
    password="password"
    phase1="tls_disable_tlsv1_2=1"
    phase2="auth=MSCHAPV2"
    priority=8
    proactive_key_caching=1
}

のように変更します。追加するのは太字で書いてあるphase1="tls_disable_tlsv1_2=1"の部分です。赤字の部分は各自異なります。
編集後、ファイルの属性(パーミッション)を変更します。ファイルマネージャーによって表示は異なると思いますが以下のようにしてください。


所有者とグループの属性を変更することを忘れないように注意してください。

3. 端末を再起動する。

端末を再起動し、Wi-FiをONにすると接続したいSSIDに繋がるはずです。

以上。

SHARE
Blogger Comment

0 コメント:

コメントを投稿