随着科学技术的快速发展, 电脑、智能手机等电子设备现已处处可见, 电视、电影、音乐、图片等数字化信息的广泛传播, 智能卡、移动令牌、无线传感器网络等设备的许多运用, 使得人们对隐秘信息访问的途径越来越多, 从而密码算法的运用环境也不再单纯和可信。
例如, 用户在自己的机器上作业一个数字媒体的播放软件, 这个软件对加密过的数字信息进行解密后播放, 那么这些软件的作业环境很有可能是不安全的, 因为软件的解密进程关于攻击者(乃至可能就是用户自身)是可见的, 他们能够很简单就取得密钥信息; 相同, 无线传感器网络节点等一般配备在无人监管的场所, 因此, 对这些节点内部作业的观测、改动等都是有用的攻击方法。 所以, 针对作业终端的攻击十分的直接, 咱们将这样的攻击称为白盒攻击。
白盒攻击的概念最早由Chow 等人在2002 年提出, 这儿的“白盒”与程序检测中的“白盒查验”所指的环境有相通之处, 在白盒攻击中, 攻击者对设备终端(即应用程序的作业的环境)具有完全的控制才调、与软件的施行者具有对等的权利。 他能够对程序作业的二进制寻觅、读取内存中的密钥、查询程序施行的中心作用、恣意的静态剖析以及改动子核算的作用等。 攻击者能够在终端做任何的操作, 比较传统的黑盒模型,对攻击者的才调只需很少的限制。
白盒攻击是在不可信任终端环境下发作的更高档的安全挟制。 白盒攻击能够看作是man-at-the-end 攻击, 现在常见的直接白盒攻击有: OllyDbg、IDA Pro、HexRays、HIEW、VMware 等, 以及近年来提出的时间剖析、功耗剖析、插入过错剖析等旁路攻击(side-channel attack)。 因此, 传统的密码算法在白盒攻击环境中不能安全运用, 显得极度脆弱。 所以, 为了确保在不可信任终端密码算法的加密、解密、认证等功用的正常运用, 结构出能够在白盒攻击环境下确保安全性的密码算法将是信息安全范畴面对的一个严峻课题。
咱们将能够抵挡白盒攻击的密码算法及其实现称为白盒密码。 白盒密码包含了已有密码算法的白盒实现和白盒密码算法。 已有密码算法的白盒实现是指, 将已知的密码算法通过白盒密码技术进行规划, 使得在白盒攻击环境下, 不改动原算法的功用但原算法所期望确保的安全性不受损坏。 例如, 加密算法期望确保其密钥不会走漏、签名算法期望其签名不会被编造等。
而白盒密码算法其实是指一种新的密码算法, 它与传统的密码算法不同的是, 它能够抵挡白盒攻击环境下敌手的攻击, 其自身是一个新的算法, 而不是在已存在的算法上的进行白盒安全实现的规划。
现在的白盒密码技术实例大部分为已知密码算法的白盒实现, 例如白盒AES 实现、白盒DES 实现,设计者们企图运用稠浊的方法结构查找表, 并通过查表的方法来实现程序的施行, 使得白盒攻击者即便能够查询到整个查找表的查询, 也无法比穷举查找更快地取得密钥信息, 以此抵挡白盒攻击。 可是事实证明这个方法的作用现在并不令人满意。
此外, 也有设计者运用插入扰乱项或多变量密码的方法来提高攻击者的攻击难度, 可是其安全性还有待参议。 除此之外, 并没有点破的其他白盒密码的规划技术, 可是信息躲藏、同态加密等方法或许能够应用到白盒密码的规划中来。