01. 对称加密只有一个密钥,加密和解密都用这个密钥
02.非对称加密有公钥和私钥,私钥加密后的内容只有公钥才能解密,公钥加密的内容只有私钥才能解密。
为了提高安全性,通常的做法是使用对称加密的方法进行加密,但是对称加密也有问题,双方通信的开始总会以明文的方式传输密钥。那么一开始这个密钥就泄露了,所以风险不言而喻。。。
所以TLS/SSL在握手的阶段,结合非对称加密的手段,保证只有通信双方才知道对称加密的密码;
数字证书的生成是分层级的,下一级的证书需要其上一级证书的私钥签名。
所以后者是前者的证书颁发者,也就是说上一级证书的Sbuject Name 是其下一级证书的 Issure Name.
在得到证书申请者的一些必要信息(对象名称,公钥私钥)之后,证书颁发者通过 SHA-256 哈希得到证书内容的摘要,再用自己的私钥给这份摘要加密,得到数字签名。综合已有的信息,生成分别包含公钥和私钥的两个证书。
01.根证书是自签名的,即用自己的私钥签名,不需要其他证书的私钥来生成签名
02.当客户端走https访问站点时,服务器会返回整个证书链。
01. 信任链中如果只含有有效证书并且可信锚点结尾,那么这个证书就被认为是有效的。可信锚点指的是系统隐式信任证书,通常是包括在系统中的CA根证书,不过可以在验证证书链时,设置自定义证书为可信锚点。
02. NSURLSession实现https,使用 NSURLSession 走 HTTPS 访问网站,-URLSession:didReceiveChallenge:completionHandler: 回调中会收到一个 challenge,也就是质询,需要你提供认证信息才能完成连接,这时候可以通过 challenge.protectionSpace.authenticationMethod 取得保护空间要求我们认证的方式,如果这个值是 NSURLAuthenticationMethodServerTrust 的话,我们就可以插手 TLS 握手中“验证数字证书有效性”这一步。
系统的默认实现(也即代理不实现这个方法)是验证这个信任链,结果是有效的话则根据 serverTrust 创建 credential 用于同服务端确立 SSL 连接。否则会得到 “The certificate for this server is invalid...” 这样的错误而无法访问。
比如在访问 https://www.google.com 的时候咧,我们不实现这个方法也能访问成功的。系统对 Google 服务器返回来的证书链,从叶节点证书往根证书层层验证(有效期、签名等等),遇到根证书时,发现作为可信锚点的它存在与可信证书列表中,那么验证就通过,允许与服务端建立连接。
看考地址: http://www.cnblogs.com/oc-bowen/p/5896041.html 02. ios中的网络加密
提高苹iOS App安全性确保App架发者必须App服务器启用符合ATS要求HTTPS证书沃通免费SSL证书符合苹ATS要求支持谷歌CT证书透明度帮助发者轻松应新安全标准!建议iOS发者配置HTTPS连接注意几点:
·向规CA机构(沃通CA)申请符合ATS要求SSL证书
·校验证书链
·校验证书签发者
·校验证书域名否匹配
您何确启用HTTPS连接疑问沃通CA提供专业技术咨询帮助用户更加安全配置HTTPS证书确启用HTTPS加密连接
t
公钥--我们用公钥M表示,(M就表示Mac电脑,为了好区分,所以用公钥M表示)私钥--公钥和私钥成对出现,私钥M表示
私钥A--(A就表示Apple,为了好区分,所以用私钥A表示)
公钥A-- (与服务器私钥A成对)
(本地创建了csr文件以后,可以通过命令查看该文件信息:“$openssl asn1parse -i -in 文件名.certSigningRequest” )
a.设备ID;
b.appID;
c.权限文件;
d.证书文件;
其中d,证书文件包含以下内容:
a.公钥M;
b.公钥M的HASH值;
c.公钥M的签名信息(用私钥A签名的信息);
前往文件夹,可以查看电脑里面的描述文件:~/资源库/MobileDevice/Provisioning Profiles/
cd到文件目录下,可以通过命令查看描述文件:$security cms -D -i 文件名.mobileprovision
a.MachO 文件(一种可执行文件);
b.利用私钥M对MachO签名的文件;
c.描述文件--证书文件;
1.首先验证文件夹里面的证书文件,利用手机里面的公钥A,对证书进行验证(证书包含公钥M签名,所以公钥A可以验证证),验证了证书是否被调包;
2.iPhone手机取出证书里面的公钥M,对app进行验证(因为app是用私钥M进行签名的);
这样的验证过程,验证了APP是否是苹果官方允许的应用,原因如下:
1.苹果允许你的行为,才会给你返回证书文件,给你电脑的公钥M配发证书;
2.有了这个证书,你才能打包APP,将APP安装到手机;
3.利用手机里面的公钥M,验证证书,就侧面的验证了安装行为是否非法;iPhone对app内容,并不做验证;
双向验证,其实,就是两对公私钥的验证!
1.限定设备(只能安装到注册过的手机上);
2.对APP进行限定,只能对某一个app进行签名;
3.还会针对性的进行推送,NFC等等进行限定;
苹果公司,把这一系列限定操作,统称为:授权文件(Entitlements文件),并将这个文件放在了一个叫做Provisioning Profile(描述文件)文件中;
描述文件是在appleDevelop网站创建的,(Xcode登陆appleID以后,它会代替网页自动创建),Xcode打包的时候,会打包进APP文件内
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)