
Crittanalisi di un sistema DRM video proprietario del 1999. Recupera 61 video di wrestling criptati dal CD-ROM WCW Internet Powerdisk attraverso analisi binaria statica e attacco a testo chiaro noto.
Crittoanalisi di un sistema DRM video proprietario del 1999, recuperando 51 minuti di contenuti persi attraverso analisi binaria statica e attacco a testo noto.

Fotogramma da una partita "CyberRing" recuperata. I wrestler WCW furono filmati su schermo blu e compositati in un'arena CGI con effetti di fuoco. Ecco com'era l'intrattenimento interattivo del 1999.
Il WCW Internet Powerdisk era un CD-ROM promozionale distribuito con la rivista WCW Magazine nel 1999. Conteneva 61 clip video (momenti salienti delle partite, profili dei wrestler, introduzioni degli show) crittografati con un sistema proprietario chiamato PAVENCRYPT, sviluppato da un'azienda chiamata UIT.
La riproduzione richiedeva il lettore ULI incluso, che recuperava le chiavi di decifratura per file da un server remoto in fase di esecuzione. Quando l'infrastruttura del server UIT è andata offline intorno al 2000, il contenuto è diventato permanentemente inaccessibile. Il lettore mostrava solo:
"Chiave di decifratura non trovata nel database del server"
Non esistono chiavi sul disco. Nessuna documentazione del formato è mai stata pubblicata. UIT sembra essersi completamente sciolta. Per 25 anni, il contenuto non è stato riproducibile.
I nostri risultati di reverse engineering sono corroborati dal accordo di licenza originale del 1999 depositato presso la SEC, che descrive il "Programma generatore di chiavi lato server" che crea "chiavi di sicurezza basate sul tempo."
I video recuperati sono disponibili su Internet Archive:
https://archive.org/details/wcw-cyberring-powerdisk-1999
61 clip per un totale di 51 minuti e 20 secondi, convertiti in H.264/AAC MP4. Contenuto originale prodotto da WCW (Turner Broadcasting). La proprietà intellettuale è ora detenuta dalla WWE.
# 1. Extract the ISO
7z x WCW_R1.ISO -oiso_contents
# 2. Decrypt all PAV files to MPEG-1
python decrypt_pav.py
# 3. Convert to MP4 (optional, requires ffmpeg)
python convert_mp4.py
Requisiti: Python 3.6+ (nessun pacchetto di terze parti). ffmpeg per la conversione opzionale in MP4.
Ogni file .PAV è crittografato con un cifrario a sottrazione di byte con chiave ripetuta:
plaintext[i] = (ciphertext[i] - key[i % key_length]) mod 256
Le chiavi sono uniche per file, da 8 a 24 byte di ASCII stampabile, generate casualmente al momento della codifica. La routine di decifratura risiede all'interno di PavSource.ax, un filtro sorgente DirectShow da 24 KB costruito nell'aprile 1999:
mov cl, [ebx+edx+0x3C] ; load key[key_index]
sub byte ptr [eax], cl ; plaintext = ciphertext - key_byte
Nessuna forza bruta. Nessuna emulazione. Nessun server. Le chiavi sono recuperate matematicamente:
I file MPEG-1 terminano con byte noti. La coda del file contiene padding 0xFF seguito dal Program End Code (00 00 01 B9).
Una chiave ripetuta su una costante produce uno schema ripetuto. La coda crittografata ha una periodicità rilevabile pari alla lunghezza della chiave.
Il recupero della chiave è algebrico. Dato il testo in chiaro noto, possiamo derivare key[i] = (ciphertext[i] - 0xFF) mod 256.
La verifica è strutturale. L'output decifrato deve iniziare con un valido MPEG-1 Pack Start Code (00 00 01 BA).
L'intero attacco viene eseguito in secondi senza input esterni.
┌─────────────────────────────────────────────────┐
│ Magic "PAVENCRYPT" (10 byte) │
├─────────────────────────────────────────────────┤
│ Anteprima MPEG-1 non crittografata (16-32 KB) │
│ 2 fotogrammi video, nessun audio (serve come │
│ miniatura) │
├─────────────────────────────────────────────────┤
│ Flusso programma MPEG-1 crittografato │
│ Chiave di sottrazione per file, 8-24 byte │
│ │
│ Video: 320×240, 30fps, ~1,29 Mbps │
│ Audio: MP2, 44,1 kHz, mono, 64 kbps │
└─────────────────────────────────────────────────┘
61 clip che coprono il roster WCW di fine 1999:
decrypt_pav.py Decifratore: recupero chiavi + decifratura in MPEG-1
convert_mp4.py Transcoder: elaborazione batch MPEG-1 in H.264/AAC MP4
analyze_pav.py Ispettore: analisi non distruttiva della struttura PAV
PavSource.ax Binario originale del filtro DirectShow (reverse engineering)
UlPlayer.exe Applicazione originale del lettore ULI
FINDINGS.md Report tecnico: specifiche formato, disassemblaggio, tutte le 61 chiavi
TIMELINE.md Metodologia di reverse engineering, passo dopo passo
docs/PRIMARY_SOURCES.md Documento originale SEC del 1999 che documenta il sistema di crittografia
Questo strumento funziona su qualsiasi file in formato PAVENCRYPT. Il lettore ULI è stato concesso in licenza a molti distributori di contenuti alla fine degli anni '90. L'attacco si generalizza a qualsiasi cifrario a chiave ripetuta applicato a un formato di file con pattern di byte prevedibili, il che descrive la maggior parte degli schemi DRM proprietari di quell'epoca.
| Categoria | Conteggio | Punti salienti |
|---|
| Filmati di partite | 9 | Hogan vs. Goldberg, Hogan vs. Macho Man, partite CyberRing |
| Biografie wrestler | 13 | Goldberg, Sting, Hogan, DDP, Flair, Nash, Steiner |
| Introduzioni show | 5 | Monday Nitro, Thunder, Surge |
| Segmenti di trama | 8 | Narrazione seriale "Hacker" |
| Promo e merchandising | 9 | Magliette e spot pubblicitari dei wrestler |
| Altri segmenti | 17 | Nitro Girls, partite Nasty Boys, Rey Mysterio, Konnan |