Grazie per la risposta, ho letto anch'io prima di scrivere qui che ci sono problemi con android, ma erano post del 2008 - 2009, pensavo che magari ci fosse qualche soluzione difficile da trovare.
Si uso solo protocollo HTTP, purtroppo non posso usare HTTPS è un processore ARM da 20MHZ con 512K di memoria una SD card da 4 Gb dalla quale carico le pagine web e file js abbinato a una scheda di rete, non ho le risorse per utilizzare quel protocollo. Diciamo che è questo piccolo server a mandare tutto al client, il processore programmato in C con qualche libreria e poi compilato si limita a gestire i pacchetti POST e GET inviati dal js ajax e le sue periferiche digitali.
Certo con firefox e Crome funziona correttamente quando chiamo l'host da android il digest viene ignorato e mi passa subito in login error.
questa è la risposta del server quando da browser digiti http://192.168.2.177/circuit.htm
client << F("HTTP/1.0 401 Authorization Required");
client << F("WWW-Authenticate: Digest realm=\" Quadro elettrico login \"");
//client << F("qop=\"auth,auth-int\"");
//client << F("nonce =\"dcd98b7102dd2f0e8b11d0f600bfb0c093\"");
//client << F("opaque=\"5ccc069c403ebaf9f0171e9517f40e41\"") ;
client << F(401, DEC);
client << F(" OK\r\n");
esempio con firefox inserendo ... user "admin" ... pass "admin" il client rispinde
Host: 192.168.2.177
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Authorization: Digest username="admin", realm=" Quadro elettrico login ", nonce="", uri="/circuit.htm", response="cdcd79c55612e085717302e815a27db9"
Cache-Control: max-age=0, max-age=0
esempio con android, ma qui non mi viene concesso l'inserimento
Host: 192.168.2.177
Connection: keep-alive
Referer: http://192.168.2.177/circuit.htm
User-Agent: Mozilla/5.0 (Linux; U; Android 4.0.3; it-it; Sensation_Z710e Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Accept-Encoding: gzip,deflate
Accept-Language: it-IT, en-US
Accept-Charset: utf-8, iso-8859-1, utf-16, *;q=0.7
Ma già che siamo in tema, non capisco una cosa:
Sapendo che tutto viaggia in chiaro ... Il base64 se viene intercettato lo converto e riesco a risalire alle 2 parole user e pass, ma se intercetto una stringa di 32 caratteri generata da un MD5 non riesco a risalire con facilità a user e pass.
Ora mi chiedo qualcuno potrebbe prendere questo hash e inviarlo al server senza passare dalle 2 parole originali? perchè in fondo è questo che il server riconosce dall'header la stringa generata dall'MD5. In tal caso cosa posso usare per dare un minimo di protezione ai dati principali che non sia troppo oneroso per quel piccolo MCU
Immagina di vedere una telecamera IP (non è quello che ho io, lavoro su cose un po' più belle), ha un login ed è capace di dialogare in http ma è poco potente
Grazie ciao