产品数据安全架构

一、安全架构

5A方法论指身份认证、授权、访问控制、可审计、资产保护。

CIA是保密性、完整性、可用性。

CIA是目标,5A是技术性手段。

二、身份认证

  •  业务系统应尽可能使用统一的单点登录系统(SSO),而不是各业务系统设计一套身份认证模块。不管访问哪个业务,只用一个身份认证入口。
  • SSO一方面避免系统重复建设,减少工作量。另一方面,可以统一强化用户隐私保护,且可以与HR系统关联,提高离职销户等权限调整操作效率。
  • 用户在SSO输入用户名密码后,SSO验证通过会返回一个ticket,用户其实是用这个ticket访问各个业务系统,业务系统验证ticket无误后,通过Cookie与用户建立会话(session)。
  • 会话管理可以记录用户当前登录的IP、User Agent信息,可以通过校验IP等信息是否发生变化来限制登录。
  • Coolie也需要额外保护,通过httponly和Secure属性,使用HTTP Only可以规避document.cookie获取信息,使用Secure只能通过https传递。Cookie中不要存敏感信息。
  • 对于业务来说,不要做敏感信息二传手,不要收集用户口令。
  • 口令的保护一方面是不能明文存储,且在服务器侧加盐散列,另一方面,用户身份认证必须使用https传输,且用户侧不能直接发送铭文口令。
  • 生物认证口令需要更高强度的保护,不能上传生物识别图像。根据GDPR条款,原则上禁止处理用户生物识别数据。如指纹数据不出手机。生物认证口令的保护不同,一方面是对称加密,另一方面是认证携带时间戳,防止重放攻击。

三、授权

分为基于属性的授权、基于角色的授权、基于ACL的授权。ACL即访问控制列表,更灵活。

授权风险包括:未授权、平行越权、垂直越权、诱导授权、职责不分。

四、访问控制

  • 控制策略包括:基于属性的访问控制、基于角色的访问控制、基于任务的访问控制、基于ACL的访问控制、基于专家知识的访问控制、强制访问控制。
  • 常见的业务安全漏洞及应对措施:
    • 缓冲区溢出,在接收数据前执行边界检查,防止收到超出自身容量的数据。支持应用系统运行的操作系统、开源组件也有可能有这类问题,就需要关注补丁、版本管理。
    • SQL注入,通过参数化查询。select user from userinfo where userid='uname'--' and pword='12345'
    • 遍历查询,身份认证,控制频率和数量、监控告警。

五、资产保护

  • 数据加密存储,除非有运算需求,不然都要加密存储。
  • 加密之后,可以通过添加key来检索。
  • 数据加密首选应用层字段加密,即加密后将密文存入数据库。数据加密密钥每条记录要随机生成,不能明文存储,且要密钥加密密钥来加密,数据加密密钥和密文一同存储。密钥加密密钥每个应用都应不同,且保存在KMS,不随密文一同存储。
  • 数据安全传输,常用https、TLS1.2以上版本加密传输。
  • 数据脱敏展示,应在流出数据接口时就开始脱敏。
posted @ 2024-02-19 22:43  dretrtg  阅读(86)  评论(0)    收藏  举报