Soy un novato en seguridad.
Estoy desarrollando una aplicación de Android con un enfoque de autenticación basado en token. No estoy usando Oauth, ya que OAuth 2.0 no es un protocolo de autenticación, sino que se utiliza para delegar la autorización: enlace .
Como realmente no quiero que nadie más use mi API, no necesito delegar la autorización, por lo que he decidido no implementar Oauth.
Este es el flujo:
- El usuario pasa un nombre de usuario y una contraseña al servidor mediante SSL
- El servidor verifica el nombre de usuario y la contraseña y devuelve un token de autenticación mediante SSL. El token de autenticación es un conjunto aleatorio de caracteres
- El token de autenticación se guarda en la aplicación y luego se envía de vuelta al servidor cada vez que se realiza una solicitud REST mediante SSL
Mi pregunta: ¿son relevantes los tokens de actualización en este escenario?
El token de autenticación ya está encriptado a través de SSL y no es posible realizar ataques de repetición o de hombre en el medio.
También el token de autenticación se usa solo para acceder a mi API y no se usa posteriormente en ninguna otra llamada de API de servidor a servidor (como por ejemplo, si llamo al servidor de Google Maps desde mi servidor, no uso mi autenticación token para realizar la llamada (el token es único para mi servidor).
Podría hacer que el flujo sea más seguro haciendo un hash en el token de autenticación y enviándolo al servidor para que el servidor pueda verificar si el hash del token almacenado coincide con el hash enviado por la aplicación ...
¿Por qué usar tokens de actualización cuando su token de autenticación se transmite de forma segura a través de SSL?