Nell'ufficio è presente un punto di accesso WiFi Cisco destinato agli ospiti. È una rete aperta in cui è possibile associare senza fornire una password con il SSID. Supporta RFC2617 e quindi la prima volta che un client si associa e tenta di utilizzare la rete, vengono richieste le credenziali. Dopo aver fornito le credenziali corrette, le richieste HTTP successive vengono gestite correttamente.
Posso accedere correttamente a questo punto di accesso WiFi conforme a RFC2617 da un piccolo computer Raspberry Pi Linux con il seguente script:
#!/usr/bin/python
## Attempt to connect to the None access point
## and return success or failure
import sys
import requests
url = "http://www.google.com"
username = sys.argv[1]
password = sys.argv[2]
print "Trying URL: %s - Now!"%(url)
r = requests.get(url) ## Try without credentials
if int(r.status_code) == 401:
print "Got HTTP %s - Re-Trying with Credentials now..."%(r.status_code)
r = requests.get(url, auth=(username, password))
print "Result after providing credentials was: %s"%(r.status_code)
if int(r.status_code) == 200:
sys.exit(0)
else:
sys.exit(-1)
else:
print "Got HTTP %s..."%(r.status_code)
if int(r.status_code) == 200:
sys.exit(0)
else:
sys.exit(-1)
Una volta effettuato l'accesso, sono connesso fino a quando l'Access Point non modifica la sua password. Le richieste HTTP successive non richiedono mai le credenziali dopo il 401 iniziale.
Ai fini del test, voglio essere in grado di disconnettermi quindi ho raggiunto la condizione di ottenere un HTTP 401 sul successivo tentativo di accesso di nuovo. Non riesco a capire come non autenticare. Ho provato il seguente:
- Assegna casualmente l'indirizzo Mac all'interfaccia WiFi wlan0
- Ripristino delle impostazioni di fabbrica e riavvio del dispositivo
Ho provato a cercare i cookie del modulo richieste (stack HTTP), ma non sono riuscito a trovarne. È completamente vuoto.
L'ora SOLO non sono autenticata dopo che il punto di accesso lo ha reimpostato settimanalmente.
In che modo il punto di accesso RFC2617 sa che il dispositivo è lo stesso dispositivo e consente le richieste Web dopo aver modificato l'indirizzo Mac e riavviato? Il punto di accesso deve essere in qualche modo impronte digitali ma come? Come posso non autenticare con successo? Grazie!