继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

iOS总结笔记 -- https相关的加密算法、https单向/双向验证原理、SSL证书

ZKReadStone
关注TA
已关注
手记 52
粉丝 32
获赞 322

##iOS 加密算法和Https原理
####对称加密
加密解密用同一个秘钥

经典算法
DES 数据加密标准
AES 高级加密标准

过程一般是:秘钥加密过后进行Base64编码,解密先Base64解码,在秘钥解密

####非对称加密
公钥、私钥
公钥加密–私钥解密
私钥加密–公钥解密

RSA加密

######哈希算法:md5,SHA1,SHA256;一般业务场景,云端的视频可以通过算法生成md5来判断资源文件是否一致。
######编码方案:Base64,一般我们不想让别人直接看到的信息,可以用Base64简单处理,比如某些网站的单词查询,就是讲单词的base64字符串拼到最后。

###HTTPS原理简述
#####单向认证
######1.客户端发送请求
######2.服务器收到请求,发送证书
######3.客户端验证证书合法性,合法,保存公钥
######4.生成随机码作为对称秘钥,用公钥加密,发给服务器
######5.服务器用私钥解密得到随机码秘钥
######6.客户端服务器端通讯制定对称秘钥通信

#####双向认证
比单向认证多一步服务器认证客户端
准备:客户端保存有CA根证书和由CA根证书签名的p12证书
服务器端保存CA根证书,

######4.客户端把p12证书,还有加密后的对称秘钥(随机码)发送给服务器
######5.服务器根据保存的CA根证书验证p12证书和p12的签名信息

####数据加密基本原理 RSA加密+对称加密
非对称加密是为后面的每次通信产生的随机码对称秘钥安全传输服务的
说白了,客户端需要安全的把对称秘钥发送给服务器
此过程 服务器证书发送给客户端 客户端验证证书,保证非对称加密的安全性
使用随机码作为对称秘钥,是第二道安全锁

随机码对称秘钥为两端通信加密服务的

#####https比http慢的原因就是多了ssl层,这里多了几步,证书验证、生成随机码,加密解密,确认等

###证书
证书又分为正经的证书和不正经的证书
什么样的证书是正经的呢?
SSL证书是由遵守SSL协议,受信任的数字证书的颁发机构CA(GlobalSign,wosign等),在验证服务器身份后颁发的,这个需要花钱,签发好的证书一般作为公钥放在服务器端,在客户端请求的时候返回给客户端

还有一种不正经的SSL证书,这个就需要拖进工程里,本地验证,服务器返回证书后,和本地证书进行对比验证,包含验证域名

此处AFN里有更改验证方式

typedef NS_ENUM(NSUInteger, AFSSLPinningMode) {
    AFSSLPinningModeNone, //验证证书是否是浏览器信任机构颁发的
    AFSSLPinningModePublicKey,//客户端有证书 只验证公钥
    AFSSLPinningModeCertificate,//客户端有内嵌证书 验证证书有效期 + 验证公钥
};

关于证书过期的处理办法

1.从证书颁发机构颁发的证书,收钱的那种,因为证书是放在服务器的,客户端请求的时候再返回给客户端去验证,所以过期了,就更新服务器的就行了,客户端还会去请求新的,所以不用处理什么

2.自签名证书,需要Copy一份内嵌到应用里,所以过期了,服务器和客户端都要重新更换证书

疑问:多域名的验证那是不是需要应用内嵌好多个证书?
其他第三方里有网络配置的是不是都要设置一下?

有不对的地方欢迎评论指正。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP

热门评论

能帮我看一下我ios系统手机内的隐私分析文件吗?感觉被人监控人

查看全部评论