Concetto di sicurezza multilivello

0

Sto lavorando a un concetto di sicurezza di un progetto più grande. Sarà fatto con Spring, ma al momento non è rilevante.

L'intero sistema è un albero gerarchico di nodi di computer che eseguono un software platfrom personalizzato, mentre i nodi layer 1 si connettono a un nodo sul layer 2, i nodi layer 2 si connettono a un nodo sul layer 3 e così via.

L'ideaèchel'interosistemaabbiaunnodoprincipalechesaràlaradicedell'albero.L'interagestionedegliutenti,inclusal'autenticazione,verràeseguitalì.Significacheunarichiestadiaccessodaunnododilivelloinferioreverràinoltrataalnodoradice.Ilconcettoperquestoèpraticamentefattoesembrabuono.

Lapartedifficileinquestomomentoèl'autorizzazione.Ilsistemadovrebbedareunasensazionetop-downSingleSignOn.Significatosehoeffettuatol'accessosuunnododilivello3,nondovròpiùcollegarmiadalcunnododilivelloinferiore.Attualmenteloimmaginoinquestomodo:

Accedi

  1. L'utenteaccedeaunnodosuperiore
  2. L'utenteottienelachiavedisessionememorizzatainuncookie
  3. L'utenteaccedeaunapiattaformasuunnodoinferiore
  4. Ilmodulodiautorizzazionedelnodoinferiorenonconoscelachiavedisessionefornita
  5. Modulodiautorizzazionechiedialnodosuperioreselachiavedisessioneènota
  6. Un'istanzanodosuperioreconoscelachiavedisessioneelerisposteconunOK
  7. Ilmodulodiautorizzazionesulnodoconaccessotentatocreaunanuovasessionelocaleperquestoutente.
  8. Lachiavedisessionevieneaggiuntaalcookie.
  9. L'utenteutilizzalachiavedisessionelocaleperunulterioreaccessoaquestonodo.

Accedi

  1. L'utentesidisconnettesuunnodocasuale
  2. Ilnodosucuil'utentesièdisconnessoinformailnodoconlachiavedisessioneoriginalememorizzata,chelasessionenonèpiùvalida.
  3. Ilnodoconlachiavedisessioneoriginaledellasessionearchiviatainviaunatrasmissioneversoilbassoperinformaretuttiiclientchequestasessionenonèpiùvalida.

Ovviamente,l'interacomunicazioneinterlayersaràprotetta.

Questoconcettofunzionerebbetecnicamente,suppongo.Datochenonhomaidovutocreareunconcettodisicurezzacomplessocomequesto,mipiacedavverosentireunaltroparere.Forsestosupervisionandounproblemaimportante.Riesciavedereunbucofatalenellastoria,odovreiandareconquello?

Aggiorna

Undettaglioimportantechehoperso,ècheunlivelloinferiorenonhanecessariamenteaccessodirettoallareteallivellosuperiore.Puòsuccederecheilivellisitrovinoinretidiverseeabbianosolounaconnessionediretedirettaallivellosuperioresuccessivo.PertantononavròlapossibilitàdicreareunserverdilogincentralecomedisolitousatoconSSO.

Aggiorna

Diagrammadisequenzachespiegal'interoprocessoelanecessitàdichiavi

    
posta Herr Derb 02.03.2017 - 09:01
fonte

2 risposte

1

Il tuo livello 1, e in particolare il livello 2, sembrano fare ben poco oltre alla connettività. Nessuna convalida per rifiutare DoS, nessuna memorizzazione nella cache.

Un TGT e amp di stile Kerberos; Service Ticket si basa strettamente sulla crittografia simmetrica, senza RSA. Nella tua configurazione sembra naturale per il livello 3 produrre istruzioni firmate che altri livelli + client verificano e si fidano. Layer1 potrebbe usare HMAC per verificare a basso costo che il client non abbia manomesso un cookie.

Fai questo: scrivi una storia di ciò che un utente esigente ad alte prestazioni fa in un giorno tipico. Accede, 500ms dopo accede a questo, 2000ms dopo accede a quell'altra risorsa protetta e così via. Ora guarda la storia e annota le previsioni delle latenze vissute dall'utente e le operazioni al secondo viste dai nodi di livello superiore in una popolazione gigantesca di utenti simili. Il livello 3 potrebbe anticipare la prossima probabile transazione e anticipare preventivamente le cache rilevanti? Forse usando messaggi che sono bit-a-bit identici, quindi c'è comm. overhead ma nessun overhead crittografico aggiuntivo?

    
risposta data 01.10.2017 - 19:02
fonte
0

Il modo in cui vedo una chiave di sessione sarebbe sufficiente, con questa chiave hai tutte le informazioni che hai: id utente, data di scadenza sessione e puoi autorizzare su richiesta. Un modo per gestire questo è richiedere l'accesso a una risorsa e rispondere con l'elenco dei privilegi concessi per l'utente.

Nell'altra parte, valuterò se valga la pena di fare tutto da capo quando hai alcune soluzioni open source per implementare questo tipo di sicurezza come OpenAM.

    
risposta data 02.03.2017 - 09:50
fonte

Leggi altre domande sui tag