3 điểm bởi GN⁺ 2024-07-09 | 1 bình luận | Chia sẻ qua WhatsApp
  • Gần đây tôi đã mua vé concert trên Ticketmaster. Thay vì vé PDF có thể in bình thường, Ticketmaster phát hành vé thông qua hình thức vào cổng bằng di động (Mobile Entry), tức là một hệ thống gọi là SafeTix. Vé được cung cấp dưới dạng mã vạch xoay bên trong web app của Ticketmaster hoặc ứng dụng Android/iOS.
  • Trước đây, vé mua online hay offline đều có thể in ra được. Vé PDF có thể xem trên gần như mọi thiết bị, có thể truy cập ngay cả khi điện thoại không có kết nối Internet, và cũng có thể dùng dưới dạng vé giấy ngay cả khi không có điện thoại. Nếu được mua từ nơi bán chính thức thì cũng biết đó là vé thật.
  • Năm ngoái, khi đi một buổi concert dùng hệ thống vé mã QR xoay tương tự, rất nhiều người đã gặp vấn đề khi vào cổng. Vấn đề chính là điện thoại không có kết nối Internet nên mã QR không tải được. Nhân viên tại chỗ cũng không có cách nào hỗ trợ.

Tiếp thị

  • Ticketmaster quảng bá công nghệ SafeTix như một liều thuốc vạn năng chống lại kẻ lừa đảo và phe vé.
  • Họ tuyên bố rằng nhờ mã vạch độc nhất tự làm mới sau mỗi vài giây nên không thể bị đánh cắp hay sao chép, từ đó giảm mạnh rủi ro phe vé và bảo đảm an toàn.
  • Việc mã vạch chuyển động chỉ là hoạt ảnh CSS, và nó không thể ngăn việc quét từ ảnh chụp màn hình.

Động cơ

  • SafeTix khiến việc bán lại vé bên ngoài thị trường phe vé khép kín, có biên lợi nhuận cao của Ticketmaster trở nên khó khăn.
  • Nó ép người dùng phải cài ứng dụng độc quyền của Ticketmaster.
  • Vì không thể lưu và chuyển vé ra ngoài Ticketmaster, người dùng buộc phải cung cấp thông tin liên hệ của bạn bè cho Ticketmaster.

Mâu thuẫn

  • Việc nói có thể lưu vé để dùng offline nhưng lại không thể chuyển vé ra ngoài Ticketmaster là một mâu thuẫn.
  • Nếu dữ liệu có thể sao chép thì có thể truyền đi, và nếu có thể truyền đi thì có thể chia sẻ và bán.
  • Việc nói vé có DRM mạnh nhưng vẫn có thể xem offline tự nó đã là một mâu thuẫn.

Reverse engineering

  • Sau khi kiểm tra chính mã vạch, tác giả xác nhận đó là mã vạch PDF417 và nó mã hóa văn bản UTF-8.
  • Mã vạch thay đổi mỗi 15 giây và gồm dữ liệu Base64, hai số có 6 chữ số và một dấu thời gian Unix.
  • Hai số 6 chữ số hoạt động giống như Time-based One-Time Passwords (TOTP).
  • Dữ liệu Base64 có vẻ là dữ liệu ngẫu nhiên dài 48 byte, được suy đoán là một dạng bearer token ngẫu nhiên để nhận diện vé và người sở hữu vé.

Bí mật của bí mật

  • Để tạo TOTP, chỉ cần một khóa bí mật dùng chung (mảng byte) và một đồng hồ đang chạy đúng.
  • Vì mã vạch có hai TOTP nên cũng sẽ có hai khóa bí mật dùng chung. Nếu có chúng cùng bearer token thì có thể tạo ra số lượng mã vạch hợp lệ tùy ý.

Gỡ lỗi web app

  • Tác giả kết nối trình duyệt Chrome trên điện thoại Android với Chrome DevTools trên máy tính để bàn để xem API và mã nguồn của Ticketmaster.
  • Tác giả tìm thấy request đáng chú ý tại endpoint API /api/render-ticket/secure-barcode.
  • Trong dữ liệu phản hồi có thuộc tính token được mã hóa Base64, và khi giải mã thì đó là một đối tượng JSON.
  • Tác giả suy đoán eventKey (ek) và customerKey (ck) là các khóa bí mật TOTP.
  • Khi xem mã nguồn của web app, tác giả tìm thấy hàm generateSignedToken, nơi dữ liệu mã vạch được tạo ra.
  • Hai TOTP được tạo theo khoảng thời gian 15 giây, còn ngoài ra thì được cấu thành giống TOTP SHA-1 thông thường.

Bẻ khóa vé

  • Giờ đây tác giả đã biết mọi thứ cần thiết để sao chép mã vạch của Ticketmaster trong một ứng dụng tùy chỉnh.
  • Có thể tạo mã vạch PDF417 không thể phân biệt với mã trong ứng dụng Ticketmaster chính thức.
  • Ticketmaster còn khiến việc trích xuất token trở nên dễ dàng vì khi component trình render mã vạch được mount trên trang web, token tự động được ghi vào console của trình duyệt.

Thời hạn hiệu lực

  • Không rõ thời hạn hiệu lực của rawToken. Có khả năng chỉ một token là hợp lệ cho mỗi tài khoản Ticketmaster.
  • Theo tài liệu API dành cho nhà phát triển của Ticketmaster, token cần được làm mới 20 giờ trước khi sự kiện bắt đầu.
  • Chừng đó là đủ để lưu vé dùng offline. Tác giả đã tạo ứng dụng Expo TicketGimp để render mã vạch SafeTix.

Kết luận

  • Ticketmaster đang loại trừ những người yếu thế về công nghệ.
  • Họ ngụy trang những dark pattern này thành biện pháp an toàn.
  • Đây là một công ty ủng hộ các thực hành kinh doanh tàn nhẫn.
  • Các nhà phát triển phần mềm cần sử dụng loại quyền lực này một cách đúng đắn.
  • Hãy giải thể Ticketmaster.

Ý kiến của GN⁺

  • Bài viết này cho thấy rõ quá trình reverse engineering công nghệ SafeTix của Ticketmaster. Về mặt kỹ thuật, đây là nội dung rất thú vị.
  • Tuy nhiên, vẫn có nghi vấn về việc hành động như vậy có hợp pháp hay không. Việc tự ý hack và lạm dụng hệ thống của Ticketmaster rất có thể là bất hợp pháp.
  • Dù đồng ý rằng cách hành xử của Ticketmaster gây bất lợi cho người tiêu dùng, việc đáp trả bằng cách lạm dụng công nghệ cũng không phải là hướng đi phù hợp. Cần nêu vấn đề và tìm giải pháp theo cách hợp pháp.
  • Khi công nghệ phát triển, những nỗ lực áp dụng DRM và kiểm soát người tiêu dùng theo kiểu này có lẽ sẽ còn gia tăng. Có vẻ cần những thảo luận xã hội và cải thiện quy định để bảo vệ quyền riêng tư và quyền lợi người tiêu dùng.
  • Với tư cách là nhà phát triển, chúng ta có trách nhiệm dùng sức mạnh của công nghệ để tạo ra thay đổi tích cực cho xã hội. Không chỉ đơn thuần triển khai công nghệ, mà còn phải suy nghĩ sâu về tác động mà công nghệ đó gây ra.

1 bình luận

 
GN⁺ 2024-07-09
Ý kiến trên Hacker News
  • TicketMaster và AXS đã từng có cơ hội hỗ trợ các nền tảng chuyển nhượng và chuyển giao vé, nhưng họ đã không chọn làm vậy

    • Họ có thể đã ghi chép tài liệu về việc mã hóa mã QR của vé và công khai ứng dụng cùng API để xác minh và xoay vòng bí mật của vé
    • Thay vào đó, họ chọn chiến đấu với những kẻ lừa đảo bằng các vấn đề pháp lý
    • Vì họ kiếm được nhiều tiền hơn từ việc độc quyền bán lại vé
  • Mô hình kinh doanh của TicketMaster dựa trên việc đánh lừa công chúng

    • Taylor Swift muốn người hâm mộ có thể mua vé với giá rẻ
    • Người quản lý của cô ấy muốn thu về nhiều tiền nhất có thể
    • Họ hợp tác với TicketMaster để bán một phần vé với giá thấp, rồi bán số vé còn lại trên các trang bán lại với giá cao hơn
  • Lập trình viên phần mềm giống như những pháp sư và thầy phù thủy của thời hiện đại

    • Cần sử dụng sức mạnh này với sự kiềm chế và liêm chính
    • Điều này cần thiết để giành lại quyền kiểm soát xã hội từ những kẻ chỉ chăm chăm vào lòng tham và sự bóc lột
  • Một thực tiễn tồi tệ khác của TicketMaster

    • Khi bán lại vé, ngay cả sau khi người mua đã thanh toán, họ vẫn giữ tiền của người bán trong 7-14 ngày làm việc sau khi sự kiện kết thúc
    • Họ nói rằng đó là để xác minh tính hợp lệ của vé
    • Nhưng TicketMaster sở hữu vé, và logic để xác minh tính hợp lệ không hề phức tạp
    • Họ giữ tiền của cả người mua lẫn người bán để kiếm lợi nhuận hai lần
  • Các bài viết liên quan đến TicketMaster thường có nhiều cách diễn đạt cường điệu

    • Có phần giải thích cách sao chép vé
    • Điều này không gây hại cho ai
    • Mã vạch xoay vòng vẫn an toàn hơn mã vạch tĩnh
  • Vấn đề vé có thể được giải quyết rất đơn giản

    • Đây là vấn đề đã được giải quyết hàng triệu lần mỗi ngày ở sân bay
    • Khi mua vé, chỉ cần cung cấp tên của từng người tham dự buổi hòa nhạc, rồi xuất trình vé cùng giấy tờ tùy thân là được
  • Không thể là người tốt nếu làm việc cho một công ty tồi tệ

  • Thắc mắc về cách TicketMaster thực sự vận hành

    • Ở các sự kiện khác nhau, nó hoạt động theo những cách khác nhau
    • TicketMaster có thể chỉ là một nhà cung cấp dịch vụ đơn thuần
    • Đơn vị tổ chức sự kiện chọn sản phẩm họ muốn từ danh mục của TicketMaster
    • Có thể gọi đó là "Evil as a Service"
    • Các thực tiễn độc quyền của TicketMaster là vấn đề, nhưng đơn vị tổ chức sự kiện và nghệ sĩ cũng có trách nhiệm
  • Việc phải dùng điện thoại di động mới có thể vào xem chương trình là một vấn đề

    • Nếu hết pin hoặc vỡ màn hình thì sẽ phát sinh rắc rối
    • Công nghệ càng phát triển thì lại càng bị dùng cho những mục đích tệ hơn
    • Cần kiềm chế mua vé của TicketMaster để phá vỡ thế độc quyền
  • Việc cần có kết nối Internet tại sự kiện là một vấn đề

    • Ở các sự kiện lớn, kết nối Internet rất khó đảm bảo
    • Ứng dụng nên hoạt động cả khi ngoại tuyến
    • TicketMaster làm mới vé 20 giờ trước sự kiện để đề phòng trường hợp không có Internet