Dopo avervi parlato del primo metodo “anti-pirateria” contro le applicazioni AppStore crackate, sul quale qualche utente aveva dei dubbi, ecco che arriva la prima applicazione che ha attivato tale servizio, rendendo la stessa inutilizzabile per l’utente “pirata”.
Si tratta dell’applicazione GP Race. Gli sviluppatori hanno deciso di “attivare” la blacklist e lo screenshot, inviato da un utente di Darkapple, dimostra la veridicità della notizia che vi abbiamo dato questa mattina.
Gli stessi sviluppatori fanno sapere che nel solo ultimo week-end hanno raccolto più di cento UDID di iPhone sui quali era installata una versione pirata del programma. Quasi tutti gli UDID provengono da utenti italiani.
Darkapple ha spiegato in dettaglio cosa significa blacklist (trovate l’articolo completo qui):
La BlackList nasce da una “Developer Alliance”: per far fronte al dilagare di App cracckate, visto che Apple pur avendo gli strumenti pare decisa ad ignorare la questione, un gruppo di Developer ha deciso di mettere in piedi un sistema di BlackList che, pur rispettando i paletti imposti da Apple nella distribuzione delle App via AppStore, fosse in grado di garantire un sufficiente margine di “non-cracckabilità” delle proprie Applicazioni.
Questo risultato è stato raggiunto implementando un sistema ispirato ad ORBS/RBL, che è un servizio GRATUITO al quale si appoggia larga parte dei Mail Server che permette di avere in tempo reale una lista di IP “cattivi”, ovvero IP dai quali è stato registrato l’invio di SPAM.
In questo caso succede la stessa cosa: se uno è “cattivo”, ovvero ha cracckato o usato un’App cracckata, il sui DUID finisce in questa blacklist, insieme all’App crackata e alla versione dell’App. Questo significa, per fare un esempio pratico, se voi avete cracckato o usato la versione crackata di GP Race, gli autori lo sanno, e, oltre a non erogare il servizio offerto dall’App, se lo scrivono, e in caso voi lo rifacciate ancora con un’altra versione (un’ipotetica 1.2) loro sapranno anche quello, percui se volete “whitelistare” il vostro iPhone dovrete necessariamente comprare l’App, altrimenti il vostro iPhone rimarrà Blacklistato.
Ora ci sono diversi modi in cui questo sistema può essere implementato: uno può vedere se il DUID è blacklistato e anche se non lo è per la propria app, rifiutarsi di erogare il servizio a prescindere, mentre altri potrebbero scegliere di rifiutare di far funzionare l’App solo se il DUID risulta essere blacklistato per App della stesso autore. Insomma, c’è piena libertà di utilizzo da parte dei Developer.
Veniamo alla parte “sugosa”: in pratica l’App – che viene distribuita “monca” – non può funzionare fino a quando non contatta il server al momento dell’installazione o della prima esecuzione. il server ne verifica l’integrità e se è tutto OK, gli passa la parte mancante, che è DIFFERENTE per ogni iPhone, essendo crittografata con una chiave RSA generata dal server e univoca per ogni DUID.
Vediamo cosa è successo con GP Race, sempre per usare con un esempio pratico: il Cracker ha patchato l’APP, si è fatto blacklistare il DUID, e poi, credendo che funzionasse (lui la chiave l’aveva ottenuta, perchè ha PAGATO l’App la prima volta, l’ha distribuita ai bimbiminkia pezzenti, che si sono fatti TUTTI BlackListare).
Ora, perchè questo sistema è “ragionevolmente sicuro” e rende vano qualsiasi tentativo di crack?
1 – intanto il Cracker ora si è fottuto il DUID, percui ormai per cracckarla e testarne il funzionamento o usa un altro iPhone, o ce l’ha al culo, perchè il suo DUID è blacklistato e non funzionerà MAI più.
2 – è il server, e non l’APP che invia la parte mancante dell’APP crittografata con una chiave univoca, percui valida per UN SOLO DUID. In questo modo uno può patchare fino a che gli pare, ma se gli manca una parte di codice ci fà ben poco.
3 – l’utilizzo del DB e il Framework di protezione utilizzano tecniche di “code obfuscation”, e l’implementazione all’interno dell’App è assolutamente discrezionale: ci sono DECINE di metodi di check all’interno dell’App, sono nascosti, e anche a patcharli tutti comunque rimane sempre il problema che senza la parte di programma crittografata con la chiave generata dal server e SUL SERVER non si fà una mazza.
4 – il sistema raccoglie SOLO i DUID che si presentano con l’App Cracckata. Ci sono 5 livelli di check, è virtualmente impossibile che un’App si presenti “male” e che venga dichiarata cracckata (leggasi: IP Blacklistato per errore), e in ogni caso basta contattare l’Autore e si viene whitelistati immediatamente, ovviamente a meno che nel DB non siano segnalati altre App utilizzate a sbafo, percui il famoso “debito regresso” indica proprio questo: se vuoi essere whitelistato devi pagare TUTTE i programmi per i quali sei blacklistato.
5 – evitiamo per cortesia di dire cagate riguardo alla privacy: come ho detto prima SOLO i DUID dei bimbiminkia pezzenti vengono blacklistati. Qualcuno di questi che hanno PALESEMENTE utilizzato un’App pirata, magari da 0.75 €, ha forse intenzione di andare a fare una denuncia per violazione della privacy?
6 – in ogni caso Apple autorizza gli sviluppatori a raccogliere informazioni sui device per fini statistici, e grazie a questo “statisticamente” lo prendi in c**o se usi un’APP Cracckata.
7 – c’è chi farnetica dicendo che impedire all’APP di contattare i server con le blacklist e/o fare un programma che giri in background che fornisca un DUID “fake”: siamo sempre punto e a capo. se ti manca il pezzo di codice e la chiave RSA a 1024 bit la cui certification authority è sui server che non vuoi contattare, come pensi di farla funzionare l’App? Specie se poi impedisci all’App di contattare i server che ti erogano il servizio stesso… delirante, oltre che una tecnoputtanata.
8 – il sistema di BlackList è “silente”, e può venire attivato in qualsiasi momento sul server: in questo caso i ragazzi di Minimal6 ci hanno detto che hanno attivato il sistema 10 minuti prima dell’inizio delle gare della 125, così si sono divertiti a guastare la festa a chi voleva scroccargli il servizio. Non possiamo che applaudirli.
Insomma, l’era della pirateria su iPhone sta finalmente per finire?
UPDATE.
Nuovo articolo comparso su darkapple che spiega, sempre più nel dettaglio, come funziona la blacklist. Interessanti questi passaggi:
“Le app con questo genere di protezione sono virtualmente pilotabili da remoto: ora se – ad esempio – GP Race 1.1 vi stà funzionando non crediate che sia perchè il vostro pusher di IPA abbia fatto un buon lavoro, ma semplicemente perchè (come confermato dai ragazzi di Minimal6) il sistema è tornato silente dopo la fine della MotoGP e stà implacabilmente raccogliendo i vostri UDID o DUID che dir di svoglia. Ne riparlemo quando il bottone verrà schiacciato di nuovo”
“Il sistema viene usato in modo totalmente discrezionale dai developer: c’è chi raccoglie gli UDID e se ne stà zitto zitto (lo fà per fini principalmente statistici), e chi invece usa quest’informazione come un’arma contro il Device. Forse non era chiaro il discorso del “debito regresso”, ma in pratica funziona in questo modo: se avete cracckato 5 APP di una stessa casa e decidete di comprarne una per “sanare” la vostra posizione, sappiate che dovrete pagare anche le altre 4 di cui è stato tracciato l’utilizzo pirata. Se non lo fate, il vostro Device continuerà ad essere Blacklistato.”
Si ringrazia l’utente Christian per la segnalazione.