美文网首页
安全认证

安全认证

作者: 忆痕无殇 | 来源:发表于2019-08-27 17:12 被阅读0次

即使被加密处理的通信,也会被窥视到通信内容,这点和未加密的数据道理是一样的,只不过就是加密之后的数据无法破解报文的含义,但是加密的报文信息本身也是能被看见的。
HTTP协议中没有加密机制,但可以通过SSL(Secure Socket layer 安全套接层)或者TLS (Transport layer Security 安全传输层协议)的组合使用,加密HTTP的通信内容。与SSL组合使用的HTTP被称为HTTPS(HTTP secure 超文本传输协议)。
HTTP + 加密 + 认证 + 完整性保护 = HTTPS

1:加密方式

  • 1 :对称加密(使用相同的密钥进行加密解密)
    密钥发送问题:发送密钥就有被窃听的风险,但不发送,对方就无法解密。再说,密钥若能够安全发送,那数据也应该能安全送达。
    但是对称加密效率高。
    AES加密:
    AES加密内部其实不只执行一轮加密,而是一共会执行11轮加密,所以AES会通过一个简单快速的混合操作,根据初始密钥依次生成后面10轮的密钥,每一轮的密钥都是依据上一轮生成的,所以每一轮的密钥都是不同的。尽管很多人抱怨说这种方式太简单了,但其实已经足够安全了
    具体可以看看这篇文章写的挺有意思的:第二篇:对称加密及AES加密算法

  • 2 :非对称加密(使用非对称的密钥一把公钥一把私钥)
    使用公开密钥加密方式,发送密文的一方使用对方公开的密钥进行加密处理。对方收到被加密的信息后,再使用自己的私钥进行解密。

  • 3 :HTTPS混合加密
    HTTPS使用共享密钥加密方式和公开密钥加密方式进行加密。
    使用公开密钥加密方式加密以后要使用的密钥,使用共享密钥的方式进行通信。

2: Alamofire安全认证

public enum ServerTrustPolicy

- (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge
                                             completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential * _Nullable credential))completionHandler;

认证核心逻辑


        if let sessionDidReceiveChallenge = sessionDidReceiveChallenge {
            (disposition, credential) = sessionDidReceiveChallenge(session, challenge)
        } else if challenge.protectionSpace.authenticationMethod == NSURLAuthenticationMethodServerTrust {
            let host = challenge.protectionSpace.host

            if
                let serverTrustPolicy = session.serverTrustPolicyManager?.serverTrustPolicy(forHost: host),
                let serverTrust = challenge.protectionSpace.serverTrust
            {
                if serverTrustPolicy.evaluate(serverTrust, forHost: host) {
                    disposition = .useCredential
                    credential = URLCredential(trust: serverTrust)
                } else {
                    disposition = .cancelAuthenticationChallenge
                }
            }
        }

        completionHandler(disposition, credential)
认证过程.jpg
认证过程参考Alamofire进行Https网络请求自签名证书

相关文章

网友评论

      本文标题:安全认证

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