Linux Seguridad de escribir contraseñas a través de xdotool vs controlador de teclado vs otras soluciones

3

Estoy buscando una solución silenciosa y universal sobre cómo abordar el teclado del software para escribir contraseñas en Linux.

Expectativas de nivel de seguridad: Obtenga una seguridad no peor (o aceptablemente un poco peor) que cuando las contraseñas se escriben en aplicaciones en el teclado USB físico. (como en el peor de los casos, el punto de partida para muchas aplicaciones no es compatible con medios más avanzados y, además, puedo hacer / comprar un administrador de contraseñas de hardware que actúe como teclado USB como alternativa).

El alcance de mi preocupación aquí es la comparación del vector de ataque / los riesgos de las soluciones basadas en teclados USB o controladores de teclado, en lugar de simplemente escribirlos a través de xdootool type . (para los lectores que no lo saben: copiar las contraseñas a través del portapapeles tiene un ataque vectorial que cualquiera de sus aplicaciones puede leer)

Tenga en cuenta a todos los lectores de la pregunta: Si su máquina se ve comprometida, hay muchas maneras de filtrar sus contraseñas o claves: incluso robarlas de la memoria de los programas. Aquí me gustaría considerar cuál es el método "razonable" para transportar las contraseñas (definitivamente estoy buscando algo mejor que a través del portapapeles), mientras se consideran las compensaciones (sí, tener claves de hardware, etc., siempre que pueda, sin embargo, no todos los sistemas son compatibles los medios de autorización más avanzados).

    
pregunta Grzegorz Wierzowiecki 18.10.2017 - 14:59
fuente

2 respuestas

3

Cualquier aplicación que haya ejecutado al menos una vez puede, si lo desea, ver todo lo que escribe, leer todos sus archivos y extraer sus contraseñas de su administrador de contraseñas. Todo lo que tiene que hacer es inyectarse en algún lugar del sistema:

  • Para ver todo lo que escribe: conéctese al servidor X y pregunte. (Para ver cómo, ejecute xtrace xinput test 42 , donde 42 es el ID de dispositivo de su teclado).
  • Como alternativa, tome el foco sin dar ninguna indicación visual (y retransmita la entrada a la aplicación que parece enfocada, para evitar la detección inmediata).
  • Para leer todos sus archivos: open , read .
  • Para extraer sus contraseñas de su administrador de contraseñas: lea el archivo de la base de datos de contraseñas y escuche mientras escribe su contraseña maestra. Alternativamente, inyecte un envoltorio alrededor del proceso del administrador de contraseñas y ptrace it.

Sí, en teoría podrías notarlo. Pero en la práctica, no lo harás.

Poner la contraseña en el portapapeles tiene puntos débiles, pero las aplicaciones locales no son el problema . Las aplicaciones locales pueden obtener sus contraseñas de todos modos. Las principales debilidades de las contraseñas en el portapapeles son:

  • Errores del navegador que permiten a las aplicaciones web (es decir, cualquier pestaña abierta del navegador) acceder al portapapeles.
  • Los administradores de portapapeles que retienen una copia de la contraseña en un lugar que no se te ocurriría.
  • Pegado accidental en el campo incorrecto.

La forma más segura de administrar las contraseñas es evitar manipularlas. Esto elimina el riesgo de error del usuario. Así que guarde sus contraseñas en su navegador web y haga que use la contraseña automáticamente.

Para usos no web, inyectar una entrada de teclado con xdotool es tan bueno como es posible. Las aplicaciones locales pueden obtener las contraseñas de todos modos, por lo que no está perdiendo nada.

    
respondido por el Gilles 23.10.2017 - 02:37
fuente
1

Como me parece, el punto principal para atacar son los eventos X11, que son bastante fáciles de escuchar para cualquier aplicación local, por ejemplo. por xinput test <dev> . Además, X11 es la parte de (la mayoría) de las distribuciones estándar, y para ellas todas las entradas (incluidos los teclados USB) se canalizan a través de X11.

El xdotool usa las instalaciones X11 (XTEST) para inyectar las pulsaciones de teclas solicitadas. Así que asumo que los envía directamente a través de la pila de eventos X11 como cualquier otra entrada. Ya que especificó explícitamente que su referencia es un teclado USB, yo diría que de esta manera alcanzará su objetivo de no presentar más fallas.

Nota: hay algunas aplicaciones como gksudo que son bastante resistentes al rastreo de X11, no sé si eso se aplica también a la entrada xdotool . De lo contrario sería una debilidad.

    
respondido por el Cryptjar 23.10.2017 - 01:25
fuente

Lea otras preguntas en las etiquetas