最終更新日:2026年6月30日
sg sg-technology network crypto_auth
まず結論
ダイジェスト認証とベーシック認証は、どちらもHTTPで利用される認証方式ですが、利用者IDとパスワードの送信のしかたが違います。
SG試験では、次の切り分けが重要です。
- ベーシック認証:
利用者ID:パスワードを Base64でエンコードして送る - ダイジェスト認証:パスワードそのものではなく、認証に必要な情報を使って作った ハッシュ値 を送る
選択肢では、「Base64」「MD5」「SHA」「エンコード」「ハッシュ化」 の言葉を入れ替えて迷わせてくることがあります。
直感的な説明
ベーシック認証は、たとえるなら、IDとパスワードを書いた紙を読みにくい文字に変えて渡すイメージです。
見た目はそのまま読めませんが、Base64は暗号化ではありません。
元に戻すことができるので、通信経路を盗聴されると危険です。
一方、ダイジェスト認証は、パスワードそのものを渡すのではなく、パスワードなどを材料にして作った確認用の値を渡すイメージです。
そのため、ベーシック認証よりはパスワードが直接見えにくい方式です。
ただし、現在の実務では、どちらの方式でもHTTPSなど安全な通信と組み合わせることが重要です。
定義・仕組み
ベーシック認証は、HTTPのAuthorizationヘッダーに認証情報を入れて送る方式です。
基本の流れは次のとおりです。
- 利用者IDとパスワードを
:(コロン)で連結する - 連結した文字列をBase64でエンコードする
- Authorizationヘッダーに入れてサーバへ送る
たとえば、SG試験では次のような表現が出たらベーシック認証を考えます。
利用者IDとパスワードを
:で連結し、Base64でエンコードしてAuthorizationヘッダーで送信する。
ここで注意したいのは、Base64は暗号化ではなくエンコードだという点です。
ダイジェスト認証は、サーバから送られるランダムな値などを使い、認証用のハッシュ値を作って送る方式です。
古い説明ではMD5が代表例として出てきます。
ただし、SG試験では細かい計算式よりも、パスワードそのものを送らず、ハッシュ値を使うという理解が大切です。
HTTP Basic認証はRFC 7617で、HTTP Digest認証はRFC 7616で定義されています。
どんな場面で使う?
ベーシック認証は、簡単なアクセス制限で使われることがあります。
たとえば、社内向けの簡易ページや、開発中のページに最低限の認証をかけるような場面です。
ただし、認証情報の扱いが弱いため、HTTPSなしで使うのは危険です。
ダイジェスト認証は、ベーシック認証よりもパスワードを直接送らない点が特徴です。
しかし、現在のWebシステムでは、フォーム認証、セッション管理、多要素認証、OAuthなど、別の認証方式が使われることも多くあります。
SG試験では、実務でどれが最新かを細かく覚えるよりも、次のように判断するとよいです。
ID:パスワードをBase64で送る → ベーシック認証- パスワードそのものではなくハッシュ値を送る → ダイジェスト認証
- Base64を「暗号化」と書いている → 注意
- HTTPSなしで安全と言い切っている → 注意
よくある誤解・混同
Base64は暗号化ではない
ベーシック認証では、IDとパスワードをBase64でエンコードします。
ここで、Base64でエンコード=暗号化と考えると誤りです。
Base64は、データを別の文字表現に変える方法です。
秘密にするための仕組みではないので、認証情報を安全に守るにはHTTPSなどの対策が必要です。
ダイジェスト認証は「IDとパスワードをBase64で送る」ではない
利用者ID:パスワード をBase64で送るのは、ベーシック認証です。
ダイジェスト認証は、パスワードそのものではなく、認証に必要な情報から作ったハッシュ値を使います。
選択肢で、
ダイジェスト認証では、利用者IDとパスワードを
:で連結し、Base64でエンコードする。
と書かれていたら、ベーシック認証の説明と混同している可能性があります。
MD5やSHAだけで判断しない
問題によっては、ダイジェスト認証の説明でMD5やSHAが出てくることがあります。
ただし、SG試験では、アルゴリズム名だけで判断するよりも、認証情報をどのように送るかを見る方が安定します。
- Base64でエンコードして送る → ベーシック認証
- ハッシュ値を使って送る → ダイジェスト認証
この切り分けを優先しましょう。
まとめ(試験直前用)
-
ベーシック認証は、
利用者ID:パスワードを Base64でエンコードしてAuthorizationヘッダーで送る。 -
ダイジェスト認証は、パスワードそのものではなく、認証用の ハッシュ値 を使う。
-
Base64は暗号化ではない。
「Base64だから安全」と書かれていたら注意する。 -
迷ったら、
Base64=ベーシック認証、ハッシュ値=ダイジェスト認証
で切り分ける。 -
SG試験では、方式名よりも、IDとパスワードをどう扱っているかを見る。