论坛首页 逆向工程技术区 阅读主题

苹果FairPlay中发现的混淆技术分析

477 浏览 1 回复
#1 楼主 2026-06-01 21:09:18
苹果FairPlay中发现的混淆技术分析
以下是对文章《Analysis of Obfuscation Found in Apple FairPlay》的翻译,原文来自 [539K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6F1K9h3y4G2L8r3!0Q4x3X3g2V1k6i4k6Q4x3V1k6W2L8W2)9J5c8X3u0D9L8$3N6Q4x3V1k6X3j5h3W2J5M7r3I4S2P5g2)9J5k6r3q4H3M7r3I4W2i4K6u0V1L8$3u0X3N6i4y4U0j5i4c8A6L8$3&6Q4x3V1k6Q4y4f1b7`.
希望对你有用

苹果FairPlay中发现的混淆技术分析
FairPlay是苹果公司开发的一套用于数字版权管理(DRM,Digital Rights Management)的算法集合。FairPlay目前用于管理iOS设备上应用安装过程中的解密操作。众所周知,苹果通过App Store分发的所有应用程序都采用IPA文件格式。IPA文件格式包含加密信息,这些信息由操作系统用于安装应用程序。FairPlay负责确保解密密钥和整个解密过程的安全,以防止未经授权的用户解密IPA文件内容并分享应用程序(尤其是付费应用)的代码。
本文将总结我在分析运行FairPlay的macOS用户空间守护进程时发现的一些静态保护措施。所有信息均基于文章发布时的最新情况,分析的二进制文件提取自macOS 13.5.1。
警告:本文仅提供对FairPlay及其混淆技术的入门级概述,概述其总体结构和概念,但有意避免深入探讨苹果的实际实现细节(以及如何破解这些技术),这可能是为了避免收到苹果公司的停止函或法律诉讼。
DRM系统与苹果应用的保护
保护数字形式的知识产权一直是分发版权材料的公司的重要目标。如何在分发内容的同时防止用户复制、查看、编辑和重新分发?当前大多数系统使用DRM技术。简而言之,DRM系统的工作原理如下:它们接收一个不可读的秘密输入(例如电影、图片或算法的原始文件),处理这些信息,并输出原始内容。整个过程尽量隐藏获取原始信息的方法。DRM系统最常用于观看受版权保护的内容:用户与服务提供商签订合同,服务商承诺发送用户请求的信息(电影、电视剧、书籍)。为防止内容被复制(合同规定只有一位授权用户可以查看),信息必须以不可复制或导出的方式访问。
从苹果的视角来看,假设我们想通过App Store下载一款付费应用或新游戏。我们完成交易后,设备会收到一个独立的安装包,准备安装。从技术角度看,如果没有保护措施,用户可以将应用安装包复制并分享给其他人。结果如何?苹果和开发者将因此损失收入,因为复制的安装包是免费的。由于IPA文件格式本质上是一个独立的容器,如果没有技术措施,应用程序共享将无法阻止。这正是FairPlay™技术的用武之地。
如何保护IPA文件中的信息?显然,我们需要以某种方式隐藏档案内容;这样,即使攻击者从iPhone中提取IPA文件,也无法访问内容。信息只能由负责安装应用程序的系统进程读取。下一个问题是:如何隐藏内容?这开启了一个复杂的技术领域。最简单且成本较低的方法之一是使用密钥加密信息。通过调用decrypt(content, key),信息即可恢复为可读状态。
然而,密钥的选择并非简单问题。在安装过程中,信息最终需要被解密,即恢复为可读状态。能否为所有售出的iPhone设置一个静态密钥?显然不行。静态(即硬编码)密钥会带来诸多问题:攻击者只需找到一个密钥,就能解密所有App Store创建的档案。一旦密钥暴露,破解的安装包将迅速在网络上传播。一种看似可行的方法是按设备分配不同的密钥(例如,iPhone 12使用一个密钥,iPhone 13使用另一个),利用硬件特性。但这种方法也不可行,因为密钥可能在多个设备间共享。
实际的解决方案是生成“动态”密钥,即根据安装设备、支付应用的Apple账户以及交易期间交换的元数据(以防止伪造)生成密钥。苹果在收到App Store的新请求时对IPA文件内容进行加密,使用与Apple账户关联的公钥加密。设备接收档案后,解压缩并使用设备内的私钥解密二进制文件。
解密发生的点是一个重要的集中化节点,可能被攻击者用来尝试解密IPA文件。如果攻击者能够弄清楚如何从设备和关联账户生成私钥,苹果的保护系统将立即失效。为了应对伪造风险,苹果在设备中加入了一些机制,向云服务(App Store、iCloud、Apple Signing)证明数据包确实来自苹果设备,而非模拟设备。然而,由于技术限制,无法100%证明“我不是模拟设备,请给我二进制文件,我是[myaccount@icloud.com]”。
静态分析与混淆技术
FairPlay是苹果在知识产权保护方面的核心技术之一。苹果开发了多项专利来描述和保护这项技术,例如美国专利US8934624B2(将数字内容单位的权利与下载分离)和欧洲专利ES2373131T3(使用解密密钥安全分发内容)。保护解密过程的工作方式是另一组“反逆向工程”技术的核心目标,这些技术被称为软件混淆。
我们知道,在分析软件的多种技术中,静态分析是一种无需执行程序即可深入调查软件特定部分的方法。静态分析的主要技术是逆向工程,通过从原始二进制代码推断信息来重建原始代码。
原始二进制文件主要包含两类信息:数据和指令。通过一系列步骤,工具如Ghidra、IDA或Binary Ninja可以重建大部分原始源代码。虽然重建不完美,但软件分析师能够推断出软件的许多语义:它如何工作、调用哪些方法、使用操作系统的哪些信息等。
通过逆向工程,可以较为精确地推导出FairPlay用于解密内容的算法。通过分析数据,可能推断出密钥的构造方式,经过足够努力,攻击者可能开发出解密工具。这对苹果及其投资者来说是个问题。保护指令和数据的解决方案是应用混淆技术,使逆向工程分析更加困难。
混淆技术属于计算机科学中的软件安全学科,旨在保护程序中的代码和信息。混淆的应用包括:保护知识产权、增加逆向工程难度以防止发现漏洞、缓解漏洞利用。这些技术应用于程序的语法(即原始指令),隐藏原始语义。操作原始代码非常复杂,需要坚实的基础以避免副作用。
在接下来的段落中,我们将看到FairPlay如何隐藏指令和数据。这些技术是否真正有效?我们将在文章末尾尝试回答这个问题。需要注意的是,混淆和代码保护技术必须在每次发布时更新,因为没有永久的保护方案。通过混淆,我们可以复杂化逆向工程的尝试,但无法完全阻止二进制文件的分析。
fairplayd守护进程
在接下来的段落中,我们将详细分析苹果操作系统家族中的用户空间守护进程。FairPlay不仅限于iOS移动平台:macOS也使用FairPlay通过安全通道传输受保护的数字内容(电影、电视剧等)。这一子技术称为FairPlay Streaming,通过加密内容分发版权内容。有关其工作原理的高层次概述可参考《FairPlay Streaming Overview》。
我们希望了解FairPlay在macOS中的使用情况,并检查其算法是否通过混淆技术

...(已截断)

---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-288863.htm
#2 2026-06-01 21:09:18
感觉是编译器llvm级别的混淆处理,毕竟llvm大神最开始就是在apple里。

请登录后参与讨论

立即登录 注册账号