Tengo un servidor ASP.NET/IIS. Quiero restringir mi servidor para que solo acepte solicitudes de aplicaciones de Android e Iphone (IOS). He oído hablar de HMAC. ¿Puede ayudarme HMAC?
Tengo un servidor ASP.NET/IIS. Quiero restringir mi servidor para que solo acepte solicitudes de aplicaciones de Android e Iphone (IOS). He oído hablar de HMAC. ¿Puede ayudarme HMAC?
Lo siento, HMAC no hará lo que quieres. Su mejor solución sería utilizar un esquema de respuesta de desafío (asumiendo que es una aplicación móvil de Android / iOS que accede a su servidor). Tenga código oculto en su aplicación para responder a una solicitud de desafío usando un algoritmo oculto. Un atacante podría descompilar la aplicación, pero es la solución más cercana a lo que está solicitando.
Si la comunicación es a través de una página web móvil, este enfoque no funcionará.
Como han dicho otras respuestas, no puedes confiar en las entradas de los usuarios (encabezados). Son triviales a la parodia.
HMAC es un concepto criptográfico para garantizar la integridad y la fuente (autenticación) de la información. Esto no es realmente aplicable para lo que estás tratando de hacer.
Realmente, no hay forma de asegurar que una solicitud provenga de una plataforma específica, esto se debe a que el host recibe esta información del cliente. Un cliente puede enviar la información que desee mediante la manipulación (falsificación) de los encabezados HTTP, específicamente el campo User-Agent .
En conclusión, no puede confiar en la información proporcionada por el usuario (cliente).
En principio, imposible. En la práctica, puedes usar algunos trucos específicos de plataforma como para Android. 1. Inserte un token de caducidad de GCM enlace en el dispositivo. 2. La solicitud debe contener el token.
El token puede depender del tiempo, de la identificación de Android o de ambos. En tal caso, la persona necesita un dispositivo para obtener el token y enviar las solicitudes. Al menos, sabrá quién hace las solicitudes y puede bloquear a la persona si es necesario.