検索に移動Digest認証(ダイジェストにんしょう)とは、HTTPの認証方法の一つ。ユーザ名とパスワードをMD5でハッシュ(ダイジェスト)化して送る。Basic認証では防げなかった盗聴や改竄を防ぐために考案された。例[編集]典型的なDigest認証におけるHTTPクライアントとHTTPサーバの間の通信を紹介する。だいたいの流れは以下のようになる。クライアントは認証が必要なページをリクエストする。通常ここではユーザ名とパスワードを送っていない。クライアントはそのページが認証を必要とするか否かを知らないためである。認証方式(Digest)に関する情報をクライアントに返す。このとき、ランダムな文字列(nonce)も返される。それを受けたクライアントは、認証領域(通常は、アクセスしているサーバやシステムなどの簡単な説明)をユーザに提示して、ユーザ名とパスワードの入力を求める。ユーザはここでキャンセルすることもできる。ユーザによりユーザ名とパスワードが入力されると、クライアントはnonceとは別のランダムな文字列(cnonce)を生成する。ユーザ名とパスワードとこれら2つのランダムな文字列などを使ってハッシュ文字列(response)を生成する。クライアントはサーバから送られた認証に関する情報とともに、ユーザ名とresponseをサーバに送信する。サーバ側では、クライアントから送られてきたランダムな文字列(nonce、cnonce)などとサーバに格納されているハッシュ化されたパスワードから、正解のハッシュを計算する。この計算値とクライアントから送られてきたresponseとが一致する場合は、認証が成功し、サーバはコンテンツを返す。不一致の場合は再び401レスポンスコードが返され、それによりクライアントは再びユーザにユーザ名とパスワードの入力を求める。ユーザ名とパスワードの具体的な計算は以下のようになる。ここでは認証アルゴリズムがMD5の時の計算方法を示す。nonce,nc,cnonce,qopとHTTPのメソッド(GETなど)とコンテンツのURIはクライアントから送られてくるので、サーバ側でもresponseの正解を計算できる。(AKA)この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。(日時は個人設定で未設定ならばUTC)。表示-継承ライセンスの下で利用可能です。追加の条件が適用される場合があります。詳細は利用規約を参照してください。Cookieに関する声明モバイルビュ。