ネットワークスペシャリスト 2012年 午前2 問17
問題文
HTTPの認証機能を利用するクライアント側の処理として、適切なものはどれか。
選択肢
ア:ダイジェスト認証では、利用者IDとパスワードを“:”で連結したものを、MD5を使ってエンコードしAuthorizationヘッダで指定する。
イ:ダイジェスト認証では、利用者IDとパスワードを“:”で連結したものを、SHAを使ってエンコードしAuthorizationヘッダで指定する。
ウ:ベーシック認証では、利用者IDとパスワードを“:”で連結したものを、BASE64でエンコードしAuthorizationヘッダで指定する。(正解)
エ:ベーシック認証では、利用者IDとパスワードを“:”で連結したものを、エンコードせずにAuthorizationヘッダで指定する。
HTTPの認証機能を利用するクライアント側の処理【午前2 解説】
要点まとめ
- 結論:ベーシック認証では利用者IDとパスワードを「:」で連結し、BASE64でエンコードしてAuthorizationヘッダに指定します。
- 根拠:HTTPベーシック認証の仕様はRFC 7617で定められており、認証情報はBASE64エンコードで送信されます。
- 差がつくポイント:ダイジェスト認証はMD5ハッシュを用い、SHAやエンコードなしは誤りである点を正確に理解することが重要です。
正解の理由
ベーシック認証は、ユーザ名とパスワードを「ユーザ名:パスワード」の形式で連結し、これをBASE64でエンコードしてHTTPヘッダのAuthorizationにセットします。これにより、認証情報が簡単に送信されますが、暗号化ではないため安全性は低いです。
一方、ダイジェスト認証はMD5ハッシュを用いて認証情報を安全に送信する方式であり、SHAやエンコードなしは仕様に合致しません。
一方、ダイジェスト認証はMD5ハッシュを用いて認証情報を安全に送信する方式であり、SHAやエンコードなしは仕様に合致しません。
よくある誤解
- ベーシック認証の認証情報は暗号化されていると誤解されがちですが、実際はBASE64エンコードであり暗号化ではありません。
- ダイジェスト認証でSHAを使うという選択肢は誤りで、標準的にはMD5が使われます。
解法ステップ
- HTTP認証の種類(ベーシック認証、ダイジェスト認証)を確認する。
- ベーシック認証は「ユーザ名:パスワード」をBASE64エンコードする仕様であることを思い出す。
- ダイジェスト認証はMD5ハッシュを用いることを理解する。
- 選択肢の説明と仕様を照らし合わせて正しいものを選ぶ。
選択肢別の誤答解説
- ア: ダイジェスト認証はMD5を使うが、利用者IDとパスワードを単純に連結してMD5エンコードするわけではなく、チャレンジレスポンス方式で複雑なハッシュ計算を行うため誤り。
- イ: ダイジェスト認証はSHAではなくMD5を使用するため誤り。
- ウ: ベーシック認証の正しい処理であり、利用者IDとパスワードを「:」で連結しBASE64エンコードしてAuthorizationヘッダに指定する。
- エ: ベーシック認証で認証情報をエンコードせずに送信することは仕様違反であり誤り。
補足コラム
HTTP認証には主にベーシック認証とダイジェスト認証があります。ベーシック認証は実装が簡単ですが、認証情報がBASE64エンコードされているだけで暗号化されていないため、通信経路が暗号化されていない場合は盗聴のリスクがあります。ダイジェスト認証はMD5ハッシュを用いて認証情報を安全に送信しますが、近年はTLS/SSLによる通信の暗号化が主流となり、これらの認証方式は補助的に使われています。
FAQ
Q: ベーシック認証のBASE64エンコードは暗号化ですか?
A: いいえ、BASE64は単なるエンコード方式であり暗号化ではありません。誰でもデコード可能です。
A: いいえ、BASE64は単なるエンコード方式であり暗号化ではありません。誰でもデコード可能です。
Q: ダイジェスト認証でSHAは使われますか?
A: 標準的なダイジェスト認証はMD5を使用します。SHAは一般的ではありません。
A: 標準的なダイジェスト認証はMD5を使用します。SHAは一般的ではありません。
Q: ベーシック認証は安全ですか?
A: 通信がTLS/SSLで保護されていない場合は安全とは言えません。認証情報が簡単に盗聴される可能性があります。
A: 通信がTLS/SSLで保護されていない場合は安全とは言えません。認証情報が簡単に盗聴される可能性があります。
関連キーワード: HTTP認証、ベーシック認証、ダイジェスト認証、Authorizationヘッダ、BASE64エンコード、MD5ハッシュ

\ せっかくなら /
ネットワークスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

