コンテンツへスキップ
uencoder

HTTP Digest 認証を使う

Digest 認証はサーバーの nonce と組み合わせて資格情報をハッシュし、HTTPS なしでのパスワード露出を防ぎます。チャレンジ・レスポンスの流れと MD5 の使われ方を学びましょう。

  1. 1

    Digest 認証では、まずサーバーがチャレンジ (nonce、realm) を送ります。クライアントは MD5(username:realm:password) と MD5(method:uri) を計算し、MD5(ha1:nonce:ha2) を送ります。サーバーは再計算して検証します。パスワードは平文で送られませんが、MD5 は弱いため、Digest 認証は廃れた方式です。HTTPS + Bearer トークンを使ってください。

  2. 2
    HMAC ジェネレーター →

    ダイジェスト計算に使う HMAC を生成します。Digest 認証が使うのは MD5 (HMAC ではありません) ですが、概念は似ています。メッセージに鍵を絡めたハッシュです。HMAC のほうが安全であり、現代の認証方式にはこちらを使います。

  3. 3
    ハッシュ計算ツール →

    Digest 認証の構成要素の MD5 ハッシュを計算します: HA1 = MD5(username:realm:password)、HA2 = MD5(method:uri)、response = MD5(HA1:nonce:HA2)。注意: MD5 は暗号学的に破られています。レガシーの Digest 認証との互換のためだけに使い、新しいシステムには使わないでください。

よくある質問

Digest 認証は安全ですか?
HTTP 上の Basic 認証よりはましです (パスワードが平文で送られない)。しかし、破られた MD5 に依存しています。中間者攻撃 (MITM) から守らず、機密性も提供しません。現代の認証には HTTPS + Bearer トークンを使ってください。Digest 認証はレガシー互換のためだけに残されています。
Digest 認証が廃れたのはなぜですか?
サーバー側に HA1 (パスワードの MD5) を保存する必要があり、レインボーテーブル攻撃に対して脆弱です。現代のパスワードハッシュ (bcrypt、scrypt) にも対応していません。正しく実装するのも複雑です (nonce 管理、qop、opaque)。HTTPS があれば、Digest 認証のパスワード保護は冗長になります。

このタスクを解決するワークフロー

コンテンツのハッシュと Base64 エンコード
入力のハッシュを計算し、コンパクトな転送のためにハッシュダイジェストを Base64 としてエンコードする。
パイプライン
テキストのハッシュと整合性検証
入力テキストのハッシュを計算し、期待されるハッシュと比較して整合性を検証する。
パイプライン
テキストのハッシュと CRC32 チェックサム検証
データ整合性検証のために、暗号学的 SHA-256 ハッシュと CRC32 チェックサムの両方を計算する。
パイプライン
HMAC 署名後に Base64 エンコード
HMAC 署名を生成し、API 認証ヘッダーのために Base64 エンコードする。
パイプライン
HMAC 署名と検証
メッセージの HMAC 署名を生成し、期待される署名と照合して検証する。
パイプライン
API リクエスト文字列の HMAC 署名
API 呼び出しを認証するために、リクエストペイロードの HMAC-SHA256 署名を生成する。
パイプライン
MD5 ハッシュ後に Base58 エンコード
MD5 ハッシュを計算し、コンパクトな表現のために Base58 としてエンコードする。
パイプライン
マルチハッシュ速度比較
入力をハッシュし、複数のハッシュアルゴリズムをベンチマークして速度と出力を比較する。
パイプライン
パスワード生成とハッシュ
ランダムパスワードを生成し、安全な保存のためにハッシュする。
パイプライン
SHA3-256 ハッシュと CRC32 チェックサム
SHA3-256 ハッシュを計算し、二重整合性検証のために CRC32 チェックサムを計算する。
パイプライン
SHA-512 ハッシュ後に Hex エンコード
SHA-512 ハッシュを計算し、可読性のために Hex としてエンコードする。
パイプライン
テキスト反転とハッシュ
テキストを反転し、その後反転結果の SHA-256 ハッシュを計算する。
パイプライン
テキストスクランブルとハッシュ
テキストをスクランブルし、その後スクランブル結果をハッシュする。
パイプライン

関連ツール