Ticketmaster traverse une période difficile ces derniers temps. Récemment, un pirate informatique nommé [Conduition] Ils ont réussi à inverser la procédure de leur nouveau système de billetterie électronique « sécurisé ». Bien sûr, ils ont également eu affaire à la récente faille de sécurité, où plus d’un demi-milliard de comptes ont vu leurs données personnelles et financières divulguées sans aucune indication quant au fait que ces données étaient entièrement cryptées ou non. Mais nous allons nous concentrer sur le premier, car il est plus intéressant techniquement.
Les objectifs déclarés de Ticketmaster pour le nouveau système SafeTix — qui a besoin l’utilisation d’une application pour smartphone — visait à réduire la fraude et la revente de billets. Essentiellement, vous achetez un billet à l’aide de leur application, et certaines données sont téléchargées sur votre téléphone, ce qui génère un code-barres rotatif toutes les 15 secondes. [Conduition] arrivés sur place, le réseau cellulaire et le réseau Wi-Fi étaient complètement saturés par tous ceux qui essayaient de charger leurs billets à code-barres. Après de nombreuses minutes d’inquiétude (et probablement quelques mots choisis) [Conduition] j’ai réussi à obtenir un signal cellulaire suffisamment longtemps pour mettre à jour le code-barres et j’ai pu entrer, bien qu’avec un grand contingent de fans tout aussi agacés essayant d’entrer avec leurs billets achetés légalement.
Le problème, c’est que le code-barres change toutes les 15 secondes, et il n’est donc pas possible de l’imprimer. Cela aliène tous ceux qui ne possèdent pas de smartphone, y compris ceux qui ne sont pas en mesure d’en utiliser un physiquement. Le problème n’est donc pas simplement que les utilisateurs sont obligés d’installer une nouvelle application sur leur appareil, mais que le système réduit l’accessibilité au divertissement. [Conduition] J’ai été consterné et frustré par cette situation, et c’est ainsi que l’effort de rétro-ingénierie a commencé.
Le décodage du code-barres était en fait assez simple. Il s’agit d’un code-barres PDF417 standard, qui contient une longue chaîne Base64, deux nombres à six chiffres et un horodatage Unix, le tout concaténé avec deux points. Les seules parties de la chaîne qui semblaient changer au fil du temps étaient les deux nombres à six chiffres. Hmm, pouvons-nous penser à une technologie courante qui génère des nombres à six chiffres qui se mettent à jour de manière apparemment aléatoire selon un cycle fixe ? Bien sûr, il s’agit simplement d’un mot de passe à usage unique basé sur le temps (TOTP), la technologie derrière les applications d’authentification 2FA !
Alors, d’où viennent les clés secrètes ? TOTP ne nécessite que deux choses : une chaîne secrète statique et l’heure actuelle. [Conduition] J’ai vérifié la communication avec les serveurs Ticketmaster et j’ai trouvé une requête particulièrement intéressante qui renvoyait des données au format JSON, à l’intérieur desquelles se trouvaient bien sûr les deux clés secrètes. L’une semble être unique par client, et l’autre par ticket.
![](https://10-raisons.fr/wp-content/uploads/2024/07/Retro-ingenierie-de-Ticketmaster-SafeTix-Journee-Hacka.png)
La documentation de l’API Ticketmaster ne mentionne que brièvement cette fonctionnalité, mais elle indique que les clients doivent actualiser leurs codes-barres de billets dans les 20 heures précédant le début d’un événement. Ces deux informations ont suffi à permettre [Conduition] pour créer une application simple qui accepte les clés secrètes et l’identifiant du billet et fait apparaître les codes-barres rotatifs. Cela vous permettrait de vendre vos billets dans les 20 heures précédant un événement, ou même de les donner à des amis sans avoir à communiquer leurs données personnelles à Ticketmaster et de reprendre le contrôle de vos billets.
Grâce à [Chrischi] pour le pourboire !