Gli accessi a 2 fattori consistono in due o tre cose: qualcosa che hai, che sei o conosci. Le password sono qualcosa di noto, quindi dovresti implementare qualcosa che sei o hai. La biometria, cioè "misurare le persone"; scanner per iris, scanner per impronte digitali, voiceprints, scanner per le mani e riconoscimento facciale sono esempi di dati biometrici che richiedono attrezzature specializzate o può facilmente essere ingannato da qualcuno con accesso a un negozio di dollari . Quindi, a meno che tu non abbia un supervisore umano, i dati biometrici sono fuori.
Quindi lascia qualcosa che hai.
Un modo semplice e fastidioso per farlo è limitare gli accessi degli utenti al proprio computer. Certo, conosci la password di Bob, ma non hai il suo computer. Quindi il login fallisce. Questo è il modo più economico per farlo. Altrimenti puoi rilasciare token hardware. Quindi inserire la password e il codice dal token hardware o inserire il token hardware nella porta USB.
La sfida a fare questo via software è avere qualcosa che hai o sei. Il software per definizione non è generalmente né l'uno né l'altro.
PS lo sai già, ma hai un grosso problema con le persone che condividono password. In effetti non hai una pista di controllo o un modo per ritenere specificamente qualcuno responsabile di ciò che è stato fatto sotto il loro login. Presumo che tu lo sapessi già ...