UniTO/anno2/YearI/FirstSem/CS/lesson5-06112017.md
Francesco Mecca 5e286062f8 MCAD 2019
2018-11-22 13:09:11 +01:00

2.1 KiB

Kerberos v4

Introduce un terzo elemento (Ticket Granting Service). E' attualmente usato da Microsoft, sviluppato dall'MIT, ottimo per reti locali. L'utilizzo estensivo di Timestamps rende vano il replay attack. L'utilizzo di messaggi authenticator, assicurano l'identita' del client. Complesso.

Funzionamento

E' un dialogo tra 4 soggetti: Client, Authentication Service, Ticket Granting Service, Server. Ogni soggetto condivide alcune chiavi con gli altri soggetti (non tutti) che sono generate manualmente, in maniera sicura. Il Ticket Granting Service e' utilizzato per generare ticket che permettano l'accesso al server.

V = servizio richiesto (server)
LT = lifetime
T = timestamp

Sequenza:

  1. C manda ad AS (IDc, IDtgs, T1)

  2. L'AS risponde con (E[kc,as](Kc,tgs, IDtgs, T2, LT2, ticket[tgs]))

  • il ticket[tgs] e' E[Kc,tgs] (Kc,tgs, IDc, MACc, T2, LT2, IDtgs)
  1. C manda al TGS (IDv, ticket[tgs], authenticator[c])
  • authenticator[c] e' E[Kc,tgs] (IDc, MACc, T3). E' usato per dimostrare l'identita' di C.
  1. Il TGS risponde con E[ktgs,v] (Kc,v, IDv, T4, ticket[v]).
  • il ticket[v] e' E[Ktgs,v] (Kc,v, IDc, MACc, T5, LT5, IDv).
  1. C a questo punto comunica direttamente con V, mandando (IDc, ticket[v], authenticator2[c]).
  • authenticator[c] e' E[Kc,v] (IDc, MACc, T6). E' usato per dimostrare l'identita' di C.
  1. V risponde con E[kc,v] (T5 + 1)
  • il T5 viene restituito modificato (una qualunque funzione va bene, basta che C e V ne siano a conoscenza).

Autenticazione con chiave asimmetrica (SSL/TLS)

In applicativi in cui non e' possibile condividere chiavi simmetriche a priori (ecommerce, banking) e' necessario un protocollo a chiavi asimmetriche.

Digressione: autenticazione HTTP

Il protocollo HTTP utilizza una catena di servizi: Client/Browser, Proxy/Tunnel (un numero vario), Gateway (traduce richieste), Server.

Autenticazione in HTTP

Vari metodi, in ordine di sicurezza:

  • keep-alive: non un vero e proprio sistema di sessione, semplicemente un timeout e un numero di richieste/risposte massimo per mantenere aperta una connessione.

  • Cookie / URL rewriting

  • SSL / TLS