48 lines
2.1 KiB
Markdown
48 lines
2.1 KiB
Markdown
|
# 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
|