验证 App Store 收据

验证 App Store 收据

💡 原文英文,约1800词,阅读约需7分钟。
📝

内容提要

本文介绍了使用Python解码和验证Apple的Receipts文件的原理和细节,可以提取出用户的IAP历史信息,并使用Apple的公钥验证签名,以保证Receipts文件的安全性。

🎯

关键要点

  • 本文介绍了使用Python解码和验证Apple的Receipts文件的原理和细节。

  • Apple的Receipts文件采用PKCS #7容器格式,包含签名、证书链和ASN.1编码的payload。

  • iOS 7引入了NSBundle.appStoreReceiptURL,允许开发者访问用户的IAP历史。

  • 开发者通常将Receipts文件视为令牌,而非实际数据。

  • Receipts文件包含用户的IAP历史信息,且Apple提供了验证和提取这些信息的方法。

  • Receipts文件使用ASN.1编码,Apple通过PKCS#7容器包装实际的收据数据。

  • Apple使用加密签名来保证Receipts文件内容的有效性。

  • 验证过程包括解析PKCS#7容器、提取证书和签名、以及验证签名。

  • Apple使用证书链来减少根证书的安全风险。

  • 开发者需要下载受信任的Apple根证书以验证其他证书。

  • Receipts数据本身是一个ASN.1容器,包含多个ReceiptAttribute。

  • 开发者可以提取ReceiptAttribute并将其转换为Python对象。

  • 提取的in_app属性包含用户的内购信息,开发者可以进一步解析这些信息。

➡️

继续阅读