I want to make key dongle from USB micro-receiver.
I want to know it's UUID (and if that's possible - overwrite it's UUID).
Does anyone know how to do it without modifying hardware?
Storage devices are the easiest to use as security dongles since they usually (!) always have a serial number, and a UUID. The UUID can be changed, since it's written to the drive as data. The serial# is unique to that device though, and would be my first choice. Much more difficult to fake a HW serial than a UUID. (IMHO)
If you wanted to examine what data is available to possibly uniquely identify your receiver, have a look in the files found under /sys/bus/usb/devices/.
I have several Logitech USB micro-receivers myself, and none of them return a serial number, well, they DO... but it's '0'... relatively useless as a identifier.
You could use the fact that it was a particular PROD:VEND combination (046d:c526 for my Logitech nano-receiver), but I have three of those... all returning identical info (certainly looks the same from the three machines I queried, no serial# though).
A possibly better option would be to use a bluetooth dongle, while mine is admittedly cheap, it DOES have its own unique MAC address. (I never know, is that what they call the 12 digit number which resembles the NIC MAC (paddy whack?) (OMG!!) )
The flash drive serial/uuid is tempting for me since I have a teeny 8G stainless steel drive attached to my keyring, which I could use as a security key since they're always near me.
Always remember to set up a second, backup method to authenticate... losing your keys shouldn't lock you out (uh, pun not intended)
UUID: Universally Unique Identifier. Can be used to identify a device independent form its mount point or device name. This is more and more important as many devices today support hot-plugging or are external anyway. Therefore it makes sometimes sense to access a device (for example in fstab) not by device name but by the UUID.
There are several ways to get the UUID. The first one uses the /dev/ directory. While you are on is you might want to check other by-* directories, I never knew of them.
$ ls -l /dev/disk/by-uuid
lrwxrwxrwx 1 root root 10 11. Okt 18:02 53cdad3b-4b01-4a6c-a099-be1cdf1acf6d -> ../../sda2
Another way to get the uuid by usage of the tool blkid:
$ blkid /dev/sda1 generates
/dev/sda1: LABEL="/" UUID="ee7cf0a0-1922-401b-a1ae-6ec9261484c0" SEC_TYPE="ext2" TYPE="ext3"