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

在军工通信系统中,设计一个基于公钥的认证协议,确保通信双方的身份认证,并抵抗重放攻击和中间人攻击。请说明协议流程,包括密钥交换、签名/加密机制,以及如何结合国产化芯片的密钥管理(如国密SM2)。

中国电科三十六所算法工程师(网络安全)难度:困难

答案

1) 【一句话结论】采用基于国密SM2的双向认证协议,结合时间戳+序列号抗重放、证书链抗中间人,以及国产化硬件安全模块(HSM)的密钥全生命周期管理,实现军工通信的身份认证安全。

2) 【原理/概念讲解】老师口吻:公钥认证的核心是“非对称加密的签名+验证”——私钥用于签名(保证消息来源可信),公钥用于验证(确认消息未被篡改)。国密SM2是基于椭圆曲线的国产标准(ECC),相比传统RSA,在相同安全强度下计算效率更高,适合军工通信的实时性要求。身份认证必须双向(双方互相确认身份),因为单向认证(仅A认证B)无法防止B被冒充。重放攻击是攻击者截获旧消息后重发,所以需要“时间戳+序列号”机制——时间戳防止过时消息,序列号确保消息唯一。中间人攻击是攻击者冒充双方,所以需要“证书链验证”(通过CA的证书链确认公钥来源可信)。国产化芯片的密钥管理,比如使用硬件安全模块(HSM),将私钥存储在芯片中,防止密钥泄露,同时支持密钥的生成、更新、销毁等全生命周期管理。密钥交换过程中,双方通过SM2签名保证会话密钥交换消息的完整性,防止中间人篡改密钥。

3) 【对比与适用场景】

对比项传统RSA(如PKCS#1)国密SM2(SM2椭圆曲线)
密码体制整数分解(RSA)椭圆曲线(ECC)
安全强度2048位≈112位256位≈112位
计算效率较低(大数运算)较高(曲线运算)
国产化支持国际标准,无国产化国产标准,符合军工要求
适用场景传统互联网应用军工通信、国产化系统

抗重放机制对比:

机制时间戳+序列号序列号(无时间戳)
定义结合时间戳和消息序列号验证消息新鲜度仅用序列号验证消息唯一性
优点同时防止过时消息和重复消息简单,适合低延迟场景
缺点需要时间同步(可能受攻击)无时间同步要求,但序列号易溢出
适用场景实时性要求高,需防过时消息序列号范围足够大,时间同步可靠

4) 【示例】
协议流程(A、B双方):

  1. 初始化:双方持有CA颁发的证书(含公钥、身份、CA签名)。
  2. 握手阶段:
    a. A向B发送:{ID_A, 时间戳T_A, 序列号Seq_A},用A私钥(SM2签名)签名,发送给B。
    b. B验证:通过CA根证书链验证A证书可信,用A公钥验证签名,确认消息新鲜(T_A在当前时间±Δ内,Seq_A未重复)。
    c. B向A回复:{ID_B, 时间戳T_B, 序列号Seq_B},用B私钥签名,发送给A。
    d. A验证B证书和签名,确认B身份。
  3. 密钥交换:双方通过证书公钥生成会话密钥(如SM4对称密钥交换,结合SM2非对称加密保证密钥安全)。
  4. 安全通信:后续消息用会话密钥加密(SM4),确保机密性,保留签名机制(可选)用于后续验证。

伪代码(简化):

// A向B发起认证  
A_sign = SM2_sign(A_private_key, {ID_A, T_A, Seq_A})  
B验证:  
  verify(A_cert, A_sign, {ID_A, T_A, Seq_A})  

// B向A回复认证  
B_sign = SM2_sign(B_private_key, {ID_B, T_B, Seq_B})  
A验证:  
  verify(B_cert, B_sign, {ID_B, T_B, Seq_B})  

// 密钥交换(SM4+SM2密钥协商)  
session_key = SM4_key_exchange(A_private_key, B_public_key)  

5) 【面试口播版答案】
“面试官您好,针对军工通信系统的身份认证需求,我设计的协议基于国密SM2公钥体系,核心是双向认证+抗重放+抗中间人,结合国产化芯片的密钥管理。具体流程是:双方先通过CA证书交换身份,然后通过时间戳+序列号防止重放攻击,再用证书链验证防止中间人攻击。密钥管理方面,使用硬件安全模块(HSM)存储私钥,实现密钥的全生命周期管理。整个协议确保了身份可信、消息防重放、通信安全,符合军工通信的安全要求。”

6) 【追问清单】

  • 问题:密钥更新机制如何设计?
    回答要点:定期更新会话密钥(如每30分钟),私钥通过HSM的密钥轮换功能更新,确保密钥新鲜性。
  • 问题:中间人攻击中,如何防止证书被篡改?
    回答要点:通过证书链的CA根证书验证,确保公钥来源可信,同时使用数字签名保证证书内容完整。
  • 问题:重放攻击中,时间戳的精度要求?
    回答要点:时间戳需精确到毫秒级,且通信双方需同步时间(如NTP),防止攻击者伪造时间戳。
  • 问题:协议中是否考虑了密钥泄露后的应急处理?
    回答要点:通过HSM的密钥销毁功能,以及证书吊销列表(CRL)机制,及时撤销泄露的密钥。

7) 【常见坑/雷区】

  • 忽略双向认证:仅设计单向认证,无法防止B被冒充。
  • 抗重放仅用时间戳:未考虑序列号,导致攻击者可重发旧消息。
  • 未提及国产化芯片的密钥管理:比如未说明HSM的使用,导致密钥安全不足。
  • 中间人攻击未验证证书链:仅用公钥验证,未通过CA链确认可信。
  • 协议流程不完整:缺少密钥交换步骤,导致后续通信无安全密钥。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1