De-a lungul timpului pirateria software a fost folosita de multe companii de productie software ca scuza pentru folosirea (mai mult sau mai putin justificata) a unor solutii din ce in ce mai ingenioase dar si mai deranjante pt utilizator de protectie la copiere. Bineinteles ca nici crackerii nu au stat degeaba in tot acest timp si au reusit, in intervale cuprinse de la cateva ore la cateva zile, sa “sparga” aceste protectii. Vom trece in acest articol in revista unele din cele mai importante astfel de tehnologii.
Protectiile la copiere au ca prim inamic faptul ca orice opera audio si/sau video poate fi copiata in momentul in care a fost transpusa intr-o forma accesibila omului (adica in momentul in care ne uitam la imagine putem sa o si inregistram cu o camera video si apoi sa facem copii in mod nelimitat, iar in momentul in care auzim o melodie putem sa o inregistram cu un echipament audio si apoi sa o duplicam la fel la nesfarsit). Astfel, orice astfel de opera poate fi copiata intr-un timp finit si cu resurse finite de aceea protectiile la copiere nu incearca decat sa impiedice asa numitul “casual copying” nicidecum copierea neautorizata in masa.
Metode de protectie
In ceea ce priveste metodele de protectie pentru software, acestea impreuna cu crackurile lor au aparut inca de la inceputul PC-ului (de fapt pe Apple la momentul respectiv). Printre primele protectii la copiere s-au numarat niste tehnici de folosire ingenioasa a controllerelor de floppy sau a dischetelor ce nu permiteau copierea unui floppy pe unitati normale. Ulterior dischetele au fost inlocuite de CD-uri si razboiul intre cei ce elaborau protectii si cei ce le spargeau s-a intetit.
Printre metodele de protectie despre care NU vom vorbi se numara modulele hardware pe port serial, paralel sau USB care contin o cheie si care trebuie conectate la PC in momentul lansarii programului protejat (exemplu de software: 3D MAX), coduri de inregistare care se pot gasi uneori in manualul jocului sau se pot obtine doar in momentul cumpararii jocului, un cod de activare obtinut prin telefon, o metoda de autentificare a instalarii prin Internet, etc. La ora actuala majoritatea metodelor complexe de protectie la copiere sunt folosite la … jocurile pe PC. Industria este una foarte mare, sunt foarte multi bani la mijloc si de aici apare nevoia companiilor de a-si proteja continutul.
Una din metodele de protectie la copiere pentru un CD este aceea de a genera un CD cu informatii care nu pot fi scrise in mod normal de o unitate standard tip Writer. O astfel de metoda este folosita de consola XBox iar consola PlayStation 2 citeste informatii aflate dupa sfarsitul standard/oficial al discului si in mod normal necitibile. Duplicarea unui astfel de disc este foarte dificila sau imposibila pentru un utilizator si a fost rezolvata prin alte trucuri software sau chip-uri de modare (modchips). Tot informatii in mod normal inaccesibile unei unitati sunt folosite si de algoritmii Nintendo Wii. Sony Playstation Portable foloseste un format Universal Media Disc ce nu poate fi copiat 1:1 in mod normal, dar s-a reusit folosirea imaginilor ISO create dupa un disc original prin modificarea firmware-ului consolei. PlayStation 3 foloseste discurile BlueRay si una din metodele anticopiere poate fi considerata chiar si dimensiunea unor jocuri in sine pe acest mediu, 40-50GB, prohibitiv in marea majoritatea a cazurilor pentru partajarea online (metoda favorita de distributie a produselor copiate).
In ultimul timp metodele de copiere devin din ce in ce mai subtile. Exista jocuri care pot functiona perfect pentru un timp dar care sunt presarate cu diverse “checkpointuri” unde jocul verifica existenta protectiei si daca aceasta lipseste isi modifica comportamentul (un exemplu in Grand Theft Auto 4 este camera care urmareste jucatorul si care la un moment dat intra intr-un “drunk mode” facand jocul de nejucat, sau o alta protectie a unui joc care permitea unui personaj sa intre intr-o masina din care insa nu mai putea iesea fiind nevoie de incarcarea unei salvari vechi). Aceste metode incearca prin frustrarile aduse de modificarile de comportament ale jocului sa descurajeze jucatorii in a downloada si folosi copii pirat. De asemenea, datorita multiplelor triggere presarate in mai multe momente ale jocului, reprezinta si o provocare serioasa pentru crackeri, nu de putine ori existand cazuri cand un crack rezolva anumite momente cheie prin ocolirea protectiei dar uita de alte momente si verificari ale softului care “strica” intr-un fel sau altul jocul.
Safedisc este una din tehnologiile importante de protectie la copiere produsa de Macrovision. Ca in mai toate cazurile de astfel de tehnologii au existat multiple versiuni fiecare imbunatatind protectia, uneori insa cu pretul deranjarii utilizatorului prin diverse metode. Algoritmul foloseste sectoare “slabe” (weak sectors) care nu pot fi copiate in mod normal de unitatile standard precum si autentificare printr-o cheie digitala aflata pe disc, disc ce trebuie sa fie prezent in unitate de-a lungul rularii softului protejat, chiar daca nu este nevoie de datele de pe el. O problema a protectiei o reprezinta instalarea unui driver de sistem in Windows ce poate reprezenta o problema de securitate (are acces ring 0 si deci acces complet la sistem). Exista multiple programe ce au reusit sa treaca peste protectia aceasta: Daemon Tools (emulator de unitati disc) sustine ca poate ignora protectia Safedisc, Clone CD si Alcohol 120% pot copia un disc original SafeDisc prin diverse tehnici de ocolire. Datorita vulnerabilitatii initiale la programele de emulare de tipul Daemon Tools, SafeDisc a adaugat verificari a existentei softurilor de acest gen pe sistem, neruland in cazul identificarii acestor tipuri de utilitare. Bineinteles, problema a fost rezolvata elegant de programele de emulare unitati CD prin folosirea unui sistem de ascundere a unitatilor virtuale respective in momentul interogarii de catre protectia SafeDisc.
SecuROM este o tehnologie produsa de Sony care implica in multe cazuri necesitatea activarii online a unui joc. In cazul a mai multor jocuri in care a fost folosita (exemplu BioShock) a produs manie in randul utilizatorilor prin aceasta necesitate de activare online cu un numar limitat de activari, sau prin faptul ca portiunea de autentificare (protectia in sine) nu este dezinstalata odata cu jocul ramanand in sistem. Electronic Arts a folosit destul de mult aceasta protectie dar a avut si multiple probleme de ordin legal (class-action suits) datorita acesteia. Au existat si bug-uri prin care in anumite cazuri datorita anumitor setari sau aplicatii de pe un sistemul dat protectia nu autentifica corect produsul ducand la imposibilitatea folosirii acestuia. Daemon Tools sustine ca poate emula si SecuROM.
StarForce este o tehnologie foarte puternica de protectie care a reusit sa reziste chiar mai mult de un an nesparta in cazul unui joc, facand foarte complicat reverse engineeringul si aducand facilitati foarte puternice si complexe in cadrul algoritmilor sai. Din pacate pentru ea, problemele aduse sistemelor pe care era instalata au convins mai multe companii (Ubisoft de exemplu) sa renunte la aceasta. Si aceasta tehnologie contine driveri de sistem care raman instalati si dupa dezinstalarea produsului protejat, cel putin pana la versiunea 4.0.Ca si Tages, alta tehnologie, StarForce contine un sistem Virtual File System folosit de exemplu pentru criptarea anumitor date si decriptarea in momentul rularii in tandem cu verificarea protectiei.
Viitorul protectiilor la copiere?
Daca pana de curand cea mai “enervanta” metoda de copy protection implica activarea online a unui joc (existand chiar un numar limitat de activari in multe cazuri) pasul la nivelul urmator a fost facut de Ubisoft in ultimele luni prin lansarea unui nou sistem de copy protection tip DRM (Digital Rights Management) prin care un joc are nevoie de acces constant si non-stop la Internet pentru o verificare continua a protectiei. Aceasta protectie folosita printre altele intr-unul din cele mai asteptate jocuri ale anului 2010 (Assassin’s Creed 2) implica chiar downloadarea in anumite momente a unor informatii care lipsesc din kitul original si care se afla pe serverele Ubisoft, moment in care se face si verificarea protectiei. Caderea legaturii la internet implica blocarea imediata a jocului si revenirea se face doar in momentul in care se reface conexiunea cu serverul Ubisoft. Inutil de spus ca aceasta protectie a dat nastere unora din cele mai violente flame-uri de pe Internet contra Ubisoft, in conditiile in care de foarte multe ori, mai ales in primele zile de la lansare, serverele respective au fost atacate continuu din diverse puncte din Internet, lucru ce a crescut frustrarile utilizatorilor pusi in imposibilitatea de a se juca un joc platit si legal! Bineinteles ca imediat dupa aparitia jocului crackerii au incercat diverse metode de a ocoli protectia, lucru ingreunat evident de acele date downloadate de pe serverele Ubisoft.
In urma cu 2-3 saptamani au aparut primele crack-uri care simulau local un server Ubisoft la care se conecta jocul, problema reprezentand-o doar identificarea/strangerea datelor cautate de joc pe serverele oficiale si instalarea lor pe acest server local. In urma cu cateva zile protectia DRM a fost inlaturata cu totul printr-un crack.
Justificare
De la aparitie si pana acum (si in mod sigur si mult timp de acum inainte) s-a tot discutat despre eficacitatea acestor metode in conditiile in care costurile implementarii acestor protectii nu sunt deloc mici. S-au scris milioane de pagini pe forumuri in care utilizatorii considera banii aruncati de firme pe aceste protectii drept investitii foarte proaste toate argumentele aflandu-se in zona “oricum sunt imediat sparte” si “mai bine se concentrau pe joc decat pe protectie” si “nu au dreptul sa-mi interzica sa joc jocul pe care am dat bani doar pentru ca nu am Internet acasa” sau “ce voi face peste 5 sau 10 ani daca vreau sa ma joc din nou si serverele companiei sau compania nu mai exista sa ma autentifice?”
Cu toate aceste motive, nu trebuie sa uitam cateva argumente pt aceste solutii, argumente care ne pot schimba optica: companiile STIU ca protectiile vor fi sparte dar cel mai important pentru ele este ca jocul sa apara impreuna cu o protectie care sa fie in stare sa reziste cateva zile spargerii, deoarece in acele prime zile o protectie eficienta incurajeaza pe toti cei care asteapta un joc sa-l cumpere (pentru ca nu mai pot astepta). Bineinteles, in general argumentele acestea se aplica productiilor mari dar acestea sunt si cele care folosesc cele mai scumpe tehnologii existente. Mai mult, conform unor analize un crack aparut in aceeasi zi cu jocul original (sau si mai dezastruos, inainte de lansarea oficiala) poate reduce cu pana la 80% vanzarile acelui joc! Cifra nu stiu daca este reala si nimeni nu poate sti, dar mi s-a parut enorma si in orice caz credibila.
Este greu de crezut ca peste noapte companiile vor renunta la aceste metode si din pacate cei mai afectati vor fi exact cei care vor cumpara produse legale si care vor fi nevoiti sa se autentifice, sa aiba acces internet fara caderi, sa se enerveze cu phone-supportul companiilor etc . Toti ceilalti nu vor trebui decat cel mult sa astepte cateva zile si apoi sa downloadeze un crack care sa le ofere de multe ori o experienta mult mai simpla si mai frumoasa cu jocul, dar cu riscul virusilor, bugurilor, crash-urilor aduse de crack.
Ma gandisem la un moment dat la un sistem de protectie software ceva mai puternic. N-am avut timp sa dezvolt ideea, asa ca o fac publica 🙂
In orice joc se pot izola o multime suficient de mare de decizii, reprezentate ca un calcul
“if(a > b)”. Se face un modul cu toate aceaste conditii. Pentru fiecare licenta, se creaza o versiune diferita de modul, prin amestecarea calculului “if(a > b)” cu multe alte informatii precum timpul sistemului, hash-uri pe hardware, etc. Calculul trebuie sa dea acelasi rezultat in configuratia corespunzatoare licentei, dar sa dea anomalii cand licenta a expirat sau hardware-ul este diferit. Bineinteles ca s-ar putea pacali programul ca ruleaza pe un anumit hardware, dar asta l-ar putea face nefunctional (in cazul API-ului 3D cel putin). Se mai poate adauga la calcul si un hash al IP-ului de conectare (in cazul programelor care ruleaza online) si protectia ar fi foarte greu de spart. Daca utilizatorul isi schimba IP-ul sau hardware-ul poate primi o versiunea noua de modul, customizat pe setarile lui.
Cred ca ideea merge doar daca calculul este complicat astfel incat sa dea in multe ocazii rezultate bune si in putine situatii rezultate proaste. Altfel s-ar putea observa comportarea a doua module pentru fiecare pereche a,b si crea un modul care sa raspunda corespunzator. Daca insa se “scufunda” spatiul conditiilor necesare intr-un spatiu mult mai mare al conditiilor complicate (care depind de multi alti parametrii – timp, hw, ip), analiza s-ar putea dovedi ineficienta.