任何人都请解释SSL固定和App传输安全的作用。
我读到SSLpinning用于确保应用程序仅与指定的服务器本身进行通信
随着iOS 9的发布,还推出了App Transport Security库。默认情况下,ATS拒绝所有不使用至少TLS 1.2协议的不安全连接。 TLS协议是SSL协议的替代品,但它们通常都被称为SSL。考虑到SSL固定,将TLS或SSL作为底层实现没有区别 - 基本概念保持不变。
所以我的问题是 1.如果我的服务器使用的是TLS 1.2协议,那么启用ATS就足以保证安全。无需在我的应用程序中进行SSL固定。请确认 2.如果我的服务器低于TLS 1.2协议,则SSL固定是避免不安全连接的最佳方法。请确认
答案 0 :(得分:2)
证书固定可确保您的应用与正确的服务器进行通信。如果没有Cert固定,我可以设置拦截代理,以查看流入和流出应用的所有流量。
固定证书确保我无法执行此操作,因为应用程序仅接受来自服务器的通信,并提供正确的固定证书。
然后启用ATS就足以实现安全性
你永远不可能拥有足够的安全性'但这部分是基于您的应用程序正在做什么的上下文。如果您的应用程序进程的端点和数据是敏感的,那么您应该坚持认证。我认为你应该总是这样做,因为它很容易做到。
如果我的服务器低于TLS 1.2协议,则SSL固定是避免不安全连接的最佳方法
这会导致ATS出现问题,您的服务器应该真正支持TLS 1.2,现在它已经无处不在了。您还需要确保证书使用东部SHA256指纹,使用2048位或更高的RSA密钥,或256位或更高的椭圆曲线(ECC)密钥,您需要支持其中一个密码:
这可能看起来很吓人,但实际上上述情况非常标准。
注意:强>
它们通常被称为SSL
你是对的,但这是一个坏习惯。他们可能做同样的事情,但他们以不同的方式做。 SSL是SSL,TLS是TLS,它们是不同的。
注2:
如果使用证书固定,请考虑使用公钥固定或CA证书固定。
答案 1 :(得分:1)
https://infinum.co/the-capsized-eight/how-to-make-your-ios-apps-more-secure-with-ssl-pinning
"随着iOS 9的发布,还推出了App Transport Security库。默认情况下,ATS拒绝所有不使用至少TLS 1.2协议的不安全连接。 TLS协议是SSL协议的替代品,但它们通常都被称为SSL。考虑到SSL固定,将TLS或SSL作为底层实现没有区别 - 基本概念保持不变。