Espiar QR code

A câmera do celular abre um QR code quase assim que o vê. Este leitor para um passo antes. Ele decodifica o código, mostra o que está escrito nele e o que um celular faria com isso, e deixa a decisão com você.

Os celulares ligam a câmera traseira quando você escolhe “Escanear com a câmera”. Em um computador, uma captura de tela ou uma foto do código serve: solte o arquivo ou cole com Ctrl+V (⌘+V no Mac).

🔒 Decoding takes place on your device. Camera frames and pictures stay in your browser, and what the code says is not passed to anyone.

Um QR code é um pequeno trecho de texto

Esses quadradinhos pretos e brancos formam caracteres, alguns milhares no máximo, com correção de erros para que o código ainda seja lido quando parte dele está suja ou coberta por um logo. É só isso que tem nele. Nenhum programa, nenhum destino escondido. O problema vem do que o aparelho que lê faz em seguida. Se o texto começa com https://, o celular oferece abri-lo. Outros prefixos disparam outras ações, e ninguém consegue saber quais só olhando os quadradinhos.

É por isso que as fraudes migraram para os QR codes. Um link num e-mail passa pelos filtros de spam e você pode passar o cursor sobre ele para examiná-lo. Imprima o mesmo link como código num parquímetro, numa mesa de restaurante ou num falso aviso de entrega, e ele escapa dos filtros e é aberto num celular, onde a barra de endereço mostra muito pouco.

Os tipos de conteúdo que o leitor reconhece

Começa comO que um celular fariaO que conferir
http://, https://, www.Abrir uma página webO domínio em negrito
WIFI:Entrar numa rede sem fioQuem administra a rede; redes abertas e WEP são sinalizadas
BEGIN:VCARD, MECARD:Adicionar um contatoOs campos de e-mail e site
mailto:, SMSTO:, sms:, tel:Preparar uma mensagem ou uma ligaçãoO destinatário; números curtos e números de tarifa especial são sinalizados
otpauth://Adicionar uma conta a um app autenticadorQue é você mesmo quem está configurando
bitcoin:, ethereum: e semelhantesPreparar uma transferência de criptomoedaTudo, porque não dá para desfazer
000201…, BCD, upi://Preparar um pagamento por cartão, banco (SEPA) ou UPINome do recebedor e valor
geo:, BEGIN:VEVENTAbrir um mapa, adicionar um evento à agendaNada em especial

Qualquer outra coisa é mostrada como texto simples. Se houver um endereço web escondido nesse texto, ele passa pelo mesmo exame que um link. Um código com um endereço javascript:, data: ou file: é marcado em vermelho.

O que a leitura do código não diz

O leitor vê o endereço, não a página. Um domínio sem nada de errado na grafia ainda pode hospedar uma cópia do formulário de login de um banco. Para testar o próprio destino, cole o endereço na consulta de sites perigosos ou siga-o salto por salto com o rastreador de redirecionamentos. Os dois rodam no nosso servidor, não no seu celular.

Ele também não enxerga o mundo físico. Passe o dedo sobre um código numa máquina pública, porque um adesivo tem borda. Para qualquer pagamento, o caminho mais seguro é o app do operador ou um endereço web que você mesmo digita.

Tome cuidado especial com códigos otpauth://. Eles contêm o segredo a partir do qual seus códigos de login são gerados. Só leia um na página de segurança de um serviço em que você mesmo está ativando a verificação em duas etapas. Ninguém legítimo vai mandar um para você “verificar sua conta”.

A decodificação usa o detector de códigos de barras embutido no seu navegador, quando existe. Caso contrário, um pequeno decodificador de código aberto é carregado deste site. De qualquer forma a imagem fica no seu aparelho, e a câmera, que precisa da sua permissão, é desligada assim que um código é lido.

Perguntas frequentes

Ler um QR code pode invadir meu celular?

Ler um código é inofensivo, já que ele só entrega texto. O risco começa com o que vem depois, como abrir uma página de phishing, entrar numa rede Wi-Fi desconhecida ou aprovar um pagamento. Se você olhar o conteúdo antes, como esta página faz, nada acontece sem a sua escolha.

Como leio um QR code que está na minha própria tela?

Tire uma captura de tela, depois solte a imagem nesta página, escolha-a pelo botão de arquivo ou cole com Ctrl+V (⌘V no Mac). A imagem é decodificada localmente.

O que é quishing?

Phishing entregue por QR code. Uma forma típica é um adesivo num parquímetro ou num ponto de recarga que leva a uma página de pagamento falsa. Outra é um e-mail pedindo que você leia um código para “manter sua conta ativa”, o que tira você de um computador de trabalho protegido e leva para um celular pessoal.

Por que o leitor diz que nenhum QR code foi encontrado?

O código provavelmente está pequeno demais no quadro, borrado ou cortado. Recorte a imagem em volta do código, deixe uma margem branca nos quatro lados e tente de novo. Códigos que não são QR, como códigos de barras comuns de produtos ou Data Matrix, não são lidos.

Um QR code que usa um encurtador de links é perigoso?

Não necessariamente. Muitos geradores de QR passam todo código pelo próprio domínio curto para que o destino possa ser trocado depois. Isso quer dizer que o código não diz nada sobre onde você vai parar, e o destino pode mudar depois que o código foi impresso. Use o recurso de pré-visualização do encurtador ou o rastreador de redirecionamentos.

A imagem da câmera sai do meu aparelho?

Não. Os quadros são analisados no navegador e descartados. O conteúdo decodificado também não é transmitido.