RFC 7636 - Proof Key for Code Exchange by OAuth Public Clients
发布日期: 2015年9月
状态: 标准跟踪协议 (Standards Track)
作者: N. Sakimura (Nomura Research Institute), J. Bradley (Ping Identity), N. Agarwal (Google)
摘要 (Abstract)
OAuth 2.0 公共客户端 (Public Clients) 使用授权码许可 (Authorization Code Grant) 时容易受到授权码拦截攻击. 本规范描述了这种攻击以及通过使用代码交换证明密钥 (Proof Key for Code Exchange, PKCE, 发音为 "pixy") 来缓解这种威胁的技术.
目录 (Contents)
- 1. Introduction (简介)
- 1.1 Protocol Flow (协议流程)
- 2. Notational Conventions (符号约定)
- 3. Terminology (术语)
- 3.1 Abbreviations (缩写)
- 4. Protocol (协议)
- 4.1 Client Creates a Code Verifier (客户端创建代码验证器)
- 4.2 Client Creates the Code Challenge (客户端创建代码挑战)
- 4.3 Client Sends the Code Challenge with the Authorization Request (客户端在授权请求中发送代码挑战)
- 4.4 Server Returns the Code (服务器返回代码)
- 4.5 Client Sends the Authorization Code and the Code Verifier to the Token Endpoint (客户端将授权码和代码验证器发送到令牌端点)
- 4.6 Server Verifies code_verifier before Returning the Tokens (服务器在返回令牌之前验证 code_verifier)
- 5. Compatibility (兼容性)
- 6. IANA Considerations (IANA考虑)
- 6.1 OAuth Parameters Registry (OAuth 参数注册表)
- 6.2 PKCE Code Challenge Method Registry (PKCE 代码挑战方法注册表)
- 7. Security Considerations (安全考虑)
- 7.1 Entropy of the code_verifier (code_verifier 的熵)
- 7.2 Protection against Eavesdroppers (防止窃听者)
- 7.3 Salting the code_challenge (为 code_challenge 加盐)
- 7.4 OAuth Security Considerations (OAuth 安全考虑)
- 7.5 TLS Security Considerations (TLS 安全考虑)
- 8. References (参考文献)
- 8.1 Normative References (规范性参考文献)
- 8.2 Informative References (信息性参考文献)
附录 (Appendices)
- Appendix A. Notes on Implementing Base64url Encoding without Padding
- Appendix B. Example for the S256 code_challenge_method
相关资源
- 官方原文: RFC 7636
- 官方页面: RFC 7636 DataTracker
- 勘误表: RFC Editor Errata