Qual è il significato e la differenza tra soggetto, utente e principale?


Nel contesto dei framework di sicurezza, alcuni termini si verificano comunemente oggetto, utente e principal , di cui non sono stato in grado di trovare una definizione chiara e la differenza tra loro.

Quindi, cosa significano esattamente questi termini e perché sono necessarie queste distinzioni di subjecte principal?

Author: nbro, 2011-02-14

6 answers

Questi sono gerarchici nel modo in cui genere, specie e individuo sono gerarchici.

  • Subject - In un contesto di sicurezza, un subject è qualsiasi entità che richiede l'accesso a un object . Questi sono termini generici usati per indicare la cosa che richiede l'accesso e la cosa contro cui viene fatta la richiesta. Quando si accede a un'applicazione si è il soggetto e l'applicazione è l'oggetto. Quando qualcuno bussa alla tua porta il visitatore è il soggetto richiesta di accesso e la vostra casa è l'accesso oggetto è richiesto di.
  • Principal - Un sottoinsieme di subject rappresentato da un account, ruolo o altro identificatore univoco. Quando arriviamo al livello di dettagli di implementazione, i principali sono le chiavi univoche che usiamo negli elenchi di controllo degli accessi. Possono rappresentare utenti umani, automazione, applicazioni, connessioni, ecc.
  • User - Un sottoinsieme di principal di solito si riferisce a un operatore umano. La distinzione è sfocata nel tempo perché le parole "utente" o "ID utente" sono comunemente scambiate con "account". Tuttavia, quando è necessario fare la distinzione tra l'ampia classe di cose che sono principals e il sottoinsieme di questi che sono operatori interattivi che guidano le transazioni in modo non deterministico, "utente" è la parola giusta.

Oggetto/Oggetto eredita dagli stessi termini usati nella grammatica. In una frase il soggetto è l'attore e il l'oggetto è la cosa su cui ha agito. In questo senso l'uso è stato intorno da prima che i computer sono stati inventati. In un contesto di sicurezza, un soggetto è tutto ciò che può fare una richiesta. Come notato sopra, questo non deve essere limitato alla sicurezza IT e quindi è una classificazione molto ampia. La cosa interessante è che il soggetto implica l'oggetto. Senza un oggetto, non c'è soggetto.

I principi sono ciò a cui i soggetti si risolvono. Quando presenti la tua carta di credito sei il soggetto e l'account numero è il principale. In altri contesti il tuo ID utente o l'identificazione emessa dallo stato è il tuo principale. Ma i presidi possono essere associati a molti tipi di soggetti che non sono persone. Quando le applicazioni fanno richieste per funzioni a livello di sistema, il principale può essere il firmatario di un modulo di codice eseguibile firmato, ma anche in questo caso l'utente che guida la richiesta è ancora il soggetto.

L'utente è più specifico del soggetto o del principale in quanto di solito si riferisce a un operatore interattivo. Questo è il motivo per cui abbiamo un'interfaccia utente grafica e non un'interfaccia principale grafica. Un utente è un'istanza di subject che si risolve in un principal . Un singolo utente può risolvere a qualsiasi numero di principi, ma qualsiasi principale dovrebbe risolvere a un singolo utente (supponendo che le persone osservino il requisito di non condividere gli ID). Nell'esempio sopra, il firmatario di un modulo di codice eseguibile è sicuramente non l'utente, ma è un principio valido. Il l'operatore interattivo che cerca di caricare il modulo è l'utente.

Come notato nei commenti, anche le fonti autorevoli non sono d'accordo su questi termini. Ho cercato NIST, SANS, IEEE, MITRE e diverse fonti "quasi autorevoli" come le guide agli esami di sicurezza durante la preparazione di questa risposta. Nessuna singola fonte che ho trovato che fosse almeno quasi autorevole copriva tutti e tre i termini e tutti differivano significativamente nel loro utilizzo. Questa è la mia opinione su come dovrebbero essere i termini usato ma da un punto di vista pratico, quando si sta studiando attentamente un manuale nel bel mezzo della notte, le definizioni tendono ad essere qualunque sia il venditore o scrittore dicono di essere. Speriamo che le risposte qui forniscano informazioni sufficienti per navigare nelle acque e analizzare qualsiasi documento di sicurezza utilizzando questi termini.

 216
Author: T.Rob, 2011-02-17 20:12:03

Dai un'occhiata alla mia Mappa concettuale di autenticazione:

inserisci qui la descrizione dell'immagine

 50
Author: Marinus, 2015-01-09 08:02:59

Penso che la terminologia sia presa da JAAS .

Quando un'applicazione utilizza JAAS autenticazione per autenticare il utente (o altra entità come servizio), un Oggetto viene creato come risultato. Lo scopo del soggetto è per rappresentare l'utente autenticato. A Soggetto è composto da una serie di Committenti , dove ogni Committente rappresenta un'identità per quell'utente. Ad esempio, un soggetto potrebbe avere un nome Principale ("Susan Smith") e un Numero di previdenza sociale Principale ("987-65-4321"), quindi distinguere questo soggetto da altri Soggetto.

 14
Author: Aravind R. Yarram, 2018-02-01 00:10:37

Subject è l'entità che richiede un servizio. Può essere un utente o un processo. Probabilmente è per questo che il nome Subject è stato scelto al posto di user.

Quando un soggetto tenta di accedere a un servizio, il soggetto deve essere prima autenticato. L'autenticazione riuscita termina con il caricamento dei principi di sicurezza per quell'oggetto. Ad esempio, in un sistema di controllo degli accessi basato su ruoli, un utente autenticato (connesso) di solito ha due principi: UserID e roleId. In tali sistemi, i privilegi (cioè chi può accedere a cosa) sono specificati sia per i ruoli che per gli utenti. Durante l'autorizzazione (cioè controllando se il servizio richiesto dovrebbe essere consentito), il sistema di sicurezza verificherà l'accessibilità nei confronti di entrambi i principali.

Pertanto, dal punto di vista dell'autorizzazione, i principal sono le entità effettive per le quali l'accesso è consentito o non consentito. Il soggetto è solo un utente / thread / processo che contiene alcuni principi.

 10
Author: rahulmohan, 2011-02-16 20:54:45

Come ha spiegato T. Rob, Subject è qualsiasi entità che richiede l'accesso a un oggetto. A partire da quel punto ho trovato un commento su javax.sicurezza.auth.Codice oggetto che ho trovato MOLTO utile e facile da capire:

"I soggetti possono potenzialmente avere identità multiple. Ogni identità è rappresentata come un Principale all'interno del Soggetto. I principi associano semplicemente i nomi a un soggetto. Ad esempio, un Soggetto che sembra essere una persona, Alice, potrebbe avere due Principi: uno che lega " Alice Bar", il nome sulla sua patente di guida, al soggetto, e un altro che si lega, "999-99-9999", il numero sulla sua carta d'identità studente, al Soggetto. Entrambi i Principi si riferiscono allo stesso soggetto anche se ognuno ha un nome diverso."

Spero che aiuti.

 9
Author: Rafael, 2014-01-09 10:33:45

Questo è il link per la seguente spiegazione dalla documentazione Oracle JAVA SE.

Soggetti, principi, autenticazione e credenziali Per autorizzare l'accesso alle risorse, le applicazioni devono prima autenticare l'origine della richiesta. Il framework JAAS definisce il termine oggetto per rappresentare l'origine di una richiesta. Un soggetto può essere qualsiasi entità, come una persona o un servizio. Un soggetto è rappresentato dal javax.sicurezza.auth.Oggetto classe.

L'autenticazione rappresenta il processo mediante il quale viene verificata l'identità di un soggetto e deve essere eseguita in modo sicuro; altrimenti un perpetratore può impersonare altri per ottenere l'accesso a un sistema. L'autenticazione in genere coinvolge il soggetto che dimostra una qualche forma di prova per dimostrare la sua identità. Tali prove possono essere informazioni che solo il soggetto potrebbe conoscere o avere (come una password o un'impronta digitale), o possono essere informazioni che solo il soggetto potrebbe produrre (ad esempio, i dati firmati utilizzando una chiave privata).

Una volta autenticato, un soggetto viene popolato con le identità associate o Principal (di tipo java.sicurezza.Principale). Un Soggetto può avere molti Principi. Ad esempio, una persona può avere un nome Principale ("John Doe") e un Principale SSN ("123-45-6789"), che lo distinguono da altri Soggetti.

Oltre ai Principi associati, un Soggetto può possedere attributi relativi alla sicurezza, a cui si fa riferimento come credenziali. Una credenziale può contenere informazioni utilizzate per autenticare il soggetto a nuovi servizi. Tali credenziali includono password, ticket Kerberos e certificati con chiave pubblica. Le credenziali potrebbero anche contenere dati che consentono al soggetto di eseguire determinate attività. Le chiavi crittografiche, ad esempio, rappresentano credenziali che consentono all'oggetto di firmare o crittografare i dati. Le classi di credenziali pubbliche e private non fanno parte dell'API J2SE di base. Qualsiasi classe, quindi, può rappresenta una credenziale.

 3
Author: fgul, 2017-11-02 11:43:55