Il Controllo Di Accesso Elenca il Acl


  Share  
|


Una variante evidente della tabella di controllo di accesso deve immagazzinare ogni colonna con l'oggetto che rappresenta. Quindi, ogni oggetto ha associato con esso un insieme degli accoppiamenti, con ogni accoppiamento che contiene un oggetto e un insieme dei diritti. L'oggetto chiamato può accedere all'oggetto collegato usando c'è ne di quei diritti. Più formalmente:

Lasci la S essere l'insieme degli oggetti e la R l'insieme dei diritti, di un sistema. Un Access Control List (ACL) l è un insieme degli accoppiamenti l = {(s, r): s inclusa nella S, nella r incluse nella R}. Lasci il acl essere una funzione che determina il Access Control List l connesso con un oggetto particolare o. Interpretazione del acl(o) del Access Control List = {(silicone, ri): 1 < = i < = n} è che il silicone tematico può accedere alla o usando affatto a destra nel ri.

Un'edizione è la materia di permesso di difetto. Se un oggetto non è chiamato nel ACL, non ha diritti sopra l'oggetto collegato. Su un sistema con molti oggetti, il ACL può essere molto grande. Se molti oggetti hanno la stessa destra sopra la lima, si potrebbe definire "un metacarattere" per abbinare tutti gli oggetti non specificati e dà loro i diritti di difetto.

ESEMPIO: UNICOS 7.0 ACLs hanno entrate della forma (utente, gruppo, diritti). Se l'utente è nel gruppo chiamato, lui o lei ha quei diritti sopra l'oggetto. Per esempio, il tripletto (agrifoglio, il maceranch, r) dà l'accesso colto agrifoglio dell'utente (r) sopra l'oggetto soltanto quando l'agrifoglio ha maceranch come suo gruppo.

Se l'utente o il gruppo è specificato come "*", quel carattere è preso per abbinare tutti gli utenti o tutti i gruppi. Quindi, (agrifoglio, *, r) dà l'agrifoglio ha letto il permesso sopra l'oggetto senza riguardo al gruppo ch'è dentro; (*, il maceranch, r) dà tutto il permesso colto utente sopra l'oggetto quando quell'utente è nel maceranch del gruppo.


Abbreviazioni delle liste di controllo di accesso

Alcuni sistemi abbreviano le liste di controllo di accesso. La base per controllo di accesso della lima nel sistema operativo di UNIX è di questa varietà. I sistemi di UNIX dividono l'insieme degli utenti in tre codici categoria: il proprietario della lima, il proprietario del gruppo della lima e tutti gli altri utenti. Ogni codice categoria ha un insieme separato dei diritti.

ESEMPIO: I sistemi di UNIX forniscono leggono (r), scrivono (w) ed eseguono (x) i diritti. Quando il bishop dell'utente genera una lima, supponga che è nel vulner del gruppo. Inizialmente, il bishop chiede che può leggere da e scrivere alla lima, che ai membri del gruppo sono permessi leggere dalla lima e che nessun altro hanno accesso alla lima. Allora i permessi sarebbero rw per il proprietario, la r per il gruppo e nessun per altra.

I permessi di UNIX sono rappresentati come tre tripletti. Il primo è i diritti del proprietario; il secondo, diritti del gruppo; ed il terzo, altri diritti. All'interno di ogni tripletto, la prima posizione è r se l'accesso colto è permesso o se non è; la seconda posizione è W se scriva l'accesso si concede o se non è; e la terza posizione è x se esegua l'accesso si concede o se non è. I permessi per la lima del bishop sarebbero rwr.

Una domanda interessante è come i sistemi di UNIX assegnano la proprietà del gruppo. Tradizionalmente, i sistemi di UNIX assegnano l'identificazione di gruppo principale efficace del processo di generazione. Ma in alcuni casi questo non è adatto. Per esempio, supponga impianti di programma dello stampante di linea usando i permessi del gruppo; dica che il relativo gruppo è lpdaemon. Allora, quando un utente copia una lima nell'indice di bobina, il lpdaemon deve possedere la lima di bobina. Il senso più semplice fare rispettare questo requisito deve fare il gruppo dell'indice di bobina posseduto da lpdaemon e fare la proprietà del gruppo ereditare da tutte le lime generate in quell'indice. Alcuni systemsnotably, systemsaugment che di SunOS e di Solaris la semantica dei modi di protezione di lima regolando il setgid ha morso sull'indice quando tutte le lime generate nell'indice devono ereditare la proprietà del gruppo dell'indice contenente.


Le abbreviazioni delle liste di controllo di accesso, come quelli sostenuti dal sistema operativo di UNIX, soffrono da una perdita del granularity. Supponga che un sistema di UNIX ha cinque utenti. Anne desidera permettere che Beth legga la suoi lima, Caroline per scrivere esso, Della da leggere e scrivere esso ed Elizabeth per eseguirlo. Poiché ci sono soltanto tre insiemi dei permessi e cinque hanno voluto le disposizioni dei diritti (Alice compresa), tre tripletti sono insufficienti per permettere tutti i modi voluti di accesso. Quindi, Alice deve compromettere e dia qualcuno più diritti che vuole o dà qualcuno pochi diritti. Similmente, il controllo di accesso tradizionale di UNIX non permette che si dica "ognuno ma l'utente Fran"; per fare questo, uno deve generare i gruppi di tutti gli utenti tranne Fran. Una tal disposizione è ingombrante, tanto più perché soltanto un coordinatore di sistema può generare i gruppi.

Molti sistemi aumentano le abbreviazioni di ACLs con ACLs completo. Questo schema usa le abbreviazioni di ACLs come i comandi di permesso di difetto; il ACL esplicito esclude i difetti come stati necessari. Il metodo esatto varia.

ESEMPIO: La versione dell'IBM del sistema operativo di UNIX, denominata AIX, usa un ACL (chiamato "ha esteso i permessi") per aumentare le abbreviazioni tradizionali di UNIX di ACL (chiamato "permessi bassi"). Diverso di ACLs tradizionale, il AIX ACL permette che si specifichi i permessi essere aggiunto o cancellato dall'insieme dell'utente. Come UNICOS, AIX basa i fiammiferi sull'identità dell'utente e del gruppo. La procedura specifica (usando la terminologia del AIX, in cui "i permessi bassi" sono le abbreviazioni di UNIX di ACLs e "di permessi estesi" è entrate unabbreviated di ACL) è come segue.

  1. Determini che cosa ha regolato la S dei permessi che l'utente ha dai permessi bassi.

  2. Se i permessi estesi sono disabled, arrestisi. L'insieme S è l'insieme dell'utente dei permessi.

  3. Ottenga l'entrata seguente nei permessi estesi. Se ci sono nient'altro, arrestisi. L'insieme S è l'insieme dell'utente dei permessi.

  4. Se l'entrata ha lo stessi utente e gruppo del processo che chiede l'accesso, determini se l'entrata nega l'accesso. In caso affermativo, arrestisi. L'accesso è negato.

  5. Modifichi la S come dettata dai permessi nell'entrata.

  6. Vada a 3.

Come esempio specifico, consideri la seguente rappresentazione dei permessi di controllo di accesso del sistema di AIX per la lima xyzzy.

     
attributi: owner(bishop) basso        di 
permessi:    group(sys)        del rw-:       r
--        altre:           --- i permessi estesi permessi        specificano           il permesso      del rw-        u:holly            - il W      u:heidi, il rw-        u:matt            del permesso      dei g=sys        neghi              - W      u:holly, g=faculty

Nelle linee estese di permessi, il primo campo determina che cosa la linea significa ("specifichi" per escludere i permessi bassi, "permesso" aggiungere i diritti e "neghi" ai diritti di cancellazione); il secondo campo dichiara i diritti in questione, per mezzo del tripletto tradizionale di UNIX; ed il terzo campo definisce l'utente ("u:") e gruppo ("g:") implicato.

In questo esempio, l'agrifoglio può leggere xyzzy perché le linee di quarto e primo nella sezione estesa di permessi escludono la smentita bassa di permesso di accesso ad altri (il codice categoria di cui agrifoglio sia un membro). Se l'agrifoglio sta funzionando nel gruppo della facoltà, non può scrivere a xyzzy (l'ultima linea) ma può leggerla (prima linea). Il heidi dell'utente, funzionante nel sistema del gruppo, può leggere e scrivere alla lima (la linea del gruppo nei permessi bassi dà il permesso colto heidi; la prima linea del permesso nei permessi che estesi la sezione dà il suo scrive il permesso). In questo modo, i permessi estesi aumentano i permessi bassi.

Creazione e mantenimento delle liste di controllo di accesso

Le esecuzioni specifiche di ACLs differiscono da in dettaglio. Alcune delle edizioni sono come segue.

  1. Quali oggetti possono modificare il ACL dell'oggetto?

  2. Se ci è un utente privilegiato (quali la radice nel sistema di UNIX o il coordinatore in Windows NT), i ACLs si applicano a quell'utente?

  3. i gruppi di sostegno di ACL o i metacaratteri (cioè possono gli utenti essere raggruppati in serie basate su una nozione del sistema "del gruppo" o sulla corrispondenza di modello)?

  4. Come i permessi contradittori di controllo di accesso sono maneggiati? Se lle concessioni dell'una voce leggono i privilegi soltanto e lle altre concessioni scrivono i privilegi soltanto, che di destra l'oggetto ha sopra l'oggetto?

  5. Se una regolazione di difetto è permessa, i permessi di ACL la modificano, o il difetto è usato soltanto quando l'oggetto non è accennato esplicitamente nel ACL?

Poiché questi isues sono critici all'uso corretto di ACLs su un sistema, li esploreremo più dettagliatamente.

Quali oggetti possono modificare il ACL dell'oggetto?

Quando un ACL è generato, i diritti sono instantiated. Il capo fra questi diritti è quello che denomineremo per possedere. I possessors del possedere a destra possono modificare il ACL.

La generazione dell'oggetto inoltre genera il relativo ACL, con un certo valore iniziale (possibilmente vuoto, ma il creatore inizialmente è dato più solitamente tutti i diritti, compreso il proprio, sopra il nuovo oggetto). Dalla convenzione, l'oggetto con i propri diritti è permesso modificare il ACL. Tuttavia, alcuni sistemi permettono che chiunque con accesso maneggi i diritti.

ESEMPIO: Il sistema R della base di dati relazionale contiene gli insiemi dei n-n-tuples che fanno sulle annotazioni ed ogni elemento di ogni n-n-tuple ha attributi. Questi n-n-tuples sono immagazzinati come tabelle, con le annotazioni come le file e gli attributi come le colonne. Ogni tabella definisce un rapporto.

I diritti per il maneggiamento della tabella (rapporto) includono colto (per le file della lettura, interrogando usando il rapporto, o definendo le viste), aggiornano (per la scrittura ad una tabella), inseriscono (per la aggiunta delle file), cancellano (per la cancellazione delle file) e goccia (per la cancellazione delle tabelle). Ciascuno di destra ha un modificatore, denominato l'opzione di concessione, che se l'insieme permette che il possessor dia la destra ad un altro. Tutto l'utente con accesso ad una tabella può dare i diritti a qualunque altro utente, se la destra ha l'opzione di concessione. Quindi, possesso di accesso (e un'opzione di concessione connessa con ciascuno destra), non proprietà, comandi il trasferimento dei diritti.


I ACLs si applicano ad un utente privilegiato?

Molti sistemi hanno utenti con i privilegi supplementari. I due conosciuti il più bene sono il super-user della radice sui sistemi di UNIX e sull'utente del coordinatore su Windows NT e 2000 sistemi. Tipicamente, ACLs (o le loro forme degenerate) sono applicati ad un modo limitato a tali utenti.

ESEMPIO: I sistemi di Solaris UNIX usano sia le abbreviazioni del campione di ACLs ai sistemi di UNIX che un ACL completo. Le abbreviazioni di ACLs sono ignorate quando la radice è l'oggetto, ma i ACLs pieni si applicano anche alla radice.


i gruppi di sostegno di ACL ed i metacaratteri?

Nella relativi forma, ACLs classici non i gruppi di sostegno o i metacaratteri. In pratica, i sistemi sostengono uno o l'altro (o entrambi) per limitare il formato del ACL e per rendere la manipolazione delle liste più facile. Ad un gruppo può raffinare le caratteristiche dei processi da essere concedutsi l'accesso o essere un sinonimo per un insieme degli utenti (i membri del gruppo).

ESEMPIO: Nell'esempio di AIX qui sopra, ricordi che le linee estese di permesso (che corrispondono al massimo ACL) erano

i permessi estesi hanno permesso
specifichi il rw- u:holly
permesso - W u:heidi, g=sys
rw- u:matt del permesso
neghi - il W u:holly, g=faculty

Inizialmente, il sistema del gruppo aveva letto il permesso soltanto sulla lima. La seconda linea aggiunge scrive il permesso per i processi con il heidi di UID ed il sistema di GID. La prima linea dà i processi con l'agrifoglio di UID colto e scrive l'accesso, a meno che quando il GID del processo è facoltà, nel qual caso il processo non può scrivere all'oggetto (veda la linea di quarto).


ESEMPIO: Il sistema operativo di UNICOS fornisce ACLs simile a quelli di AIX, ma permette i metacaratteri. Per esempio,

agrifoglio: maceranch: r  
significa che un processo con l'agrifoglio di UID ed il maceranch di GID può leggere l'oggetto con cui il ACL è collegato. L'entrata di ACL
agrifoglio: *: r  
significa che un processo con l'agrifoglio di UID può accedere all'oggetto senza riguardo al gruppo che il processo è dentro. E l'entrata
*: maceranch: r  
significa che tutto il processo con il maceranch di GID può leggere l'oggetto.

Conflitti

Un conflitto presenta quando due entrate del Access Control List nello stesso ACL danno i permessi differenti all'oggetto. Il sistema può permettere l'accesso se qualunque entrata desse l'accesso, nega l'accesso se qualunque entrata negasse l'accesso, o applica la prima entrata che abbina l'oggetto.

ESEMPIO: Se qualunque entrata in un AIX ACL nega l'accesso, l'oggetto è negato l'accesso senza riguardo alla posizione di quell'entrata. Altrimenti, se qualunque entrata ha assegnato l'accesso, l'oggetto è assegnato l'accesso. Ciò è un esempio della smentita che prende la precedenza.


ESEMPIO: I routers del Cisco applicano la prima entrata del Access Control List che abbina il pacchetto ricevuto. Se nessuno si applica, il pacchetto ricevuto è scartato. Ciò è un esempio del secondo metodo, con una regola di difetto di nega.


ACLs e permessi di difetto

Quando ACLs e le abbreviazioni delle liste di controllo di accesso o dei diritti di accesso di difetto coesistono (come su molti sistemi di UNIX), ci sono due sensi determinare i diritti di accesso. Il primo deve applicare l'entrata adatta di ACL, se una esiste ed applicare al contrario i permessi di difetto o le abbreviazioni delle liste di controllo di accesso. Il secondo senso deve aumentare i permessi di difetto o le abbreviazioni delle liste di controllo di accesso con quelli nell'entrata adatta di ACL.

ESEMPIO: Il AIX ha esteso i permessi entra nella seconda categoria, perché modificano i permessi bassi.


ESEMPIO: Se un pacchetto che entra in un router del Cisco è destinato ad un ospite su una rete dietro il router, ma il router non ha entrata della lista di accesso che permetta che il pacchetto sia spedito, il pacchetto è scartato. Ciò è un esempio del primo metodo, perché il permesso di difetto è nega.

Annullamento dei diritti

L'annullamento, o la prevenzione di un oggetto che accede ad un oggetto, richiede che i diritti dell'oggetto sono cancellati da ACL dell'oggetto.

Impedendo un oggetto l'accesso a dell'oggetto è semplice. L'entrata per l'oggetto è cancellata da ACL dell'oggetto. Se soltanto i diritti specifici devono essere cancellati, sono rimossi dall'entrata dell'oggetto relativo nel ACL.

Se la proprietà non controlla dare dei diritti, l'annullamento è più complesso.

ESEMPIO: Il ritorno al sistema R. Suppose Anna ha dato i diritti dell'aggiornamento di Peter sopra un rapporto T ma ora desidera revocarlo. Il sistema R sostenge che dopo la revoca, la protezione dichiara del sistema dovrebbe essere come era prima che Anna abbia dato a Peter tutti i diritti. Specificamente, se Peter desse a Mary i diritti dell'aggiornamento, quando Anna revoca i diritti dell'aggiornamento del Peter, diritti dell'aggiornamento della Mary è revocato a meno che qualcuno tranne Peter inoltre gli dia i diritti dell'aggiornamento.

Per effettuare questo, il sistema R definisce un rapporto denominato Sysauth. Gli attributi di questo rapporto sono (utente, Tabella, grantor, colto, inserto, cancellazione, goccia, aggiornamento). I valori degli attributi che corrispondono ai diritti sono timestamps che indicano quando la destra è stata data (tranne l'aggiornamento, che ci occuperemo di più successivamente). Per esempio, se Anna desse Peter ha letto i diritti sopra i rapporti di rapporto a tempo 10 e Peter li ha dati a Mary a tempo 20, la tabella sarebbe come segue.

Utente Tabella Grantor Colto

Peter

Rapporti

Anna

10

Mary

Rapporti

Peter

20


Se Anna revoca i diritti colti del Peter e Mary la ottenesse leggesse i diritti da Peter dopo che Anna li dia a Peter, lei ha letto i diritti inoltre sarebbe revocata. Tuttavia, supponga che Michelle inoltre aveva dato i diritti colti Mary sopra i rapporti. Allora cancellare l'ultima fila nella tabella lascia un'entrata per Marynamely, quella da Michelle:

Utente Tabella Grantor Colto

Peter

Rapporti

Anna

10

Mary

Rapporti

Michelle

5


Così Mary può rapporti colti tranquilli.

La destra dell'aggiornamento ha un valore di tutti, di alcuno, o di nessun. Questi valori si riferiscono all'insieme delle file che possono essere cambiate. Se il valore è alcuno, uno Syscolauth denominato secondo rapporto registra le colonne che l'oggetto può aggiornare. Questa tabella inoltre registra i periodi e l'annullamento continua per quanto riguarda le altre colonne.

Esempio: Liste Di Controllo Di Accesso Di Windows NT

Windows NT fornisce le liste di controllo di accesso per quelle lime sui divisorii di NTFS. Windows NT permette che un utente o un gruppo legga, scriva, esegua, cancelli, cambi i permessi di, o prenda la proprietà di una lima o di un indice. Questi diritti sono raggruppati in serie comunemente assegnate denominate diritti generici. I diritti generici per le lime sono come segue.

  • nessun accesso, per cui l'oggetto non può accedere alla lima

  • colto, per cui l'oggetto può leggere o eseguire la lima

  • cambi, per cui l'oggetto può leggere, eseguire, scrivere, o cancellare la lima

  • controllo completo, per cui l'oggetto ha tutti i diritti alla lima

In più, il giusto accesso speciale generico permette l'assegnazione di c'è ne dei sei permessi.

Gli indici di Windows NT inoltre hanno loro propria nozione dei diritti generici.

  • nessun accesso, per cui l'oggetto non può accedere all'indice

  • colto, per cui l'oggetto può leggere o eseguire le lime all'interno dell'indice

  • elenchi, per cui l'oggetto può elencare il contenuto dell'indice e può cambiare ad un subdirectory all'interno di quell'indice

  • aggiunga, per cui l'oggetto può generare le lime o i subdirectories nell'indice

  • aggiunga e legga, che unisce i diritti generici aggiunge e letto

  • cambi, per cui l'oggetto può generare, colto, eseguire, o scrivere le lime all'interno dell'indice e può cancellare i subdirectories

  • controllo completo, per cui l'oggetto ha tutti i diritti sopra le lime e subdirectories nell'indice

Come prima, il diritto di accesso speciale generico permette l'assegnazione di altre combinazioni dei permessi.

Quando gli accessi di utente una lima, Windows NT in primo luogo esamina il ACL della lima. Se l'utente non è assente nel ACL e non è un membro di qualsiasi gruppo elencato nel ACL, l'accesso è negato. Altrimenti, se qualunque entrata di ACL nega l'accesso di utente, Windows NT nega l'accesso (questa è una smentita esplicita, che è calcolata in primo luogo). Se l'accesso non è negato esplicitamente e l'utente è chiamato nel ACL (come un utente o membro di un gruppo), l'utente ha l'unione dell'insieme dei diritti da ogni entrata di ACL in cui l'utente è chiamato.

Come esempio, supponga che Paul, Quentin e Regina sono utenti di un sistema di Windows NT. Paul e Quentin sono negli allievi del gruppo. Quentin e Regina sono nel personale del gruppo. L'indice e:\roba ha relativo Access Control List regolato a (personale, aggiunge), (Quentin, cambiamento), (allievi, nessun accesso). Sotto questa lista, la prima entrata permette a Regina di generare i subdirectories o le lime in e:\roba. La terza entrata respinge tutti i membri degli allievi del gruppo dall'accesso a dell'indice. La seconda entrata permetterebbe che Quentin cancelli i subdirectories, salvo che Quentin è nel gruppo di studenti ed in Windows NT un esplicito nega (come dato nella terza entrata) esclude tutte le concessioni di permesso. Quindi, Quentin non può accedere all'indice.

Ora, lasci Regina generare un plugh del subdirectory in e:\roba. Allora respinge l'accesso del Paul, ma che desidera permettere che Quentin abbia accesso del cambiamento. Fa quanto segue.

  • Generi e:\roba \ plugh; il relativo ACL è (personale, aggiunge), (Quentin, cambiamento), (allievi, nessun accesso).

  • Cancelli l'ultima entrata nel ACL; dalla seconda entrata, questo dà l'accesso del cambiamento di Quentin.

  • Aggiunga l'entrata (Paul, nessun accesso) al ACL.

L'ultimo punto è superfluo, perché Windows NT nega l'accesso per difetto, ma è più sicuro aggiungerlo comunque, affinchè non gli allievi del gruppo sono dati i diritti. Se quello accade, Paul otterrebbe quei diritti a meno che (Paul, nessun accesso) l'entrata fosse presente.

ciò è un articolo aggiunto da Fred Foster


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions