第四章 安全基础知识面试:网络协议、加密算法、认证机制、安全模型
本章核心能力画像: 面试官通过这四个维度考察实习生是否具备基础安全防御思维。网络协议侧重攻击面理解,加密算法考察数学与工程平衡,认证机制关注身份与授权,安全模型检验系统性思考。
| 知识域 | 核心问题 | 面试侧重 | 常见出题角度 |
|---|---|---|---|
| 网络协议 | TCP/UDP、HTTP/HTTPS、DNS | 协议漏洞、中间人攻击、加密握手 | 三次握手、HTTPS 证书链、DNS 劫持 |
| 加密算法 | 对称/非对称、哈希、国密 | 算法特性、密钥管理、实际部署 | AES vs RSA、MD5 碰撞、TLS 密码套件 |
| 认证机制 | 密码认证、多因子、OAuth、JWT | 流程安全性、凭据保护、会话管理 | CSRF 与 保护、SSO 实现、密码哈希 |
| 安全模型 | BLP、Biba、Bell–LaPadula、CK | 模型原则、适用场景、局限性 | 机密性与完整性冲突、RBAC 与 ABAC 区别 |
🎯 面试问题:请描述 HTTPS 握手过程,以及为什么不直接使用 HTTP?
示例回答(60 字):
HTTPS 通过 TLS 握手:客户端发起,服务端返回证书,客户端验证后协商会话密钥,之后用对称加密通信。HTTP 明文易被中间人窃听或篡改,HTTPS 通过证书验证身份并加密数据,保障传输机密性与完整性。
可能追问:
- 如果客户端没有内置 CA 根证书,还能验证吗?
- TLS 1.3 相比 1.2 做了什么简化?
- 如何防止 SSL 剥离攻击?
⚠️ 避坑提醒:不要只罗列握手步骤就结束。面试官想看你对证书信任模型、密钥交换安全性有理解。一定要提「证书链验证」和「中间人攻击(例如 Fiddler 代理证书)」。如果没提证书验证,会被认为缺乏工程实践认知。
🎯 面试问题:对称加密和非对称加密的区别?实际中如何选择使用?
示例回答(80 字):
对称加密用同一密钥加解密,速度快但密钥分发不安全;非对称加密用公私钥对,安全分发但慢百倍。实际场景如 HTTPS:先用非对称(RSA)加密协商出的临时对称密钥,之后用 AES 加密流量,兼顾安全与性能。文件加密更常用对称算法。
可能追问:
- RSA 和 ECC 的优缺点?ECC 能取代 RSA 吗?
- 为什么不用非对称加密所有数据?是性能瓶颈吗?
- 国密算法 SM2/SM4 与主流算法的对应关系?
⚠️ 避坑提醒:不要只背定义。面试官希望你结合「混合加密」案例。如果只回答“对称快非对称慢”,缺少应用场景(如 TLS、SSH),会被认为是死记硬背。另外注意区分哈希算法(不可逆)和加密(可逆),避免混淆。
🎯 面试问题:简述基于角色的访问控制(RBAC)和基于属性的访问控制(ABAC)的区别,以及各自适用场景。
示例回答(90 字):
RBAC 通过角色关联权限,用户归属角色,简单易管理,适合角色固定的企业系统。ABAC 基于用户属性、资源属性、环境条件等动态计算,灵活但复杂,适用于多租户云平台。例如 AWS IAM 就支持 ABAC,可以实现“只允许工程师在上班时间修改代码仓库”的细粒度策略。
可能追问:
- RBAC 如何解决角色爆炸问题?
- ABAC 的性能瓶颈在哪里?如何优化?
- 结合 BLP/Biba 模型,访问控制还有哪些经典模型?
⚠️ 避坑提醒:如果只背定义,面试官会认为你缺乏系统设计意识。一定要提“角色爆炸”和“动态属性”这两个关键痛点。另外不要混淆 RBAC 与用户组概念(用户组是静态的,角色可继承)。如果答不上 ABAC 可提及基于策略的 PBAC 作为备选。
💡 面试策略提示: 安全基础知识的考察往往由浅入深。面试初期要展现出清晰的知识脉络,回答时尽量用「原理 + 攻击视角 + 防御建议」三合一结构,让面试官看到你不仅有理论,还有安全意识。例如在讲完 HTTPS 握手后立即指出“如果证书验证不严格可能被中间人用自签名证书冒充”,这样就是加分动作。