2010-04-26 4 views
211

Ho una domanda sulle credenziali di autenticazione HTTPS e HTTP.Credenziali di autenticazione di base HTTP passate in URL e crittografia

Supponiamo che io fissare un URL con l'autenticazione HTTP:

<Directory /var/www/webcallback> 
AuthType Basic 
AuthName "Restricted Area" 
AuthUserFile /var/www/passwd/passwords 
Require user gooduser 
</Directory> 

Ho quindi accedere a tale URL da un sistema remoto via HTTPS, passando le credenziali nell'URL:

https://gooduser:[email protected]/webcallback?foo=bar 

Sarà il nome utente e la la password deve essere automaticamente crittografata con SSL? Lo stesso vale per GET e POST? Sto avendo difficoltà a trovare una fonte credibile con queste informazioni.

+1

correlati: [nome utente e password in https url] (http://stackoverflow.com/questions/4980912/username-and-password-in-https-url) –

risposta

201

Il nome utente e la password saranno automaticamente crittografati con SSL? Lo stesso vale per GET e POST

Sì, sì sì.

L'intera comunicazione (salva per la ricerca DNS se l'IP per il nome host non è già memorizzato nella cache) viene crittografata quando SSL è in uso.

+23

+1. GET e POST, incluso l'url, sono criptati. Aggiungerò solo - strumenti come firebug e dati di Tamper sono in grado di mostrare i risultati non crittografati * solo perché * fanno parte del browser e quindi sono in grado di intercettare la richiesta prima che venga crittografata. Una volta inviato via cavo, tutto è crittografato. –

+18

Per essere chiari, tutto tranne il dominio è crittografato. Se qualcuno si imbatte in questo e vorrebbe una risposta più dettagliata, vedi http://answers.google.com/answers/threadview/id/758002.html – rcourtna

+7

Per completezza, "[Internet Explorer non supporta nomi utente e password negli indirizzi dei siti Web (URL HTTP o HTTPS)] (http://support.microsoft.com/kb/834489/en-us) " Sembra solo le versioni di Internet Explorer dalla 3.0 alla 6.0 supporta la seguente sintassi per gli URL HTTP o HTTPS: http (s): // nome utente: [email protected]/resource.ext Nota: questa modifica del comportamento predefinito non influisce su altri protocolli. Ad esempio, puoi ancora includere le informazioni utente in un URL FTP dopo aver installato l'aggiornamento per la sicurezza 832894. – Luke

-7

Non necessariamente vero. Esso sarà criptato sul filo tuttavia atterra ancora nei log di testo normale

+16

Quale server Web registra il nome utente e le password dalle richieste? Quello sarebbe un inferno di un server web insicuro. –

+0

Sì, questo non è vero. Probabilmente è possibile istruire apache a registrare queste informazioni, ma di sicuro non lo fa per impostazione predefinita. – DougW

+24

@Brandon stava probabilmente pensando "in URL" inteso nella stringa di query (ad es., User = bob & pw = 123hackmeplz). Questo potrebbe finire nei log del server. –

16

Sì, e sarà crittografato.

Lo comprenderete se controllate semplicemente cosa succede dietro le quinte.

  1. Il browser o l'applicazione prima analizzano l'URL e cercano di ottenere l'IP dell'host utilizzando una query DNS. Ad esempio: verrà effettuata una richiesta DNS per trovare l'indirizzo IP del dominio (www.example.com). Si prega di notare che nessun'altra informazione verrà inviata tramite questa richiesta.
  2. Il browser o l'applicazione avvieranno una connessione SSL con l'indirizzo IP ricevuto dalla richiesta DNS. I certificati verranno scambiati e ciò avviene a livello di trasporto. A questo punto non verranno trasferite informazioni sul livello di applicazione. Ricorda che l'autenticazione di base è parte di HTTP e HTTP è un protocollo a livello di applicazione. Non un'attività di trasporto.
  3. Dopo aver stabilito la connessione SSL, ora i dati necessari verranno passati al server. vale a dire: il percorso o l'URL, i parametri e il nome utente e la password di autenticazione di base.