9

有没有办法知道使用哪个证书应用程序签名?

我想保护应用程序免于使用另一个开发人员证书辞职。

假设我们有客户端-服务器应用程序。服务器保留与开发人员证书相关联的唯一密钥

因此,对于服务器的每个请求,我们都会传递这个密钥,如果应用程序将与另一个开发人员的证书重新组合,那么服务器就会知道这一点。

这个有可能?或者可能有其他方法可以防止辞职?

4

1 回答 1

2

embedded.mobileprovision您可以通过手动解析应用程序包中包含的文件中的数据来了解用于签署应用程序的证书和配置文件。如果您查看该文件,您将看到有关证书和配置文件的信息。

以下是如何以编程方式从您的应用程序中获取嵌入式配置文件数据的示例:

NSString* bundleDirectory = [[NSBundle mainBundle] bundlePath];
NSString* db = [NSString stringWithFormat:@"%@/embedded.mobileprovision", bundleDirectory];
NSData* data = [NSData dataWithContentsOfFile:db];
// parse through the data to get your provisioning profile info. I'd recommend opening up the profile that is inside your .app to see how it is structured.

然而:

我不确定您为什么需要这样做,因为没有人可以重新签署您的应用程序,除非他们拥有正确的证书来匹配为您的应用程序捆绑 ID 制作的配置文件。

获得它的唯一方法是拥有拥有捆绑 ID 的苹果开发人员帐户的凭据,或者如果有人“获得”您的证书和配置文件的访问权限。

如果发生后者,我认为您应该从苹果开发人员帐户中撤消该配置文件并创建一个新的配置文件来解决安全漏洞。这样,只要您可以访问开发人员帐户,您就可以随时踩踏这种安全漏洞,而不是在客户端和服务器之间编写代码来检查它。

于 2014-02-06T20:00:59.393 回答