世界を動かす技術を、日本語で。

クエイク・シェアウェア、少しだけ詰まりすぎたCD-ROM

概要

  • 1996年、id SoftwareはQuakeのシェアウェアCDをリリース
  • CD-ROMの大容量を活かし、複数ゲームを暗号化収録
  • 電話認証によるアンロック方式を導入
  • しかし、ハッカーによる即時クラックで失敗に終わる
  • 多数の技術的・運用的な問題が明らかに

Quake シェアウェアCDの実験と失敗

  • 1990年代半ば、PC向けの最新ガジェットは CD-ROMドライブ

    • 640MiBの容量は当時のHDDの3倍
    • 高解像度写真、VOCサウンド、12fpsの短い動画再生が可能
  • ゲーム開発者 にとってCD-ROMは資産量を大きく上回るメディア

    • 一部タイトルは フルモーションビデオ や高音質音楽を収録
    • id Softwareの John Carmack も「CD版DOOMはゲーム+特典映像」と冗談
  • Quake 開発完了時、シェアウェア版は22MiBのみ使用

    • 残りの容量で過去作を暗号化して収録
    • 電話注文で即時アンロック可能な仕組みを導入
  • 販売開始 は1996年8月30日、価格は$9.95

    • CompUSA等で販売、パッケージはシェアウェア明記
    • 電話番号によるアンロック手順を案内
  • アンロック手順

    • GUIで「QUAKE UNLOCK」選択
    • チャレンジコード(CHALLENGE)を電話で伝達
    • 支払い後、アンロックコード(SERIAL)を受け取り入力
    • チャレンジコードは毎回変化し、再利用不可
  • 技術的背景

    • TestDrive Corp.のツールでEXEを「無効化」し.MJ3に変換
    • 元のEXEヘッダを暗号化して.ST3に保存
    • アンロック時、SERIALにより元EXEへ復元
  • 重大な脆弱性

    • GNOMONグループが39日後にQCRACK.EXEを公開
    • FLOW.EXE自体がSERIAL生成ロジックを内包
    • CHALLENGEからSERIALを自動算出可能
    • セキュリティは「難解化」依存で、実質的な秘密鍵なし
  • 追加の問題点

    • FINAL DOOMのアンロックバグ(SKU.17のtypo)
    • 暗号化ファイルの平文コピーが同梱
    • 不要なテンポラリや開発残骸ファイルも収録
    • ライブラリフォーマットも単純で解析容易
  • 運用面の失敗

    • ハックにより無料アンロックが普及
    • 15万枚のCDが売れ残る
    • アンロックセンターの機能停止、電話番号は別用途に転用

Quake シェアウェアCD事件の教訓

  • 新技術導入 時のセキュリティ設計の重要性
  • セキュリティバイオブスキュリティ (難解化)の限界
  • 流通・サポート体制 の検証不足
  • 正規購入者より不正利用者が得をする 状況の発生
  • 開発スケジュールの圧力 による品質低下

参考文献

  • MediaPack 10-CD Roms
  • Quake' Is Here
  • Masters of Doom(David Kushner)
  • gnomon.nfo
  • rmolina, Quake, TestDrive y Qcrack
  • rec.games.computer.quake.misc(Usenetアーカイブ)

Hackerたちの意見

NINのサウンドトラックのためにQuakeのシェアウェアディスクを手に入れる価値はあるよ。数年前にアナログ盤が出たおかげで、公式のトラック名も手に入ったしね。これがサウンドトラックの唯一のCDリリースなんだ。ただ、トラック1はスキップするのを忘れないでね。

すべてのQuakeリリースには同じサウンドトラックが含まれてるから、シェアウェア版だけじゃないよ ;) こういうCDは野良でたくさん出回ってるし、シェアウェア版も完全購入版もあるからね。

データトラックはあんまり良い音しないよね。ちょっと工業的すぎるかな。

NINとiDが、30周年を記念してビニールレコードセットを再リリースしたみたいだね。

「トラック1をスキップするのを忘れないでね。混合モードセッションだけじゃなくて、QuakeのCDの音声トラックはプリエンファシスでマスタリングされてるから、リッパーやプレーヤーがそれに対応するディーエンファシスEQを適用しないと正しく聞こえないよ。」1996年は、プリエンファシスでマスタリングされたCDを見つけるにはちょっと遅すぎる年だったんだ。主に80年代のものだったからね。https://www.studio-nibble.com/cd/index.php?title=Pre-emphasi... その時期にはもう一般的に使われていなかった技術だし、Quakeにはサブコードにプリエンファシスのメタデータがフラグされてるけど、TOCにはフラグされてないから、Exact Audio Copyみたいなソフトウェアプレーヤーやリッパーはそれを無視しちゃうんだ。https://wiki.hydrogenaudio.org/index.php?title=Comparison_of... これがサイドバイサイドの比較だよ — 自分のMacSoft版QuakeのEACリップ(左)と、同じファイルのsox_ng deemphの出力(右): https://i.ibb.co/9m18CSsk/Emi-2026-08-17-18-52-48.png もし興味があれば、これがプリエンファシスのサブコードチャネルQフラグと、Red Book標準で説明されているプリエンファシス周波数応答、そしてそれを解除するためのsox_ngのコードだよ:― https://audio-union.com/wp-content/uploads/2023/02/Red-Book-... ― https://audio-union.com/wp-content/uploads/2023/02/Red-Book-... ― https://codeberg.org/sox_ng/sox_ng/src/branch/main/src/deemp... でも、もし誰かが30年間知らずにプリエンファシスされたトラックを聴いてたら、もしかしたら「間違った」方が彼らには正しく聞こえるのかもね? :)

ああ、CompUSAとComputer Cityの写真を見ると懐かしいな。あそこでかなりの時間を過ごしたよ(7300がメインのMacだった頃、CompUSAの「Appleストア」はソフトウェアの主な調達先だった)。多分、あの無料のComputer Cityのフロッピーディスクもどこかの引き出しにまだ残ってるはず。

ハハ、シェアウェアディスクを買って、そこに入ってたゲームを全部アンロックしたのを覚えてるよ。それにサウンドトラックも付いてて、結構良かった。

PS1のゲームみたいに、オーディオCDとしてちゃんと動いたの?

すべてのCDが異なるキーで焼かれない限り、これを機能させる方法はあったのかな?

CDのバージョンをn個(16とか32とか)用意して、n個の復号キーを持つってのはどう? 購入者が電話越しにコードを言うと、販売員が使ってるプログラムがその番号に基づいてどのキーが使われてるかを特定できる。ハッカーグループは、いろんなCDを見つけるのにちょっとイライラするだろうね。

PC用のハードウェアシリアル番号システムと、アンロックに使われるシリアル番号が偽造されていないかを確認するためのセキュリティインフラが必要だね。そうすれば、PCごとのアンロックができるようになる。でも、Quakeの時代にはそんなものは広まってなかったと思う。今では、どんなコンピューターデバイスにも多分ユニークなIDがROMに焼き込まれてるけどね。

何かの公開鍵暗号方式と、変更が難しいローカルデバイスの特徴をチャレンジに含める感じかな。

Hacker Newsで議論の続きを見る