Compare o login com código QR através de aplicações nativas e passkeys para uma autenticação segura e conveniente. Descubra o melhor método para a sua organização.
Vincent
Created: August 8, 2025
Updated: August 8, 2025
See the original blog version in English here.
Our mission is to make the Internet a safer place and passkeys provide a superior solution to achieve that. That's why we want to keep you updated with the latest industry insights here.
Métodos de autenticação seguros e convenientes são mais cruciais do que nunca. Com o número crescente de serviços online que acedemos diariamente em diferentes dispositivos, os sistemas tradicionais baseados em passwords estão a tornar-se menos eficazes e mais complicados. Especialmente para empresas com um grande número de utilizadores nas suas aplicações nativas (iOS ou Android), isto levou a uma procura crescente por logins baseados em códigos QR, que oferecem uma forma rápida e fácil de autenticar utilizadores sem a necessidade de digitar passwords complexas ou até mesmo nomes de utilizador.
Neste contexto, surgem questões como as seguintes:
Native QR Code Revolut Passkeys QR Code Apple
Exemplos proeminentes de códigos QR em logins de aplicações nativas são serviços focados em apps como o WhatsApp, TikTok ou Revolut. Ao mesmo tempo, existe uma lista de empresas que suportam logins com passkeys em rápido crescimento.
Neste artigo, vamos explorar técnicas de autenticação baseadas em códigos QR. Não nos vamos focar em códigos QR TOTP usados para a inicialização de um segundo fator (com aplicações adicionais como o Authy ou o Google Authenticator).
Vamos também comparar diferentes métodos de autenticação baseados em QR, examinando os seus pontos fortes, fracos e potenciais vulnerabilidades.
No final, terá uma compreensão mais clara se a autenticação baseada em códigos QR é a escolha certa para as suas necessidades de segurança.
Recent Articles
Os códigos QR, ou Quick Response codes, são códigos de barras bidimensionais que podem armazenar uma variedade de informações, desde URLs a texto simples. Originalmente desenvolvidos em 1994 pela Denso Wave, uma subsidiária do Grupo Toyota, os códigos QR foram concebidos para rastrear peças de automóveis de forma rápida e eficiente. Desde então, os códigos QR evoluíram e encontraram o seu lugar em várias indústrias devido à sua capacidade de armazenar uma grande quantidade de dados num pequeno quadrado digitalizável.
O termo "Código QR" é, na verdade, uma marca registada da Denso Wave, embora a tecnologia em si tenha sido amplamente adotada e não seja restringida pela marca registada. Os códigos QR são caracterizados pelos seus padrões quadrados a preto e branco, que podem ser lidos usando um smartphone ou um dispositivo de leitura dedicado (leitor de QR) para aceder à informação codificada.
O suporte para códigos QR está integrado nos sistemas operativos móveis como o iOS e o Android há vários anos. Ambas as plataformas suportam nativamente a leitura de códigos QR através das suas respetivas aplicações de câmara, tornando mais fácil para os utilizadores interagirem com códigos QR sem a necessidade de software adicional.
Geralmente, os códigos QR usados em conjunto com aplicações aproveitam URLs personalizados ou links de aplicações. Estes links podem fazer com que a aplicação abra automaticamente se estiver instalada no dispositivo. Se a aplicação não estiver instalada, o código QR pode direcionar o utilizador para a loja de aplicações relevante para descarregar e instalar a aplicação, facilitando assim uma experiência de utilizador fluida. Aqui pode ver uma lista de caminhos que o Revolut registou para o manuseamento de aplicações:
https://revolut.com/.well-known/apple-app-site-association{ "applinks": { "apps": [], "details": [ { "appID": "QUZEZSEARC.com.revolut.revolut", "paths": ["/app/*"] }, { "appID": "QUZEZSEARC.com.revolut.test", "paths": ["/app/*"] }, { "appID": "QUZEZSEARC.com.revolut.retail.india", "paths": ["/app/*"] }, { "appID": "QUZEZSEARC.com.revolut.retail.india-debug", "paths": ["/app/*"] }, { "appID": "QUZEZSEARC.com.revolut.invest", "paths": ["/app/*"] }, { "appID": "QUZEZSEARC.com.revolut.invest-debug", "paths": ["/app/*"] }, { "appID": "QUZEZSEARC.com.revolut.revolutx", "paths": ["/app/*"] }, { "appID": "QUZEZSEARC.com.revolut.revolutx-debug", "paths": ["/app/*"] } ] } }
Como vemos, todos os links que começam com "/app/*" são processados. Veremos um exemplo na secção seguinte. Ao incorporar URLs personalizados e links de aplicações em códigos QR, as empresas e os programadores podem criar experiências personalizadas que levam os utilizadores diretamente para a aplicação ou serviço desejado, melhorando tanto a conveniência como a segurança nas interações do utilizador.
O login com código QR através de aplicações nativas aproveita a interação fluida entre a câmara de um dispositivo móvel e URLs específicos incorporados nos códigos QR. O processo começa tipicamente com um utilizador a ler um código QR exibido num website ou noutro dispositivo usando a câmara do seu smartphone. O código QR contém um URL personalizado que é especificamente desenhado para interagir com uma aplicação nativa particular, como as encontradas em dispositivos iOS ou Android.
Por exemplo, um serviço como o Revolut pode usar um código QR com um URL como https://revolut.com/app/challenges/qr/e2d78521-d38a-4773-b1b8-27a902a36b4b. Este URL está destinado a ser reconhecido pela aplicação Revolut instalada no dispositivo do utilizador.
Quando o código QR é lido, a aplicação capta automaticamente este link, reconhece-o e exibe a aplicação correspondente (no exemplo acima, veja "Revolut" a ser identificado como a App correspondente), e prossegue para tratar do processo de login internamente. Esta interação é facilitada por mecanismos de links profundos (deep linking) que tanto o iOS como o Android suportam, permitindo que links específicos abram diretamente numa aplicação instalada em vez de num navegador web:
Se a aplicação não estiver instalada no dispositivo, o sistema operativo normalmente solicita ao utilizador que instale a aplicação, redirecionando-o para a loja de aplicações apropriada, seja a Apple App Store para dispositivos iOS ou a Google Play Store para dispositivos Android.
Isto garante que, mesmo que o utilizador não tenha a aplicação instalada inicialmente, pode obtê-la de forma rápida e fácil, continuando o processo após a instalação.
Na maioria dos casos, os clientes existentes que já instalaram a aplicação terão um processo de login fluido. Eles leem o código QR, a aplicação abre automaticamente e a autenticação é concluída sem a necessidade de inserir um nome de utilizador ou password. Este método proporciona principalmente conveniência para os utilizadores, uma vez que nenhuma informação sensível é transmitida durante o processo de leitura do código QR.
O que acontece tecnicamente é que uma sessão já iniciada num telemóvel é usada para autenticar uma nova sessão no desktop. Existem diferentes técnicas para fazer isso. Uma versão muito elaborada está publicada no Whitepaper de Segurança do WhatsApp sob Client Registration à Companion Device Registration à Link Using QR-Code.
Retirado de https://engineering.fb.com/2021/07/14/security/whatsapp-multi-device/
Como o WhatsApp suporta acesso multi-dispositivo e encriptação de ponta a ponta desde 2021, a arquitetura não é perfeitamente adequada para autenticação – já que o protocolo é projetado principalmente para uma aplicação de mensagens multi-dispositivo. Existem abordagens mais simples para alcançar um handshake seguro, dependendo da implementação real da autenticação. O que precisa ser tido em mente é que é sempre necessário garantir o manuseamento seguro das sessões do utilizador e dos canais de comunicação entre o dispositivo e o servidor. Independentemente da complexidade da implementação do login por autenticação com código QR, alguns princípios chave de segurança devem ser sempre seguidos:
Ao seguir estas melhores práticas, as empresas podem implementar uma autenticação baseada em códigos QR que é tanto amigável para o utilizador como segura, aproveitando a conveniência dos dispositivos móveis enquanto mantêm medidas de segurança robustas para proteger os dados e as sessões dos utilizadores.
Agora vamos dar uma olhada nos logins com código QR via passkeys.
A autenticação baseada em passkeys oferece um sistema de autenticação seguro e entre dispositivos que está integrado nos ecossistemas iOS e Android e é especificado no padrão WebAuthn. Atualmente, apenas as passkeys criadas em iOS ou Android podem ser usadas para autenticação entre dispositivos (CDA) através de códigos QR.
Vamos analisar como funciona o login com código QR com passkeys. O gráfico seguinte mostra uma visão geral de alto nível dos diferentes passos.
Para ambos, iOS e Android, as passkeys são armazenadas no autenticador nativo da plataforma (por exemplo, Face ID, Touch ID ou Biometria do Android). Isto garante que as passkeys de um utilizador estão disponíveis em todos os seus dispositivos com sessão iniciada no mesmo Apple ID (para iOS) ou conta Google (para Android) em versões modernas do sistema operativo.
Ao implementar a Autenticação Entre Dispositivos (CDA) baseada em passkeys, é crucial fornecer orientação clara aos utilizadores sobre o processo. Os utilizadores devem ser informados de que um código QR será exibido e que precisam de usar o seu telemóvel para o ler.
Na nossa opinião, é importante garantir que os códigos QR não são mostrados se o utilizador não tiver uma passkey que possa ser utilizada para CDA. Adicionalmente, é necessário verificar se o sistema operativo e o navegador atuais do utilizador suportam CDA antes de exibir um código QR.
Para gerir estes cenários de forma eficaz, delineámos todos os casos críticos neste artigo, por isso não entraremos em detalhes aqui. O nosso sistema de inteligência de passkeys está desenhado para lidar automaticamente com estas situações, garantindo que os códigos QR são exibidos apenas quando apropriado e guiando os utilizadores de forma fluida através do processo de autenticação. Isto garante uma experiência sem falhas, mantendo alta segurança e compatibilidade entre vários dispositivos e sistemas operativos.
Nesta secção, vamos resumir os dois principais métodos de login baseados em código QR discutidos neste artigo: login com código QR via aplicações nativas e login com código QR via passkeys. Cada método oferece vantagens únicas e é adequado para diferentes casos de uso com base em fatores como segurança, experiência do utilizador e complexidade de implementação.
Vamos ver como ambos os métodos se comparam e têm características diferentes:
Tabela de Comparação: Login com Código QR via Apps Nativas vs. Login com Código QR via Passkeys
Característica | Login com Código QR via Apps Nativas | Login com Código QR via Passkeys |
---|---|---|
Requisito de App | Sim, requer app nativa | Não |
Necessário implementar passkeys | Não, independente | Sim, os utilizadores precisam de aderir às passkeys |
Esforço de Implementação | Alto | Alto |
Resistência a Phishing MFA | Não | Sim (resistente a phishing e MFA) |
Verificação de Proximidade | Não | Sim |
Experiência do Utilizador | Fluida se a app estiver instalada | Fluida se existir uma passkey |
Nível de Segurança | Médio | Muito Alto |
Focámo-nos nas características baseadas na autenticação na tabela de comparação, e os requisitos circundantes delineados na secção três aplicam-se a ambas as alternativas. Restrições baseadas em localização e tempo não são necessárias com passkeys, pois estas utilizam resistência a phishing e verificações de proximidade via WebAuthn.
Como delineado na introdução, analisámos os dois cenários mais comuns de autenticação entre dispositivos. Vamos resumi-los brevemente:
Para responder às nossas perguntas da introdução:
Independentemente da avaliação atual de qual solução se encaixa na arquitetura de autenticação existente, deve ter-se em mente que as passkeys são um investimento no futuro da autenticação, uma vez que o ecossistema está claramente a mover-se nessa direção. Começar cedo a recolher passkeys pode ser combinado com diferentes estratégias de CDA.
Enjoyed this read?
🤝 Join our Passkeys Community
Share passkeys implementation tips and get support to free the world from passwords.
🚀 Subscribe to Substack
Get the latest news, strategies, and insights about passkeys sent straight to your inbox.
Related Articles
Table of Contents