www.agora.ro

Sisteme antifurt

Protecția programelor

Ștefan Viziru

Securitatea programelor este un domeniu foarte vast cu numeroase teme ce merită discutate. Din multitudinea de probleme pe care le ridică, am ales câteva aspecte mai ușor de înțeles, care nu necesită cunoștințe profunde în domeniu, care ni s-au părut interesante, utile și care țin de cultura informatică.

Firmele producătoare de software din întreaga lume obțin marea majoritate a veniturilor din vânzarea aplicațiilor create. Evident, nu este în interesul lor ca, după vânzarea unei aplicații, cumpărătorul să poată să o multiplice și să o distribuie gratuit. Desigur legea interzice acest lucru, dar punerea în practică a dispozițiilor legale este foarte dificilă. Știm cu toții că în România există foarte puțini utilizatori care folosesc legal produsele soft pe care le "dețin".

Din acest motiv, firmele producătoare de software recurg la protejarea programelor prin parole sau alte mijloace în scopul prevenirii copierii lor neautorizate. Replica nu s-a lăsat așteptată: au apărut cracker-ii, persoane care se ocupă cu evitarea mecanismelor de protecție. Nu trebuie confundată noțiunea de hacker cu cea de cracker.

Probabil că mulți dintre cititori, viitori programatori, vor fi puși în situația de a fi nevoiți să-și protejeze programele create.

La vederea unui fișier executabil mulți au un sentiment de deplină siguranță. Privind simbolurile ASCII cu un editor hex, pare cu neputință ca cineva să poată descifra informațiile conținute în acel fișier. De aceea, când se dorește protejarea unui program mulți cred că e suficient ca acesta să conțină o rutină care cere introducerea unei parole. Dacă parola era corectă, programul putea fi utilizat, dacă nu, execuția programului se încheia.

Acest procedeu oferă o securitate atât de scăzută încât poate să și lipsească, el neconstituind un impediment pentru un cracker care deține cunoștințe elementare în acest domeniu.

Din motive evidente, nu putem prezenta modul în care un cracker poate trece peste această protecție. Menționăm că scopul nostru nu este acela de a descrie modalități ilegale de a "păcăli" firmele producătoare de software, ci de a vă avertiza că programele trebuie protejate cât mai eficient. Doar cunoscând punctele slabe ale sistemului de securitate, îl veți putea îmbunătăți.

În principiu, o rutină de verificare a parolei va conține o instrucțiune de salt condiționat care va permite continuarea execuției programului dacă parola a fost introdusă corect. Un cracker va modifica doar această instrucțiune înlocuind-o cu una de salt necondiționat, astfel încât execuția programului să continue chiar dacă parola nu a fost introdusă corect.

Credem că vă dați cu toții seama că programele comerciale sunt protejate mult mai eficient, prin mecanisme total diferite de această rutină primitivă.

O modalitate de a îmbunătăți puțin protecția, ar fi să vă folosiți de parola introdusă de mai multe ori în program, de exemplu ca parametru de intrare pentru un subprogram. Chiar dacă cracker-ul va reuși să treacă peste mecanismul de verificare, programul tot nu va funcționa deoarece subprogramul respectiv nu va funcționa corespunzător.

În concluzie, nu trebuie să ne încredem în metode de parolare care, la prima vedere, par de netrecut. Indiferent ce metodă ingenioasă de protecție am găsi, vor veni alții cu o metodă de evitare a protecției. De aceea, în ceea ce privește securitatea nu strică niciodată să fim puțin neîncrezători și să acționăm conform proverbului: Cusut dublu ține mai bine!

Ștefan Viziru este elev în clasa a XII-a la Colegiul "Traian Vianu" din București. Poate fi contactat prin e-mail la adresa hyko_l@usa.net.

[cuprins]