面试题答案
一键面试认证
- 基于Token认证:服务之间通过颁发和验证Token来确认对方身份。例如,使用JSON Web Tokens(JWT),它包含了用户或服务的身份信息及签名,接收方可以验证签名以确认Token的真实性和未被篡改。
- 双向TLS(mTLS)认证:服务端和客户端都持有证书,在建立连接时相互交换并验证证书,确认真实身份。这能有效防止中间人攻击,因为攻击者无法伪造合法证书。
授权
- 基于角色的访问控制(RBAC):为不同的服务或用户分配角色,每个角色具有特定的权限集合。例如,某些服务只能读取数据,而另一些服务具有读写权限,通过判断服务或用户的角色来决定是否允许其访问特定资源。
- 基于属性的访问控制(ABAC):根据服务或用户的属性,如服务所在的区域、运行环境等,结合资源的属性来进行授权决策。比如,只有运行在特定安全区域的服务才能访问敏感数据。
加密
- 传输层加密:使用TLS(Transport Layer Security)协议,对服务之间传输的数据进行加密。TLS通过握手过程协商加密算法和密钥,确保数据在传输过程中不被窃取或篡改。
- 应用层加密:在应用内部对敏感数据进行加密处理,即使数据在传输过程中被截获,由于应用层加密,攻击者也无法获取明文信息。例如,使用特定的加密算法对关键业务数据进行加密后再发送。
流量监控与审计
- 流量监控:通过服务网格中的代理收集服务间的流量信息,分析流量模式、速率等,以检测异常流量,如恶意的大量请求,及时发现潜在的安全威胁。
- 审计:记录服务间通信的关键信息,如请求时间、来源、目的、操作等,用于事后的安全分析和问题追溯,帮助发现安全漏洞和违规行为。