Una chiave hardware ?!?!?
A parte gli scherzi...fare un miscuglio di tutto questo... Indirizzo IP, MAC e certificato...poi con qualche algoritmo da studiare ti calcoli un numerino magico (anche semplicemente un MD5 di tutte queste informazioni)... Se è in una lista sul server allora il client viene servito...altrimenti si disconnette...
Ovviamente non sarebbe impossibile fare i furbi...ma certo sarebbe più difficile...