URLと暗号化で渡されたHTTP基本認証資格情報


250

HTTPSおよびHTTP認証の資格情報について質問があります。

HTTP認証でURLを保護するとします。

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

次に、HTTPSを介してリモートシステムからそのURLにアクセスし、URLで資格情報を渡します。

https://gooduser:secretpassword@www.example.com/webcallback?foo=bar

ユーザー名とパスワードは自動的にSSL暗号化されますか?GETとPOSTも同じですか?この情報で信頼できる情報源を見つけるのに苦労しています。



非常に古い質問ですが、それにもかかわらず、このアプローチはietf.org/rfc/rfc3986.txtによって非推奨になりました: "userinfoフィールドでの" user:password "形式の使用は非推奨です。"
Madbreaks

回答:


237

ユーザー名とパスワードは自動的にSSL暗号化されますか?GETとPOSTについても同じです

はいはいはい。

SSLが使用されている場合、通信全体(ホスト名のIPがまだキャッシュされていない場合はDNSルックアップ用に保存されます)は暗号化されます。


25
+1。URLを含むGETおよびPOSTは暗号化されます。追加するだけです。firebugやTamper dataなどのツールは、ブラウザの一部であり、暗号化される前にリクエストを傍受できるため、暗号化されていない結果を表示できます。回線を介して送信されると、すべてが暗号化されます。
Sripathi Krishnan

21
明確にするために、ドメイン以外はすべて暗号化されています。誰かがこれに遭遇し、より詳細な回答が必要な場合は、answers.google.com
answers / threadview / id / 758002.htmlを

7
完全を期すために、「Internet ExplorerはWebサイトアドレスのユーザー名とパスワード(HTTPまたはHTTPS URL)をサポートしていません」Internet Explorerバージョン3.0から6.0のみがHTTPまたはHTTPS URLの次の構文をサポートしているようです:http(s): //username:password@server/resource.ext注:デフォルトの動作におけるこの変更は、他のプロトコルには影響しません。たとえば、832894セキュリティ更新プログラムをインストールした後でも、FTP URLにユーザー情報を含めることができます。
ルーク、

この回答には、信頼できる情報源も詳しい説明も含まれていません。
Jens Piegsa

26

はい、暗号化されます。

舞台裏で何が起こっているのかを確認するだけで理解できます。

  1. ブラウザまたはアプリケーションは最初にURLを分解し、DNSクエリを使用してホストのIPを取得しようとします。つまり、ドメイン(www.example.com)のIPアドレスを見つけるためにDNS要求が行われます。このリクエストで他の情報が送信されることはありません。
  2. ブラウザまたはアプリケーションは、DNS要求から受信したIPアドレスを使用してSSL接続を開始します。証明書が交換され、これはトランスポートレベルで行われます。この時点では、アプリケーションレベルの情報は転送されません。基本認証はHTTPの一部であり、HTTPはアプリケーションレベルのプロトコルであることを忘れないでください。トランスポート層のタスクではありません。
  3. SSL接続を確立した後、必要なデータがサーバーに渡されます。つまり、パスまたはURL、パラメーター、および基本認証のユーザー名とパスワード。

-5

必ずしもそうではありません。暗号化はネットワーク上で行われますが、ログはプレーンテキストで表示されます


17
どのWebサーバーがリクエストからのユーザー名とパスワードをログに記録しますか?これは、安全でないWebサーバーの1つの地獄です。
アンドリューバーバー

1
ええ、これは真実ではありません。この情報をログに記録するようにApacheに指示することはおそらく可能ですが、デフォルトでは確かにそうしていません。
DougW 2012

27
@Brandonはおそらく、クエリ文字列(たとえば?user = bob&pw = 123hackmeplz)で「URL内」を意味すると考えていました。これは、サーバーログに記録される可能性があります。
Mike Graf

5
関連:「curlなどを使用してクライアントでそのURLを呼び出すと、ユーザー名とパスワードがプロセスリストに明確に表示され、bash履歴ファイルに表示される場合があります。」- stackoverflow.com/a/4981309
ホークアイパーカー

1
@ zb226質問者は、URLに資格情報を配置することについて具体的に言及しました。
ランバート、2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.