У USB есть дескрипторы. Они должны быть доступны через какое-то API. В device descriptor есть поля idVendor, idProduct, bcdDevice, iManufacturer, iProduct, iSerialNumber. Не все из них обязательны и не все устройства их реализуют как положено, но в теории iSerialNumber должен быть уникальным для устройства, ну а остальные поля идентифицируют модель устройства. В общем полагаться на это на 100% нельзя, но для каких-то конкретных случаев с известными устройствами с нормально написанной прошивкой — можно.