第四章 安全基础知识面试:网络协议、加密算法、认证机制、安全模型

本章核心能力画像: 面试官通过这四个维度考察实习生是否具备基础安全防御思维。网络协议侧重攻击面理解,加密算法考察数学与工程平衡,认证机制关注身份与授权,安全模型检验系统性思考。
知识域核心问题面试侧重常见出题角度
网络协议TCP/UDP、HTTP/HTTPS、DNS协议漏洞、中间人攻击、加密握手三次握手、HTTPS 证书链、DNS 劫持
加密算法对称/非对称、哈希、国密算法特性、密钥管理、实际部署AES vs RSA、MD5 碰撞、TLS 密码套件
认证机制密码认证、多因子、OAuth、JWT流程安全性、凭据保护、会话管理CSRF 与 保护、SSO 实现、密码哈希
安全模型BLP、Biba、Bell–LaPadula、CK模型原则、适用场景、局限性机密性与完整性冲突、RBAC 与 ABAC 区别
安全基础知识回答框架 1. 定位问题领域 2. 简述核心原理/流程 协议攻击面 算法特性对比 模型原则适用 3. 结合实际举例 + 加固建议 ✅ 加分点:能指出常见误区或真实案例

🎯 面试问题:请描述 HTTPS 握手过程,以及为什么不直接使用 HTTP?

面试官考察点:

  • 是否理解 TLS/SSL 协议栈位置及加密握手流程
  • 能否说清证书验证、对称/非对称密钥交换
  • 是否意识到 HTTP 明文传输的中间人攻击风险

回答框架:

  1. 定位:问的是传输层安全协议(TLS),属于应用层之下的安全层。
  2. 核心步骤:客户端发送 ClientHello → 服务端返回 ServerHello + 证书 → 客户端验证证书 → 生成预主密钥并用公钥加密发送 → 双方用预主密钥生成对称密钥 → 开始加密通信。
  3. 举例 + 加固:企业网站使用 HTTPS 防止密码明文被窃听;即使使用了 HTTPS,仍需注意 TLS 版本、证书有效期、中间人代理证书等风险。

示例回答(60 字):

HTTPS 通过 TLS 握手:客户端发起,服务端返回证书,客户端验证后协商会话密钥,之后用对称加密通信。HTTP 明文易被中间人窃听或篡改,HTTPS 通过证书验证身份并加密数据,保障传输机密性与完整性。

可能追问:

  • 如果客户端没有内置 CA 根证书,还能验证吗?
  • TLS 1.3 相比 1.2 做了什么简化?
  • 如何防止 SSL 剥离攻击?
⚠️ 避坑提醒:不要只罗列握手步骤就结束。面试官想看你对证书信任模型、密钥交换安全性有理解。一定要提「证书链验证」和「中间人攻击(例如 Fiddler 代理证书)」。如果没提证书验证,会被认为缺乏工程实践认知。

🎯 面试问题:对称加密和非对称加密的区别?实际中如何选择使用?

面试官考察点:

  • 算法特性(速度、密钥管理、安全强度)对比
  • 是否理解混合加密(如 TLS 使用 RSA + AES)
  • 能否给出具体场景判断(如文件加密 vs 数字签名)

回答框架:

  1. 定位:区分两种加密类型,各自使用同一个密钥(对称)或公钥/私钥对(非对称)。
  2. 核心对比:对称加密快但密钥分发困难,常见 AES;非对称加密慢但适合密钥交换和数字签名,常见 RSA、ECC。
  3. 举例 + 加固:HTTPS 用非对称交换会话密钥,再用对称加密大量数据;数据库密码存储用哈希(如 bcrypt),而非可逆加密。

示例回答(80 字):

对称加密用同一密钥加解密,速度快但密钥分发不安全;非对称加密用公私钥对,安全分发但慢百倍。实际场景如 HTTPS:先用非对称(RSA)加密协商出的临时对称密钥,之后用 AES 加密流量,兼顾安全与性能。文件加密更常用对称算法。

可能追问:

  • RSA 和 ECC 的优缺点?ECC 能取代 RSA 吗?
  • 为什么不用非对称加密所有数据?是性能瓶颈吗?
  • 国密算法 SM2/SM4 与主流算法的对应关系?
⚠️ 避坑提醒:不要只背定义。面试官希望你结合「混合加密」案例。如果只回答“对称快非对称慢”,缺少应用场景(如 TLS、SSH),会被认为是死记硬背。另外注意区分哈希算法(不可逆)和加密(可逆),避免混淆。

🎯 面试问题:简述基于角色的访问控制(RBAC)和基于属性的访问控制(ABAC)的区别,以及各自适用场景。

面试官考察点:

  • 是否理解访问控制模型的核心原则
  • 能否区分主体、角色、权限、属性等概念
  • 是否了解实际系统中的模型选择(如权限粒度和灵活性)

回答框架:

  1. 定位:属于安全模型中的访问控制范畴,用于决定“谁可以做什么”。
  2. 核心区别:RBAC 将权限授予角色,用户分配角色;ABAC 使用用户、资源、环境等多维度属性动态计算授权。
  3. 举例 + 加固:企业内部系统适合 RBAC(角色少,稳定);云平台或 SaaS 需要细粒度权限时用 ABAC(如只允许上午9-18点访问)。

示例回答(90 字):

RBAC 通过角色关联权限,用户归属角色,简单易管理,适合角色固定的企业系统。ABAC 基于用户属性、资源属性、环境条件等动态计算,灵活但复杂,适用于多租户云平台。例如 AWS IAM 就支持 ABAC,可以实现“只允许工程师在上班时间修改代码仓库”的细粒度策略。

可能追问:

  • RBAC 如何解决角色爆炸问题?
  • ABAC 的性能瓶颈在哪里?如何优化?
  • 结合 BLP/Biba 模型,访问控制还有哪些经典模型?
⚠️ 避坑提醒:如果只背定义,面试官会认为你缺乏系统设计意识。一定要提“角色爆炸”和“动态属性”这两个关键痛点。另外不要混淆 RBAC 与用户组概念(用户组是静态的,角色可继承)。如果答不上 ABAC 可提及基于策略的 PBAC 作为备选。
💡 面试策略提示: 安全基础知识的考察往往由浅入深。面试初期要展现出清晰的知识脉络,回答时尽量用「原理 + 攻击视角 + 防御建议」三合一结构,让面试官看到你不仅有理论,还有安全意识。例如在讲完 HTTPS 握手后立即指出“如果证书验证不严格可能被中间人用自签名证书冒充”,这样就是加分动作。