zoukankan      html  css  js  c++  java
  • https 认证总结

    https 握手阶段 服务器会下发一个证书链;

    客户端默认的处理是使用系统的根证书对这个证书链进行合法性认证;

    自签名证书,则需要自己完成证书链认证;

    其他附属信息认证;

    说白了就是一个数据检查的过程。

    sessionManager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone]; *
    AFSSLPinningModeNone 不做SSL pinning 只信任证书颁发机构证书,自己生成证书不通过 *
    AFSSLPinningModeCertificate 客户端保存证书拷贝 第一步验证证书的域名/有效期等信息,第二步是对比服务端返回的证书跟客户端返回的是否一致。 *
    AFSSLPinningModePublicKey 客户端保存证书拷贝 只是验证时只验证证书里的公钥,不验证证书的有效期等信息
     

    1.HTTPS传输流程

     
    HTTPS传输流程.png

    由于不相信服务器生成的随机数,所以需要客户端生成pre-master-securet,然后再由服务端加密,最后得到master-securet(主密钥),建立密道通信。(减少被猜中的可能)

    2.常用加密算法

    非对称加密算法:RSA,DSA/DSS
    对称加密算法:AES,RC4,3DES
    HASH算法:MD5,SHA1,SHA256

    非对称加密算法用于握手过程中的加密生成的密码,
    对称加密算法用于对真正传输的数据进行加密,
    HASH算法用于验证数据的完整性,是否被篡改等

    非对称加密生成密码是整个加密过程的关键,非对称加密会生成公钥和私钥,
    公钥负责数据加密,(可以随意传输)
    私钥负责解密,(重中之重)



    作者:StarkShen
    链接:http://www.jianshu.com/p/309d5359d5cb
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    第一次开发分享的经验教训
    开发人员的 Linux 命令学习清单
    代码质量基本准则
    职业发展思考(二)
    软件调试的基本技巧
    多数据源的动态配置与加载使用兼框架交互的问题调试
    对象与并发:概述
    编程模式: 回调
    创新式开发探索(一) —— 开篇
    Linux 命令学习示例: tr
  • 原文地址:https://www.cnblogs.com/feng9exe/p/8067493.html
Copyright © 2011-2022 走看看