1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Basic認証のパスワードは送信時に暗号化されていない

Posted at

概要

  • Basic認証のパスワードはHTTPで送信時に暗号化されていないらしい。情報を簡単にまとめておく。

情報

  • Apacheのドキュメントに下記のような記載があった。(https://httpd.apache.org/docs/2.4/howto/auth.html

     Basic 認証はクライアントからサーバへ、 パスワードを暗号化せずに送ります。
    
  • ようはBasic認証の認証情報は「見ようと思えば簡単に見れちゃう」ということになる。

  • ただし、Apacheの場合mod_sslというモジュールを併用することでSSL/TLSプロトコルを使った暗号化をする事ができる。そもそもHTTPSを使うことでも暗号化することができる。

  • Basic認証単独で使った場合の欠点を補うべく生まれたのがDigest認証である。ApacheでDigest認証を実装する場合、Basic認証と左程変わらない手順で実装できるのでこちらの方がおすすめである。

  • Digest認証の流れはこちらが分かりやすかった→Digest認証とは

    1. クライアントがランダム文字列をサーバーに要求
    2. サーバーがランダム文字列をクライアントに返す
    3. 人間がクライアント側で認証情報を入力
    4. クライアント側が入力された認証情報とランダム文字列を連結
    5. 認証情報+ランダム文字列をハッシュ化する
    6. ハッシュ化された文字列をサーバーに送る
    7. クライアントからきた文字列とサーバー側で用意した「認証情報+ランダム文字列をハッシュ化した文字列」を照らし合わせる
    8. 一致したら認証成功
  • ただDigest認証のハッシュは解析する事ができる古いアルゴリズムらしいので完璧じゃない。

まとめ

HTTP HTTPS
Basic認証  ✕
Digest認証
  • Basic認証をHTTPで使うと簡単に認証情報を見れてしまうので危険
  • Digest認証をHTTPで使うと一応セキュアではあるが解析される可能性有り

HTTPSを使えるならそっちで今まで通りBasic認証でHTTPSで暗号化の方がいい気がする。(所感)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?