จะหลีกเลี่ยงการเปิดเผยที่อยู่ MAC ของฉันเมื่อใช้ IPv6 ได้อย่างไร


140

ใน Macs ของฉันที่อยู่ IPv6 แต่ละรายการมีที่อยู่ MAC ของคอมพิวเตอร์เฉพาะ ( ไม่ใช่ของเราเตอร์ของฉัน) ไซต์เช่นipv6-test.comไม่เพียงแสดง แต่ยังบอกฉันด้วยว่ามันเป็นของคอมพิวเตอร์ Apple

นี่ให้ความรู้สึกเหมือนคุกกี้สุดยอดและอาจนำไปใช้กับระบบปฏิบัติการอื่นเช่นกัน ฉันจะหลีกเลี่ยงการเปิดเผยที่อยู่ MAC ของฉันได้อย่างไร

พื้นหลัง: ที่อยู่ MAC คือไม่ได้อยู่ในสายตาธรรมดา ชอบสำหรับ2001:0db8:1:2:60:8ff:fe52:f9d8:

  • ใช้ล่าสุด 64 บิต (ระบุโฮสต์) 0060:08ff:fe52:f9d8และเพิ่มศูนย์ชั้นนำ:
  • ตัดff:feส่วนจากตรงกลาง หากไบต์เหล่านี้ไม่ได้มีแล้วไม่มีที่อยู่ MAC
  • สำหรับไบต์แรก: เติมบิตลำดับต่ำลำดับที่สอง (บิตสากล / โลคัลถ้าบิตเป็น 1 ให้เป็น 0 และถ้าเป็น 0 ให้เป็น 1) ดังนั้น: 0x00(00000000) กลายเป็น0x02(00000010)
  • โอมเพี้ยง: แปลกลับไปยังที่อยู่60:8ff:fe52:f9d8 MAC02:60:08:52:f9:d8

หมายเหตุ: ตั้งแต่ macOS 10.12 Sierra ตาม Ars Technica Apple ได้นำวิธีการใหม่ในการสร้างที่อยู่ที่เสถียรซึ่งไม่ได้อิงกับที่อยู่ MACซึ่ง Windows ดูเหมือนได้ทำมาหลายปีแล้ว


คำถามนี้เป็นคำถามที่ผู้ใช้ซูเปอร์ของสัปดาห์
อ่านบล็อกสำหรับรายละเอียดเพิ่มเติมหรือมีส่วนร่วมในบล็อกด้วยตัวคุณเอง


14
ว้าวฉันไม่ทราบเกี่ยวกับ IPV6 ดี
Supercereal

18
แน่นอนว่ามันแสดงคอมพิวเตอร์ Apple มันคือที่อยู่ MAC หลังจากทั้งหมด
แกรมเพอร์โรว์

@ Kronos รูปภาพหายไปในรายการบล็อก blog.superuser.com/2011/02/11/…การเพิ่ม ".stack" ใน URL จะช่วยให้: i.stack.imgur.com/RNXoA.png
Arjan

... แต่ @KronoS การเพิ่ม ".stack" ทำให้รูปแบบภาพอื่นที่โพสต์บล็อกเดียวกันหายไปเช่นi.imgur.com/vjK73.png (okay) vs i.stack.imgur.com/vjK73.png ( ไม่เป็นไร) กล่าวอีกนัยหนึ่ง: รูปภาพทั้งหมดในบล็อกที่ไม่ได้ใช้งานในปัจจุบัน.stackควรอัปโหลดอีกครั้ง ... ?
Arjan

@ Arjan ฉันไม่แน่ใจ ฉันจะต้องตรวจสอบเรื่องนี้ ฉันต้องการคุณลักษณะที่ภาพทั้งหมดที่อัปโหลดไปยังบล็อกถูกอัปโหลดโดยอัตโนมัติไปยังบัญชี imgur ของสแต็ค คล้ายกับสิ่งที่ไซต์ปกติทำอยู่ในปัจจุบัน
James Mertz

คำตอบ:


134

นี่คือการแก้ไขโดยสองส่วนขยายเพื่อ IPv6:

  • RFC 4941หรือที่รู้จักกันว่า "การกำหนดที่อยู่ส่วนตัว" ช่วยให้การเชื่อมต่อขาออกใช้ที่อยู่ชั่วคราวที่สร้างแบบสุ่ม (ซึ่งจะหมุนทุกสองชั่วโมง)
  • RFC 7217อนุญาตให้สร้างที่อยู่สแตติกหลักจากแฮชทึบแสงซึ่งไม่เปิดเผยข้อมูลใด ๆ

อย่างน้อยหนึ่งวิธี แต่เพิ่มขึ้นทั้งสองวิธีได้รับการสนับสนุนโดยระบบปฏิบัติการยอดนิยม

โปรดทราบว่าคุณสมบัติเหล่านี้เป็นมุมฉาก คุณสามารถใช้ทั้งสองในเวลาเดียวกันถ้าคุณต้องการ

ที่อยู่ส่วนตัวที่มั่นคง

ในบางระบบปฏิบัติการที่อยู่ MAC (EUI-48) นั้นไม่ได้ใช้สำหรับตัวระบุอินเตอร์เฟสอีกต่อไป ใช้ตัวระบุแบบสุ่มหรือแฮชแทนโดยทั่วไปตาม RFC 7217

  • Windowsใช้รูปแบบที่กำหนดเองโดยเริ่มต้นด้วย Windows Vista

    ในการตรวจสอบว่าคุณสมบัติทำงานอยู่หรือไม่ให้เรียกใช้คำสั่ง PowerShell:

    Get-NetIPv6Protocol | fl RandomizeIdentifiers
    

    วิธีเปิดใช้งาน / ปิดใช้งานคุณสมบัตินี้:

    Set-NetIPv6Protocol -RandomizeIdentifiers Enabled
    Set-NetIPv6Protocol -RandomizeIdentifiers Disabled
    
  • Linux (NetworkManager)รองรับ RFC 7217 เป็น NetworkManager v1.2.0 โดยใช้ UUID ของโปรไฟล์การเชื่อมต่อเป็นส่วนหนึ่งของเมล็ด คุณลักษณะนี้เปิดใช้งานตามค่าเริ่มต้นในเวอร์ชัน NM ล่าสุด

    วิธีเปิดใช้งานหรือปิดใช้งานคุณสมบัตินี้:

    nmcli con modify "<profilename>" ipv6.addr-gen-mode stable-privacy
    nmcli con modify "<profilename>" ipv6.addr-gen-mode eui64
    
  • Linux (เคอร์เนล SLAAC)รองรับ RFC 7217 ณ เคอร์เนล v4.1.0; อย่างไรก็ตามจะต้องเปิดใช้งานด้วยตนเองโดยการเก็บเมล็ดพันธุ์ลับผ่าน sysctl

    คีย์ลับเป็นสตริงเลขฐานสิบหก 128 บิต (มีรูปร่างเหมือนที่อยู่ IPv6) ซึ่งจะต้องเก็บไว้ในnet.ipv6.conf.default.stable_secretsysctl เพื่อให้ถาวรมันสามารถใส่/etc/sysctl.d/50-rfc7217.confหรือคล้าย:

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

    การตั้งค่าความลับจะเปิดใช้งานโหมดนี้โดยอัตโนมัติสำหรับอินเทอร์เฟซเครือข่ายทั้งหมด เพื่อตรวจสอบว่าคุณลักษณะการใช้งานมองหา "addrgenmode stable_secret" ในip -d linkหรือค่า "2" sysctl net.ipv6.conf.<ifname>.addr_gen_modeใน

ที่อยู่ส่วนตัวชั่วคราว

ตามที่กำหนดไว้ใน RFC 4941 ที่อยู่ความเป็นส่วนตัวชั่วคราวจะถูกสร้างแบบสุ่มและหมุนทุก ๆ สองสามชั่วโมง

  • Windowsรองรับที่อยู่ชั่วคราวตั้งแต่ Windows XP SP2

    วิธีเปิดใช้งาน / ปิดใช้งานคุณสมบัตินี้:

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

    โปรดทราบว่า Windows จะไม่ใช้ที่อยู่หลักตามที่อยู่ MAC ที่เริ่มต้นด้วย Windows Vista อีกต่อไป

  • Linux (NetworkManager) : เวอร์ชันล่าสุดของ NetworkManager จัดการ RA ด้วยตนเองแม้ว่าค่าทั้งสองด้านล่างมีความหมายเหมือนกันกับ sysctl (2 = ชอบที่อยู่ส่วนบุคคล 1 = ชอบที่อยู่หลัก):

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

    นอกจากนี้จาก 1.2.0 ยังมีโหมดที่ดีกว่าซึ่งเปลี่ยนที่อยู่หลักไม่ให้ใช้ MAC อีกต่อไป แต่จะมีลักษณะเฉพาะสำหรับทุกเครือข่าย (RFC 7217)

    (โปรดทราบว่าการกำหนดที่อยู่ส่วนบุคคลนั้นเป็นมุมฉากสำหรับ addr-gen-mode สามารถใช้ทั้งสองอย่างได้

    หมายเหตุด้านข้าง: ตั้งแต่ 1.4.0 NM ช่วยให้สามารถสุ่มที่อยู่ MAC ได้ด้วยเช่นกัน ตั้งค่าwifi.cloned-mac-addressให้stableมี MAC ที่แตกต่างกันสำหรับทุกเครือข่าย (แนะนำ) หรือrandomเพื่อสุ่มสำหรับทุกการเชื่อมต่อ (อาจทำให้เกิดปัญหา)

    ในทุกกรณี<name>จะต้องเป็นชื่อการเชื่อมต่อเช่น SSID WiFi "Wired Connection 1"หรือ ใช้nmcli conเพื่อแสดงรายการทั้งหมด

    ในการทำให้สิ่งนี้เป็นค่าเริ่มต้นสำหรับการเชื่อมต่อใหม่ณ 1.2.0 คุณสามารถเปลี่ยน/etc/NetworkManager/NetworkManager.conf:

     [connection]
     ipv6.addr-gen-mode=stable-privacy
     wifi.cloned-mac-address=stable
    
  • Linux (เคอร์เนล SLAAC)สนับสนุนที่อยู่ชั่วคราว แต่ไม่ได้ใช้งานโดยค่าเริ่มต้น พวกเขาสามารถเปิดใช้งานผ่าน sysctls

    วิธีเปิดใช้งานที่อยู่ชั่วคราวและทำให้เป็นที่ต้องการสำหรับการเชื่อมต่อขาออก:

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

    หากต้องการเปิดใช้งานการสร้างที่อยู่ชั่วคราวให้เก็บที่อยู่ SLAAC แบบคงที่ตามต้องการ:

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

    allหรือdefaultส่วนหนึ่งจะถูกแทนที่ด้วยชื่ออินเตอร์เฟซที่เฉพาะเจาะจง net.ipv6.conf.eth0.use_tempaddrเช่น

    (ฉันเคยip link set eth0 down && ip link set eth0 upบังคับให้มีการกำหนดที่อยู่ แต่คุณสามารถเรียกใช้rdisc6 eth0หรือรอสักครู่เพื่อโฆษณาเราเตอร์เป็นระยะต่อไป)

  • Mac OS X - เปิดใช้งานโดยค่าเริ่มต้นตั้งแต่ OS X 10.7 Lion:

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

    ที่อยู่ชั่วคราวหากเปิดใช้งานจะเป็นที่ต้องการ

  • FreeBSD :

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

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

    การตั้งค่าที่อยู่ชั่วคราว? ฉันไม่รู้. ดูเหมือนว่าต้องการที่อยู่ autoconf ifconfigไม่ปรากฏในรายการคุณสมบัติที่อยู่ใด ๆ

  • OpenBSD - รองรับเพิ่มใน5.2 ; เปิดใช้งานและแนะนำโดยเริ่มต้นใน5.3

     ifconfig em0 autoconfprivacy
    

    ifconfig แสดง "autoconfprivacy" ถัดจากที่อยู่ชั่วคราว

หมายเหตุเกี่ยวกับการกำหนดค่า:

  • บน Linux, OS X และ BSD ทั้งหมดให้แก้ไข/etc/sysctl.confเพื่อทำให้การตั้งค่าเป็นแบบถาวร

  • บน Windows การเปลี่ยนแปลงจะยังคงมีอยู่โดยอัตโนมัติ (คุณสามารถผนวกstore=activeกับnetshคำสั่งถ้าคุณอยากให้มันเป็นเพียงมีอายุจนถึงรีบูต.)


บางส่วนอ้างอิงจากระบบปฏิบัติการ IPv6ที่ IPv6INT.net ดูหมายเหตุทั่วไปของ IPv6


หากมีการใช้ที่อยู่ฮาร์ดแวร์ในที่อยู่ IPv6 ก็มักจะหมายถึงเครือข่ายของคุณใช้การกำหนดค่าอัตโนมัติแบบไร้สถานะของ IPv6 ในกรณีเช่นนี้คุณสามารถเลือกส่วนต่อท้ายที่อยู่ของคุณและกำหนดค่า IPv6 ด้วยตนเอง

อย่างไรก็ตามแม้ว่าที่อยู่ที่เพิ่มด้วยตนเองจะไม่มีข้อมูลฮาร์ดแวร์ของคุณ แต่ก็ยังคงเป็นแบบคงที่ (ซึ่งแตกต่างจากที่อยู่ส่วนบุคคลซึ่งจะเปลี่ยนที่อยู่ทุกครั้ง) นอกจากนี้ที่อยู่คงที่อาจเจ็บปวดในเครือข่ายขนาดใหญ่กว่า 2-3 อุปกรณ์


2
ผลข้างเคียงที่ดีบน Mac และ FRITZ กล่อง 7340 เราเตอร์ของฉัน: ifconfigฉันจะได้รับสองที่อยู่ใน การเชื่อมต่อขาออกใช้ที่autoconf temporaryอยู่แบบสุ่มซึ่งจะเปลี่ยนไปเรื่อย ๆ ดี! แต่สำหรับการเชื่อมต่อขาเข้า (เมื่อเปิดขึ้นในเราเตอร์ของฉัน) ฉันยังคงสามารถใช้ที่autoconfอยู่ได้ ฉันไม่รังเกียจที่จะเปิดเผยว่าในระเบียน DNS (แม้ว่าฉันอาจเลือกที่อยู่อื่นสำหรับที่อยู่นั้นก็ได้)
Arjan

อ่าหลังจากwhois-spammingตอนนี้เราได้รับสแปม IPv6 แล้ว: dig -t AAAA www.v6.facebook.com ;-)
Arjan

6
@Arjan: ที่อยู่ IPv6 ตามแนวของde4d:b33fที่ไม่ดีสำหรับการท่องจำ; นอกจากนี้เจ้าของของพวกเขายังอยู่ในสถานที่ในขณะที่whoisสแปมเป็น a) น่ารำคาญและ b) เกิดจากบุคคลภายนอกที่ไม่สามารถควบคุมโดเมนของคุณ
grawity

1
นอกเหนือจาก: ดูเหมือนว่า (บางส่วน) ด้านบนอาจบอกให้ระบบปฏิบัติการต้องการที่อยู่ชั่วคราวแต่แอปพลิเคชันยังสามารถแทนที่การตั้งค่านี้ได้
Arjan

AFAICS ที่ใช้ที่อยู่ชั่วคราว (ความเป็นส่วนตัวของ IPv6) ไม่สามารถใช้งานได้อย่างมีประสิทธิภาพกับ ISP บางรายเนื่องจากโฆษณาเราเตอร์ที่อายุการใช้งานสั้นสุดที่ไร้สาระเป็น 40 วินาทีซึ่งจะแทนที่การตั้งค่าเคอร์เนล ลินุกซ์ดูสำหรับip a preferred_lftดังนั้นsshการเชื่อมต่อจะแยกกัน 40 วินาทีหากคุณเปิดใช้งานคุณสมบัตินี้ มันไม่ได้ใช้งานได้สำหรับนักท่องเว็บทั่วไปเนื่องจากการดาวน์โหลดแต่ละครั้งจะต้องเสร็จสิ้นภายใน 40 วินาทีเช่นกัน
Tino

1

FYI สิ่งนี้ใช้ได้กับแผนการกำหนดที่อยู่ IP บางอย่างเท่านั้น มากกว่าที่จะเป็นไปได้ว่าคุณ (หรือ ISP ของคุณ) กำลังใช้การกำหนดค่าอัตโนมัติ IPv6 ซึ่งต้องใช้บล็อกขนาดใหญ่พอสมควรเพื่อให้สำเร็จในตอนแรก วิธีแก้ปัญหาอาจเป็นการปิดคุณสมบัตินี้ ISP ของคุณอาจใช้ DHCP เพื่อกำหนดที่อยู่เช่นกันซึ่งยังคงเป็นไปได้ด้วย IPv6


3
สำหรับบล็อกขนาดใหญ่: ตามWikipediaใน "การจัดสรรทั่วไป": RIR กำหนดบล็อกขนาดเล็กให้กับ ISP ซึ่งจากนั้นจะแจกจ่ายส่วนนี้ใน / 48 ให้แก่ลูกค้าของพวกเขา ที่จริงแล้ว ISP ของฉันยังกำหนดคำนำหน้า / 48 ให้กับสมาชิกระดับผู้บริโภค ไม่แปลกเกินไปเหรอ?
Arjan

3
จากนั้นตำหนิ Wikipedia และร่างแผนการกำหนดที่อยู่ IPv6ของ Arin : ลูกค้าทุกคนจะได้รับหนึ่ง / 48 เว้นแต่ว่าพวกเขาจะสามารถแสดงให้เห็นว่าพวกเขาต้องการเครือข่ายย่อยมากกว่า 65k แต่ยัง: ถ้าคุณมีลูกค้าจำนวนมากของผู้บริโภคคุณอาจต้องการที่จะกำหนด / 56s ไปยังเว็บไซต์ที่อยู่อาศัยส่วนตัว - ซึ่งยังคงมีมากขึ้นกว่าที่ฉันเคยต้องการ ;-) แต่สิ่งต่าง ๆ อาจมีการเปลี่ยนแปลง: ISP ของฉันไม่เคยสัญญานี้ แต่เห็นได้ชัดว่าลูกค้าของพวกเขาได้กำหนดค่าโมเด็ม / เราเตอร์ตามนี้
Arjan

3
ฉันคิดว่าเมื่อ Arin พูดว่า "ลูกค้า" พวกเขาหมายถึง "ISP" ISP ใด ๆ (รวมถึงที่มีขนาดใหญ่มาก) สามารถจัดสรรหนึ่ง / 64 สำหรับเครือข่ายทั้งหมดของพวกเขาและทำได้ด้วย ไม่จำเป็นต้องกำหนดเส้นทางเพิ่มเติม แต่การจัดสรรบล็อคของที่อยู่ IP ที่กำหนดหมายเลขในล้านล้านให้กับลูกค้าที่อยู่อาศัยโดยเฉลี่ยนั้นเป็นเรื่องโง่เขลาอย่างจริงจัง
เออร์นี่ดันบาร์

3
เห็นได้ชัดว่าเหตุผลหนึ่งข้อในการกำหนดอย่างน้อย a/56 : "ISP ที่มอบเพียงหนึ่งเดียวจะ/64ป้องกันคุณไม่ให้ subnetting ใด ๆ เลยถ้านั่น/64อยู่ในอินเตอร์เฟส WAN คุณจะไม่ได้รับ IPv6 ที่เหมาะสมบน LAN ของคุณนี่คือ ความผิดพลาดของ ISP และควรแก้ไขสิ่งนี้ด้วยการแจกแจงจำนวนที่เหมาะสม ( /48หรือ/56) ที่อยู่ "
Arjan

7
A / 64 ไม่ใช่ "บล็อกที่ค่อนข้างใหญ่"; มันเป็นบล็อกการจัดสรรที่เล็กที่สุดที่เหมาะสมสำหรับซับเน็ต คุณลักษณะหลายอย่างของ IPv6 ต้องการให้เครือข่ายย่อยเป็น / 64 และคุณลืม (หรือไม่ทราบ) ว่า IPv6 ได้รับการออกแบบเป็นส่วนใหญ่เพื่อป้องกันไม่ให้ใครก็ตามที่เคยหมดที่อยู่อีกต่อไป คุณต้องทำให้จิตใจของคุณปลอดจากความคิดเก่า ๆ ที่จำเป็นต้องอนุรักษ์ที่อยู่อันมีค่า มันไม่มีตำแหน่งใน IPv6
Michael Hampton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.