
1) 【一句话结论】:银行系统需通过分层数据加密(传输、存储、数据库)与细粒度访问控制(RBAC+ABAC),结合银保监会等保2.0及金融安全标准,实现数据全生命周期安全,满足监管合规要求。
2) 【原理/概念讲解】:数据加密分为传输加密、存储加密、完整性验证。传输加密用TLS/SSL(如TLS 1.3,提供加密、认证、完整性),类比“数据在传输路上套上加密锁,防止被窃听或篡改”;存储加密用对称加密(如AES-256),密钥由硬件安全模块(HSM)管理,类比“数据存入保险柜,用密码锁(密钥)锁住,只有授权人员(HSM)能开”;访问控制分静态(RBAC,基于角色)和动态(ABAC,基于属性),RBAC将用户分配到角色,角色绑定权限(如柜员只能查询账户,管理员能修改系统),ABAC根据用户属性(如部门、岗位)动态调整权限,类比“银行柜员有固定权限(角色),但临时调岗时,权限可按新岗位属性(ABAC)调整”。
3) 【对比与适用场景】:
| 特性 | 对称加密(如AES) | 非对称加密(如RSA) | 哈希算法(如SHA-256) |
|---|---|---|---|
| 加密解密密钥 | 同一密钥 | 公钥加密,私钥解密 | 无密钥,生成固定长度摘要 |
| 速度 | 快,适合大数据 | 慢,适合密钥交换 | 快,用于数据完整性验证 |
| 使用场景 | 数据存储加密(数据库字段) | 传输密钥交换(TLS握手) | 密码存储(加盐哈希)、数字签名 |
| 注意点 | 密钥管理复杂(需安全存储) | 公钥分发复杂(需证书) | 需要抗碰撞性(防止伪造) |
4) 【示例】:以用户登录及账户查询为例:
POST /api/login HTTP/1.1
Host: bank.example.com
Content-Type: application/json
Authorization: Basic base64(用户名:密码) # TLS加密传输
{
"username": "user1",
"password": "hashed_password" # 客户端已用BCrypt加盐哈希
}
数据库存储(简化):
CREATE TABLE users (
id INT PRIMARY KEY,
username VARCHAR(50),
password_hash VARCHAR(255), -- AES-256加密后存储
role VARCHAR(20) -- 角色:柜员/管理员
);
5) 【面试口播版答案】:面试官您好,针对银行系统数据加密和访问控制的设计,核心是遵循银保监会等保2.0及金融行业安全标准,采用分层加密与细粒度访问控制。具体来说,数据传输用TLS 1.3加密,确保网络传输安全;数据存储采用AES-256加密,密钥由硬件安全模块(HSM)管理;数据完整性用SHA-256哈希,并加盐存储密码。访问控制方面,采用RBAC模型,按角色(如柜员、管理员)分配权限,同时结合ABAC策略,根据用户属性(如部门、岗位)动态调整权限。这样既能满足监管合规要求,又能保障数据安全。
6) 【追问清单】:
7) 【常见坑/雷区】: