未签名的应用程序请求对系统进行无限制访问_iOS App签名的原理了解一下(下)...

加点东西:

上述流程只解决了上面的第一个需求,也就是需要经过苹果的允许才可以安装,还未解决第二个避免被滥用的问题。怎么解决呢?苹果加了两个限制,一个是限制在苹果后天注册过的设备才可以安装,二是限制签名只能针对某个具体的App。

在上述的第三步中,苹果用私钥A去签名我们本地公钥L时,实际上除了签名公钥L,还可以加上很多数据,这些数据都可以保证是经过苹果官方认证的,不会有被篡改的可能,那么我们就可以把AppID和设备ID添加进去:

d74bf932b2e82cb3cb21e1ef5f2728e9.png

把允许安装的设备ID和APP对应的AppID等数据,都在第三步这里和公钥L一起,被私钥A签名,一起组成证书。在第五步验证时就可以拿到设备ID列表,判断当前设备是否符合要求。

最终流程:

到这里这个证书已经变得很复杂了,有很多额外的信息,实际上除了设备ID,AppID,还有其他信息也需要用苹果签名,像App里面的iCloud,后天运行等苹果都想控制,苹果把这些权限开关统称为entitlements,它也需要通过签名去授权。

但是一个证书本来就有规范的格式,我们把这些杂七杂八的额外信息赛入证书是不合适的,因此苹果另外搞了一个东西叫Provisioning Profile,一个Provisioning Profile里面就包含了证书以及上述提到的所有额外信息,以及所有信息的签名。

所以最终流程就变成了这样:

4e56903c55a28574ed941def7201ad99.png

1.在你的Mac上生成一对公钥和私钥,称为公钥L和私钥L。

2.苹果自己有一对固定的公钥和私钥,私钥在苹果后台,公钥内置在iOS设备中,分别称为私钥A和公钥A。

3.把公钥L传到苹果后天,用苹果后天的私钥A去签名公钥L,得到一份数据包括公钥L和签名,这份数据称为证书。

4.在苹果后台申请好AppID,配置好设备ID列表,App权限开关,再加上第三步的证书,组成的数据用苹果后天的私钥A签名,把数据和签名一起组成一个Provisioning Profile文件,下载到本地Mac。

5.在开发时,编译完一个App后,用本地的私钥L对这个App进行签名,同时把第四步生成的Provisionning Profile一起打包进App里,文件名为embeded.mobileprovision,把App安装到手机。

6.在安装时,就可以使用iOS设备里内置的公钥A来验证Provisioning Profile的数字签名是否正确。

7.如果数字签名没有问题,那么就能确保设备ID,AppID,entitlements,和App都是经过苹果认证的,可以安装到iOS设备上。

上面的步骤对应我们平时具体操作和概念是这样的:

1.第一步对应的是从keychain里“从这证书颁发机构请求证书”,这样就在本地生成了一对公私钥,保存的额CertificateSigningRequest就是公钥,公钥保存在本地电脑里。

2.第二步苹果处理,不用管。

3.第三步把CertificateSigningRequest上传到苹果后天,生成证书,并下载到本地。

4.第四步是在苹果网站操作的,配置AppID,设备ID,权限等,生成Provisioning Profile文件,并下载Provisioning Profile文件到本地。

5.xcode通过第三步下载下来的证书,去找对应的本地私钥,用本地私钥去签名App,并把Provisioning Profile文件一起打包进去,安装进iOS设备。

总结一些概念:

1.证书:内容是公钥或者私钥,由其它机构对其签名组成的数据包。

2.entitlements:包含了App权限开关列表,AppID,设备ID等。

3.CertificateSigningRequest:本地公钥。

4.p12:本地私钥。

5.Provisioning Profile:包含证书,entitlements等数据,并由苹果后台私钥签名的数据包。

我们平时的操作:

按照上面的流程,那么对于开发人员来说,应该是我们每次新建一个项目也就是有一个新的AppID时,都应该去申请一对本地公私钥,上传公钥到苹果后台,然后下载证书,但是实际上我们并没有这么做,好像很少需要去keychain请求本地公私钥,这是为什么呢?

这里的原因就是iOS Team Provisioning Profile。

iOS Team Provisioning Profile是第一次使用xcode添加设备时,xcode自动生成的,它包含了xcode生成的一个Wildcard AppID(匹配所有应用程序,账户里面的所有device,所有Development Certificates),因此team中的所有成员都可以使用这个iOS Team Provisioning Profile在team的所有设备上调试所有的应用程序,并且当有新设别添加进来时,xcode会更新这个文件。

5ea1678e6c7aa51e85165994923baca9.png

如此一来,只要我们有一对本地公私钥,并且通过这个本地的公钥上传给苹果获取了证书,那么以后我们运行任何App,在任何iOS设备上运行,都可以使用这个本地私钥和证书,而没有必要每次去创建新的公私钥和获取证书。

下面我从我的项目中找出一个iOS Team Provisioning Profile,我们可以一起来看一下它的结构:

b00e5c1f2a1952cc985e57e63562e559.png

第一个是AppID,这里的AppID是我当前应用的AppID。

第二个是证书,这就是选择了我本地的一个证书,是上面的流程中上传本地的公钥得到的证书。

第三个是team,这个是我在项目中选择的,这个team决定了我用哪个证书。

第五个是entitlements,就是一系列的权限开关。

通过这个iOS Team Provisioning Profile的结构我们就能明白,iOS Team Provisioning Profile中保存着很多分证书,很多AppID,很多设备ID,entitlements。当我们需要在一个指定的iOS设备上运行一个指定的App时,iOS Team Provisioning Profile就会得到这个AppID和这个设备ID以及它对应entitlements,组成这个特定的Provisioning Profile,打包进APP里面。这样就不需要我们每次去申请证书,生成Provisioning Profile文件了,非常方便。

注:这篇文章主要是把文章摘抄了一遍,由于作者写的太好了,让我茅塞顿开,于是想重新写一次加深理解,也方便以后查阅。

db159b1ee8666447ca995b1875c51b8d.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在iOS设备上安装1024app_ios_2.3.3.ipa,首先需要确保您的设备已越狱。如果您的设备已越狱,您可以通过以下步骤来安装: 1. 下载并安装iTools或Cydia Impactor等iOS应用程序安装器,您可以在互联网上轻松找到这些程序。 2. 下载1024app_ios_2.3.3.ipa文件,并将其拖放到iTools或Cydia Impactor中。 3. 连接您的iOS设备到电脑上,并启动iTools或Cydia Impactor。 4. 在iTools或Cydia Impactor中,找到您下载的1024app_ios_2.3.3.ipa文件,并将其安装到设备上。 5. 安装完成后,您可以在设备的主屏幕上找到该应用程序,并使用它。 需要注意的是,安装第三方应用程序可能会影响您的设备的稳定性和安全性。因此,请确保您下载的文件源可信,并注意您的设备被恶意软件攻击的风险。除此之外,还需要注意,随着iOS版本的更新,某些应用程序可能不再兼容,因此请确保您的iOS系统版本与该应用程序兼容。 ### 回答2: 1024app_ios_2.3.3.ipa是一个iOS应用程序的安装包。通常情况下,在iOS设备上安装应用程序,我们可以通过App Store来下载和安装。但是有时候,我们可能需要通过其他的方式来安装应用程序。 对于1024app_ios_2.3.3.ipa,我们可以通过以下的步骤进行安装: 1. 首先,我们需要将1024app_ios_2.3.3.ipa文件下载到我们的电脑或者Mac上。 2. 然后,我们需要将我们的iOS设备与电脑或Mac连接,打开iTunes软件。 3. 在iTunes软件中,点击“文件”选项,并选择“添加文件到库”或者“添加文件夹到库”,选择我们下载好的1024app_ios_2.3.3.ipa文件。 4. 然后我们需要将我们的iOS设备连接到电脑或Mac上,然后在iTunes软件中选择我们的设备,点击“应用”选项卡。 5. 在“应用”选项卡中,我们可以看到“文件共享”部分,选择我们需要安装的应用程序,然后点击“添加”按钮。 6. 直到该应用程序出现在我们的设备上,就表示该应用已经被成功安装。 需要注意的是,如果我们使用以上的方法安装应用程序,需要保证我们的iOS设备已经越狱。越狱后安装应用程序时,请务必注意是否为可靠的来源,避免因为应用程序源不可靠而遭受损失。 总的来说,1024app_ios_2.3.3.ipa的安装需要通过iTunes软件来完成,需要注意数据和设备的安全问题。同时,我们也可以使用其他的安装工具来完成安装,但是需要保证安装的可靠性和安全性。 ### 回答3: 1024app_ios_2.3.3.ipa是一款IOS系统的手机应用程序,如果你拥有这个文件,想要在自己的IOS设备上安装这个程序,那么可以按照以下步骤进行操作: 第一步:下载和安装iTunes软件 首先需要下载和安装iTunes软件,这个软件是苹果官方提供的一个多功能管理工具,可以用来管理你的IOS设备、备份和恢复数据、下载和更新应用等。下载iTunes的方法可以在苹果官网上找到,也可以通过第三方软件下载网站进行下载,安装完毕后,将iPhone连接到电脑上。 第二步:安装iTools软件 iTools可以理解为第三方的iTunes软件,也可以管理数据和软件,因为它界面简单易用所以被广泛地使用。下载iTools的方法可以在网站上找到,安装完毕后,将手机连接到电脑上。 第三步:将IPA文件拖入iTools软件中 把下载好的1024app_ios_2.3.3.ipa拖入iTools的应用程序的区域即可。iTools会自动执行安装过程,如果安装时间较长,请耐心等待,不要中途中断。 第四步:安装完成后打开应用 当安装完成后,在你的IOS设备上就会出现1024app的图标了,点击即可打开应用。如果弹出无法打开的提示,请检查设备是否已经越狱和IPA文件是否正确。 最后要提醒的是,在进行这个操作前需要确保IPA文件的来源是可信的,以免安装过程中的风险。 总之,通过这个方法,你就能够用1024app_ios_2.3.3.ipa安装你需要的IOS应用程序,让你的设备功能更加的强大。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值