数字签名
数字签名是先将数据做一次hash,得到数据摘要,然后将hash摘要做一次RSA加密。验证的时候,解密数字签名,得到hash,再拿hash和数据的hash做对比。
即 加密的hash 就是数字签名
苹果签名原理
-
对于要上AppStore得app,苹果只需要在自己得服务器和iPhone手机上保存一对RSA的密钥对,公钥放iPhone,私钥放苹果服务器,ipa先用私钥加密一次,然后在iPhone上用公钥解密,能解出来就说明是正版。
但是由于RSA加密耗时,因为要做多次n次方运算,所以更好的方法是使用数字签名
先将ipa做一次hash,将摘要用私钥加密,然后在iPhone用公钥解密,将解出来的摘要和拿到的ipa摘要对比一下,一致则是正版数据。 -
对于开发者要自己调试安装的ipa,首先,在本地生成一对RSA密钥对,公钥A和密钥A,然后把公钥A发到苹果,生成证书,证书里面有公钥A以及A的数字签名(苹果的私钥C来签名),本地拿到证书,用私钥A对ipa的hash加密,然后将 ipa,ipa的数字签名,证书一起倒入手机,手机用自己的公钥(公钥C)来解密证书,拿到公钥A,再用公钥A来验证ipa的数字签名。
为了控制开发版的ipa安装,苹果推出了描述文件,Provisioning Profile,将app ID,uuid和权限写入描述文件,指定该ipa能安装的设备。
网友评论