Mi REST-Backend usa Mozilla Persona para autenticar a los usuarios. Normalmente, solo usaría cookies para autenticar cualquier solicitud adicional, pero quiero usar la autenticación basada en token (por desagrado personal por las cookies y como ejercicio académico).
Tengo 2 preocupaciones principales de seguridad:
- Alguien que obtiene acceso y que no ha sido autenticado (resuelto al requerir un token válido)
- Alguien que obtuvo acceso con una identidad diferente de la que se autenticó (así que [email protected] no puede publicar datos con el alias [email protected])
Tengo 2 requisitos principales del sistema:
- Sin estado en el lado del servidor: no debería tener que mantener ninguna información relacionada con un usuario dentro de la memoria del servidor entre dos solicitudes
- Quiero una autenticación rápida (implementación de Java < 100ms) de cualquier otra solicitud después de la primera, esto hace imposible verificar la afirmación de la Persona en otro momento, o descifrar un token basado en RSA o procedimientos similares
En mi opinión, esto parece ser imposible (básicamente quiero la seguridad de los certificados digitales sin los perjuicios de rendimiento relacionados con ellos). Pero estoy abierto a sugerencias.
No necesito proteger ningún dato valioso, por eso en primer lugar estoy usando Persona. Mi principal caso de ataque son mis amigos que intentan jugar con el sistema. Al menos quiero que dediquen unos minutos de trabajo a hacer eso.