- Recentemente comprei ingressos de show na Ticketmaster. Em vez de emitir um ingresso PDF normal, imprimível, a Ticketmaster emite os ingressos por meio de um sistema chamado Mobile Entry, ou seja, SafeTix. Ele é fornecido como um código de barras rotativo dentro do web app da Ticketmaster ou dos apps para Android/iOS.
- Antigamente era possível imprimir ingressos comprados online ou offline. Ingressos em PDF podem ser visualizados em quase qualquer dispositivo, continuam acessíveis mesmo sem conexão de internet no celular e também podem ser usados como ingresso em papel mesmo sem celular. Se foram comprados em um canal oficial, também é possível saber que são autênticos.
- Quando fui a um show no ano passado que usava um sistema semelhante de ingressos com QR code rotativo, muitas pessoas tiveram problemas para entrar. O principal problema era a falta de conexão de internet no celular, então o QR code não carregava. A equipe no local também não tinha como ajudar.
Marketing
- A Ticketmaster promove a tecnologia SafeTix como uma cura para golpistas e cambistas.
- Afirma que, graças a um código de barras exclusivo que é atualizado automaticamente a cada poucos segundos, ele não pode ser roubado nem copiado, reduz muito o risco de cambismo e garante segurança.
- O movimento do código de barras é apenas uma animação CSS e não impede a leitura de capturas de tela.
Motivação
- O SafeTix dificulta a revenda de ingressos fora do mercado de revenda fechado e de alta margem da própria Ticketmaster.
- Obriga os usuários a instalar o app proprietário da Ticketmaster.
- Como é impossível salvar e transferir o ingresso para fora da Ticketmaster, é preciso entregar à Ticketmaster as informações de contato dos amigos.
Contradições
- É contraditório dizer que o ingresso pode ser salvo offline, mas não pode ser transferido para fora da Ticketmaster.
- Se os dados podem ser copiados, então podem ser transferidos; e se podem ser transferidos, então podem ser compartilhados e vendidos.
- Também é contraditório afirmar que o ingresso tem um DRM forte e, ao mesmo tempo, pode ser visualizado offline.
Engenharia reversa
- Ao inspecionar o próprio código de barras, descobriu-se que é um código PDF417 e que ele codifica texto em UTF-8.
- O código de barras muda a cada 15 segundos e é composto por dados em Base64, dois números de 6 dígitos e um timestamp Unix.
- Os dois números de 6 dígitos funcionam como Time-based One-Time Passwords (TOTP).
- Os dados em Base64 parecem ser dados aleatórios de 48 bytes, e a suposição é que sejam algum tipo de token bearer aleatório que identifica o portador do ingresso e o próprio ingresso.
O segredo do segredo
- Para gerar um TOTP, basta ter uma chave secreta compartilhada (um array de bytes) e um relógio funcionando.
- Como há dois TOTPs no código de barras, provavelmente também existem duas chaves secretas compartilhadas. Junto com o token bearer, isso permitiria gerar quantos códigos de barras válidos quisesse.
Depuração do web app
- Foi conectando o navegador Chrome de um celular Android às ferramentas de desenvolvedor do Chrome em um computador desktop para examinar a API da Ticketmaster e o código-fonte.
- Foi encontrada uma requisição de interesse no endpoint da API
/api/render-ticket/secure-barcode.
- Nos dados de resposta havia uma propriedade
token codificada em Base64, e ao decodificá-la ela se revelou um objeto JSON.
- A suposição é que
eventKey (ek) e customerKey (ck) sejam as chaves secretas do TOTP.
- Ao examinar o código-fonte do web app, foi encontrada uma função chamada
generateSignedToken, que gerava os dados do código de barras.
- Os dois TOTPs são gerados com um intervalo de tempo de 15 segundos e, fora isso, seguem o mesmo método de um TOTP SHA-1 comum.
Pirataria de ingressos
- Agora já se sabe tudo o que é necessário para clonar o código de barras da Ticketmaster em um app personalizado.
- É possível gerar um código PDF417 indistinguível do app oficial da Ticketmaster.
- A Ticketmaster facilita a extração do token porque registra automaticamente o
token no console do navegador quando o componente renderizador do código de barras é montado na página.
Duração
- A duração de
rawToken é desconhecida. É possível que apenas um token por conta da Ticketmaster seja válido.
- Segundo a documentação da API para desenvolvedores da Ticketmaster, o token deve ser atualizado 20 horas antes do início do evento.
- Isso já é suficiente para salvar o ingresso offline. Foi criado o app Expo TicketGimp, que renderiza o código de barras SafeTix.
Conclusão
- A Ticketmaster exclui pessoas com menor familiaridade tecnológica.
- Embala esse dark pattern como se fosse uma medida de segurança.
- É uma empresa que sustenta práticas de negócio cruéis.
- Desenvolvedores de software devem usar esse poder da forma certa.
- Desmantelem a Ticketmaster.
Opinião do GN⁺
- Este texto mostra muito bem o processo de engenharia reversa da tecnologia SafeTix da Ticketmaster. Do ponto de vista técnico, é um conteúdo muito interessante.
- Mas fica a dúvida sobre a legalidade desse tipo de ato. Invadir e abusar sem autorização do sistema da Ticketmaster muito provavelmente pode ser ilegal.
- Embora seja compreensível a crítica ao comportamento da Ticketmaster, não é desejável reagir por meio do mau uso da tecnologia. É preciso levantar a questão por vias legais e buscar soluções.
- À medida que a tecnologia avança, tentativas desse tipo de DRM e controle do consumidor tendem a se tornar ainda mais frequentes. Discussões sociais e melhorias regulatórias para proteger a privacidade e os direitos do consumidor parecem importantes.
- Como desenvolvedores, temos a responsabilidade de usar o poder da tecnologia para promover mudanças positivas na sociedade. Não basta apenas implementar a tecnologia; também é preciso refletir profundamente sobre o impacto que ela causa.
1 comentários
Comentários do Hacker News
TicketMaster e AXS tiveram a oportunidade de dar suporte a plataformas de revenda e transferência de ingressos, mas optaram por não fazê-lo
O modelo de negócios da TicketMaster se baseia em enganar o público
Desenvolvedores de software são como os magos e xamãs da era moderna
Outra prática ruim da TicketMaster
Artigos sobre a TicketMaster costumam ter muito sensacionalismo
O problema dos ingressos pode ser resolvido de forma simples
Não dá para ser uma boa pessoa trabalhando em uma empresa ruim
Dúvidas sobre como a TicketMaster realmente funciona
Exigir o uso de celular para entrar no show é um problema
Exigir conexão com a internet no evento é um problema