现代身份认证与访问控制

共 27 题
#

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 两者工程边界完全相同