论文部分内容阅读
随着集成电路、物联网和密码技术的飞速发展,作为密码产品的核心部件,密码SoC[32,91] (System on a Chip)的性能、安全性和应用领域已成为信息安全发展水平的重要标志之一。虽然密码模块安全需求方面的规范标准已较为成熟,但具体的密码工程实现上的规范或约束尚属空白,密码产品、尤其是物联网产品缺少科学、准确的安全性评估标准,各种接口和总线频频出现安全问题,侧信道攻击技术发展势头迅猛。遗憾地是,由于理论技术落后和缺乏监管力度等问题,许多公司的密码SoC都未经过严谨的安全性论证就推向了市场,致使它们的客户经济损失惨重,甚至一些通过国际权威认证的产品,其内部密码SoC也出现了严重的安全问题。2009年,IEEE Symposium on Security and Privacy最佳论文奖授予了Garcia等人,他们破解了全世界发行量高达数十亿张的Mifare Classic Card,该卡被破解的主要原因是芯片中的加密算法的密钥长度太短(48bit),以及错误处理时将暴露明文信息的设计漏洞。尽管国内一些专家声明“用户不必恐慌”[89],并声称国内上亿张Mifare Classic Card不会受到影响,但在2010年中国密码年会上,华南理工大学的密码学者们还是宣布破解了“羊城通”地铁卡。2010年,IEEE Symposium on Security and Privacy最佳论文奖授予了Murdoch等人[70],他们破解了英国人普遍使用的INGENICO 13300和Dione Xtreme两种口令输入设备PED (PIN Entry Device),尽管这两款终端都已经通过了VISA的PED评估。但是它们的防篡改设计并不完善,敌手通过对硬件设备的篡改监听到了密码SoC与Ic卡之间交换的未加密的数据,因而成功地伪造了银行卡。因密码SoC设计不当而造成泄密的事件屡见不鲜,如何科学地评估一个密码产品的安全性?本文将以密码SoC为核心给出一种安全性证明方案。密码SoC与外部模块之间执行的交互协议会直接影响到密码产品的安全性,例如密码SoC的主要应用之一——保密U盘类产品目前面临着巨大安全威胁。2004年,FreeOTFE开发小组设计了移动存储设备管理软件来对U盘中的数据进行加密,但Windows用户态的加密面临着病毒、逆向工程等诸多威胁。2009年,Sophos公司采用口令对U盘的用户进行身份认证,却无法防止敌手将U盘中Flash芯片拆下,采用特定设备直接读取数据。2009年,CE-Infosys公司基于密码SoC设计了一套个人移动存储安全解决方案CompuSec Mobilc[21],它实现了存储加密和签名,但该产品仅面向个人用户,缺乏通用性。2010年,爱国者公司和Kingston公司分别推出了L8267安全版[8]保密U盘和DataTraveler5000保密U盘,均采用了口令认证和闪存加密,已经广泛推广使用,但其密码SoC设计方案并未公开,其外部USB总线很可能仍然存在安全漏洞。同年,Kingston公司对旗下三款DataTraveler保密型闪盘实施了召回,尽管它们中有的已经通过了FIPS 140-2 Level 2认证,但由于这些产品的驱动程序在处理口令时存在瑕疵,德国SySS公司编写了一套软件破解了其中的加密技术。目前,保密U盘产品存在着USB总线监听、大规模群组应用、腐化攻击等主要问题,本文将给出这三个问题的一种解决方案。侧信道攻击是密码SoC遭遇的主要威胁之一,只要密码芯片存在,就有侧信道攻击的威胁。自1996年Kocher在美密会上提出了计时攻击[57]的概念以来,侧信道攻击领域得到迅猛发展,能量分析攻击是该领域最实际、最容易实现的攻击方法。1999年,Kocher提出了简单能量分析(SPA)、差分能量分析(DPA)和高阶差分能量分析的思想[58],同年,Goubin(?)(?)Chari分别提出了最早的掩码方案[22,39],以抵抗能量分析攻击。随后,2003年Schramm在FSE上提出的碰撞攻击[77]和2004年Brier在CHES上提出的相关能量分析成为近年来该方向的研究热点。掩码技术与各种能量分析攻击之问的对抗愈演愈烈,目前高阶DPA方法被公认为能够有效地攻击掩码实现,2005年,Joye等人设计了一种最优的二阶DPA方法,能够高效地破解AES算法的掩码实现。在碰撞攻击方法上,2008年Bogdanov提出了多组差分碰撞检测技术,然而,掩码技术仍然能很好地抵抗碰撞攻击,本文将提出一种碰撞检测模型,并对掩码进行有效的攻击。近年来,密码产品的安全模型与工程实现规范、接口与应用协议的安全、密码算法实现的侧信道攻击等已成为密码SoC的关键技术问题,研究这些方向具有非常重要的实际意义。本文分别对密码产品的安全模型、保密U盘的攻击与防御、软件层密钥管理、能量分析攻击中的碰撞攻击与碰撞检测、密码算法可重构中的桶形移位器等技术进行了深入的研究,主要创新点可以概括为:1.将自底向上的密码工程设计思想与通用可组合安全模型相结合,建立了以密码SoC为核心的密码产品的通用安全框架。提出了一种自底向上地证明由硬件、软件、协议构成的密码SoC、密码模块、密码产品的安全性的思想,并指出了密码模块之间的通用可组合特性。根据该安全评估模型,给出了一些密码SoC和密码产品的设计原则。2.设计和实现了一种新型USB总线监听攻击方案,它能够有效地攻击市面上绝大多数保密U盘中密码SoC协议上的缺陷。归纳了目前保密U盘面临的总线监听威胁、群组应用问题、抗腐化攻击问题,相应地设计了一套以密码SoC为核心的群组保密U盘密码安全策略、以及一种具体的认证与密钥协商协议,有效地解决了这三个问题。3.针对碰撞攻击难以破解密码SoC中算法的掩码实现的现状,提出了一种新的碰撞攻击区分模型,以AES算法的掩码实现为例设计了具体的攻击步骤。经过效率分析和实验得知,它能够有效地攻击2006年Herbst提出的AES算法掩码实现方案。此外,提出了“关键点投票法”和“二阶二元投票法”,以克服能量分析攻击的碰撞检测过程中面临的毛刺误差、关键点数量不足等问题。同时,对Bogdanov的“三元投票法”进行了改进,使碰撞检测的效率大大提高。此外,本文提出了一种基于功能驱动程序的密钥管理机制,在抗腐化攻击、抗病毒、抗逆向工程等方面比传统应用层实现方法具有显著的优势;提出了适用于密码算法可重构设计的“三合一”桶形移位器,及其四种实现方案,与传统的“四合一”方案相比,延迟时间和面积均有大幅减少,在密码SoC中有较高应用价值。