面试题答案
一键面试常用用户认证机制及其原理、优缺点
-
Kerberos认证机制
- 工作原理:Kerberos基于客户端 - 服务器模型,采用对称密钥加密技术。客户端向认证服务器(AS)发送请求,AS验证客户端身份后,发放包含会话密钥的票据授予票据(TGT)。客户端使用TGT向票据授予服务器(TGS)请求服务票据(ST),TGS验证TGT并发放ST。客户端携带ST访问服务(如HBase共享页面),服务端通过与KDC(密钥分发中心,包含AS和TGS)交互验证ST,确认客户端身份。
- 优点:
- 安全性高:使用对称密钥加密,对通信双方进行身份验证,防止中间人攻击。
- 分布式环境适用:适用于大规模分布式系统,如Hadoop生态系统。
- 单点登录:用户一次登录,可访问多个支持Kerberos的服务。
- 缺点:
- 部署和管理复杂:需要配置和维护KDC,涉及密钥管理、时钟同步等复杂操作。
- 性能开销:加密和解密操作增加系统性能开销。
-
简单身份验证和安全层(SASL)
- 工作原理:SASL为网络协议提供通用的身份验证框架。它允许客户端和服务器协商使用的认证机制(如PLAIN、DIGEST - MD5等)。例如,使用PLAIN机制时,客户端直接向服务器发送用户名和密码(通常进行Base64编码),服务器验证其正确性。若使用DIGEST - MD5机制,客户端和服务器通过挑战 - 响应方式,基于MD5哈希算法验证身份,避免明文传输密码。
- 优点:
- 灵活性高:支持多种认证机制,可根据需求选择合适的方式。
- 易于集成:能方便地集成到各种网络应用中,包括HBase。
- 缺点:
- 部分机制安全性有限:如PLAIN机制传输的密码易被截获,安全性不如Kerberos。
- 依赖具体机制:不同认证机制的安全性和性能差异较大,需谨慎选择。
-
基于令牌(Token)的认证
- 工作原理:用户通过身份验证服务器获取令牌(如JSON Web Token,JWT)。令牌包含用户身份信息和相关权限声明,通常使用签名算法进行签名以保证完整性。客户端在请求HBase共享页面时,将令牌包含在请求头中。HBase服务端验证令牌签名的有效性,解析令牌获取用户身份和权限信息,确认请求是否合法。
- 优点:
- 轻量级:令牌格式简单,传输开销小。
- 无状态:服务端无需存储用户会话状态,易于扩展。
- 跨域友好:方便在不同域的服务间传递身份信息。
- 缺点:
- 令牌管理:令牌的生成、分发和过期处理需要妥善管理,否则可能导致安全漏洞。
- 依赖外部服务:依赖身份验证服务器生成和验证令牌,若该服务器故障,可能影响认证流程。