美文网首页
iOS--双向验证原理,证书验证原理,描述文件等

iOS--双向验证原理,证书验证原理,描述文件等

作者: OXHO | 来源:发表于2019-05-13 03:58 被阅读0次

    相关设备:

    1.Mac电脑,其中Mac电脑包含:

    公钥--我们用公钥M表示,(M就表示Mac电脑,为了好区分,所以用公钥M表示)
    私钥--公钥和私钥成对出现,私钥M表示

    2.苹果服务器,其中服务器里面包含:

    私钥A--(A就表示Apple,为了好区分,所以用私钥A表示)

    3.iPhone手机,其中包含:

    公钥A-- (与服务器私钥A成对)

    重点:公钥M-私钥M成对;私钥A-公钥A成对;

    公钥M和私钥M可以相互验证;
    私钥A和公钥A可以相互验证;

    具体操作步骤:

    1-本地创建csr文件,通过csr文件申请证书,主要是包含了公钥M,其次还有一些信息文件,邮箱地址,常用名称等等;

    (本地创建了csr文件以后,可以通过命令查看该文件信息:“$openssl asn1parse -i -in 文件名.certSigningRequest” )

    2-提交到苹果服务器以后一个描述文件,描述文件包含以下内容:

    a.设备ID;
    b.appID;
    c.权限文件;
    d.证书文件;
    其中d,证书文件包含以下内容:
    a.公钥M;
    b.公钥M的HASH值;
    c.公钥M的签名信息(用私钥A签名的信息);

    前往文件夹,可以查看电脑里面的描述文件:~/资源库/MobileDevice/Provisioning Profiles/


    文件路径

    cd到文件目录下,可以通过命令查看描述文件:$security cms -D -i 文件名.mobileprovision

    3-Mac电脑安装证书文件,然后就可以对APP进行打包,打包的时候,就把证书文件,配置进了APP,APP其实就是一个文件夹,包含以下内容:

    a.MachO 文件(一种可执行文件);
    b.利用私钥M对MachO签名的文件;
    c.描述文件--证书文件;

    提示:P12文件,其实就是私钥M

    4.可以将APP这个文件夹安装到iPhone手机上去,安装的时候进行以下验证:

    1.首先验证文件夹里面的证书文件,利用手机里面的公钥A,对证书进行验证(证书包含公钥M签名,所以公钥A可以验证证),验证了证书是否被调包;
    2.iPhone手机取出证书里面的公钥M,对app进行验证(因为app是用私钥M进行签名的);

    这样的验证过程,验证了APP是否是苹果官方允许的应用,原因如下:
    1.苹果允许你的行为,才会给你返回证书文件,给你电脑的公钥M配发证书;
    2.有了这个证书,你才能打包APP,将APP安装到手机;
    3.利用手机里面的公钥M,验证证书,就侧面的验证了安装行为是否非法;iPhone对app内容,并不做验证;

    双向验证,其实,就是两对公私钥的验证!

    这种模式,如果仅仅是这样,将有严重问题:APP可以任意安装到任何手机上;
    所以,苹果公司又增加了多重限定:

    1.限定设备(只能安装到注册过的手机上);
    2.对APP进行限定,只能对某一个app进行签名;
    3.还会针对性的进行推送,NFC等等进行限定;
    苹果公司,把这一系列限定操作,统称为:授权文件(Entitlements文件),并将这个文件放在了一个叫做Provisioning Profile(描述文件)文件中;
    描述文件是在appleDevelop网站创建的,(Xcode登陆appleID以后,它会代替网页自动创建),Xcode打包的时候,会打包进APP文件内;

    相关文章

      网友评论

          本文标题:iOS--双向验证原理,证书验证原理,描述文件等

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