gpt4 book ai didi

objective-c - 证书、配置文件、公钥/私钥揭秘

转载 作者:可可西里 更新时间:2023-11-01 03:52:32 25 4
gpt4 key购买 nike

这个话题一直困扰着我。我想我会写出我目前的理解,并希望找出我对的事情/我错的事情。

创建开发证书时,有一个公钥和私钥的概念。通过供应门户可用的证书持有公钥,而您的私钥存储在您的钥匙串(keychain)中。为了对您的应用程序进行代码签名,您必须同时拥有两者。

为了运行一个应用程序,设备必须有一个供应配置文件,它基本上保存了一个应用程序标识符、一组公认的证书(应用程序必须由这些证书之一签名)和一组设备标识符(指示允许哪些设备运行该应用程序)。

“认可的证书”引用了公钥,而私钥基本上由应用传递。

因此,对于 App Store,我们可以将普通设备视为带有默认 prov 配置文件,该配置文件已经具有苹果的“公钥”,并且苹果在分发之前执行自己的代码签名操作,从而添加他们的私钥.

完美?关?走开?疯了吗?

最佳答案

关于它的值(value),这是我最新的理解:

配置文件是一个文件,它告诉您哪些应用程序(通过 AppID)、由哪个开发人员签名(通过证书)可以在哪些设备(UDID)上运行。

对于证书,有公钥和私钥的概念。公钥和私钥在数学上联系在一起,这样一个人可以加密明文,一个人可以解密密文。证书允许 Apple 确保两件事:1,只有注册的开发者才能分发他们的代码,2,正在分发的代码在发送到您的设备的途中不会被更改。

当您在 Xcode 中构建代码时,您使用钥匙串(keychain)中的私钥对您的应用程序进行“代码签名”,从而“锁定”它。为了解锁/解密代码,目标设备必须能够访问您的公钥。设备从您的证书中获取公钥,该证书包含在配置文件中。

为了验证代码在从开发人员到设备的过程中保持不变,您的证书包含一种算法,可以将您的代码/数据转换为所谓的“摘要”。在开发人员方面,数据/代码通过算法运行,生成一个单独的摘要,然后用私钥锁定。

当设备收到应用程序包时,设备可以通过执行以下操作确保代码未被更改:使用私钥解锁摘要,通过算法运行未加密的数据(请记住,设备可以通过其 prov 配置文件访问证书),并确保结果是与开发人员发送的摘要相同的摘要。

除此之外,prov 配置文件只需要检查手机的 UDID,并确保配置文件中的 AppID 与应用中的标识符匹配。

我认为,我们不需要为来自应用商店的应用单独的 prov 配置文件的原因是因为每部 iPhone 都附带苹果用来编码签名分发应用的公钥。

关于objective-c - 证书、配置文件、公钥/私钥揭秘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13641809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com