Bagaimana cara menghindari mengekspos alamat MAC saya saat menggunakan IPv6?

140

Di Mac saya, setiap alamat IPv6 menyertakan alamat MAC komputer tertentu ( bukan router saya). Situs-situs seperti ipv6-test.com tidak hanya memperlihatkannya, tetapi bahkan memberi tahu saya bahwa itu milik komputer Apple.

Ini terasa seperti cookie super, dan mungkin berlaku untuk sistem operasi lain juga. Bagaimana saya bisa menghindari alamat MAC saya terkena?

Latar Belakang: alamat MAC tidak terlihat . Seperti untuk 2001:0db8:1:2:60:8ff:fe52:f9d8:

  • Ambil yang terakhir 64 bit (host identifier) dan menambahkan nol terkemuka: 0060:08ff:fe52:f9d8.
  • Lepaskan ff:febagian dari tengah. Jika byte ini tidak ada, maka tidak ada alamat MAC.
  • Untuk byte pertama: melengkapi bit orde rendah kedua (bit universal / lokal; jika bit adalah 1, buatlah 0, dan jika itu adalah 0, buatlah 1). Jadi: 0x00(00000000) menjadi 0x02(00000010).
  • Presto: 60:8ff:fe52:f9d8diterjemahkan kembali ke alamat MAC 02:60:08:52:f9:d8.

Catatan: sejak macOS 10.12 Sierra, menurut Ars Technica Apple telah mengadopsi cara baru untuk menghasilkan alamat stabil yang tidak didasarkan pada alamat MAC , yang tampaknya sudah dilakukan Windows selama bertahun-tahun.


Pertanyaan ini adalah Pertanyaan Pengguna Super Minggu Ini .
Baca entri blog untuk detail lebih lanjut atau berkontribusi ke blog sendiri

Arjan
sumber
14
Wow saya tidak tahu soal IPV6, nice find.
Supercereal
18
Yah, tentu saja itu menunjukkan komputer Apple. Bagaimanapun, ini adalah alamat MAC.
Graeme Perrow
@ Kronos, sebuah gambar hilang pada entri blog; blog.superuser.com/2011/02/11/... Menambahkan ".stack" ke URL membantu: i.stack.imgur.com/RNXoA.png
Arjan
... tetapi, @KronoS, menambahkan ".stack" sebenarnya membuat bentuk gambar lain dari posting blog yang sama menghilang, seperti i.imgur.com/vjK73.png (oke) vs i.stack.imgur.com/vjK73.png ( tidak baik). Dengan kata lain: mungkin semua gambar di blog yang saat ini tidak digunakan .stackharus diunggah kembali ...?
Arjan
@Arjan saya tidak yakin. Saya harus memeriksa ini. Saya ingin fitur yang semua gambar diunggah ke blog diunggah secara otomatis ke akun imgur stack. Mirip dengan apa yang dilakukan situs reguler saat ini
James Mertz

Jawaban:

134

Ini dipecahkan oleh dua ekstensi untuk IPv6:

  • RFC 4941 alias "Privacy Addressing" memungkinkan koneksi keluar menggunakan alamat sementara yang dibuat secara acak (yang diputar setiap beberapa jam).
  • RFC 7217 memungkinkan alamat statis primer dihasilkan dari hash buram yang tidak mengungkapkan informasi apa pun.

Setidaknya satu tetapi semakin kedua metode didukung oleh sistem operasi yang populer.

Perhatikan bahwa fitur-fitur ini ortogonal. Anda dapat menggunakan keduanya secara bersamaan, jika mau.

Alamat pribadi yang stabil

Dalam beberapa sistem operasi, alamat MAC (EUI-48) tidak lagi digunakan untuk pengidentifikasi antarmuka. Alih-alih pengidentifikasi berbasis acak atau hash digunakan, umumnya menurut RFC 7217.

  • Windows menggunakan skema khusus secara default dimulai dengan Windows Vista.

    Untuk memeriksa apakah fitur ini aktif, jalankan perintah PowerShell:

    Get-NetIPv6Protocol | fl RandomizeIdentifiers
    

    Untuk mengaktifkan / menonaktifkan fitur:

    Set-NetIPv6Protocol -RandomizeIdentifiers Enabled
    Set-NetIPv6Protocol -RandomizeIdentifiers Disabled
    
  • Linux (NetworkManager) mendukung RFC 7217 pada NetworkManager v1.2.0, menggunakan UUID profil koneksi sebagai bagian dari seed. Fitur ini aktif secara default di versi NM terbaru.

    Untuk mengaktifkan atau menonaktifkan fitur ini:

    nmcli con modify "<profilename>" ipv6.addr-gen-mode stable-privacy
    nmcli con modify "<profilename>" ipv6.addr-gen-mode eui64
    
  • Linux (kernel SLAAC) mendukung RFC 7217 pada kernel v4.1.0; Namun, itu harus diaktifkan secara manual dengan menyimpan benih rahasia melalui sysctl.

    Kunci rahasia adalah string heksadesimal 128-bit (berbentuk seperti alamat IPv6), yang harus disimpan dalam net.ipv6.conf.default.stable_secretsysctl. Untuk membuatnya gigih, bisa dimasukkan ke dalam /etc/sysctl.d/50-rfc7217.confatau serupa:

    net.ipv6.conf.default.stable_secret = 84a0:d5aa:52b0:4d35:k567:3aa6:7af5:474c
    

    Mengatur rahasia secara otomatis mengaktifkan mode ini untuk semua antarmuka jaringan. Untuk memeriksa apakah fitur tersebut aktif, cari "addrgenmode stable_secret" di ip -d link, atau nilai "2" di sysctl net.ipv6.conf.<ifname>.addr_gen_mode.

Alamat pribadi sementara

Seperti yang didefinisikan dalam RFC 4941, alamat privasi sementara dihasilkan secara acak dan diputar setiap beberapa jam.

  • Windows mendukung alamat sementara pada Windows XP SP2.

    Untuk mengaktifkan / menonaktifkan fitur ini:

    netsh interface ipv6 set privacy state=enabled
    netsh interface ipv6 set privacy state=disabled
    

    Perhatikan bahwa Windows tidak lagi menggunakan alamat primer berbasis alamat MAC yang dimulai dengan Windows Vista.

  • Linux (NetworkManager) : Versi terbaru dari NetworkManager menangani RA sendiri, meskipun dua nilai di bawah ini memiliki arti yang identik dengan sysctl (2 = lebih suka alamat privasi, 1 = lebih suka alamat utama):

     nmcli con modify <name> ipv6.ip6-privacy 2
    

    Selain itu, mulai 1.2.0 mode yang lebih baik tersedia, yang mengubah alamat utama menjadi tidak lagi berbasis MAC melainkan unik untuk setiap jaringan (RFC 7217):

    (Perhatikan bahwa pengalamatan privasi adalah ortogonal dari addr-gen-mode; dimungkinkan untuk menggunakan keduanya.)

    Catatan samping: Pada 1.4.0, NM juga memungkinkan pengacakan alamat MAC itu sendiri. Atur wifi.cloned-mac-addressagar stablememiliki MAC yang berbeda untuk setiap jaringan (disarankan), atau randommengacaknya untuk setiap koneksi (dapat menyebabkan masalah).

    Dalam semua kasus, <name>harus nama koneksi, mis. WiFi SSID atau "Wired Connection 1". Gunakan nmcli conuntuk mendaftar semua.

    Untuk menjadikan ini default untuk koneksi baru , mulai 1.2.0 Anda dapat mengubah /etc/NetworkManager/NetworkManager.conf:

     [connection]
     ipv6.addr-gen-mode=stable-privacy
     wifi.cloned-mac-address=stable
    
  • Linux (kernel SLAAC) mendukung alamat sementara, tetapi tidak menggunakannya secara default. Mereka dapat diaktifkan melalui sysctl.

    Untuk mengaktifkan alamat sementara dan membuatnya lebih disukai untuk koneksi keluar:

     sysctl net.ipv6.conf.all.use_tempaddr=2
     sysctl net.ipv6.conf.default.use_tempaddr=2
    

    Untuk mengaktifkan pembuatan alamat sementara, tetapi pertahankan alamat SLAAC statis seperti yang diinginkan:

     sysctl net.ipv6.conf.all.use_tempaddr=1
     sysctl net.ipv6.conf.default.use_tempaddr=1
    

    Bagian allatau defaultdapat diganti dengan nama antarmuka tertentu; mis net.ipv6.conf.eth0.use_tempaddr.

    (Saya dulu ip link set eth0 down && ip link set eth0 upmemaksakan penugasan alamat, tetapi Anda juga dapat menjalankan rdisc6 eth0atau hanya menunggu beberapa menit untuk Iklan Router berkala berikutnya.)

  • Mac OS X - diaktifkan secara default sejak OS X 10.7 Lion:

     sysctl -w net.inet6.ip6.use_tempaddr=1
    

    Alamat sementara, jika diaktifkan, akan lebih disukai.

  • FreeBSD :

     sysctl net.inet6.ip6.use_tempaddr=1
    
     sysctl net.inet6.ip6.prefer_tempaddr=1
    
  • NetBSD :

     sysctl -w net.inet6.ip6.use_tempaddr=1
    

    Preferensi alamat sementara? Saya tidak punya ide. Alamat autoconf tampaknya lebih disukai. ifconfigtampaknya tidak mencantumkan properti alamat apa pun.

  • OpenBSD - dukungan ditambahkan pada 5.2 ; diaktifkan dan disukai secara default di 5.3 .

     ifconfig em0 autoconfprivacy
    

    ifconfig memperlihatkan "autoconfprivacy" di sebelah alamat sementara.

Catatan tentang konfigurasi:

  • Di Linux, OS X, dan semua BSD, edit /etc/sysctl.confuntuk menjadikan pengaturan ini permanen.

  • Di Windows, perubahan akan bertahan secara otomatis. (Anda dapat menambahkan store=activeke netshperintah jika Anda ingin hanya berlangsung sampai reboot.)


Sebagian didasarkan pada Sistem Operasi IPv6 di IPv6INT.net. Lihat juga Catatan Umum IPv6


Jika alamat perangkat keras digunakan dalam alamat IPv6, biasanya itu berarti jaringan Anda menggunakan Konfigurasi IP Stateless Stateless. Dalam kasus seperti itu, Anda cukup memilih akhiran alamat Anda sendiri dan mengkonfigurasi IPv6 secara manual.

Namun, meskipun alamat yang ditambahkan secara manual tidak akan memiliki informasi perangkat keras Anda, alamat itu tetap statis (tidak seperti dengan Privacy Addressing, yang sering mengubah alamat). Juga, alamat statis dapat menjadi masalah dalam jaringan yang lebih besar dari 2-3 perangkat.

grawity
sumber
2
Efek samping yang bagus pada Mac saya dan router FRITZ! Box 7340: Saya mendapatkan dua alamat ifconfig. Koneksi keluar menggunakan autoconf temporaryalamat acak , yang berubah setiap saat. Baik! Tetapi untuk koneksi yang masuk (ketika dibuka di router saya), saya masih bisa menggunakan autoconfalamatnya. Saya tidak keberatan memaparkannya dalam catatan DNS (walaupun mungkin saya bahkan dapat memilih alamat lain untuk itu juga).
Arjan
Ahh, setelah whois-spamming kita sekarang mendapatkan spamming IPv6: gali -t AAAA www.v6.facebook.com ;-)
Arjan
6
@Arjan: Alamat IPv6 de4d:b33fyang tidak terlalu buruk untuk dihafal; juga, mereka diberlakukan oleh pemiliknya, sedangkan whoisspam adalah a) menjengkelkan dan b) disebabkan oleh orang luar yang tidak memiliki kendali atas domain Anda.
grawity
1
Sebagai tambahan: tampaknya (sebagian) di atas mungkin memberitahu OS untuk lebih memilih alamat sementara, tetapi aplikasi masih bisa mengesampingkan preferensi ini .
Arjan
AFAICS menggunakan alamat sementara (privasi IPv6) secara efektif tidak dapat digunakan dengan beberapa ISP karena iklan router dengan masa pakai pendek pendek 40-an yang tidak masuk akal, yang mengesampingkan pengaturan kernel. Linux melihat ip auntuk preferred_lft. Jadi sshkoneksi akan terputus setiap 40-an jika Anda mengaktifkan fitur ini. Bahkan tidak dapat digunakan untuk web-surfer biasa, karena setiap unduhan juga harus selesai dalam 40-an.
Tino
1

FYI, ini hanya berlaku untuk skema pengalamatan IP tertentu. Kemungkinan besar Anda (atau ISP Anda) menggunakan konfigurasi otomatis IPv6, yang membutuhkan blok IP yang cukup besar untuk dapat diselesaikan sejak awal. Solusinya bisa dengan mematikan fitur ini. ISP Anda mungkin menggunakan DHCP untuk menetapkan alamat juga, yang masih dimungkinkan dengan IPv6.

Ernie Dunbar
sumber
3
Adapun blok besar: menurut Wikipedia di "Alokasi umum": RIR menetapkan blok yang lebih kecil untuk ISP, yang kemudian mendistribusikan ini dalam / 48 bagian ukuran untuk klien mereka. Memang, ISP saya juga memberikan / 48 awalan untuk pelanggan tingkat konsumen. Tidak terlalu aneh kalau begitu?
Arjan
3
Lalu salahkan Wikipedia, dan draft Rencana Penanganan IPv6 Arin : Semua pelanggan mendapatkan satu / 48 kecuali mereka dapat menunjukkan bahwa mereka membutuhkan lebih dari 65 ribu subnet. Tapi juga: Jika Anda memiliki banyak pelanggan konsumen Anda mungkin ingin menetapkan / 56s ke situs kediaman pribadi - yang masih lebih dari saya pernah butuhkan. ;-) Tetapi, hal-hal mungkin berubah: ISP saya tidak pernah menjanjikan ini, meskipun jelas pelanggan mereka telah mengkonfigurasi modem / router berdasarkan ini.
Arjan
3
Saya pikir ketika Arin mengatakan "pelanggan" yang mereka maksudkan "ISP". ISP apa pun (termasuk yang sangat, sangat besar) dapat mengalokasikan satu / 64 untuk seluruh jaringan mereka dan selesai dengannya. Tidak diperlukan perutean lebih lanjut. Tetapi mengalokasikan blok alamat IP penomoran dalam triliunan untuk pelanggan perumahan rata-rata joe benar-benar bodoh.
Ernie Dunbar
3
Rupanya, satu alasan untuk menetapkan setidaknya a/56 : "ISP yang hanya membagikan satu saja /64mencegah Anda dari subnetting sama sekali. Jika itu /64ada di antarmuka WAN maka Anda tidak akan pernah mendapatkan IPv6 yang layak pada LAN Anda. Ini adalah kesalahan ISP dan mereka harus memperbaikinya dengan memberikan jumlah ( /48atau /56) alamat yang layak. "
Arjan
7
A / 64 bukan "blok yang cukup besar"; itu adalah blok alokasi masuk akal terkecil untuk subnet. Beberapa fitur IPv6 mengharuskan subnet menjadi / 64, dan Anda lupa (atau tidak menyadari) bahwa IPv6 dirancang sebagian besar untuk mencegah siapa pun kehabisan alamat lagi. Anda harus membebaskan pikiran Anda dari pemikiran lama tentang keharusan melestarikan alamat yang berharga; tidak memiliki tempat di IPv6.
Michael Hampton