Securitatea In Sistemele de Operare Moderne

Sisteme de operare, privire de ansamblu

Istorie, pe scurt

Funcționarea si rolul sistemelor de operare

Generalități

Structură

Sistemele Monolitice

Sistemele Microkernel

Sistemele Hibrid

Sistemele Exokernel

Apelurile de sistem, prietenele noastre

Securitatea în sistemele de operare

Firewall-ul si antivirușii

Virușii. Definire si clasificare

Sisteme de operare moderne, studiu de caz

Sistemele de operare Microsoft

Istorie

Kernel

Securitate

Criptarea fișierelor și a directoarelor

Sistemele de operare Linux

Istorie

Kernel

Securitate

Criptarea fișierelor și a directoarelor

Sistemele de operare Apple

Istorie

Kernel

Securitate

Criptarea fișierelor și a directoarelor

Macintosh vs Hackintosh

Concluzii

Aplicație licență

Socket-urile

Protocoale de rețea

Modelul client-server

Aplicație messenger.

Securitatea în sistemele de operare moderne

I. Istorie, pe scurt

Sistemele de operare moderne reprezintă rodul evoluției tehnologiilor prin prisma trudei dezvoltatorilor, fie ei informaticieni, electroniști sau mecanici. Primul calculator numeric a fost inventat de Charles Babbage (1792-1871), un englez de profesie matematician. Mașinăria sa mecanică nu a funcționat niciodată perfect datorită tehnologiei subdezvoltate din acea perioadă. Acesta a ajuns la o concluzie ce peste ani urma să fie exploatată la maxim: Motorul său analitic avea nevoie de un soft. A angajat-o astfel pe Ada Loverace, cea care în urma acestei acțiuni, care a devenit prima programatoare din lume. Limbajul de programare Ada® a fost denumit după numele ei. În perioada anilor ’40 informațiile erau introduse pe o unitate de calcul bit cu bit, cu ajutorul unor comutatoare mecanice. 10 ani mai târziu, apărând pentru prima dată conceptul de Sistem de Operare în Laboratorul de Cercetare General Motors, pentru calculatorul lor IBM 701. Acest sistem de operare putea rula un singur program la un moment dat. Atât programele cât și datele lor de intrare erau introduse pe rând, de aici și numele de sistem de procesare pe serii. Următorul deceniu nu a adus modificări masive structurii sistemului de procesare pe serii, cu excepția mai bunei utilizări a tehnologiilor hardware, rulând mai multe servicii simultan, cu alte cuvinte, programul curent era pus într-o stare de pauză, iar al doilea program rulat și viceversa.

Odată cu avansarea tehnologiilor hardware, software-ul s-a dezvoltat de asemenea, dar mereu cu un pas în urma hardware-ului, un lucru normal de altfel, dat fiind faptul ca cel puțin din punct de vedere practic, nu se poate crea un soft care să ruleze pe ceva ce nu există. Au apărut, în timp primele probleme legate de securitate, de confortul utilizatorului, de stabilitate.

Sistemele de calcul, la începuturi, reprezentau pentru oameni în general un moft. Bineînțeles, dacă nu era vorba de NASA, sau grupuri de cercetători care știau să utilizeze un sistem de calcul. Și nu reprezentau un simplu moft, ci unul care costa și multe persoane cu bani la acea dată erau dispuse să cumpere ceva scump, chiar și în cazul în care nu știau să îl folosească la capacitățile maxime. Apple Inc. a înțeles acest lucru și s-a gândit la o soluție prin care să „împrietenească” mediul vizual al sistemului de operare cu utilizatorul. Astfel a luat naștere primul sistem de operare cu interfață grafică numit Mac OS. Surclasarea MS-DOS-ului a revoluționat situația Sistemelor de operare în ceea ce privește legătura între interfață și utilizator.

Sistemele de operare cele mai stabile și populare, în momentul de față nu sunt foarte multe. Oricine, întrebat pe stradă la un moment dat, va enumera sigur 3: Microsoft Windows, OS X și Linux, toate diferite între ele ca mod de funcționare sau ca preț. În timp ce Windows este funcțional pe aproape toate sistemele de calcul, cei de la Apple s-au gândit să își creeze un sistem de operare ce funcționează pe propriile tehnologii hardware. Costurile fiind destul de mari, inevitabil a apărut termenul de Hackintosh, derivat de la Macintosh, sistemul hardware folosit de cei de la Apple. La polul opus se află Linux, unul dintre cele mai mari proiecte open source, dacă nu cel mai mare din lume, al cărui kernel numără peste 13 milioane de linii de cod. Portabil, gratuit și mai aproape de nivelul Hardware prin structură și funcționalitate, Linux se bucură de o foarte mare răspândire pe servere și pe alocuri este utilizat în unele companii sau firme, scutind astfel banii ce s-ar cheltui pe licența unuia dintre celelalte doua sisteme.

In marile Universități din lume, exista foarte multe proiecte de studiu, ce vizează crearea, modificarea sau conspectarea codului sursa al unui sistem de operare minimal, pentru o mai buna înțelegere a modului de funcționare. Unul dintre cele mai populare sisteme de operare utilizat în învățământ, este MINIX, creat de Andrew S. Tanenbaum. Numele îi deriva de la „Mini Unix”, destul de relevant, de altfel, din care deducem ca este inspirat din Unix, dar cu un nivel de funcționalități scăzut. În 2004 s-au adus anumite acuzații cum ca Kenneth Brown a copiat părți majore din kernelul Minix în dezvoltarea Linux, dar și faptul ca ar fi fost sponsorizat de Windows.

Cu sau fără ceartă, ori ajutor, ori alte relații interpersonale sau sentimente umane ce țin de caracterul fiecărui individ în parte, în momentul de față, istoria numără în jur de 600 de sisteme de operare și peste 1000 de proiecte universitare de cercetare ale sistemelor de operare.

II. Funcționarea și rolul sistemelor de operare. Generalități.

Există numeroase afirmații care încercă să definească ce este un sistem de operare, fiecare individ în parte punând accent pe anumite puncte ce i se par mai importante.

O definiție cât mai încăpătoare ar fi:

Un sistem de operare reprezintă puntea de legătură între aplicațiile utilizatorului și hardware, altfel spus, sistemul de operare reprezintă:

1) Extensie funcțională a unei mașini de calcul – Pentru a lucra în limbaj mașină este foarte greu chiar și pentru un programator, dar mai ales pentru un simplu utilizator. Sistemul de operare ne oferă posibilitatea de a interpreta setul de instrucțiuni în limbaj mașină în favoarea noastră.

2) Administrator de resurse – Sistemul de operare gestionează procesorul, discul, memoriile și în general toate dispozitivele de intrare/ieșire (mouse, tastatură, monitor, imprimantă etc)

Eu as vedea un sistem de operare ca pe un viitor șofer în timpul examenului auto, în timp ce automobilul reprezintă sistemul de calcul, iar examinatorul reprezintă utilizatorul sau aplicațiile utilizator. Dacă examinatorul comandă să se meargă la dreapta, viitorul șofer se conformează. Dacă examinatorul dorește o parcare laterala cu spatele, elevul se conformează. Exemplele pot continua, dar ce s-ar întâmpla dacă elevul nu ar da prioritate la alți participanți la trafic sau ce s-ar întâmpla dacă lovește o gura de canal nesemnalizată corespunzător? în astfel de situații examinatorul nu are prea multe de făcut deci, acestea sunt în sarcina elevului pentru bunul mers al examinării.

Principiul de funcționare al unui sistem de operare, se aseamănă, în viziunea mea cu exemplul de mai sus deoarece: Un sistem de operare execută comenzi ale utilizatorului, sau ale aplicațiilor utilizator. Un sistem de operare, trebuie să aibă o buna gestionare a manipulării zonelor unde utilizatorul nu are acces, sau chiar dacă ar avea, ar trebui să dețină cunoștințe avansate în domeniu.

Pe scurt, cea mai buna definire a sistemului de operare este însuși numele sau: un sistem de operare asupra unei mașini de calcul. El se îngrijește de buna funcționare a tuturor componentelor mașinii, cât și facilitează interacțiunea sistemului de calcul cu utilizatorul.

Structura de funcționare a unui sistem de operare pe un calculator, la o prima vedere din exterior, pare destul de simpla, după cum se poate vedea în Fig.1 dar, la o studiere mai amănunțită, nu este chiar așa.

Se poate considera ca sistemele de operare sunt alcătuite din doua zone: – Zona Utilizator (User Space);

– Zona Protejata / Nucleu (Kernel)

Fig.1

II. Funcționarea și rolul sistemelor de operare. Structură.

Aruncând o privire în interiorul mai multor sisteme de operare, există mai multe modele de sistem, utilizate și testate. Iată, câteva dintre acestea: sistemele monolitice, microkernel, exokernel, hibrid și sistemele client-server.

Sistemele Monolitice

Sistemele monolitice, funcționează sub tutela unei colecții de proceduri. Fiecare procedura o poate apela pe alta și tot așa, cu condiția să se poată folosi de ceva în urma apelului. Procedurile sunt vizibile între ele. Acest sistem, este unul din cele mai răspândite de altfel, acest concept este foarte utilizat și în programarea anumitor softuri deși, acolo este o altă poveste. Olandezul Andrew Tanenbaum, renumit pentru seriile de cărți scrise despre rețele de calculatoare sau proiectarea sistemelor de operare, numește acest tip de sistem ca fiind o „mare harababură”.

Structura sistemelor monolitice este prezentată în Fig.2. Pentru crearea programului obiect efectiv al sistemului de operare, trebuie compilate toate procedurile singular, după care apoi unite într-un fișier obiect utilizând editorul de legături al sistemului, cu alte cuvinte, procedurile au aceeași sursă.

Fig.2

Unde, CIP – reprezintă Comunicarea Între Procese (Interprocess Comunication);

Driv. – reprezintă driverele pentru Hardware

Mem. (Kernel Space) – reprezintă gestiunea memoriei;

SGF – reprezintă Sistemul de Gestiune a fișierelor;

CPU – reprezintă procesorul;

Mem. (Hardware) – reprezintă Memoria (externă, volatilă etc.)

I/O Dev.– reprezintă periferice (Input/Output Devices – mouse, tastatură, imprimantă, etc.).

Avantajele folosirii arhitecturii monolitice:

– Unul din avantajele folosirii unei astfel de arhitecturi este reprezentat de siguranță, toate procedurile aflându-se în zona kernel.

– Un alt avantaj este reprezentat de eficienta. Relațiile între module sunt mult mai rapide.

– Un al treilea avantaj ar fi optimizarea codului realizată de către compilator.

Dezavantaje:

– Complexitatea. Scrierea depășește 3 milioane de linii de cod.

– Mentenanța. Fiind o arhitectură a cărei scriere durează, este mare și greoaie, un Update sau o corectare a codului adusa la un moment dat, poate atrage după sine destule bătăi de cap utilizatorului.

– spațiul de memorie comun pentru module. În cazul în care la unul dintre drivere apare o eroare sau nu funcționează în parametrii optimi, se poate bloca întregul sistem.

Sistemele Microkernel

Sistemele microkernel. După cum le spune și numele, sunt sisteme ce au la bază un kernel mult comparativ mai mic decât la sistemele monolitice, de exemplu MINIX (câteva mii de linii de cod, comparativ cu milioanele de linii de cod din kernelul sistemelor monolitice).

Comunicarea dintre cele doua spatii Utilizator, respectiv Kernel ale Sistemului de Operare se realizează pe baza principiului de client-server. Spre deosebire de sistemele monolitice, aici modulele sunt bine definite și nu depind în mod explicit unele de altele. Modulele funcționează ca niște servere și comunică între ele cu ajutorul CIP (Comunicarea Între Procese – eng. Intrerprocess Comunication). În figura Fig.3 este prezentat modul de funcționare a unui sistem microkernel.

Fig.3

Unde, CIP – reprezintă Comunicarea Între Procese (Interprocess Comunication);

Driv. – reprezintă driverele pentru Hardware

Mem. (User Space) – reprezintă gestiunea memoriei;

SGF – reprezintă Sistemul de Gestiune a fișierelor;

CPU – reprezintă procesorul;

Mem. (Hardware) – reprezintă Memoria (externă, volatilă etc.)

I/O Dev.– reprezintă periferice (Input/Output Devices – mouse, tastatură, imprimantă, etc.).

Avantai modulele sunt bine definite și nu depind în mod explicit unele de altele. Modulele funcționează ca niște servere și comunică între ele cu ajutorul CIP (Comunicarea Între Procese – eng. Intrerprocess Comunication). În figura Fig.3 este prezentat modul de funcționare a unui sistem microkernel.

Fig.3

Unde, CIP – reprezintă Comunicarea Între Procese (Interprocess Comunication);

Driv. – reprezintă driverele pentru Hardware

Mem. (User Space) – reprezintă gestiunea memoriei;

SGF – reprezintă Sistemul de Gestiune a fișierelor;

CPU – reprezintă procesorul;

Mem. (Hardware) – reprezintă Memoria (externă, volatilă etc.)

I/O Dev.– reprezintă periferice (Input/Output Devices – mouse, tastatură, imprimantă, etc.).

Avantajele folosirii unui astfel de sistem sunt:

– Claritate, simplitate datorită faptului ca implementarea kernelului nu necesită milioane de linii de cod;

– Modularitate prin prisma faptului ca totul este bine structurat, iar comunicarea între module se face prin gestionarul de procese;

– În cazul unei blocări, sau erori la unul dintre module, nu exista riscul de blocare a întregului sistem, spre deosebire de sistemele monolitice. Aici datorită principiului de server de reîncarnare, se tratează fiecare modul separat.

Dezavantaje:

– Necesitatea unui mare schimb de date între module (Overhead mare);

– Managementul proceselor este destul de greoi.

Sistemele Hibrid

Sistemele hibrid stau la baza celor mai vândute sisteme de operare de pe glob: Windows și OS X.

Kernelul acestor sisteme este în mare parte același cu cel monolitic ca dispunere a modulelor, cu diferența ca modulul Drivere a fost mutat din zona kernel în spațiul utilizator. După cum îi spune și numele, un sistem hibrid nu a fost proiectat cu o noua arhitectura sau altfel structurat. Din combinația dintre Sistemele Monolitice (structura) și Sistemele Microkernel a ieșit ceea ce numim azi Sistem Hibrid.

Din toate acestea tragem concluzia ca sistemele hibrid au o structura aproape asemănătoare cu cele monolitice din punctul de vedere al manierei implementării kernelului și un kernel relativ mic dar foarte bine structurat cu module independente între ele, moștenit de la microkernel. Graficul unui astfel de sistem este afisat în figura Fig.4.

Cele mai cunoscute Sisteme de Operare actuale care folosesc acest tip de structurare sunt cele de la Microsoft Windows, respectiv cele ale companiei Apple.

Windows NT Kernel reprezintă kernelul folosit incepând cu Windows NT la toate sistemele de operare New Technology comercializate de Microsoft pana în prezent, respectiv XNU (X is Not Unix) este kernelul ce stă la baza OSX și iOS.

Fig. 4

Avantajele utilizării sistemului hibrid:

– Claritate și simplitate moștenite de la microkernel;

– Modularitate;

– Mentenanța;

– Rapiditate – datorită tehnologiilor inspirate din sistemul monolitic, nu exista overhead la schimbul de mesaje între spațiul kernel și zona utilizator;

– Siguranta – incapsularea a cât mai multe module în spațiul kernel

– Integrare rapida a librăriilor third party.

Dezavantaje:

– Dificultate în accesarea directa Hardware;

– Posibilitate crescută de a se crea erori;

– Mentenanța modulelor poate fi uneori confuza.

Sistemele Exokernel

Exokernel-ul a fost inventat la MIT (Massachusetts Institute of Technology) și se bazează pe accesarea bibliotecilor din spațiul Utilizatorului în spațiul Kernel. Rolul acestui kernel este acela de a mentine ordinea între masinile virtuale, memorând ce resurse au fost alocate și cărei masini. Exokernel-ul este considerat de unele părți ca fiind o reinterpretare a sistemelor microkernel dusa la extrem. Sistemele exokernel au fost create din dorinta de a putea interactiona direct cu sistemul hardware.

Ca mod de funcționare, exokernel-ul se folosește de apeluri către librăriile din spațiul utilizator (Library Operating System) și intra în contact cu sistemul hardware. Cu alte cuvinte, singurul sau rol aici este să mentina ordinea între alocarea de resurse și aplicații.

Fig. 5

Avantajele sistemelor exokernel:

– Rapiditatea – aplicațiile intra mult mai usor în contact cu părțile hardware vizate, astfel se elimina multitudinea de apeluri de proceduri necesare accesării unei componente de nivel scazut în alt tip de kernel;

– Prelucrarea resurselor fizice mult mai eficient;

Dezavantaje:

– Nesiguranta – Aceste sisteme nu sunt portabile pe mai multe masini;

– Necesitatea scrierii de cod în cazul în care utilizatorul dorește să acceseze direct hardware-ul;

– Consistenta redusa.

II. Functionarea și rolul sistemelor de operare. Apelurile de sistem, prietenele noastre.

Am vorbit mai sus despre câteva tipuri de sisteme în funcție de kernel și funcționalitate. Ar fi pacat să nu aruncam o privire asupra unora dintre cei mai importanti agenti, fără de care buna funcționare a unui sistem de operare nu ar exista. Poate suna prea misterios să le spunem agenti, este vorba de apelurile de sistem.

In toate sistemele uzuale, aplicațiile rulează în spațiul Utilizator (eng. User Space), iar ca acestea să aiba acces la memorie, periferice și multe altele, au nevoie să comunice cu spațiul Kernel (eng. Kernel Space) al sistemului de operare. Ei bine, toate acestea sunt posibile prin schimburi de mesaje între cele doua zone ale sistemului, mai exact între aplicație și kernelul sistemului de operare. Aici

intervin apelurile de sistem. O aplicație, rulata la un moment dat din zona utilizator a sistemului de operare, dacă are nevoie de anumite date sau controlul unor acțiuni la care nu are acces (Ex.: Utilizarea camerei web, captarea tastelor apasate, citirea dintr-un fișier, etc.), printr-un apel de sistem specific cerințelor programului, sistemul de operare este informat de necesități. Din acest moment sistemul de operare preia controlul procesorului de la rularea procesului aplicației și apelează rutine specifice de tratare a necesităților procesului în cauza, toate acestea având loc în spațiul kernel. când totul s-a finalizat cu succes, tot printr-un apel de sistem procesul este informat de finalizarea cu succes, iar sistemul de operare reda procesul în atentia procesorului, de unde se executa normal, incepând cu urmatoarea secventa din locul de unde a fost intrerupta procesarea.

Apelurile de sistem sunt executate în zona kernel a sistemului de operare, de unde usor putem deduce ca acestea nu pot fi modificate sau alterate în vreun fel.

Urmarind în de aproape un apel de sistem, putem observa că există o anumită rutină, așa cum o voi explica mai jos, sau după cu se poate vedea în Fig.6.

Fig.6

Sa rezum în câteva puncte simple figura de mai sus, după cum ne sunt prezentate:

1. Procesul programului apelant cere un anumit serviciu sistemului de operare, în urma caruia se salvează datele necesare, mai exact pune parametrii de intrare/iesire pe o stiva, de exemplu.

2. Este apelata o procedura de biblioteca din spațiul utilizator, cu ajutorul căreia pe scurt, este invocat un apel de sistem.

3. Punctul trei reprezintă o continuare a rutinei de la punctul 2 mai în amanunț, fiecare apel de sistem are un cod unic, pe care apelul de biblioteca il salvează într-o zona de memorie cunoscuta sistemului de operare.

4. Se executa apoi o intructiune TRAP, în urma căreia se trece în modul kernel.

5. In acest moment, controlul procesorului este preluat de sistemul de operare și se continua rutina sub tutela modului kernel.

6. Ajunsi în modul nucleu, se executa codul responsabil care cauta tratarea apelului de sistem invocat într-o tabela de adrese în funcție de codul unic salvat la punctul 3.

7. Este apelata rutina de tratare specifica apelului de sistem necesar.

8. Este redat controlul procedurii de bibliotecă, la instrucțiunea imediat următoare instrucțiunii TRAP, apelată la punctul 4, prin care se iese din modul nucleu, iar controlul procesorului îi este redat procesului.

9. Procesul apelant curăță stiva de elementele inserate la punctul 1. Acest punct este unul foarte important, din perspectiva unui programator, nu ca și cum celelalte nu ar fi. Înțelegând aceasta rutină, putem observa ca acest pas este critic pentru buna utilizare a resurselor hardware. În timp, compilatoarele au fost construite în așa manieră încât dealocarea resurselor este implicita.

II. Funcționarea și rolul sistemelor de operare. Securitate.

O data cu dezvoltarea tehnologiilor și răspândirea calculatoarelor în rândul persoanelor fizice și nu numai, a apărut o problemă foarte serioasă: securitatea.

Pana în anii 1980, armata, marile universități sau grupuri de cercetători se foloseau intens de calculatoare, existând foarte puține persoane fizice care să dețină un sistem de calcul. Bineînțeles, indiferent de cine am vorbi, existau date secrete pentru care siguranța era pe primul plan. Practic, tratarea acestei probleme în acea perioadă nu pare grea la prima vedere, ținând cont de slaba dezvoltare a tehnologiei din perioada respectivă.

Calculatoarele au avut un succes extraordinar pe piață, în momentul de față oricine poate avea acces la un calculator. Fiecare dintre noi avem date confidențiale. Fie ele poze, filmări, fișiere text, sau orice altceva. Ar fi un dezastru ca cineva să intre în posesia lor, de aici la șantaj (în cazul cel mai rău) sau alte probleme fiind decât un pas. Dar să nu ne uitam la noi. Să aruncam o privire asupra armatei unde planuri, strategii, armament sau cazărmi și zone de antrenament secrete sunt gestionate și monitorizate. Ei bine, chiar ar fi un dezastru ca cineva să intre în posesia acestor informații.

Din moment ce accesul la internet a fost oferit oamenilor de rând, exista la început problema accesului nedorit pe propriul calculator de la distantă. Astfel sistemele de operare au adoptat o tehnică de a defini drepturile de accesare în funcție de un cont utilizator. Problema a fost rezolvată însă, între timp internetul a devenit principala sursă de a infesta sistemul de operare cu aplicații worm, viruși și alte programe ce au ca scop îngreunarea sistemului de operare, utilizarea în exces a resurselor, ștergerea datelor sau alte acțiuni împotriva sistemului nostru.

Să vorbim pe scurt de cele mai importante detalii ce țin atât de securitatea noastră ca indivizi, cât și de securitatea sistemelor noastre. Spun securitatea noastră, pentru ca sistemele de calcul proprii, au ajuns să ne reprezinte. Ca oameni, putem uita momente din viată dar, undeva ascuns într-un folder stau câteva poze să ne reamintească acele clipe peste ani. Sau lucram la un proiect de cercetare, sau pur și simplu ceva personal și nu cred ca există cineva căruia să îi placă ideea de a se trezi peste ceva timp cu acel proiect stres, modificat sau copiat pe alte dispozitive.

Vorbim astfel de tipuri de amenințări, care sunt numeroase și toate au același scop: șicanarea utilizatorilor sau obținerea de date sau anumite foloase de pe urma utilizatorilor afectați. Unul dintre ele ar fi compromiterea sistemului de operare. Din experiență îmi aduc aminte cum într-o buna zi, încercând să pornesc sistemul de calcul m-am trezit cu o eroare la bootarea sistemului de operare, un Windows XP Media Center x86. Tocmai fusesem victima unui atac prin care o buna parte din sistemul de operare fusese ștearsă. Ei bine, singura soluție în remedierea problemei a fost reinstalarea sistemului.

O altă amenințare este reprezentată de supraîncărcarea resurselor fizice sau folosirea acestora în exces. Estre drept, astfel de scripturi sau mici aplicații făceam în momentul în care voiam să înțeleg și să observ îndeaproape ce înseamnă scurgerile de memorie și cum duc acestea la supraîncărcarea memoriei. Însă, acesta este doar un exemplu. Există o multitudine de viruși care nu fac nimic altceva decât să simuleze ocuparea spațiului pe un hard, să multiplice fișiere sau procese, să printeze milioane de coli cu anumite mesaje pe unități de printare în vederea folosirii în exces a resurselor.

Integritatea datelor. Din nou pot să vorbesc din propria experiență și cu drag o fac. Am adunat de pe internet un virus care nu făcea nimic altceva decât să deterioreze fișiere de tip text. O data închis un astfel de fișier după citirea/scrierea sa, inevitabil la o următoare deschidere a să era plin de caractere unicode. Am căutat un interpretor unicode online, însă nu mare mi-a fost mirarea când am observat că, translatat în ASCII, conținutul nu avea nici măcar o relevantă. Nu realizez dacă din cauza aceluiași virus, sau unitatea mea de calcul era un focar (ca paravane de securitate aveam doar Firewall, fără antivirus – vom vorbi despre asta mai târziu), în momentul în care ascultam într-un player media o anumită melodie, ea era ștearsă instant din calculator. Cu două exemple concrete în față, putem spune ca integritatea datelor este un lucru destul de important în vederea bunei utilizări a unui sistem de calcul.

Confidențialitatea datelor reprezintă și ea o problemă foarte serioasă. Un program de tip keylogger poate oricând să trimită către o adresă tot ceea ce noi tastăm fără a ne da seama de acest lucru în prealabil, în timp ce printr-un program de tip Trojan, cineva ar putea avea acces la datele noastre oricând. Ce este secret, așa ar trebui să și rămână.

Am vorbit despre câteva dintre cele mai importante și relevante amenințări, acum să vedem și cum am putea să le evitam. În primul rând, o buna structurare a sistemului de operare în ceea ce privește paravanul Firewall. Ar fi o prostie să spunem ca un astfel de paravan combate toți inamicii cibernetici. Rolul unui Firewall este să prevină și nu să combată și aici intra în joc rolul unui antivirus. O altă situație este alegerea cu atenție a clienților și a permisiunilor acestora dintr-un grup LAN. În general, sistemele de operare (cel puțin UNIX și majoritatea descendenților) aloca pentru fiecare fișier cate 9 biți grupați cate 3. Care este rolul lor? Simplu! Câte un bit al fiecărei grupe din cele trei pentru fiecare operație asupra fișierului, și anume citire, scriere și executare (Eng.: read, write, execute), unde evident 1 reprezintă accesul permis, iar 0 informează sistemul de operare că utilizatorul nu este autorizat pentru acțiunea respectivă. Acești trei biți sunt recunoscuți sub denumirea de rwx. De ce sunt trei grupe de cate 3 biți? Răspunsul este la fel de simplu ca și prima dată, prima grupă reprezintă permisiunile proprietarului, a doua grupă constă în prezentarea permisiunilor membrilor grupului din care face parte și proprietarul, iar a treia grupă reprezintă permisiunile altor utilizatori.

rwx–xr– Acest exemplu ne spune ca proprietarul are dreptul de a citi, scrie sau executa fișierul, membrii grupului au doar dreptul de a executa, iar alți useri pot doar citi. O liniuță „-” înseamnă ca userii respectivi nu au acces la operațiile respective.

Firewall-ul și antivirușii

Deși des se face această confuzie în rândul utilizatorilor, paravanul Firewall nu este același lucru cu un antivirus și în cele ce urmează o să vedem de ce.

Paravanul Firewall este o aplicație a sistemului de operare ce are rolul de a preveni o eventuală infestare a sistemului cu programe proiectate cu rea intenție și de a preveni în același timp, accesul neautorizat în sistem al altor useri, fie ei umani sau virtuali. Modul de interacționare cu utilizatorul al Firewall-ului este destul de simplu, utilizatorul își poate seta după bunul plac cât de sever să fie cu traficul de date peste o structură internet. Poate fi dezactivat și conlucrează sau poate fi controlat de antiviruși. Acest paravan are atribuția de a verifica îndeaproape traficul pe internet de la și înspre sistemul de calcul pe care este găzduit și activat. În momentul în care se descoperă o aplicație ce se presupune a fi o amenințare, accesul ei pe calculator este restricționat. Prin acces restricționat, ne referim la faptul ca ea nu ajunge să ruleze pe sistem. Dacă acest pas este omis, Paravanul Firewall nu mai poate face nimic pentru a bloca aplicația în a-și face de cap, decât dacă este vorba de folosirea internetului în a-și duce treaba la bun sfârșit. Fiecare cerere spre calculator fără cererea în prealabil a userului este blocat. De-a lungul timpului, aplicațiile Firewall s-au îmbunătățit și devin din ce în ce mai bune din punct de vedere al eficacității. Ținând cont de rolul lor, ele mai sunt numite și filtre de pachete. Pe scurt, sunt aplicații care monitorizează traficul și încercările de conectare spre și dinspre rețeaua internet sau grupuri de sisteme de calcul și determină ce trebuie și ce nu trebuie să se transmită mai departe, o sită a datelor cu alte cuvinte. În funcție de cât de sofisticată este această sita, se poate scana chiar și întreg conținutul datelor și nu se limitează doar la combinații de IP/port. A scana întreg conținutul datelor înseamnă a verifica semnătura binara a datelor. În cazul în care semnătura binara este găsită pe lista intrușilor, datele responsabile nu au acces în sistem.

Antivirușii sunt aplicații software, diferiți între ei ca documentație a semnăturilor binare a fișierelor, de la un sistem de operare la altul deoarece, o aplicație rău intenționată creată pentru Microsoft Windows, nu va funcționa pe OSX. Modul de funcționare al antivirușilor este reprezentat de scanarea semnăturii binare a fișierelor. Prin interfața cu utilizatorul, proprietarii pot seta să scaneze periodic sistemul, să prezinte un anumit grad de severitate, să îi dezactiveze, să verifice carantina, să se șteargă din carantină, etc. Un antivirus are mai tot timpul nevoie de update. Motivul este foarte simplu. Dacă mâine apare un virus nou, în cel mult câteva zile de la apariția sa, el v-a fi raportat către o echipa de programatori din cadrul companiei ce lucrează la mentenanța antivirusului. Ei analizează situația și adaugă prin update noi semnături. Un antivirus fără update-uri ar face o treaba buna în ceea ce priește semnăturile binare deja cunoscute însă, în timp devine inutil.

Antivirus sau Firewall? în mod clar amândouă. Cu roluri diferite, pe nivele diferite, un sistem de operare este mult mai bine protejat cu ambele aplicații active și actualizate la zi. Firewall-ul lucrează la nivelul protocoalelor de rețea, pe când antivirușii lucrează la nivelul sistemelor de fișiere, cu alte cuvinte folosim Firewall pentru a preveni și antivirusul pentru a combate.

În ultima perioada tot mai mulți antiviruși au fost proiectați să joace și rol de Firewall. Am să vin în combaterea celor afirmate cu un exemplu concret luat de pe propriul sistem de calcul.

Fig. 7

Am instalat asupra sistemului de operare Microsoft Windows 8.1 antivirusul de la compania AVG. După cum se poate vedea în Fig. 7, din Panoul de Control la secțiunea Sistem și Securitate am accesat Paravanul de protecție al sistemului de operare. Sunt informat aici ca rolul Firewall-ului este preluat de o altă aplicație și anume, AVG Internet Security 2015.

Fig. 8

La o privire mai amănunțită, în figura de mai sus, din nou sunt avertizat ca sistemul Firewall este sub tutela AVG Internet Security 2015, dar în același timp, toate funcționalitățile specifice paravanului de protecție sunt active. Fiind conectat la o rețea publică de internet, profilul Public este activ.

Am găsit din întâmplare un link care, odată accesat, mă redirecționa către o descărcare. Nimic anormal, însă ceea ce urma să descarc nu era un fișier .pdf, ci unul executabil .exe. Rolul de Firewall al antivirusului a funcționat excelent și sunt avertizat de existența unei amenințări. Datorită modului în care am setat tratarea a astfel de situații, am opțiunea de a îmi proteja sistemul cât și cea de a permite descărcarea fișierului în sistemul de calcul. Statusul acțiunii asupra amenințării este nerezolvat (eng. Unresolved). Primesc de asemenea anumite informații care mi-ar putea fi utile în înțelegerea riscului la care mă expun, severitatea fiind de nivel mediu.

Fig. 9

Aleg opțiunea cea mai sigura! Selectez Protect Me (recommended) și observ ca amenințarea a fost eliminată cu succes în același timp, acțiunea de descărcare întreruptă îmi este justificata prin aducerea la cunoștință ca permisiunile au fost insuficiente pentru a se putea finaliza cu succes. Statusul acțiunii de blocare se schimbă din nerezolvat în securizat (Secured). Totul e bine când se termină cu bine!

Fig.10

Am văzut cum funcționează un antivirus care are și rol de Firewall. Chiar și cu paravanul de protecție implicit, al sistemului de operare, situația ar fi fost aceeași. Să aruncam o privire și asupra AVG, cum funcționează ca antivirus. Pentru efectuarea acestui experiment, am oprit pentru câteva momente antivirusul și am plasat strategic un virus, în speranța că antivirusul își va face treaba. Am repornit antivirusul și i-am dat comanda de a scana întreg sistemul. Rezultatul este destul de relevant expus în Fig. 11.

Dacă doresc, pot obține informații suplimentare asupra amenințării găsite, accesând câmpul More Info. Am fost redirecționat către http://www.avgthreatlabs.com/ unde mi s-a spus ca virusul meu era de tip Adware, cu alte cuvinte îmi putea modifica paginile de pornire din browser, motoarele implicite de căutare sau să îmi adauge anumite toolbaruri nedorite. În același timp, îmi putea afișa avertismente nedorite, sau diferite pop-up-uri. Este pe locul 488 ca severitate în lista lor online malware.

Fig. 11

Observând toate aceste detalii, este foarte ușor să catalogăm noțiunea de antivirus și ce de Firewall. Chiar dacă vorbim de antivirus care are și rol de Firewall, cele două aspecte sunt total diferite. După cum am văzut, conceptul de Firewall are atribuția de a bloca încă din timp o eventuală amenințare asupra bunei funcționalități a sistemului, cu alte cuvinte previne, în timp ce antivirusul caută, găsește și elimina virușii deja existenți pe sistem.

Exista o gamă vastă de antiviruși pe piață în momentul de față. Este la latitudinea utilizatorului ce antivirus dorește pe sistem, sau dacă îl vrea cu licență sau gratuit. Conform makeuseof.com, topul antivirușilor gratuiți pe anul 2014 a fost format din: 1. AVG Anti-Virus FREE 2014

2. Bitdefender Antivirus Free Edition(2014)

3. Comodo Internet Security Premium

4. Malwarebytes Anti-Malware 2.

Este de notat faptul ca din ce în ce mai mulți antiviruși nu folosesc doar semnătura binara pentru a combate aplicațiile dăunătoare. Dacă semnătura unui nou program instalat și rulat pe calculator nu se află în baza de date a antivirusului instalat, acesta monitorizează activitatea noului program și înștiințează, respectiv cere permisiunea de a bloca aplicația în momentul în care dorește să facă lucruri nefirești, cum ar fi să suprascrie fișiere din sistemul de operare, să mai adauge fișiere în sistemul de operare sau să le șteargă, etc.

Virușii. Definire și clasificare.

Așa cum am spus și mai sus, există foarte multe aplicații concepute cu rea intenție. Acestea poartă numele de viruși.

Ca o definiție generală, orice aplicație a cărei funcționalități are rolul de a frustra utilizatorul, a distruge sistemul de operare, a corupe aplicații sau fișiere, într-un cuvânt a perturba buna funcționare a unui sistem de calcul poartă numele de virus.

Din perspectiva țintelor de atac, virușii sunt de doua tipuri: Hardware și Software. Virușii Hrdware afectează memoria în general, fie ca vorbim de RAM sau memoria de pe hard, sau chiar distrugerea hardului, de vreme ce virușii Software afectează sistemul de operare, programele ce rulează, fișiere etc.

Din perspectiva programelor executabile pe care le infectează, respectiv modul de atac și pagubele provocate, virușii se clasifică in:

Bacterii – Conduc la paralizia completa a sistemului gazda (Eng: freeze), înmulțindu-se rapid și ocupând memoria volatilă și procesorul

Virușii de tip Bomba (Eng: Bomb) – Faima virușilor, cum i se mai spune, provoacă distrugerea datelor. Poate șterge un simplu fișier, sau întreg conținutul unui disc hard.

Virușii bomba cu ceas (Eng: Timer Bomb) – Se aseamănă cu virușii de mai sus doar ca aceștia din urma ataca doar la intervale de timp bine definite. Din acest motiv sunt și foarte greu detectabili, totul funcționând perfect normal pana la o anumită data și o anumită ora. Aceștia șterg fișiere, formulează discul hard sau blochează sistemul. Funcționează sub forma unei secvențe de cod introduse în sistem.

Bomba logica – Este tot un virus de tip bomba, care funcționează, după cum ne spune și numele sau, după anumite criterii logice. Aceste criterii pot fi de orice fel, spre exemplu crearea unui fișier cu un anumit nume, ștergerea unui astfel de fișier sau diferite acțiuni ce fac parte din rutina zilnica sau aproape zilnica a utilizării unui sistem de calcul. Efectele acestora sunt multiple, ca și virușii bombă cu ceas supraîncarcă memoria, șterg date etc.

Calul troian (Eng: Trojan horse) – reprezintă un program care, aparent este folositor, dar scopurile sale sunt cu totul altele. Calul troian este un program pe calculator care apare pentru a executa funcții valide, dar conține ascunse în codul sau instrucțiuni ce pot provoca daune sistemelor pe care se instalează și rulează, deseori foarte severe. Pe un model de tip 'cal troian' s-a bazat marea păcăleală care a stârnit multa vâlva la sfârșitul anului 1989. Peste 10.000 de copii ale unui disc de calculator, care păreau să conțină informații despre SIDA, au fost expediate de la o adresă bine cunoscuta din Londra, către corporații, firme de asigurări și profesioniști din domeniul sănătății, din Europa și America de Nord. Destinatarii care au încărcat discurile pe calculatoarele lor, au avut surpriza să descopere destul de repede ca acolo se aflau programe de tip 'cal troian', toate extrem de periculoase. Aceste programe au reușit să șteargă complet datele de pe hard disk-urile pe care au fost copiate. Programele de tip 'cal-troian' mai conțin o caracteristică importantă. Spre deosebire de virușii obișnuiți de calculator, aceștia nu se pot înmulți în mod automat. Acest fapt nu constituie însă o consolare semnificativă pentru cineva care tocmai a pierdut zile și luni de muncă pe un calculator.

Programele Virus – Sunt aplicații distructive cu funții de infectare. Se auto copiază pe sisteme, atacând fișiere din sistemul de operare sau executabile. Efectele nu sunt vizibile imediat ce acești viruși informatici au ajuns pe un sistem.

Viermii (Worms) – sunt aplicații care, odată inserate într-o rețea de calculatoare, devin active în sistemele de lucru în care nu se rulează nici un program. Nu infectează fișiere însă, se multiplică ocupând din resursele calculatorului ca memoria RAM, hard, sau procesorul.

Virușii Boot (Eng.: Boot Sector Viruses) – Modifică sectorul de boot, de unde și denumirea lor, mai exact suprascrie sectorul de boot al sistemului. Aceștia ataca sectorul de boot principal, sau sectorul DOS de pe hard disc.

Virusul atașat (Eng.: Appending) – Cunoscut și sub denumirea de „viruși clasici”, virușii atașați infectează fișierele, adăugând la codul lor, câteva instrucțiuni care pot, sau nu pot să facă pagube. când fișierul este rulat, codul introdus de virus este executat prim data.

Virus companion (Companion virus) – este un virus care infectează fișiere de tip .EXE prin crearea unui fișier COM având același nume și conținând codul agresiv. El speculează o anumită caracteristică a sistemului DOS prin care, dacă două programe, unul de tip .EXE și celălalt de tip .COM, au același nume, atunci se execută mai întâi fișierul de tip .COM.

Virus criptografic (Crypto virus)- un virus care se infiltrează în memoria sistemului și permite folosirea absolut normală a intrărilor și transmiterilor de date, având proprietatea că, la o anumită dată, se autodistruge, distrugând în același timp toate datele din sistem și făcându-l absolut inutilizabil. Un astfel de atac poate fi, pur și simplu, activat sau anihilat, chiar de către emițător aflat la distantă, prin transmiterea unei comenzi corespunzătoare.

Virus critic (Critical virus) – este un virus care pur și simplu se înscrie peste codul unui fișier executabil fără a încerca să păstreze codul original al fișierului infectat. În cele mai multe cazuri, fișierul infectat devine neutilizabil. Cei mai mulți viruși de acest fel sunt viruși vechi, primitivi, existând însă și excepții.

Virus cu infecție multiplă (multi-partite virus) – este un virus care infectează atât sectorul de boot, cât și fișierele executabile, având caracteristicile specifice atât ale virușilor sectorului de încărcare, cât și ale celor paraziți. Acest tip de virus se atașează la fișierele executabile, dar își plasează codul și în sistemul de operare, de obicei în MBR sau în sectoarele ascunse. Astfel, un virus cu infecție multiplă devine activ dacă un fișier infectat este executat sau dacă sistemul de operare este încărcat de pe un disc infectat.

Virus de atac binar – este un virus care operează în sistemul de 'cal troian', conținând doar câțiva biți pentru a se putea lega de sistem, restul fiind de regulă mascat ca un “program neexecutabil”

Virus de legătură (Link virus) – este un virus care modifică intrările din tabela de directoare pentru a conduce la corpul virusului. Ca și virușii atașați, virușii de legătură nu modifică conținutul fișierelor executabile, însă alterează structura de directoare, legând primul pointer de cluster al intrării de directoare corespunzătoare fișierelor executabile la un singur cluster conținând codul virusului. Odată ce s-a executat codul virusului, el încarcă fișierul executabil, citind corect valoarea cluster-ului de start care este stocată în altă parte.

Virus detașabil (File jumper virus) – este un virus care se dezlipește el însuși de fișierul infectat exact înaintea deschiderii sau execuției acestuia și i se reatașează atunci când programul este închis. Aceasta tehnică este foarte eficientă împotriva multor programe de scanare și scheme de validare, deoarece programul de scanare va vedea un fișier 'curat' și va considera ca totul este în regulă. Aceasta este o tehnica de ascundere (stealth).

Virus invizibil (Stealth virus) – este un virus care își ascunde prezența, atât față de utilizatori, cât și față de programele antivirus, de obicei, prin interceptarea serviciilor de întreruperi.

Virus morfic (Morphic virus) – un virus care își schimbă constant codul de programare și configurarea în scopul evitării unei structuri stabile care ar putea fi ușor identificată și eliminată.

Virus nerezident (Runtime virus) – este opusul virusului rezident. Virușii nerezidenți în memorie nu rămân activi după ce programul infectat a fost executat. El operează după un mecanism simplu și infectează doar executabilele atunci când un program infectat se execută. Comportarea tipică a unui astfel de virus este de a căuta un fișier gazdă potrivit atunci când fișierul infectat se execută, să-l infecteze și apoi să redea controlul programului gazdă.

Virus parazit (Parasitic virus) – este un virus informatic, care se atașează de alt program și se activează atunci când programul este executat. El poate să se atașeze fie la începutul programului, fie la sfârșitul sau, poate chiar să suprascrie o parte din codul programului. Infecția se răspândește, de obicei, atunci când fișierul infectat este executat. Clasa virușilor paraziți poate fi separată în doua: virușii care devin rezidenți în memorie după execuție și cei nerezidenți. Virușii rezidenți în memorie tind să infecteze alte fișiere, pe măsură ce acestea sunt accesate, deschise sau executate.

Virus polimorf (Polymorphic virus) – este un virus care se poate reconfigura în mod automat, pentru a ocoli sistemele de protecție acolo unde se instalează. El este criptat și automodificabil. Un virus polimorfic adaugă aleator octeți de tip garbage la codul de decriptare și/sau folosește metode de criptare/decriptare pentru a preveni existenta unor secvențe constante de octeți. Rezultatul net este un virus care poate avea o înfățișare diferită în fiecare fișier infectat, făcând astfel mult mai dificilă detectarea lui cu un program antivirus.

Virus rezident (Rezident virus) – este un virus care se autoinstalează în memorie, astfel încât, chiar mult timp după ce un program infectat a fost executat, el poate încă să infecteze un fișier, să invoce o rutină (care inițiază o anumită acțiune) sau să monitorizeze activitatea sistemului. Aproape toți virușii care infectează MBR-ul sunt viruși rezidenți.

Marea majoritate a virușilor actuali folosesc tehnici de ascundere. Există și un termen des folosit în acest domeniu; el se numește stealth (ascundere) și desemnează tehnicile folosite de anumiți viruși care încearcă să scape de detecție. De exemplu, un lucru pe care-l pot face virușii rezidenți, este să intercepteze comenzile (funcțiile) DOS de tip DIR și să raporteze dimensiunile originale ale fișierelor, și nu cele modificate datorită atașării virusului. Tehnicile Spawning și File Jumper reprezintă metode de ascundere, fiind însă cu mult mai avansate.

Virușii spioni – Pe lângă numeroșii viruși, cunoscuți la această oră în lumea calculatoarelor, există o categorie aparte de astfel de intruși, care au un rol special: acela de a inspecta, în calculatoarele sau rețelele în care pătrund, tot ceea ce se petrece, și de a trimite înapoi la proprietar, la o anumită dată și în anumite condiții, un raport complet privind corespondența pe Internet și alte acțiuni efectuate de către cel spionat prin intermediul calculatorului.

Practic, un astfel de virus nu infectează calculatorul si, mai ales, nu distruge nimic din ceea ce ar putea să distrugă. El se instalează, de regulă, prin intermediul unui mesaj de email și așteaptă cuminte pană apar condițiile unui răspuns la aceeași adresa. Cât timp se afla în rețea, acesta culege informațiile care îl interesează, le codifică într-un anumit mod, depunându-le într-o lista a sa și apoi le transmite la proprietar.

Un virus de acest gen poate pătrunde și se poate ascunde, de exemplu, într-un fișier tip .doc primit printr-un e-mail. El își începe activitatea odată cu închiderea unui document activ, atunci când verifică dacă acesta a fost infectat cu o anumită parte din codul sau special.

Unii viruși din aceasta categorie își iau masuri ca să nu fie depistați și distruși de programele de dezinfectare.

Într-o secvența de cod, după o verificare și un control al liniilor, intrusul începe să înregistreze diferite mesaje și acțiuni, le adaugă la lista sa secretă și așteaptă condițiile ca să le transmită la destinatar, nimeni altul decât cel care l-a expediat.

In unele variante ale sale de pe Internet acest tip de virus poate face singur o conexiune la o adresă pe care o identifică singur. După aceasta, totul devine foarte simplu. E ca și cum în casa noastră se află permanent cineva care asistă din umbra la toate convorbirile noastre secrete și nesecrete si, atunci când are prilejul, le transmite prin telefon unui beneficiar care așteaptă.

Din păcate, virușii spioni sunt de multe ori neglijați. Nici chiar programele de dezinfectare nu sunt prea preocupate sa-i ia în seama și sa-i trateze, motivul principal fiind acela ca ei nu au o acțiune distructivă directă.

Totuși, pagubele pot fi uneori însemnate, nemaipunând la socoteală și faptul ca nimeni pe lumea aceasta nu și-ar dori să fie controlat în intimitatea sa. Un astfel de spion poate sta mult și bine într-un calculator, dacă nu este depistat la timp și înlăturat de un program antivirus corespunzător. Este, desigur, un adevărat semnal de alarma, pentru simplul motiv ca asemenea intruși există și pot pătrunde în viată noastră și pe aceasta cale.

Sistemul de operare Windows

Sistemul de operare Windows. Istorie

Povestea Windows a început o data cu dezvoltarea unui sistem de operare pentru un primul sistem de calcul personal dezvoltat de IBM mai exact, MS-DOS. Versiunea inițială, DOS 1.0 a fost lansată în luna august a anului 1981 a cărei sursă era alcătuită din aproximativ 4000 de linii de cod scrise în limbaj de asamblare. Rula pe microprocesorul 8086 și avea nevoie de doar 8Kb memorie.

În momentul în care IBM a realizat calculatorul cu hard disc numit PC XT, Microsoft a dezvoltat sistemul de operare DOS 2.0. Se întâmpla în anul 1983. Acesta furniza suport pentru hard și se puteau crea directoare ierarhice uzual vorbind, foldere. Pană în acest moment exista un singur director de fișiere, suportând pana la maxim 64 fișiere in el, în funcție și de spațiul rămas disponibil. Această noua dezvoltare, permitea ca directoarele să conțină subdirectoare precum pana mai înainte conținea fișierele. Memoria necesara crescuse la 24 Kb.

In anul 1984, IBM a anunțat punerea pe piața a sistemului de calcul PC AT cu procesor Intel 80286 cu o accesare a memoriei îmbunătățită și o protejata. Odată ce acest nou sistem de calcul, Microsoft a introdus DOS 3.0 care nu se folosea de noile caracteristici ale procesorului 80826. Pur și simplu, DOS 3.0 rula pe procesorul în cauza ca pe un vechi 8086. Cu toate acestea, DOS 3.0 avea nevoie de 36 Kb spațiu pentru a putea rula. Pentru a putea menține compatibilitatea între sistemul de operare și infrastructură, Microsoft a eliberat o serie de update-uri pentru DOS 3.0, unul dintre ele fiind reprezentat de DOS 3.1, un sistem de operare care suportă conexiunea între calculatoare.

DOS 3.3 a fost lansat în 1987 oferind suport pentru noua linie de calculatoare IBM, PS/2. Nici de aceasta dată sistemul nu era capabil să utilizeze procesorul la adevăratele sale capacitați. Spațiul necesar pentru aceasta versiune de la Microsoft era de 46 KBytes, în cazul standard și putea crește în funcție de extensiile selectate. În acel moment DOS era departe de a utiliza resursele cât mai propice. Caracteristicile și puterea oferite de procesorul Intel Pentium 80486, abia dezvoltat erau greu de utilizat la capacitați maxime de un simplu DOS.

La începutul anilor 1980 Microsoft a pornit dezvoltarea unui sistem cu interfață grafică prin care utilizatorii să poată lucra pe un sistem de calcul cât mai ușor. Practic, ideea a plecat de la a prinde din urma Macintosh, al cărui sistem de operare era de neegalat. Ca idee, Microsoft avea nevoie de o punte de legătură între utilizator și DOS, luând astfel naștere în 1990 primul sistem de operare de la Microsoft cu interfață grafică, numit Windows 3.0, în care erau încorporate caracteristicile cele mai plăcute utilizatorului inspirate de la Macintosh. Acest sistem a fost urmat de Windows 3.1, însă fără modificări majore sau caracteristici în plus notabile.

După o încercare nereușită a Microsoft și IBM de a dezvolta un sistem de calcul complet și performant, cu alte cuvinte un sistem de operare complex și capabil de infrastructura IBM, Microsoft a luat totul pe cont propriu și au dezvoltat un nou sistem de operare, cu o nouă restructurare și noi capacitați. A luat naștere Windows NT (Windows New Technology). Windows NT exploata capacitățile microprocesoarelor contemporane acelei perioade și oferea multitasking într-un mediu cu un singur utilizator sau multi-utilizator.

Prima versiune Windows NT 3.1 a fost lansată în 1993, cu aceeași interfață ca la Windows 3.1. Aceasta dezvoltare a fost un nou sistem de operare pe 32 de biți cu capacitatea de a suporta aplicații mai vechi DOS și Windows, precum și să ofere sprijin infrastructurii OS / 2.

După mai multe versiuni 3.x ale NT, Microsoft a lansat NT 4.0. Windows NT 4.0 are în esență aceeași arhitectură internă 3.x. Schimbarea cea mai notabilă este la arhitectura externa și anume, NT 4.0 oferă aceeași interfață de utilizator ca Windows 95. Schimbarea arhitecturală cea mai majoră consta în mai multe componente grafice care, din modul utilizator au fost mutate în modul kernel. Avantajul acestei schimbări este accelerarea funcționalității acestora. Dezavantajul este că aceste funcții grafice au acum acces la serviciile de sistem low-level, care ar putea avea un impact asupra fiabilității sistemului de operare. În anul 2000, Microsoft a introdus următorul upgrade major, numit acum Windows 2000. Din nou, Executivul de bază și arhitectura fundamentală kernel erau aceleași ca și în NT 4.0, câteva noi caracteristici fiind adăugate. Accentul în Windows 2000 a fost pus pe adăugarea de servicii și funcții cu rolul de a sprijini prelucrarea distribuită.

In 2001, a fost lansat Windows XP cu o configurație atât x86, cât și x64 bit. Windows XP pană în momentul de față este una dintre cele mai longevive și stabile versiuni de sistem ale Microsoft. După 13 ani de rulaj pe piață, atât în variante originale, cât și crack-uite, Mcrosoft a făcut anunțul ce a avut un impact mare și asupra pieței hardware și anume, ca nu mai oferă suport tehnic pentru Windows XP. Astfel sisteme de calcul cu o configurație mai slabă nu au rămas teoretic inutilizabile. Practic, sistemele pot încă rula pe ele însă, suportul pentru update-uri la diferite probleme sau aplicații actualizate specifice acestui sistem nu vor mai exista și astfel, Windows XP în timp va rămâne o amintire plăcută pentru utilizatorii Microsoft.

După Windows XP, și-a făcut apariția pe piață Windows Vista, cu o interfață mult mai modernă. Windows Vista nu a fost niciodată o versiune stabilă. Modificările masive aduse față de XP făceau ca diferite erori să apară la orice pas. Windows Vista nu a fost decât o încercare de a prevesti ceea ce urma să apară și anume, Windows 7. Windows 7, încă utilizat la o scară largă, reprezintă un sistem de operare stabil și modern. Windows 7 poate fi considerat o îmbunătățire la toate capitolele a sistemului Vista.

In anul 2012 Microsoft a lansat un sistem futurist și controversat – Windows 8. Acest sistem de operare este ideal pentru sisteme de calcul cu atingere a ecranului (Eng.: touch-screen). Imediat după, a fost lansat un update al acestuia numit Windows 8.1. Care vine în sprijinul corectării unor bug-uri și mici diferențe la interfața grafică și de rapiditate în execuție. Am spus mai sus sistem futurist. Ei bine, piața hardware este în continuă dezvoltare și tocmai aceasta este și ideea scoaterii din mentenanță a sistemului Windows XP (nemaifăcând față arhitecturii hardware disponibilă în ziua de azi), de asemenea tot mai des apar monitoare, laptopuri cu touch-screen. Utilizarea unui astfel de sistem de calcul cu Windows 8, respectiv 8.1 este foarte facilă și distractivă în același timp. Hardurile de tip SSD au început să invadeze piața din ce în ce mai mult și la preturi tot mai avantajoase. Spre deosebire de OSX să zicem, Windows 8 și 8.1 utilizează foarte mult hard discul în taskurile zilnice. Astfel, asemenea sisteme ca 8 și 8.1 rulate de pe un hard SSD sunt foarte rapide. Microsoft Windows a lansat în 2014, un technical preview la noul sistem ce nu mai are mult pana să apară pe piață și anume, Windows 10. La o prima vedere nu pare foarte schimbat față de Windows 8.1 la interfață. Rămâne de văzut și ca mod de funcționare și kernel ce schimbări prezintă, bineînțeles dacă acestea există.

Windows – kernel

Din punct de vedere kernel, Microsoft a tot făcut schimbări, mai mult sau mai puțin spre bine, toate însă având ca scop rapiditatea în execuție a proceselor și utilizarea la cel mai înalt nivel al resurselor. În momentul de față, prea puțin din conceptele kernelului DOS mai sunt disponibile pe Windows 8, 8.1 sau 10. De la o combinație de microkernel-exokernel-kernel hibrid-kernel monolitic prezente în DOS, în momentul de față sistemele Microsoft au la bază ca implementare a nivelului privat kernelul hibrid.

Amănunțit vorbind, istoria dezvoltării sistemelor de operare Microsoft enumeră două kerneluri de bază, o singură schimbare majoră și numeroase mici modificări ale acestora. Sistemele Windows 9x (Windows 95, Windows 98) au la bază un kernel predominant monolitic. Structura acestuia este prezentă în figura Fig.12

Fig.12

Odată cu dezvoltarea kernelului New Technology de la Microsoft, abordarea predominant monolitică a fost schimbată cu un nou tip de kernel hibrid prezentat în Fig.13. Acest kernel stă la baza sistemelor de operare moderne de la Microsoft cum ar fi Windows XP, Vista, 7, 8 sau 8.1.

Spațiul utilizator în sistemele NT suportă patru tipuri de procese, după cum urmează:

– Procese suport de sistem: Includ serviciile care nu sunt prevăzute în cadrul sistemului de operare Windows, cum ar fi procesul de conectare sau managerul de sesiune.

– Procese de serviciu: Alte servicii Windows cum ar fi procesul de logare.

– Procesele aplicațiilor: Pot face parte din următoarele 5 tipuri: Win32, Posix, OS / 2, Windows 3.1, sau MS-DOS. Windows oferă posibilitatea utilizatorului să ruleze pe o versiune nouă de sistem, programe ale sistemelor mai vechi cu ajutorul unui proces alocat fiecărui subsistem protejat, a cărui adresă este protejată și diferențiată de alte subsisteme sau aplicații cu ajutorul Componentei Executive. Un subsistem oferă o interfață grafică sau o consolă pentru interacțiunea cu utilizatorul și un API pentru mediul particular în care rulează. De exemplu, aplicațiile create în și pentru OS/2 pot rula pe orice versiune Windows deoarece, li se alocă un proces potrivit subsistemului OS/2, astfel aplicația se vede în mediul pentru care a fost creată și poate rula în parametrii normali. Cel mai important subsistem este Win32, deoarece a fost implementat atât pentru Windows 2000 cât și pentru versiuni mai vechi ca Windows 98. Nu toate caracteristicile din Windows 2000 sau versiuni mai noi sunt valabile și pentru Windows 98, dar toată implementarea Win32 de pe cel din urmă este viabilă pentru celelalte.

– Subsistemele de mediu: Expune serviciile native Windows pentru aplicațiile utilizator și oferă un mediu de sistem de operare pentru rularea proceselor utilizator. Subsistemele suportate sunt Win32, Posix, și OS / 2. Fiecare subsistem de mediu include biblioteci dinamice (DLL-uri) care transformă apelurile aplicațiilor utilizator în apeluri Windows.

Spațiul Kernel în sistemele de tip NT este format din următoarele părți principale:

– Componentele Executive: Conține serviciile de bază ale sistemului de operare, cum ar fi gestionarea memoriei, proceselor și managementul firelor de execuție, securitate, managementul dispozitivelor de intrare/ieșire și comunicarea între procese.

– Componenta Kernel: Este unul dintre componentele cele mai fundamentale ale sistemului de operare și constă în ordonarea firelor de execuție și a proceselor în execuție, tratarea excepțiilor și a întreruperilor și sincronizarea multiprocesor.

– Nivelul de abstractizare hardware: reprezintă componenta ce face legătură între sistemul de operare și infrastructura hardware. Modul de funcționare este aparent simplu, componentele hardware primesc comenzi și trimit răspuns prin acest nivel, concret se ocupă de accesarea memoriei (Eng: DMA – Direct Memory Access), timer, suport pentru multiprocesarea simetrică.

– Drivere de dispozitiv: include atât sistemul de fișiere cât și driverele dispozitivelor hardware de intrare/ieșire. Această componenta, prin apeluri de funcții trimite către dispozitivele externe dorințele utilizatorului.

– Componenta Ferestre și grafică de sistem: Implementează interfața grafică cu utilizatorul (GUI) prin funcții, cum ar fi crearea de ferestre, controlul interfeței din perspectiva utilizatorului și desenarea pe ecran a acestora.

– Manager I/O: Oferă un cadru (framework) prin care dispozitivele de intrare/ieșire sunt accesate de către aplicații

– Managerul Cache: îmbunătățește rapiditatea execuției pe sistemul de operare, salvând în memoria cache date pentru a fi accesate rapid mai târziu.

– Managerul de obiecte: Creează, gestionează și șterge obiectele de tip Windows Executive și tipuri de date abstracte care sunt folosite pentru a reprezenta resurse ca procesele, firele de execuție și obiecte de sincronizare. Se impun reguli uniforme pentru reținerea, numirea, și stabilirea securității obiectelor.

– Managerul Plug and Play: Determină care drivere sunt necesare în utilizarea anumitor dispozitive și le încarcă.

– Power Manager: Coordonează gestionarea energiei între diverse dispozitive și poate fi configurat pentru a reduce consumul de energie prin punerea procesorul în sleep.

– Monitorizarea securității: reprezintă rutinele de acordare a permisiunilor obiectelor. Cu alte cuvinte, Windows folosește aceleași reguli de acces și validare pentru toate obiectele protejate ca fișiere, procese etc.

– Managementul memoriei virtuale: Coordonează memoria sistemului de calcul transferând adresele logice de memorie ale proceselor către nivelul fizic.

– Managerul de procese și threaduri: Creează, șterge și urmărește obiectele de tip fir de execuție și proces.

– Managerul regiștrilor: Gestionarea fluxului informațiilor în regiștrii

Pentru a înțelege buna funcționare a sistemului de operare Microsoft Windows, să luam un exemplu și să îl urmărim îndeaproape, pas cu pas. Exemplul ales este printarea unui text.

Din spațiul Utilizator, să presupunem ca o aplicație responsabila cu printarea unui text la o imprimantă este rulată. Din acest moment, un proces responsabil pentru crearea mediului de rulare potrivit tipului de aplicație este inițializat, să zicem ca mediul ales este Win32. Apelul procesului utilizator prin subsistemul de mediu Win32 este transformat în apel de sistem Windows și astfel se ajunge cu execuția în modul nucleu. Aici cu ajutorul managementului memoriei virtuale sunt salvate de pe stiva sistemului de operare responsabilă cu ordinea proceselor adresele procesului utilizator, respectiv datele necesare în memorie. Prin Managerul de I/O, Drivere de dispozitive și sisteme de fișiere se face accesul direct la imprimantă în vederea executării comenzii de printare. În cazul în care dorim foaia printată de mai multe ori sunt salvate date în memoria Cache sau regiștrii pentru o rapidă accesare mai rapidă ulterior.

Fig. 13

Windows. Securitate.

Securitatea în Windows este tratată simetric pentru fiecare obiect în parte și anume controlul este asigurat după aceeași rutină obiectelor din clasele semafoarelor, threadurilor, proceselor, fișierelor și altele. Controlul accesului este guvernat de doua entități: un simbol de acces asociat fiecărui proces respectiv, un descriptor de securitate asociat fiecărui obiect pentru care accesul dintr-un alt proces este posibil.

Schema controlului accesului

Când un utilizator se loghează pe Windows, sistemul de operare utilizează o schemă bazată pe user și parolă pentru autentificare. Dacă logarea este acceptată, un proces este creat pentru user și un simbol de acces este atribuit acestui obiect abia creat. Simbolul de acces conține un ID de securitate cere are scopul de a-i spune sistemului ce drepturi are. Orice alte obiecte create de procesul utilizator inițial, vor moșteni de la acesta simbolul de acces, cu alte cuvinte vor avea aceleași permisiuni de acces.

Acest simbol de acces are două roluri principale :

1) Păstrează toate informațiile necesare securității în același loc (ID) pentru reduce timpul de execuție necesar validării. Când un proces asociat procesului utilizator dorește acces, subsistemul de securitate verifică simbolul de acces asociat procesului și determină ce privilegii i se acordă.

2) Permite fiecărui proces sa-si modifice caracteristicile de securitate și acces fără să afecteze alte procese care rulează în numele utilizatorului.

Semnificația majoră a celui de al doilea punct are de a face cu privilegiile asociate unui utilizator concret vorbind, obiectelor acestuia. Simbolul de acces indică sistemului de operare ce privilegii poate avea userul. În general, simbolul de acces este inițializat cu toate privilegiile, dar cu stare inactivă, adică permisiunile există dar nu sunt valabile. Ulterior, dacă unul din procesele utilizator dorește să execute o operație ce necesită anumite favoruri, procesul poate activa privilegiul respectiv și încearcă accesul. Este astfel necesar să se țină într-un singur loc din sistem toate informațiile necesare accesului, deoarece în cazul activării unui privilegiu pentru unul din obiecte, atunci acest drept este valabil pentru toate procesele ce aparțin procesului utilizator.

Descriptorul de securitate este asociat fiecărui obiect pentru care accesul altor procese la el este posibil. Să consideram un obiect al sistemului de operare și să discutam despre descriptorul de securitate folosindu-ne de el. Componenta principală a unui descriptor de securitate este o listă de controlare a accesului care specifică drepturile de acces asupra obiectului de mai sus pentru diferiți utilizatori și grupuri de utilizatori. Când un proces dorește să acceseze acest obiect, ID-ul de securitate al obiectului este verificat în lista de control a accesului și se determină dacă accesul va fi permis. Când aplicația dorește acces la un obiect securizat, Windows verifică dacă descriptorul de securitate al obiectului respectiv permite accesul aplicației utilizator și în caz pozitiv, salvează rezultatul pentru o rapidă accesare ulterioară.

Un aspect important în securitatea sistemului de operare Windows, este reprezentat de conceptul de personificare, sau copiere a identității. Acesta abordare simplifică securitatea într-o structură client/server, în care serverul copiază temporar identitatea clientului, astfel poate evalua permisiuni de acces folosind drepturile clientului respectiv. După accesare, serverul revine la propria identitate.

După cum am văzut mai sus, cele mai importante entități în securitatea Windows sunt simbolul de acces, respectiv descriptorul de securitate. Să abordam pe larg din ce sunt alcătuite fiecare dintre ele:

Simbolul de acces (Eng.: Access Token)

1) ID-ul de securitate (Eng.: SID): Este reprezentat în general de numele utilizatorului și este unic pentru fiecare utilizator în parte și folosește la diferențierea utilizatorilor, respectiv a permisiunilor lor.

2) Grupuri de ID-uri de securitate (Eng.: SIDs): reprezintă o listă a grupurilor din care face parte un utilizator. Un grup este pur și simplu un set de ID-uri de utilizator în scopul controlării accesului. Fiecare grup are un grup unic SID. Accesul la un obiect poate fi definit pe baza unor SID-uri fundamentale, individuale, sau combinații de SID-uri. Pe scurt SID-urile au aceleași funcționalități ca ID-urile, cu diferența că sunt formate din grupuri de ID-uri și se aplică în cazul grupurilor de utilizatori pentru determinarea permisiunilor.

3) Privilegiile: reprezintă o listă de servicii de securitate ale sistemului de operare pe care un user le poate apela. De exemplu un simbol de acces abia creat reprezintă el însuși un set de privilegii. Majoritatea userilor nu au foarte multe privilegii.

4) Proprietarul implicit: Constă în faptul ca dacă un proces creează un alt obiect, acest câmp specifică cine este proprietarul noului obiect creat. În general, proprietarul noului obiect este exact proprietarul procesului ce a creat obiectul respectiv.

5) Lista implicită de control a accesului (Eng.: ACL- Access Control List) reprezintă o listă în care sunt specificate situațiile în care un obiect creat de un proces utilizator poate fi accesat. Utilizatorul sau un grup de utilizatori poate modifica această listă în cazul în care sunt creatorii acestui obiect.

În figura Fig. 14 este prezentatp structura unui simbol de acces:

Fig. 14

Descriptorii de securitate (Eng.: Security Descriptors)

1) Flags: Definesc tipul și conținutul unui descriptor de securitate și indică dacă SACL și DACL sunt prezente. SACL (Eng.: System Access Control List) reprezintă o listă prin care se permite utilizatorilor să acceseze un obiect, în timp ce DACL (Eng.: Discretionary Access Control List) reprezintă o listă prin care se identifică dacă un anumit utilizator are drept sau nu de a accesa un obiect.

2) Proprietarul (Eng.: the owner): în general, poate efectua orice acțiune asupra unui descriptor, de asemenea poate modifica și DACL. Proprietarul poate fi un utilizator sau un grup de utilizatori.

3) Lista sistemului de control al accesului (SACL): Specifică ce fel de operații sunt posibile asupra unui obiect. O aplicație trebuie să aibă permisiunile corespunzătoare în simbolul de acces pentru a putea citi și scrie SACL a oricărui obiect. Prin aceasta se previne accesul aplicațiilor neautorizate de a citi sau scrie lista de control a accesului.

4) Lista arbitrară de control al accesului (DACL): Stabilește ce utilizatori sau grupuri de utilizatori pot accesa un obiect în vederea efectuării anumitor operații. DACL este formată dintr-o listă de intrări care definesc controlul accesului (ACE – Access Control Entries).

Acești descriptori se regăsesc în figura Fig. 15.

Fig. 15

Când un obiect este creat, procesul părinte al obiectului poate atribui atributul de proprietar în ID-ul de securitate sau în grupul de ID-uri de securitate din simbolul de acces. Acest proces nu poate atribui un proprietar care nu se găsește în simbolul de acces curent. Orice alt proces care are dreptul de a schimba proprietarul asupra obiectului o poate face, însă cu aceeași condiție de mai sus: Proprietarul să se regăsească în simbolul de acces. Motivația acestei restricții are la bază prevenirea ștergerii urmelor unui utilizator care încearcă să execute acțiuni neautorizate asupra obiectelor.

Spre exemplu, A este atribuit ca proprietar asupra obiectului O. În cazul în care printr-un proces, utilizatorul B ar putea deveni proprietar în detrimentul lui A, se poate folosi de permisiunile lui A pentru a putea avea acces la diferite acțiuni neautorizate lui. Astfel, dacă B nu se regăsește în lista de ID-uri, nu i se poate oferi dreptul de a fi proprietar asupra unui obiect. Dacă i se oferă acest drept, înseamnă ca B deja exista în lista de ID-uri și prin urmare, are deja setul de permisiuni bine stabilit.

Să vorbim puțin și despre lista de control a accesului (Eng.: Access Control List – ACL ). ACL reprezintă listele ce mențin ordinea în controlarea accesului utilizatorului sau proceselor utilizator asupra obiectelor. Fiecare listă este formată dintr-un antet format simetric pentru toate entitățile și un număr variabil de permisiuni care controlează accesul. Fiecare intrare din lista specifică un ID sau un grup de ID-uri și o interfață de acces care definește drepturile alocate ID-ului sau grupului de ID-uri respective. când un proces Încearcă să acceseze un obiect, managerul de obiecte din Windows citește ID-ul sau grupul de ID-uri de securitate din simbolul de acces și scanează obiectele din DACL în care, spuneam mai sus, se găsesc utilizatori sau grupuri de utilizatori ce pot accesa un obiect în vederea efectuării anumitor operații. Dacă în urma căutării în DACL s-a găsit o potrivire, mai exact ID-ul citit există și în DACL, spunem că o entitate este găsită și procesul are drepturile specificate de simbolul de acces pentru acea entitate de control a accesului (Eng.: Access Control Entity – ACE). În figura Fig. 16 este prezentată o listă de control a accesului în care se regăsesc mai multe entități.

Fig. 16

In figura Fig. 17 se pot observa caracteristicile interfeței de acces.

Fig. 17

Formată din 32 de biți, ultimii 16 biți din masca de acces sunt foarte importanți, deoarece ei fac deosebirea între tratarea accesului diferitelor obiecte din Windows. Spre exemplu, dacă obiectul este un fișier, atunci pe bitul 0 din cei 16 vom avea accesul la citire (File_Read_Data), în vreme ce pentru un obiect de tip eveniment vom regăsi pe bitul 0 accesul la statusul evenimentului (Event_Query_Status).

Primii 16 biți sunt standard, valabili pentru toate tipurile de obiecte. 5 din cei 16 biți se referă la accesul standard, după cum urmează:

– Sincronizare: Permite sincronizarea execuției cu unele evenimente asociate cu obiectul. Practic, obiectul poate fi pus într-o funcție de așteptare.

– Scrierea proprietarului: Permite unui proces să modifice proprietarul obiectului. Această situație este folositoare deoarece proprietarul unui obiect poate schimba protecția acestuia, de exemplu să scrie accesul DAC

– Scrierea DAC: Permite aplicației să modifice DACL, prin urmare protecția obiectului. Putem astfel face foarte ușor legătura dintre Scrierea DAC, respectiv scrierea proprietarului și să ne dăm seama de importanța lor. Un proprietar, cum spuneam un punct mai sus, poate modifica permisiunile de acces și protecție ale unui obiect. Suprascriind proprietarul, prin noua intrare alt utilizator (fie el uman, grup sau aplicație) poate modifica permisiunile asupra obiectului prin scrierea DAC.

– Controlul citirii: Permite aplicației să interogheze proprietarul și câmpurile DACL din descriptorul de securitate ale obiectului.

– Permite aplicației să șteargă obiectul.

Găsim printre cei 11 biți ramași de discutat 4 câmpuri universale. Acești biți oferă o cale facilă în a seta diferite cazuri de accesare pe un număr mare de obiecte diferite și sunt reprezentați de:

– Citire: Permite doar accesul de citire

– Scriere: Permite accesul de scriere

– Executare: Permite accesul execuției obiectului

– Toate: Acces total la toate cele de mai sus

Ultimii doi biți reprezentați de Securitatea accesării și Maximul permis semnifică după cum urmează:

– Securitatea accesării: Permite modificarea auditului și controlul obiectului. În orice caz, pentru un ID sau un grup de ID-uri nu este suficient ca acest bit să fie setat în lista de control a accesului (ACL), ci și în simbolul de control al procesului privilegiile trebuie să fie setate corespunzător.

– Maximul permis reprezintă un bit care modifică algoritmul sistemului de operare în vederea scanării DACL pentru ID-ul respectiv. Altfel spus, permite proprietarului obiectului să definească un set de drepturi de acces care reprezintă maximul permis pentru un utilizator.

Windows. Criptarea fișierelor și a directoarelor

Una dintre modalitățile prin care ne putem păstra fișierele în siguranță este reprezentată de criptarea fișierelor de sistem (Eng.: Encrypting File System – EFS). Prima dată EFS a fost introdusă în Windows 2000. De atunci este prezent pe toate noile sisteme de operare de la Microsoft.

Pentru a cripta un fișier tot ceea ce trebuie să facem este să deschidem secțiunea de Proprietăți a fișierului, urmărind apoi Setările avansate. Avem posibilitatea de a cripta fișierul sau de a-l comprima, una din două, nicidecum ambele simultan. În cazul în care un fișier sau un director a fost deja comprimat și dorim să îl criptam, mai întâi va fi dezarhivat după care se v-a începe procedura de criptare. Un fișier criptat se observa prin evidențierea să de către Explorerul Windows prin schimbarea culorii în verde.

Sa vedem mai de aproape, din punct de vedere al programării ce se întâmplă mai exact și cum criptarea folderelor sau a fișierelor conduce la prevenirea accesării neautorizate a datelor. EFS efectuează o serie de pași până ajunge să cripteze un fișier. Prima data EFS generează o cheie de criptare (Eng.: File Encryption Key – FEK). Se folosește apoi de un algoritm specific de criptare pentru a cripta fișierul folosind FEK. Algoritmul utilizat depinde de versiunea de sistem Windows. Toate versiunile Windows 2000 folosesc standardele de criptare a datelor extinse (Eng.: Expanded Data Encryption – DESX). DESX este un standard care are la bază criptarea utilizând standardul DES. DES are la bază un algoritm numit DEA (Data Encryption Algorithm) implementat în 1976, care se folosește de cuvinte cheie secrete și chei de criptare scurte între 56 și 64 de biți, mai târziu ajungându-se și la chei de 256 biți. DESX sau DES-X cum mai este denumit în unele cărți de referință, este o îmbunătățire a DES în ceea ce privește atacurile ce utilizează forța brută. Cheia secretă în DESX este pe 184 biți. Windows XP utilizează DESX ca algoritm de bază, dar poate utiliza, la alegere și Des-triplu (3DES). 3DES utilizează un algoritm de criptare numit TDEA care se folosește de 3 chei în criptarea, fișierului. S-a demonstrat ca un algoritm din standardul DES poate fi spart în 24 de ore, însă 3DES se crede ca ar fi foarte sigur deși, au existat atacuri teoretice și asupra lui în care s-ar fi demonstrat eventuale vulnerabilități. Windows XP Service Pack X suportă Standardele criptării avansate (Eng.: Advanced Encryption Standard – AES), de asemenea DESX și 3DES. De altfel, AES este predefinit ca metodă de criptare. AES, sau algoritmul Rijndael reprezintă un algoritm standardizat care folosește iterații de matrici pentru a determina cele trei chei care produc criptarea. Lungimile cheilor sunt de 128 biți pentru prima cheie generată după 10 iterații, 192 biți la a doua cheie generată după 12 iterații, respectiv 256 biți cheia a treia după 14 iterații. Al doilea pas după generarea FEK, în criptarea unui fișier, constă în extragerea cheii publice din certificatul EFS din profilul utilizatorului. Dacă acesta nu există, este înscris un certificat EFS de bază de la o întreprindere autorizată în domeniu. EFS criptează FEK folosind cheia publică din certificat, apoi o salvează în câmpul de date decriptate (Data Decryption Field – DDF) în antetul fișierului. De asemenea în antetul fiecărui fișier criptat există un câmp de date recuperate (Data Recovery Field – DRF). Acest câmp conține o cheie criptată folosind certificatul de recuperare al fișierelor. Avem astfel în antetul unui fișier criptat două câmpuri DDF și DRF. când un user deschide un fișier criptat, cheia privată a acestuia decriptează FEK din câmpul DDF din antet, apoi cu FEK decriptează fișierul. Doar cheia userului care a criptat fișierul poate decripta FEK, asigurându-se astfel ca fișierul este în siguranță. Dacă este necesar, un agent de recuperare poate de asemenea să decripteze fișierul folosind cheia FEK din DRF, astfel doar userul care a criptat fișierul sau un agent desemnat ca putând fi recuperator pot decripta fișierul.

Sa criptez un folder, sau fișierele din el, aceasta este întrebarea..?

Când un folder este criptat, se securizează prin criptare toate fișierele din el. Ulterior, dacă o să adăugam un nou fișier în folderul deja securizat, automat noul fișier va fi și el criptat fără alte implicații din partea utilizatorului. Criptând un singur fișier și pus într-un folder necriptat, nu înseamnă ca și acel folder sau tot conținutul sau va fi securizat, ceea ce reprezintă un avantaj pentru criptarea întregului folder. Un alt avantaj în favoarea criptării întregului folder îl constituie rutina de securizare a unui fișier. Windows, salvează o copie a fișierului ce se dorește a fi criptat și când securizarea fișierului în original s-a efectuat cu succes, copia este ștearsă. Bineînțeles, clusterele responsabile cu dublura fișierului sunt eliberate și pot fi refolosite pentru a stoca alte date, însă datele recente încă sunt prezente pe hard, ceea ce se numește „slack space”. Cu programe specifice, dublura necriptată a fișierului proaspăt securizat poate fi extrasă fără prea mari bătăi de cap de pe hard disk. Criptând întreg folderul de fișiere nici o copie a fișierelor, respectiv folderului nu este creată.

Spuneam mai sus că un fișier nesecurizat copiat într-un folder criptat va fi la rândul sau criptat imediat. Ei bine, este foarte important de știut ca odată securizat, fișierul proaspăt copiat chiar dacă v-a fi mutat iar în locația inițială sau oriunde altundeva pe hard, tot securizat va rămâne. Acest lucru se schimba însă, dacă este copiat pe un dispozitiv cu arhitectura sistemului de fișiere FAT sau FAT32.

Pentru ca un fișier criptat să poată fi decriptat de mai mulți useri, este nevoie de criptarea acestuia folosind cheile tuturor userilor, astfel antetul va avea mai multe câmpuri DDF pentru fiecare user în parte.

Windows 8.1, permite criptarea întregului disc hard, bineînțeles dacă tipul și infrastructura hardului permite acest lucru. Este ideal acest lucru în cazul pierderii mașinii de calcul, spre exemplu. Fără utilizator și parolă nu se poate autentifica pe sistemul de operare, astfel datele nu pot fi vizualizate sau decriptate. Tehnologia care permite acest lucru se numește BitLocker.

Sistemul de operare Linux

Sistemul de operare Linux. Istorie.

Toate sistemele de operare moderne își au originea în 1969, când Dennis Ritchie și Ken Thompson au dezvoltat limbajul de programare C și sistemul de operare Unix la AT&T Bell Labs.

Codul sursă a fost gratuit, fiecare îl putea vedea, copia sau completa menționând în acest caz pe cei din Berkeley California. În 1975, AT&T a luat decizia de a comercializa Unix, însă deja mai bine de jumătate din sursa codului existent în acel moment era scris de alții. Celor de la Berkeley California nu le-a convenit faptul ca cineva făcea acum bani pe munca lor, astfel au acționat în instanță pentru a găsi o soluție și a-și cere dreptatea. Totul s-a terminat relativ prost pentru Berkeley dar și pentru informatică, luând naștere doua sisteme de operare Unix – AT&T Unix, varianta oficiala și BSD Unix (BSD – Berkely Software Distribution). A culminat rău pentru informatică deoarece, deși la prima vedere pare interesant și de bun augur existenta concurenței pe piață și posibilitatea de a alege dintr-o gamă vastă de produse, de această dată vom vedea în decada următoare harababura la care s-a ajuns, derivând din BSD Unix zeci de sisteme de operare care făceau același lucru. BSD Unix au rămas la ideea de open spurce și astfel au apărut o serie de descendenți precum FreeBSD, OpenBSD, NetBSD, DragonFly BSD sau PC-BSD care sunt active și în ziua de azi.

In 1980, majoritatea marilor companii din industria calculatoarelor au pornit dezvoltarea propriilor sisteme de operare având la bază BSD Unix. Au apărut astfel AIX dezvoltat de IBM, SunOS dezvoltat de Sun Microsystems, cunoscut în zilele noastre de Solaris, HP-UX dezvoltat de HP și multe alte zeci de companii. Rezultatul a fost nu foarte plăcut, datorită faptului ca majoritatea făceau în general același lucru în moduri parțial diferite. Cum limba română, spre exemplu, are dialecte, așa am putea supranumi zecile de sisteme de operare apărute pe baza BSD Unix – dialecte pentru BSD Unix. când Richard Stallman a hotărât să pună capăt epocii separării Unix și reinventării roții de către marile companii, a luat naștere conceptul unui nou sistem de operare numit GNU (GNU is Not Unix) ce avea ani mai târziu să devina rădăcina sistemului de operare Linux. Richard Stallman dorea să repete partea bună a decadei anterioare și anume, să creeze un sistem de operare disponibil gratuit pentru toata lumea, lucrând împreună. Foarte multe dintre elementele liniei de comanda ale GNU sunt utilizate și în prezent pe Linux

Anii 90 au început cu Linus Torvalds, un student suedez în Statele Unite ale Americii, care a scris un nou kernel POSIX. Deținător al unui calculator 386, a pus codul sursa on-line, gândindu-se că nu v-a ajuta cu nimic exceptând resursele de pe 386 pentru care fusese creat. Ei bine, rezultatul a fost cu totul altul, mulți îmbrățișând combinarea acestui nucleu cu instrumentele GNU. În acest moment putem spune ca a luat naștere sistemul de operare Linux.

In ziua de azi, milioane de calculatoare personale și 70% din serverele web ale lumii rulează Linux. Datorită faptului ca Linux este stabil și gratuit, se numără printre cele mai răspândite sisteme de operare de pe glob. Pentru Linux, versiunea 4.0 a kernelului a fost lansată în aprilie 2015. Codul său sursă a crescut cu mai multe sute de mii de linii (în comparație cu versiunea 3.19, din februarie 2015), datorită contribuțiilor a mii de dezvoltatori plătiți de sute de companii comerciale precum: Red Hat, Intel, Samsung, Broadcom , Texas Instruments, IBM, Novell, Qualcomm, Nokia, Oracle, Google, AMD și chiar Microsoft (si multe altele).

Distribuția Linux

Distribuția Linux reprezintă o colecție software, de regulă gratuită, în topul kernelului Linux. O astfel de distribuție poate fi reprezentată de pachete software pentru servere, diferite instrumente de gestionare a sistemului, documentații și multe alte aplicații desktop într-o zonă software centrală bine securizată.

Cele mai importante astfel de distribuții sunt:

1) Red Hat: Este o companie înființată în anul 1993 specializată în dezvoltarea Linux. La Red Hat se găsesc sute de specialiști Linux și este cunoscută pentru suportul excelent acordat. Produsele create aici (Red Hat Enterprise Linux și Fedora) nu sunt comercializate și de când sunt lansate sunt gratuite. Red Hat Enterprise Linux (RHEL) este bine testat înainte de lansare și este oferit suport pană la 7 ani pentru o versiune, în timp ce Fedora este o distribuție cu actualizări rapide, dar fără suport.

2) Ubuntu: Canonical și-au început activitatea lansând CD-uri cu Ubuntu Linux gratuit în 2004 și rapid au devenit populari pentru utilizatorii de rând (majoritatea migrând de la Microsoft Windows). Canonical vrea ca Ubuntu să fie un sistem de operare desktop ușor de utilizat din punctul de vedere al graficii, fără ca utilizatorul să fie nevoit să utilizeze sau să vadă măcar o linie de comanda. De asemenea Canonical dorește să facă profit prin vânzarea serviciilor de suport pentru Ubuntu.

3) Debian: Nu este nicio companie în spatele Debian însă, sunt mii de dezvoltatori bine organizați care la fiecare doi ani aleg un alt lider de proiect. Debian este văzut ca unul dintre cele mai stabile distribuții Linux, el fiind chiar baza fiecărei lansări Ubuntu. Debian vine în trei versiuni: stabilă, testare și instabilă. Fiecare nouă lansare a sistemului Debian este denumită după cate un personaj din filmul Toy Story.

4) Alte versiuni ale Linux ar mai fi CentOS, Oracle Enterprise Linux sau Scientific Linux care sunt bazate pe Red Hat Enterprise Linux și împărtășesc în mare parte aceleași principii, directoare sau tehnici de administrare a sistemului. Distribuțiile Linux Mint sau Edubuntu au la bază Ubuntu și astfel împart destule instrumente cu Debian. În lume există sute de distribuții Linux.

Linux. Kernel

Kernelul Linux a luat naștere în anul 1991, când Linus Torvalds l-a creat la vârsta de 22 de ani. În ciuda structurii monolitice a kernelului, Linux este foarte bine structurat. Cu toate ca este structurat corespunzător, este inevitabil ca toate modulele să interacționeze unele cu altele.

Cele mai importante sarcini ale kernelului sunt:

1) Kernelul cu ajutorul procesorului, este responsabil pentru detaliile tehnice ale schimbului de sarcini. Fiecare proces în parte trebuie să aibă impresia ca procesorul este tot timpul disponibil. Toate acestea se realizează salvând stările dependente de procesor ale proceselor, înainte ca resursele procesorului să fie eliberate și să intre în starea de repaus. când procesorul este reactivat, stările salvate anterior sunt prelucrate. Acest procedeu poartă numele de comutare de sarcini.

2) Nucleul decide pentru cât timp este împărțit procesorul proceselor existente. Proceselor importante le este acordat un timp mai îndelungat procesorul contrar, proceselor mai slab cotate din punct de vedere al importanței sau priorității lor le este acordat procesorul o perioada mai scurtă de timp. Acest procedeu de luare a deciziilor în ceea ce privește prioritatea în acordarea procesorului poartă numele de planificare (Eng.: Scheduling).

În figura Fig. 18 este prezentata structura kernelului Linux.

Fig. 18

Să vorbim pe rând, de fiecare element din schema de mai sus. În spațiul utilizator se regăsesc

– aplicațiile utilizator ce pot fi de orice natură, browser, editor, etc.

– Librăriile în C: Așa cum le spune și numele, librăriile în C sau din engleză GNU C Library (glibc) sunt scrise în limbajul de programare C și prezintă o mulțime de roluri care vin în ajutorul kernelului sau aplicațiilor utilizator. Unul dintre cele mai importante este să ajute kernelul în alocarea memoriei pentru fiecare aplicație în parte. În momentul în care aloca memorie RAM, kernelul trebuie să știe ce pagini de memorie au fost deja alocate și ce pagini de memorie sunt libere pentru a nu suprascrie memoria. Alocarea și dealocarea memoriei fiind sarcini foarte frecvente și este din această cauză necesar ca aceste activități să se deruleze cât mai rapid posibil. Kernelul poate aloca sau dealoca pagini întregi de memorie, iar dividerea acestora în părți mici este rolul acestor librării, mai exact librăria standard (Standard Library). Alt rol extrem de important este definirea apelurilor de sistem sau definirea facilităților de bază precum „malloc”, „printf”, „exit” etc.

Să discutăm și despre elementele majore din kernel:

– Driverele: Rolul driverelor de dispozitiv este să facă legătura între aplicațiile utilizator și dispozitivele de intrare/ieșire prezente în componenta sistemului de calcul. De exemplu, hard discuri, placi de sunet, de rețea, video, imprimantă etc. Sarcina driverelor constă în facilitarea comunicării cu dispozitivele prin fișiere de dispozitiv cu alte cuvinte, să permită datelor să fie citite de la un dispozitiv sau să fie scrise către acesta într-un mod cât mai convenabil. Aceste fișiere de dispozitiv sunt interpretate de sistemul de operare ca fiind niște fișiere normale. Dispozitivele se împart în două categorii:

1) Dispozitivele de caractere – livrează un flux continuu de date pe care aplicațiile le citesc secvențial. Accesul la date nu se poate face aleator. Aceste dispozitive permit datele să fie citite și scrise bit cu bit sau caracter cu caracter. Exemplu de astfel de dispozitive : modemurile.

2) Dispozitivele de tip bloc – permit aplicațiilor să acceseze datele aleatoriu și de la orice poziție. Dispozitivele de acest fel sunt reprezentate de exemplu de hard disc, unde aplicațiile pot accesa orice poziție pe disc pentru a putea citi datele. Datele pot fi citite sau scrise numai în blocuri care de obicei sunt de 512 bytes, adică 4096 biți.

– Networks: Câmpul Networks din figura de mai sus este reprezentat de plăcile de rețea controlate tot de driverele de dispozitiv însă, au un modul separat în kernel deoarece nu pot fi manipulate prin fișiere de dispozitiv. Acest lucru se datorează faptului că data este împachetată sub diferite protocoale în timpul comunicației pe internet. Când datele sunt primite, prima dată sunt analizate de kernel, apoi sunt trimise către aplicații, iar când datele sunt trimise, nucleul asamblează datele în funcție de protocol apoi sunt expediate.

– fișierele de sistem: Sistemele linux sunt formate din sute de mii dacă nu milioane de fișiere ale căror date sunt stocate pe hard sau alte dispozitive de tip bloc. Pentru a ține ordinea sunt utilizate sisteme de fișiere ierarhizate care permit ca datele stocate să fie organizate în structuri de cataloage (foldere), de asemenea sistemele de fișiere mențin controlul informațiilor de securitate (proprietar, drepturi de acces și așa mai departe).

– VFS (Eng.: Virtual Filesystem): Kernelul trebuie să ofere un nivel software de abstractizare a caracteristicilor de nivel scăzut al fișierelor. Acest modul se numește VFS și acționează ca o interfață de nivel scăzut pentru toate sistemele de fișiere implementate și o interfață de nivel înalt pentru apelurile de sistem prin care procesele utilizator pot accesa funcțiile sistemelor de fișiere.

Securitatea în Linux

Utilizatorii și grupurile de utilizatori ai sistemului de operare pot fi gestionați la nivel local sau pe un domeniu. Acești utilizatori sau grupuri de utilizatori pot deține propriile fișiere și se numesc proprietari ai fișierelor respective. Practic, fiecare fișier are un proprietar sau un grup de proprietari.

În vederea securității traficului pe net și pe Linux avem la fel ca la Windows, Firewall. Prin profiluri de securitate definim cât de sever să fie Firewall-ul cu traficul de date. De asemenea, spre deosebire de Windows, aici ne putem crea noi ca utilizatori noi reguli pentru blocarea sau permiterea traficului spre sau dinspre rețeaua internet. Securitatea unui sistem este împărțită în trei mari categorii:

– Securitatea fizică

– Securitatea tehnică

– Securitatea administrativă

Toate aceste trei categorii definesc cele mai importante obiective pentru o securitate adecvată a unui sistem.

Controlul securității fizice unui sistem de calcul constă în vigilența noastră, în a nu ne pierde sistemul cu date importante pentru noi sau a nu da ocazia infractorilor să îl fure.

Controlul securității tehnice se bazează strict pe interzicerea accesului neautorizat la date importante de pe un sistem de calcul. Controlul securității include detalii tehnice ca autentificarea, criptarea, cititoare de carduri, cititoare de amprentă, controlul listelor de acces (ACL).

Controlul securității administrative se refera la administrarea personalului uman în funcție de nivelul fiecărui individ in cadrul unui anumit mediu, într-o companie să zicem, sau armata. De exemplu directorul executiv al unei companii are acces la toate datele companiei cum ar fi sistemul organizatoric unde intră recrutarea și selectarea personalului, profit etc. Un simplu angajat al acelei companii nu ar avea dreptul să acceseze acele date. Alt exemplu, în armată, un general are acces la strategii, arme și diferite obiective secrete, în timp ce un simplu soldat nu ar avea dreptul să le acceseze, el putând fi spion. Controlul securității administrative ține doar de factorul uman, de restul ocupându-se securitatea tehnică.

Aceste 3 tipuri de securități nu țin neapărat de Linux. Ele sunt generale și reprezintă un mod de a preveni activități neautorizate asupra calculatoarelor noastre indiferent de sistemul de operare.

Pentru Linux, există programe antivirus pentru mai mulți distribuitori, de exemplu Ubuntu, însă ceea ce ar trebui să luam în considerare este faptul ca aceste programe sunt concepute să scaneze, să depisteze și să anihileze amenințări pentru Windows. Nu este corect să spunem ca pentru Linux nu ar exista viruși însă, antivirușii nu sunt concepuți corect pentru Linux. Putem spune astfel, că pe Linux nu avem nevoie de programe antivirus, decât dacă dorim să protejam directoarele Windows. Amenințările create pentru alte tipuri de sisteme de operare nu sunt periculoase pentru Linux, deoarece are alt mod de funcționare, alt tip de kernel și nu în ultimul rând alți utilizatori. Ca să pun accent pe ultima parte a afirmației anterioare și a nu jigni persoane care nu au lucrat vreodată pe Linux sau sunt fani Windows sau alte sisteme de operare, am să mă rezum la faptul ca sub Windows se poate descurca și un tânăr de 6-7 ani, spre deosebire de Linux care necesită o anumită pregătire în domeniul informatic.

În timp ce un antivirus nu este o necesitate pe Linux, să menținem sistemul actualizat este critic. Nu doar se păstrează totul intact și securizat dacă actualizam sistemul de la distribuitor, ci suntem protejați astfel și împotriva vulnerabilităților abia descoperite.

Una dintre cele mai importante căi de a preveni accesarea datelor confidențiale este alegerea unei parole bune la logarea pe contul de utilizator, de asemenea serviciile neutilizate ar trebui dezactivate deoarece, nu numai ca ocupă inutil resursele sistemului, dar pot oricând deveni o portiță de intrare pentru userii care inițiază un atac asupra calculatorului. De exemplu Bluetooth. De multe ori pe sistemele de calcul care suportă un astfel de tehnologie, utilizatorii îl lasă activ și, de asemenea vizibil. Cineva din zonă care poseda abilitați și cunoștințe de hacking poate să acceseze date confidențiale prin Bluetooth.

Un serviciu mult mai atacat este SSH (Secure Shell). SSH reprezintă un protocol de rețea prin care, printr-o aplicație client se conectează la un server și se pot rula comenzi pe server. Pe scurt, serverul este controlat prin comenzi în terminal de la distanță. Deși SSH este folosit ca un mijloc de conectare în siguranță, este adesea o țintă pentru cei care scanează porturile pentru a găsi ținte ușoare.

Ca urmare a faptului ca unii utilizatori folosesc parole ușoare sau uzuale, pentru a asigura serverele proprii SSH, riscul ca un alt utilizator rău intenționat să forțeze un atac și să preia controlul mașinii de calcul este ridicat. În momentul de față există instrumente prin care să se îmbunătățească securitatea SSH. Este ridicol ca un utilizator să folosească SSH fără un astfel de instrument care să sporească securitatea.

Linux beneficiază de Firewall și se numește IPTables. Folosind acest instrument, putem ține sniferele la distanță de calculatorul nostru. De asemenea utilizatorul deține accesul total asupra traficului de date, atât ce se accesează de pe computer, cât și ce date sunt primite. Distribuitori ca Ubuntu au mers mai departe cu acest program și l-au făcut mult mai simplu de manevrat de către utilizator.

Permisiunile fișierelor și cataloagelor sunt tratate mult mai simplu decât la sistemul Windows și sunt reprezentate de permisiunile traditionale din Unix.

Permisiunile pe sistemele moștenitoare Unix sunt gestionate în tei domenii sau clase distincte. Aceste domenii sunt cunoscute sub numele: clasa utilizator, clasa grup și alții. Atunci când un fișier este creat pe un sistem ce moștenește securitatea fișierelor utilizând permisiunile tradiționale Unix, permisiunile sunt restricționate de umask-ul procesului care le-a creat. Denumirea de umask vine de la Unix mask și este formată dintr-un set de biți cu ajutorul cărora se controlează permisiunile fișierelor nou create.

Spuneam ca există trei clase de gestiune a fișierelor și cataloagelor. Să spunem câteva lucruri despre fiecare în parte:

1) Clasa utilizator: fișierele și directoarele sunt deținute de către un utilizator. Proprietarul determină proprietățile de utilizare a fișierului. Permisiuni distincte de ale celorlalte clase se aplică proprietarului.

2) Clasa grup de utilizatori: fișierele și cataloagele sunt atribuite unui grup de utilizatori. Proprietarul poate fi un membru al acelui grup.

3) Clasa alți utilizatori: Există utilizatori care nu sunt proprietari ai fișierelor, respectiv cataloagelor ce vor să le acceseze. În acest caz, ei intră în categoria altor utilizatori și permisiuni distincte se aplică pentru aceștia.

Fiecare utilizator va putea lucra cu fișierul în cauză în funcție de permisiunile respective clasei din care face parte. Spre exemplu, dacă un utilizator din clasa utilizator dorește să lucreze cu un fișier, sistemul de operare nu va lua în calcul permisiunile celorlalte două clase și va aplica strict regulile de accesare din clasa respectivă.

Permisiunile sunt de trei feluri:

– Citire: în cazul fișierelor, aceasta permisiune oferă utilizatorului privilegiul de a citi un anumit fișier cu astfel de status. În cazul directoarelor, această permisiune oferă posibilitatea utilizatorului de a citi numele fișierelor din cadrul lor dar nu și conținutul acestora, tipul fișierului, dimensiunea etc.

– Scriere: Permisiunea de scriere a unui fișier acordă privilegiul utilizatorului de a modifica acel fișier. Când această proprietate este setată pentru un director, utilizatorul poate modifica intrările din director, ca de exemplu crearea fișierelor, ștergerea fișierelor sau redenumirea fișierelor.

– Executare: Aceasta permisiune oferă posibilitatea utilizatorului de a executa fișierul în cauză și este setată pentru programe executabile, inclusiv scripturi shell. Când este setată pentru un director, această permisiune acorda posibilitatea de a accesa conținutul fișierelor și meta informații dacă îi este cunoscut numele, dar nu sunt listate fișierele în director dacă permisiunea de citire nu este setată.

De notat este faptul că atunci când la permisiuni spun „utilizator” nu mă refer numai la accesul utilizatorului în sine, ci și la toate procesele utilizator.

Reprezentarea claselor și a permisiunilor lor se poate face atât prin notații simbolice cât și numeric după cum este prezentat în tabelul de mai jos:

Notatia simbolică Notatia numerică Permisiuni

–––- 0000 Nici o permisiune

–x–x–x 0111 Executare pentru toți userii

-w–w–w- 0222 Scriere pentru toți userii

r–r–r– 0444 Citire pentru toți userii

r-xrw-r– 0561 Citire și executare pentru Proprietari

Scriere și citire pentru grupul de utilizatori

Citire pentru alți useri

rwxr-xr– 0754 Citire, scriere și executare pentru proprietar

Citire și executare pentru grupul de utilizatori

Citire pentru alți useri

De remarcat faptul ca la notația numerică bitul de citire adaugă 4 la total (100 în binar), bitul de scriere adaugă 2 la total (010 în binar) și bitul de executare adaugă 1 la total (001 în binar). Permisiunile pentru o clasa se deduc din totalul format. De exemplu, să luam câteva din combinațiile posibile pentru a observa atent diferențele:

– r – – => 4 + 0 + 0 = 4;

– – w – => 0+2+0 = 2;

– – – x => 0 + 0 + 1 = 1;

– rwx => 4+2+1 = 7;

– r – x => 4 + 0 + 1 = 5.

Observam ca orice combinații am face, nu o să obținem niciodată aceeași sumă pornind de la permisiuni diferite.

Linux. Criptarea fișierelor și a directoarelor

Criptarea fișierelor sau EFS (Eng.: Encryption File System) pe Linux nu este cu nimic diferită față de sistemul de operare Windows. În prezent, algoritmul de criptare al sistemelor de fișiere utilizat este AEA (Eng:. Advanced Encryption Algorithm) ce stă la baza standardului AES (Eng:. Advanced Encryption Standard). Cum spuneam și în secțiunea Windows, acest standard criptează utilizând un bloc de trei chei pe 128, 192, respectiv 256 biți. De asemenea, mutarea sau crearea unui fișier într-un director criptat va culmina cu criptarea implicită a fișierului respectiv. Situația dintre a cripta un fișier sau un director este aceeași și de aceasta dată, la fel ca la Windows din aceleași motive. Există de altfel, aplicații cu ajutorul cărora se pot face criptări atât pe Windows cât și pe Linux. Folosind GnuPG, în Linux se poate cripta un fișier sau un director utilizând algoritmul RSA cu lungimea cheilor cuprinsa între 1024 și 4096 biți.

OSX

OSX. Istorie

In iunie 1978, Apple a lansat primul sistem de operare propriu, numit Apple DOS 3.1. Acest sistem funcționa pe calculatoarele Apple II. Existaseră și versiuni mai vechi Apple DOS, dar nu au fost lansate niciodată către public nici documentate datorită erorilor multiple ce se iveau. Mai târziu a apărut și un bug-fix la Apple DOS 3.1, ce rezolva unele probleme legate de managementul memoriei.

Un an mai târziu, a apărut Apple DOS 3.2 care reflecta schimbările majore din piața hardware și noile metode de bootare implementate pe succesorii Apple II, Apple II Plus. În 1980 Apple DOS 3.3 îmbunătățea numeroase funcții din versiunea anterioară, majoritatea concentrându-se pe scrierea și citirea memoriei, fie ea externă sau internă. A fost lansat în 1983 ProDOS. Acest sistem venea să înlocuiască Apple DOS 3.3 și rula pe infrastructura Apple III sau SOS. ProDOS oferea facilități mai bune în ceea ce privea tratarea întreruperilor, viteza crescută în ceea ce privea dispozitivele de intrare/ieșire datorită accesului direct la blocuri.

Pană în 1990 Apple a fost lider pe piața calculatoarelor, lansându-le compacte, în propria carcasa și cu, cel mai important, interfață grafică. La un moment dat, utilizatorii avuseseră o tendință de a trece către celelalte tehnologii deoarece sistemele de operare celor de la Apple erau limitate, neavând foarte multe programe care să ruleze pe ele. Cea mai mare problemă a reprezentat-o tipărirea documentelor din calculator. Deși arătau foarte bine, la imprimantă nu ieșeau întocmai cum apăreau pe monitor. Echipa făcuta cu John Warnock, fost dezvoltator la Xerox și care și-a dezvoltat propria sa companie numită Adobe, a condus la creșterea încasărilor Apple peste noapte. Adobe a reușit ceea ce nimeni nu mai finalizase pana acum și anume, cum să printeze ceea ce se vede pe un calculator.

In anii 1990 piața era invadată de clone Macintosh. Apple rămânând la preturi ridicate, vânzările au început să scadă. Aceasta s-a datorat și apariției Windows 3.0, care era compatibil pe aproape orice clonă a computerelor din acea perioadă. Calculatoarele Apple nu erau compatibile cu Windows 3.0 astfel, pentru utilizatori nu era convenabil să achiziționeze Macintosh-uri. În 1994 Apple împreună cu IBM și Motorola au dezvoltat PowerMac, un procesor extrem de rapid pentru ce exista în acea perioadă. Acest lucru, i-a permis companiei Apple să rămână pe linia de plutire într-o industrie saturată.

Apple a început să o ia și mai în jos pe scara vânzărilor în 1995 când în sistemul de operare s-au găsit foarte multe vulnerabilități iar compania nu avea suficiente resurse să le rezolve. Apple a pierdut milioane de dolari și a eșuat în a face profit. Apariția Windows 95 a îngreunat și mai mult situația, deoarece trebuia să tina cumva pasul cu Microsoft.

In a doua jumătate a anului 1996, Apple a fuzionat cu NeXTstep, luând naștere o noua generație de sisteme de operare, OS. Acesta a fost un prim pas pentru Apple în a recâștiga terenul pierdut în anii anteriori pe piața calculatoarelor. Anul următor, Apple a încheiat cu Microsoft un contract de schimburi de patentă valabil 5 ani, prin care fiecare parte oferea celeilalte și viceversa dreptul de exploatare a propriilor produse. În schimbul „inspirației”, să nu zicem furt, de la Apple în ceea ce privește design-ul interfeței, pe care Microsoft a implementat-o pe Windows, cei din urmă au plătit Apple să nu îi acționeze în instanță. Microsoft a avut parte de un succes extraordinar cu acest nou design, în timp ce Apple nu era recunoscută pentru el.

Apple și-a revenit între timp financiar, iar în prezent produce mașini de calcul foarte performante care o păstrează în topul companiilor din industria informatică.

Apariția OS X reprezintă un moment extraordinar pentru Apple. În septembrie 2000 Apple a prezentat Kodiak. Pentru suma de 30 de dolari putea fi achiziționată prima versiune Mac OS 10. Varianta oficială OS 10.0 numită și Cheetah a apărut 6 luni mai târziu cu o nouă interfață pentru utilizatori, Aqua și primele versiuni ale unor aplicații de editare text, email, sau vizualizare. Rula pe 128 megabiți ram și ocupa 800 megabbiți din spațiul de pe disc.

Puma sau Mac OS 10.1.2 a fost lansat la jumătate de an după apariția OS 10.0. În loc să ofere noi caracteristici, Apple s-a concentrat mai mult pe îmbunătățirea performantei sistemului. Din acest moment Apple vindea noile Macintosh-uri cu acest sistem preinstalat și s-a înlocuit vechiul OS 9.

Aproape un an mai târziu, în 2002, a apărut un nou sistem din seria OS X și este vorba de Jaguar sau OS X 10.2 care a venit cu noi implementări: iChat și Address Book. De asemenea a introdus și Accesul Universal, o componentă care a făcut OS X mai ușor de utilizat pentru persoanele cu deficiente de vedere și auz sau handicap fizic.

2003 a fost anul în care, în luna septembrie, a apărut OS X 10.3 cunoscut sub pseudonimul de Panther. Cea mai importantă caracteristică a acestui sistem a fost renunțarea la Internet Explorer și adăugarea browser-ului Safari. De asemenea, Panther a adus și multe îmbunătățiri de interoperabilitate cu Windows.

Aprilie 2005 a fost anul în care a fost lansat OS X 10.4 sau Tiger cu noi tehnologii incluse ca Spotlight sau prezentarea primelor versiuni de widget-uri, precum calculator, calendar, ceas etc.

Următoarea lansare a unui sistem de operare Apple a fost întârziata de aducerea pe piață de către Apple a iPhone-ului și dezvoltarea iOS. Totuși, în septembrie 2007 a apărut OS X 10.5 (Leopard) cu noi caracteristici precum backup încorporat (Time Machine), suport complet pentru aplicații pe 64 de biți sau rularea pe Macintosh a altor sisteme de operare ca Microsoft Windows datorită Boot Camp.

Snow Leopard și-a făcut apariția în 2009. După cum îi spune și numele, acest sistem de operare a fost construit pe baza Leopard. Cea mai importantă caracteristică este reprezentată de implementarea Mac AppStore, inspirată din industria telefonică (iOS-iPhone). Mac 10.6 a marcat sfârșitul arhitecturii PowerPC și numai Mac-urile bazate pe Intel au fost suportate din acest moment.

2011 reprezintă anul din care sistemele de operare dezvoltate de Apple nu au mai fost disponibile pe CD-uri sau DVD-uri. Lion sau OS X 10.7 cum mai este numit acest sistem, este exclusiv descărcabil din AppStore și a adus multe tehnologii împrumutate de la „fratele mai mic” iOS precum restaurarea ferestrelor, launchpad-ul etc. iCloud-ul a debutat pe acest sistem.

Fix un an mai tarziu își face apariția un nou sistem bazat pe Lion și cum deja bănuim, după cazul Leopard, din numele sau nu lipsește „Lion”. Este vorba de Mountain Lion sau OS X 10.8 care a împrumutat și mai multe concepte de succes din iOS precum centrul de notificare sau înlocuirea aplicației iChat. În acest an, 2012, Apple a făcut anunțul că își asumă angajamentul de a lansa anual o nouă versiune Mac OS.

Așa cum au promis, anul 2013 a venit cu încă un sistem de operare OS X și este vorba de OS X 10.9 cunoscut și sub numele de Mavericks. La prima vedere se observa o nouă schema de denumire pentru sistemele Apple. De asemenea acest sistem a fost lansat ca un update gratuit și următoarele actualizări de asemenea gratuite. Și-au făcut loc noi aplicații precum Maps sau iBooks.

2014, ne-a făcut cunoștință cu Yosemite sau OS X 10.10. Ultima versiune de sistem de operare pentru Mac-uri pană în prezent a venit cu cea mai mare schimbare vizuală din ultimii ani, împrumutând de la iOS aspectul plat și efectele de transparentă neclare.

OS X Kernel

Cum era și normal, după cum am văzut pe sistemele de operare de mai sus, kernelul OS X oferă foarte multe facilități pentru sistemul de operare. Acestea includ protecția memoriei, performanțe îmbunătățite, suport pentru Macintosh și non-Macinhosh (Hackintosh), sisteme de fișiere și multe altele.

In OS X, procesele nu împart memoria între ele, în schimb nucleul atribuie fiecărui proces un anumit spațiu de adrese controlând accesul acestui spațiu de adrese din memorie. Acest control se asigură ca nici un alt proces nu poate accesa sau modifica din greșeală memoria. Procesele rulează în spațiul utilizator, dar asta nu înseamnă ca împart memoria între ele. Spațiul utilizator e doar un termen de definire al tuturor adreselor adunate la un loc ale proceselor utilizator. În OS X Kernelul este singura aplicație care poate modifica adresarea sau conținutului spațiului de memorie. Este posibilă de asemenea comunicarea între aplicații prin utilizarea bibliotecilor partajate, framework-urilor sau a memoriei POSIX partajată, însă numai cu acțiunea explicită a unui programator.

In figura Fig.19 este prezentată structura sistemului de operare OS X, respectiv a kernelului sau.

Fig. 19

Este foarte important să amintim că sursa nucleul OS X este gratuită (Eng.: Open Source). Kernelul împreună cu alte părți de bază ale sistemului de operare OS X sunt denumite colectiv ca Darwin. Darwin este un sistem de operare complet bazat pe multe tehnologii ce stau la baza OS X. Cu toate acestea Darwin nu conține interfață vizuală sau medii vaste de rulare a aplicațiilor precum Cocoa, Carbon și multe altele. În figura Fig. 20 putem observa cu ușurință aportul Darwin la structura sistemelor Apple de astăzi.

Tehnologia Darwin este bazată pe tehnologiile BSD, Mach 3.0 și Apple, iar sursa este gratuită, asta însemnând ca dezvoltatorii pot să aibă acces total la cod. Având același nucleu, OS X și Darwin, dezvoltatorii pot crea softuri de nivel scăzut care să funcționeze pe ambele sisteme cu mici schimbări sau chiar deloc. O mare parte din tehnologiile Darwin sunt împrumutate de la FreeBSD, o versiune a 4.4BSD care oferă setări avansate în ceea ce privește internetul, performanța, securitatea, plus numeroase caracteristici de compatibilitate.

Alte părți ale sistemului, precum Mach, au la baza tehnologii utilizate în proiectul MkLinux de la Apple și tehnologii moștenire de la NeXT.

Noi tehnologii ca NKE (Network Kernel Extensions) sau kitul de drivere pentru dispozitivele de Intrare/Ieșire au fost proiectate și dezvoltate de Apple pentru a profita de avantajul oferit de modelul programării orientată obiect. OS X combină aceste noi tehnologii cu standardele industriale testate în timp pentru a crea un sistem de operare care este stabil, sigur, flexibil și extensibil.

Fig. 20

Să vorbim pe rând, despre componentele ce se regăsesc în figura Fig.19:

1) Mach: Mach gestionează resursele procesorului și ale memoriei, cum ar fi utilizarea procesorului și a memoriei, programarea acestora, protejarea memoriei și reprezintă de asemenea și un mijloc de comunicare între celelalte module ale sistemului de operare. Componentele Mach asigură:

– Comunicarea între procese (IPC);

– Apeluri de proceduri de la distanță (RPC);

– Sprijin pentru programator în multiprocesare simetrică (SMP);

– Suport pentru serviciile în timp real;

– Arhitectura modulară.

2) Kit-ul I/O: reprezintă un Framework ce simplifica dezvoltarea driverelor, sprijinind mai multe categorii de dispozitive. Acest modul oferă:

– Plug and play

– Gestionare dinamică a dispozitivelor

– Încărcarea dinamică a driverelor

– Administrarea energiei atât pentru sistemele desktop cât și pentru cele portabile

– Capacități multiprocesor

3) BSD: Deasupra stratului Mach, BSD oferă API-uri și servicii ce definesc personalitatea sistemului de operare. Acest modul, se bazează pe kernelul BSD, în principal FreeBSD. Această componentă ne oferă:

– Sisteme de fișiere

– Rețea (exceptând nivelul hardware, aici este vorba de software)

– Model de securitate UNIX

– Suport pentru Apelurile de sistem

– Majoritatea API-urilor POSIX

– Suport pentru threadurile POSIX

4) Rețelistică (Networking): OS X profită de tehnicile avansate de rețea din BSD pentru a oferi suport pentru caracteristici și funcționalități moderne, cum ar fi NAT (Eng.: Network Address Translation) sau firewall. Componenta de rețea oferă:

– API-uri 4.4BSD în ceea ce privește funcționalitățile și facilitățile TCP/IP

– Multihoming

– Rutare

– Suport multicast

– Reglare server

– Filtrarea pachetelor

5) NKE: OS X oferă un mecanism de extensie a kernelului care are menirea de a permite încărcarea dinamică a unor bucăți de cod în spațiul nucleu fără a fi necesară recompilarea. Aceste bucăți de cod sunt cunoscute ca plug-in-uri sau în mediul nucleului OS X, ca extensii kernel sau KEXT. Majoritatea componentelor kernel suportă acest mecanism deși, fac acest lucru în moduri diferite. NKE (Network Kernel Extensions) reprezintă o astfel de extensie a kernelului care aparține de modulul Network din nucleu.

6) Sisteme de fișiere: OS X oferă suport pentru numeroase sisteme de fișiere, în vreme ce caracteristicile avansate ale acestor sisteme ne oferă o interfață îmbunătățită prin sisteme de fișiere virtuale (VFS). VFS oferă o arhitectură structurată pe nivele. Componenta sistemului de fișiere ne oferă:

– Sprijin UTF-8

– Performanță crescută fața de versiunile anterioare Mac OS

OS X. Securitate

Apple a dezvoltat pentru OS X tehnologii avansate, care lucrând împreună combat potențialele amenințări.

Este foarte important ca actualizările să fie la zi pentru a profita de prilejul de a lucra pe ultima cea mai în siguranță versiune de OS X.

Gatekeeper permite descărcarea aplicațiilor în siguranță și previne instalarea aplicațiilor rău intenționate în sistem. Cel mai în siguranță se poate descărca din Mac App Store, un mediu creat special de Apple în vederea prevenirii încălcării drepturilor de autor, a crack-uirii aplicațiilor și cel mai important, controlarea aplicațiilor create pentru OS X. Apple verifică fiecare aplicație în parte și dacă îndeplinește condițiile impuse de Apple îi este permis accesul în Mac App Store pentru comercializare sau libera descărcare. Fiecare dezvoltator are un ID unic cu ajutorul căruia i se semnează aplicația. Gatekeeper ne oferă ca utilizatori, trei opțiuni:

1) Descărcarea și instalarea aplicațiilor de oriunde de pe internet

2) Descărcarea și instalarea aplicațiilor numai din Mac App Store

3) Descărcarea și instalarea aplicațiilor din Mac App Store sau a celor care sunt preluate din alte părți dar, sunt semnate cu un ID al unui dezvoltator.

Dacă la Windows avem BitLocker pentru a cripta întregul dispozitiv hard, iată ca și OS X nu se lasă mai prejos și prin FileVault 2 se criptează întreg discul hard utilizându-se criptarea XTS-AES 128.

De asemenea, pentru logare se utilizează un cont format din nume de utilizator și parolă, iar în acest caz este de preferat ca parola să fie cât mai complexă, alcătuită din litere mari, litere mici, cifre și cel puțin un caracter special. În alegerea parolelor online pe site-uri, Safari vine cu propriul generator de parole pentru sporirea securității prin alegerea unei parole cât mai bune.

Apple oferă posibilitatea găsirii dispozitivului de calcul pierdut cu ajutorul sistemului de operare și iClowd. De asemenea, există tehnologii dezvoltate pentru prevenirea phishing-ului, sau monitorizarea aplicațiilor în vederea prevenirii accesului programelor rău intenționate în a accesa componente hardware.

OS X. Criptarea fișierelor și a directoarelor

Criptarea este o tehnică de a păstra integrală securitatea datelor confidențiale față de utilizatorii neautorizați. O cale pentru aceasta este de a avea o cheie publică stocată într-o locație bine cunoscută și de încredere. Criptarea poate fi folosită nu numai pentru protejarea datelor, ci și pentru verificarea autenticității datelor. De asemenea se poate verifica identitatea unui utilizator prin solicitarea clientului să cripteze date aleator pentru a obține dovada ca acel client deține cheia de criptare corespunzătoare. Criptarea nu este cel mai important cuvânt în securitatea calculatoarelor. Deoarece criptarea depinde și de un schimb de chei cunoscute și de încredere, este nevoie de infrastructuri suplimentare pentru a putea realiza o securitate totală în medii în care comunicarea poate fi interceptată și modificată.

Autentificarea și criptarea bazate pe cheie sunt aparent unele dintre cele mai singure mijloace de a întreprinde aceste acțiuni. Cele mai frecvente forme sunt bazate pe un secret comun. DES, 3DES, IDEA, Twofish și cifrurile lui Blowfish sunt exemple de scheme de criptare bazate pe un secret comun. Parolele sunt un exemplu de sistem de autentificare cu un secret comun.

Problema cu securitatea în care cheile sunt comune, este că schimbul de chei trebuie să aibă loc într-un mediu securizat. Dacă integritatea cheii este compromisă în timpul transmisiei, integritatea datelor este compromisă. Acest lucru nu reprezintă un motiv de îngrijorare în cazul în care cheile sunt generate din timp și transportate către destinație într-un mediu securizat. În multe cazuri, acest lucru nu este posibil sau eficace, deoarece cele doua dispozitive, fie ele dispozitive fizice sau sarcini de sistem, sunt controlate de persoane sau entități diferite. Alternativa este cunoscută sub denumirea de protocolul zero-cunoștințe (Eng.: Zero-Knowledge Protocol). Acest concept constă în crearea a doua valori cheie, aparent arbitrare, X și Y legate de o anumită funcție matematică f în așa fel încât:

f ( f ( t, k1 ) , k2 ) = e

Adică, aplicând o funcție bine cunoscută pe un text în clar utilizând prima cheie rezultă textul criptat, în vreme ce aceeași funcție aplicată asupra textului criptat dar folosind a doua cheie în locul primei chei, returnează textul original. De asemenea, a doua cheie poate fi aflată din a prima și viceversa.

f ( f ( e , k2 ), k1 ) = d

d = t

Un exemplu didactic și practic pentru o bună înțelegere a unei astfel de funcții este:

f ( a , k ) = ( ( a * k ) MOD 256 ) + ( ( a * k ) DIV 256 ), unde a reprezintă un octet de text clar, iar k o cheie de 8 biți lungime. Această funcție este foarte ușor de spart, din moment ce f ne permite să determinăm o cheie din valoarea celeilalte, dar cum spuneam mai sus, este un exemplu didactic foarte bun.

Dacă alegem k1 = 8, k2 = 32, respectiv a = 73, atunci a * 8 = 584. 584 în binar înseamnă 1001001000, adică 2 octeți. Adunând primul octet (High-Byte) la cel de al doilea (Low-Byte) obținem 1001010, adică 74.

Sa executam același algoritm și pentru valoarea 32, obținând: a * 32 = 2368. Reprezentarea binara a rezultatului este 100101000000 și de această dată doi octeți. Dacă aplicam aceleași reguli ca în calculele de mai sus, adică să adunam primul octet la cel de-al doilea, obținem 1001001, adică 73. Iată cum plecând cu doua chei, după o serie de calcule asupra unei funcții putem cripta și decripta niște date fără a fi neapărată nevoie sa știm cheile de la început.

Acest concept matematic, cu alte funcții bineînțeles, stă la baza unor algoritmi ca RSA sau DSA.

Criptările cu cheie publica sunt utile atunci când sunt utilizate și implementate corespunzător. Cu toate acestea, exista o serie de puncte slabe printre care cele mai frecvente sunt:

– Slăbiciunea modelului prin care se face schimbului de chei

– Slăbiciunile datelor scurte.

Macintosh versus Hackintosh

Macintosh sau pe scurt Mac, a fost primul calculator personal cu interfață grafică și mouse, vândut la scara larga. Apple a anunțat lansarea primului Macintosh în timpul Super Bowl XVIII, pe 22 ianuarie 1984, oferindu-l spre vânzare doua zile mai târziu.

Mac a fost conceput pentru a putea oferi utilizatorului o interfață intuitivă și ușor de înțeles, un calculator prieten cu utilizatorul. Multe din ideile de interfață au derivat din experimentele la care a asistat Steve Jobs în vizită la laboratorul Xerox Parc la începutul anilor 1970, printre care enumeram mouse-ul sau acțiuni precum click-ul sau click și trage sau operarea cu ferestre.

Macintosh-urile rulează sub propriul sistem de operare, Mac OS (in prezent OS X). Mac-urile au funcționat inițial cu procesoare de la Motorola din seriile 68000, apoi mutându-se pe procesoare PowerPC. În prezent modelele Macintosh folosesc procesoare Intel x86.

Deși s-au dorit a fi sisteme de calcul ieftine, Macintosh-urile sunt destul de costisitoare și limitate din punct de vedere al upgrade-ului hardware. Există diferite configurații hardware pentru fiecare model de sistem. Performanța este indiscutabilă pe Mac-uri, însă costă. Astfel, utilizatori care doreau să lucreze cu sisteme de operare de la Apple, dar nu aveau posibilitatea achiziționării unui Macintosh au profitat de structura sistemelor de operare, mai exact de extensiile kernel din spațiul nucleu, putând astfel să facă adaptări astfel încât sistemul de operare să ruleze cât mai bine și cât mai rapid pe configurații hardware improvizate. Astfel au luat naștere Non-Mac-urile sau Hackintosh. În prezent există foarte multe informații despre cum se creează un astfel de sistem de calcul în funcție de necesitățile sau bugetul fiecărui individ în parte. Există de asemenea programe software care vin în ajutorul utilizatorului, după instalarea sistemului de operare pe un Hackintosh, în găsirea și instalarea anumitor drivere sub formă de extensii ale anumitor module din kernel. În urma tutorialelor video și text analizate cu atenție pe internet, am tras concluzia ca în cazul în care ar fi să consideram performanța sistemelor de calcul împărțită pe patru nivele slab, mediu, performant și foarte performant, crearea unui hackintosh de la nivelul performant inclusiv, către slab este mult mai avantajoasa ca preț în detrimentul cumpărării unui Mac. Dacă vrem super performanță, atunci oricât am încerca să cream un sistem de calcul compatibil pentru OS X, prețul componentelor non-Mac-ului ar sari de prețul unui Mac de aceleași performanțe. Plus de asta, în momentul în care alegem Hackintosh în detrimentul Mac-ului este necesar să ne așteptăm oricând la diferite probleme care apar legate de compatibilitate, cu atât mai mult cu cât piața hardware este foarte diversificată, iar noi configurații sau îmbunătățiri nu încetează să apară.

Concluzii

Am discutat despre 3 dintre cele mai importante, dacă nu chiar cele mai importante sisteme de pe piața modernă a sistemelor de operare din ziua de astăzi. Am să comentez pe baza criteriilor ce mi se par a fi foarte interesante de abordat despre toate trei, după caz, în antiteză sau asemuindu-le.

Este foarte clar că cele trei sisteme sunt foarte diferite, iar utilizatorii își aleg sistemul de operare în funcție de necesități. De exemplu, faptul ca Linux este gratuit, oferă un mare avantaj utilizarea acestuia într-o firmă unde angajații nu au nevoie de facilitățile unui anumit sistem de operare, dar vor să utilizeze un calculator pentru a trimite e-mail-uri, de exemplu. În același timp, OS X, deși este și el gratuit, necesită un mediu propice pentru rulare în parametri optimi și anume, un Macintosh care este destul de costisitor din punct de vedere financiar. Windows poate rula pe aproape orice sisteme de calcul, însă este comercializat. Sistemul de operare perfect ar fi acela gratuit și securizat ca Linux, rapid, bine organizat și îmbunătățit ca OS X, respectiv portabil și ușor de utilizat ca Windows. Am ales de la Windows doar portabilitatea și ușurința de utilizat deoarece, din punctul meu de vedere la o comparație atentă cu fiecare dintre celelalte două, doar aceste calități rămân singurul avantaj în a le devansa .Clar un sistem Windows nu rulează mai repede decât un OS X și aș forța puțin nota spunând și decât Linux, gândindu-mă la structura să monolitică în care legăturile între module sunt directe, deci execuția se face mai rapid. Din punct de vedere al securității, din nou Windows este cel mai slab, probabil și datorită numărului mare de utilizatori. Da, am spus număr mare de utilizatori. Cel mai mare număr de utilizatori dintre cele trei. Oare dacă ar fi cel mai slab cotat de ce are atât de mulți utilizatori? Răspunsul este simplu: Ușor de utilizat și priceperea anumitor persoane în crack-uire. Nu există versiune Windows care să nu fie crack-uită, sau firme care plătesc licența sub statutul de persoana juridică și împart cheia de licență pe lângă calculatoarele din firma, local (prieteni, familie) sau global (internet). Astfel, un sistem de operare, sub care se simte confortabil utilizându-l și un copil de 6-7 ani, ajunge gratuit în mâinile utilizatorilor care îl pot instala pe propria configurație hardware fără prea multe bătăi de cap. Dacă pentru Windows existența unui program antivirus este mai mult decât necesară, pentru utilizatorii OS X și Linux un antivirus e doar la latitudinea fiecăruia. Securitate totală nu oferă nici un sistem, asta e clar. Dar parcă mult mai confortabil te simți să mănânci la un restaurant bine cunoscut, unde mâncarea este proaspătă sau la un restaurant în care cum se strică ceva este aruncat și înlocuit cu produse proaspete decât să mănânci la un restaurant și nu știi nimic despre mâncare. Acesta este un mod de a descrie cel mai bine descărcările și amenințările sub fiecare sistem, restaurantul cunoscut fiind reprezentat de OS X prin Mac App Store, restaurantul unde este schimbată mâncarea stricată este reprezentat de Linux și actualizările sistemului prin care sunt înlocuite părțile afectate din sistem cu altele curate si, nu în ultimul rând, Windows! Descarci de oriunde, oricând, un utilizator care nu știe să utilizeze Firewall, oricând își poate compromite sistemul. Mai în glumă, mai în serios, o instalare curată, proaspătă a sistemului Windows se mișcă înzecit mai bine decât același sistem pe aceeași configurație după un an de folosință de către un utilizator experimentat și update-uri. Personal, consider ca un update ar trebui să reprezinte o îmbunătățire, nu o îngreunare vizibilă a sistemului după un anumit timp. Poate par pornit pe Windows însă, la o aruncare a privirii mai atent prin toate cele trei ogrăzi și analizând fiecare detaliu în parte, Windows pare un copil de grădiniță care se remarcă pentru un utilizator documentat prin majoritatea conceptelor de tehnologii importante copiate și multe chestii momentan inutile, ca de exemplu interfața Windows 8, 8.1 sau a viitorului 10. Chiar dacă există sisteme de calcul cu răspuns la atingerea ecranului, din cunoștințele personale care posedă astfel de tehnologii hardware, nici una nu utilizează această funcționalitate, iar motivul este simplu: Nimănui nu îi plac amprentele pe ecran.

Ca o concluzie personală finală, aș da banii pe un Macintosh cu ochii închiși, deși sunt mai mult decât sigur ca nu am să mor pana nu construiesc un Hackintosh. Windows sper să se maturizeze și să pună accent mai mult pe aspectul performanță, iar Linux…va rămâne același sistem stabil, gratuit și practic și peste 50 de ani, iar în timp este posibil să ajungă pe primul loc ca număr de utilizatori, dacă se va pune accent mai mult pe interfața grafică!

Similar Posts

  • Calitatea Actiunii de Audit Intern. Studiu de Caz Analiza Unitatilor Administrativ Teritoriale

    CUPRINS Abrevieri Lista tabelelor INTRODUCERE Capitolul 1. STADIUL ACTUAL AL CUNOAȘTERII PRIVIND AUDITUL PUBLIC INTERN Auditul public intern. Delimitări conceptuale Instituții abilitate în domeniul auditului public intern Cadrul legislativ în domeniul auditului public intern Audit intern – control intern managerial. Analiză comparativă Capitolul 2. AUDITUL PUBLIC INTERN ÎN ADMINISTRAȚIA PUBLICĂ DIN ROMÂNIA. ORGANIZARE ȘI CALITATE…

  • Cardul Instrument de Plata Oferit de Bancile Romanesti

    Cardul instrument de plata oferit de bancile romanesti CUPRINS Introducere Motivația, importanța și metodologia cercetării Capitolul I. Aspecte generale privind cardul bancar 1.1. Scurt istoric 1.2. Delimitări conceptuale 1.3. Tipologia cardurilor 1.3.1. Tipuri de carduri în raport cu aspectele tehnologice 1.3.2. Tipuri de carduri în raport cu funcțiile specifice 1.3.3. Tipuri de carduri în raport…

  • Repere Privind Dezvoltarea Tic la Nivel European Si National

    Repere privind dezvoltarea TIC la nivel european și național Studiu de caz: Accesarea fondurilor europene pentru dezvoltarea infrastructurii TIC din cadrul S.C. SIMNAV S.R.L INTRODUCERE “Dintre toate caracteristicile umanității, tehnologia este cea mai pur umană și constituie motorul societății umane. Tehnologiile constituie reperele definitorii ale erelor istoriei umanității: epoca de piatră, epoca de bronz, epoca…

  • Contabilitatea Activitatii de Comert la S.c. Pinco Pallino S.r.l

    CUPRINS CAPITOLUL I : ASPECTE GENERALE PRIVIND CONTABILITATEA ACTIVITĂȚII DE COMERȚ…………………………………………………………………………………………………………….7 1.1 Obiectivele organizării activității de comerț………………………………………………………………7 1.2 Contabilitatea operațiunilor curente………………………………………………………………………….8 1.3 Modalități de circulație a mărfurilor………………………………………………………………………….9 1.4 Stocurile………………………………………………………………………………………………………………10 1.5 Principii generale de raportare financiară…………………………………………………………………11 1.6 Metodele de conducere a contabilității bunurilor……………………………………………………….13 1.7 Documemnte justificative………………………………………………………………………………………14 CAPITOLUL II : STUDIU DE CAZ LA SC PINCO PALLINO…

  • Functiile de Control ale Contabilitatii In Postura de Utilizare a Tehnologiilor Informationale

    Funcțiile de control ale contabilității în postura de utilizare a tehnologiilor informaționale INTRODUCERE Omul, încă din cele mai vechi timpuri, a creat, și-a folosit inteligența și capacitatea de a gândi pentru a-și satisface nevoile curente pentru supaviețuire, care în timp au devenit din ce în ce mai complexe, acoperind arii existinse, de la nevoia de…

  • Fluxurile Turistice

    CUPRINS INTRODUCERE………………………………………………………………………………..3 CAPITOLUL I. STUDIUL TEORETIC PRIVIND ORGANIZAREA CIRCULAȚIEI TURISTICE………………………………………………………………………………..……5 1. Noțiuni fundamentale privind turismul internațional………………………………………..…5 2. Evolutia fluxurilor turistice interne si internaționale……………………………………………8 CAPITOLUL II. ROLUL ȘI IMPACTUL CIRCULAȚIEI TURISTICE ASUPRA DEZVOLTĂRII TURISMULUI………………………………………………………………22 2.1. Sistemul internațional de indicatori în turism…………………………………………….… 22 2.2. Măsurarea circulației turistice ……………………………………………………………… 25 2.3. Metodele de înregistrare a circulației turistice……………………………………………… 30 CAPITOLUL…