Possibilità
Concettualmente, una possibilità è come la fila di una tabella di controllo di accesso. Ogni oggetto ha associato con esso un insieme degli accoppiamenti, con ogni accoppiamento che contiene un oggetto e un insieme dei diritti. L'oggetto si è associato con questa lista può accedere all'oggetto chiamato in c'è ne dei sensi indicati dai diritti chiamati. Più formalmente:
Abbreviamo "la lista di possibilità" come C-Lista. Le possibilità incapsulano l'identità dell'oggetto. Quando un processo presenta una possibilità a nome di un utente, il sistema operativo esamina la possibilità per determinare sia l'oggetto che l'accesso a cui il processo è autorizzato. Ciò riflette come i capabiliies per l'amministrazione di memoria funzionano; la posizione dell'oggetto nella memoria è incapsulata nella possibilità. Senza una possibilità, il processo non può chiamare l'oggetto in un senso che gli darà l'accesso voluto.
"i codici" di Iliffe sono simili alle possibilità. "le possibilità" sono un senso controllare l'accesso agli oggetti nella memoria o immagazzinaggio secondario. Fabry ha generalizzato questa idea effettuare il richiamo possibilità-basato. L'architettura delle possibilità è più interessante di quella delle liste di controllo di accesso. Il Access Control List e l'identità trattata sono sotto il controllo del sistema operativo. In assenza dei difetti, i processi dell'utente possono cambiarli soltanto invocando i servizi del sistema operativo. Tuttavia, un processo deve identificare una possibilità per usarla, in modo da il processo deve avere certo controllo sopra le possibilità. Se il processo può forgiare una possibilità ed allora usarlo, i comandi di accesso vengono a mancare. Esecuzione delle possibilitàTre meccanismi sono usati per proteggere le possibilità: modifiche, memoria protetta e cryptography. Un'architettura etichettata ha un insieme delle punte connesse con ogni parola dei fissaggi. La modifica ha due dichiara: l'insieme ed unset. Se la modifica è regolata, un processo ordinario può leggere ma non modificare la parola. Se la modifica è unset, un processo ordinario può leggere e modificare la parola. Più ulteriormente, un processo ordinario non può cambiare il dichiarare della modifica; il processor deve essere in un modo privilegiato da fare così.
Più comune è usare le punte di protezione connesse con paginazione o segmentazione. Tutte le possibilità sono memorizzate in una pagina (segmento) che il processo può leggere ma non alterare. Ciò non richiede fissaggi per un fine particolare tranne quella usata dallo schema dell'amministrazione di memoria. Ma il processo deve riferire indirettamente le possibilità, solitamente attraverso gli indicatori, piuttosto che direttamente.
Una terza alternativa deve usare il cryptography. L'obiettivo delle modifiche e della protezione di memoria è di impedire le possibilità essere alterata. Ciò è analoga del controllo di integrità. I totali di controllo crittografici sono un altro meccanismo per il controllo dell'integrità delle informazioni. Ogni possibilità ha un totale di controllo crittografico connesso con esso ed il totale di controllo digitalmente è cifrato usando un cryptosystem di cui la chiave è conosciuta al sistema operativo. Quando il processo presenta una possibilità al sistema operativo, i primi recomputes che del sistema il totale di controllo crittografico si è associato con la possibilità. Allora cifra il totale di controllo usando la chiave crittografica e lo paragona a quella immagazzinata nella possibilità, o decifra il totale di controllo fornito della possibilità e lo paragona al totale di controllo computato. Se abbinano, la possibilità è invariata. Se non, la possibilità è rifiutata.
Possibilità di copiatura e d'amplificazioneLa capacità di copiare le possibilità implica la capacità di dare i diritti. Per impedire i processi indiscriminatamente dare i diritti assenti, una bandierina della copia è associata con le possibilità. Un processo non può copiare una possibilità ad un altro processo a meno che la bandierina della copia sia regolata. Se il processo copia la possibilità, la bandierina della copia può essere spenta (a discrezione del processo o del nocciolo).
L'amplificazione è aumentare dei privilegi. L'idea di programmazione modulare e particolarmente dei tipi di dati astratti, richiede che i diritti che un processo ha sopra un oggetto sono amplificati. Per capire perchè, consideri il seguente tipo di dati astratto per un contatore. contatore del modulo; ctr increment(var dell'entrata di procedura: numero intero); cominci il ctr: = ctr + 1; estremità; getval(ctr dell'entrata di funzione: numero intero); cominci getval: = ctr; estremità; ctr clear(var dell'entrata di procedura: numero intero); cominci il ctr: = 0; estremità; estremità. Supponga che la x è dichiarata per essere un contatore. Le regole dei tipi di dati astratti ammettono che oggetto da raggiungere soltanto dal contro modulo. Così, inizialmente la possibilità per la x conterrebbe la destra invocare il contro modulo soltanto. Ma quando l'oggetto è passato al contro modulo, il processo deve ora potere leggere e scrivere a quell'oggetto. Quindi, la possibilità deve essere amplificata temporaneamente mentre il contatore del modulo è attivo.
Annullamento dei dirittiIn un sistema di possibilità, revocare l'accesso ad un oggetto richiede che tutte le possibilità che assegnano l'accesso a quell'oggetto sono revocate. Concettualmente, ogni processo ha potuto essere controllato e le possibilità essere cancellato. Il costo di un tal funzionamento sarebbe inaccettabile, tuttavia, in modo da i metodi alternativi sono usati. Il meccanismo più semplice è indirection. Definisca una o più tabelle globali dell'oggetto. In questo schema, ogni oggetto ha un'entrata corrispondente in una tabella. Le possibilità non chiamano direttamente l'oggetto; chiamano l'entrata nella tabella che corrisponde all'oggetto. Questo schema presenta parecchi vantaggi. In primo luogo, revocare le possibilità, l'entrata nella tabella globale dell'oggetto è invalidata. Allora tutti i riferimenti otterranno un'entrata non valida della tabella e saranno rifiutati. In secondo luogo, se soltanto alcune delle possibilità devono essere revocate, l'oggetto può avere le entrate multiple, ciascuno che corrisponde ad un insieme differente dei diritti o un gruppo differente degli utenti.
Un meccanismo alternativo di annullamento usa il tipo di dati astratto responsabili. È inclusa con ogni tipo di dati astratto una procedura di annullamento. Quando l'accesso deve essere revocato, il tipo responsabile simpy respinge ulteriori accessi dall'oggetto di cui i diritti stanno revocandi. Ciò non interessa i metodi alternativi di accesso a degli oggetti di fondo i tipi di dati astratti. Per esempio, l'accesso ad una lima può essere revocato, ma questa tecnica non ostruirebbe l'accesso ai segmenti di fondo attraverso un tipo alternativo responsabile. Il sistema SCP3 ha usato questa tecnica. Confronto con le liste di controllo di accessoDue domande sono alla base dell'uso dei comandi di accesso:
Nella teoria, le liste o le possibilità di controllo di accesso possono rispondere a queste domande. Per la prima domanda, le possibilità sono il più semplice; lista giusta gli elementi della C-Lista associata dell'oggetto. Per la seconda domanda, ACLs sono il più semplice; lista giusta gli elementi del Access Control List dell'oggetto. In un sistema di ACL-based, rispondere alla prima domanda richiede tutti gli oggetti essere esplorato. Il sistema estrae tutte le entrate di ACL connesse con l'oggetto in questione. In un sistema possibilità-basato, rispondere alla seconda domanda richiede tutti gli oggetti essere esplorato. Il sistema estrae tutte le possibilità connesse con l'oggetto in questione. Karger e Herbert speculano che la differenza pratica nel rispondere alla seconda domanda è il motivo più liste di controllo di accesso di uso dei sistemi che le possibilità. Questo problema è fatto più spesso del primo. Poichè il fuoco della risposta di avvenimento sposta da "chi ha acceduto all'oggetto" per includere "che altro ha fatto quell'accesso tematico," i sistemi possibilità-basati possono diventare più comuni. ciò è un articolo aggiunto da Fred Foster
|
|||||||||||
|