- 最近Ticketmasterでコンサートチケットを購入した。Ticketmasterは通常の印刷可能なPDFチケットの代わりに、モバイル入場(Mobile Entry)、つまりSafeTixというシステムでチケットを発行している。これはTicketmasterのWebアプリやAndroid/iOSアプリ内で回転するバーコードの形で提供される。
- 以前はオンラインでもオフラインでも購入したチケットを印刷できた。PDFチケットはほぼあらゆるデバイスで見られ、携帯電話がインターネットに接続されていなくてもアクセスでき、携帯電話がなくても紙のチケットとして使えた。公式販売元で購入したものであれば本物だということも分かる。
- 昨年、似たような回転QRコードのチケットシステムを使ったコンサートに行ったとき、多くの人が入場で問題を抱えていた。主な問題は、携帯電話にインターネット接続がなくてQRコードが読み込まれなかったことだった。現場スタッフにも助ける方法はなかった。
マーケティング
- TicketmasterはSafeTix技術を、詐欺師やダフ屋に対する万能薬であるかのように宣伝している。
- 数秒ごとに自動更新される固有のバーコードにより、盗難やコピーが不可能で、ダフ屋のリスクを大幅に減らし、安全を保証すると主張している。
- バーコードが動くのは単なるCSSアニメーションであり、スクリーンショットのスキャンを防げない。
動機
- SafeTixは、Ticketmasterの閉鎖的で高マージンな転売市場の外でチケットを再販しにくくしている。
- ユーザーにTicketmasterの独占的なアプリをインストールするよう強制している。
- Ticketmasterの外にチケットを保存して転送することができないため、友人の連絡先情報をTicketmasterに渡さなければならない。
矛盾
- チケットをオフラインで保存できると言いながら、Ticketmasterの外へ転送できないというのは矛盾している。
- データをコピーできるなら転送でき、転送できるなら共有や販売も可能だ。
- チケットに強力なDRMがあると言いながら、オフラインで見られるということ自体が矛盾している。
リバースエンジニアリング
- バーコード自体を調べたところ、PDF417バーコードであり、UTF-8テキストをエンコードしていた。
- バーコードは15秒ごとに変化し、Base64データ、2つの6桁の数字、Unixタイムスタンプで構成されていた。
- 2つの6桁の数字はTime-based One-Time Passwords(TOTP)のように動作する。
- Base64データは48バイト長のランダムデータに見え、チケット所持者とチケットを識別する一種のランダムなベアラートークンだと推測している。
秘密の秘密
- TOTPを生成するには、共有秘密鍵(バイト配列)と動作する時計さえあればよい。
- バーコード内にTOTPが2つあるので、共有秘密鍵も2つあるはずだ。ベアラートークンと組み合わせれば、好きなだけ有効なバーコードを生成できる。
Webアプリのデバッグ
- Android端末のChromeブラウザをデスクトップPCのChrome DevToolsに接続し、Ticketmaster APIとソースコードを調べた。
/api/render-ticket/secure-barcode APIエンドポイントで関心のあるリクエストを発見した。
- レスポンスデータにはBase64でエンコードされた
tokenプロパティがあり、デコードするとJSONオブジェクトだった。
eventKey(ek)とcustomerKey(ck)がTOTP秘密鍵だと推測した。
- Webアプリのソースコードを調べると、
generateSignedTokenという関数を見つけ、そこでバーコードデータを生成していた。
- 2つのTOTPは15秒の時間間隔で生成され、それ以外は通常のSHA-1 TOTPと同じ方法で構成されている。
チケットの海賊行為
- これで独自アプリでTicketmasterのバーコードを複製するのに必要なことはすべて分かった。
- 公式Ticketmasterアプリと見分けがつかないPDF417バーコードを生成できる。
- TicketmasterはバーコードレンダラーコンポーネントがWebページにマウントされる際に
tokenをブラウザコンソールへ自動記録するため、トークンの抽出は容易だ。
寿命
rawTokenの寿命は分からない。Ticketmasterアカウントごとに1つのトークンだけが有効である可能性がある。
- Ticketmasterの開発者向けAPIドキュメントによれば、イベント開始20時間前にトークンを更新する必要がある。
- オフラインでチケットを保存するには十分だ。SafeTixバーコードをレンダリングするExpoアプリTicketGimpを作成した。
結論
- Ticketmasterは技術的弱者を排除している。
- こうしたダークパターンを安全対策として装っている。
- 冷酷なビジネス慣行を支える企業だ。
- ソフトウェア開発者はこうした力を正しく使わなければならない。
- Ticketmasterを解体しよう。
GN⁺の意見
- この記事は、TicketmasterのSafeTix技術をリバースエンジニアリングした過程をよく示している。技術的に非常に興味深い内容だ。
- ただし、このような行為が合法なのかについては疑問が残る。Ticketmasterのシステムを無断でハックして悪用するのは違法である可能性が高い。
- Ticketmasterのやり方が消費者に不利だという点には同意するが、技術を誤用して対抗するのは望ましくない。合法的な方法で問題提起し、解決策を模索する必要がある。
- 技術が進歩するにつれて、この種のDRMや消費者統制の試みはさらに増えていくだろう。プライバシー保護と消費者の権利を守るための社会的議論と規制改善が重要に見える。
- 開発者として私たちは、技術の力を使って社会に前向きな変化をもたらす責任がある。単に技術を実装するだけでなく、その技術がどのような影響を与えるかを深く考えなければならない。
1件のコメント
Hacker Newsの意見
TicketMaster と AXS にはチケットの再販・譲渡プラットフォームを支援する機会があったが、それを選ばなかった
TicketMaster のビジネスモデルは、大衆を欺くことに基づいている
ソフトウェア開発者は現代の魔法使いであり呪術師のようなものだ
TicketMaster のもう一つの悪質な慣行
TicketMaster に関する記事には誇張表現が多い
チケットの問題は簡単に解決できる
悪い会社で働きながら、良い人間でいることはできない
TicketMaster の実際の動作方式への疑問
携帯電話を使わなければショーに入場できないのは問題だ
イベントでインターネット接続が必要なのは問題だ