# 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)` 3. 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. 4. 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)`. 5. 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. 6. 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