3P by neo 2달전 | favorite | 댓글 1개
  • 최근 티켓마스터에서 콘서트 티켓을 구매했음. 티켓마스터는 정상적인 인쇄 가능한 PDF 티켓 대신 모바일 입장(Mobile Entry), 즉 SafeTix라는 시스템을 통해 티켓을 발행함. 이는 티켓마스터의 웹앱이나 안드로이드/iOS 앱 내에서 회전하는 바코드 형태로 제공됨.
  • 예전에는 온라인이나 오프라인에서 구입한 티켓을 인쇄할 수 있었음. PDF 티켓은 거의 모든 기기에서 볼 수 있고, 휴대폰이 인터넷에 연결되지 않아도 접근 가능하며, 휴대폰이 없어도 종이 티켓으로 사용할 수 있음. 공식 판매처에서 구매한 것이라면 진품이라는 것도 알 수 있음.
  • 작년에 유사한 회전 QR 코드 티켓 시스템을 사용한 콘서트에 갔을 때 많은 사람들이 입장에 문제를 겪음. 주된 문제는 휴대폰에 인터넷 연결이 없어서 QR 코드가 로드되지 않는 것이었음. 현장 직원들도 도울 방법이 없었음.

마케팅

  • 티켓마스터는 SafeTix 기술을 사기꾼과 암표상들에 대한 만병통치약으로 홍보함.
  • 몇 초마다 자동으로 새로고침되는 고유한 바코드 덕분에 도난이나 복사가 불가능하며 암표 위험을 크게 줄이고 안전을 보장한다고 주장함.
  • 바코드가 움직이는 것은 CSS 애니메이션일 뿐이고 스크린샷의 스캔을 막지 못함.

동기

  • SafeTix는 티켓마스터의 폐쇄적이고 마진이 높은 암표 시장 외에서 티켓 재판매를 어렵게 만듦.
  • 사용자들이 티켓마스터의 독점 앱을 설치하도록 강제함.
  • 티켓마스터 외부로 티켓을 저장하고 전송하는 것이 불가능해서 친구의 연락처 정보를 티켓마스터에 넘겨야 함.

모순

  • 티켓을 오프라인으로 저장할 수 있다면서 티켓마스터 외부로 전송할 수 없다는 것은 모순임.
  • 데이터를 복사할 수 있다면 전송할 수 있고, 전송할 수 있다면 공유 및 판매가 가능함.
  • 티켓에 강력한 DRM이 있다면서 오프라인으로 볼 수 있다는 것 자체가 모순임.

리버스 엔지니어링

  • 바코드 자체를 검사한 결과, PDF417 바코드이며 UTF-8 텍스트를 인코딩하고 있음.
  • 바코드는 15초마다 변경되며, Base64 데이터, 두 개의 6자리 숫자, Unix 타임스탬프로 구성됨.
  • 두 개의 6자리 숫자는 Time-based One-Time Passwords(TOTP)처럼 동작함.
  • Base64 데이터는 48바이트 길이의 랜덤한 데이터로 보이며, 티켓 소지자와 티켓을 식별하는 일종의 랜덤 베어러 토큰일 것으로 추측함.

비밀의 비밀

  • TOTP를 생성하려면 공유 비밀 키(바이트 배열)와 동작하는 시계만 있으면 됨.
  • 바코드에 TOTP가 두 개 있으므로 공유 비밀 키도 두 개일 것임. 베어러 토큰과 함께 있다면 원하는 만큼 유효한 바코드를 생성할 수 있음.

웹앱 디버깅

  • 안드로이드 휴대폰의 크롬 브라우저를 데스크탑 컴퓨터의 크롬 개발자 도구에 연결해서 티켓마스터 API와 소스 코드를 살펴봄.
  • /api/render-ticket/secure-barcode API 엔드포인트에서 관심있는 요청을 발견함.
  • 응답 데이터에는 Base64로 인코딩된 token 속성이 있었고, 디코딩해보니 JSON 객체였음.
  • eventKey(ek)와 customerKey(ck)가 TOTP 비밀 키일 것으로 추측됨.
  • 웹앱 소스 코드를 살펴보니 generateSignedToken이라는 함수를 찾았고, 여기서 바코드 데이터를 생성하고 있었음.
  • 두 TOTP는 15초 시간 간격으로 생성되며, 그 외에는 일반적인 SHA-1 TOTP와 동일한 방식으로 구성됨.

티켓 해적질

  • 이제 사용자 정의 앱에서 티켓마스터의 바코드를 복제하는 데 필요한 모든 것을 알게 됨.
  • 공식 티켓마스터 앱과 구별할 수 없는 PDF417 바코드를 생성할 수 있음.
  • 티켓마스터는 바코드 렌더러 컴포넌트가 웹 페이지에 마운트될 때 token을 브라우저 콘솔에 자동으로 기록하므로 토큰 추출이 쉬움.

수명

  • rawToken의 수명은 알 수 없음. 티켓마스터 계정당 하나의 토큰만 유효할 가능성이 있음.
  • 티켓마스터 개발자 API 문서에 따르면 이벤트 시작 20시간 전에 토큰을 새로고침해야 함.
  • 오프라인으로 티켓을 저장하는 데에는 충분함. SafeTix 바코드를 렌더링하는 Expo 앱 TicketGimp을 만들었음.

결론

  • 티켓마스터는 기술적 약자를 배제하고 있음.
  • 이런 암흑 패턴을 안전 조치로 포장하고 있음.
  • 잔인한 비즈니스 관행을 지원하는 회사임.
  • 소프트웨어 개발자는 이런 힘을 올바르게 사용해야 함.
  • 티켓마스터를 해체하자.

GN⁺의 의견

  • 이 글은 티켓마스터의 SafeTix 기술을 리버스 엔지니어링한 과정을 잘 보여줌. 기술적으로 매우 흥미로운 내용임.
  • 하지만 이런 행위가 합법적인지에 대해서는 의문이 듦. 티켓마스터의 시스템을 무단으로 해킹하고 악용하는 것은 불법일 가능성이 높음.
  • 티켓마스터의 행태가 소비자에게 불리하다는 점은 동의하지만, 기술을 오용해 대항하는 것은 바람직하지 않음. 합법적인 방식으로 문제를 제기하고 해결책을 모색하는 것이 필요함.
  • 기술이 발전하면서 이런 식의 DRM과 소비자 통제 시도는 더욱 늘어날 것임. 개인정보 보호와 소비자 권리를 지키기 위한 사회적 논의와 규제 개선이 중요해 보임.
  • 개발자로서 우리는 기술의 힘을 이용해 사회에 긍정적인 변화를 가져올 책임이 있음. 단순히 기술을 구현하는 것을 넘어, 그 기술이 어떤 영향을 끼칠지 깊이 고민해야 함.
Hacker News 의견
  • TicketMaster와 AXS가 티켓 재판매 및 전달 플랫폼을 지원할 기회가 있었으나, 이를 선택하지 않음

    • 티켓 QR 코드 암호화 문서화와 앱 및 API 노출을 통해 티켓 비밀을 검증 및 회전할 수 있었음
    • 대신 법적 문제로 사기꾼들과 싸우는 것을 선택함
    • 재판매 독점으로 더 많은 수익을 얻기 때문임
  • TicketMaster의 비즈니스 모델은 대중을 속이는 것에 기반함

    • Taylor Swift는 팬들이 저렴한 가격에 티켓을 구매할 수 있기를 원함
    • 그녀의 매니저는 최대한 많은 수익을 얻으려 함
    • TicketMaster와 협력하여 일부 티켓을 저렴하게 판매한 후 나머지 티켓을 재판매 사이트에서 더 높은 가격에 판매함
  • 소프트웨어 개발자는 현대의 마법사와 주술사와 같음

    • 이러한 힘을 절제와 진실성으로 사용해야 함
    • 탐욕과 착취에만 몰두하는 사람들로부터 사회의 통제권을 되찾기 위해 필요함
  • TicketMaster의 또 다른 나쁜 관행

    • 티켓을 재판매할 때, 구매자가 구매한 후에도 판매자의 자금을 이벤트 종료 후 7-14 영업일 동안 보류함
    • 티켓의 유효성을 확인하기 위해서라고 주장함
    • 그러나 TicketMaster는 티켓을 소유하고 있으며, 유효성을 확인하는 논리는 복잡하지 않음
    • 구매자와 판매자 모두의 자금을 보류하여 이중으로 수익을 얻음
  • TicketMaster와 관련된 기사는 과장된 표현이 많음

    • 티켓 복제 방법을 설명하는 부분이 있음
    • 이는 누구에게도 피해를 주지 않음
    • 회전하는 바코드는 여전히 정적 바코드보다 안전함
  • 티켓 문제는 간단히 해결 가능함

    • 공항에서 매일 수백만 번 해결되는 문제임
    • 티켓 구매 시 각 콘서트 참석자의 이름을 제공하고, 티켓과 신분증을 함께 제시하면 됨
  • 나쁜 회사에서 일하면서 좋은 사람이 될 수 없음

  • TicketMaster의 실제 작동 방식에 대한 의문

    • 다양한 이벤트에서 다른 방식으로 작동함
    • TicketMaster는 단순한 서비스 제공자일 뿐일 수 있음
    • 이벤트 주최자가 TicketMaster의 카탈로그에서 원하는 제품을 선택함
    • "Evil as a Service"로 불릴 수 있음
    • TicketMaster의 독점적 관행은 문제지만, 이벤트 주최자와 아티스트도 책임이 있음
  • 모바일 폰을 사용해야만 쇼에 입장할 수 있는 것은 문제임

    • 배터리가 다 떨어지거나 화면이 깨질 경우 문제가 발생함
    • 기술이 발전할수록 더 나쁜 용도로 사용됨
    • 독점을 깨기 위해 TicketMaster의 티켓 구매를 자제해야 함
  • 이벤트에서 인터넷 연결이 필요한 것은 문제임

    • 대규모 이벤트에서는 인터넷 연결이 어려움
    • 앱은 오프라인에서도 작동해야 함
    • TicketMaster는 이벤트 20시간 전에 티켓을 새로 고침하여 인터넷이 없을 경우를 대비함