情報処理安全確保支援士試験 2012年 秋期 午前220


HTTPの認証機能を利用するクライアント側の処理として,適切なものはどれか。
ダイジェスト認証では,利用者IDとパスワードを“:“で連結したものを,MD5を使ってエンコードしAuthorizationヘッダで指定する。
ダイジェスト認証では、利用者IDとパスワードを“.”で連結したものを,SHAを使ってエンコードしAuthorizationヘッダで指定する。
ベーシック認証では,利用者IDとパスワードを“:”で連結したものを,BASE64でエンコードしAuthorizationヘッダで指定する。(正解)
ベーシック認証では,利用者IDとパスワードを“:”で連結したものを,エンコードせずにAuthorizationヘッダで指定する。

解説

HTTPの認証機能を利用するクライアント側の処理【午前2 解説】

要点まとめ

  • 結論:ベーシック認証では利用者IDとパスワードを「:」で連結し、BASE64でエンコードしてAuthorizationヘッダに指定します。
  • 根拠:HTTPベーシック認証の仕様(RFC 7617)により、認証情報は「ユーザ名:パスワード」の形式でBASE64エンコードされます。
  • 差がつくポイント:ダイジェスト認証とベーシック認証の違いを正確に理解し、エンコード方法や連結文字の違いを押さえることが重要です。

正解の理由

選択肢ウは、ベーシック認証のクライアント側処理を正確に表しています。ベーシック認証では、ユーザIDとパスワードを「:」で連結し、その文字列をBASE64でエンコードしてAuthorizationヘッダにセットします。これにより、サーバはAuthorizationヘッダをデコードして認証情報を取得します。

よくある誤解

ダイジェスト認証とベーシック認証の違いを混同し、エンコード方法や連結文字を誤って覚えてしまうことが多いです。特に、ベーシック認証でMD5やSHAを使うという誤解がよく見られます。

解法ステップ

  1. HTTP認証の種類(ベーシック認証とダイジェスト認証)を確認する。
  2. ベーシック認証は「ユーザID:パスワード」をBASE64エンコードする仕様であることを思い出す。
  3. ダイジェスト認証はMD5ハッシュを用いるが、連結文字や処理方法が異なることを理解する。
  4. 選択肢の記述と仕様を照らし合わせて正しいものを選ぶ。

選択肢別の誤答解説

  • ア: ダイジェスト認証はMD5を使うが、「:」で連結した文字列をそのままMD5でエンコードするわけではなく、nonceやリクエスト情報も含めた複雑なハッシュ計算を行います。
  • イ: ダイジェスト認証で「.」で連結しSHAを使うのは誤りです。SHAは標準仕様では使われず、連結文字も「:」が一般的です。
  • ウ: ベーシック認証の正しい処理を示しており、正解です。
  • エ: ベーシック認証で認証情報をエンコードせずに送信することはなく、必ずBASE64エンコードが必要です。

補足コラム

HTTP認証には主にベーシック認証とダイジェスト認証があります。ベーシック認証は実装が簡単ですが、BASE64は暗号化ではなく単なるエンコードなので安全性は低いです。一方、ダイジェスト認証はハッシュを用いてパスワードを直接送信しないため、より安全性が高いとされています。

FAQ

Q: ベーシック認証のBASE64エンコードは安全ですか?
A: BASE64は暗号化ではなく単なるエンコードなので、通信が暗号化されていない場合は盗聴のリスクがあります。HTTPSと併用が推奨されます。
Q: ダイジェスト認証はどのようにパスワードを保護していますか?
A: パスワードを直接送信せず、nonceやリクエスト情報と組み合わせたMD5ハッシュを送信することで安全性を高めています。

関連キーワード: HTTP認証, ベーシック認証, ダイジェスト認証, Authorizationヘッダ, BASE64エンコード, MD5ハッシュ
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ