Informations d'authentification HTTP de base transmises dans l'URL et le chiffrement

250

J'ai une question sur les informations d'authentification HTTPS et HTTP.

Supposons que je sécurise une URL avec l'authentification HTTP:

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

J'accède ensuite à cette URL à partir d'un système distant via HTTPS, en transmettant les informations d'identification dans l'URL:

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

Le nom d'utilisateur et le mot de passe seront-ils automatiquement cryptés SSL? Est-ce la même chose pour les GET et les POST? J'ai du mal à trouver une source crédible avec ces informations.

rcourtna
la source
1
Connexes: nom d' utilisateur et mot de passe dans l'URL https
Hawkeye Parker
Question très ancienne mais néanmoins: cette approche est déconseillée par ietf.org/rfc/rfc3986.txt : "L'utilisation du format" utilisateur: mot de passe "dans le champ userinfo est déconseillée."
Madbreaks

Réponses:

237

Le nom d'utilisateur et le mot de passe seront-ils automatiquement cryptés SSL? Est-ce la même chose pour les GET et les POST

Oui oui oui.

L'ensemble de la communication (sauf pour la recherche DNS si l'IP du nom d'hôte n'est pas déjà mis en cache) est crypté lorsque SSL est utilisé.

Quentin
la source
25
+1. Les GET et les POST, y compris l'URL, sont cryptés. J'ajouterai seulement - des outils comme Firebug et Tamper data ne peuvent afficher les résultats non chiffrés que parce qu'ils font partie du navigateur et sont donc capables d'intercepter la demande avant qu'elle ne soit chiffrée. Une fois envoyé sur le fil, tout est crypté.
Sripathi Krishnan le
21
Pour être clair, tout sauf le domaine est crypté. Si quelqu'un tombe sur cela et souhaite une réponse plus détaillée, voir answers.google.com/answers/threadview/id/758002.html
rcourtna
7
Par souci d'exhaustivité, « Internet Explorer ne prend pas en charge les noms d'utilisateur et les mots de passe dans les adresses de site Web (URL HTTP ou HTTPS) » Il semble que seules les versions Internet Explorer 3.0 à 6.0 prennent en charge la syntaxe suivante pour les URL HTTP ou HTTPS: http (s): //username:password@server/resource.ext Remarque: Cette modification du comportement par défaut n'affecte pas les autres protocoles. Par exemple, vous pouvez toujours inclure des informations utilisateur dans une URL FTP après avoir installé la mise à jour de sécurité 832894.
Luke
cette réponse ne contient ni source crédible ni explications complémentaires.
Jens Piegsa
26

Oui, il sera crypté.

Vous le comprendrez si vous vérifiez simplement ce qui se passe dans les coulisses.

  1. Le navigateur ou l'application décomposera d'abord l'URL et tentera d'obtenir l'IP de l'hôte à l'aide d'une requête DNS. c'est-à-dire: Une demande DNS sera faite pour trouver l'adresse IP du domaine (www.example.com). Veuillez noter qu'aucune autre information ne sera envoyée via cette demande.
  2. Le navigateur ou l'application établira une connexion SSL avec l'adresse IP reçue de la requête DNS. Les certificats seront échangés et cela se produit au niveau du transport. Aucune information au niveau de l'application ne sera transférée à ce stade. N'oubliez pas que l'authentification de base fait partie de HTTP et HTTP est un protocole de niveau application. Pas une tâche de couche transport.
  3. Après avoir établi la connexion SSL, les données nécessaires seront désormais transmises au serveur. ie: le chemin ou l'URL, les paramètres et le nom d'utilisateur et le mot de passe d'authentification de base.
Ruchira Randana
la source
-5

Pas nécessairement vrai. Il sera crypté sur le fil, mais il atterrit toujours dans les journaux en clair

Brandon
la source
17
Quel serveur Web enregistre le nom d'utilisateur et les mots de passe des demandes? Ce serait un enfer d'un serveur Web non sécurisé.
Andrew Barber
1
Ouais, ce n'est tout simplement pas vrai. Il est probablement possible de demander à apache de consigner ces informations, mais ce n'est certainement pas le cas par défaut.
DougW
27
@Brandon pensait probablement "dans l'URL" signifié dans la chaîne de requête (par exemple,? User = bob & pw = 123hackmeplz). Cela pourrait se retrouver dans les journaux du serveur.
Mike Graf
5
Connexes: "Lorsque vous appelez cette URL sur le client avec par exemple curl, le nom d'utilisateur et le mot de passe seront clairement visibles dans la liste des processus et pourraient apparaître dans le fichier d'historique bash." - stackoverflow.com/a/4981309
Hawkeye Parker
1
@ zb226, le demandeur a mentionné spécifiquement la mise en place des informations d'identification dans l'URL.
Lambart