面试题答案
一键面试潜在风险分析
- 设备码泄露:
- 风险:设备码若被泄露,恶意用户可利用该码在授权服务器上绕过设备端正常授权流程,直接获取访问令牌,从而访问用户受保护资源。例如,若设备在公共场所连接网络,不法分子通过网络嗅探等手段获取设备码。
- 原因:设备端存储设备码时未进行安全存储,如以明文形式存储在本地文件或内存中;设备网络传输过程中未加密,导致设备码被窃取。
- 中间人攻击:
- 风险:攻击者可在设备与授权服务器、客户端与授权服务器通信过程中截取、篡改消息。比如修改授权请求参数,获取更高权限的访问令牌;或者伪造授权响应,让设备端接受非法的访问令牌。
- 原因:通信过程未采用安全协议,如未使用TLS加密,使得数据在传输过程中易被窥探和篡改;设备端和服务器端对通信对方身份验证机制不完善,无法有效识别中间人冒充的身份。
后端开发应对策略
- 设备码安全存储与传输:
- 技术手段:在设备端生成设备码后,使用加密算法(如AES)对设备码进行加密存储。在传输过程中,采用TLS协议加密通信,确保设备码在网络传输中不被窃取。
- 安全机制:建立设备码有效期机制,设置较短的有效期(如10 - 15分钟),一旦过期,设备码无法用于获取访问令牌。同时,对设备码的使用次数进行限制,如只能使用一次,防止设备码被多次滥用。
- 抵御中间人攻击:
- 技术手段:在通信过程中强制使用TLS协议进行加密,保证数据的保密性和完整性。对设备端和客户端进行严格的身份验证,如采用数字证书进行双向认证。服务器端验证设备端和客户端证书的有效性,设备端和客户端也验证服务器端证书的真实性。
- 安全机制:采用消息验证码(MAC)机制,在消息中添加基于密钥的MAC值。服务器端接收到消息后,重新计算MAC值并与接收到的MAC值进行比对,若不一致则说明消息被篡改,拒绝处理该请求。同时,使用随机数(Nonce)防止重放攻击,每次通信时在消息中包含一个随机生成的Nonce值,服务器端记录已使用的Nonce值,若接收到重复的Nonce值则判定为重放攻击,拒绝该请求。
- 授权请求验证与审计:
- 技术手段:对授权请求中的参数进行严格的合法性验证,如检查授权范围是否符合用户权限、设备信息是否真实等。记录所有授权请求和响应的详细日志,包括请求时间、设备信息、授权范围等。
- 安全机制:建立异常检测机制,通过分析日志数据,检测异常的授权请求模式,如短时间内大量来自同一设备或IP的异常授权请求,及时发现潜在的攻击行为并进行阻断。对授权流程中的关键操作进行审计,确保授权流程符合安全策略和规范。