西城顺德网站建设,厦门公司注册网址,怎样做淘宝券网站,全国企业公示系统查询白盒密码技术白皮书
有关白盒的概念
其实白盒黑盒之类概念其实是软件保护方面的概念#xff0c;在很多方面都有应用#xff0c;例如
黑盒#xff1a;
传统的加密技术是默认假定处于黑盒中的#xff0c;也就是假定攻击者无法获得密钥。具体而言#xff0c;认为攻击者并…白盒密码技术白皮书
有关白盒的概念
其实白盒黑盒之类概念其实是软件保护方面的概念在很多方面都有应用例如
黑盒
传统的加密技术是默认假定处于黑盒中的也就是假定攻击者无法获得密钥。具体而言认为攻击者并未实质性地接触到密钥执行加密或者解密的算法或者任何内部操作仅仅能观察到一些外部信息或者操作这些信息包括系统内的明文输入或者密文输出并且认为代码执行以及动态加密不可被观察。
灰盒
灰盒认为攻击者可以实质性地接触到部分密钥或者泄露的信息也就是所谓的边信道信息。边信道分析攻击Side Channel Analysis, SCA利用了从密码系统运行过程中泄露的信息。泄露信息是通过被动观察时间信息、功率消耗、电磁辐射等而获得的。
白盒
白盒即攻击者已经完全控制了整个操作过程且对此完全可见攻击者可以自如地观察动态密码运行过程并且内部算法的详细内容完全可见可随意更改。举例而言只要软件是在本地运行的攻击者就可以通过调试器运行程序并观察软件运行的过程。所有涉及解密部分的代码也就一览无余了。定义如下
攻击者对主机和软件具有完全控制权 软件动态执行过程是可见的 加密算法内部细节完全可见、可修改
白盒密码
白盒密码技术是假定攻击者已经完全控制了整个加密的操作过程且对此完全可见在这种情况下处理面临的严重威胁。黑客们可以不受限制的观察动态密码的运行过程拥有示例密钥并且内部算法的详细内容是完全可见可随意更改。
尽管白盒密码技术的方法完全透明但是它将密码进行了组合使得密钥不容易被提取。总而言之白盒加密是能抵御白盒攻击的加密技术。
密钥明文通过白盒加密后会受到保护它不会直接出现在内存中所以不会被提取到。
白盒攻击
白盒攻击White-Box Attack是指攻击者对加密系统的运行环境和可执行程序拥有完全控制可观察和修改任意的内部操作和数据包括设备的CPU、寄存器、内存等数据等等如图4所示。在白盒攻击环境下密码算法的一般软件实现方式通常会导致密钥通过内存等途径直接泄露。
白盒攻击是三种攻击类型中最强的一种且涉及到密码算法本身的理论安全性及其工程实现的应用安全性。如何设计能够抵抗白盒攻击保护白盒环境下密钥和敏感数据不被攻击者窃取的有效方案是目前密码技术领域的一个重要问题。
将攻击类型和技术对应 白盒加密基本思想
白盒加密属于对称加密是指能够在白盒环境下抵御攻击的一种特殊的加密方法。首先举个例子帮助理解这里引用最早提出白盒加密实现方法的大牛Chow在论文《White-Box Cryptography and an AES》中所说的“举一个极端的例子就是将AES加密用一个简单的查表来表示那么AES128可以用一个
bytes的表格替换这样一来AES就变成了一个完全的黑盒。”听起来很简单吧但是这是极端情况一个如此大的表没有硬盘能够装得下所以在具体算法实现的时候必须有针对性的进行优化。
核心思想
核心思想是混淆混淆的意思就是让人看不懂如果说加密是隐藏信息混淆就是是扰乱信息。它们之间的最大区别是加密就是信息放进了保险箱但是一旦我有了钥匙我就能打开这个保险箱。而混淆则是让信息以一种完全无法理解的形式存在尽量让人无法理解中间的过程也就是只能看到输入和输出但无法理解结果是如何得到的但不影响信息本身发挥作用一个加了密的程序在源码未解密前是无法执行的但是经过混淆的程序可以正确执行。
特点
传统的加密算法中算法和密钥是完全独立的也就是说算法相同密钥不同则可以得到不同的加密结果但白盒加密将算法和密钥紧密捆绑在了一起由算法和密钥生成一个加密表和一个解密表然后可以独立用查找加密表来加密用解密表解密不再依赖于原来的加解密算法和密钥。
优势
正是由于算法和密钥的合并所有可以有效隐藏密钥与此同时也混淆了加密逻辑。具体而言白盒加密的一种实现思路就是将算法完全用查表来替代因为算法已知加密的密钥已知。所以将算法和密钥固化成查表表示这就是白盒密钥的实现过程。
缺点:
有利必有弊白盒加密由于需要将加密和解密的算法固化到表格中势必要增加空间开销因为要保存这一系列的表。具体在实现的过程中大部分情况需要用时间换空间需要对具体的实现算法进行优化也就是样将大表分解成若干个小表增加了查表的次数即时间开销但是减少了表占用的空间。
白盒密码技术
完全理想的白盒密码安全需要从基础理论到工程实现全方位的突破。主要的白盒密码技术包括以下几种
混淆技术
通过密钥与算法的混淆使得交给用户的密码功能是有限的用户无法获取其他密码功能。一切都是算法没有密钥或者密钥可以公开是混淆理论发展的可能方向。把一个混淆的密码功能移交给用户的时候所有的原理、系统结构和密钥都可以对用户公开。现代的非对称密码给出了这样的示例例如用户只能加密不能解密用户只能验证签名和不能仿造签名。混淆密码机制需要在非对称的密码理论上有更大的突破区分出不同的独立的密码功能确保一个密码功能不影响其他密码功能的安全从而产生安全的完全白盒化的密码应用。
密钥隐藏技术
密钥隐藏技术是白盒密码的另一个重要思路其方法是将需要保护的密钥隐藏到复杂的代码中隐藏在系统中。直接的密钥隐藏技术一般采用密钥拆分技术通过改变算法流程将用户的密钥拆分成多个无关的子密钥隐藏到系统的不同地方。需要密码执行的时候通过调用看似无关的密码函数计算出需要的密码计算结果。密钥分散隐藏到代码中是另一种密钥隐藏思路需要有好的算法实现密钥与代码的混淆。通过代码混淆使得敌手通过代码分析无法获得算法和密钥其安全的假设就是完全复制全部的代码是困难的。
尽管密钥隐藏技术依赖工程实现难以做到完全白盒但相关密钥隐藏技术已经成为现代密码系统安全的一种必备手段。特别是软件密码模块不得不使用多种密钥隐藏技术来保护密钥安全。
密钥攻击容忍技术
当密钥隐藏技术被敌人破解的时候我们是否有能力保证即使敌手获得了部分密钥我们的密码系统仍旧是安全的。密钥攻击容忍就是在这样一种白盒假设下的技术思考。密钥攻击容忍是在密钥保护密钥检测和自毁的基础上对密钥安全的进一步延伸。
子密钥不影响密钥安全的密钥拆分技术是密钥攻击容忍技术的一种技术思路。通过将密钥拆分成多个无关的子密钥并保证即使敌手获得部分子密钥也不影响原密钥的安全就可以构成一种密钥攻击容忍的解决方案。在密码算法设计上就具备密钥攻击容忍就更具有基础性意义。
多方协同密码计算
多方协同计算的本质就是在不信任的个体间进行协同产生出各自满意的结果。在可信体系的支持下协同计算是简单的。以可信计算为基础的可信体系能够确保信息的真实、完整、抗抵赖和合法使用协同计算相对容易。当信任体系被打破或难以建立的时候也就是现在的零信任假设下我们的信任又无法建立如何合作计算就成为多方协同密码计算的主要研究方向。
同态密码就是两方协同密码计算的代表性工作。甲方通过加密将数据交给乙方乙方在完全不知道甲方信息内容的前提下帮助甲方处理数据返回处于密文状态的处理结果。甲方对处理结果进行解密得到明文的结论。利用同态密码的双方协作不需要建立强的信任关系将原来加密隐藏的功能与委托计算的功能融合起来使得对方能够进行计算而无法了解信息内容。
多方协同密码技术是密码技术从通信保密到计算安全的一种思想变革需要基础理论研究的大力支持。开放的安全多方协同计算必然会用到非对称的密码机制以确保对某一方面的密码功能优势。我们要将一种数据的计算能力交给敌手同时还用保证我们的交给敌手处理的信息的安全。这也是白盒化密码的基本思路。
从理论上说签名和验签功能的分离就是一种功能拆分的非对称多方密码计算的范例。验证签名的代码和密钥可以完全开放而只需要保护好自己的签名私钥就行。代理重加密技术可以让一方对信息进行重新加密而不需要了解信息内容基于身份的加密能够确保只有拥有相应身份的人才能阅读信息。诸多非对称密码学的进展使我们有望在不远的将来拥有更多的多方安全密码计算的手段。
白盒密码构造
白盒密码的一般构造方法通常基于标准密码算法白盒化策略通过将标准密码算法中的密钥与算法实现融合和混淆使得密钥与加密程序不可区分即使攻击者掌握了对白盒密码系统的控制能力也无法进一步获取原始的密钥信息。
标准密码算法白盒化又可根据密钥是否可更新分为静态白盒技术与动态白盒技术两种 静态白盒白盒生成后密钥是确定的更新密钥需要重新生成并分发白盒。 动态白盒白盒与密钥不完全绑定可通过对输入中经白盒处理后的密钥进行替换实现密钥的更新。
白盒密码技术发展
白盒密码系统包括入侵容忍的密码和密码应用系统多方安全的密码协同是密码系统发展的一个重要方向。密码系统应该确保即使攻击者获得系统结构和部分安全信息密码系统依旧安全可控。
白盒密码技术就是在开放条件下的一种密码技术采用的是开放的假设具备更好的互联网适应能力。
开放的、白盒化的密码应用技术也是未来的重要方向。通过开放体系结构让建设参与者和使用者明确自己的责任和义务更好地参与到密码应用系统的安全中来是大型密码应用的基本要求。比特币所依赖的区块链技术就是一种白盒安全技术的典范。比特币的区块链系统不仅将原理全部公开其运行的源代码也是完全公开的。这种在完全“开放”的环境下保证系统的安全也许是未来密码应用的主要方向。
SOTP密码算法体制
SOTPSuper One-Time-Password密码算法体制是一种新型白盒密码。
SOTP算法根据用户密钥信息设计均匀、非线性的单项扩散变换保证由配置数据到用户密钥的不可逆性根据参数配置信息生成相应的密码部件构建用于加密的密码墙 具体而言密钥通过特定算法生成与之一一对应的配置参数配置参数确定了密码墙中的密码砖、数据回流、交织层等各个组件的信息。根据配置信息生成的密码墙即为与密钥唯一对应的白盒加密算法可理解为将标准加密算法中的各类组件和过程进行随机重组生成与密钥唯一对应的独一无二的新算法。密码墙的示例结构如图所示 通过密钥生成与密钥绑定的独一无二的密码墙即白盒算法后可将数据输入密码墙中以实现加密加密步骤如图所示。攻击者无法通过密码墙恢复出密钥信息可以抵抗白盒密钥攻击。
参考资料
【密码篇】白盒加密基本思想 物联网场景下的白盒加密技术 密码技术的现状与白盒化发展趋势