mercoledì 7 aprile 2010

"Sniffata" HTTP su mail di ateneo

Uno studente di Reti I (Alfredo Canziani) mi ha inviato una "sniffata" di traffico HTTP ottenuto quando si autenticava da casa al servizio webmail di ateneo. Ha provato con Internet Explorer, senza riuscire ad autenticarsi, e con Firefox, riuscendo ad autenticarsi. La cosa è interessante anche perché il lato server sembra Microsoft.

Il traffico (lungo e prolisso) si trova qui.

Ci sono alcuni aspetti interessanti per Reti II, tra i quali:
  1. Firefox supporta veramente NTLM;
  2. il valore "Negotiate" per lo header "WWW-Authenticate" non significa "mettiamoci d'accordo ed usiamo uno dei valori dei WWW-Authenticate seguenti" (il significato che avevo detto a lezione); significa invece "mettiamoci d'accordo, se scegli questo valore ti elenco i meccanismi che supporto in aggiunta a quelli che ho già elencato nei WWW-Authenticate seguenti". E' stato proposto da Microsoft per l'interazione con i propri web server. Tipicamente viene usato per l'autenticazione Kerberos su HTTP ma può essere usato anche per NTLM. Permette cioè di "incastrare" Kerberos con HTTP; non ho approfondito se si tratti della variante safe, private o insomma. Maggiori dettagli:
  • http://www.ietf.org/rfc/rfc4559.txt
  • http://msdn.microsoft.com/en-us/library/ms995329.aspx
Qualche commento sul traffico sniffato:
  • Il server risponde dicendo: ti devi autenticare, io supporto 3 meccanismi: Negotiate, NTLM, Basic;
  • Firefox sceglie NTLM e dopo lo scambio "solito" riesce ad autenticarsi
  • IE sceglie invece Negotiate e non riescono a mettersi d'accordo (!). Il che è singolare perché il server è Microsoft ed il browser è Microsoft, pertanto dovrebbero essere in grado di mettersi d'accordo.
Non so perché non riescano a mettersi d'accordo, sospetto che il motivo sia questo:
  • Il client (per come è configurato) se gli viene proposto Negotiate allora lo sceglie;
  • Il server è stato configurato in modo che quando il client chiede Negotiate, allora il server accetta solo Kerberos;
  • Questo particolare client non supporta Kerberos e quindi non si mettono d'accordo.
Altro esempio di quello che dico spesso: per capire le reti bisogna sforzarsi di guardare alla realtà con molta elasiticità. altrimenti non si capisce nulla di nulla...la realtà è troppo complicata per la presenza di molti dettagli concettualmente irrilevanti.
Posta un commento