Oct 9, 2021 Viewed: 19 Tags: 超级签名   企业签   TF签名   IOS签名   APP封装  

IOS签名由哪几部分组成?

各种代码都可以做签名,包括工具、应用程序、脚本、库、插件和其他“类似代码”的数据。 此外,您可以创建签名的安装程序包和签名的磁盘映像。 在所有情况下,IOS签名由三部分组成:

 

  • 印章。 这是代码各个部分的校验和或哈希的集合,由IOS签名软件创建。 印章可在验证时用于检测更改。

  • 一个数字签名。 IOS签名软件使用签名者的身份对印章进行加密以创建数字签名。 这保证了密封的完整性。

  • 代码要求。 这些是管理IOS签名验证的规则。 有些是验证者固有的(取决于其目标)。 其他由签名者指定并用其余代码密封。

 

印章

 

IOS签名机制通过单向散列算法运行最终包(应用程序、库或框架)的不同部分(包括可执行文件、资源、Info.plist 文件、代码要求等)来生成印章。 这会产生一系列摘要或校验和,它们是特定输入块所独有的短数字字符串,但不能用于重建原始输入。

 

一个同时拥有被评估代码和相应散列集合的验证实体,以与签名者完全相同的方式对代码运行相同的散列算法,并将结果与原始存储的散列进行比较,看看是否有任何东西 改变了。 即使对代码稍作修改,也会产生不同的摘要,这表明篡改或损坏。 但是,这种验证仅与存储的散列的可靠性一样可靠。 数字签名保证了这一点。

 

数字签名

 

如安全概述中所述,数字签名使用公钥加密来确保数据完整性。就像用墨水写在纸上的签名一样,数字签名可用于识别和验证签名者。然而,数字签名更难伪造,更进一步:它可以确保签名的数据没有被篡改。这有点像设计一张纸质支票或汇票,如果有人更改了书面金额,则在纸上可以看到带有“无效”字样的水印。

 

在IOS签名的上下文中,签名软件通过使用签名者的私钥加密印章的哈希值来创建数字签名。因为只有签名者拥有私钥,所以只有签名者才能进行加密。签名者在应用程序(或框架、档案或其他签名对象)中存储的加密哈希集合,以及匹配的证书,共同代表数字签名。

 

为了验证签名,验证软件在不同的代码和数据块中计算相同的散列集。然后它使用嵌入在证书中的签名者的公钥来解密代码附带的加密哈希,从而获得签名者计算的原始哈希。如果两个哈希值匹配,则数据没有被修改,因为它是由拥有签名者私钥的人签名的。

 

尽管对于IOS签名工作没有严格要求,但证书本身通常由受信任的证书颁发机构签名。如果不是,验证者可以确保证书从一个版本到另一个版本的稳定性,但不能确定其来源。如果是,则证书颁发机构(通常是 Apple)会担保签名者的身份。

 

签名代码可能包含几个不同的数字签名:

 

  • 如果代码是通用的,则每个切片(架构)的目标代码是单独签名的。此签名存储在二进制文件本身中。

  • 应用程序包的各种数据组件(例如 Info.plist 文件,如果有的话)也被签名。这些签名存储在包内名为 _CodeSignature/CodeResources 的文件中。

  • 嵌入在应用程序中的嵌套代码(例如库、辅助工具和其他代码位)本身已签名,并且它们的签名也存储在包内的 _CodeSignature/CodeResources 中。

 

代码要求

 

代码要求是 macOS 用来评估IOS签名的规则。进行评估的系统根据其目标决定在评估时应用哪些代码要求。例如,Gatekeeper 有一个规则,在允许应用程序首次启动之前,它必须由 Mac App Store 或 Developer ID 证书签名。再举一个例子,一个应用程序可以强制执行一个代码要求,该应用程序使用的所有插件都应该由 Apple 签名。

 

由签名者指定并包含在IOS签名中的代码要求称为内部要求。这些可用于验证IOS签名的系统,但系统可以选择使用或不使用它们。上例中的应用程序插件可能有其自身的内部要求,但由评估系统,即使用该插件程序的应用程序来决定是否应用它们。因为印章涵盖了代码要求,所以只要签名有效,内部要求也肯定是完整的。

 

最重要的内部需求是指定需求或 DR。此规则告诉评估系统如何识别特定的代码段。具有(并成功验证)相同 DR 的任何两段代码都被认为是相同的代码。这允许IOS签名者发布被视为同一应用程序的应用程序的新版本。例如,Apple Mail 的 DR 可能“由 Apple 签名并具有标识符 com.apple.Mail”。当应用程序的新版本发布时,只要应用程序的新版本具有相同的 DR,它仍然被视为 Apple Mail,即使二进制可执行文件完全不同。此外,只有 Apple 可以以 Apple 的身份签名,因此没有其他人可以制作伪装成 Mail 应用程序的应用程序。

 

程序标识符或整个指定的要求可以由签名者明确指定。通常,签名机制使用在其 Info.plist 文件中找到的程序名称作为 CFBundleIdentifier 以及保护IOS签名的签名链自动构建指定的需求。实际上,代码要求被表述为用专用语言编写的脚本,它描述了代码必须满足的条件(限制)才能为某些目的所接受。


如果您需要将您的APP发布到IOS上并且遇到了困难,我们漫林科技团队也提供高性价比、稳定、安全的苹果企业签名,欢迎大家前来咨询!

 

我们的业务涵盖:

 

超级签名,企业签,tf签名,IOS签名,app封装

 

如您需要以下服务也可以找我们:

 

线上签名app,手机签名app,苹果签名app,h5封装app,iOS超级签名,iOS企业签名,iPhone超级签名,苹果企业证书,苹果超级签名,网页封装app,ios打包,Ipa在线安装,iOS信任开发者,iOS签名证书,iostf签名,应用分发平台,网站转app,ios免签封装,ipa签名工具,ios企业证书,p12证书,iphone信任开发者,超级签名系统,app发布平台,用开发者证书签名,ios描述文件制作,苹果安装ipa,h5打包apk  ios企业签名平台 ipa企业签名 iOS签名平台 tf签名 ios签名 ios超级签名 Ipa 提取 Ipa 下载地址。

 

漫林科技,只提供最优质的的服务!


相关服务:


ios企业签名

iOS超级签名系统

ios超级签名实现

ios签名

超级签名价格

超级签名是什么

iOS 自助 签名

iOS自动签名




More blogs