MST

星途 面试题库

面试题:微服务架构中如何应对RPC的中间人攻击并加固安全机制

假设你负责的微服务架构大量使用RPC进行服务间通信,描述中间人攻击可能对RPC造成的威胁,并详细说明至少三种可以有效应对中间人攻击、加固RPC安全机制的技术手段及原理。
48.7万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试

中间人攻击对RPC造成的威胁

  1. 数据篡改:中间人可以拦截RPC请求与响应,修改其中的数据,导致服务端执行错误的操作或客户端得到错误的结果。例如修改订单金额、篡改用户权限等。
  2. 信息泄露:截取RPC通信中的敏感信息,如用户密码、数据库连接字符串等,从而导致信息被窃取,造成安全隐患。
  3. 重放攻击:中间人记录合法的RPC请求,之后重新发送这些请求,可能导致重复操作,如重复支付等。
  4. 身份伪造:冒充合法的客户端或服务端,中间人可能向服务端发送恶意请求,或向客户端返回虚假响应,破坏服务的正常运行。

应对中间人攻击、加固RPC安全机制的技术手段及原理

  1. 使用TLS加密
    • 原理:传输层安全协议(TLS)为网络通信提供隐私和数据完整性保障。在RPC通信中,客户端和服务端建立连接时,通过TLS握手协商加密算法和密钥。之后的数据传输都通过该密钥进行加密。中间人即使拦截到数据,由于没有解密密钥,也无法获取数据内容,从而防止数据泄露和篡改。例如,HTTPS就是基于TLS的安全协议,广泛应用于Web通信,同样可用于RPC通信。
  2. 身份认证机制
    • 客户端与服务端双向认证
      • 原理:客户端和服务端在建立连接时,相互验证对方的身份。通常使用数字证书来实现,客户端验证服务端证书的有效性,确认服务端身份;服务端也验证客户端证书,确认客户端身份。比如在基于公钥基础设施(PKI)的体系中,证书由可信的证书颁发机构(CA)签发,通过验证证书链来确认身份的真实性,防止身份伪造。
    • 令牌认证(Token-based authentication)
      • 原理:客户端在请求时携带一个令牌(如JWT,JSON Web Token)。服务端接收到请求后,验证令牌的有效性,包括令牌的签名、有效期等。令牌中包含了客户端的身份信息,只有合法的令牌才能通过验证,从而保证请求来源的合法性,防止中间人冒充客户端发送请求。
  3. 消息完整性校验
    • 使用消息认证码(MAC,Message Authentication Code)
      • 原理:发送方在消息中附加一个MAC值,该值是通过特定的密钥和消息内容计算得出的。接收方使用相同的密钥对接收到的消息进行相同的计算,得到一个新的MAC值,并与接收到的MAC值进行对比。如果两者一致,则说明消息在传输过程中没有被篡改;否则,说明消息已被篡改。常见的MAC算法有HMAC(Hash-based MAC),它结合了哈希函数和密钥,保证消息的完整性,防范数据篡改攻击。
  4. 防重放机制
    • 时间戳
      • 原理:客户端在请求中添加当前的时间戳,服务端接收到请求后,检查时间戳与当前时间的差值是否在合理范围内。如果时间差值过大,说明该请求可能是重放的,服务端拒绝处理该请求。这样可以有效防止重放攻击,因为重放的请求时间戳会与当前时间有较大差异。
    • 随机数(Nonce)
      • 原理:客户端每次请求生成一个唯一的随机数,服务端记录已处理过的随机数。当接收到新的请求时,检查随机数是否已存在。如果存在,说明是重放请求,拒绝处理;如果不存在,则处理请求并记录该随机数。通过这种方式,保证每个请求的唯一性,避免重放攻击。