- Kısa süre önce Ticketmaster'dan bir konser bileti satın alındı. Ticketmaster, normal basılabilir PDF bilet yerine Mobile Entry, yani SafeTix adlı bir sistem üzerinden bilet düzenliyor. Bu bilet, Ticketmaster'ın web uygulaması veya Android/iOS uygulaması içinde dönen bir barkod olarak sunuluyor.
- Eskiden çevrimiçi ya da fiziksel olarak satın alınan biletler yazdırılabiliyordu. PDF biletler neredeyse her cihazda görüntülenebilir, telefon internete bağlı olmasa da erişilebilir ve telefon olmasa bile kağıt bilet olarak kullanılabilir. Resmi satış kanalından satın alındıysa gerçek olduğu da bilinir.
- Geçen yıl benzer bir dönen QR kodlu bilet sistemi kullanan bir konsere gidildiğinde birçok kişi girişte sorun yaşadı. Başlıca sorun, telefonlarda internet bağlantısı olmadığı için QR kodun yüklenmemesiydi. Mekandaki görevlilerin de yardımcı olabileceği bir yol yoktu.
Pazarlama
- Ticketmaster, SafeTix teknolojisini dolandırıcılara ve karaborsacılara karşı her derde deva bir çözüm gibi pazarlıyor.
- Her birkaç saniyede bir otomatik yenilenen benzersiz barkod sayesinde çalınmanın veya kopyalanmanın imkansız olduğunu, bunun da karaborsa riskini büyük ölçüde azalttığını ve güvenliği sağladığını iddia ediyor.
- Barkodun hareket etmesi yalnızca bir CSS animasyonu ve ekran görüntüsünün taranmasını engellemiyor.
Motivasyon
- SafeTix, Ticketmaster'ın kapalı ve yüksek marjlı karaborsa pazarı dışında biletin yeniden satılmasını zorlaştırıyor.
- Kullanıcıları Ticketmaster'ın tekel niteliğindeki uygulamasını yüklemeye zorluyor.
- Biletleri Ticketmaster dışına kaydetmek ve aktarmak imkansız olduğundan, arkadaşın iletişim bilgilerini Ticketmaster'a vermek gerekiyor.
Çelişki
- Biletin çevrimdışı saklanabildiği söylenirken Ticketmaster dışına aktarılamaması bir çelişki.
- Veri kopyalanabiliyorsa aktarılabilir; aktarılabiliyorsa paylaşılabilir ve satılabilir.
- Bilette güçlü DRM olduğu söylenirken çevrimdışı görüntülenebilmesi başlı başına bir çelişki.
Tersine mühendislik
- Barkodun kendisi incelendiğinde bunun bir PDF417 barkodu olduğu ve UTF-8 metin kodladığı görüldü.
- Barkod her 15 saniyede bir değişiyor ve Base64 veri, iki adet 6 haneli sayı ve bir Unix zaman damgasından oluşuyor.
- İki adet 6 haneli sayı, Time-based One-Time Passwords (TOTP) gibi çalışıyor.
- Base64 veri, 48 bayt uzunluğunda rastgele veri gibi görünüyor; bilet sahibini ve bileti tanımlayan bir tür rastgele bearer token olduğu tahmin ediliyor.
Sırrın sırrı
- TOTP üretmek için yalnızca paylaşılan bir gizli anahtarın (bayt dizisi) ve çalışan bir saatin olması yeterli.
- Barkodda iki TOTP bulunduğundan, iki paylaşılan gizli anahtar da olmalı. Bunlar bearer token ile birlikte elde edilirse istenildiği kadar geçerli barkod üretilebilir.
Web uygulamasını hata ayıklama
- Android telefondaki Chrome tarayıcısı, masaüstü bilgisayardaki Chrome geliştirici araçlarına bağlanarak Ticketmaster API'si ve kaynak kodu incelendi.
- İlgilenilen istek,
/api/render-ticket/secure-barcode API uç noktasında bulundu.
- Yanıt verisinde Base64 ile kodlanmış bir
token özelliği vardı; çözümlendiğinde bunun bir JSON nesnesi olduğu görüldü.
eventKey (ek) ve customerKey (ck) değerlerinin TOTP gizli anahtarları olduğu tahmin edildi.
- Web uygulamasının kaynak kodu incelendiğinde
generateSignedToken adlı bir fonksiyon bulundu ve barkod verisi burada üretiliyordu.
- İki TOTP, 15 saniyelik zaman aralığıyla üretiliyor ve bunun dışında tipik SHA-1 TOTP ile aynı şekilde oluşturuluyor.
Bilet korsanlığı
- Artık özel bir uygulamada Ticketmaster barkodunu kopyalamak için gereken her şey öğrenilmiş oldu.
- Resmi Ticketmaster uygulamasındakinden ayırt edilemeyen PDF417 barkodları üretmek mümkün.
- Ticketmaster, barkod oluşturucu bileşen web sayfasına mount edildiğinde
token değerini tarayıcı konsoluna otomatik olarak yazdığı için token çıkarmak kolay.
Ömür
rawToken ömrü bilinmiyor. Ticketmaster hesabı başına yalnızca tek bir token'ın geçerli olması mümkündür.
- Ticketmaster geliştirici API belgelerine göre token'ın etkinlik başlamadan 20 saat önce yenilenmesi gerekiyor.
- Bu, bileti çevrimdışı saklamak için yeterli. SafeTix barkodunu oluşturan Expo uygulaması TicketGimp geliştirildi.
Sonuç
- Ticketmaster, teknolojiye daha az hakim kullanıcıları dışlıyor.
- Bu tür karanlık kalıpları güvenlik önlemi gibi sunuyor.
- Acımasız iş uygulamalarını destekleyen bir şirket.
- Yazılım geliştiriciler bu gücü doğru şekilde kullanmalı.
- Ticketmaster parçalanmalı.
GN⁺ görüşü
- Bu yazı, Ticketmaster'ın SafeTix teknolojisinin nasıl tersine mühendislik edildiğini iyi gösteriyor. Teknik açıdan oldukça ilgi çekici bir içerik.
- Ancak bu tür eylemlerin yasal olup olmadığı soru işareti yaratıyor. Ticketmaster sistemine izinsiz şekilde müdahale etmek ve bunu kötüye kullanmak büyük olasılıkla yasa dışıdır.
- Ticketmaster'ın uygulamalarının tüketici aleyhine olduğu görüşüne katılmak mümkün olsa da, buna teknolojiyi kötüye kullanarak karşılık vermek doğru değil. Sorunun yasal yollarla gündeme getirilmesi ve çözüm aranması gerekiyor.
- Teknoloji geliştikçe bu tür DRM ve tüketiciyi kontrol etme girişimlerinin daha da artacağı anlaşılıyor. Mahremiyeti ve tüketici haklarını korumak için toplumsal tartışmalar ve düzenleyici iyileştirmeler önemli görünüyor.
- Geliştiriciler olarak, teknolojinin gücünü kullanarak toplumda olumlu değişim yaratma sorumluluğumuz var. Yalnızca teknolojiyi uygulamanın ötesinde, bunun ne tür etkiler doğuracağını da derinlemesine düşünmek gerekiyor.
1 yorum
Hacker News yorumu
TicketMaster ve AXS, bilet yeniden satışı ve devrini destekleyen platformları destekleme fırsatına sahipti, ancak bunu tercih etmedi
TicketMaster'ın iş modeli, halkı kandırma üzerine kurulu
Yazılım geliştiricileri modern çağın büyücüleri ve şamanları gibidir
TicketMaster'ın bir diğer kötü uygulaması
TicketMaster ile ilgili yazılarda çok sayıda abartılı ifade var
Bilet sorunu aslında kolayca çözülebilir
Kötü bir şirkette çalışıp iyi bir insan olarak kalamazsınız
TicketMaster'ın gerçekte nasıl çalıştığına dair soru işaretleri var
Bir gösteriye girebilmek için mutlaka cep telefonu kullanmak zorunda olmak sorunlu
Etkinlikte internet bağlantısına ihtiyaç duyulması da sorunlu