Andre Broido, a UCSD mathemetician, is giving a talk today at UCI on what looks to be a fascinating idea: remote device fingerprinting. Think of cookies on steroids where the cookie (fingerprint) lives on the fingerprinter's machine instead of on the fingerprintee's machine. I'm guessing this is the corresponding paper so there are two co-authors, Tadayoshi Kohno and kc claffy. Here is the abstract for the talk:
We introduce the area of remote device fingerprinting, or fingerprinting a host (physical device and OS) as opposed to an operating system or class of devices, remotely, and without the fingerprinted device's known cooperation. We accomplish this goal by exploiting small, microscopic deviations in device clock frequency (clock skews). Our techniques do not require any modification to the fingerprinted devices. Our techniques report consistent measurements when the measurer is thousands of miles, multiple hops, and tens of milliseconds away from the fingerprinted device, and when the fingerprinted device is connected to the Internet from different locations and via different access technologies. Further, one can apply our passive and semi-passive techniques when the fingerprinted device is behind a NAT or firewall, and also when the device's system time is maintained via NTP or SNTP. One can use our techniques to obtain information about whether two devices on the Internet, possibly shifted in time or IP addresses, are actually the same physical device. Example applications include: computer forensics; tracking, with some probability, a physical device as it connects to the Internet from
different public access points; counting the number of devices behind a NAT even when the devices use constant or random IP IDs; remotely probing a block of addresses to determine if the addresses correspond to virtual hosts, e.g., as part of a virtual honeynet; and unanonymizing anonymized network traces.
The authors, in the paper, show how one can create a unique fingerprint of a remote host's physical device, e.g. ethernet adapter, by analyzing the device's TCP/IP packet stream and measuring the device's unique perception of time. They exploit the fact that virtually all modern OS'es implement the timestamps option of the TCP protocol as defined in RFC 1323. They are thus able to cull from the TCP timestamp meta-data in the TCP headers that is included in every TCP/IP packet, what they call, the device's clock skew. It is formally defined as the first derivative, with respect to time, of the difference between the time, measured in seconds since some initial time, reported by the device's clock and the wall clock time. The reason one can use the clock skew as a fingerprint is that it appears to be relatively constant over time and independent of where the device is located on any given network and what protocol it is using to communicate. On the other hand, a number of assumptions have to hold for one to use remotely fingerprint a given device, in practice. The major one is that the OS managing the remote device needs to implement the TCP timestamps option. (Actually they have a way of doing remote fingeprinting using ICMP timestamps as well but that kind of data stream is not as easy to come by.)
The authors mention several applications for this idea including determining whether a remote host was involved in a recorded event, counting the number of hosts on a remote network, and unanonymizing anonymous data. I'm skeptical that this kind of technique could ever be used to stop hackers or spammers in their tracks since once they find out about the method, they will easily be able to prevent it, by, for example, turning off the TCP timestamps option. What is more likely to happen is that intelligence battles being waged on the Net, whether it's between hackers and government authorities, or say companies and anti-corporate hackers, will only escalate, each side getting more powerful weapons to mount against the other.
