可怕不可怕,别人很可能可以通过你的IP地址,得到你的设备的名称(比如,“张三的手机”), 从而实现跟踪?
缘起
本人使用办公楼的Ethernet连接时,偶然发现ip地址的反向DNS记录里,竟然包括我的设备名称。
在MacOS上,运行
host $(ipconfig getifaddr $(route -n get default | awk '/interface:/ {print $2}'))
我得到的结果是
xx.xx.xx.xx.in-addr.arpa domain name pointer my-computer-name.dynamic.xx.xx.
研究了一番,发现罪魁祸首是DHCP。
DHCP协议
DHCP的作用是动态分配IP地址:
在MacOS上可以用以下方法观察DHCP lease renewal过程
#打开tcpdump,监听目前所用interface的DHCP流量
sudo tcpdump -i $(route -n get default | awk '/interface:/ {print $2}') port 67 or port 68 -e -n -vv
#在另外一个terminal窗口中,手动renew lease
sudo ipconfig set $(route -n get default | awk '/interface:/ {print $2}') DHCP
DHCP是怎样泄露设备名称的
个人设备名称是如何通过DHCP流入可以全球查询的DNS的呢?
观察MacOS上的DHCP lease renewal,可以看到,在Discover message中,客户端通过Hostname
字段发送了设备的名称。
15:06:22.621461 e8:9f:80:cd:cb:45 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: (tos 0x0, ttl 255, id 32399, offset 0, flags [none], proto UDP (17), length 328)
0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from e8:9f:80:cd:cb:45, length 300, xid 0x41923858, secs 25, Flags [none] (0x0000)
Client-Ethernet-Address e8:9f:80:cd:cb:45
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message (53), length 1: Discover
Parameter-Request (55), length 12:
Subnet-Mask (1), Classless-Static-Route (121), Default-Gateway (3), Domain-Name-Server (6)
Domain-Name (15), Unknown (108), URL (114), Unknown (119)
Unknown (252), LDAP (95), Netbios-Name-Server (44), Netbios-Node (46)
MSZ (57), length 2: 1500
Client-ID (61), length 7: ether e8:9f:80:cd:cb:45
Lease-Time (51), length 4: 7776000
Hostname (12), length 11: "MacBook-Air"
在MacOS上,经测试,被发送的是ComputerName
(就是System Settings
-> General
->About
中的设备名称), 可以通过scutil --get ComputerName
获取。
DHCP服务器得到终端设备名称后,如果网络的IP管理软件(IPAM)设置不当,不但会将其用于本地DNS,甚至可能在全球DNS中插入PTR记录。
泄露的后果
可以被变态用来跟踪!
假设你叫张三,设备名称叫"zhangsan’s phone"。
知道你常用的IP段的变态,就可以通过扫描这些IP段的反向DNS记录知道你目前正在使用哪个IP段,从而获取关于你的活动的信息。
一般而言,当你的设备加入网络后,PTR记录就会进入全球DNS;而你的设备下线后不久,PTR记录就会被移除。变态可以通过密集查询PTR记录的状态得知你的设备的连接状态。
此外,如果你买了一个新电脑,起名叫"zhangsan’s macbook",变态马上知道这个电脑是你的。
有一篇文章Saving Brian’s privacy: the perils of privacy exposure through reverse DNS,就展示了通过反向DNS+设备名称进行跟踪/踩点的可能性。
应对措施
- 不要在设备名称中加入任何个人信息
- 建议网管更改网络设置,不要把设备名称从DHCP泄露到全球DNS