Uso da Yubikey no Android

O último ponto que faltava na minha migração para um novo password manager era poder acessar meus dados usando o celular.

Aqui vou mostrar cada um dos apps que uso para poder ter o celular como uma ferramenta completa para poder usar meu smartcard.

Suporte à yubikey

Os smartcards da Yubico já são naturalmente suportados pelo Android. Os smartcards que possuem NFC têm suporte ainda melhor, pois basta aproximar o telefone do smartcard para que eles se comuniquem.

No meu caso tenho uma Yubikey USB-A, então uso um adaptador USB-A > USB-C para poder usá-la no celular. Funciona muito bem.

Nota: Acredito que para funcionar plugado na USB do celular o aparelho precisa ter suporte a USB OTG, que é o meu caso.

Open Keychain

O OpenKeyChain é o responsável por suportar o smartcard. Pense nele como uma espécie de “driver”. Além de implementar suporte genérico ao uso de um smartcard, ele também implementa o necessário para que você consiga usar as funcionalidades relacionadas à chave GPG, ou seja, ele é capaz de assinar conteúdos, encriptar/decriptar dados usando a chave privada que está no smartcard.

Como o nome já diz ele é uma Keychain, isso significa que você pode importar chaves públicas de outras pessoas e isso te dá a possibilidade de trocar conteúdo encriptado com elas.

Além disso ele expõe uma API pública, dessa forma outros apps podem usar essa API e por isso podem também dar suporte ao uso de smartcards. É o caso do TermBot, que veremos a seguir.

TermBot

Como tenho minha chave SSH dentro do smartcard seria ideal poder ter um cliente SSH que fosse capaz de usar essa chave.

Existe um app que faz isso e é o TermBot. O que ele faz, na verdade, é falar com a API do OpenKeyChain. Dessa forma tenho como fazer SSH para máquinas remotas usando a mesma chave que está dentro do smartcard.

Password Store

O App PasswordStore é quem sabe ler os dados gravados no password manager que uso, o pass.

Com esse App consigo sincronizar todos os dados de senhas, assim não preciso sempre do PC para pegar uma senha caso precise me logar em algum dos sites usando o celular.

Diferente do pass, esse app não possui suporte a plugins o que significa que não posso, através dele, gerar os tokens MFA que consigo gerar na linha de comando e no browser.

Isso significa que, nesses casos onde preciso de um token MFA tenho então que usar um Authentication App, o que torna tudo muito curioso pois agora só preciso do App que gera o token quando estou logando em uma conta usando o próprio celular.

O que eu estava acostumado a fazer era sempre pegar o celular quando estava logando em uma conta usando o PC. Agora consigo fazer todo o fluxo (desde preencher usuário/senha até preencher o token MFA) usando apenas o PC, o que é de certa forma libertador pois não dependo mais do celular. Inclusive posso eventualmente perdê-lo sem nenhum prejuízo para o meu fluxo do dia-a-dia.

Com esses apps que citei acima consigo, no celular: Assinar conteúdos, encriptar, decriptar, autenticar em servidores SSH e ler todas as minhas senhas do meu password manager. Tudo isso usando a chave privada que está dentro do smartcard.