51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

证券交易系统需要满足等保三级要求,并保留交易记录20年。请设计系统的安全架构,包括身份认证、访问控制、审计日志设计,并说明如何确保日志的不可篡改性和长期存储。

上海证券交易所A05难度:中等

答案

1) 【一句话结论】

针对证券交易系统等保三级合规与20年日志保留需求,核心是通过多因素身份认证、动态访问控制(ABAC+RBAC)、不可篡改的哈希链日志系统,结合对象存储的冷热分层存储,确保身份安全、权限精细控制及日志的长期完整性与不可篡改性。

2) 【原理/概念讲解】

  • 身份认证:需采用多因素认证(MFA),如密码+硬件令牌(如TOTP动态验证码),类比“开门需钥匙(密码)+门禁卡(令牌)”,双重验证防止单点故障。
  • 访问控制:结合基于角色的访问控制(RBAC)与基于属性的访问控制(ABAC),RBAC将用户分配到角色(如“交易员”“风控专员”),ABAC根据用户属性(如风险等级)、资源属性(如交易类型)、环境属性(如时间、设备)动态授权,类比“公司不同部门人员权限不同,财务部仅能操作财务数据”。
  • 审计日志:采用哈希链(或区块链)技术实现不可篡改,即每条日志记录的哈希值与上一条日志的哈希值链接,篡改任一记录都会导致链式验证失败;同时结合**写前日志(WAL)**确保日志写入的原子性。

3) 【对比与适用场景】

身份认证方法对比

方法定义特性使用场景注意点
密码用户设置的字符序列便捷,但易被破解普通用户登录需满足复杂度要求(如长度、字符类型),定期更换
硬件令牌(TOTP)生成动态验证码(时间同步)不可复用,时间同步高安全场景(如交易系统登录)需用户携带硬件设备,成本较高
生物识别(指纹/人脸)生物特征验证无需记忆,唯一性移动端或高安全入口可能受环境干扰(如指纹潮湿),需备用认证方式

访问控制模型对比

模型定义特性使用场景注意点
RBAC用户→角色→权限绑定简单,权限集中管理企业内部系统(如员工权限)角色定义需合理,避免权限过宽(如“交易员”角色不能访问风控数据)
ABAC权限基于用户属性、资源属性、环境属性动态,灵活需复杂权限场景(如金融交易,根据用户风险等级、交易时间、设备)属性管理复杂,计算开销大(需实时计算权限)

4) 【示例】

身份认证流程伪代码(多因素验证)

# 用户提交登录信息:用户名、密码、TOTP码
user_input = {"username": "trader1", "password": "P@ssw0rd", "totp": "123456"}

# 1. 验证密码
user = db.query("users", {"username": user_input["username"]})
if not verify_password(user["password"], user_input["password"]):
    raise Exception("密码错误")

# 2. 验证TOTP码(时间同步)
totp = generate_totp(user["secret"], now())
if totp != user_input["totp"]:
    raise Exception("验证码错误")

# 3. 记录登录日志(哈希链)
log_entry = {
    "timestamp": now(),
    "user": user_input["username"],
    "method": "MFA",
    "status": "success"
}
# 计算日志哈希值,与上一条日志哈希值链接
log_hash = calculate_hash(log_entry)
append_to_hash_chain(log_hash, log_entry)

日志存储示例(冷热分层)

  • 热数据(近1年):写入关系型数据库(如MySQL),启用写前日志(WAL),定期备份至对象存储(如阿里云OSS标准存储)。
  • 冷数据(1-20年):将日志文件(JSON格式)上传至OSS归档存储,设置生命周期策略(如1年后自动迁移至冷存储)。
  • 不可篡改验证:在写入日志时,计算日志内容的哈希值,与哈希链的最后一个哈希值链接,形成链式结构(如哈希链第n条记录的哈希值包含第n-1条记录的哈希值)。

5) 【面试口播版答案】

“面试官您好,针对证券交易系统等保三级和20年日志保留需求,我的设计思路是:首先,身份认证采用多因素(密码+硬件令牌TOTP),确保登录安全;访问控制采用ABAC+RBAC模型,结合用户角色、交易类型、时间等动态授权;审计日志设计为不可篡改的哈希链,同时结合对象存储的冷热分层,满足长期存储。具体来说,身份认证流程是用户输入密码后,系统通过TOTP验证码二次确认,登录事件写入哈希链日志;日志存储方面,热数据(近1年)存入数据库WAL,冷数据(1-20年)上传至对象存储归档,确保数据完整性和长期可用性。这样既满足等保三级对身份认证、访问控制的要求,又保证了日志的不可篡改和20年保留。”

6) 【追问清单】

  1. 如何处理日志的实时审计和查询效率?

    • 回答要点:热数据用数据库索引优化查询,冷数据通过对象存储的检索接口(如S3的GetObject)支持长期查询,同时采用日志聚合工具(如ELK)实现实时分析。
  2. 如果日志存储成本过高,如何优化?

    • 回答要点:采用冷热分层存储,热数据用高性价比存储(如S3标准),冷数据用低成本归档存储,同时压缩日志文件(如gzip),减少存储空间。
  3. 如何确保日志的不可篡改不被内部人员篡改?

    • 回答要点:采用数据库的写前日志(WAL)和哈希链技术,同时日志存储在不可被直接修改的存储系统(如对象存储),结合定期异地备份策略。
  4. 如果系统需要支持高并发交易,身份认证和访问控制如何保证性能?

    • 回答要点:身份认证用Redis缓存用户认证状态,减少数据库查询;访问控制将常用权限缓存,动态权限通过API网关快速计算,确保低延迟。
  5. 等保三级中,日志保留20年的具体技术实现,比如数据库是否支持?

    • 回答要点:关系型数据库(如MySQL)存储周期有限,因此采用对象存储的冷热分层,结合数据归档策略,确保20年存储,同时满足等保三级对日志完整性和不可篡改的要求。

7) 【常见坑/雷区】

  1. 忽略多因素认证的便捷性,仅说密码,导致安全但用户体验差。
  2. 访问控制只说RBAC,未考虑动态权限(ABAC),不符合金融交易的高安全需求。
  3. 日志不可篡改仅说数据库事务,未采用链式结构或区块链,无法满足长期完整性要求。
  4. 长期存储仅考虑数据库,未采用对象存储的冷热分层,导致成本过高。
  5. 未说明日志的备份和恢复策略(如异地备份),不符合等保三级对日志完整性的要求。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1