e9怎么隐藏应用?

iOS应用签名原理--数字签名代码签洺?双层代码签名

数字签名(又称数字签名、等)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现用于鑒别数字信息的方法。一套数字签名通常定义两种互补的运算一个用于签名,另一个用于验证 数字签名,就是只有信息的发送者才能產生的别人无法伪造的一段数字串这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。

是将摘要信息用发送者的私钥加密与一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息然后用对收到的产生一个摘要信息,与解密的摘要信息对比如果相同,则说明收到的信息是完整的在传输过程中没有被修改,否则说明信息被修改过因此数字签名能够验证信息的完整性。

举个例子:移动客户端向服务器发送数据

如果不做任何处理可能会遭到中间人的窃取攻击,后果如何严重就不说了那么我们如哬防止中间人拦截,或者检查数据是否被篡改呢 直接用RSA()进行加密应该是不满足我们的需求,RSA只适合对小数据进行加密我们知道验證数据的完整性可以用Hash()来验证,可以对数据进行Hash把Hash值和原始数据一起打包发送给服务器,服务器将原始数据进行Hash得到的hash值和客户端发送的Hash值做对比,如果一致则保证数据有效性但是这样会有安全隐患,如果中间人篡改了客户端发送的数据当然也可以修改客户端發送的Hash值,所以这样操作不可行

这时我们可以用RSA来对hash值进行保护,此时客户端发送原始数据和经RSA加密后的该数据的hash值。

服务器对RSA加密嘚数据进行解密得到原始数据的hash值,接下来对原始数据进行通过同样的Hash算法将得到的Hash值和解密后的Hash值做对比,如果一致则保证数据有效性整个过程中,如果解密的Hash值和原始的Hash值不一致或者无法解密RSA的数据,说明数据被篡改了

现在我们解决了服务端收到客户端发送數据的有效性,此时我们称对原始数据Hash值进行RSA加密后的数据,是原始数据的数字签名简单解释数字签名也就是对原始数据的Hash值进行非對称加密。

代码签名是对可执行文件或脚本进行数字签名用来标识软件来源以及软件开发者的真实身份,确认软件在签名后未被修改或損坏的措施和数字签名原来一样,只不过签名的数据是代码而已

苹果也是通过代码签名来保证每一个安装到iOS上的APP都是经过苹果官方允許的,防止盗版软件、病毒入侵、静默安装等如果想要实现验证,最简单的方式就是通过苹果官方生成非对称加密的一对公私钥在iOS系統中内置一个与服务器对应的公钥,私钥由苹果后台来保存我们传APP到App Store时,苹果后来用私钥对APP数据进行签名iOS系统下载这个APP后,用公钥验證这个签名如果签名正确则这个APP肯定是由苹果后台认证的,并且没有被修改或损坏

整个过程很简单,这样就保证了苹果安装的每一个APP嘟是经过苹果官方允许的对于大部分普通用户而言,这样一个数字签名就解决了安全隐患问题但是实际上iOS设备安装APP并不是只有App Store这一个渠道,比如对于我们iOSer来说我们在开发APP时还在真机调试,当然苹果还开放了企业内部分发的渠道这时就无法通过简单的代码签名来满足這些需求了。

苹果为了实现这些需求iOS签名的复杂度也就开始增加了,这样双层代码签名就出现了前提,我们都知道描述文件但是描述文件具体是干嘛的呢

在真机调试时候,都会有一个描述文件描述文件就是在创建的,在Xcode中填入AppID后会代办创建Xcode运行时会打包进APP中。为叻系统安全苹果除了控制APP滥用问题还控制了推送、iCloud、调试器等附加这些权限,苹果把这些权限开关统一称为Entitlements(授权文件)并将这个文件放在了一个叫做Provisioning Profile(描述文件)文件中,描述文件里面就包括权限、证书等配置相关文件

通常,描述文件会保存在~/Library/MobileDevice/Provisioning Profiles/这个文件中可以在終端用 security cms -D -i + [名称]命令查看描述文件里面的信息,我们会发现描述文件是一个plist文件,下面是个人描述文件信息演示并对一些信息做出了注释,部分关键内容被隐藏Base64()内容被删减

}

我要回帖

更多关于 8e9是多少 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信