1. A breve aggiorneremo la piattaforma di Reboot per risolvere alcuni problemi con i plug-in, quindi chiediamo ancora un po' di pazienza, Lo staff di Reboot

LE PROTEZIONI NELLE CONSOLES - ATARI 7800

Discussione in 'Altre piattaforme' iniziata da student, 26 Set 2018.

  1. student

    student Staff Livello 45 Staff

    Iscritto:
    30 Ago 2015
    Messaggi:
    4.826
    Like ricevuti:
    4.988
    [​IMG]
    Chiamato per esteso Atari 7800 ProSystem e con nome in codice pre-rilascio di "MARIA", questa console fu immessa nel mercato tra il 1986 ed il 1987 come successore del Atari 5200 (sistema privo di protezioni).

    [​IMG]

    Il suo prototipo fu l'Atari 3600, numero scelto perchè più grande del precedente Atari 2600;
    [​IMG]
    successivamente, viste le grandi migliorie rispetto al suo predecessore, venne deciso di adottare il numero 7800; il numero deriva dal Atari 2600 (audio) + Atari 5200 (grafica) = 7800 e cioè console con audio del 2600 e grafica del 5200 :smile:. Il suffisso "Pro" deriva dal fatto che utilizzasse il controller "PRO-LINE".


    Retrocompatibile con il precedente Atari 2600 (mentre il 5200 non lo era!) ebbe un inizio travagliato: annunciato inizialmente nel 1984, anno in cui la Warner vendette Atari a Jack Tramiel, fu messa in stand by perchè l'azienda esterna che aveva progettato e che produceva fisicamente la console, la General Computer Corporation (GCC), non era stata pagata per la commissione in quanto non si capiva chi lo dovesse fare (Warner o Tramiel) a causa della cessione; finì per farlo Tramiel nel 1985, assieme ad un accordo per far produrre dalla stessa azienda una dozzina di titoli, e l'anno successivo il 7800 riuscì finalmente ad uscire nei negozi.

    Pochi titoli rilasciati, circa 100, ma la compatibilità con il 2600 aiutò a fatturare denaro; la grafica era molto buona per l'epoca grazie al nuovo chip grafico chiamato "MARIA" (nome in codice GCC1701 da bravi appassionati di Star Trek!) ma la pecca della console era il chip audio, lo stesso del 2600, migliorato da alcuni programmatori inserendo direttamente nelle cartucce di gioco il chip POKEY del 5200 che non fu inserito dentro alla console perchè il case sviluppato per il PCB definitivo era troppo piccolo per includerlo !

    Alcune unità, fuori dagli USA, vennero vendute con Asteroids incluso nel BIOS di sistema mentre altre con una cartuccia 32in1 contenente giochi 2600; i giochi PAL non sono compatibili con gli NTSC e viceversa per problemi legati alla differente gestione della codifica video.


    High Score Cartridge

    [​IMG]
    Atari aveva in progetto, sempre con la GCC, anche una cartuccia per salvare i record ma le vicissitudini della compagnia ne fecero abbandonare il progetto che restò solo un prototipo... finchè nel 1999 Curt Vendel incontrò Gary Rubio, un ingegnere di grado elevato della GCC e, discutendo del suo ruolo nella azienda, decisero di provare a costruire insieme un lotto di cartucce funzionanti da poter distribuire a minimi costi (queste cose le fanno solo i veri appassionati !!); nacquero così, 17 anni dopo la fase di ideazione, le prime cartucce che permettevano di salvare gli high scores sul Atari 7800 !
    [​IMG]



    SISTEMA DI PROTEZIONE

    [​IMG]
    Come alcuni di voi già sapranno nel 1983 ci fu una crisi del mercato dei videogiochi; una delle cause fu la diffusione di titoli di scarso valore pubblicati senza pagare le royalties alla Atari a causa della mancanza di sistemi di protezione che pian piano allontanò la massa dei giocatori da questi sistemi di gioco; uno di questi, Custer's Revenge, per Atari 2600, era sostanzialmente un gioco dal contenuto per adulti che non fu ben visto da tutti al suo debutto tanto da essere alla fine ritirato dai negozi.

    Date le capacità grafiche nettamente migliorate del 7800 la ipotetica diffusione di titoli a tripla X per questa console aveva intimorito non poco i responsabili di Atari che decisero di implementare sistemi di protezione per evitare sia questo problema che, più in generale, quello dei giochi distribuiti senza licenza.

    Quando una cartuccia è inserita nello slot del 7800 infatti il BIOS della stessa calcola una firma digitale che viene confrontata con quella contenuta nella cartuccia: se questa firma non corrisponde la console parte in "modalità Atari 2600" disabilitando l'accesso al chip MARIA, altrimenti parte in modalità 7800.

    Questo sistema di firma digitale curiosamente manca nei sistemi 7800 PAL i quali utilizzano altri sistemi per capire se è inserita o meno una cassetta del 2600; il motivo è probabilmente legato a restrizioni sull'export di sistemi con integrata sofisticata codifica digitale.

    La protezione di questi giochi non è dunque una criptazione (i dati della ROM sono infatti in chiaro) ma una autenticazione dei dati (firma digitale) che viene aggiunta in cima alla ROM come una sorta di "security header".

    Questa firma digitale è di 960bit (una cosa che non si era mai vista nemmeno nei sistemi di protezione militari); come è stato dunque possibile averne ragione ?

    Negli ultimi mesi del 1998 nella mailing list di Stella (emulatore Atari 2600) ci fu un lungo brainstorming sull'algoritmo di cifratura utilizzato ma, nonostante gli sforzi, l'algoritmo completo non fu identificato.

    Nel Agosto del 2001 però gli organizzatori del Classic Gaming Expo rilasciarono l'utility originale di Atari (programmata per girare sotto Atari ST) che serviva a generare il codice di verifica (eseguita dal programma Encrypt.ttp):
    [​IMG]
    I ragazzi che la rilasciarono la scovarono all'interno di un hard disk di un Atari ST fornito loro da un ex impiegato della Atari e grazie all'aiuto di Glenn Brunner, tecnico ed appassionato Atari, riuscirono a farlo funzionare ed a reversarlo.

    La procedura di codifica utilizzando i tools originali era molto complessa ma il grande coder Frank Palazzolo (ad alcuni di voi il nome ricorderà qualcosa perchè è un MAME Dev di vecchia data) produsse la sua versione da riga di comando user-friendly chiamandola A78SIGN.EXE:
    [​IMG]
    Durante il suo sviluppo si scoprì che la funzione utilizzata è la Rabin Signature dove P e Q, costanti che NON si trovano nel BIOS, sono le agognate key private (vedi oltre) !

    Dalla release di questo programma (15 Agosto 2001) è finalmente possibile firmare le ROMs per il 7800 come se fossero prodotte in licenza dalla Atari !

    Volete sapere nel dettaglio come funziona la firma digitale del 7800 ? Ve lo spiega direttamente Palazzolo nel suo sorgente di A78SIGN (occhio, ciò che segue è una spiegazione ad alto tasso di matematica !):
    ////////////////////////////////////////////////////////////////////////////
    //This program can validate and generate a digital signature
    // based on the the scheme used for the Atari 7800
    // The method used by Atari is called a "Rabin Digital Signature",
    // and essentially described here:
    //
    // Signing:
    // --------
    //
    // Atari chose 2 prime numbers, P & Q, as their secret key to be used
    // for signing. P and Q also satisfy P mod 4 = 3, and Q mod 4 = 3.
    // N = P*Q is used in the algorithm also.
    //
    // To sign a cartridge a hash algorithm H() is run over a large section of
    // the cart, generating a hash code Y
    //
    // Then, the signer attempts to calculate X where Y = X^2 mod N, based on
    // knowledge of P and Q.
    //
    // For some values of Y, it is mathematically impossible to compute an X,
    // So trial Y values are attempted, changing the 5th byte of the hash code
    // each time. The expected number of tries is 4.
    //
    // Once X is successfully calculated, it is embedded in the cart.
    //
    // Validating:
    // -----------
    //
    // The 7800 bios contains N and H(). At startup, the bios calculates a hash
    // of the cart (Y), along with X^2 mod N. These two values are compared,
    // taking into consideration that byte 5 is probably different between the two,
    // because of the randomization done at signing time.
    //
    // General notes:
    // --------------
    //
    // Computing X from Y is equivalent in difficulty to factoring N. However,
    // knowledge of the factors P and Q allow you to calculate X via the following
    // formula:
    //
    // X = ((A * (Y^((P+1)/4) mod P) + (B * (Y^((Q+1)/4) mod Q)) mod N,
    //
    // where:
    // A = Q*(Q^-1 mod P), and
    // B = P*(P^-1 mod Q)
    //
    // Note that there are 2 other solutions for X, but they were not used by Atari
    // at signing time
    //
    // References:
    // -----------
    //
    // M. Rabin, "Digitalized Signatures and Public-Key Functions as Intractable
    // as Factorization", MIT Technical Report, MIT/LCS/TR-212, 1979.
    //
    // See also:
    // ---------
    //
    // B. Schneier, "Applied Cryptography, 2nd Edition", Wiley, 1996.
    // (several references to Rabin and Quadratic Residues)
    //
    ////////////////////////////////////////////////////////////////////////////


    CONCLUSIONI

    Algoritmi complessi in sistemi di ultima generazione... i sistemi di gioco di oggi seguono ancora questa filosofia per proteggere i loro contenuti integrando vari sistemi di verifica ma nelle successive generazioni di consoles l'accuratezza nel preservare l'origine del processo di codifica (le keys private) ha reso obbligatorio l'utilizzo di sistemi di bypass in grado di superare la mancata conoscenza di questi segreti ed è quindi iniziata la corsa alla ricerca di exploits sia software che hardware i quali nel tempo hanno permesso comunque di averla vinta anche se con alcuni compromessi come ad esempio l'invalidazione della garanzia, la mancata possibilità di giocare online pena il ban della console oppure l'impossibilità di ricevere aggiornamenti pena sempre il ban. Un vero peccato che Atari abbia smesso di produrre hardware di gioco !
     
    #1
    Ultima modifica: 4 Dic 2018
    A vValerio pPisano 2.0, Toad882, iostream e 5 altri utenti piace questo elemento.
  2. IlVampirelloXY

    IlVampirelloXY Livello 17

    Iscritto:
    3 Feb 2016
    Messaggi:
    784
    Like ricevuti:
    362
    Notti insonni .. visto l'orario della publicazione?
     
    #2
  3. student

    student Staff Livello 45 Staff

    Iscritto:
    30 Ago 2015
    Messaggi:
    4.826
    Like ricevuti:
    4.988
    Notti malate purtroppo...
     
    #3
  4. IlVampirelloXY

    IlVampirelloXY Livello 17

    Iscritto:
    3 Feb 2016
    Messaggi:
    784
    Like ricevuti:
    362
    Azz.… Mi spiace
     
    #4
    A student piace questo elemento.
  5. student

    student Staff Livello 45 Staff

    Iscritto:
    30 Ago 2015
    Messaggi:
    4.826
    Like ricevuti:
    4.988
    Il lato positivo è che... posso dedicarmi un po'ai miei hobbies :smile:
     
    #5
Sto caricando...

Condividi questa Pagina