O Google Play Services 18.7.13 beta adicionou um novo recurso de “preenchimento automático de código SMS” que permite ao serviço de preenchimento automático recuperar códigos de verificação de SMS.
Configurar a autenticação de dois fatores para suas contas online é uma necessidade se você se preocupa com a segurança de seus dados. A maioria dos usuários com 2FA habilitado usa prompts no dispositivo, aplicativos autenticadores ou códigos de verificação enviados via SMS. Embora os dois primeiros sejam considerados mais seguros do que a verificação de código SMS, Pesquisa do Google mostra que a verificação por SMS para contas do Google "ajudou a bloquear 100% dos bots automatizados, 96% dos ataques de phishing em massa e 76% dos ataques direcionados." Os benefícios são claros, mas a razão pela qual muitas pessoas ainda não usam 2FA, mesmo via SMS, é porque acham que é inconveniente. Hoje, o Google lançou a versão 18.7.13 beta do Google Play Services e sugere uma nova maneira de códigos de verificação a serem recuperados automaticamente de mensagens de texto: por meio do preenchimento automático integrado do Android Serviço.
Muitas vezes, a desmontagem de um APK pode prever recursos que podem chegar em uma atualização futura de um aplicativo, mas é possível que qualquer um dos recursos mencionados aqui não chegue em uma versão futura. Isso ocorre porque esses recursos não estão atualmente implementados na versão ativa e podem ser retirados a qualquer momento pelo Google em uma versão futura.
Alterações beta do Google Play Services 18.7.13
Atualmente, existem algumas maneiras de evitar a necessidade de abrir manualmente seu aplicativo de mensagens para copiar o código de verificação. Primeiro, o aplicativo de mensagens (como o do Google Mensagens) pode detectar e apresentar automaticamente o código na notificação de uma nova mensagem de texto. Em segundo lugar, o aplicativo que precisa do código pode usar o API de recuperação de SMS, uma API que faz parte do Google Play Services, para ler automaticamente o código SMS. Terceiro, o aplicativo que precisa do código pode crie um PendingIntent do tipo createAppSpecificSmsToken, disponível desde o Android 8.0 Oreo. Por último, o aplicativo pode solicitar a permissão READ_SMS para ler mensagens de texto recebidas para o código de verificação, no entanto, o Google recentemente reprimiu aplicativos que usam permissões de SMS como esta.
Dos 4 métodos mencionados no último parágrafo, o método recomendado para recuperar o código SMS é a API SMS Retriever, uma vez que o Google Play Services é quase onipresente. Infelizmente, muitos desenvolvedores de aplicativos ainda não aproveitam essa API. O motivo, de acordo com o XDA Recognized Developer Quinny899 quem trabalha em um aplicativo que utiliza essa API é porque o formato exigido da mensagem de texto enviada aos usuários não é o ideal. O corpo da mensagem de texto deve começar com e terminar com um hash baseado na assinatura do aplicativo. Esse hash pode confundir os usuários, fazendo-os pensar que é realmente o código SMS em questão.
O Google deseja que os usuários adotem melhores práticas de segurança, o que significa que desejam tornar a autenticação de dois fatores mais palatável para os usuários. Para fazer isso, parece que eles atualizarão o serviço de preenchimento automático do Google para recuperar automaticamente códigos de verificação de mensagens de texto. Isso trará a recuperação automática de código SMS para usuários cujos aplicativos de mensagens padrão ainda não recuperam o código automaticamente e cujos aplicativos não usam a API SMS Retriever.
<stringname="sms_code_autofill_consent_message">You can change the settings in Settings → Google → Verification code autofill.string>
<stringname="sms_code_autofill_consent_title">Allow %s to automatically enter verification codes from text messages?string>
<stringname="sms_code_autofill_settings_title">SMS Code Autofillstring>
<stringname="sms_code_autofill_settings_toggle_description">Autofill must be enabled to automatically fill SMS codes. You can enable autofill in Settings → System → Languages & Input → Advanced → Autofill service.string>
<stringname="sms_code_autofill_settings_toggle_primary">Autofill SMS Codesstring>
<stringname="sms_code_autofill_settings_toggle_secondary">Allow autofill service to access SMS messages to retrieve verification codestring>
<stringname="sms_code_pref_key_autofill_permission_state">autofill_permission_statestring>
<stringname="sms_code_pref_key_dummy_for_description">dummy_for_descriptionstring>
Depois de ativar o serviço de preenchimento automático do Google, disponível em qualquer dispositivo Android 8.0+ com o Google Play Services instalado, o usuário poderá ativar o "Preenchimento automático de código SMS", conforme mostrado abaixo. Esta atividade não é exportada no momento, mas pode ser acessada iniciando manualmente o com.google.android.gms.auth.api.phone.ui.AutofillSettingsActivity
atividade.
Não uso 2FA baseado em SMS para nenhuma das minhas contas nem uso o serviço de preenchimento automático do Google (Sou fã do KeePass), então não pude testá-lo sozinho. No entanto, o recurso parece bastante simples: quando você recebe um código via SMS, o serviço de preenchimento automático se oferece para inserir o código automaticamente, como qualquer senha que você salvou. Embora este seja um recurso interessante por enquanto, poderemos acessar sites e aplicativos sem precisar de senha num futuro próximo, graças à recente certificação FIDO2 do Android.
Você pode baixar a versão mais recente do Play Services em APKMirror, ou você pode esperar que seja implementado gradualmente nas próximas semanas.
Obrigado à PNF Software por nos fornecer uma licença para usar Descompilador JEB, uma ferramenta de engenharia reversa de nível profissional para aplicativos Android.