Hardware ID — это такая нехорошая штука, которую можно ещё и подменять. Я как-то давно писал програмулину для WinMobile, которая занималась перехватом пары вызовов ядра и выдавала другой DeviceID. Для *nix это вообще тривиально делается патчем драйвера, ибо опенсорс. Лучше бы привязывались как-то к ip, как делают всякие разные ISPManager и иже с ними.