La mayoría de los "keyloggers" son, de hecho, un software espía general que detecta muchas otras cosas además de las pulsaciones de teclas y no se confunden en absoluto con los teclados en pantalla. Pero tal keylogger sería un software que se ejecuta en el sistema operativo. Es posible almacenar malware en el firmware de la computadora, pero es una amenaza bastante avanzada; Si bien el malware en el firmware de muchos periféricos puede acceder a la RAM, es difícil saber qué está haciendo el software desde fuera del sistema operativo. Dicho esto, una vez que alguien ha escrito el software, cualquiera puede ejecutarlo, por lo que es fácil propagar los ataques de software.
Por lo tanto, confiar en un teclado en pantalla reduce el riesgo de un ataque del keylogger cuando ejecuta un sistema operativo que controla en un hardware en el que no confía plenamente. Sin embargo, no lo elimina. El uso de hardware en el que no confía también tiene el problema de que no puede saber que realmente está ejecutando su programa. Sin duda, sería posible escribir un software espía que analice un poco el sistema operativo de tu disco y se inyecte de forma invisible.
Si realmente no confías en el hardware, no lo uses, punto.
Si confía en el hardware, entonces puede reducir pero no eliminar el riesgo al reducir la superficie de ataque del hardware. La eliminación del teclado es una ventaja en al menos una situación: en un entorno de tipo cibercafé, cuando confía en el administrador de las máquinas pero teme que alguien realice una modificación discreta, como insertar un keylogger de hardware en el teclado. Aún así, una vez que el software para el ataque ha sido empaquetado, es fácil insertar una pieza de hardware que en realidad es un concentrador USB con el hipervisor del atacante, lo que hace que su sistema operativo se ejecute dentro del hipervisor del atacante y, por lo tanto, esté expuesto al software espía del atacante. Solo estás exigiendo que el atacante sea un poco más sofisticado.
Una vez más, la única forma de tener confianza en una computadora es confiar en su hardware. Si no confías en el hardware, no puedes confiar en ningún software que se ejecute en él.