Unique ID is built into WinXP final build
Leaking beta testers nabbed?
Microsoft has quietly slipped a Universally Unique ID (UUID) into the ISO of build 2600 of Windows XP, thus giving itself the capability of tracking code leaks back to whoever it was that leaked them. News of the UUID's presence originally broke in the Microsoft beta newsgroups, but the matter has been followed up by Steve Gibson of GRC after postings were forwarded to him.
The UUID is located 9400 bytes from the start of the file, and is a HEX ASCII identifier which specifies the downloader's beta test ID and the IP address they're downloading from. So, all Microsoft has to do is download the warez ISO images of 2600 that are currently spreading through the usual channels. It then knows whose beta ID was used to leak the software, and can maybe figure out a little more of what's been going on from the IP address.
Naturally this only works for copies of the ISO that have leaked before the warez guys and any careless beta testers figured out what was going on. If the UUID is simply a standalone serial number or similar, then it should be fairly simple for them to obliterate it, and carry on happily distributing Microsoft's intellectual property as before.
Microsoft will still have got some useful information about the leaker(s). If the company's viewing the matter with any degree of sophistication, it's going to be interested in figuring out what leakers have in common, and how many there are, rather than in busting the individual culprits (although they can no doubt kiss goodbye to their chances in future beta tests).
But even if it is just an easily removable identifier at this juncture, you can see the potential. Microsoft could put in dependencies so that software wouldn't install if the UUID had been messed around with. It could use the UUID to uniquely identify the software once it was actually installed on a PC, possibly giving itself the ability to identify and break installations that had derived from unauthorised leaks.
It's highly unlikely that anything as extreme has been implemented in build 2600, and Microsoft will surely think long and hard before unleashing this kind of system on users in general. But maybe some day, in the wonderful world of .NET, it might start to wonder how much more it could get away with. And meanwhile, we can all wonder what else might be lurking in there, somewhere... ®
Discussion at Steve Gibson's grc.com