菜鸟教程小白 发表于 2022-12-11 18:16:41

iOS 代码签名


                                            <p><p>我了解 RSA 加密背后的数学原理,但是,我无法将其与 Apple 的术语和身份验证过程相协调。我们有以下实体:</p>

<ul>
<li>我的个人 key 对</li>
<li>Apple 的 key 对</li>
<li>我的开发证书</li>
<li>我的分发证书</li>
<li>Apple 的 Apple 全局开发者关系证书</li>
<li>我的开发配置文件</li>
<li>我的分发配置文件</li>
</ul>

<p>以及以下不同的运行模式:</p>

<ul>
<li>从 App Store 运行应用</li>
<li>运行为 Beta 测试而分发的应用</li>
<li>在开发环境中运行应用/调试</li>
</ul>

<p>所有这些如何协同工作以实现目标?我所说的“一起工作”,是指明确表示什么、何时、何地的标志。</p>

<p>我现在的刺是:</p>

<ol>
<li>我生成了一个公钥/私钥</li>
<li>我向 Apple 发出证书请求:我向他们发送我的公钥和一些关于我是谁的信息,并使用我的私钥对其进行签名。然后,Apple 使用一些加密哈希来验证信息,并且我确实拥有该公钥。然后,Apple 将我的信息与注册的 Apple 开发人员核对,如果一切顺利,则颁发证书(包括我的公钥),并使用他们的私钥对整个事情进行签名。可以拥有由 Apple 签署的用于不同目的的不同证书。</li>
<li>我将此证书包含在我想在其上运行代码的任何配置文件中(作为 ipa 的一部分,或以其他方式)</li>
<li>当我尝试在设备上运行应用时,如果设备意识到它不是由 Apple 直接签名的,它会查看我安装在其上的配置文件</li>
<li>如果 App IDcheckout ,并且它是列出的注册设备之一,它会查看证书</li>
<li>它使用 Apple 的公钥检查证书的签名,以验证证书是否由 Apple 签名,从而设备可以信任证书的真实性</li>
<li>然后它使用证书中包含的我的公钥检查代码签名的应用程序,如果匹配,则它知道受信任的开发人员对应用程序进行了代码签名</li>
<li>现在可以运行应用了</li>
</ol>

<p>我不知道 Apple 的全局证书是干什么用的?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>通过开发者门户创建的配置文件由 Apple 签名。
您的配置文件中包含您的证书,因此 ipa 的协同签名身份必须与配置文件中的身份匹配。
当应用程序启动时,iOS 可能会检查代码设计是否与配置文件匹配,以及配置文件是否有效。
当配置文件是 development/ad-hoc 时,它还会检查设备是否具有启动应用程序的权限。
此外,当应用程序提交给 ITC(用于 AppStore 或 TestFlight)时,Apple 会使用其证书/ key 对其进行签名和加密。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS 代码签名,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/40981694/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/40981694/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS 代码签名