En 1996, un CD-ROM avait un drôle de problème : il pouvait contenir beaucoup plus de logiciel que certains jeux n'en utilisaient.
La récente autopsie du CD shareware de Quake par Fabien Sanglard part de ce décalage. Un CD offre environ 640 Mio. Dans sa reconstruction, Quake en occupe autour de 22.1
id Software et ses partenaires de distribution transforment l'espace restant en magasin.
Le disque est vendu moins de dix dollars et, une fois dans votre lecteur, il contient déjà bien plus que la version shareware de Quake : plusieurs jeux du catalogue id sont là aussi, verrouillés. Vous appelez un numéro, vous payez, on vous dicte un code, et le logiciel que vous venez d'acheter n'a même pas besoin d'être livré puisqu'il était chez vous depuis le début.14
Pendant un court moment, le CD est à la fois support de livraison et serveur de contenu local.
Puis quelqu'un remarque que le verrou sait lui-même fabriquer sa clé.
La bande passante la moins chère consistait à tout mettre sur le disque
Le système devient beaucoup plus logique si l'on reste mentalement en 1996.
Télécharger quelques dizaines de mégaoctets peut représenter une longue session au modem. Le logiciel vendu en magasin réclame boîtes, disques, inventaire et rayons. Pendant ce temps, le CD dispose encore de centaines de mégaoctets inutilisés après Quake.1
L'idée commerciale est donc élégante : presser une seule fois un disque rempli de catalogue, le distribuer, puis transformer les achats suivants en codes plutôt qu'en nouveaux envois.
Un article de SFGate du 3 juillet 1996 décrit déjà ce modèle avant la sortie en magasin. Il annonce un CD avec une partie de Quake pour moins de 10 dollars et des codes supplémentaires achetables via le numéro 1-800-ID-GAMES.4
La copie conservée par Sanglard montre à quel point ce commerce reste matériel. L'emballage affiche les instructions téléphoniques. Différents SOURCE CODE semblent identifier des revendeurs comme CompUSA, Computer City ou Best Buy. L'interface contient un catalogue et une procédure de déverrouillage pour des jeux déjà présents sur le support.1
C'est un objet de transition assez parfait.
On achète des octets en magasin, puis on achète par téléphone le droit d'utiliser davantage d'octets.

Le challenge donne l'impression qu'un secret vient du serveur
L'interface de déverrouillage génère un numéro que Sanglard appelle le challenge. Le client le communique à l'opérateur. Après paiement, celui-ci renvoie un serial, ou code de déverrouillage.1
Le challenge change entre les exécutions et tourne pendant que l'interface reste ouverte. Des checksums limitent les erreurs pendant cette opération profondément humaine qui consiste à dicter des chiffres sur une ligne téléphonique.1
Pour l'utilisateur, cela ressemble à un système challenge-response classique.
L'ordinateur fabrique une valeur. Une autorité distante, censée posséder quelque chose que l'ordinateur n'a pas, la transforme en réponse valide. Le programme local vérifie cette réponse et ouvre l'accès.
Si le service distant détient réellement un secret absent du client, l'architecture peut être solide.
Tout dépend de ce dernier détail.

Le vérificateur était aussi capable de générer la réponse
Le système de protection repose sur un logiciel de TestDrive Corp. Sanglard décrit des exécutables dont une partie est « dénaturée », avec des informations séparées afin que le programme puisse être restauré après un achat réussi.1
Les jeux ne sont donc pas seulement cachés derrière un menu. Il existe bien une transformation et une procédure de déverrouillage.
Mais le serial lui-même n'apporte pas de secret extérieur.
La reconstruction de Sanglard et le reverse engineering de QCRACK.EXE publié par rmolina montrent que le programme local FLOW.EXE contient assez de logique pour calculer le serial attendu à partir du challenge.13
C'est la vraie erreur de frontière de confiance.
Le logiciel doit évidemment savoir vérifier le serial. Dans cette implémentation, il sait aussi produire la même valeur. Une fois cette logique comprise, le service téléphonique n'est plus techniquement nécessaire pour fabriquer une réponse valide.
Sanglard date la sortie de QCRACK.EXE par le groupe GNOMON à 39 jours après l'arrivée du CD shareware retail. L'outil automatise la génération du serial depuis le challenge.1
La faiblesse n'est donc pas « le chiffrement ne marche jamais ».
Elle est beaucoup plus précise : un secret ne peut pas rester extérieur si le client embarque tout ce qu'il faut pour le recréer.
Posséder physiquement les données change la gravité de la panne
Cette erreur de conception prend une dimension particulière parce que le catalogue verrouillé a déjà été distribué.
Lorsqu'un contrôle d'accès côté serveur casse aujourd'hui, il peut encore falloir récupérer les données protégées. Dans le modèle du CD Quake, l'étape coûteuse de livraison a eu lieu avant l'autorisation. Chaque acheteur possède déjà le payload verrouillé.1
C'était précisément l'avantage commercial.
Presser un CD plus rempli coûte moins cher et va plus vite que d'envoyer un second disque après chaque achat téléphonique. En contrepartie, toute la frontière de sécurité se retrouve dans le mécanisme local de déverrouillage.
Une fois cette frontière cassée, il n'y a pas de deuxième porte.
La capacité du CD fabrique donc à la fois l'idée commerciale et la gravité de l'erreur technique.
Le stockage excédentaire rend la prédistribution rationnelle. La prédistribution rend le contrôle d'accès local critique.
Une contrainte matérielle devient une architecture logicielle.
Le disque est un catalogue que l'on peut tenir dans la main
Internet Archive conserve aujourd'hui une image du Quake Shareware CD.2 Cela rend l'objet étonnamment facile à inspecter par rapport à de nombreux systèmes de commerce en ligne de la même époque.
Le catalogue n'est pas seulement un souvenir dans les archives internes d'une entreprise : vous pouvez encore le monter, le parcourir et voir exactement ce que le client de 1996 avait devant lui.
Sanglard peut reconstruire l'arborescence du disque, examiner les fichiers .MJ3 et .ST3, relancer l'ancienne interface et comparer le mécanisme avec les analyses publiées des années plus tard.13
Le CD gagne ainsi une qualité d'archive presque accidentelle.
Une boutique moderne peut retirer silencieusement un produit. Une API peut disparaître. Un serveur d'achat peut fermer. Le disque de Quake continue de transporter son modèle commercial bien après la disparition de l'opérateur téléphonique.
Sanglard appelle même l'ancien numéro. Il répond toujours, mais évidemment plus comme centre de déverrouillage d'id Software.1
L'infrastructure est morte. L'objet a gardé les preuves.

La préservation permet d'inspecter le modèle commercial, pas seulement de s'en souvenir
Le disque Quake est une preuve assez généreuse parce que plusieurs couches de l'ancien système sont encore accessibles en ligne. Internet Archive conserve l'image du CD, le billet de Sanglard publie des photos et des captures d'une copie survivante, et l'ancien travail de reverse engineering de rmolina documente la logique derrière QCRACK.123
Cette combinaison change beaucoup de choses. Un article de 1996 peut nous dire que le disque coûtait moins de dix dollars et que du contenu supplémentaire s'achetait par téléphone.4 L'image conservée permet aujourd'hui de monter le vrai support, d'examiner ses fichiers et de relancer l'interface, tandis que les billets techniques montrent ce que les chercheurs ont trouvé en démontant la protection.
L'histoire du logiciel doit souvent être reconstruite à partir d'annonces et de souvenirs parce que les services en ligne ont disparu. Ici, le support physique avait gardé une copie de la boutique, puis la préservation a remis cet objet en ligne bien après la mort de l'infrastructure commerciale.
Il reste un décalage assez amusant : le service téléphonique ne sait plus vendre le jeu, mais le disque montre toujours exactement ce que voyait le client ; le serveur de déverrouillage a disparu, mais le vérificateur local peut encore être étudié ; les magasins ont changé ou fermé, mais les photos de la boîte conservent les instructions imprimées autour du logiciel.
Acheter l'accès à des octets déjà chez soi a quelque chose de très moderne
Il est difficile de regarder ce CD aujourd'hui sans penser à des modèles de distribution ultérieurs.
Le détail technologique change, et il serait absurde de présenter TestDrive comme l'ancêtre direct de chaque système d'abonnement ou de licence moderne.
Le mouvement économique, lui, reste familier : séparer la distribution et l'autorisation.
Le fournisseur envoie à l'avance ce qui est lent ou coûteux à transporter, puis vend plus tard le droit de l'activer.
Cette architecture devient attirante chaque fois que copier ou livrer le contenu coûte plus cher que vérifier une permission.
En 1996, la partie lente consiste à déplacer des dizaines de mégaoctets entre magasins, CD et modems. Le canal d'autorisation est un appel téléphonique.
Aujourd'hui, le payload peut arriver pendant une installation et l'autorisation prendre la forme d'un jeton serveur. Le principe économique survit parce que l'asymétrie survit.

La sécurité doit vivre du côté auquel on fait réellement confiance
Le CD shareware de Quake donne une petite leçon de sécurité presque comique parce que sa frontière est très facile à voir.
L'utilisateur possède le disque. Tout programme présent sur ce disque doit donc être considéré comme inspectable. L'obfuscation peut ralentir le reverse engineering. Elle ne transforme pas une logique côté client en secret distant.
Si le paiement doit autoriser l'accès, une preuve critique doit dépendre d'une information ou d'une autorité que le client non payé ne possède pas.
Cela pourrait par exemple être une signature cryptographique créée avec une clé privée conservée par le service. Le client sait vérifier une signature sans savoir la fabriquer.
Le système de 1996 décrit par Sanglard laisse au contraire le client reconstruire la valeur qu'il est censé recevoir.13
L'emballage malin, le challenge tournant et les exécutables dénaturés ne réparent pas cette frontière.
Vous pouvez ajouter autant de couches que vous voulez autour d'un secret absent, il reste absent.
Le CD était trop rempli exactement de la bonne manière
Sanglard titre son article sur un CD-ROM « juste un peu trop rempli ». La formule fonctionne parce que les données supplémentaires n'étaient pas du remplissage accidentel.
La capacité inutilisée suggère un modèle commercial. Ce modèle exige un verrou local. Le verrou devient une cible de reverse engineering. Et puisque le catalogue a déjà été pressé sur des disques physiques et livré avant l'autorisation, casser la protection expose davantage que l'épisode shareware qui avait justifié l'achat.1
La leçon n'est pas qu'id aurait dû laisser son CD vide.
Précharger le catalogue était une réponse intelligente aux contraintes de distribution de son époque.
La leçon est ailleurs : lorsqu'un support physique permet d'expédier aujourd'hui l'achat de demain, le système d'autorisation devient une partie de l'ingénierie du produit, pas seulement de sa vente.
Trente ans plus tard, la ligne téléphonique a changé de vie et la plupart des magasins imprimés sur les autocollants ont disparu.
Le disque contient toujours le logiciel, la boutique et l'erreur.
