Capability

Da Wikipedia, l'enciclopedia libera.

Con il termine capability si definiscono i permessi di esecuzione che vengono associati ai processi e agli utenti che dovranno usufruire delle risorse, messe a disposizione in un determinato dominio di un sistema informatico; la logica di tale approccio è di assegnare ai soggetti informatici operanti nel dominio, nella fase della loro inizializzazione, i permessi minimi e sufficienti ad essi necessari per eseguire la procedura per cui implementati.

Tale sistema segue la logica inversa di quanto organizzato nel meccanismo ACL (Access Control List) dove i permessi sono associati agli oggetti che virtualizzano le risorse medesime ed esprimono chi è autorizzato ad accedervi.

Con il sistema delle capabilty si può gestire la sicurezza all'interno di un dominio, implementando le funzionalità da svolgere nel sistema in maniera modulare e sovrapponibile, dove i sottodomini in cui vengono a svolgersi i processi determinati, verranno dunque a possedere un alto grado di indipendenza in merito alla definizione del proprio meccanismo di protezione e tenderanno a formare strutture lineari facili da: sviluppare, mantenere ed implementare.

All'atto pratico i sistemi che utilizzano le capability associano a ciascun processo una lista di capability (o C-list), che descrive per l'appunto a quali oggetti (per esempio file) il processo può accedere. Una C-list può essere formata da dei nodi, ciascuno dei quali rappresenta i permessi su un determinato oggetto puntato.

C'è da rilevare che il meccanismo di protezione basato sulle capabilties segue l'approccio inverso di quello messo a punto creando domini gerarchici di protezione, anzi, nell'utilizzo congiunto di queste due tecnologie, comunemente, quando il kernel del sistema rileva che le richieste provengono da un processo dotato di capabilties, considererà il processo in oggetto come una procedura privilegiata, permettendo che il dominio da essa specificato (attraverso la C-list) assuma la precedenza rispetto il sistema gerarchico implementato a partire dalla virtualizzazione delle risorse hardware.

Implementazione[modifica | modifica wikitesto]

Ci sono diversi metodi per implementare le capability:

  • In hardware: ad ogni parola in memoria viene aggiunto uno speciale tag che indica se la parola contiene una capability. Solo il sistema operativo possiede i requisiti per poter modificare questi tag.
  • In spazio kernel: il sistema operativo ordina a ciascun processo che tenta di accedere ad un determinato oggetto di verificarne dapprima i permessi consultando una C-list.
  • In spazio utente: le C-list sono memorizzate in spazio-utente, ma per questo motivo devono venire crittografate per impedire contraffazioni da parte degli utenti.
Sicurezza informatica Portale Sicurezza informatica: accedi alle voci di Wikipedia che trattano di Sicurezza informatica