Hay una aplicación de administrador de contraseña para Android que estoy considerando usar, que lee un formato de base de datos para un administrador de contraseña de escritorio popular. Hay una parte de esta aplicación que me está dando una pausa; Me he acercado al autor sobre el tema, pero el autor no parece muy preocupado por ello. Quiero asegurarme de que no solo estoy siendo paranoico.
Para usar esta aplicación, le das la contraseña maestra para tu base de datos de contraseñas. La aplicación crea una clave de dos partes combinando un PIN de 4 dígitos con una clave aleatoria de 256 bits almacenada en la nube de Google datos de aplicación basados en datos . Esta clave se utiliza para cifrar la contraseña maestra localmente. Cuando utiliza la aplicación, ingresa el PIN, la aplicación recupera la clave basada en la nube y utiliza ambas para descifrar la contraseña maestra y desbloquear la base de datos. No hay otras opciones para desbloquear la base de datos. La clave basada en la nube nunca se almacena en el dispositivo, solo se utiliza en la memoria. La contraseña maestra cifrada solo se almacena en el dispositivo, nunca se carga en la nube.
Estoy dispuesto a darle al autor el beneficio de la duda aquí y asumir que la clave se genera de manera segura, y por el bien del argumento le daré a Google el beneficio de la duda y asumiré que esta aplicación es realmente la única parte Alguna vez le darán los datos a. Sí, sé que esto puede no ser una suposición realista, pero un Google malvado no está alto en mi lista de preocupaciones. Si estas suposiciones se mantienen, entonces mientras mi teléfono esté seguro, solo la aplicación en mi teléfono puede acceder directamente a la clave de la nube, y por lo tanto solo la aplicación en mi teléfono puede descifrar mi contraseña maestra.
Sin embargo, pensé en este escenario:
- El atacante roba el teléfono.
- ¡Oooh, mira! Una base de datos de contraseñas! Drat ... ¡está bloqueado!
- El teléfono raíz del atacante.
- Attacker lanza la aplicación de administrador de contraseñas.
- El atacante ingresa un solo PIN al azar.
- La aplicación descarga una clave basada en la nube.
- El atacante usa los privilegios de root obtenidos anteriormente, para volcar la memoria de proceso para la aplicación.
- El atacante lee una clave basada en la nube desde el volcado de memoria.
- Las combinaciones de PIN / clave de nube de fuerzas brutas del atacante están fuera de línea.
- La base de datos de contraseñas se desbloquea en milisegundos o menos.
¿Tengo razón para preocuparme por este ataque, o es improbable / prevenible de alguna manera? En este momento, es lo único que me impide probar la aplicación. No soy un objetivo especialmente valioso ni nada.
Una pregunta de seguimiento: Estoy tratando de convencer al autor para que agregue una opción NO para almacenar la contraseña maestra , y solo para pedirla cada vez que abro la aplicación. Suponiendo que la contraseña es segura (uso una frase de 7 palabras elegidas al azar, con dados, de un diccionario de copia impresa sin compilar), y suponiendo que la contraseña nunca se almacena en cualquier lugar, probablemente esto mantendría mis contraseñas seguras de un atacante que obtiene mi teléfono?
Sé que el acceso de root en un teléfono puede atacar cualquier administrador de contraseñas en ejecución y desbloqueado , pero en ese caso, simplemente necesito (a) no rootear mi teléfono, (b) tener cuidado no instalar malware, y (c) bloquear cuidadosamente mi base de datos después de su uso. Sin embargo, para esta aplicación, no parece haber nada que pueda hacer para evitar el ataque, a menos que me dé cuenta inmediatamente de que falta mi teléfono y de inmediato elimine la clave basada en la nube.