Scanalature Segrete
L'uso delle scanalature segrete ha ripartito le
risorse come percorsi della comunicazione. Ciò richiede la
compartecipazione dello spazio o la compartecipazione del tempo.
Una scanalatura segreta di immagazzinaggio usa un attributo della risorsa comune. Una
scanalatura segreta di sincronizzazione usa un rapporto temporale o
d'ordinamento fra gli accessi ad una risorsa comune.
Una scanalatura segreta di sincronizzazione è definita
solitamente in termini di temporizzatore in tempo reale o
temporizzatore, ma i rapporti temporali a volte non usano nessuno.
Un ordinamento degli eventi implica un rapporto tempo-basato che
coinvolge nè un temporizzatore in tempo reale nè un temporizzatore.
Una seconda proprietà si distingue fra una scanalatura
segreta a che soltanto il mittente e la ricevente hanno accesso e una
scanalatura segreta che altre hanno accesso a pure.
Una scanalatura segreta senza rumore è
una scanalatura segreta che usa una risorsa disponibile al mittente ed
alla ricevente soltanto. Una scanalatura segreta rumorosa è una
scanalatura segreta che usa una risorsa disponibile agli oggetti
tranne il mittente e la ricevente, così come al mittente e la
ricevente.
La differenza fra questi due tipi di scanalature si trova
nella necessità di filtrare fuori le informazioni estranee.
Tutte le informazioni che la ricevente ottiene da una
scanalatura senza rumore vengono dal mittente. Tuttavia, in una
scanalatura rumorosa, le informazioni del mittente sono mescolate con
le informazioni insignificanti, o il rumore, da altre entità usando
la risorsa. Una scanalatura segreta rumorosa richiede un
protocollo minimizzare questa interferenza.
Le proprietà chiave delle scanalature segrete sono
esistenza e larghezza di banda. L'esistenza ci dice che ci sia
una scanalatura lungo cui le informazioni possono essere trasmesse.
La larghezza di banda ci dice quanto le informazioni possono
essere trasmesse velocemente. L'analisi della scanalatura
segreta stabilisce entrambe le proprietà. Allora le scanalature
possono essere eliminate o le loro larghezze di banda possono essere
ridotte.
Rilevazione delle scanalature segrete
Le scanalature segrete richiedono la
compartecipazione. Il modo in cui la risorsa è ripartita
controlla che gli oggetti possono trasmettere e ricevere le
informazioni usando quella risorsa comune. I metodi di
rilevazione cominciano con questa osservazione.
Porras e Kemmerer hanno inventato un metodo a
rappresentare le violazioni di sicurezza che balzano dall'applicazione
degli alberi degli errori. Modellano il flusso delle
informazioni attraverso le risorse comuni con un albero. I
percorsi di flusso sono identificati in questa struttura.
L'analista determina se ogni flusso sia legittimo o segreto.
Un albero segreto di flusso è una rappresentazione
tree-structured della sequenza dei funzionamenti che spostano le
informazioni da un processo verso un altro. Consiste di cinque
tipi di nodi.
-
I simboli di obiettivo specificano dichiara che
devono esistere affinchè le informazioni fluiscano. Ci sono
parecchi tali dichiarano:
-
Un obiettivo di modifica è raggiunto quando un attributo
è modificato.
-
Un obiettivo di riconoscimento è raggiunto quando una
modifica di un attributo è rilevata.
-
Un obiettivo diretto di riconoscimento è raggiunto quando
un oggetto può rilevare la modifica di un attributo riferendolo
direttamente o denominando una funzione che ritorni esso.
-
Un obiettivo arguito di riconoscimento è raggiunto quando
un oggetto può rilevare la modifica di un attributo senza riferirlo
direttamente e senza denominare una funzione che riferisce
direttamente l'attributo. Per esempio, l'oggetto può denominare
una funzione che effettua uno di due calcoli secondo il valore
dell'attributo in questione.
-
Argu-via l'obiettivo è raggiunto quando le informazioni
sono comunicate da un attributo ad altri attributi usando un esercizio
primitivo specificato (quale una chiamata del sistema).
-
Un obiettivo di recognize-new-dichiarare è raggiunto quando
un attributo che è stato modificato quando le informazioni sono state
comunicate usando è specificato dall'argu-via l'obiettivo. Il
valore non deve essere determinato, ma il fatto che l'attributo è
stato modificato deve essere determinato.
-
Un simbolo di funzionamento è un simbolo che rappresenta
un funzionamento primitivo. I simboli di funzionamento possono
variare fra i sistemi se hanno funzionamenti primitivi differenti.
-
Un simbolo di guasto indica che le informazioni non
possono essere trasmesse lungo il percorso su cui si trovano.
Significa che l'obiettivo a cui è fissato non può essere
venuto a contatto di.
-
E simbolo è un obiettivo che è raggiunto quando entrambe
la seguente stretta per tutti i bambini:
-
Se il bambino è un obiettivo, quindi l'obiettivo è
raggiunto.
-
Il bambino è un funzionamento.
-
O simbolo è un obiettivo che è raggiunto quando una di
seguenti strette per qualsiasi bambini:
-
Se il bambino è un obiettivo, quindi l'obiettivo è
raggiunto.
-
Il bambino è un funzionamento.
La costruzione dell'albero è un processo in tre tappe.
Per fare i punti calcestruzzo, presentiamo un insieme semplice
dei funzionamenti ed allora chiediamo se possono generare una
scanalatura segreta.
ESEMPIO: Consideri un sistema di lima in cui ogni
lima ha tre attributi. Gli attributi booleani hanno bloccato ed
isopen sono allineare quando la lima è locked o aperta,
rispettivamente ed è falsa al contrario. Il terzo attributo,
inuse, è un insieme che contiene l'identificazione di processo di
ogni processo che ha la lima aperta. Il read_access(p di
funzione, f) è allineare se il processo p ha letto i diritti sopra la
lima f ed il empty(s) è allineare se l'insieme s non ha membri.
I ritorni casuali uno di funzione delle relative discussioni
scelte a caso. I seguenti funzionamenti sono definiti.
(* blocchi la lima se non è locked e non aperta *) (*
indichi al contrario che è bloccata rinviando falso *) procedura
Lockfile(f: lima): booleano; cominci se
non f.locked ed empty(f.inuse) allora f.locked: =
allineare; estremità; (* sblocchi la lima *)
procedura Unlockfile(f: lima); cominci se
f.locked allora f.locked: = falso;
estremità; (* dica se la lima è locked *) funzione
Filelocked(f: lima): booleano; cominci Filelocked: = f.locked; estremità; (*
apra la lima se non è locked e *) (* il processo ha la destra leggere
la lima *) procedura Openfile(f: lima); cominci se non f.locked ed il read_access(process_id,
f ) allora (* aggiunga l'identificazione di
processo al inuse regolato *) f.inuse = f.inuse +
process_id; estremità; (* se il processo può leggere la
lima, l'ad esempio se *) (* la lima è aperta, altrimenti restituisce
un valore a caso *) funzione Fileopened(f: lima):
booleano; cominci se non il
read_access(process_id, la f ) allora Fileopened: = random(true, falsi); Fileopened altro: = non
isempty(f.inuse); estremità
Supponendo che i processi non sono permessi
comunicare tra loro, il lettore è invitato a provare a trovare una
scanalatura segreta di immagazzinaggio.
Il primo punto nella costruzione dell'albero segreto di
flusso è determinare che cosa attribuisce (se c'è ne) il riferimento
primitivo di funzionamenti, modifica e rinvia.
ESEMPIO: Le funzioni nell'esempio preceding
interessano gli attributi della lima nei sensi differenti, come segue.
| |
Lockfile |
Unlockfile |
Filelocked |
Openfile |
Fileopened |
| riferimento |
locked, inuse |
locked |
locked |
locked, inuse |
inuse |
| modifichi |
locked |
Ø |
Ø |
inuse |
Ø |
| ritorno |
Ø |
Ø |
locked |
Ø |
inuse |
Il Ø di simbolo significa che nessun attributo è
influenzato nel modo specificato.
Il secondo punto comincia con l'obiettivo di
posizionamento della scanalatura segreta di immagazzinaggio che usa un
certo attributo. L'analista costruisce l'albero segreto di
flusso. Il tipo di obiettivo controlla la costruzione, come
segue.
-
L'obiettivo superiore richiede che l'attributo è
modificato e che la modifica è riconosciuta. Quindi, ha un
bambino (e simbolo), che a sua volta ha due bambini (un simbolo di
obiettivo di modifica e un simbolo di obiettivo di riconoscimento).
-
Un obiettivo di modifica richiede un certo funzionamento
primitivo modificare l'attributo. Quindi, ha uno o bambino, che
hanno un simbolo di funzionamento del bambino per il funzionamento per
tutti i funzionamenti che modificano l'attributo.
-
Un obiettivo di riconoscimento richiede che un oggetto
direttamente riconosce o arguisce un cambiamento in un attributo.
Ha o simbolo come relativo bambino. O simbolo ha due
bambini, uno un simbolo diretto di obiettivo di riconoscimento e
l'altro un simbolo arguito di obiettivo di riconoscimento.
-
Un obiettivo diretto di riconoscimento richiede che un
accesso di funzionamento l'attributo. Come l'obiettivo di
modifica, ha uno o bambino e quel bambino a sua volta ha un simbolo di
funzionamento del bambino per ogni funzionamento che restituisce
l'attributo. Se nessun funzionamento restituisce l'attributo, un
simbolo di guasto è fissato.
-
Un obiettivo arguito di riconoscimento richiede che la
modifica è arguita in base ad uno o più altri attributi.
Quindi, ha un bambino, o simbolo, che hanno un bambino argu-via
il simbolo per ogni funzionamento che riferisce un attributo e che
modifica un certo attributo (possibilmente stesso quello che si è
riferito).
-
Argu-via l'obiettivo richiede che il valore dell'attributo
è arguito via un certo funzionamento e un riconoscimento del nuovo
dichiara dell'attributo derivando da quel funzionamento.
Quindi, ha un bambino (e simbolo), che ha due bambini (un
simbolo di funzionamento che rappresenta il funzionamento primitivo ha
usato disegnare l'illazione e un simbolo di obiettivo di
recognize-new-dichiarare).
-
Un obiettivo di recognize-new-dichiarare richiede che il
valore dell'attributo è arguito via un certo funzionamento e un
riconoscimento del nuovo dichiara dell'attributo derivando da
quel funzionamento. Il posteriore richiede un obiettivo di
riconoscimento per l'attributo. Così, il nodo del bambino del
simbolo di obiettivo di recognize-new-dichiarare è o simbolo e per ogni
attributo permettere l'illazione della modifica dell'attributo in
questione, o il simbolo ha un bambino di simbolo di obiettivo di
riconoscimento.
La costruzione dell'albero si conclude quando tutti i
percorsi attraverso l'albero terminano in simbolo di funzionamento o
in simbolo di guasto. Poiché la costruzione è ricorsiva,
l'analista può incontrare un ciclo nella costruzione dell'albero.
Se questo accade, un parametro denominato ripetizione definisce
il numero di volte che il percorso può essere attraversato.
Ciò dispone un limite superiore sul formato dell'albero.
Il modello comune della tabella delle risorse e gli alberi
segreti di flusso balzano dall'idea di esaminare le risorse comuni per
modifica ed i funzionamenti di riferimento ed entrambi possono essere
usati ad un punto qualunque all'interno del ciclo di vita di sviluppo
del software. Un vantaggio degli alberi segreti di flusso sopra
il modello di SRM è che il precedente identifica le sequenze
esplicite dei funzionamenti che inducono le informazioni a scorrere da
un processo ad un altro. Il posteriore identifica le scanalature
piuttosto che le sequenze dei funzionamenti. Nei confronti che
coinvolgono i funzionamenti di accesso del sistema di lima e
l'obiettivo sicuro del Ada, il metodo segreto dell'albero di flusso ha
identificato le sequenze dei funzionamenti che corrispondono alle
scanalature segrete di immagazzinaggio trovate con il metodo di SRM ed
il metodo di noninterference, come pure uno non trovato dagli altri
due.
Mitigation delle scanalature segrete
Le scanalature segrete trasportano le informazioni
variando l'uso delle risorse comuni. Un senso evidente eliminare
tutte le scanalature segrete deve richiedere i processi
dichiarare che risorse hanno bisogno prima che esecuzione e
forniscono queste risorse in maniera tale che soltanto il processo
possa accedere loro. Ciò include il tempo di esecuzione e
quando il tempo di esecuzione dichiarato è raggiunto, il
processo è terminato e le risorse sono liberate. Le risorse
rimangono assegnate per il tempo di esecuzione completo anche se il
processo termina più presto. Altrimenti, un secondo processo
potrebbe arguire le informazioni dalla sincronizzazione del rilascio
delle risorse (accesso compreso al CPU). Questa strategia
effettua efficacemente l'idea del Lampson di isolamento totale, ma è
solitamente inattuabile in pratica.
Un metodo alternativo deve oscurare la quantità di
risorse che un processo usa. Un processo di ricezione non può
determinare che quantità di uso delle risorse è attribuibile al
mittente e che importo è attribuibile alla confusione. Ciò
può essere fatta in due sensi. In primo luogo, le risorse
dedicate ad ogni processo possono essere rese ad uniforme.
Ciò è una variante di isolamento, perché ogni processo
ottiene la stessa quantità di risorse e non può dire a se un secondo
processo stia accedendo alla risorsa misurando la sincronizzazione o
la quantità di risorse disponibili. Essenzialmente, il sistema
elimina le irregolarità espressive nella ripartizione e nell'uso
delle risorse. In secondo luogo, un sistema può iniettare la
casualità nella ripartizione e nell'uso delle risorse.
L'obiettivo è di rendere alla scanalatura segreta rumoroso e di
fare dominare il rumore la scanalatura. Ciò non chiude la
scanalatura segreta (perché ancora esiste) ma la rende inutile.
Entrambe queste tecniche interessano l'efficienza.
Assegnando le ripartizioni fisse e costringendo uso risorse
residue. La riparazione delle fette di tempo sul sistema di KVM
significa che il CPU sarà inutilizzato (o eseguirà un processo al
minimo) quando un'altra macchina virtuale potrebbe fare funzionare un
processo non-al minimo. L'aumento della probabilità delle
terminazioni nel sistema sicuro multilivelli della base di dati
abbandonerà alcune transazioni che commetterebbero normalmente,
aumentanti il numero previsto di prove all'aggiornamento la base di
dati. Se la chiusura della scanalatura segreta o limitare della
larghezza di banda compensa adeguatamente la perdita nell'efficienza
è una decisione politica.
Un dispositivo conosciuto come una pompa è la base di
parecchie tecniche per la sconfitta delle scanalature segrete.
ciò è un articolo aggiunto da Fred Foster
Diniego: Il nostro Web site non
è responsabile delle informazioni contenute da questo articolo.
Questo articolo in nessun modo riflette le viste, le opinioni, i
pensieri o la credenza del personale dell'indice degli articoli.
Avviso di traduzione: L'articolo
"scanalature segrete" è stato tradotto usando un servizio di
traduzione automatizzato. Chiediamo scusa francamente per tutti
gli errori di traduzione che hanno accaduto. Grazie per capire.