现在知道了有非对称加密算法这东西,那么数字签名是怎么回事呢? 数字签名的作用是我对某一份数据打了个标记,表示我认可了这份数据(签了个名),然后我发送给其他人,其他人可以知道这份数据是经过我认证的,数据没有被篡改过。 有了上述非对称加密,就可以实现这个需求: ios签名的目的与算法
之所以要有第一步计算摘要,是因为非对称加密的原理限制可加密的内容不能太大(不能大于上述n的位数,也就是一般不能大于1024位/2048位),于是若要对任意大的数据签名,就需要改成对它的特征值签名,效果是一样的。 好了,有了非对称加密和数字签名的基础之后,怎么样可以保证一份数据是经过某个地方认证的,来看看怎么样通过数字签名的机制来保证每一个安装到iOS的app都是经过苹果认证允许的。 最简单的签名 要实现这个需求很简单,最直接的方式,苹果官方生成一对公私钥,在iOS里内置一个公钥,私钥由苹果后台保存,我们传App上AppStore时,苹果后台用私钥对App数据进行签名,iOS系统下载这个App后,用公钥验证这个签名,若签名正确,这个App肯定由苹果后台认证的,并且没有被修改过,也就达到了苹果的需求:保证安装的每一个App都是经过苹果认证允许的。
如果我们iOS安装App只有从AppStore下载一种方式的话,这样就可以搞定了,没有任何复杂的东西,只有一个数字签名,非常简单的解决问题。 但是实际上,因为安装App除了从AppStore下载,我们还可以有三种方式安装一个App:
苹果要对用这三种方式安装的App进行控制,就有了新的需求,无法像上面这件简单了。 提供长期稳定不掉线、可带推送功能的ios企业签名服务,跳过漫长艰难审核过程,直接为用户提供高速下载安装服务 |