此篇文章来源于学习过程中的笔记,由于比较懒,直接复制过来了,没有重新进行排版。有误之处敬请指教!~

【加密与签名理解】

【目的】:

加密: 保证信息传递过程中不发生信息泄露
签名: 保证信息来源的正确性,防止篡改

【方法】: 通过一对公钥和私钥解决(公钥加的密只有私钥能解密,私钥签的名只有公钥能解签)

【场景】: 例如A方传递信息给B方的场景

「加密过程」: 1. 首先在B方生成一对私钥与公钥2. 将B方生成的公钥传递给A方3. 在A方使用B方的公钥对信息进行加密后传给B方4. B方收到A方的加密信息后,使用自己的私钥解密「结果」: 以上四步完成了对信息的加密,并保证的传输过程中信息不泄露。「原理」: 公钥与私钥是一一对应的,公钥加的密只有私钥能解开。「弊端」: 在第2步传递B方的公钥给A方的过程中,如果此时B方的公钥被截获了,截获方使用B方的公钥伪造(篡改)了信息并传输给了B方,B方不知道该信息是伪造(篡改)过的,照常使用私钥解密了,使用了错误来源的信息。如何解决信息伪造的问题即保证信息来源的正确性,这就产生了签名这一方案----------------------------------------------------------------------------------------「签名过程」:1. 在A方使用自己的私钥对信息进行签名2. 将签名过的信息传递给B方3. 在B方获取A方的公钥对信息进行解签,如果解签成功,证明信息来源于A方「结果」: 保证了信息来源正确性,信息不被篡改「原理」: 只有A方的私钥对信息签名了才能在B方使用A方的公钥解签,即使第三方获取了信息,但是由于第三方没有A方的私钥,还是无法伪造信息给B方。「弊端」: 在第2步信息传递的过程中,如果此时已签名的信息被截获了,由于没有加密过,会发生信息泄露仔细看,加密和签名的功能刚好可以解决对方的弊端,那么最合理的方案就是同时使用加密与签名来保证信息传递不泄露与信息来源的正确性1. 使用A方的私钥对信息签名
2. 使用B方的公钥对信息加密
3. 传递加密且签名的信息给B方
4. 在B方获取A方的公钥对信息进行解签
5. 在B方使用自己的私钥对信息进行解密「结果」: 实现了信息在传输过程中不泄露,并保证信息来源正确性即不被篡改「原理」: 结合了加密原理与签名原理

【苹果双重签名理解】

【目的】: iOS应用开发过程中需要真机调试,此时app并未上传appStore,但是苹果需要保证安装的app是合法的,所以产生了双重签名。

「双重签名过程」:

 1. 在开发的Mac上生成一对公私钥, 并在钥匙串的证书中心生成证书请求文件(CSR)2. 将Mac的公钥及CSR文件上传至苹果审核,此步是审核认证开发者身份3. 苹果方审核通过后使用苹果的私钥对CSR进行签名后生成一份开发者证书(CER)提供开发者下载, 该证书包含了签名以及Mac方的公钥4. Mac方下载开发者证书(CER)5. Mac方编译时需要选择开发者证书(CER),编译后使用Mac方的私钥对App进行签名6. 打包时候将对App的签名以及开发者证书(CER)同时打包7. 在设备上安装时使用内置的苹果公钥对开发者证书(CER)进行解签,此步确保了开发者证书(CER)时经过苹果认证的。验证了开发者证书(CER)的来源也就验证了证书中包含的Mac的公钥是经过苹果认证的,确保了开发者身份8. 使用开发者证书(CER)中的Mac的公钥对App解签,此步确保了App的来源即该App是在通过了苹果认证的Mac电脑上进行开发的,保证安装行为的合法性
如果想在其他Mac上编译打包App时应该怎么办呢?

此时的问题是,CER证书中的Mac公钥只有一个,假设称为Mac1。如果想在Mac2上编译打包App,使用Mac2的私钥对App进行签名后,在安装时无法使用打包的开发者证书(CER)中的Mac1公钥对App解签,原因是CER证书中的Mac1的公钥与签名的Mac2私钥不成对。

那么此时,我们可以将Mac1的私钥导出传给Mac2,在Mac2上使用Mac1的私钥对App进行签名,这就是解决方案。

歌曲推荐: 当爱在靠近 - 刘若英

加密、签名以及苹果的双重签名机制相关推荐

  1. iOS逆向一:数字签名苹果应用双重签名原理应用重签名

    hash hash(哈希)算法是指将任意长度的文本,通过一个算法后得到一个固定长度的文本(也可能是二进制数据),哈希其实是一种思想,所有符合这种思想的算法都可以称之为哈希算法(不如MD5,sha1,s ...

  2. 苹果app超级签名怎么弄

    最近老是有人来问小编苹果app超级签名,为什么最近苹果签名掉签这么严重而且频繁,纷纷询问有没有什么稳定的企业签名,真的要被频繁掉签的苹果企业签名搞得头痛啊等等的抱怨.面对企业签名带来的烦恼,相信很多从 ...

  3. 学习记录573@双重签名与电子交易概述

    双重签名概述 假设甲方需要将指令I1I_1I1​送给乙方并要求乙方执行该指令,乙方收到甲方的指令后必须获得丙方的同意后才能执行.为获得丙方的同意,甲方需要给丙方另外送一个信息 I2I_2I2​,使丙方 ...

  4. iOS/APP/苹果超级企业签名是什么原理

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/wei371522/article/de ...

  5. 苹果签名分发系统需要什么配置的服务器呢,苹果/IOS超级签名分发系统

    做过ios内部测试分发的开发人员应该熟悉超级签名,这是ios内部测试分发中经常使用的一种签名方法.它允许苹果应用程序直接安装在苹果手机上,而无需通过应用商店.超级签名分发系统是一个超级签名的平台系统. ...

  6. 【Android 安全】DEX 加密 ( Java 工具开发 | apk 文件签名 )

    文章目录 一.生成 jks 文件 二.签名命令 三.执行结果 四.处理 Unsupported major.minor version 52.0 错误 参考博客 : [Android 安全]DEX 加 ...

  7. 群签名和环签名的区别_苹果企业签名和苹果超级签名的区别

    iPhone使用的用户越来越多,现在苹果APP的签名业务也逐渐成熟,苹果签名可以解决APP上架问题上架APP非常的漫长并且非常的严格,现在除了苹果企业签名还有了苹果超级签名,不过这两种签名之间又有什么 ...

  8. 苹果app一键签名工具开发者专用版 (iOS签名工具,苹果签名工具。ipa签名工具)

    苹果app一键签名工具是一款免费的ipa签名工具,支持个人.公司和企业级开发者证书签名,强大之处在于支持跨平台windows和macos上对苹果ipa重签名,界面清晰简洁,操作使用简单.仅用几秒钟即可 ...

  9. 苹果怎么把某个app隐藏_苹果app超级签名是什么?超级签名设备用不完怎么办?...

    超级签名作为未上架app使用的内测签名方式,继企业签名后超级签名的需求度一直很高.可是ios超级签名签名内测需要用到个人证书证书,其实不论是企业证书还是个人证书,市场情况下申请都不算太容易,这种情况下 ...

最新文章

  1. 从Folly源码学C++ 11的新特性
  2. SCVMM 2012 R2---安装SCVMM 2012 R2服务器
  3. 小众的分布式版本管理工具Code Co-op
  4. 一步步学习微软InfoPath2010和SP2010--第九章节--使用SharePoint用户配置文件Web service(2)--在事件注册表单上创建表单加载规则...
  5. java 纳秒 毫秒_golang的time包:秒、毫秒、纳秒时间戳输出方式
  6. php mvc 通过 htaccess 隐藏 index.php 或 index.php?arg=
  7. 面向程序员编程——精研排序算法
  8. 删除js数组中制定内容
  9. Grunt学习笔记001---grunt使用步骤和总结
  10. KORG Software TRITON for mac(虚拟合成器软件)
  11. 4.微服务:从设计到部署 --- 服务发现
  12. VS C# 删除数组中的一个或多个元素
  13. VS2010 调试C++项目 fatal error LNK1123 错误解决的方法
  14. 模糊数学(一):模糊集及其表示
  15. 雷达测距测速测角基本原理
  16. 文本预处理:词袋模型(bag of words,BOW)、TF-IDF
  17. ROS通信机制~话题通信(PublisherSubscriber)·笔记2
  18. linux数字对应的字母,Linux中的权限表示:字母表示和数字表示
  19. 流程控制之if...elif...else和流程控制之while循环
  20. java object 是否为null,java – 为什么cast(Object)null结果为null?

热门文章

  1. websphere负载均衡_使用WebSphere DataPower Appliances保护JSON有效负载
  2. android测试内存的软件下载,华为p10内存测试软件(androbench) v5.0.1 免费版
  3. 2014年中国95家企业入围世界500强,超日本
  4. API Design for ios 译文
  5. 离差(全距,平均偏差,半内四分位数间距,10~90百分位数间距,标准差)
  6. Gwallet小百科 | 阿里、腾讯等互联网巨头们的区块链布局
  7. 2015年3月PMP认证考试报名通知
  8. linux下.txt文件名乱码,Linux下打开txt文件乱码问题解决方案
  9. [iOS,mac]Coding.Net(码市)进行代码管理
  10. revit 对计算机最低配置,Revit2016官方推荐电脑配置要求