3 pontos por GN⁺ 2024-07-09 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2024-07-09
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

    • Poderiam ter documentado a criptografia do QR code dos ingressos e exposto o app e a API para verificar e rotacionar os segredos dos ingressos
    • Em vez disso, escolheram lutar contra golpistas por meios legais
    • Isso porque lucram mais com o monopólio da revenda
  • O modelo de negócios da TicketMaster se baseia em enganar o público

    • Taylor Swift quer que os fãs possam comprar ingressos a preços baixos
    • O empresário dela quer obter o máximo de receita possível
    • Em parceria com a TicketMaster, vendem alguns ingressos baratos e depois colocam o restante em sites de revenda por preços mais altos
  • Desenvolvedores de software são como os magos e xamãs da era moderna

    • Esse poder precisa ser usado com moderação e integridade
    • Isso é necessário para retomar o controle da sociedade das pessoas que só se preocupam com ganância e exploração
  • Outra prática ruim da TicketMaster

    • Ao revender um ingresso, mesmo depois que o comprador conclui a compra, os fundos do vendedor ficam retidos até 7 a 14 dias úteis após o fim do evento
    • Alegam que isso é para verificar a validade do ingresso
    • Porém, a TicketMaster possui o ingresso, e a lógica para verificar a validade não é complexa
    • Retêm o dinheiro de compradores e vendedores ao mesmo tempo e lucram dos dois lados
  • Artigos sobre a TicketMaster costumam ter muito sensacionalismo

    • Há uma parte que explica como duplicar ingressos
    • Isso não causa dano a ninguém
    • Códigos de barras rotativos ainda são mais seguros do que códigos de barras estáticos
  • O problema dos ingressos pode ser resolvido de forma simples

    • É um problema resolvido milhões de vezes por dia nos aeroportos
    • Basta informar o nome de cada participante do show na compra e apresentar o ingresso junto com um documento de identidade
  • Não dá para ser uma boa pessoa trabalhando em uma empresa ruim

  • Dúvidas sobre como a TicketMaster realmente funciona

    • Ela funciona de formas diferentes em eventos diferentes
    • A TicketMaster pode ser apenas uma prestadora de serviços
    • O organizador do evento escolhe os produtos que quer no catálogo da TicketMaster
    • Poderia ser chamada de "Evil as a Service"
    • As práticas monopolistas da TicketMaster são um problema, mas organizadores de eventos e artistas também têm responsabilidade
  • Exigir o uso de celular para entrar no show é um problema

    • Se a bateria acabar ou a tela quebrar, isso gera problemas
    • Quanto mais a tecnologia avança, mais ela é usada para finalidades piores
    • É preciso evitar comprar ingressos da TicketMaster para quebrar o monopólio
  • Exigir conexão com a internet no evento é um problema

    • Em eventos grandes, conseguir conexão com a internet é difícil
    • O app deveria funcionar também offline
    • A TicketMaster atualiza o ingresso 20 horas antes do evento para o caso de não haver internet