ios苹果企业签名存在意义到底是什么?

栏目:苹果动态 时间:2019-10-26 15:04 作者:ios签名
ios苹果企业签名存在意义到底是什么?
  每个事物存在于世上就必有其存在的意义,就拿ios苹果企业签名来说,大家不想了解一下其机制的意义跟稳定性吗?接下来跟随ios企业签名小编来了解一下吧:
 
  首先要说明两点
 
  1,每台iphone设备应该都有苹果特有的公钥
 
  2,每个通过App Store下载的应用都会带有苹果通过私钥的签名
 
  接下来说一下逻辑
 
  1,使用相同的hash算法对下载的到用户手机的App进行处理得到摘要1
 
  2,使用App公钥对签名进行解密,得到摘要2
 
  3,判断摘要1和2是否相等,
 
  如果相等那么认证成功否者安装失败如果没有企业账号可借助第三方平台(如: ht:wwipazwi com/)进行苹果企业签名。
 
  开发者以上流程可以满足- -个普通用户的需求,但是无法满足开发者的需求因为开发者为了调试需要无数次的安装app如果每次都需要上传苹果签名大家会疯的所以苹果为开发者建立了本地签名系统开发者会在自己的电脑上生成用于签名认证的公钥和私钥,以后安装app到手机上时会在本地进行认证,而无需将app上传到苹果的服务器上签名。但是苹果也必须要维护自己控制app安装的权利,那么苹果会怎么做呢?答案就是使用数字证书。证书开发者通过钥匙串访问~证书助理>从证书颁发机构请求证书生成Ceticate Signing Request文件(CSR文件) ,同时也在本地自动生成了相应的公钥和私钥,在填好必要的信息后,开发者将CSR文件上传给苹果用于生成数字证书。
 
  CSR文件记录了开发者的个人信息公钥、 加密算法以及Hash算法等内容,可以使用以下命令来查看文件内容:
 
  openssI asn1parse i -inCertificateSigningRequest.certSigningRequest
 
  苹果收到CSR文件后,会使用自己的私钥对开发者的公钥进行签名,最终生成一个数字证书(包含开发者账号信息 公钥以及相应的签名)返回给开发者 ,查看证书信息的命令如下
 
  openssl x509 -inform der inios_ development.cer -noout text
 
  点击安装证书后,钥匙串会自动将证书和相应的私钥对应起来,同时你还需要在Xcode中将签名证书设置为你刚则安装的证书。此后在编译完app时,系统会使用数字证书对应的本地私钥对app进行签名,然后同数字证书一起安装到手机上,接下来ios设备会通过Apple公钥来验证数字证书是否有效,验证通过后会使用数字证书中的公钥来验证app是否有效,最终判断app是否可以被安装Provisioning Profile
 
  仅有数字证书是不够的,为了防止权限被滥用,开发者还需要在苹果官网上注册用于开发的设备,仅有注册后的设备才被允许按照以上流程安装app,官方限制最多100台
 
  除此之外,苹果还需要对app的权限进行控制,例如是否能够使用iCloud. Wallet. Maps 等,苹果将这些功能授权统称为Entitlements。开发者将上述权限配置完成后,需要从苹果后台下载并安装相应的mobileprovision文件,该文件包含:
 
  1,Appld
 
  2,功能授权列表
 
  3,已注册的设备列表4,数字证书
 
  5,苹果签名
 
  当然,如果有需要的话,你可以使用以下命令来查看mobileprovision文件内容
 
  1.开发者在本地生成公钥和私钥然后把公钥上传给苹果并获取数字证书
 
  2,开发者在后台配置Appid,开发设备功能权限最后下载描述文件
 
  3,开发者用本地私钥签名app并将描述文件随app安装到ios设备
 
  4,i0S设备使用Apple公钥验证mobileprovision文件的签名以及数字证书的签名
 
  5.使用数字证书包含的公钥来验证app的签名
 
  6,验证安装app的设备是否在设备列表中, Appld是否一致, Entitlements和app中的权限是否对的上等等
7x24小时 在线咨询
LINKS友情链接