# Gbox

Gbox è un plugin per ricevitori satellitari con architettura ibm PowerPC basati sul SO Enigma, che permette la decodifica delle emittenti crittate e la visione delle stesse.

## Modalità operative

Gbox può utilizzare tre modalità operative: cardreader, EMU, e client/server per card sharing usando il protocollo gbox.

### CardReader

La funzione di cardreader permette agli slot dei decoder la lettura delle smart card dei vari operatori satellitari nei più diffusi standard. Essendo il supporto del gbox ormai fermo da diverso tempo non è in grado di leggere le ultime versioni delle smart card. Per leggere anche queste ultime si può però appoggiare ad altri cardreader, il più importante dei quali è NewCS.

### EMU

Quando il Gbox funziona in modalità EMU esso emula delle “card virtuali” attraverso l'uso dell'algoritmo di crittazione e delle chiavi. Questa modalità operativa molto utilizzata nel passato per vedere le trasmissioni TV crittate senza regolare abbonamento è diventata ormai quasi inutile per questo plugin, sia grazie alla continua evoluzione degli standard di sicurezza delle codifiche, sia a causa della mancata evoluzione del Gbox.

### Cardsharing

Quando il Gbox funziona come client server per card sharing esso è in grado di sfruttare smart card che si trovano in rete locale o su internet come se fossero realmente inserite dentro lo slot del decoder. La possibilità di ricondividere non solo le smart card presenti nel proprio decoder ma anche quelle provenienti da altri decoder inseriti nella propria rete permette di avere a disposizione moltissime smart card che coprono la quasi totalità delle emittenti. Per utilizzare questa modalità è fondamentale che il decoder sia connesso a un switch di rete nel caso di condivisione in locale oppure a un router nel caso di condivisione attraverso internet.
Un ciclo di decodifica si può così schematizzare:
* Il decoder si sintonizza su di un canale e inizia a ricevere gli ECM necessari alla smartcard per creare la chiave di decodifica
* Gbox cattura questi ECM e li manda attraverso la rete a tutte le smart card abilitate a quella codifica (gli ECM possono viaggiare di decoder in decoder fino ad arrivare a quello in cui è presente la smarcard)
* Gli ECM arrivati al decoder con smart card valida vengono processati dalla stessa che restituisce la chiave di decodifica CW (Constant word)
* LA CW viaggia a ritroso nella rete fino a tornare al decoder che aveva fatto richiesta
* A questo punto grazie alla chiave il decoder può decodificare il canale e permetterne la visione
Tutto questo ciclo viene ripetuto ogni volta che cambiano gli ECM e quindi anche le chiavi del canale, un tempo che varia da codifica a codifica. Inoltre il fatto che le uniche informazioni che vengono scambiate attraverso la rete sono ECM e CW, delle dimensioni di pochi byte, permette un utilizzo della rete irrisorio.
Ciascuna scheda della rete viene identificata in modo univoco da un codice da quattro cifre esadecimali, sono inoltre presenti quattro cifre per il CAID da cui si può dedurre il tipo di codifica e da altre 4 cifre ID per identificare l'emittente televisivo. Una carta è caratterizzata anche: dalla distanza che rappresenta il percorso più breve che connette il decoder oggetto col decoder in cui è presente la scheda e il livello che indica a quanti livelli si può ricondividere la carta.
Esempio: se una scheda ha livello 2 la posso ricondividere con tutti i miei contatti che a loro volta la possono ricondividere con i propri.
I problemi che si possono avere con questa modalità sono principalmente 2:
* La presenza nella rete di schede non valide (scadute, fake o in disuso). Per arginare il problema è possibile utilizzare un apposito file di nome ignore.list contenente gli ID delle schede fake o in disuso che verranno quindi ignorate dal Gbox, oppure grazie alle cosiddette Yline
* Un ping troppo alto dovuto all'eccessivo routing che gli ECM e le CW devono fare per arrivare alla smartcard e tornare. Questo può portare a freeze dell'immagine o anche all'impossibilità di decodificare il canale. Un possibile rimedio è implementare un delayer anche se questo comporta un maggior tempo per il cambio e la messa in chiaro del canale.

## Codifiche Supportate

Dal Gbox vengono gestite in almeno una delle sue modalità i seguenti standard di crittazione:
* Nagravision versioni 1, 2 e 3
* Viaccess versioni 1(non più usata), 2.3, 2.4, 2.5, 2.6, 3.0
* Mediaguard versioni 1, 2, 3
* Videoguard (NDS) versioni 1, 2 e 3
* Irdeto versioni 1 e 2

## Configurazione

Il Gbox viene configurato attraverso la modifica di 2 file: il gbox_cfg e il cwshare.cfg. Vengono utilizzati anche altri file opzionali quali:
* ignore.list che contiene tutti i CAID e gli ID che devono venire ignorati nella rete
* ident.info grazie a questo file è possibile associare ai vari CAID e ID i nomi delle emittenti televisive
* nds questo file è indispensabile per permettere al Gbox di leggere una scheda Videoguard

### gbox_cfg

Questo è senza dubbio il file più importante che configura tutte le funzioni del Gbox, permette di configurare la quasi totalità dei parametri relativi all'EMU e al cardreader dispone inoltre di una serie di opzioni per monitorare ECM, PIDS e EMM.

### Cwshare.cfg

Attraverso questo file è possibile impostare tutti i parametri per permettere al decoder di funzionare con server\client per cardsharing. È caratterizzato da una serie di linee che vengono generalmente chiamate con il nome della prima lettera: Dline, Mline, Gline, Yline, Iline, Wline, Nline, Xline.

## Portabilità

Il Gbox oltre all'architettura PowerPC è compilato anche per girare su MIPS e x86, il protocollo Gbox è stato inoltre implementato anche su decoder con core SH4 e anche su una moltitudine di decoder con firmware proprietario.

## Pirateria ed emittenti satellitari

Si ricorda che la visione di una trasmissione televisiva a pagamento senza avere un regolare abbonamento è reato.
Per correre ai ripari e rendere inutile le EMU le emittenti sostituiscono le smart card a cadenze regolari e le aziende del settore della cifratura creano nuove codifiche sempre più difficili da violare.
Il card sharing è un fenomeno più difficile da impedire anche in visione dell'esigua fascia di persone che ne fanno uso. Con l'aumentare del fenomeno però gli operatori satellitari stanno correndo ai ripari con codifiche che non permettano tale tecnica. Un esempio è il Viaccess 4 e 5 praha (Proactive Against Hacker Attacks) che implementano un marriage scheda\decoder per impedire che vengano decodificati gli ECM provenienti da altri decoder.