説明
HTTP Digestは、パスワードをそのまま送らないチャレンジ・レスポンス方式の認証です。ただし、HTTP本文は暗号化されず、弱いパスワードは取得された認証用の値から推測されるおそれがあります。
想定される影響
HTTPSを使わないと、リクエストやレスポンスの内容が漏えいする可能性があります。弱いパスワードが推測されると、アカウントになりすまされるおそれもあります。
対処方法
HTTPS、強いパスワード、サポートされている安全なアルゴリズムを使用してください。サーバーとクライアントのDigest対応を確認し、必要な権限委譲や互換性を満たせない場合はOAuth2などの代替方式を検討してください。
例
次の抜粋では、DigestからOAuth2に変更する選択肢を示しています。Digestの構成が常に不適切なわけではなく、変更には実際のサーバーとクライアントの対応が必要です。どちらの方式でもAPI通信はHTTPSで保護してください。
変更前
json
{
"openapi": "3.0.0",
"components": {
"securitySchemes": {
"petstore_auth": {
"type": "http",
"scheme": "digest"
}
}
}
}
変更後
json
{
"openapi": "3.0.0",
"components": {
"securitySchemes": {
"petstore_auth": {
"type": "oauth2",
"flows": {
"authorizationCode": {
"authorizationUrl": "https://example.com/api/oauth/dialog",
"tokenUrl": "https://example.com/api/oauth/token",
"scopes": {
"read:pets": "read your pets"
}
}
}
}
}
}
}