I principii del disegno di calcolo sicuro
I principii del disegno sicuro discussi in questa
sezione esprimono comune-percepiscono le applicazioni di semplicità e
della limitazione in termini di computare.
Principio di meno privilegio
Questo principio limita come i privilegi sono
assegnati.
Il principio di meno privilegio dichiara che un oggetto dovrebbe essere dato
soltanto quei privilegi di che ha bisogno per completare la relativa
operazione.
Se un oggetto non ha bisogno di un diritto di accesso,
l'oggetto non dovrebbe avere quello a destra. Ancora, la
funzione dell'oggetto (in contrasto con la relativa identità)
dovrebbe controllare l'assegnazione dei diritti. Se un'azione
specifica richiede che i diritti di accesso dell'oggetto sono
aumentati, quei diritti supplementari dovrebbero essere ceduti
immediatamente su completamento dell'azione. Ciò è l'analogo
"della necessità di conoscere" la regola: se l'oggetto non ha
bisogno dell'accesso ad un oggetto di effettuare la relativa
operazione, non dovrebbe avere la destra accedere a quell'oggetto.
Più precisamente, se un oggetto deve collegare ad un oggetto,
ma non alterare le informazioni già contenute nell'oggetto, dovrebbe
essere data collega i diritti e non scrivere i diritti.
In pratica, la maggior parte dei sistemi non hanno il
granularity dei privilegi e dei permessi richiesti per applicare
precisamente questo principio. I progettisti dei meccanismi di
sicurezza allora applicano questo principio come possono il più bene.
In tali sistemi, le conseguenze dei problemi di sicurezza sono
spesso più severe delle conseguenze per i sistemi che si aderiscono a
questo principio.
ESEMPIO: Il sistema operativo di UNIX non applica i
comandi di accesso alla radice dell'utente. Che l'utente può
terminare tutto il processo e leggere, scrive, o cancella qualunque
lima. Quindi, gli utenti che generano i sostegni possono anche
cancellare le lime. Il cliente del coordinatore su Windows ha le
stesse alimentazioni. |
Questo principio richiede che i processi dovrebbero essere
limitati come a piccolo un dominio di protezione come possibili.
ESEMPIO: Un mail server accetta la posta dal
Internet e copia i messaggi in un indice di bobina; un
assistente locale completerà la consegna. Il mail server ha
bisogno dei diritti di accedere all'orificio adatto della rete, di
generargli le lime l'indice di bobina e di alterare quelle lime (in
modo da può copiare il messaggio nella lima, riscrivono l'indirizzo
di consegna se avuto bisogno di ed aggiungono le linee "ricevute")
adatte. Dovrebbe cedere la destra accedere alla lima non appena
ha rifinito scrivere la lima nell'indice di bobina, perché non deve
accedere ancora a quella lima. L'assistente non dovrebbe potere
accedere alle lime di alcun utente, o tutte le lime tranne la relativa
propria configurazione archivia. |
Principio dei difetti di sicurezza
Questo principio limita come i privilegi sono
inizializzati quando un oggetto o un oggetto è generato.
Il principio dei difetti di sicurezza dichiara che, a meno che un oggetto sia dato
l'accesso esplicito ad un oggetto, dovrebbe essere negato l'accesso a
quell'oggetto.
Questo principio richiede che l'accesso di difetto ad un
oggetto è nessuno. Ogni volta che l'accesso, i privilegi, o un
certo attributo sicurezza-relativo non è assegnato esplicitamente,
dovrebbe essere negato. Inoltre, se l'oggetto non può
completare la relativa azione o operazione, dovrebbe undo quei
cambiamenti che ha fatto nella sicurezza dichiara del sistema
prima che termini. Questo senso, anche se il programma viene a
mancare, il sistema è ancora sicuro.
ESEMPIO: Se il mail server non può generare una
lima nell'indice di bobina, dovrebbe chiudere il collegamento di rete,
pubblica un messaggio di errore e si arresta. Non dovrebbe
provare ad immagazzinare il messaggio altrove o ad espandere i
relativi privilegi di conservare il messaggio in un'altra posizione,
perché un attacker potrebbe usare che capacità di scrivere sopra
altre lime o di riempire in su altri disc (una smentita dell'attacco
di servizio). Le protezioni sull'indice di bobina della posta in
se dovrebbero concedere generano e scrivono l'accesso soltanto al mail
server e leggono e cancellano l'accesso soltanto all'assistente
locale. Nessun altro utente dovrebbe avere accesso all'indice.
In pratica, la maggior parte dei sistemi permetteranno un
accesso del coordinatore all'indice di bobina della posta. Dal
principio di meno privilegio, quel coordinatore dovrebbe potere
accedere soltanto agli oggetti ed agli oggetti coinvolgere fare la
coda e nella consegna della posta. Come abbiamo visto, questo
vincolo minimizza le minacce se cliente di quel coordinatore si
compromette. Il sistema della posta può essere danneggiato o
distrutto, ma niente altrimenti può essere. |
Principio di economia del meccanismo
Questo principio facilita il disegno e
l'esecuzione dei meccanismi di sicurezza.
Il principio di economia del meccanismo dichiara che i meccanismi di sicurezza dovrebbero
essere semplici come possibile.
Se un disegno e un'esecuzione sono semplici, poche
possibilità esistono per gli errori. Il processo di controllo e
difficile è meno complesso, perché pochi componenti e casi devono
essere esaminati. I meccanismi complessi fanno spesso i
presupposti circa il sistema e l'ambiente in cui funzionano. Se
questi presupposti sono errati, i problemi di sicurezza possono
risultare.
ESEMPIO: Il protocollo dell'identificazione
trasmette il nome dell'utente connesso con un processo che ha un
collegamento di TCP ad un elaboratore remoto. Un meccanismo
sull'ospite A che permette l'accesso basato sui risultati di un
risultato di protocollo dell'identificazione fa il presupposto che
l'ospite iniziare è in maniera fidata. Se l'ospite B decide
attacare l'ospite A, può collegare ed allora trasmettere tutta
l'identità che sceglie in risposta alla richiesta
dell'identificazione. Ciò è un esempio di un meccanismo che fa
un presupposto errato circa l'ambiente (specificamente, quell'ospite B
può fidarsi di). |
Le interfacce ad altri moduli sono particolarmente
sospette, perché i moduli fanno spesso i presupposti impliciti circa
i parametri di uscita o dell'input o il sistema corrente
dichiarare; se c'è ne di questi presupposti sono torto,
le azioni del modulo possono produrre inatteso ed errato, risultati.
L'interazione con le entità esterne, quali altri programmi,
sistemi, o esseri umani, amplifica questo problema.
ESEMPIO: Il protocollo della barretta trasmette le
informazioni su un utente o su un sistema. Molte esecuzioni del
cliente suppongono che la risposta dell'assistente è ben formata.
Tuttavia, se un attacker dovesse generare un assistente che ha
generato un flusso infinito dei caratteri e un cliente della barretta
doveva collegare ad esso, il cliente stamperebbe tutti i caratteri.
Di conseguenza, le lime di ceppo ed i disc hanno potuto essere
riempiti in su, con conseguente smentita dell'attacco di servizio
all'ospite d'interrogazione. Ciò è un esempio dei presupposti
errati circa l'input al cliente. |
Principio di mediazione completa
Questo principio limita nascondere delle
informazioni, che conducono spesso alle esecuzioni più semplici dei
meccanismi.
Il principio della mediazione completa richiede che tutti gli accessi agli oggetti sono
controllati per accertarsi che siano permessi.
Ogni volta che un oggetto tenta di leggere un oggetto, il
sistema operativo dovrebbe mediare l'azione. In primo luogo,
determina se all'oggetto è permesso leggere l'oggetto. In caso
affermativo, fornisce le risorse per colte accade. Se l'oggetto
prova a leggere ancora l'oggetto, il sistema dovrebbe controllare che
all'oggetto ancora sia permesso leggere l'oggetto. La maggior
parte dei sistemi non farebbero il secondo controllo.
Nasconderebbero i risultati del controllo preliminare e
baserebbero il secondo accesso sui risultati nascosti.
ESEMPIO: Quando un processo di UNIX prova a leggere
una lima, il sistema operativo determina se il processo è permesso
leggere la lima. In caso affermativo, il processo riceve un
descrittore di lima che mette l'accesso in codice permesso. Ogni
volta che il processo desidera leggere la lima, presenta il
descrittore di lima al nocciolo. Il nocciolo allora permette
l'accesso.
Se il proprietario della lima respinge il permesso
trattato leggere la lima dopo che il descrittore di lima si pubblichi,
il nocciolo ancora permette l'accesso. Questo schema viola il
principio della mediazione completa, perché il secondo accesso non è
controllato. Il valore nascosto è usato, con conseguente
smentita di accesso che è inefficace. |
ESEMPIO: Il servizio di Domain Name (DNS) nasconde
le informazioni che tracciano i nomi ospite negli indirizzi del IP.
Se un attacker può "avvelenare" il nascondiglio impiantando
registra l'associazione del IP address bogus con un nome, un ospite
dirigerà i collegamenti ad un altro ospite in modo errato. |
Principio del disegno aperto
Questo principio suggerisce che la complessità
non aggiunge la sicurezza.
Il principio del disegno aperto dichiara che la sicurezza di un meccanismo non
dovrebbe dipendere dalla segretezza del relativo disegno o esecuzione.
I progettisti ed i implementers di un programma non devono
dipendere dalla segretezza dei particolari del loro disegno ed
esecuzione per accertare la sicurezza. Altri possono ferret
verso l'esterno tali particolari con i mezzi tecnici, quali smontaggio
ed analisi, o con i mezzi non tecnici, come ricerca attraverso le
prese a parete dell'immondizia degli elenchi di codice sorgente
(chiamati "dumpster-dumpster-diving"). Se la resistenza della
sicurezza del programma dipende dall'ignoranza dell'utente, un utente
informato può sconfiggere quel meccanismo di sicurezza. Il
termine "sicurezza con obscurity" blocca esattamente questo concetto.
Ciò è particolarmente vero per software ed i sistemi
crittografici. Poiché il cryptography è un oggetto altamente
matematico, le aziende che introducono il cryptography sul mercato
crittografico di uso o del software per proteggere i dati dell'utente
frequentemente mantengono le loro procedure segrete.
L'esperienza ha indicato che tale segretezza aggiunge poco
piuttosto alla sicurezza del sistema. Più difettoso, dà un
aura di resistenza che è tutta che difetta troppo spesso
nell'esecuzione reale del sistema.
Mantenendo le chiavi crittografiche e le parole d'accesso
segrete non viola questo principio, perché una chiave non è una
procedura. Tuttavia, mantenendo le procedure cifranti e
decifranti segrete la violerebbe.
Le emissioni di software riservato e dei segreti
commerciali complicano l'applicazione di questo principio. In
alcuni casi, le aziende non possono desiderare i loro disegni resi a
pubblico, affinchè non i loro competitori li usano. Il
principio allora richiede che il disegno e l'esecuzione sono a
disposizione di la gente esclusa dalla rilevazione esso fuori
dell'azienda.
ESEMPIO: Il sistema soddisfatto di rimescolanza
(CSS) è una procedura crittografica che protegge i disc di
film di DVD dalla copiatura non autorizzata. Il disc di
DVD ha una chiave di autenticazione, una chiave di disc e una chiave
di titolo. La chiave di titolo è cifrata con la chiave di disc.
Un blocco sul DVD contiene parecchie copie della chiave di disc,
ciascuno cifrate da una chiave differente del giocatore e di un totale
di controllo della chiave di disc. Quando un DVD è inserito in
un giocatore di DVD, la procedura legge la chiave di autenticazione.
Allora decifra le chiavi di disc usando la chiave unica del
giocatore di DVD. Quando trova una chiave decifrata con il hash
corretto, esso usi che chiudono a chiave al deciframento la chiave di
titolo ed esso usano la chiave di titolo per decifrare il film.
L'autenticazione e le chiavi di disc non sono situate nella lima
che contiene il film, in modo da se uno copia la lima, un
alambicco ha bisogno del disc di DVD nel giocatore di DVD di potere
giocare il film.
In 1999, un gruppo in Norvegia ha acquistato la a
(software) DVD che gioca il programma che ha avuto unenciphered la
chiave. Inoltre hanno derivato una procedura completamente
compatibile con la procedura di CSS dal software. Ciò ha
permesso loro di decifrare tutta la lima di film di DVD.
Il software che potrebbe effettuare velocemente queste funzioni
è diventato disponibile durante il Internet, molto al disagio
dell'associazione di controllo del copyright di DVD, che ha citato
subito per impedire il codice essere reso a pubblico. Come se
per dare risalto ai problemi di fornire la sicurezza celando le
procedure, gli avvocati del querelante archivi una dichiarazione che
contiene il codice sorgente di un'esecuzione della procedura di CSS.
Quando hanno realizzato questo, hanno chiesto che la
dichiarazione è sigillata dalla vista pubblica. Per allora, la
dichiarazione era stata inviata su parecchi luoghi di Internet,
compreso uno che ha avuto più di 21.000 trasferimenti dal sistema
centrale verso i satelliti della dichiarazione prima che la corte la
sigillasse. |
Principio della separazione del privilegio
Questo principio è restrittivo perché limita
l'accesso alle entità del sistema.
Il principio della separazione del privilegio dichiara che un sistema non dovrebbe
assegnare il permesso basato su un singolo stato.
Questo principio è equivalente alla separazione del
principio di dovere. L'azienda controlla per vedere se c'è più
di $75.000 devono essere firmati da due ufficiali dell'azienda.
Se uno non firma, il controllo è non valido. Le due
circostanze sono le firme di entrambi gli ufficiali.
Similmente, i sistemi ed i programmi che assegnano
l'accesso alle risorse dovrebbero fare così soltanto quando più di
una circostanza è riempita. Ciò fornisce un controllo a grana
fine sopra la risorsa così come assicurazione supplementare che
l'accesso è autorizzato.
ESEMPIO: Sulle versioni Berkeley-basate del sistema
operativo di UNIX, agli utenti non sono permessi cambiare dai loro
clienti al cliente della radice a meno che due circostanze siano
riempite. La prima circostanza è che l'utente conosce la parola
d'accesso della radice. La seconda circostanza è che l'utente
è nel gruppo della rotella (il gruppo con GID 0). Riempire la
una o la altra circostanza non è sufficiente per acquistare l'accesso
della radice; riempire entrambe le circostanze è richiesto. |
Principio di meno meccanismo comune
Questo principio è restrittivo perché limita la
compartecipazione.
Il principio di meno meccanismo comune dichiara che i meccanismi usati per accedere alle
risorse non dovrebbero essere ripartiti.
La compartecipazione delle risorse fornisce una
scanalatura lungo cui le informazioni possono essere trasmesse ed in
modo da tale compartecipazione dovrebbe essere minimizzata. In
pratica, se il sistema operativo fornisce il supporto per le macchine
virtuali, il sistema operativo farà rispettare automaticamente questo
privilegio ad un certo grado. Altrimenti, fornirà un certo
supporto (quale uno spazio di memoria virtuale) ma non completerà il
supporto (perché il sistema di lima comparirà come compartecipe fra
parecchi processi).
ESEMPIO: Un Web site fornisce i servizi elettronici
di commercio per un'azienda importante. I attackers desiderano
privare l'azienda del reddito che ottiene da quel Web site.
Sommergono il luogo dai messaggi e legano in su i servizi
elettronici di commercio. I clienti legittimi non possono
accedere al Web site e, di conseguenza, prendere il loro commercio
altrove.
Qui, la compartecipazione del Internet con i luoghi dei
attackers ha indotto l'attacco a riuscire. Le contromisure
adatte dovrebbero limitare l'accesso dei attackers al segmento del
Internet collegato al Web site. Le tecniche per fare questo
includono gli assistenti di procura come strozzare del mediatore o di
traffico di Purdue SYN. I collegamenti sospetti degli obiettivi
precedenti; il posteriore riduce indiscriminatamente il carico
sul segmento relativo della rete. |
Principio di accettabilità psicologica
Questo principio riconosce l'elemento umano nella
sicurezza del calcolatore.
Il principio di accettabilità psicologica dichiara che i meccanismi di sicurezza non
dovrebbero rendere la risorsa più difficile accedere a che se i
meccanismi di sicurezza non fossero assenti.
La configurazione ed eseguire del programma dovrebbero
essere facili ed intuitive come possibile e tutta l'uscita dovrebbe
essere chiara, diretta ed utile. Se il software
sicurezza-relativo ugualmente è complicato per configurare, i
coordinatori di sistema possono installare involontario il software in
un modo di nonsecure. Similmente, i programmi applicativi
sicurezza-relativi devono essere facili da usare e devono produrre i
messaggi comprensibili. Se una parola d'accesso è rifiutata, il
programma cambiante di parola d'accesso dovrebbe dichiarare
perchè è stato rifiutato piuttosto che dando un messaggio di errore
cryptic. Se una lima di configurazione ha un parametro errato,
il messaggio di errore dovrebbe descrivere il parametro adeguato.
ESEMPIO: Il programma dello ssh permette che un
utente installi un meccanismo chiave pubblico per cifrare le
comunicazioni fra i sistemi. I meccanismi di configurazione e
dell'installazione per la versione di UNIX permettono che una
organizzi che la chiave pubblica sia immagazzinata localmente senza
alcuna protezione di parola d'accesso. In questo caso, uno non
deve fornire una parola d'accesso per collegare al sistema a distanza,
ma tranquillo otterrà il collegamento cifrato. Questo
meccanismo soddisfa il principio di accettabilità psicologica. |
D'altra parte, la sicurezza richiede che i messaggi non
comunicano le informazioni inutili.
ESEMPIO: Quando un utente fornisce la parola
d'accesso errata durante l'inizio attività, il sistema dovrebbe
rifiutare il tentativo con un messaggio che dichiara che
l'inizio attività è venuto a mancare. Se dovesse dire che la
parola d'accesso era errata, l'utente saprebbe che il nome di cliente
era legittimo. Se "l'utente" fosse realmente un attacker non
autorizzato, allora conoscerebbe il nome di un rappresent che potrebbe
provare per indovinare una parola d'accesso. |
In pratica, il principio di accettabilità psicologica è
interpretato per significare che il meccanismo di sicurezza può
aggiungere una certa difficoltà supplementare, ma che la difficoltà
deve essere sia minima che ragionevole.
ESEMPIO: Un sistema dell'elaboratore centrale
permette che gli utenti dispongano le parole d'accesso sulle lime.
L'accesso a delle lime richiede che il rifornimento di programma
la parola d'accesso. Anche se questo meccanismo viola il
principio come dichiarato, è considerare sufficiente minimo
come accettabile. Su un sistema interattivo, in cui il modello
degli accessi della lima è più frequente e più transitorio, questo
requisito sarebbe una difficoltà troppo grande da essere accettabile. |
ciò è un articolo aggiunto da Bill Kuriko