C'è una buona regola da tenere presente qui: -
Using only client sided validation never works.
https://stackoverflow.com/questions/3531968/why-is-client-side-validation-a-security-risk-as-opposed-to-server-side-validati
Pertanto, se si chiede solo a un software basato sul client di verificare l'autenticità degli host, non funzionerà mai (con o senza cose come i controlli hash). Possiamo discuterne nei commenti o nella chat room. ;)
Siamo quindi più concentrati sui concetti in cui l'autenticazione viene gestita su un server remoto che viene considerato sicuro dall'attaccante.
Le soluzioni correlate di Network Access Control (NAC) sono utili per la maggior parte delle applicazioni, ma come quasi tutto è la sicurezza non può darti una soluzione in un solo passaggio.
Hanno il vantaggio di non richiedere spesso installazioni software client-side.
Prova PacketFence: link
La maggior parte delle soluzioni in cui il software può essere installato sul computer di un cliente implicano dare agli utenti credenziali di accesso univoche che vengono quindi verificate per l'integrità sul server. L'uso simultaneo di un set di credenziali non è consentito e viene rilevato tramite due sessioni simultanee dallo stesso ID utente dal modulo di gestione delle sessioni.
Funziona bene a meno che tu non voglia che le credenziali di accesso utente siano legate a un PC. In tal caso, non esiste una soluzione definitiva che io conosca. Gli amministratori si affidano a cose come l'utente non ha il know-how per clonare l'immagine del sistema operativo o per rubare e spoofare il MAC.
Implementando più controlli di questo tipo e mantenendo i registri insieme a ciò, è possibile intercettare i guai provocatori potenzialmente avventurosi mentre impari come aggirare il sistema.