# 1. OAuth 2.0 授权码流程 + PKCE(RFC 7636)防止授权码拦截的工程机制? A PKCE 用 code_verifier/code_challenge 绑定授权码,拦截者无 verifier 无法兑换 token,从而防御授权码拦截 ✓ 正确答案 B PKCE 用 client_secret 防止拦截 C PKCE 只用于机密客户端 D 授权码流程无需 PKCE
# 2. OpenID Connect(OIDC)在 OAuth 2.0 之上的身份层,ID Token 签名、nonce、aud、iss 验证的工程要点如何? A 需验证签名、iss、aud、nonce、exp 等,确保来源可信、受众正确、防重放与过期 ✓ 正确答案 B 只需验证签名 C nonce 用于标识受众 D aud 用于防重放
# 3. JWT 与 JWS/JWE 的安全设计,alg=none 攻击、密钥混淆(Algorithm Confusion)、kid 注入的防御实践如何? A alg=none 是安全的 B 算法混淆不需防御 C kid 注入无风险 D 需防御 alg=none、算法混淆与 kid 注入,核心是服务端固定算法白名单、拒绝 none、严格校验密钥与声明 ✓ 正确答案
# 4. WebAuthn(FIDO2)无密码认证的工程实现,注册、认证、Attestation、Assertion 流程与硬件密钥(YubiKey)集成如何? A 私钥保存在服务器 B WebAuthn 用 challenge 绑定 origin,authenticator 私钥不出硬件并签名 Assertion,服务器用注册公钥验签,抗钓鱼 ✓ 正确答案 C challenge 可重复用 D Attestation 用于完成认证
# 5. Passkey(基于 FIDO2/WebAuthn)的跨设备同步,iCloud Keychain、1Password、Bitwarden 的实现差异与跨平台兼容如何? A Passkey 只能存于单设备 B Passkey 不支持跨设备 C 所有 Passkey 实现相同 D Passkey 同步实现因平台而异:iCloud/Google 绑定生态同步,第三方管理器用加密保险库同步,跨平台兼容依赖平台认证器支持 ✓ 正确答案
# 6. JWT 的"算法混淆"(algorithm confusion)攻击与防御 A 算法混淆是把 RS256 改为 ES256 即可 B 公钥不公开,攻击者无法利用 C 算法混淆是攻击者把非对称算法改为对称算法,用公开公钥作 HMAC 密钥伪造签名,防御是服务端固定算法白名单并绑定密钥类型 ✓ 正确答案 D 算法混淆不影响 JWT 安全
# 7. OAuth 2.0(RFC 6749)的 Authorization Code、Client Credentials、Device Code 授权类型 A 三种授权类型都需用户交互 B Device Code 需要浏览器 C Client Credentials 用于用户授权 D Authorization Code 用于有用户 Web/移动,Client Credentials 用于 M2M 无用户,Device Code 用于无浏览器设备,按交互场景选择 ✓ 正确答案
# 8. OIDC 的"ID Token"签名验证与 nonce 防重放 A nonce 用于验证签名 B 签名验证可省略 C 客户端用 OP 公钥验证签名,并用 nonce 回显校验防重放,配合 iss/aud/exp 验证 ✓ 正确答案 D nonce 可多次使用
# 9. WebAuthn 在 SAML、FIDO2、CTAP 的协议栈 A WebAuthn 就是 CTAP B WebAuthn 处理硬件传输 C SAML 是 FIDO2 的一部分 D FIDO2 由 WebAuthn(浏览器层)与 CTAP(authenticator 传输层)组成,SAML 是独立的应用层身份联邦协议,可与 WebAuthn 互补 ✓ 正确答案
# 10. WebAuthn attestation 验证,basic、self、attca、anonca 的工程信任链如何建立? A self attestation 有明确的第三方信任链 B anonca 不提供任何真实性证明 C basic 用设备证书证明、attca 用 CA 证书,anonca 用匿名 CA 保护隐私,self 自证信任度低 ✓ 正确答案 D basic attestation 不涉及任何证书
# 11. WebAuthn 的 assertion ceremony,challenge→authenticator→signature→verification 的工程语义如何? A 服务端生成随机 challenge,authenticator 用私钥签名,服务端用公钥验证并核对 challenge 与计数器,防止重放与克隆 ✓ 正确答案 B challenge 可以固定不变 C 服务端不需要验证 challenge D assertion 不需要签名
# 12. mTLS(双向 TLS)在服务网格(Service Mesh)与零信任网络中的部署? A mTLS 只验证服务端身份 B mTLS 双向认证,服务网格由 sidecar 自动注入证书,零信任用其实现"永不信任、始终验证" ✓ 正确答案 C mTLS 不加密流量 D 零信任不依赖 mTLS
# 13. SCIM(System for Cross-domain Identity Management)在企业身份同步中的工程价值? A SCIM 是加密协议,用于保护身份数据 B SCIM 与身份生命周期无关 C SCIM 只能同步密码 D SCIM 用 RESTful API 与标准 schema 同步用户/组的全生命周期,实现跨系统身份自动化 ✓ 正确答案
# 14. JWS(JSON Web Signature)、JWE(JSON Web Encryption)、JWK(JSON Web Key)的工程 A JWS 用于加密,JWE 用于签名 B JWK 是加密算法 C JWS 是签名、JWE 是加密、JWK 是密钥的 JSON 表示,共同构成 JOSE 框架 ✓ 正确答案 D JWS 不提供完整性
# 15. JWT 的"短 token + 刷新 token"模式 A access token 应长期有效 B 短命 access token 降低被盗危害,refresh token 仅用于换新并支持轮换,是现代 OAuth/OIDC 标准做法 ✓ 正确答案 C refresh token 用于直接访问资源 D 二者无区别
# 16. JWT 的算法声明(alg),HS256、RS256、ES256、EdDSA 的差异 A HS256 是非对称算法 B EdDSA 是 HMAC C 所有 alg 都使用同一密钥 D RS256 用 RSA 非对称签名公钥可公开验证,ES256 用 ECDSA,EdDSA 是现代推荐,并应禁止 alg=none ✓ 正确答案
# 17. JWT(JSON Web Token)的 header、payload、signature 三段式结构 A signature 用于加密 payload B header 记录算法与类型,payload 是声明,signature 对前两段签名以保完整性与可验证性 ✓ 正确答案 C payload 是加密的,无法读取 D JWT 三段用冒号分隔
# 18. OAuth 2.1(草案)的整合,PKCE 强制、Implicit 弃用、Redirect URI 严格化 A OAuth 2.1 弃用 PKCE B Redirect URI 可以任意匹配 C Implicit 流程在 OAuth 2.1 中更安全 D OAuth 2.1 强制授权码流程用 PKCE、弃用 Implicit、严格校验 Redirect URI,整合安全最佳实践 ✓ 正确答案
# 19. OIDC(OpenID Connect)的 ID Token、UserInfo、Discovery A ID Token 是 OAuth 授权码 B ID Token 是签名的身份 JWT,UserInfo 返回用户资料,Discovery 提供端点元数据 ✓ 正确答案 C UserInfo 用于认证身份 D Discovery 返回用户密码
# 20. PKCE(Proof Key for Code Exchange,RFC 7636)的 code_verifier/code_challenge A code_challenge 与 code_verifier 无关 B PKCE 不防授权码拦截 C code_verifier 由授权服务器生成 D 客户端生成随机 code_verifier 并发送其哈希 code_challenge,换 token 时用 code_verifier 验证,防止授权码被拦截者兑换 ✓ 正确答案
# 21. Passkeys 的"设备同步"(synced)与"设备绑定"(device-bound) A synced 私钥同步云端多设备可用性好,device-bound 私钥绑定单一硬件安全性更高,需按场景权衡 ✓ 正确答案 B synced passkey 绑定单一硬件 C 两者私钥都不在预期设备 D device-bound 可跨设备自动同步
# 22. WebAuthn 的 authenticator,包括 YubiKey、Touch ID、Windows Hello、Passkeys A YubiKey 是平台 authenticator,Touch ID 是漫游必选 B 私钥由服务端保存 C YubiKey 是漫游 authenticator,Touch ID/Windows Hello 是平台 authenticator,私钥都在 authenticator 内不外泄 ✓ 正确答案 D WebAuthn 不支持生物识别
# 23. JWT 的"撤销"(revocation),黑名单、刷新、密钥轮换如何实现 A JWT 一经签发可随时主动撤销 B 可通过 jti 黑名单、撤销 refresh token、轮换签名密钥等方式实现撤销,常结合短 access token ✓ 正确答案 C 无状态 JWT 无需任何撤销 D 密钥轮换不影响已签发 token
# 24. OAuth 的"refresh token rotation"与 family A rotation 使 old refresh token 可重复使用 B family 是全局共享的单个 token C rotation 每次换新授权时作废旧 refresh token,复用检测可撤销整个 family,显著提升 token 安全 ✓ 正确答案 D rotation 不检测复用
# 25. JWT 的 jti(JWT ID)与防重放 A jti 只要存在就自动防重放 B jti 唯一标识 token,服务端记录已用 jti 可检测重放,也可用于黑名单撤销 ✓ 正确答案 C jti 是随机明文,无任何作用 D jti 用于加密
# 26. WebAuthn 的 attestation 验证与"类型" A attestation 证明凭证由可信 authenticator 生成,类型有 basic/self/attca/anonca,服务端按信任需求决定是否严格校验 ✓ 正确答案 B attestation 与设备无关 C 所有 attestation 都有相同信任链 D attestation 只用于认证不用于注册
# 27. Passkeys 的 synced(Apple iCloud Keychain、Google Password Manager)与 device-bound 的工程边界? A synced 锚定云账户+设备解锁、跨设备可用,device-bound 锚定单硬件、安全性更高,两者可共存并用于不同场景 ✓ 正确答案 B synced 私钥锚定单一硬件 C device-bound 可云同步 D 两者工程边界完全相同