iOS9 ATS特性以及在Xcode7中針對(duì)iOS9開啟不安全的http連接

在iOS9中Apple新增了App Transport Security(ATS)特性盆昙,其主要目的就是規(guī)定了App與服務(wù)器通信時(shí)將默認(rèn)要求使用安全的連接焊虏,旨在提高App的安全性,APP在使用higher-level API(如NSURLConnection, NSURLSession等)進(jìn)行通信時(shí)如果不采用TLS 1.2協(xié)議進(jìn)行傳輸炼团,iOS將會(huì)報(bào)錯(cuò)疏尿。Apple推薦創(chuàng)建新的App和在更新已有的App時(shí)都應(yīng)盡快對(duì)ATS進(jìn)行適配褥琐。本文將介紹在Xcode7中對(duì)ATS進(jìn)行配置。

當(dāng)我們?cè)趇OS9下直接使用HTTP連接時(shí)贸宏,會(huì)出現(xiàn)如下錯(cuò)誤:

App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure.  
Temporary exceptions can be configured via your app's Info.plist file.

如果你希望暫時(shí)不適配ATS,則可以在項(xiàng)目的info.plist中添加如下配置匹舞,使所有未特殊指定的連接都不開啟ATS特性线脚,即允許明文傳輸?shù)腍ttp連接。其中<key>NSAppTansportSecurtiy</key>是ATS配置的根節(jié)點(diǎn)

<key>NSAppTransportSecurity</key> 
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
ATSAllowsArbitraryLoads.jpg

如果你希望適配ATS,則需注意ATS特性有如下三個(gè)需求

  • 必須要基于TLS 1.2版本進(jìn)行安全傳輸
  • 加密方式必須只能是支持前向加密的方法
  • 證書必須至少使用SHA256的Fingerprint和至少2048bit的RSA Key或者至少256bit的Elliptic-Curve(ECC)Key

ATS接受如下加密方法:

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

如果開啟了ATS但是訪問的安全連接不符合上述三個(gè)條件的任意一個(gè)括丁,就會(huì)報(bào)錯(cuò)伶选。可以通過在info.plist中對(duì)個(gè)別域名配置例外情況來允許非安全連接或者不完全支持ATS的安全連接构资≡纱兀可以參考如下的例子

<key>NSAppTransportSecurity</key>
<dict>
   <key>NSExceptionDomains</key>
   <dict>
      <key>wty.im</key>
      <dict>
         <key>NSIncludesSubdomains</key>
         <true/>
         <key>NSExceptionRequiresForwardSecrecy</key>
         <false/>
         <key>NSExceptionAllowsInsecureHTTPLoads</key>
         <true/>
         <key>NSExceptionMinimumTLSVersion</key>
         <string>1.1</string>
      </dict>
   </dict>
</dict>

所有可以設(shè)置的參數(shù)如下:

ATSSetting.jpg

當(dāng)NSExceptionRequiresForwardSecrecy設(shè)置為NO時(shí)己单,ATS將額外支持以下加密方法:
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA

更多ATS的信息可以參考iOS Developer Library的App Transport Security Technote


本文個(gè)人博客地址: http://wty.im/2015/09/22/iOS9-ATS-Feature-and-enable-insecure-http-connection-in-xcode7/
Github: https://github.com/wty21cn/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末纹笼,一起剝皮案震驚了整個(gè)濱河市榔幸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌牍疏,老刑警劉巖拨齐,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異援岩,居然都是意外死亡掏导,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門添瓷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鳞贷,“玉大人虐唠,你說我怎么就攤上這事≡凵福” “怎么了杆故?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵反番,是天一觀的道長叉钥。 經(jīng)常有香客問我,道長枫疆,這世上最難降的妖魔是什么敷鸦? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任扒披,我火速辦了婚禮,結(jié)果婚禮上碟案,老公的妹妹穿的比我還像新娘价说。我一直安慰自己风秤,他們只是感情好扮叨,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布彻磁。 她就那樣靜靜地躺著,像睡著了一般抢韭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上恍箭,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天刻恭,我揣著相機(jī)與錄音,去河邊找鬼扯夭。 笑死鳍贾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的交洗。 我是一名探鬼主播骑科,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼构拳!你這毒婦竟也來了咆爽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤置森,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后凫海,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體呛凶,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年行贪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了漾稀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡建瘫,死狀恐怖崭捍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啰脚,我是刑警寧澤缕贡,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響晾咪,放射性物質(zhì)發(fā)生泄漏收擦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一谍倦、第九天 我趴在偏房一處隱蔽的房頂上張望塞赂。 院中可真熱鬧,春花似錦昼蛀、人聲如沸宴猾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仇哆。三九已至,卻和暖如春夫植,著一層夾襖步出監(jiān)牢的瞬間讹剔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來泰國打工详民, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留延欠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓沈跨,卻偏偏與公主長得像由捎,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子饿凛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容