關(guān)于iOS啟用ATS安全標(biāo)準(zhǔn)的說明

什么是ATS?

App Transport Security荤堪,即ATS吻商,是蘋果公司在iOS 9和Mac OS X 10.11(El Capitan)操作系

統(tǒng)中推出的一個新的安全標(biāo)準(zhǔn)豆混。盡管蘋果公司沒有提到watchOS和tvOS,我們可以推測App

Transport Security也同樣適用于watchOS 2和tvOS棋枕。App Transport Security的目標(biāo)是提高蘋

果iOS及Mac操作系統(tǒng)的安全性以及在此操作系統(tǒng)上運行的任何應(yīng)用的安全性材部。

基于HTTP傳輸數(shù)據(jù)的網(wǎng)絡(luò)請求都是明文傳輸。很明顯杏节,明文傳輸會引起相當(dāng)大的安全風(fēng)險唬渗。

蘋果公司強(qiáng)調(diào)每個開發(fā)者都應(yīng)該保證客戶的數(shù)據(jù)安全,盡管那些數(shù)據(jù)可能看起來并不是很重要

或者很敏感奋渔。

App Transport Security通過強(qiáng)力推行一系列的安全標(biāo)準(zhǔn)來積極地促進(jìn)安全性镊逝,最重要的一個

就是要求網(wǎng)絡(luò)請求必須在一個安全的鏈路上傳輸。開啟App Transport Security后嫉鲸,網(wǎng)絡(luò)傳輸

自動通過HTTPS傳輸而不是HTTP撑蒜。

還有一系列其他的要求來進(jìn)一步提高安全性能。例如充坑,App Transport Security要求TLS

(Transport Layer Security)是1.2版本或者更高减江。TLS是SSL的改進(jìn)和替代染突,它是一系列加密

協(xié)議的集合用來加強(qiáng)在網(wǎng)絡(luò)連接上的安全性捻爷。

ATS安全標(biāo)準(zhǔn)的要求

ATS(App Transport Security)是為了提高App與服務(wù)器之間安全傳輸數(shù)據(jù)一個特性,這個特性從iOS 9和Mac OS X 10.11開始使用份企,它默認(rèn)需要滿足以下幾個條件:

服務(wù)器必須啟用HTTPS也榄,且TLS版本至少是1.2版本連接加密只允許幾種先進(jìn)的加密算法 證書必須使用SHA256或者更好的哈希算法進(jìn)行簽名,要么是2048位或者更長的RSA密鑰司志,要么就是256位或更長的ECC密鑰甜紫。

如果想了解哪幾種加密算法是被允許的,詳情請見官方文檔App Transport Security Technote(https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistK

eyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW57)

ATS帶來的影響

蘋果公司要求骂远,從2017年1月起囚霸,所有新上線或更新的應(yīng)用,都應(yīng)該支持ATS安全標(biāo)準(zhǔn)激才。

蘋果公司會在開發(fā)商提交iTunes Connect/App Store審核時核應(yīng)用對ATS的支持拓型。對于無法完全支持ATS额嘿,需要在應(yīng)用內(nèi)連接非ATS安全標(biāo)準(zhǔn)的服務(wù),可以添加例外劣挫,但在審核時需要提供合理的理由册养。

對于大部分公司而言,采用HTTPS/TLS并使用安全的服務(wù)器證書已是目前的標(biāo)準(zhǔn)配備压固。啟用ATS安

全標(biāo)準(zhǔn)球拦,一般只需要排查服務(wù)器和客戶端的配置。

測試與排查

服務(wù)端排查

我們需要借助第三方工具來測試服務(wù)端是否支持ATS帐我。

首先坎炼,我們要取得客戶端直接連接的服務(wù)端域名及端口,例如mob.com.cn拦键,端口443点弯,即HTTPS默認(rèn)端口。測試的對象一般是行里的Web服務(wù)器矿咕、反向代理機(jī)或SSL服務(wù)器抢肛,無需直接對應(yīng)用服務(wù)器進(jìn)行測試。

針對公網(wǎng)可訪問的生產(chǎn)環(huán)境地址碳柱,我們建議使用QUALYS SSL Labs的在線監(jiān)測工具捡絮。操作步驟

如下:

訪問QUALYS SSL Labs的網(wǎng)址:https://www.ssllabs.com/ssltest/index.html

輸入域名和端口,如mob.com.cn莲镣。默認(rèn)端口443可省略福稳。并開始測試。

等待幾分鐘后瑞侮,就會出現(xiàn)測試結(jié)果的圆。

Summary部分顯示的是總體評分,顯示綠色的A即為安全半火。如果評分低于A越妈,則需要具體分析減分項。

在Authentication部分钮糖,需要確認(rèn)如下內(nèi)容:

–Key中的算法為RSA梅掠、秘鑰長度大于等于2048位,或者算法為ECC店归、秘鑰長度

大于等于256位阎抒。

–Signature algorithm中的簽名算法為下列支持的算法之一:

SHA256WithRSA

SHA384WithRSA

SHA512WithRSA

ECDSAWithSHA256

ECDSAWithSHA384

ECDSAWithSHA512

在Configuration部分,需要確認(rèn)如下內(nèi)容:

–Protocols下消痛,TLS 1.2必須為Yes且叁,TLS 1.0、1.1可以為Yes(為了兼容舊設(shè)備)秩伞,

SSL 2/3必須為No逞带。

–Cipher Suites必須包含如下算法中的一個或多個:

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

確認(rèn)過以上內(nèi)容质涛,即表示服務(wù)端符合ATS安全標(biāo)準(zhǔn)。

客戶端排查

客戶端從iOS 9 SDK起默認(rèn)開啟ATS掰担,一般無需進(jìn)行代碼改造汇陆。需要注意如下幾點:

客戶端需要以域名的方式連接服務(wù)器,IP地址形式的連接带饱,是不符合ATS要求的毡代。

客戶端如果需要訪問第三方服務(wù)器,或者內(nèi)嵌了第三方提供的SDK勺疼,則需要確認(rèn)第三方的服務(wù)端開啟了ATS支持教寂。

客戶端工程中的Info.plist中,不能包含NSAllowsArbitraryLoads鍵及其他NSAllowsArbitrary*鍵执庐。

注意以上幾點酪耕,即可保證客戶端支持ATS。

有時轨淌,客戶端內(nèi)嵌入了第三方的SDK迂烁,不容易得知第三方服務(wù)是否開啟ATS支持。檢查的方式是递鹉,在開啟確認(rèn)客戶端ATS支持后盟步,進(jìn)行功能測試,確認(rèn)第三方提供的功能在ATS開啟后還能正常運轉(zhuǎn)躏结。

如果第三方提供的功能在ATS模式下無法正常運轉(zhuǎn)却盘,則表明其不支持ATS。如果必須使用這

類功能媳拴,則需要給客戶端設(shè)置ATS例外黄橘。

在Info.plist中添加例外鍵值對,含義如下:

NSExceptionDomains為特定域名設(shè)置例外

NSAllowsArbitraryLoadsInWebContent為WebView設(shè)置例外屈溉,允許UIWebView訪問不

支持ATS的服務(wù)器塞关。僅iOS 10有效。

NSAllowsArbitraryLoadsInMedia允許加載不支持ATS的媒體內(nèi)容语婴,音頻描孟、視頻等等

注意驶睦,在添加了例外之后砰左,會觸發(fā)額外的審核,請在提交App Store審核時附上合理的原因场航,否則會導(dǎo)致審核失敗缠导。

具體的配置信息,可參照蘋果公司官方開發(fā)文檔:

https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKey

Reference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW35

常見問題

1.是否需要采購額外硬件溉痢,才能開啟ATS?

不用僻造。銀行系統(tǒng)中常用的Web服務(wù)器/反向代理服務(wù)器憋他,如Apache Web Server、Nginx髓削、HAProxy等均支持ATS所需的安全技術(shù)竹挡,常用的VeriSign、Symantec簽發(fā)的服務(wù)器證書立膛,一般也符合要求揪罕,無需另行采購硬件。對于SSL服務(wù)器等硬件宝泵,需要和廠商確認(rèn)是否支持及如何配置好啰。

2.應(yīng)用服務(wù)器及后臺應(yīng)用是否需要改造?

不用。部署在內(nèi)網(wǎng)的應(yīng)用服務(wù)器無需進(jìn)行改造儿奶,只要其前方的Web服務(wù)器或反向代理經(jīng)過正確配置框往,符合ATS要求即可。

3.如果在2017年1月前未完成ATS相關(guān)改造闯捎,我的現(xiàn)有應(yīng)用是否會受到影響?

已經(jīng)在App Store上線的應(yīng)用椰弊,還可以繼續(xù)使用。

4.如果在2017年1月前未完成ATS相關(guān)改造瓤鼻,還可以提交新的版本嗎?

不可以男应。在iTunes Connect/App Store審核過程中,會核查ATS支持情況娱仔,對于不支持的應(yīng)用會拒絕上線沐飘。

5.既然可以添加ATS例外,把銀行的生產(chǎn)服務(wù)器添加進(jìn)去是否可以?

不可以牲迫。任何添加的ATS例外耐朴,都會觸發(fā)額外的審核,需要附上合理的理由盹憎,否則會被拒絕上線筛峭。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市陪每,隨后出現(xiàn)的幾起案子影晓,更是在濱河造成了極大的恐慌,老刑警劉巖檩禾,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挂签,死亡現(xiàn)場離奇詭異,居然都是意外死亡盼产,警方通過查閱死者的電腦和手機(jī)饵婆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來戏售,“玉大人侨核,你說我怎么就攤上這事草穆。” “怎么了搓译?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵悲柱,是天一觀的道長。 經(jīng)常有香客問我些己,道長诗祸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任轴总,我火速辦了婚禮直颅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘怀樟。我一直安慰自己功偿,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布往堡。 她就那樣靜靜地躺著械荷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪虑灰。 梳的紋絲不亂的頭發(fā)上蜗元,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天损姜,我揣著相機(jī)與錄音,去河邊找鬼。 笑死地熄,一個胖子當(dāng)著我的面吹牛锉矢,可吹牛的內(nèi)容都是我干的哟沫。 我是一名探鬼主播欣范,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拍柒!你這毒婦竟也來了心傀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤拆讯,失蹤者是張志新(化名)和其女友劉穎脂男,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體种呐,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡宰翅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了陕贮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片堕油。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖肮之,靈堂內(nèi)的尸體忽然破棺而出掉缺,到底是詐尸還是另有隱情,我是刑警寧澤戈擒,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布眶明,位于F島的核電站,受9級特大地震影響筐高,放射性物質(zhì)發(fā)生泄漏搜囱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一柑土、第九天 我趴在偏房一處隱蔽的房頂上張望蜀肘。 院中可真熱鬧,春花似錦稽屏、人聲如沸扮宠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽坛增。三九已至,卻和暖如春薄腻,著一層夾襖步出監(jiān)牢的瞬間收捣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工庵楷, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留罢艾,地道東北人。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓尽纽,卻偏偏與公主長得像昆婿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蜓斧,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,870評論 2 361

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