La mejor y más segura forma de hacer un protocolo de autenticación entre el servicio web Restfull y el cliente Android

0

Estoy desarrollando un sistema que un cliente de Android envía y recibe datos de una base de datos mysql (conectada a un servicio web de Java).

Para realizar el método de autenticación, no deseo enviar ID y pasar texto limpio en la URL. Tal vez los métodos de hash y criptografía sean apropiados, con CHAP o una vez para evitar ataques de repetición. Pero no estoy seguro de si esto es suficiente.

Tal vez usar tokens criptográficos es una mejor manera. Pero soy nuevo con este concepto. ¿Alguna otra sugerencia o buen tutorial para este caso?

    
pregunta rew1nd 15.02.2017 - 12:53
fuente

2 respuestas

2

La mejor manera, como es principalmente el caso, es usar TLS. Entonces, simplemente puede iniciar sesión con nombre de usuario / contraseña. Además de la autenticación, es probable que también desee proteger las solicitudes y respuestas. No es frecuente que solo tenga que protegerse contra la escucha sola, en la mayoría de los casos también son posibles ataques activos (por ejemplo, cuando se utilizan conexiones WiFi inseguras).

También puedes echar un vistazo al protocolo SRP , pero eso podría ser más complicado si no lo eres. Bien informado sobre la criptografía. Además de eso, no proporciona una solución completa.

    
respondido por el Maarten Bodewes 20.02.2017 - 20:20
fuente
0

La combinación de clave pública-privada (algoritmo RSA) puede considerarse para la primera comunicación. La clave pública que se transferirá de la aplicación Java (servicio de descanso / API) a la aplicación móvil. El dispositivo móvil ahora tiene que pasar uid / pwd encriptado por la clave pública. Una vez que la solicitud llegue a la aplicación / API de Java, mediante el uso de una clave privada, la API descifrará la fecha y la validará. En una validación exitosa, la API generará una clave de cifrado única (SHA-256 es una buena opción) y se enviará de vuelta al dispositivo. Además, toda la comunicación se cifrará y descifrará mediante el uso de esta clave de cifrado.

    
respondido por el rKs 15.02.2017 - 15:27
fuente

Lea otras preguntas en las etiquetas