¿Guardar tokens en MySQL o usar Vault (HashiCorp)?

0

Recibiré miles de tokens de usuarios cuando nos lo autoricen a través de OAuth (proveedor externo).

Estoy tratando de averiguar cuáles son las mejores prácticas para cifrar de forma segura el token del usuario en una base de datos.

Estoy considerando usar libsodium (Halite en PHP) para cifrar el token y luego guardarlo en MySQL. La clave de cifrado se almacena en el archivo .env . Pero, ¿qué pasaría si el servidor web fuera pirateado y pudieran administrar el acceso a .env ?

La segunda opción es usar Vault (HashiCorp) que se instala en el servidor separado. El servidor web tendría que acceder a Vault utilizando la API.

¿Cuál crees que es más seguro?

    
pregunta I'll-Be-Back 23.09.2017 - 14:41
fuente

1 respuesta

1

Hay varias formas de hacerlo, dependiendo de si el servidor web realmente necesita acceso de lectura / escritura a los touthens outh.

He estado usando Vault por un tiempo, y creo que este sería el camino a seguir. Puedes usar algo como el approle auth backend ( vault auth-enable approle ) para permitir que tus servidores escriban los tokens basados en diferentes políticas (por lo tanto, se limitan a solo escribir esos tokens).

Dado que el servidor web solo puede escribir, necesita algo que pueda leer los datos de auth, y le sugiero que tenga algunos Aquí la herramienta de cola , con trabajadores que pueden leer y procesar lo que sea necesario hacer, y preferiblemente no en el servidor web (de modo que el acceso de lectura / escritura se divide en diferentes máquinas). El trabajador podría usar un rol de aplicación de lectura / escritura o solo lectura.

Qué secreto backend que usa para su almacenamiento de datos (cónsul / archivo / DB) no lo hace importar. Elija con lo que se sienta cómodo (me gusta el cónsul porque es resistente y no depende de mysql u otra replicación de DB), pero lo que elija, vaul se asegurará de que los datos estén encriptados antes de escribirlos.

Si el servidor web es hackeado, bueno, entonces no podrá leer los tokens, por lo que los datos deberían ser bastante seguros (siempre que proteja la comunicación de la máquina / bóveda / trabajador).

    
respondido por el Fredrik Lundhag 01.11.2017 - 09:31
fuente

Lea otras preguntas en las etiquetas