白盒密码技术 White-Box Cryptography

引用与参考材料:
《白盒密码的设计与研究 》 来学嘉;肖雅莹,2009;
《白盒密码研究》林婷婷;来学嘉,2015;

白盒攻击

白盒攻击环境指的是密码软件的执行对攻击者完全可见的环境。在白盒攻击环境中,攻击者通过观察或者
执行密码软件,很容易就可以获得密钥信息。白盒密码是针对这种环境提出来的,其目的是为了在白盒攻击环境中,有效地防止攻击者获得密钥信息;

主要思想是:对于一个密码算法,给定一个特定的密钥后,明文到密文的映射也就确定了,然后把
明文到密文的映射进行置乱编码(Encoding),将加密后得到的映射用查找表的形式表示,密码算法的执行过程就通过查找表格来实现。这些查找表是与密钥相关的,密钥隐藏在表格中,但是攻击者根据查找表无法得出密钥信息。查找表的实现方式为白盒攻击环境中密钥的保护提供了一个新的解决方案;

思想小结:
简单来说,在移动终端中,运行一个密码算法,算法,明文,秘钥都在终端上,当敌手控制这个终端的时候,就很容易得到秘钥,为了保护秘钥的安全,所以需要想办法将秘钥隐藏进算法中,使用秘钥和算法建立一个明文和密文的查找表。然后加密,解密时直接进行查表就行;相应的,对称和非对称的实现过程应该还需要具体的实现方式;

白盒密码的安全性分析

白盒密码的主要目的是为了在白盒攻击环境中防止攻击者从密码算法的执行过程中抽取出密钥。白盒密码的密钥信息隐藏在查找表中,如果查找表的输入和输出编码可以被恢复出来,则攻击者就可以得到密钥信息。因此,白盒密码的安全性是基于从查找表中分析出密钥信息或者恢复出输入输出编码的难度。

分析方法:
1.白盒多样性:查找表中的输入输出编码都是随机选择 的,白盒多样性的值越大,攻击者就越难分析出隐藏在查找表中的密钥信息以及输入输出编码。

2.白盒含混度:用于衡量有多少种不同的构造方法会产生相同的查找表,它等于白盒多样性的值除以查找表的实际个数。

黑盒密码技术与灰盒密码技术

黑盒密码技术:即为敌手只能获得密码算法的输入和输出;
灰盒密码技术:即为侧信道攻击方式;

传统的密码学原语安全性

白盒 加密 iOS 白盒密码算法_白盒


传统的密码安全性,基于黑盒的安全,即敌手只能控制输入输出,但是不假设能够获取算法的内部状态;

白盒安全

白盒 加密 iOS 白盒密码算法_密码技术_02


白盒攻击即是这样的一种攻击, 它有别于传统密码模型中定义的攻 击类型, 它假设攻击者对设备终端(即应用程序的运行环境)拥有完全的控制能力, 能够观测并更改软件运 行时的所有内部数据, 攻击者具有更强的攻击能力.

现在能够想要达到白盒安全有以下的两个方法:
1.设计新的白盒安全密码算法;
2.将已有的密码算法白盒化;

密码的白盒实现主要有以下的几个方法:

  1. 利用混淆的方式构造查找表;
  2. 插入扰乱项;
  3. 多变量密码
  4. 信息隐藏与同态加密
白盒密码问题起始

恶意主机攻击 : 白盒的起源
侧信道攻击: 白盒的相似概念
混淆: 白盒的实现手段

恶意主机:简单来说,一个APP程序副本可能会运行在很多的终端节点上,如果有的终端是恶意的,那么恶意节点就会对这个程序拷贝进行分析;白盒攻击包含恶意主机攻击;

侧信道攻击:侧信道攻击,是从物理上对密码程序进行分析;白盒攻击依然包含侧信道攻击,侧信道攻击也叫做灰盒攻击;

混淆:混淆是将可执行程序转换成为另外的不可理解的程序,经过转换后的程序,与原来的程序具有相同的功能,但是运行时不会泄露任何秘密信息;

混淆器

一个混淆器满足以下的三个定义:
1.能够完成另外一个函数的功能;
2.在多项式时间内可终止;
3.虚拟黑盒性,攻击者不能获得关于函数的任何信息;

白盒密码的应用

(1)数字版权的保护,简单来说就是网络视频平台,对平台中的秘钥进行保护;
(2)对云计算的保护,云计算其实也是一种不可信任的平台,也可能存在恶意主机攻击的方式;
(3)手机安全使用问题,手机本身也是一个不安全的终端平台;
(4)将私钥加密转换为公钥加密;