- Baru-baru ini membeli tiket konser di Ticketmaster. Alih-alih tiket PDF biasa yang bisa dicetak, Ticketmaster menerbitkan tiket melalui sistem bernama SafeTix, yaitu Mobile Entry. Tiket ini disajikan dalam bentuk barcode berputar di web app Ticketmaster atau aplikasi Android/iOS-nya.
- Dulu, tiket yang dibeli secara online maupun offline bisa dicetak. Tiket PDF dapat dilihat di hampir semua perangkat, tetap bisa diakses meski ponsel tidak terhubung ke internet, dan bahkan bisa digunakan sebagai tiket kertas saat tidak membawa ponsel. Jika dibeli dari penjual resmi, keasliannya juga jelas.
- Tahun lalu saat menghadiri konser yang menggunakan sistem tiket QR berputar serupa, banyak orang mengalami masalah saat masuk. Masalah utamanya adalah ponsel mereka tidak memiliki koneksi internet sehingga kode QR tidak bisa dimuat. Staf di lokasi pun tidak punya cara untuk membantu.
Pemasaran
- Ticketmaster mempromosikan teknologi SafeTix sebagai obat mujarab untuk penipu dan calo tiket.
- Mereka mengklaim bahwa berkat barcode unik yang otomatis disegarkan setiap beberapa detik, tiket tidak mungkin dicuri atau disalin, sangat mengurangi risiko percaloan, dan menjamin keamanan.
- Gerakan pada barcode itu hanyalah animasi CSS, dan tidak mencegah hasil scan dari tangkapan layar.
Motivasi
- SafeTix mempersulit penjualan kembali tiket di luar pasar sekunder Ticketmaster yang tertutup dan bermargin tinggi.
- Sistem ini memaksa pengguna memasang aplikasi eksklusif milik Ticketmaster.
- Karena tiket tidak bisa disimpan atau dikirim ke luar Ticketmaster, pengguna harus menyerahkan informasi kontak temannya kepada Ticketmaster.
Kontradiksi
- Mengatakan tiket bisa disimpan secara offline sambil menyatakan tidak bisa dikirim ke luar Ticketmaster adalah kontradiktif.
- Jika data bisa disalin, maka data bisa dikirim; jika bisa dikirim, maka bisa dibagikan dan dijual.
- Mengklaim tiket memiliki DRM yang kuat sambil mengatakan tiket bisa dilihat secara offline juga merupakan kontradiksi.
Reverse engineering
- Dari pemeriksaan terhadap barcode itu sendiri, ternyata itu adalah barcode PDF417 yang mengenkode teks UTF-8.
- Barcode berubah setiap 15 detik dan terdiri dari data Base64, dua angka 6 digit, dan Unix timestamp.
- Dua angka 6 digit itu bekerja seperti Time-based One-Time Passwords (TOTP).
- Data Base64 tampak seperti data acak sepanjang 48 byte, dan diduga merupakan semacam bearer token acak yang mengidentifikasi tiket dan pemilik tiket.
Rahasia dari rahasia
- Untuk menghasilkan TOTP, yang dibutuhkan hanyalah shared secret key (array byte) dan jam yang berjalan dengan benar.
- Karena ada dua TOTP di barcode, berarti ada dua shared secret key juga. Jika keduanya tersedia bersama bearer token, maka barcode valid bisa dibuat sebanyak yang diinginkan.
Debugging web app
- Menghubungkan browser Chrome di ponsel Android ke Chrome DevTools di komputer desktop untuk memeriksa API dan source code Ticketmaster.
- Menemukan request yang menarik pada endpoint API
/api/render-ticket/secure-barcode.
- Data respons memiliki properti
token yang di-encode dengan Base64, dan setelah didekode ternyata berupa objek JSON.
- Diduga
eventKey (ek) dan customerKey (ck) adalah secret key TOTP.
- Setelah menelusuri source code web app, ditemukan fungsi bernama
generateSignedToken, dan di sanalah data barcode dibuat.
- Kedua TOTP dihasilkan dengan interval waktu 15 detik, dan selain itu dibangun dengan cara yang sama seperti TOTP SHA-1 biasa.
Pembajakan tiket
- Sekarang sudah diketahui semua yang diperlukan untuk menyalin barcode Ticketmaster di aplikasi kustom.
- Barcode PDF417 dapat dibuat yang tidak bisa dibedakan dari aplikasi resmi Ticketmaster.
- Ticketmaster mempermudah ekstraksi token karena secara otomatis mencatat
token ke konsol browser saat komponen perender barcode dipasang ke halaman web.
Masa berlaku
- Masa berlaku
rawToken tidak diketahui. Mungkin hanya satu token yang valid per akun Ticketmaster.
- Menurut dokumentasi API developer Ticketmaster, token harus disegarkan 20 jam sebelum acara dimulai.
- Itu sudah cukup untuk menyimpan tiket secara offline. Dibuat aplikasi Expo bernama TicketGimp yang merender barcode SafeTix.
Kesimpulan
- Ticketmaster mengecualikan orang-orang yang lemah secara teknis.
- Mereka membungkus dark pattern seperti ini sebagai langkah keamanan.
- Perusahaan ini mendukung praktik bisnis yang kejam.
- Pengembang perangkat lunak harus menggunakan kekuatan semacam ini dengan benar.
- Bubarkan Ticketmaster.
Pendapat GN⁺
- Tulisan ini menunjukkan dengan baik proses reverse engineering teknologi SafeTix milik Ticketmaster. Secara teknis isinya sangat menarik.
- Namun, ada pertanyaan apakah tindakan seperti ini legal. Meretas dan menyalahgunakan sistem Ticketmaster tanpa izin sangat mungkin melanggar hukum.
- Meski sepakat bahwa perilaku Ticketmaster merugikan konsumen, melawan dengan menyalahgunakan teknologi juga bukan pendekatan yang diinginkan. Perlu mengangkat masalah ini secara legal dan mencari solusinya dengan cara yang sah.
- Seiring kemajuan teknologi, upaya DRM dan kontrol konsumen seperti ini kemungkinan akan semakin meningkat. Diskusi sosial dan perbaikan regulasi untuk melindungi privasi serta hak konsumen tampak penting.
- Sebagai developer, kita punya tanggung jawab untuk menggunakan kekuatan teknologi demi membawa perubahan positif bagi masyarakat. Bukan sekadar mengimplementasikan teknologi, tetapi juga memikirkan dengan serius dampak yang ditimbulkannya.
1 komentar
Komentar Hacker News
TicketMaster dan AXS punya kesempatan untuk mendukung platform penjualan kembali dan transfer tiket, tetapi memilih untuk tidak melakukannya
Model bisnis TicketMaster didasarkan pada menipu publik
Pengembang perangkat lunak seperti penyihir dan dukun modern
Praktik buruk lain dari TicketMaster
Artikel yang terkait dengan TicketMaster banyak memakai ungkapan berlebihan
Masalah tiket sebenarnya bisa diselesaikan dengan sederhana
Tidak mungkin menjadi orang baik sambil bekerja di perusahaan yang buruk
Pertanyaan tentang bagaimana TicketMaster sebenarnya beroperasi
Keharusan memakai ponsel untuk bisa masuk ke pertunjukan adalah masalah
Kebutuhan akan koneksi internet di lokasi acara juga merupakan masalah