微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > 基于FPGA安全封装的身份认证模型研究

基于FPGA安全封装的身份认证模型研究

时间:05-27 来源:互联网 点击:


    (1) 用户将记录有用户ID信息的智能卡插入用户接口。
    (2) FPGA芯片探测到智能卡的插入,启动身份认证单元。
    (3) 智能卡产生一个随机数mu,并用ef和nf对其进行加密,然后将加密后的结果发给FPGA芯片中的身份认证单元。
    (4) 身份认证单元使用df和nf对cu进行解密,得到解密结果mu′。
    (5) 身份认证单元使用eu和nu对mu′进行加密,并将加密结果cf′回传给智能卡。
    (6) 智能卡使用du和nu对cf′进行解密,并将解密结果与mu进行对比。若正确,则确认FPGA芯片对于用户的合法性,并继续下一步的操作;若不正确,智能卡将与FPGA芯片断开连接。
    (7) 身份认证单元产生一随机数mf,并使用eu和nu对其进行加密,并将加密结果cf传递给智能卡。
    (8) 智能卡使用du和nu对cf进行解密,得到解密结果mf。
    (9) 智能卡使用ef和nf对(ID+mu+mf)进行加密,得到加密结果cID,并将cID发送给身份认证单元。
    (10) 身份认证单元使用df和nf对cID进行解密,并将解密结果减去mu和mf得到ID。
    (11) 身份认证单元使用SHA-1算法对ID进行Hash运算,得到chash。
    (12) 身份认证单元将与ID Hash表寄存器中的值进行匹配,若匹配成功,则证明智能卡对于FPGA芯片的合法性,ID Hash将作为根向量的一部分参与到加密单元的加解密操作中去,若匹配不成功,FPGA芯片将断开与智能卡的连接。
2.2 身份认证单元模型设计
   在FPGA安全封装结构中,身份认证单元的一端与加密单元相连,另一端与用户接口相连。为了满足双向认证过程中智能卡RSA运算及用户ID存储安全性的要求,选用DS1957B实现智能卡。DS1957B使用防止物理探测的封装方式,内置Java处理器、1 024位密码加速器、随机数发生器及134KB的非易失性RAM,能够非常方便地实现RSA运算,并且能够对卡内保存的密钥及用户ID信息实施密封存储。
    为了实现双向认证过程,FPGA安全封装中的身份认证单元模型由一个xe mod n计算器、随机数发生器、RSA引擎、RSA密钥寄存器、SHA-1计算器及ID Hash表寄存器组成。其中,xemodn计算器负责RSA密码的模幂运算,随机数发生器负责产生随机数,RSA引擎负责FPGA端的RSA运算,RSA密钥寄存器存储RSA密码的密钥,SHA-1计算器负责对用户ID信息进行单向Hash运算,ID Hash表寄存器存储合法的用户ID的Hash值。身份认证单元模型如图3所示。


3 安全性分析
    身份认证单元模型的安全性主要基于三点:(1)密钥及用户ID静态存放的安全性; (2)所使用的加密算法的安全性;(3)认证方案抵御各种攻击的能力。其中第二点不属于本文讨论的范围。假定所使用的算法总是安全的,以下将具体分析第一点和第三点。
    (1)针对于密钥和用户ID的静态存放,一方面由于智能卡采用了防止物理探测的封装形式,并对智能卡内的数据进行密封存储的方式进行保存,攻击者难以通过物理探测或软件探测盗取存储在智能卡上的密钥及用户ID信息[7-8]。另一方面,FPGA内部由大规模逻辑门阵列组成,要从中单独提取出密钥等敏感数据非常困难。此外,大部分FPGA已经具备对比特流及其内部结构的保护功能。因此,能够确保身份认证过程中所使用密钥及用户ID的静态安全性。
    (2)在认证过程中,最有可能遭受到的攻击手段有冒充实体攻击、重放攻击、唯密文攻击。针对这些攻击,认证方案都具备相应的防范策略。
3.1 冒充实体攻击
   假设攻击者盗取了用户的智能卡,为了获得智能卡上的ID信息,利用一个设备冒充合法的FPGA与智能卡连接。但由于在认证过程中,该冒充的设备无法成功地向智能卡证明其身份的合法性,使智能卡不会向该设备发送包含用户ID的相关信息,所以该安全封装结构能够抵抗“冒充实体攻击”。
3.2 重放攻击
    假设攻击者截获了身份认证单元发送的认证信息cf′和cf,并对智能卡发动重发攻击。
    (1) 在认证过程的步骤(3)中,智能卡产生一个新的随机数mu2,并用ef和nf对其进行加密,然后将加密后的结果cu2发给FPGA芯片中的身份认证单元。
    (2) 攻击者将cf′发回给智能卡。
    (3) 智能卡使用du和nu对cf′进行解密,得到mu,由于mu≠mu2,认证失败。
    假设攻击者截获了智能卡发送的认证信息cu和cID,并对FPGA发动重发攻击:
    (1) 在认证过程步骤(7)中,身份认证单元产生了一个新的随机数mf 2,并使用eu和nu对其进行加密,并将加密结果cf2传递给智能卡;
    (2) 攻击者将cID发回给FPGA;
    (3) 身份认证单元使用df和nf对cID进行解密,并将解密结果减去mu和mf2得到ID2;
    (4) 身份认证单元使用SHA-1算法对ID2进行Hash运算,得到chash′;
    (5) 由于chash′显然不能与ID Hash表寄存器中的值匹配成功,认证失败。
    因此该安全封装结构能够抵抗“重放攻击”。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top