Un normale browser Web invierà, come parte delle sue richieste ai server Web, un'intestazione standard chiamata User-Agent
, che di solito indica il fornitore del browser, la versione e il tipo di macchina e sistema operativo su cui è attualmente in esecuzione. Puoi usarlo per reagire su alcuni tipi di dispositivi. Tuttavia, questo è solo per un client cooperante : un utente malintenzionato può modificare a proprio piacimento l'agente utente che il suo browser invia.
Una soluzione più completa, ma più costosa, consiste nell'installare un valore segreto specifico per dispositivo in ogni dispositivo "approvato". Ad esempio, utilizza un'autorità di certificazione per emettere un certificato per ciascun dispositivo; durante la connessione, il server richiederà al client di mostrare il suo certificato. Questa è una procedura standard in SSL . Sarebbe comunque compito del server verificare che l'identità del dispositivo autenticato sia una delle identità "approvate" (in un contesto Microsoft, il server Web è IIS e può mappare i certificati agli account in Active Directory, che è un possibile modo di implementare quello).
Non puoi impedire a un proprietario di dispositivi malintenzionati di estrarre il certificato (con la sua chiave privata) dal suo dispositivo e installarlo in un altro dispositivo non approvato; ma, almeno, quando rilevi che una tale malvagità è stata perpetrata, puoi prima bloccare quel lato del server di identità, quindi revocare il certificato incriminato e quindi riprenderti dalle conseguenze di quel atto atroce.