Securitatea sistemelor de operare

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Securitatea sistemelor de operare joacă un rol cheie în societatea noastră: de fapt, odată cu difuzarea în toate domeniile computerelor, nevoia de a le proteja integritatea a crescut. Companiile mari din sectorul comercial, financiar, social, de sănătate și așa mai departe au o mulțime de date importante pentru a se feri de fraude și a concurenților interesați de acele informații.

În sistemele de operare moderne, datorită implementării multiprogramării , mai mulți utilizatori pot alterna în accesarea sistemului și utilizarea aplicațiilor . Protejarea programelor și datelor fiecărui utilizator devine o preocupare principală a acestor sisteme. Protecția trebuie să fie atât față de ceilalți utilizatori locali, cât și față de utilizatorii la distanță, față de programe malware de diferite tipuri și față de evenimente neașteptate.

Protecţie

Obiecte protejate

Scopul său principal este de a consolida protecția obiectelor sistemului de operare , cum ar fi:

  • memorie
  • dispozitive I / O care pot fi partajate, cum ar fi discurile
  • periferice I / O reutilizabile seriale, precum imprimante și unități de bandă
  • subproceduri și programe partajabile
  • rețele
  • date care pot fi partajate.

Baza protecției este separarea, adică capacitatea de a păstra obiectele unui utilizator separat de cele ale altui utilizator, separarea între utilizatori poate fi realizată în diferite moduri [1] :

  • Separarea fizică: este un tip de separare în care diferitele procese utilizează diferite obiecte fizice, cum ar fi imprimante separate, pentru ieșirea care necesită niveluri diferite de autorizare;
  • Separarea timpului: este o separare în care procesele necesită diferite niveluri de protecție și, prin urmare, trebuie efectuate în momente diferite;
  • Separarea logică: este un tip de separare care se creează dând utilizatorului iluzia că sistemul funcționează fără alte procese în desfășurare;
  • Separarea criptografică: similară celei anterioare, dar aici sistemul ascunde în mod intenționat procesele aflate în desfășurare prin intermediul software-ului, făcându-le de neînțeles pentru procesul care rulează în prezent.

Acestea sunt doar principalele tipuri de separare a proceselor, dar se pot utiliza și tehnici mixte, dacă se dorește, combinând două sau mai multe pentru a asigura o siguranță mai mare.

Metode de protecție a sistemelor de operare

Separarea fizică și temporală sunt eficiente, dar și rigide, atât de mult încât pot duce la o utilizare ineficientă a resurselor sistemului; de aceea este convenabil să descărcați sarcinile de protecție în sistemul de operare în sine, pentru a permite executarea simultană a proceselor cu nevoi diferite.

Unul dintre primele lucruri pe care trebuie să le faceți este să separați utilizatorii și obiectele acestora, dar, în unele cazuri, trebuie să puteți furniza partajarea pentru unele dintre aceste obiecte. De exemplu, doi utilizatori cu niveluri de securitate diferite pot dori să invoce același algoritm de căutare sau să apeleze la aceeași funcție, astfel încât utilizatorii trebuie să poată partaja algoritmi și funcții fără a compromite stabilitatea sistemului. Protecția de către sistemul de operare poate avea loc în diferite moduri:

  • Fără protecție: acest lucru duce la partajarea necontrolată, de obicei această soluție se aplică atunci când procedurile sensibile sunt efectuate în cazuri separate;
  • Izolare: nu există niciun tip de partajare, în aceste cazuri sistemul de operare asigură izolarea proceselor, adică diferitele procese care rulează nu sunt conștiente de prezența celorlalte: fiecare proces are propriile obiecte și fișiere;
  • Partajați totul sau nu împărtășiți nimic: în acest fel, proprietarul obiectului în cauză îl declară public sau privat, atunci când este declarat public, devine disponibil pentru toți utilizatorii, în schimb, dacă este declarat proprietar, este disponibil doar pentru utilizatorul care l-a creat;
  • Partajarea prin controlul accesului subiecților la obiecte: aici sistemul controlează posibilitatea oferită fiecărui utilizator de a accesa un obiect, deoarece controlul accesului este implementat pentru un anumit utilizator și obiect, în plus o listă de acțiuni acceptabile ghidează sistemul de operare care determină dacă un utilizator poate avea sau nu acces la un anumit obiect.
  • Partajarea în funcție de lista de subiecte a capabilităților: este un tip de protecție care extinde partajarea cu acces limitat și permite crearea și gestionarea dinamică a drepturilor de partajare pentru obiecte.
  • Partajarea prin limitarea utilizării obiectelor: are scopul de a limita accesul la un obiect și, de asemenea, utilizarea obiectului însuși după un acces reușit, de exemplu, un utilizator poate vizualiza un document important, dar nu îl poate imprima.

Protecție hardware

Unele tipuri de protecție pot fi încorporate prin mecanisme hardware care controlează utilizarea eficientă a memoriei, acestea având avantajul de a oferi protecție robustă fără costuri suplimentare. Problema pe care protecția hardware este chemată să o rezolve este limitarea acțiunilor fiecărui program la propria sa zonă de memorie. Cele mai utilizate metode hardware se bazează pe adresa și protecția memoriei și sunt după cum urmează: gard, relocare, registre de bază și limite, arhitectură etichetată, segmentare și paginare [2] .

Incintă

Schema incintei (protecția memoriei hardware).

Este cel mai simplu mod de a implementa un mecanism de protecție în memorie, funcția sa principală este de a preveni ca un program rău intenționat sau defect să afecteze partea de memorie în care se află procesele sistemului de operare. Gardul nu face altceva decât să limiteze utilizatorii în afara zonei de memorie folosită de sistemul de operare. Există mai multe implementări ale gardului.

Într-un tip de implementare, aceasta a implicat utilizarea unei adrese de memorie implicite, astfel încât sistemul de operare să locuiască pe o parte în timp ce utilizatorul locuia pe alta. Marele dezavantaj al acestui tip de implementare este faptul că sistemului i se va aloca întotdeauna o cantitate predefinită de spațiu de memorie datorită adresării fixe, indiferent dacă o folosește sau nu.

Un alt tip de implementare se bazează pe utilizarea unui registru hardware denumit registrul gard, acest registru conține adresa de memorie în care ajunge sistemul de operare. Utilizarea jurnalului de gard elimină dezavantajul anterior, astfel încât poziția gardului poate fi modificată dinamic.

Întrucât registrul protejează numai într-o singură direcție, nu poate proteja un utilizator de orice prejudiciu cauzat de procesele altui utilizator, motiv pentru care acest tip de protecție poate fi utilizat numai pentru sistemele de operare cu un singur utilizator.

Relocare

Această tehnică de securitate se mai numește și relocare . Relocarea este procesul de a pretinde că un proces începe la adresa 0 și permite schimbarea tuturor adreselor pentru a reflecta adresa efectivă în care se află programul în memorie. Această tehnică implică pur și simplu adăugarea unei creșteri constante la fiecare adresă a programului. Relocarea este de obicei utilizată împreună cu registrul de gard, deoarece acesta din urmă poate constitui un dispozitiv de relocare hardware. Conținutul registrului de gard este adăugat la adresa fiecărei celule a programului și acest lucru face ca adresa inițială să fie repoziționată, asigurându-se astfel că niciun proces nu poate accesa porțiuni de memorie cu adrese mai mici decât cea a carcasei de adrese.

Registrele de bază și de frontieră

Această tehnică este o extensie a repoziționării și este foarte utilă în medii cu mai mulți utilizatori . În acest tip de sistem de operare mașina nu poate știi a priori în ce parte a memoriei va fi încărcat programul care va trebui apoi executat, în acest moment intervine registrul de repoziționare care rezolvă problema furnizând o adresă de bază, de acum înainte atunci toate adresele dintr-un program sunt compensate de acea adresă de bază. Un registru de gard variabil este denumit și registru de bază. Pentru a cunoaște cantitatea de spațiu alocat este de asemenea util să creați un al doilea registru de gard variabil, care spre deosebire de primul va fi numit registru de limită, în timp ce primul are sarcina de a furniza o limită inferioară, al doilea delimitează unul superior. În acest fel, adresele unui program sunt limitate în spațiul dintre registrele de bază și de graniță. Datorită acestei tehnici este posibil să asigurați adresele unui program de schimbările făcute de un alt utilizator. Când are loc o comutare de utilizator, sistemul de operare modifică conținutul registrelor de bază și de graniță pentru a reflecta spațiul de adresă real al utilizatorului. Termenul de comutare de context indică setul de operații pe care sistemul trebuie să le efectueze pentru a efectua o comutare de utilizator.

Arhitectură etichetată

Registrele de bază și de frontieră sunt deja o protecție mai mult decât suficientă, dar oferă un serviciu de partajare totală sau nimic, adică fie un program permite accesul și modificarea tuturor datelor sale, fie le refuză, în unele cazuri, oricum este convenabil să protejează doar unele valori și nu toate. Cel mai simplu mod care permite o partajare parțială a conținutului unui program este de a muta adresele în cauză într-un spațiu alăturat, dar acest mod de a proceda nu este fezabil atunci când elementele care trebuie mutate sunt prea multe, cum ar fi conținutul unui tablou , înregistrări sau structuri mari. Arhitectura etichetată reprezintă în aceste situații o alternativă, în această tehnică fiecare celulă de memorie are unul sau mai mulți biți suplimentari, care permit identificarea drepturilor de acces la acel cuvânt. Acești biți suplimentari pot fi setați numai prin instrucțiuni particulare privilegiate și de fiecare dată când sunt accesate aceste adrese, se verifică starea biților adăugați. Procedând astfel, puteți avea permisiuni diferite pentru diferitele părți ale unui program, de ex. o locație de memorie poate avea drepturi de executare, alta poate fi accesibilă doar pentru modificare și așa mai departe. Acum, această tehnică este din ce în ce mai în desuetudine, deoarece ar implica schimbări radicale la aproape tot codul sistemului de operare, unele dintre computerele care utilizează acest tip de protecție sunt Intel I960 și IBM System / 38.

Segmentare

Pictogramă lupă mgx2.svg Același subiect în detaliu: Segmentare (memorie) .

Se bazează pe împărțirea programului în părți separate, fiecare segment este o unitate logică (o structură de date, un subrutină etc.). Segmentarea permite împărțirea unui program în segmente separate, cu drepturi de acces diferite. În plus, segmentele sunt relocabile și acest lucru permite o gestionare mai eficientă a memoriei. Fiecare element de cod din interiorul segmentului de memorie poate fi identificat prin intermediul unei perechi de valori: nume și offset, primul este numele segmentului care conține elementele, al doilea conține în schimb offsetul de la începutul segmentului. Cu segmentarea este posibil să vorbim și despre virtualizarea memoriei, aceasta constă în transferul în memoria de masă , a segmentelor de cod neutilizate.

Paginare

Pictogramă lupă mgx2.svg Același subiect în detaliu: Paginarea .

Paginarea sau paginarea reprezintă o alternativă validă la segmentare și este utilizată pe scară largă în sistemele de operare pentru a realiza multiprogramarea. Cu această tehnică, programul este împărțit în părți egale numite cadre de pagină . Fiecare element al cadrului de pagină, precum și pentru segmentare, este identificat printr-o adresă formată din două părți, pagină și offset. Paginarea este foarte asemănătoare cu segmentarea, singura diferență este că blocurile în care este împărțit programul sunt blocuri de dimensiuni fixe, care este de obicei o putere de 2.

Mecanisme de protecție

Domenii de protecție

Matrice de protecție

Trebuie să definiți o modalitate, să interzice proceselor să acceseze acele obiecte pentru care nu au fost autorizate. Dar înainte de a discuta diferitele mecanisme de protecție este bine să definim conceptul de domeniu , prin domeniu înțelegem un cuplu format din obiect și drept. Un drept în acest caz este permisiunea pe care utilizatorul o are pentru a putea efectua sau nu o acțiune asupra unui obiect, în funcție de dacă este permis sau nu de sistem. De obicei, un domeniu este asociat cu un singur utilizator, dar acest lucru nu este întotdeauna cazul, dacă se dorește, conceptul de domeniu poate fi generalizat pentru mai mulți utilizatori, atâta timp cât aceștia fac parte din același grup.

Un principiu esențial în crearea unui domeniu este cel al principiului autorității minime, numit și POLA (principiul autorității minime), care stabilește că un domeniu este mai sigur atunci când a fost creat cu numărul minim de obiecte și privilegii care permit normalizarea Operațiune. În orice moment, fiecare proces poate rula potențial într-un anumit domeniu de securitate, dacă se dorește în timpul execuției, este posibil și ca un proces să treacă de la un domeniu la altul.

De exemplu, în mediul Unix domeniul unui proces este văzut de un UID (ID utilizator) sau de un GID (ID grup). Când utilizatorul se conectează, sistemul încarcă UID-ul sau GID-ul conținut în intrarea sa în fișierul de parolă. Dacă aveți toate domeniile sau toate combinațiile de UID și GID disponibile, puteți lista toate obiectele care pot fi accesate și cu ce drepturi pentru fiecare dintre ele. Se poate întâmpla, de asemenea, să existe două procese cu același domeniu, ceea ce înseamnă că ambele procese pot fi văzute de același obiect și vor avea ambele aceleași drepturi (citire, scriere, executare).

Un aspect important este modul în care sistemul ține evidența obiectelor aparținând unui domeniu dat, deși este rar folosit, este posibil să ne gândim că sistemul listează toate domeniile sale într-un tabel numit matrice extinsă, cu drepturile respective pentru fiecare obiect . Rândurile specifică domeniile, iar coloanele specifică obiecte, astfel încât fiecare pătrat din tabel listează drepturile pe care obiectul le are pentru acel domeniu particular.

Lista de control acces

Pictogramă lupă mgx2.svg Același subiect în detaliu: Lista de control acces .

Deoarece majoritatea domeniilor nu au acces la majoritatea obiectelor, există unele probleme la crearea matricei, deoarece stocarea unei matrice care este în cea mai mare parte goală este contraproductivă pentru consumul de resurse ale sistemului. Deci, sunt utilizate două abordări diferite, stocarea pe rând și pe coloană. Stocarea pe coloane se numește Access Control List (ACL), această tehnică constă în asocierea fiecărui obiect la o listă (ordonată) care conține toate domeniile care pot fi accesate și operațiunile legale. Să presupunem că există trei procese: A, B și C și trei fișiere F1, F2 și F3, pentru a evita complicațiile, se presupune că fiecare domeniu corespunde unui utilizator, deci avem trei utilizatori care sunt A, B și C. Pentru fiecare fișier Prin urmare, este creat un ACL, nu înseamnă neapărat că se referă la un singur utilizator, de exemplu, fișierul F1 poate avea două intrări care se referă la utilizatorii B și C cu drepturi de acces diferite. Orice acces la fișier de către utilizatori care nu sunt incluși în ACL-ul său este refuzat automat de sistem. În cele din urmă, trebuie remarcat faptul că drepturile de acces nu sunt atribuite procesului, ci utilizatorilor individuali. Până în prezent, am presupus că fiecărui proces i s-a atribuit un UID pentru un singur utilizator, dar, dacă se dorește, este posibil să se introducă și grupuri de utilizatori GID. Ori de câte ori se face o cerere de acces la un obiect, se verifică dacă UID-ul sau GID-ul apelantului este prezent în ACL, dacă este prezent, accesul este permis, altfel este refuzat. Cu ACL este posibil să se introducă conceptul de wildcard , de exemplu, dacă un utilizator face parte din mai multe grupuri, acesta va avea acces la toate obiectele sale, indiferent de grupul cu care este conectat utilizatorul, totuși acest tip de abordare, are dezavantajul de a crea un mediu puțin circumscris. În cele din urmă, dacă doriți să revocați sau să modificați accesul la un fișier de către un utilizator sau un grup, trebuie doar să modificați lista de control al accesului aferentă fișierului respectiv.

Capacitate

Pictogramă lupă mgx2.svg Același subiect în detaliu: Capabilitate .

O altă modalitate de a face față matricei extinse este stocarea elementelor sale pe rând, procedând astfel fiecare proces este asociat cu o listă de obiecte care pot fi accesate respectând drepturile de acces stocate în domeniu. Acest mod de a vedea matricea se numește o listă de capabilități sau pur și simplu C-list , în schimb elementele unice care fac parte din domeniu se numesc capabilități.

Fiecare subiect este asociat cu o listă care conține obiectele accesibile de același și drepturile sale de acces relative. Fiecare capabilitate acordă proprietarului anumite drepturi de acces la unele obiecte prezente în domeniul său. Dacă doriți, puteți face listele de capabilități pentru fiecare proprietar însuși obiecte și, ca atare, pot fi indicate de alte liste de capacități.

Bineînțeles, manipularea listelor trebuie evitată, iar protecția acestora poate fi implementată în trei moduri diferite. Prima necesită utilizarea unei arhitecturi etichetate care a fost acoperită anterior și constă dintr-o reproiectare hardware a memoriei, unde fiecare celulă are un bit suplimentar care indică dacă cuvântul ascuțit conține sau nu o capacitate. O altă metodă se bazează pe urmărirea listelor C din sistemul de operare. Pentru a vă referi la capabilități, specificați de fiecare dată poziția acestora în lista de capabilități.

În cele din urmă, ultima metodă constă în criptarea listei C și păstrarea acesteia în spațiul utilizatorului . Când un proces client trimite semnalul de acces către computerul de la distanță, serverul creează obiectul și generează un număr aleatoriu lung numit câmp de control care este asociat cu obiectul în sine. Câmpul de control nu este trimis niciodată înapoi utilizatorului într-un mod atât de transparent, ceea ce primește utilizatorul este capacitatea, acesta conține ID-ul serverului, numărul obiectului pentru care se încearcă accesul și drepturile acestuia, în cele din urmă în capabilități există un ultim câmp compus din concatenarea obiectului, a drepturilor și a câmpului de control, printr-o funcție de securitate criptografică unidirecțională. Dacă utilizatorul dorește să acceseze obiectul, trebuie să transmită capacitatea către server, din acesta extrage numărul obiectului, apoi extrage ultimul câmp și îl decriptează, numai dacă câmpul decriptat al acelui obiect corespunde celui pe care îl are serverul stocat în capacitatea sa își permite accesul.

Cu toate acestea, această implementare nu permite o anulare selectivă a capacităților, dar, spre deosebire de ACL, nu este necesar niciun control de acces, de fapt, cu ACL ar putea fi necesară o căutare lungă în lista de control a accesului.

Securitate pe mai multe niveluri

Această securitate este implementată în anumite zone, unde este necesar controlul accesului obligatoriu, pentru a se asigura că politicile de securitate sunt garantate de sistem, instituția definește reguli cu privire la cine poate accesa la ce și aceste reguli nu pot fi modificate de către utilizatori individuali. Cele mai utilizate modele de securitate pe mai multe niveluri sunt două: modelul Bell-La Padula și modelul Biba.

Modelul Bell-La Padula
Pictogramă lupă mgx2.svg Același subiect în detaliu: modelul Bell-LaPadula .

Acesta este cel mai folosit model, inițial a fost conceput în scopuri militare, dar mai târziu a găsit aplicații și în alte domenii. Având în vedere o ierarhie cu diferite niveluri de securitate, acest model înseamnă că procesele pot citi ierarhia și scrie doar și niciodată invers. Modelul Bell-La padula are reguli stricte privind modul în care informațiile pot circula, acestea sunt în principal două:

  1. Proprietate simplă de securitate: stabilește că un proces executat la nivelul de securitate k poate citi numai obiecte de nivelul său sau inferior;
  2. Proprietăți *: Această regulă dictează faptul că un proces care rulează la un nivel de securitate poate scrie numai obiecte la nivelul său sau mai sus.

Se poate arăta că dacă sistemul aplică strict aceste două proprietăți, nicio informație nu poate scăpa de la un nivel superior la unul inferior, dar, desigur, comportamentul său trebuie să fie garantat de sistemul de operare. O modalitate prin care sistemul de operare poate garanta funcționarea corectă a acestuia este prin atribuirea fiecărui utilizator un nivel de securitate și odată ce utilizatorul este conectat, shell-ul dobândește drepturile și le moștenește tuturor copiilor săi. Procedând astfel, în cazul în care un proces care rulează la nivelul k încearcă să acceseze obiecte cu un nivel superior, sistemul trebuie să respingă cererea. Modelul Bell-La Padula nu a fost creat pentru a garanta integritatea datelor, ci pentru a păstra secrete, adică pentru a evita ca informațiile prezente într-un nivel înalt al ierarhiei să poată fi citite la niveluri inferioare.

Modelul Biba
Pictogramă lupă mgx2.svg Același subiect în detaliu: modelul Biba .

Modelul Biba a fost conceput pentru exact opusul modelului Bell-La Padula, adică garantarea integrității datelor, pentru a face acest lucru aveți nevoie de alte proprietăți, în special două, care sunt exact opusul celor precedente:

  1. Principiul integrității simple: un proces atribuit nivelului de securitate k poate scrie numai obiecte la propriul său nivel sau mai jos;
  2. Principiul de integritate *: un proces care rulează la nivelul de securitate k poate citi numai obiecte cu un nivel de securitate egal sau mai mare decât al său.

Obținerea atât a modelelor Bell-La Padula, cât și a modelelor Biba pe o mașină este cu adevărat dificilă, deoarece proprietățile pe care le are un model sunt opuse celeilalte.

Autentificare

Pictogramă lupă mgx2.svg Același subiect în detaliu: autentificare .

Identitatea utilizatorului, la care ne putem gândi ca o combinație de permisiuni și privilegii, este adesea determinată de o autentificare utilizând o parolă [3] . Principalele metode de autentificare sunt:

Autentificare clasică cu parolă

Acest mecanism se bazează pe un fișier de parole, care conține lista de parole pentru accesarea sistemului, parolele din interior sunt de obicei criptate cu algoritmi precum hash LM sau DES [4] . Când un utilizator introduce o parolă, sistemul are grijă să o compare cu cele conținute în fișierul de parolă și dacă o parolă este aceeași, utilizatorul poate avea acces la sistem, altfel nu. De obicei, în momentul conectării în sistemele de operare unix , caracterele nu sunt afișate, în timp ce în sistemele Windows se folosesc caractere speciale pentru a masca afișajul, iar în caz de eșec, acestea oferă un număr limitat de informații.

Autentificare provocare-răspuns

Un exemplu grafic de provocare-răspuns.

O variantă a utilizării parolelor este utilizarea autentificării provocare-răspuns . La autentificare, utilizatorul ia un algoritm precum x². La momentul conectării, serverul trimite utilizatorului un parametru de exemplu 5 și, în acest caz, utilizatorul tastează 25, algoritmul poate fi modificat în timp. Dacă dispozitivul utilizatorului poate prelucra date precum computerul , cardul inteligent sau telefonul mobil , poate fi utilizat un formular mai puternic de răspuns la provocare în care utilizatorul preselectează o cheie secretă care este prezentă atât pe server, cât și ca o copie ( criptat) pe computerul utilizatorului. La conectare, serverul trimite un număr aleatoriu către computerul utilizatorului, care după procesarea funcției îl trimite înapoi. Cel mai semnificativ avantaj al provocării-răspuns este că, chiar dacă cineva ar intercepta traficul dintre client și server, nu ar primi nimic util pentru următoarea conectare.

Autentificarea de către obiectul deținut

Diverse sisteme sau servicii permit accesul prin utilizarea unui card sau card cu introducerea codului respectiv (pentru a evita cazurile de furt al obiectului). Distingem două tipuri de cărți:

  • Carduri magnetice: unde informațiile digitale (aproximativ 140 de octeți) sunt conținute pe o bandă magnetică lipită pe spatele cardului;
  • Chip Cards: care în schimb conțin un circuit integrat, ele pot fi de fapt considerate computere mici, deoarece sunt echipate cu un procesor , memorie RAM , ROM , EEPROM și un canal de comunicație și sunt capabile să comunice cu alte computere printr-un protocol special [ 5] ..

Autentificare utilizând tehnici biometrice

Pictogramă lupă mgx2.svg Același subiect în detaliu: Biometrie .

O variantă a utilizării parolelor pentru autentificare este utilizarea tehnicilor biometrice, adesea utilizate pentru a păstra accesul la medii precum centrele de procesare a datelor . Când vorbim despre tehnici biometrice, trebuie să facem o distincție între:

  • Caracteristici biometrice fiziologice sau anatomice: care se bazează pe caracteristicile fizice ale utilizatorului, cum ar fi forma mâinii, amprenta , retina , irisul și trăsăturile faciale. Acestea includ, de asemenea, analiza ADN-ului , dar datorită complexității sale intrinseci, imposibilității de a opera în timp real și legii în acest sens, nu este inclusă printre tehnicile de recunoaștere biometrică;
  • Caracteristici biometrice comportamentale: bazate pe date privind comportamentul diferiților utilizatori, cum ar fi recunoașterea vocii , mersul sau modul în care semnează;

Pentru a se asigura că sistemul nu greșește, caracteristica care trebuie stocată trebuie să fie suficient de singulară [6] . De exemplu, un parametru ineficient este să memoreze culoarea părului, deoarece prea mulți oameni au aceeași culoare, în mod similar, timbrul vocii se poate schimba din cauza unei răceală sau a altora, precum și o față se poate modifica din cauza semnelor de vârstă.prezența unei bărbi sau a unui alt machiaj. Depinde de proiectanți să decidă ce caracteristică să stocheze în baza de date. Tehnica amprentării este cea mai consolidată tehnică, primele sisteme au fost dezvoltate în 1950 de FBI [7] . În esență, constă în câțiva pași:

  • Recunoaștere completă a imaginii cu amprentă.
  • Recunoașterea detaliilor numite și caracteristici Galton [8] .
  • Faza de comparare a amprentei citite cu cele prezente în baza de date.

Un interes deosebit îl are sistemul eurodac bazat pe o bază de date centralizată a amprentelor digitale [9] . Instrumentele cele mai frecvent utilizate sunt, de exemplu, detectoarele de amprente digitale și manuale. Acești cititori compară parametrii stocați în arhivele lor cu cei detectați. Parametrii conțin de obicei o hartă a temperaturii, lungimea sau lățimea degetelor și liniile prezente în mână. Un alt sistem biometric popular este recunoașterea irisului. Nu există doi indivizi care să aibă același lucru, deci poate fi considerat la fel de eficient ca cel al amprentelor digitale, printre altele din punct de vedere al singularității irisul [9] are un număr de caracteristici de șase ori mai mare decât cel al amprentelor digitale. Acest sistem funcționează după cum urmează:

  • Un utilizator se uită spre o cameră care fotografiază ochiul subiectului și extrage unele caracteristici prin efectuarea transformării de undă Gabor și comprimarea rezultatului într-un șir binar. Acest șir va fi comparat ulterior cu valoarea obținută la momentul înregistrării, dacă distanța de Hamming este sub pragul critic, atunci utilizatorul va avea acces la sistem, invers, nu.

Autentificare multifactorie

Aceste metode de autentificare menționate mai sus pot fi utilizate împreună, aducând rezultate mai bune. Questa tecnica è chiamata autenticazione multifattoriale, un esempio di tale metodo è un sistema di autenticazione che utilizzi il collegamento di un dispositivo USB per accedere al sistema, l'inserimento di un Codice PIN e la lettura di impronte digitali. Anche se non può garantire la sicurezza dell'identità poiché le sessioni possono essere sfruttate da intrusi, l'autenticazione multifattoriale è utilizzata per raggiungere un grado di sicurezza, nettamente superiore all'utilizzo singolare delle tecniche di autenticazione.

Sistemi operativi Trusted

La progettazione di sistemi operativi è già di per sé complessa e l'aggiunta al sistema della responsabilità di protezione ne aumenta notevolmente la complessità. Tuttavia è stato appurato che è meglio progettare la protezione all'inizio, che introdurla a fine progetto. La sicurezza è una parte essenziale di un progetto iniziale di un sistema operativo trusted . La protezione deve essere considerata in ogni aspetto della progettazione e deve esistere un'associazione chiara dei requisiti di protezione alla struttura, in modo tale che tutti gli sviluppatori possano comprenderla. Inoltre, dopo la progettazione di una sezione del sistema operativo, è necessario controllare che il grado di protezione che la sezione dovrebbe imporre sia stato progettato correttamente. Esistono diversi principi di progettazione essenziali al fine di una corretta realizzazione di un sistema operativo trusted, fra questi si ricordano:

  • Principio del privilegio minimo : ogni utente deve operare utilizzando privilegi minimi, in modo che il danno provocato da un attacco involontario o maligno viene ridotto;
  • Economia del privilegio: la struttura del sistema protezione deve essere semplice, così da permettere un'attenta analisi e un efficiente collaudo;
  • Struttura aperta: il meccanismo di protezione deve essere pubblico e basato sulla segretezza di pochi elementi chiave, così da permettere l'analisi pubblica e fornire una conferma indipendente della sicurezza del sistema stesso;
  • Mediazione completa: ogni tentativo di accesso deve essere controllato;
  • Basato su autorizzazione : la condizione predefinita deve essere la negazione di accesso e il progettista deve identificare solo gli elementi che dovrebbero essere accessibili;
  • Separazione dei privilegi: l'accesso agli oggetti deve dipendere da più di una condizione;
  • Minimo meccanismo comune: i sistemi devono utilizzare la separazione fisica o logica degli oggetti in modo da ridurre il rischio della condivisione;
  • Facilità di utilizzo: un meccanismo di protezione facile da utilizzare è più difficile da essere ignorato.

Ogni sistema operativo trusted utilizza particolari funzioni che riguardano la sicurezza del computer. Ad esempio un sistema operativo si occupa dell' autenticazione degli utenti, della protezione della memoria , dell'allocazione e del controllo degli accessi agli oggetti generici e alle periferiche di I/O, della sincronizzazione e della comunicazione tra processi e della protezione dei dati di protezione del sistema [10] . A differenza dei sistemi operativi normali, la progettazione di un sistema trusted coinvolge la selezione di un insieme appropriato e coerente di funzionalità insieme ad un grado di fiducia appropriato, relativo al fatto che le funzionalità siano state assemblate e implementate correttamente. Inoltre in un sistema operativo trusted gli oggetti sono accompagnati e circondati da un meccanismo di controllo degli accessi, che offre una protezione maggiore rispetto a quella dei sistemi operativi convenzionali. La memoria risulta essere separata dagli utenti, mentre le librerie dei programmi ei dati controllano la condivisione e la separazione [11] . I difetti tipici di un sistema operativo riguardano essenzialmente quattro campi:

  1. L'elaborazione dell'I/O: costituisce la più grande fonte di vulnerabilità del sistema [12] ;
  2. Ambiguità nella policy di accesso: da una parte è opportuno separare gli utenti e proteggere le loro singole risorse, dall'altra, gli utenti dipendono accesso condiviso a librerie e dati comuni. La distinzione tra l'isolamento e la condivisione, però, non è sempre chiara a livello di policy;
  3. La mediazione completa: in teoria la struttura di un sistema operativo deve controllare la disponibilità dell'autorizzazione ad ogni accesso richiesto, ma la maggior parte dei sistemi esegue il controllo una sola volta;
  4. La generalità: diffusa specialmente nei sistemi operativi commerciali. Infatti l'installazione di pacchetti software, scritti da alcune società, opera con gli stessi privilegi di accesso del sistema operativo. A volte però insieme a questi pacchetti possono essere installati anche trapdoor che qualsiasi utente può sfruttare per penetrare nel sistema.

A fronte di queste potenziali vulnerabilità del sistema, è possibile applicare alcune tecniche di garanzia per attenuarle o eliminarne gli effetti. Sicuramente le principali tecniche di garanzia sono tre: il collaudo, la verifica e la convalida [13] . Alcuni esempi di sistemi operativi trusted:

Nel sistema operativo Unix un dominio è associato all'utente, quindi il cambio del dominio corrisponde al cambio temporaneo dell'identificatore dell'utente. Questo cambio avviene tramite file system e ad ogni file sono associati un identificatore di proprietario e un bit di dominio (detto setuid bit). Tale meccanismo è utilizzato in quasi tutti i sistemi, dato che rende possibile a tutti gli utenti una funzione che richiede diversi privilegi. Il problema che si pone con questo metodo è che se un utente riesce a creare un file con identificatore root e il setuid bit posto a on, può assumere l'identità di root e fare qualsiasi operazione sul sistema. Proprio per questo motivo in altri sistemi operativi si utilizza un metodo alternativo che prevede l'inserimento dei programmi privilegiati in una directory speciale. In questo caso il sistema operativo è progettato in modo da cambiare, al momento dell'esecuzione, l'identificatore dell'utente di ogni programma residente in questa directory, rendendola equivalente a root o all'identificatore dell'utente del proprietario della directory.

Microsoft Windows XP è un sistema operativo progettato per disporre di una varietà di caratteristiche e metodi di sicurezza. Il modello di sicurezza si basa sulla nozione di utente accreditato del sistema. Esso infatti permette la creazione di un numero arbitrario di utenti del sistema. L'accesso agli oggetti del sistema si può poi consentire o negare secondo i modi desiderati. Il sistema identifica gli utenti per mezzo di un identificatore di sicurezza unico. Infatti quando un utente accede al sistema, si crea un contrassegno d'accesso di sicurezza, che include l'identificatore di sicurezza dell'utente, gli identificatori di sicurezza per tutti i gruppi dei quali l'utente è membro e una lista di tutti i permessi speciali di cui gode. L'autenticazione, di solito, avviene rispetto a un nome utente ea una parola d'ordine, anche se la struttura del sistema Windows XP permette lo sviluppo di mezzi di autenticazione specifici, come l'analizzatore elettronico dell'impronta della retina. Il sistema Windows XP usa l'idea del soggetto per far sì che i programmi eseguiti per conto di un utente non ottengano modi d'accesso al sistema meno restrittivi di quelli dell'utente stesso. Un soggetto si usa per identificare e gestire i permessi relativi a ogni programma eseguito per conto di un utente, ed è composto dal contrassegno d'accesso e dal modello client-server, per controllare gli accessi si usano due classi di soggetti. Il sistema Windows XP è dotato di un sistema di verifica e permette il controllo di molte comuni minacce per la sicurezza del sistema. Gli attributi di sicurezza di un oggetto del sistema Windows XP sono descritti da un descrittore di sicurezza, contenente l'identificatore di sicurezza del proprietario dell'oggetto, una lista di controllo discrezionale degli accessi che stabilisce quali utenti o gruppi abbiano o non abbiano possibilità d'accesso e una lista di sistema di controllo degli accessi che controlla quali messaggi di verifica saranno generati. Una lista di controllo degli accessi contiene elementi composti dell'identificatore di sicurezza dell'individuo e della maschera d'accesso che definisce tutte le azioni permesse sull'oggetto insieme con un valore convenzionale d'accesso consentito o d'accesso negato per ogni azione. Inoltre questo sistema operativo classifica gli oggetti come contenitori e non contenitori . Gli oggetti contenitori possono contenere in senso logico altri oggetti. Quando si crea un oggetto all'interno di un oggetto contenitore, il nuovo oggetto eredita i permessi dell'oggetto genitore. Gli oggetti non contenitori non ereditano nessun altro permesso. Un punto di forza del sistema Windows XP è la disponibilità di strumenti che aiutano a fornire un ambiente informatico sicuro.

Note

  1. ^ Metodi di protezione , su ippari.unict.it . URL consultato il 26-02-2010 (archiviato dall' url originale il 7 ottobre 2009) .
  2. ^ Protezione della memoria , su ippari.unict.it . URL consultato il 26-02-2010 (archiviato dall' url originale il 7 ottobre 2009) .
  3. ^ Introduzione alla sicurezza dei sistemi operativi ( PDF ), su users.dimi.uniud.it . URL consultato il 26-02-2010 .
  4. ^ Linux Security howto , su siena.linux.it . URL consultato il 16-03-2010 .
  5. ^ I moderni Sistemi Operativi , su books.google.it , Pearson Education Italia, 2009, 4 marzo 2010, p. 599.
  6. ^ Relazione sulle metodologie di identificazione attraverso le tecniche biometriche ( PDF ) [ collegamento interrotto ] , su ippari.unict.it , p. 13. URL consultato il 02-03-2010 .
  7. ^ Relazione sulle metodologie di identificazione attraverso le tecniche biometriche ( PDF ) [ collegamento interrotto ] , su ippari.unict.it . URL consultato il 02-03-2010 .
  8. ^ Relazione sulle metodologie di identificazione attraverso le tecniche biometriche ( PDF ) [ collegamento interrotto ] , su ippari.unict.it , p. 20. URL consultato il 02-03-2010 .
  9. ^ a b Brevi note sulle tecnologie biometriche in un contesto ICT , su privacy.it . URL consultato il 01-03-2010 .
  10. ^ Charles P. Pfleeger, Sicurezza in Informatica , su books.google.it , Pearson Paravia Bruno Mondad, 2004, p. 288.
  11. ^ Charles P. Pfleeger, Sicurezza in Informatica , su books.google.it , Pearson Paravia Bruno Mondad, 2004, p. 290.
  12. ^ Charles P. Pfleeger, Sicurezza in Informatica , su books.google.it , Pearson Paravia Bruno Mondad, 2004, p. 311.
  13. ^ Charles P. Pfleeger, Sicurezza in Informatica , su books.google.it , Pearson Paravia Bruno Mondad, 2004, p. 314.

Bibliografia

Voci correlate

Collegamenti esterni

Sicurezza informatica Portale Sicurezza informatica : accedi alle voci di Wikipedia che trattano di sicurezza informatica