# Modello Bell-LaPadula

Il modello di riservatezza di Bell-La Padula (modello BLP) è stato definito tra il 1973 e il 1976 da David Elliott Bell e Len LaPadula. Inizialmente è stato sviluppato per soddisfare le esigenze del Dipartimento della Difesa degli Stati Uniti d'America relative all'accesso alle informazioni mentre, successivamente, è stato principalmente rivolto alla riservatezza delle stesse. Rappresenta, comunque, uno dei più importanti modelli di sicurezza applicabili ai sistemi operativi e alle basi di dati.

## Caratteristiche

Il modello Bell-LaPadula si concentra sulla confidenzialità dei dati e sull'accesso a informazioni classificate, in contrasto con il modello d'integrità BIBA che descrive regole per la protezione dell'integrità dei dati. In questo modello formale, le entità di un sistema informativo sono divise in soggetti e oggetti. I soggetti sono le entità attive, mentre gli oggetti sono le entità passive (da proteggere).
* Ai soggetti sono assegnati i clearance levels;
* Agli oggetti sono assegnati i sensitivity levels.
I clearance levels come i sentitivity levels sono chiamati access classes. Una classe di accesso (access class) consiste di due componenti:
* security level: è un elemento basato sull'ordinamento, è costituito da una classifica (classification) gerarchica ( TopSecret > Secret > Confidential > Unclassified );
* category set: è un insieme di categorie dipendenti dall'applicazione in cui i dati sono usati; non è gerarchico, indica il settore di appartenenza. (ES: posta elettronica, prodotti commerciali, centrali atomiche ecc.).
Ogni soggetto può inoltre accedere ai vari oggetti secondo modi di accesso (access modes) detti:
* Read: per la sola lettura;
* Append: per l'aggiunta (senza lettura);
* Execute: l'esecuzione (per i programmi);
* Write: la lettura-scrittura.

## Stato Sicuro

Il concetto di "stato sicuro" è definito ed è verificato dal fatto che ogni transizione preserva la sua sicurezza spostandosi da uno stato sicuro ad un altro stato sicuro.
Il passaggio da uno stato a un altro stato è definito da funzioni di transizione. Uno stato di sistema è definito sicuro se tutti i modi di accesso tramite i quali i soggetti accedono agli oggetti sono conformi alla politica di sicurezza.
Per determinare se un modo di accesso specifico è permesso, la clearance è paragonata alla classifica dell'oggetto (più precisamente: la combinazione di classifica e l'insieme di compartimenti compongono il livello di sicurezza) per determinare se il soggetto è autorizzato a quello specifico modo di accesso.
Lo schema di accesso/classifica è espresso in termini di un reticolo. Ogni operazione richiesta è controllata da un reference monitor e la sua esecuzione è concessa se, e solo se, lo stato risultante in cui si verrebbe a trovare il sistema sia sicuro, ovvero soddisfi tutte le proprietà del modello.
Il modello definisce due regole obbligatorie del controllo accessi (MAC) e una regola discrezionale di controllo accessi (DAC) con tre proprietà sulla sicurezza:
* Il Simple Security Property (SS-property): dichiara che è possibile che un soggetto possa accedere ad un oggetto solo se il suo livello di sicurezza è maggiore od uguale a quello dell'oggetto; (quindi: no read up);
* Il Star-Property (*-property o S-property): dichiara che un soggetto può accedere all'oggetto solo per operazioni di append se ha un livello inferiore (rispetto all'oggetto), per operazioni di write se ha un livello uguale e per operazioni di read se ha un attuale livello di sicurezza superiore a quello dell'oggetto; (quindi no write-down);
* Il Discretionary Security Property (DS-property): utilizza una matrice di accesso per specificare il controllo accessi discrezionale; cioè ogni soggetto può esercitare solo gli accessi per cui ha la necessaria autorizzazione.
Queste regole insieme servono ad evitare che le informazioni possano propagarsi senza controllo da parte del proprietario, e sono lo strumento per impedire che il sistema possa essere espugnato da un trojan horse (virus nascosto in un programma che penetra tramite il programma in un computer).
Il trasferimento di informazioni da un paragrafo high-sensitivity a un documento lower-sensitivity può avvenire nel modello Bell-LaPadula per mezzo del concetto di soggetti di fiducia. Subjects di fiducia non sono limitati dalla proprietà.
Un soggetto fidato deve essere mostrato e controllato affinché possa essere dichiarato affidabile in merito alla politica di sicurezza.
Con Bell-LaPadula, gli utenti possono creare contenuto solo sopra il loro personale livello di sicurezza (i ricercatori Secret possono creare file Secret o Top-Secret ma non possono creare file Public): nessun write-down.
Al contrario, gli utenti possono esaminare contenuto solo sotto il loro personale livello di sicurezza (i ricercatori Secret possono esaminare file Public o Secret, ma non possono esaminare file Top-Secret): nessun read-up.

## Transizioni di stato

Attraverso specifiche operazioni lo stato del sistema può subire delle transizioni. Le transizioni di stato consentite all'interno del modello di Bell-LaPadula sono:
* Create object: attiva un oggetto inattivo rendendolo accessibile;
* Delete object: disattiva un oggetto attivo. È l'operazione inversa alla precedente;
* Get access: quando un soggetto guadagna l'accesso ad un oggetto;
* Release access: quando il soggetto termina l'accesso. È l'operazione inversa alla precedente;
* Give access: permette che i diritti di accesso ad un oggetto possano essere propagati da un soggetto ad un altro. L'operazione viene eseguita solo se rispetta le politiche di sicurezza;
* Rescind access: revoca un accesso precedentemente garantito con l'operazione precedente. Affinché questa operazione possa essere eseguita, il soggetto richiedente deve avere il permesso di scrittura sul genitore dell'oggetto interessato;
* Change subject security level: cambia l'attuale livello di sicurezza. Il nuovo livello deve essere inferiore della clearance attribuita inizialmente al soggetto;
* Change object security level: ha l'effetto di attribuire un nuovo valore alla funzione 'f' dell'oggetto inattivo; tale livello può solo essere aumentato, e non deve mai superare la clearance del soggetto richiedente il cambiamento.

## Di che cosa non parla il modello BLP

Il modello Bell-LaPadula ha esplicitamente definito il suo ambito. Non ha trattato quanto segue radicalmente:
* Canali coperti;
* Reti di sistemi. Il lavoro successivo di creazione di modelli ha indirizzato questo argomento;
* Politiche fuori dalla sicurezza multilivello.

## Curiosità

L'asterisco nella notazione *-property fu introdotto come segnaposto dagli autori nelle prime bozze del loro paper, in quanto a nessuno veniva in mente un nome appropriato per questa proprietà del modello. L'idea era di scegliere un nome successivamente e sostituire tutte le occorrenze del simbolo * nel testo di bozza; tuttavia, non si trovò mai un nome adeguato e gli autori pubblicarono il proprio articolo lasciando l'asterisco.