ATS

應用傳輸安全

所謂應用傳輸安全(App Transport Security,以下簡稱ATS)是一項提高了應用和web服務之間連接安全的特性。該特性由一些默認的連接要求組成,遵守這些要求可以獲得最佳的安全連接實踐。應用可以重載這些默認行為並且關閉傳輸安全。

ATS在iOS 9及以後版本和OS X 10.11及以後版本可用。

默認行為


ATS在iOS 9及以後版本和OS X 10.11及以後版本可用。
在為iOS 9.0及以後版本和OS X10.11及以後版本編譯的應用中,所有使用NSURLConnection, CFURL, 或 NSURLSession的連接都使用ATS默認行為。不遵守這些要求的連接將會失敗。關於各種連接方法的更多信息請參考《NSURLConnection Class Reference》,《CFURL Reference》, 和 《NSURLSession Class Reference》。
以下是ATS的要求:
· 伺服器必須至少支持TLS協議的1.2版本。
· 連接密碼僅限於提供正向加密的密碼(參見下面的密碼列表)。
· 證書必須使用SHA256或更好的簽名哈希演演算法進行簽名,使用2048位或更高的RSA密鑰,或者256位或更高的Elliptic-Curve (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

例外情況


你可以在你的App或App擴展的Info.plist文件中指定默認行為的例外情況。使用屬性列表的特殊鍵就可以指定例外或關閉ATS。表1-1展示了這些鍵和它們的類型,並使用縮進指明了其結構。