Los inicios de sesión de 2 factores constan de 2 de tres cosas: algo que tienes, eres o sabes. Las contraseñas son algo conocido, por lo que tendrías que implementar algo que eres o tienes. Biometría, es decir, "medición de personas"; los escáneres de iris, los escáneres de huellas dactilares, las huellas de voz, los escáneres manuales y el reconocimiento facial son ejemplos de datos biométricos que requieren equipo especializado o puede ser fácilmente engañado por alguien con acceso a una tienda de dólar . Por lo tanto, a menos que cuente con un humano que los supervise, se eliminarán los datos biométricos.
Eso deja algo que tienes.
Una forma simple y molesta de hacer esto es restringir los inicios de sesión de los usuarios a su computadora. Claro, sabes la contraseña de Bob, pero no tienes su computadora. Así que el inicio de sesión falla. Esa es la forma más barata de hacerlo. De lo contrario puedes emitir tokens de hardware. Luego ingresaría su contraseña y el código del token de hardware o tendría el token insertado en el puerto USB.
El desafío de hacer esto a través del software es que sea algo que tienes o eres. El software por definición generalmente no es ninguno de ellos.
PS, ya lo sabes, pero tienes un gran problema con las personas que comparten contraseñas. En realidad, no tiene un registro de auditoría ni una forma de responsabilizar específicamente a alguien por lo que se hizo con su inicio de sesión. Supongo que ya sabías que ...