5

Сегодня я использовал tcpdump и заметил, что на моем компьютере был трафик IPv6 с определенным MAC-адресом, который я не мог сопоставить с IP-адресом с помощью nmap или arping. Посмотрев журналы tcpdump чуть более внимательно, я обнаружил, что это был еще один MAC-адрес, который использовал мой маршрутизатор, но исключительно для трафика IPv6.

22:49:01.936830 90:0d:cb:ff:31:91 (oui Unknown) > 33:33:00:00:00:01 (oui Unknown), ethertype IPv6 (0x86dd), length 158: fe80::920d:cbff:feff:3191 > ip6-allnodes: ICMP6, router advertisement, length 104

Почему маршрутизатор предлагает другой MAC-адрес для IPv6?

1 ответ1

10

Это является следствием проблемы конфиденциальности / безопасности. В IPv6, при Stateless Адрес AutoConfiguration ADDRCONF, узел генерирует свой собственный публичный адрес без необходимости сервера DHCP. Младшие 64 бита этого адреса генерируются из идентификатора IEEE, когда он доступен, который эквивалентен MAC-адресу уровня 2. Если бы это была целая история, то было бы возможно отслеживать местоположение и связь любого мобильного устройства посредством младших 64 битов адреса IPv6, используя традиционные методы интеллектуального анализа данных.

Вот почему я спросил вас, видите ли вы это на ноутбуке.

Эта проблема конфиденциальности / безопасности решается в RFC 3041 и RFC4941, которые описывают две стратегии для генерации рандомизированного идентификатора интерфейса (при наличии или отсутствии постоянного хранилища).

Вы можете управлять этой функцией в Linux и Mac с помощью следующих элементов управления: в Linux,

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

и так далее, в Mac

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

Преимущество этой схемы в том, что она не только скрывает вашу аппаратную идентификацию, но также довольно часто и автоматически меняет (случайную) идентификацию

Для получения дополнительной информации о конфиденциальности адресации в большинстве операционных систем, можно прочитать эту превосходную страницу блока питания.

РЕДАКТИРОВАТЬ:

некоторые системы, такие как Arch Linux, уже перешли на новую конфигурацию для sysctl. В этом случае вы можете выполнить приведенную выше настройку, изменив в файле /etc/sysctl.d/40-ipv6.conf следующие записи на эти значения:

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

РЕДАКТИРОВАТЬ 2:

@slubman правильно указывает, что в Linux правильной опцией является 2, а не 1 (что у меня есть в моем Debian), потому что 1 разрешает генерацию адресов конфиденциальности, но сохраняет Autoconf как предпочтительный.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .