Code Signing

代码签名和SSL证书的原理基本类似。 假设Bob是一名开发者,写了一个软件,然后他想运行在iPhone上。 那么Bob需要做什么呢。 首先他需要向Apple公司申请证书。将自己的包含公钥的CSR文件提交给Apple,Apple认证后对其做Hash并用自己的私钥加密哈希。 然后弄成证书提交给Bob。 Bob用自己的私钥对程序的哈希值进行签名,并附上自己的证书,提交给Apple进行审核。 Apple首先会对提交过来的程序进行验证,比如对证书进行验证,通过自己的公钥解密证书,看Bob是否是被认证的开发者。 然后使用Bob的公钥解密签名,得到代码的哈希,查看看程序的完整性。 解析来就是查看程序是否符合Apple的规范了。如果审核通过,Apple将使用自己的私钥对代码进行签名并附上自己的证书。一起放到AppStore上。 当iPhone将程序下载下来,运行之前会有检查程序签名的机制,如果发现签名有问题,或者程序被修改过,那么就直接将程序kill掉。

猜你喜欢

转载自lukejin.iteye.com/blog/587207