6. Security Considerations (安全考虑)
6.1. TLS Requirements (TLS 要求)
实现必须 (MUST) 支持 TLS. 应该实现哪个版本将随时间变化,并取决于实现时的广泛部署和已知的安全漏洞. 授权服务器必须 (MUST) 支持 TLS 版本 1.2 [RFC5246],并可以 (MAY) 支持满足其安全要求的其他 TLS 机制. 使用 TLS 时,客户端必须 (MUST) 根据 RFC 6125 [RFC6125] 执行 TLS/SSL 服务器证书检查. 实现安全考虑可以在 "Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)" [BCP195] 中找到.
为了防止信息泄露和篡改,必须 (MUST) 使用提供机密性和完整性保护的密码套件 (ciphersuite) 的 TLS 来应用机密性保护.
6.2. Impersonation Attacks (冒充攻击)
如第 6.1 节所述,在发出授权服务器元数据请求时,客户端必须 (MUST) 执行 TLS 证书检查. 检查服务器证书对发行者标识符 URL 有效可以防止中间人攻击 (man-in-middle attacks) 和基于 DNS 的攻击. 这些攻击可能导致客户端被欺骗使用攻击者的密钥和端点,从而能够冒充合法的授权服务器. 如果攻击者能够做到这一点,他们就可以使用他们冒充的授权服务器访问受影响的客户端有权访问的资源.
攻击者还可能试图通过发布包含 "issuer" 声明的元数据文档来冒充授权服务器,该声明使用被冒充的授权服务器的发行者标识符 URL,但使用自己的端点和签名密钥. 如果被客户端接受,这将使其能够冒充该授权服务器. 为了防止这种情况,客户端必须 (MUST) 确保它用作元数据请求前缀的发行者标识符 URL 与客户端接收的授权服务器元数据文档中 "issuer" 元数据值的值完全匹配.
6.3. Publishing Metadata in a Standard Format (以标准格式发布元数据)
以标准格式发布关于授权服务器的信息使合法客户端和攻击者都更容易使用授权服务器. 无论授权服务器是以临时方式还是以本规范定义的标准格式发布其元数据,都应该应用相同的防御措施来抵御可能使用此信息发起的攻击.
6.4. Protected Resources (受保护的资源)
对所有用例安全地确定与授权服务器一起使用的适当受保护资源超出了本规范的范围. 本规范假设客户端有办法确定与授权服务器一起使用的适当受保护资源,并且客户端为每个授权服务器使用正确的元数据. 实现者需要注意,如果客户端使用了不适当的受保护资源,攻击者可能能够充当有效受保护资源的中间人代理,而不会被授权服务器或客户端检测到.
确定与授权服务器一起使用的适当受保护资源的方法通常取决于应用程序. 例如,授权服务器的发行者标识符和受保护资源的 URL 可能都可以从 Web 页面中的元素获取. 它们也可能以应用程序特定的配置数据的形式提供. 如何提供这些信息是超出本规范范围的应用程序设计决策.
在某些应用程序中,应用程序将知道用于其资源的授权服务器,并且将有办法验证它具有用于该授权服务器的正确元数据. 例如,应用程序可能使用已知的公钥来验证元数据的签名版本. 当元数据的完整性可以通过这种方式确定时,使用授权服务器的假冒可以被检测到.