Digest認証 【digest authentication】 HTTPダイジェスト認証

概要

Digest認証(digest authentication)とは、HTTPユーザー認証う標準仕様の一つで、認証情報をハッシュ化して送受信する方式。データの伝送経路上で第三者に盗み見されてもパスワードなどを盗み取られることを防ぐことができる。

Webコンテンツを送受信するプロトコル通信規約)であるHTTPHypertext Transfer Protocol)には、特定のリソースファイルフォルダなど)へのアクセスを一部のユーザーに制限し、アクセスを試みた際にユーザー認証う仕組みが定義されている。

Digest認証はそのようなHTTP認証の手順の一つで、ユーザー名やパスワードなど認証のために必要な情報をそのまま送らず、ハッシュ関数により算出したハッシュ値のみを送る。ハッシュ値から元になったを効率よく推測することはできないようになっており、攻撃者がやり取りを盗聴しても認証情報を取得することはできない。

認証手順

Webサーバ認証が必要な領域へのアクセスを受けると、Webブラウザ401エラーを返して認証要求を通知し、「nonce」(ナンス)と呼ばれるランダムな文字列を生成して送信する。ブラウザ利用者ユーザー名とパスワード入力を要求する。

ブラウザ入力された認証情報と、サーバから受領したnonce、自ら生成したランダムな「cnonce」(client nonce)を連結し、ハッシュ関数ハッシュ化する。サーバへはcnonceと算出したハッシュ値を送信する。サーバ側では保存されたユーザー名とパスワードnonce、cnonceで同様のハッシュ値を算出し、一致すれば認証成功となる。

ユーザー名とパスワードのみをハッシュ化すると毎回同じハッシュ値をやり取りすることになるため、通信を盗み見た攻撃者がハッシュ値サーバに送信してクライアント側になりすます反射攻撃が可能となってしまうが、ランダムなnonceとcnonceを追加することで、毎回異なるハッシュ値としている。

ハッシュ関数の種類はHTTPヘッダの中で指定することができ、双方が対応しているアルゴリズムが採用される。当初の規格(RFC 2617)ではMD5方式が用いられていたが、現在では十分な安全性が確保できないことが知られており、改訂版(RFC 7616)ではSHA-256の使用が推奨されている。

他方式との比較

Digest認証は認証情報を平文のまま送受信するBasic認証基本認証)に比べ、クライアントサーバ間の伝送路の安全が確保されていない状況で認証情報を保護することができる。現代ではSSL/TLSを用いてHTTPによるデータ伝送全体を暗号化するHTTPS通信が広く普及しており、かつてより重要性は低下している。

(2024.1.23更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる