2017-10-18 95 views
2

任何人都請解釋SSL固定和應用傳輸安全的作用。ATS和SSL固定

我讀了SSLpinning用於確保應用程序只與指定服務器本身

跟iOS 9的發佈進行通信,還引入了應用傳輸安全庫。默認情況下,ATS拒絕所有不使用至少TLS 1.2協議的不安全連接。 TLS協議取代了SSL協議,但它們通常都被稱爲SSL。考慮到SSL,將TLS或SSL作爲底層實現沒有區別 - 基本概念保持不變。

所以我的問題是 1.如果我的服務器使用TLS 1.2協議,那麼啓用ATS就足夠安全。無需在我的應用中進行SSL固定。請確認 2.如果我的服務器低於TLS 1.2協議,那麼SSL固定是避免不安全連接的最佳方法。請確認

回答

1

證書固定可確保您的應用正在與正確的服務器進行通信。如果沒有安裝Cert,我可以設置攔截代理來查看流入和流出應用的所有流量。

固定證書確保我不能這樣做,因爲應用程序將只接受來自服務器的通信提供正確的固定證書。

然後使ATS是足夠安全

你永遠不能擁有「足夠安全」,但根據你的應用程序是這樣做的部分是上下文。如果您的應用程序進程的端點和數據非常敏感,那麼您應該堅決進行證書確認。我認爲你應該總是這麼做,因爲它很容易做到。

如果我下面TLS 1.2協議的服務器,然後SSL釘扎是爲了避免不安全的連接

的最好方式這將導致與苯丙胺類興奮劑問題,你的服務器真的應該支持TLS 1.2它是相當普遍存在現在。您還需要確認證書是使用東部SHA256指紋,使用2048位或更大的RSA密鑰,或者使用256位或更大的橢圓曲線(ECC)密鑰,並且您需要支持以下密碼之一:

  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

這可能看起來有點恐慌,但在現實上是非常標準。

注:

二者都通常被稱爲SSL

你是正確的,但,這是一種不好的習慣。他們可能會做同樣的事情,但他們以不同的方式做。 SSL是SSL,TLS是TLS,它們是不同的。

注2:

如果使用證書釘扎考慮使用公共密鑰釘扎或CA證書牽制。