白皮书 理解白盒密码技术
时间:2016-06-24 13:29:54

 白盒.jpg

密码学的常规手段无法提供一个刀枪不入的解决 方案,用以完全解决不同场景对其固有弱点的攻 击。

介绍

        传统意义上,加密技术提供了除信息接收者之外别人难以 理解的传输敏感(秘密、机密或私有)信息的一种手段。 密码技术,在古圣经时代就被使用,提供了其中文本被手 工替换为隐藏其原始内容的一种技术。多年以后的二战期 间,密码技术被广泛应用于机电设备(如臭名昭著的恩尼 格玛密码机)。如今,密码技术越来越无处不在地主要依 赖于有坚实的数学基础支持的计算机上。 加密技术,顾名思义,试图使用各种方法来隐藏文本部分 不被恶意的眼睛所查看。理论上来讲,概念听起来很完美, 但现实世界的经验证明,多种因素和环境问题发生作用对 密钥强度产生负面的影响。常规手段无法提供一个刀枪不 入的解决方案,以全面解决多种不同的利用密码学固有弱 点的攻击场景。

        Peter G. Neumann 教授,计算机系统和网络可信度和可靠 性,被引述说“如果您认为解密技术解决了您的问题,那您 还不清楚问题所在。”

       本文在讨论传统技术的同时,专注于白盒加密技术的实现。

近观加密技术

        典型的 DRM(数字版权管理)中实现的加密算法采用公知 的、依靠密钥保密性的强大算法作为安全解决方案的一部 分。多数情况下,这是非常不妥的,这是因为很多这些应 用程序执行在具有潜在敌意的最终用户所控制的平台上。

        用于加密技术的传统前提是一个黑盒装置,其假定攻击者 无法访问所述密钥,只能控制加密输入(明文),并能够 访问结果输出(密文)。长期以来这已被假定为真实的, 如同智能卡之类的硬件设备,但恶意攻击利用从黑盒 “泄 漏”信息的技术已经开发出来了(如差分功耗分析攻击, 也被称为 DPA),这能让黑客推导出黑盒内部使用的密钥。黑客已有效地使用该方法对黑盒进行攻击,并将其实现成“灰色阴影”而非黑色。

白盒加密技术的必要性

        流行的行业标准加密算法如 AES 并没有设计在可以查看到 它们执行的环境中运行。事实上,标准的加密算法模型假 设如终端、电脑和硬件保护令牌等都是可被信任的。如果 这些终端存在于具有潜在敌意的环境中,当应用程序试图 从内存中提取嵌入的或生成的密钥时,攻击者正在监控应 用程序的执行,则密钥对于攻击者来说直接可见。对于运 行在 PC、IPTV 机顶盒及其他要实施 DRM 的数字设备上的 基于软件的应用程序,这是个普遍的问题。通过主动监控 标准的加密算法 API 或内存转储,黑客就能够在使用时提 取密钥。

        一个成功的基于内存的密钥提取攻击的实例就是使用工具 BackupHDDVD 来复制被保护的 DVD 的内容,并从 Windows 受保护的媒体内容中删除 DRM。

白盒的挑战

       在完全透明的环境中工作时,让有价值的信息如授权和其 他商业机密保持隐藏,该理念带来了各种挑战:

      > 如何加密或解密内容而无需直接暴露密钥和/或数据的任 何部分?

      > 如何执行强大的加密机制,以在执行时知晓黑客在查看和或变更代码?

各种加密模式

黑盒(传统)加密技术

        作为一个传统模式,黑盒加密假定攻击者无法物理访问密 钥(执行加密或解密算法)或任何内部运作,而只能观察 外部信息和行为。该信息包括系统的明文(输入)或密文

(输出),同时假设零可见代码的执行和动态加密操作。

黑盒.jpg

灰盒加密技术

        灰盒的场景是假设攻击者可以部分物理访问密钥或者说是 “泄漏”所谓的边信道信息。边信道分析攻击(SCA)利用 从物理实现的加密系统中泄漏的信息。通过时序信息、功 耗、电磁辐射等被动式地观察该泄漏。防护边信道攻击非 常重要,这是由于该种攻击能够快速且低成本地实现。公 开可用的边信道信息能够让黑客发现部分密钥,从而大大 降低其功效并降低整体保护能力。

        灰盒加密技术实际上是传统黑盒实现的副产物。实践已经 证明,即使是智能卡,被认为能够提供强大的安全性,其 内部执行的加密事实上也会向外界泄漏信息。很显然假定 为黑盒的场景在现实中仅为灰色阴影

 灰盒.jpg

白盒加密技术的概念

       白盒加密技术与上述传统的安全模型针锋相对。相对于以 前的实现下,攻击者只给出一个黑盒子,即获取输入和输 出,并受到攻击的加密算法,并假设零可视性内部运作, 白盒提供了充分的可见性来代替。与之前给黑客提供一个 黑盒的实现(如访问输入、输出、攻击下的加密算法以及 假设零可见内部工作)有所不同,白盒提供充分的可见性。

       白盒加密技术旨在保护软件实施加密算法以对抗密钥的还 原,即使攻击者完全控制机器执行加密 – 这在 DRM 领域 特别有效。

白盒加密技术

       白盒的场景与前面所述的情况恰恰相反,处理更为严重的 威胁,同时假设黑客能够完全可视和控制整个操作。黑客 可以自由地观察动态代码的执行(使用实例化的密钥), 并且完全可见和改变内部算法的细节。尽管有这种完全透 明的方法论,白盒加密技术整合密文的方式不会暴露密钥。

       因此很显然,对于黑盒和灰盒模式的内置算法在面临不可 信主机上操作时是不切实际的。不难理解的是,黑客不会 只用黑盒和灰盒的场景下可用的手段来破解密文,而是观 察到使用未受保护的密钥时 - 直接窃取它。

      暴露在白盒场景下的传统加密算法,假设该密钥作为实施 的一部分而存在。

白盒1.jpg 

        白盒场景下,白盒加密算法受到保护,这是由于密钥不在 内存中,无法被提取 - 即使动态地。因此选择最合适、最安全的加密模式是抵御恶意威胁的唯 一出路 – 这恰恰是白盒加密技术要实现的。

实现白盒加密技术幕后的方法论

       在假设可以全面监控并更改每条指令的前提下,如何能够 在可执行代码中安全地“隐藏”密钥?抽象地说,这是通过使用一个数学运算来实现的,结合安 全密钥的功效和一些实施的特定数据,以确保该运算事实 上不可反转。

       举个例子,通过一个简单的乘法运算到大数字使得 RSA 算 法的固有强度成立,但这是将结果分解为其素因数的数学 难题。

      另外,同样重要的是,白盒加密算法的实现完全能够加密 或解密。

      如前所述的实现方式是基于数学运算的,非常难以反转。

      这事实上能够构建一个类似完整公钥/私钥方案的系统,但 在性能水平方面,却更接近一个标准的对称式加密算法

      解密功能可在分布式应用程序内实现,但密钥无法被提取 并且解密如同加密操作一样无法反向。攻击者没有任何手 段来创建正确的加密过的数据,将其解密回所需的值。

      这种特定的方法尤为适用于保障硬件设备保护的通信通道, 例如硬件保护令牌。攻击者无法提取用于安全通信通道的 密钥,因此无法解密通过该通道的数据,也无法将数据注 入到该通道,同时他也没有正确加密它的手段。

解决该挑战

      尽管白盒场景被认为不适于安全相关的任务,但白盒加密 技术打乱所有牌,并提供了运行在完全透明环境中执行加 密的一个高度安全的方法。尽管完全透明,加密和解密操 作能够不泄露密钥或数据本身的任何部分,以保护敏感数 据。此外,明知有恶意的双眼在执行过程中有可能观察代 码的执行,白盒加密技术可使强大的加密机制执行(与其 他技术相结合)。

金雅拓安全措施的一个组成部分

      金雅拓的 Sentinel 产品所提供的安全通信通道确保被保护 的应用程序和硬件令牌之间的通信被加密且无法重放。与 以往旨在隐藏加密密钥的措施不同,新的措施围绕着白盒 加密技术,其假定攻击者可以跟踪被保护的应用程序及其 运行环境来寻找加密密钥。随着该前提作为设计的一部分, 算法和加密密钥被替换为执行相同加密的特定的供应商专

      用 API 库,将加密密钥嵌入为算法的一部分,这样就确保 其不会出现在内存中,因此无法被提取。供应商专用库的 生成是在金雅拓的服务器上利用一些商业机密 来执行的。 此外,为每个特定软件供应商单独生成与混淆每个应用程 序库 – 通用的破解几乎不可能。

 

真正的突破性解决方案

       金雅拓是提供白盒加密技术作为其 Sentinel 产品系列软件 授权解决方案的首个也是唯一的供应商。该新技术能够时 时保护加密密钥,而不会在某个时间段分解并暴露它。从 安全角度来看,这确保了密钥的保护免遭黑客攻击,因此 在潜在的攻击过程中不易重建。

       白盒加密技术是一个重要组成部分,使得开发人员能够保 护他们的应用程序以应对逆向工程、篡改和自动攻击。金 雅拓的白盒加密方法集成到软件设计过程中,能够将多一 层的保护直接嵌入到源代码级,从而提供一个高效的软件 保护方法。

结论

      被保护的应用程序的整体安全性高度依赖于实施本身,即 如果没有在其设计的环境中使用,仅仅采取强大的加密算 法并不提供任何安全 - 不在白盒设置中使用白盒加密技术大 大地帮助黑客反向工程所保护的软件。最常见的攻击都试 图利用软件的安全漏洞,而非加密算法的弱点 - 但最近攻击 者已经意识到开放的 PC 环境中经典加密算法的弱点。

      除了继续增强产品生命周期和新版本的发布外,在设计和 实施阶段也要特别注意软件的保护。除了白盒加密技术外, 应当使用更多互补的安全措施,以进一步加强整体保护方 案。

      安全带来一定的成本,直接的结果,无法密不透风。因此, 关键是要正确地评估应用程序本身所需要的安全级别,即 需要保护的价值结合忽略潜在风险所遭受的损失。

 

联系我们
  • 点击这里给我发消息客服 1:
  • 点击这里给我发消息客服 2:
  • 点击这里给我发消息客服 3:
  • 点击这里给我发消息技术支持:
  • 有事点这里淘宝客服:
  • 进入网店:
咨询电话:13925016245
020-87572577
网站首页 |  Copyright 2005-2012 广州市唯赛计算机有限公司 版权所有 All rights reserved
粤ICP备13022745号 备案查询    公司地址:广州市白云区京溪中路28号京鹏大厦7001室
电话:(86)020-87572577 Email:weij@wisun.net QQ:474592939