Vou explicar resumidamente como é que funciona esse tipo de autenticação digital com token USB ou com smartcards ou com certificados instalados no browser.
Ela é um processo um pouco caro e com vários problemas de instalação, portanto não é interessante você usá-la indiscriminadamente. Só para ter uma idéia, só recentemente é que a Prefeitura de São Paulo começou a forçar que os contribuintes do ISS tenham de usar um certificado digital para acessar o site de emissão de notas fiscais de serviços; antes o processo era opcional.
Entretanto, tem a vantagem ou a desvantagem de (se você usar um certificado emitido por uma autoridade certificadora pertencente ao ICP-Brasil - como um e-CPF ou um e-CNPJ) ter valor legal.
O que ocorre é que você usa o suporte do browser a certificação digital via SSL. Você tem de configurar o web server de tal modo que para esse site ele exija que o cliente tenha um certificado digital instalado, e você precisa também solicitar ao cliente que ele instale o driver do USB token (ou smartcard, ou certificado “em disquete”) que ele vai usar.
Quando você cria sua aplicação Web, o web server fornece à página o certificado completo X.509 de quem se logou, e fica por sua conta destrinchar o certificado para pegar as informações relevantes. Em particular, é um pouquinho chato achar o CPF ou o CNPJ do usuário (que é o que provavelmente você vai usar para validar o login no site).
Um problema é que para deslogar você precisa obrigatoriamente solicitar que o browser do cidadão seja fechado, já que o browser somente mostra uma tela para escolher o certificado e entrar com uma senha na hora que você entra no site.
. Se você sabe que isso pode dar problemas, então evite usar isso.
Em particular, se você precisar de tal autenticação em uma intranet (e em uma VPN) de uma empresa com centenas ou milhares de funcionários, eu recomendaria usar o método de usar o token que gera o número (como o fornecido pela Vasco Systems). É mais simples de instalar e dá menos problemas. E se o cara perder o token (digamos que ele o tenha lavado na máquina
) é fácil revogá-lo.