Ios系统ipa文件应用分发签名的应用原理

Ios系统ipa文件应用分发签名的应用原理

显示某些数据以指示我批准(命名)数据,然后将其发送给其他人。其他人可能知道此数据已由他们自己进行了身份验证,并且尚未被篡改。

首先,使用一种算法来计算原始数据的摘要。必须满足如果原始数据有任何变化,则计算出的汇总值将发生变化。 b。摘要应该足够简短。此处最常用的算法是MD5。

它生成用于非对称加密的公钥和私钥。按住您的私钥并发布您的公钥。

对于一条数据,在计算摘要之后,您可以使用私钥对摘要进行加密以获得加密的数据,这称为原始数据签名。将其与原始数据一起发送给用户。

用户接收到数据和签名后,便使用公共密钥对其进行解密以获得摘要。同时,用户使用相同的算法来计算原始数据的摘要,并将此处计算的摘要与通过使用公钥解密签名获得的摘要进行比较。如果它们相同,则数据未被篡改。如果损坏,则总结为实物

让我们看看什么是苹果的签名机制。在iOS发行之前,在主流操作系统(Mac/Windows/Linux)上开发和运行软件不需要签名。由于该软件可以在任何地方下载,因此该平台很难控制第三方软件,并且盗版变得很流行。苹果希望解决此问题。您可以完全控制iOS平台上的第三方应用程序。您需要确保iOS上安装的所有应用均已得到Apple的正式批准。您如何保证?通过签名机制。

您在Mac开发计算机上生成了一对称为公钥L和私钥L的公钥和私钥。本地

苹果本身具有固定的公钥和私钥对。与上面的AppStore示例一样,私有密钥位于Apple的后端,公共密钥位于每个iOS设备上。这些称为公钥A和私钥A。苹果

将公钥L传递到Apple后端,并使用Apple后端的私钥A签名公钥L。获得的数据包含公钥L及其签名,该数据称为证书。

通过在Apple后台申请AppID,配置可在APP中使用的设备ID和权限列表,在步骤③中配置证书,使用私钥A对配置的数据进行签名,将数据和签名结合在一起,在本地下载的配置文件文件来形成。 Mac开发机。

在开发过程中编译APP后,用本地私钥L对APP签名,并将步骤④中获得的Provisioning Profile文件打包到APP中,文件名为embed.mobileprovision,并将APP安装在手机上。在安装过程中,iOS系统会获取证书,通过系统中内置的公钥A验证embed.mobileprovision的数字签名是否正确,然后重新验证内部证书签名。

在确认Embedded.mobileprovision中的数据已被Apple批准后,您可以取出内部数据并执行各种验证,例如使用公钥L检查APP签名,确认设备ID在ID列表中以及确认AppID与此相对应。权限开关是否对应于应用程序的权限等。

苹果从签名到对开发人员证书进行身份验证所采用的过程几乎相同,其中有一些细节,例如证书/证书类型有效的时间。我不会详细介绍。

概念与运作

上面的步骤通常对应于特定的任务和概念,例如:

步骤1对应于钥匙串中的“从证书颁发机构请求证书”。在此,本地生成公用和专用密钥对。存储的CertificateSigningRequest是公用密钥,而专用密钥存储在本地计算机上。

步骤2苹果处理,请放心。

步骤3对应于生成证书并通过将CertificateSigningRequest传递到Apple后端在本地下载证书。此时,本地有两个证书,一个是在步骤1中生成的,另一个是从此处下载的。钥匙串连接这两个证书,因为公钥和私钥匹配。实际上,如果选择通过XCode下载的证书,则可以对钥匙串中的相应私钥进行签名。此处的私钥只能由生成私钥的Mac使用。如果我也需要在另一台Mac上编译并签名此应用程序怎么办?答案是将私钥导出到另一台Mac。导出钥匙串的私钥时,它会另存为.p12文件。其他Mac打开私钥并将其导入。

第四步是在Apple网站上工作,配置AppID /权限/设备等,然后最终下载Provisioning Profile文件。

步骤5 XCode在步骤3中下载证书(存储在公共密钥中),在本地找到对应的私有密钥(在第一步中生成),并使用本地私有密钥,供应配置文件的名称对应用程序进行签名指定。 Embedded.mobileprovision打包在一起。存储应用程序的签名数据分为两部分,Mach-O可执行文件将签名直接写入此文件,其他资源文件存储在_CodeSignature目录中。Xcode和iOS系统自动完成步骤6-7中的打包和验证。

以下是这些概念的摘要。

证书:内容是公钥或私钥,是一个数据包,其中包含来自其他机构的签名。

权限:包含应用程序权限开关的列表。

CertificateSigningRequest:本地公钥。

p12:可以导入到另一台计算机的本地私钥。

供应配置文件:数据包,其中包含诸如证书/授权机构之类的数据,并使用Apple的后端私钥签名。

(0)

相关推荐

  • 如何导出 iOS App 的 .ipa 文件?

    __Null 12019.04.17 22:06:32字数 800阅读 26,993 做iOS开发经常会研究一些自己感兴趣的App,甚至仿写一些很赞的功能和交互,如果有这个应用的一些资源文件,也会给我 ...

  • 不久,iPhone和Apple Watch将像汽车钥匙一样工作

    本文来源:物联传媒 本文作者:莫非 据SlashGear报道,本周发布的最新iOS 13.4测试版,其中提到了一个名为Carkey的系统代码.能够使用这个软件的Apple Watch和iPhone用户 ...

  • ios苹果签名的ipa文件的应用签名原理和签名稳定性分析

    AppStore官方商店购买,公司证书安装或TestFlight下载.为了阻止盗版,软禁,病毒入侵,无提示安装和其他您无法控制的因素,并确保正式允许iOS设备上安装的所有应用程序,Apple建立了一套 ...

  • 喜大普奔!iOS系统完美屏蔽文件新鲜出炉

    明美无限 果粉关注不迷路! 文|明美无限 2020年六月份早已经过半了,相信有持续关注明美无限至今的果粉们应该都明白了,对于一些老机型大家也都知道系统是越升越卡,ios 11那个奇葩系统除外.现在苹果 ...

  • iMazing中IPA文件的介绍与管理

    这款专业管理iOS设备的工具iMazing不但功能众多,而且软件反应迅速.相对于苹果官方软件iTunes用起来方便很多. 比如它可以轻松地传输和保存音乐.消息.文件和数据,用好这些功能可以更方便快捷地 ...

  • 无需越狱,一键屏蔽iOS系统更新

    很多小伙伴表示自己实在不想升级系统了,但是苹果天天提醒你更新,而且设置应用上的小红点一直存在,对于有强迫症的小伙伴来说真的非常难受,今天疯师傅就教你一招,无需越狱就可以屏蔽系统更新. 第一步:进入设置 ...

  • 教学管理菜鸟成长记78-抛弃系统的文件搜索,Everything is OK!(文末有福利赠送)

    关键词:Everything:文件搜索:操作难度** 工作时间一长,咱们电脑里会积累许许多多的文件,在记忆力基本靠回忆的情况下,工作中我们还经常需要去找一些过去时的文件,windows系统里自带的文件 ...

  • win10系统dll文件在哪

    win10系统dll文件在哪?下面一起来了解下吧. win10 32位系统dll文件存放在路径C:\Windows\System32,win10 64位系统dll文件存放在路径C:\Windows\S ...

  • 独家整理:苹果ios系统里隐藏的12个实用技巧,几千块没白花

    苹果手机之所以这么受欢迎,除了流畅的系统之外,还有ios系统里隐藏的多个很实用的小技巧. 这里就来分享苹果ios系统里,隐藏的12个实用功能,能让你的iPhone更好用哦. 1.隐藏主页页面 主页的页 ...

  • XP系统,文件夹设置共享,如何设置只可写入,不可删除!

    方法/步骤 1.首先,要设置共享文件的这个磁盘格式必须是ntfs格式. 2.打开我的电脑,[菜单]-[工具]-[文件夹选项],取消简单文件夹共享. 3.建立共享文件夹,选择[属性]-[安全] 4.选择 ...