Ho un server ASP.NET/IIS. Voglio limitare il mio server ad accettare solo richieste da applicazioni Android e Iphone (IOS). Ho sentito parlare di HMAC. HMAC può aiutarmi?
Ho un server ASP.NET/IIS. Voglio limitare il mio server ad accettare solo richieste da applicazioni Android e Iphone (IOS). Ho sentito parlare di HMAC. HMAC può aiutarmi?
Mi dispiace, HMAC non farà quello che vuoi. La soluzione migliore sarebbe utilizzare uno schema di risposta alle sfide (supponendo che si tratti di un'applicazione mobile Android / iOS che accede al server). Avere codice oscurato nella tua app per rispondere a una richiesta di sfida utilizzando un algoritmo nascosto. Un utente malintenzionato potrebbe decompilare l'app, ma è la soluzione più vicina a ciò che sta richiedendo.
Se la comunicazione avviene attraverso una pagina web mobile, questo approccio non funzionerà.
Come hanno detto altre risposte, non puoi fidarti dell'input dell'utente (intestazioni). Sono banali da parodiare.
HMAC è un concetto crittografico per garantire l'integrità e l'origine (autenticazione) delle informazioni. Questo non è realmente applicabile per quello che stai cercando di fare.
In realtà, non c'è modo di garantire che una richiesta provenga da una piattaforma specifica, perché l'host riceve queste informazioni dal client. Un client può inviare qualsiasi informazione desideri manipolando (spoofing) le intestazioni HTTP, in particolare il campo User-Agent .
In conclusione, non puoi fidarti delle informazioni fornite dall'utente (client).
In linea di principio, impossibile. In pratica, puoi usare alcuni trucchi specifici per piattaforma come per Android. 1. Inserisci un token in scadenza da GCM link al dispositivo. 2. La richiesta dovrebbe contenere il token.
Il token può essere dipendente dal tempo, dall'id Android o entrambi. In tal caso, la persona ha bisogno di un dispositivo per ottenere il token e inviare le richieste. Almeno, saprai chi sta facendo le richieste e potrai bloccare la persona se necessario.