O projeto SoftU2F é preterido e não é mais suportado. O SoftU2F foi criado para suportar o Touch ID para U2F quando os navegadores não o suportam, mas a funcionalidade está agora disponível no macOS usando o Touch ID em:
O SoftU2F possui vários problemas de compatibilidade que não serão corrigidos; portanto, recomendamos mudar para uma dessas alternativas.
Obrigado a todos que usaram o SoftU2F ao longo dos anos e agradecimentos especiais a Ben Toews por escrever e manter a implementação original!

Soft U2F é um autenticador de software U2F para macOS. Ele emula um dispositivo HID HID Hardware e executa operações criptográficas usando o chaveiro do MacOS. Essa ferramenta funciona com as implementações do Google Chrome/Chromium, Safari, Firefox e Opera U2F da Opera.
Levamos a segurança deste projeto a sério. Relate quaisquer vulnerabilidades de segurança ao programa Github Bug Bounty.
Você pode baixar o instalador aqui.
O aplicativo é executado em segundo plano. Quando um site carregado em um navegador compatível com U2F tenta se registrar ou autenticar com o token do software, você verá uma notificação pedindo que você aceite ou rejeite a solicitação. Você pode experimentar o site de demonstração U2F do Yubico.
Descarregue o agente Launchd
$ launchctl unload ~/Library/LaunchAgents/com.github.SoftU2F.plist
Exclua o agente de lançamento Plist
$ rm ~/Library/LaunchAgents/com.github.SoftU2F.plist
Exclua o .app
$ sudo rm -rf /Applications/SoftU2F.app/
Descarregue a extensão do kernel (isso pode falhar se um navegador ainda estiver conversando com o motorista. Excluindo o .kext e reiniciando o sistema consertará isso)
$ sudo kextunload /Library/Extensions/softu2f.kext
Exclua a extensão do kernel
$ sudo rm -rf /Library/Extensions/softu2f.kext
Diga a MacOS para esquecer a instalação
$ sudo pkgutil --forget com.GitHub.SoftU2F
Feito
Um USB Authenticator armazena o material da chave no hardware, enquanto o Soft U2F armazena suas teclas no chaveiro do MacOS. Há um argumento a ser feito de que é mais seguro armazenar chaves em hardware, pois o malware em execução no seu computador pode acessar o conteúdo do seu chaveiro, mas não pode exportar o conteúdo de um autenticador de hardware. Por outro lado, o malware também pode acessar os cookies do seu navegador e tem acesso total a todas as sessões autenticadas do site, independentemente de onde as teclas U2F são armazenadas.
No caso de malware instalado no seu computador, uma diferença significativa entre o hardware e o armazenamento de chave de software para U2F é a duração do compromisso. Com o armazenamento de chave de hardware, você só está comprometido enquanto o malware está em execução no seu computador. Com o armazenamento de chaves de software, você pode continuar sendo comprometido, mesmo após a remoção do malware.
Algumas pessoas podem decidir que o cenário de ataque acima vale a troca de usabilidade do armazenamento de chave de hardware. Mas, para muitos, a segurança do U2F baseada em software é suficiente e ajuda a mitigar muitos ataques comuns, como despejos de senha, ataques de força bruta e façanhas relacionadas a phishing.
Você deve ter as ferramentas de linha de comando Xcode instaladas para criar este projeto.
# Install Commaned Line Tools
xcode-select --install
# Build softu2f.kext and SoftU2F.app.
script/buildExistem duas partes no U2F suave: o driver e o aplicativo. Para usar uma versão modificada do driver, você deve desativar a proteção da integridade do sistema. O aplicativo pode ser modificado e executado via Xcode normalmente.
Todo site usando U2F possui um App-ID. Por exemplo, o app-id da página de demonstração U2F de Yubico é https://demo.yubico.com . Quando o U2F Authenticator de baixo nível recebe uma solicitação para se registrar/autenticar um site, ele não recebe a sequência amigável do App-ID. Em vez disso, recebe um resumo do SHA256 do App-ID. Para poder mostrar uma mensagem de alerta útil quando um site está tentando se registrar/autenticar, uma lista de digestos do App-ID é mantida neste repositório. Você pode encontrar a lista aqui. Se o ID do aplicativo da sua empresa estiver faltando nesta lista, abra uma solicitação de tração para adicioná-la.
Este projeto é licenciado pelo MIT, exceto os arquivos em /inc , incluídos em suas próprias licenças.