美文网首页
iOS签名机制

iOS签名机制

作者: forping | 来源:发表于2020-11-18 14:29 被阅读0次

    加密方法

    对称加密 DES,3DES,AES
    非对称加密 RSA
    单向散列函数 MD4,MD4,SHA-1, SHA-2, SHA-3

    混合密码

    1 .先拿到接受者的公钥.

    1. 生成一个会话秘钥

    2. 使用对称加密算法,会话秘钥作为秘钥 对发送的内容进行加密

    3. 使用公钥对会话秘钥进行加密

    4. 之后把加密的内容和公钥加密后的会话秘钥发给接受者.

    5. 接受者使用私钥对会话秘钥进行解密,再使用会话秘钥对内容进行解密

    解决了消息被窃听的问题

    数字签名

    1. 使用自己的私钥对消息进行加密,得到密文(私钥只有自己才有,所以不可篡改)

    2. 把消息和密文发送给接受者

    3. 接受者使用公钥对密文进行解密,得到明文,明文和消息进行对比.

    改进

    1. 消息生成散列值

    2. 使用私钥对散列值进行加密

    3. 把消息和 加密后的散列值 发给接受者

    4. 接受者也先进行散列值生成,

    5. 公钥解密加密后的散列值.

    6. 比较散列值

    作用

    1. 防止消息被篡改

    中间人攻击

    1. 中间人拦截到 接受者公钥的 传递. 把自己的公钥传给发送者.
    2. 发送者 公钥加密,发给中间人,中间人解密后,篡改消息,或者查看消息内容,使用接受者的公钥进行加密.
    3. 接受者使用私钥进行解密

    混合密码和数字签名,都会受到中间人攻击

    证书:验证公钥的合法性

    证书都是由权威机构认证的.
    包含 个人信息和公钥,以及认证机构的签名(签名是由机构的私钥签的)

    1. 消息接受者先把自己的个人信息和公钥传给权威机构, 进行认证
    2. 权威机构用自己的私钥对接受者的公钥和信息进行签名,生成证书
    3. 消息发送者,拿到证书和权威机构的公钥.
    4. 验证签名,(接受者的信息和公钥,单向散列函数后和公钥解密签名比较一致性)
    5. 验证通过后,直接使用接受者的公钥进行消息的传递

    签名机制

    生成CertificateSigningRequest.certSigningRequest文件(个人信息和公钥)
    获得ios_development.cer\ios_distribution.cer证书文件(苹果的私钥进行签名)
    注册device、添加App ID
    获得*.mobileprovision文件

    真机调试,Xcode已经自动帮开发者做了以上操作

    事先准备
    1. apple用自己的私钥对 CertificateSigningRequest.certSigningRequest 里的个人信息和公钥进行签名.生成cer证书
    2. apple用自己的私钥对证书和应用的可安装device,app id entitilement(权限)进行签名,生成 mobileprovision 文件
    编译之后的APP包
    1. 使用电脑的私钥对app包进行签名(一个签名在mach-O文件,另一个签名在 _CodeSignature文件夹)
    2. 把 mobileprovision 文件拷进app包
    安装app
    1. 每台iphone都有apple的公钥
    2. 使用apple公钥验证 mobileprovision 文件,确保 证书和应用的可安装device,app id entitilement(权限) 是可靠的
    3. 使用apple公钥验证证书, 验证开发者的公钥是没有问题的
    4. 使用开发者的公钥验证代码签名,确保整个app文件是没问题的.
    p12 文件

    .p12是保存私钥和证书的组合格式,是最新的签名实用程序使用的格式。

    相关文章

      网友评论

          本文标题:iOS签名机制

          本文链接:https://www.haomeiwen.com/subject/ogffiktx.html