成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

蘋果新『應用通信安全』的理解和使用

移動開發
這篇文章是對WWDC大會中提出的App Transport Security(應用通訊安全)模式的解讀,蘋果在 App Transport Security Technote 中也進行了解讀。

[[140988]]

這篇文章是對WWDC大會中提出的App Transport Security(應用通訊安全)模式的解讀,蘋果在 App Transport Security Technote 中也進行了解讀。

隨著iOS 9和OS X EI Capitan 的發布,蘋果官方引入了應用通訊安全模式的概念。簡而言之,應用通訊安全模式強制性要求應用需要使用***的安全通訊協議,比如TLS 1.2版本和前向保密技術。在不久的將來,蘋果也將更新這些***實踐以確保他們在保障網絡數據安全的潮流中走在前列。

在iOS 9 和 OS X EI Caption之后,當使用NSURLSession的時候默認會開啟ATS。然而不幸的是,對于大多數開發者而言,這將意味著在他們基于新版本的操作系統做開發時,情況有了很大的變化。好消息是,蘋果官方提供了一些可選配置項來決定是否開啟ATS模式,也就是可以選擇開啟或者不開啟。

開發者可以針對某些確定的URL不使用ATS,這需要在工程中的info.plist中標記NSExceptionDomains。在NSExceptionDomains字典中,可以顯式的指定一些不使用ATS的URL。這些你可以使用的例子可以是:

- NSIncludesSubdomains

- NSExceptionAllowInsecureHTTPLoads

- NSExceptionRequiresForwardSecrecy

- NSExceptionMinimumTLSVersion

- NSThirdPartyExceptionAllowsInsecureHTTPLoads

- NSThirdPartyExceptionMinimumTLSVersion

- NSThirdPartyExceptionRequiresForwardSecrecy

這些關鍵字使我們可以更加細致的設置針對不使用ATS的域名情況下禁用ATS或者一些特殊的ATS選項。

ATSInfoplist.png

**在iOS 9 的beta1版本中,上述的關鍵字是錯誤的,應該使用如下關鍵字:**

- NSTemporaryExceptionAllowsInsecureHTTPLoads

- NSTemporaryExceptionRequiresForwardSecrecy

- NSTemporaryExceptionMinimumTLSVersion

- NSTemporaryThirdPartyExceptionAllowsInsecureHTTPLoads

- NSTemporaryThirdPartyExceptionMinimumTLSVersion

- NSTemporaryThirdPartyExceptionRequiresForwardSecrecy

這些關鍵字在不久以后肯定會被替換掉。如果可以,你應該使用***組的關鍵字,因為蘋果官方支持這些關鍵字。雖然你正在使用臨時的關鍵字,但它應該在將來的beta版本中還是可以繼續使用的。

下面是一些開發者可能會在開發過程中遇到的情況。

例1 所有情況下都使用ATS

這是最簡單的情況。唯一需要做的事情就是使用NSURLSession。如果你的開發目標是iOS 9或者 OS X EI Capitan之后,ATS的***實踐將會應用到所有基于NSURLSession的網絡。

例2 特殊情況除外,都使用ATS

如果你希望自己所有的域名,除了一些已知并不會使用ATS之外的,所有通信都使用ATS。這種情況下你可以指定一些不使用ATS的特殊情況,而其余的情況使用ATS。對于這種場景,可以使用*NSExceptionDomains*來標識使用ATS默認設置的域。為了篩選出所有域或者子域,可以創建一個包含想要排除使用ATS的URL的字典,然后設置其中的*NSExceptionAllowInsecureHTTPLoads*的值為true。如果想要對于這些域完全禁用ATS,也可以指定更多的規則來限制,如使用*NSExceptionRequiresForwardSecrecy*和*NSExceptionMinimumTLSVersion*關鍵字。

ExampleB.png

例3 除特殊情況外,都不使用ATS

一種與上例相反的情況,你可能進希望在你明確知道支持的域內使用ATS。比如,如果開發一個Twitter客戶端,可能需要有難以計數的可能不支持ATS的URL需要加載,可是你希望網絡狀況想發起登錄請求和請求Twitter服務器的其他請求一致。在這種情況下,你可以設置禁用ATS為默認選項,然后指定需要使用ATS的URL。

這種情況下,需要設置*NSAllowArbitraryLoads*為true,然后在*NSExceptionDomains*字典中定義需要保證安全性的URL。需要保證安全性的每個域都需要有自己的字典,而且字典中的*NSExceptionAllowInsecureHTTPLoads*選項需要設置為false。

ExampleC.png

例4 低級的ATS

在某些情況下,可能ATS用于所有情況,或者一些,或者是自有的URL,但是并未針對所有的ATS***實踐全部支持。也許你的應用服務器僅支持TLS1.2,但是不支持之后的版本,與其把涉及到的所有域都設置為不用ATS,不如設置為支持版本較低的ATS。這種場景下,需要創建一個*NSExceptionDomains*字典,這是一個對于每個域都要重用的字典選項,然后設置*NSExceptionRequiresForwardSecrecy*值為false。類似的,如果你希望向前支持,但是需要***版本的TLS,你可以通過*NSExceptionMinimumTLSVersion*關鍵字定義你的應用服務器所支持的TLS版本。

ExampleD.png

例5 NSA-friendly 模式

如果想完全不使用ATS(不建議使用這種模式,并且需要你完全理解其隱藏的危險。)你可以在info.plist中設置*NSAllowArbitraryLoads*屬性為true。

ExampleE.png

第三方鍵值

你可能注意到一些關鍵字像是使用了一些其他關鍵字中的詞但是在前面加上了"ThirdParty"字樣:

- NSThirdPartyExceptionAllowsInsecureHTTPLoads

- NSThirdPartyExceptionMinimumTLSVersion

- NSThirdPartyExceptionRequiresForwardSecrecy

在功能上,這些關鍵字與不含有"ThirdParty"的關鍵字有同樣的效果。而且實際運行中所調用的代碼將會完全忽略是否使用"ThirdParty"關鍵字。你應該使用適用于你的場景的關鍵字而不必過多考慮這些。

Certificate Transparency

雖然ATS大多數安全特性都是默認可用的,Certificate Transparency 是必須設置的。如果你有支持Certificate Transparency的證書,你可以檢查NSRequiresCertificateTransparency關鍵字來使用Certificate Transparency。再次強調,如果你的證書不支持Certificate Transparency,此項需要設置為不可用。

如果需要調試一些由于采用了ATS而產生的問題,需要設置CFNETWORK_DIAGNOSTICS為1,這樣就會打印出包含被訪問的URL和ATS錯誤在內的NSURLSession錯誤信息。要確保處理了遇到的所有的錯誤消息,這樣才能使ATS易于提高可靠性和擴展性。

以上所有信息都 WWDC 2015 NSURLSession session 中有所體現。***,蘋果強調需要上報開發過程所有的問題并且需要密切關注將來beta版本中的可能產生的變化。

責任編輯:倪明 來源: noir的博客
相關推薦

2009-02-27 17:00:25

2018-03-23 08:18:08

2021-02-19 08:20:42

JWT網絡原理

2011-05-13 13:24:02

2013-09-04 16:39:27

2011-05-27 10:19:42

2011-03-17 13:17:04

蘋果NetflixKindle

2013-07-05 13:23:43

蘋果

2019-11-21 16:14:45

蘋果WindowsWindows 10

2024-08-14 18:18:47

2011-12-27 16:03:17

云路由蘋果粉絲

2011-04-22 11:31:15

Mac保險箱

2023-01-12 11:23:11

Promise異步編程

2020-09-23 10:59:37

應用安全

2009-07-30 16:35:08

2012-05-22 14:32:05

2011-04-21 16:15:50

筆記本蘋果

2013-09-13 10:54:24

蘋果歷史

2017-08-17 17:48:06

2024-05-23 10:33:59

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美成人第一页 | 九九热在线视频观看这里只有精品 | 91精品久久久久久久久 | 日本在线视 | 久久精品亚洲精品国产欧美 | 999久久久久久久久6666 | 三级在线视频 | 男女午夜激情视频 | 成人在线精品视频 | 青青伊人久久 | 成人一区二区三区在线观看 | 九九九视频精品 | 欧洲精品久久久久毛片完整版 | 五月天综合影院 | av片毛片| 天天干夜夜操 | 新av在线 | 黄色一级免费 | 国产精品v| 一区二区免费看 | 国产午夜精品一区二区三区嫩草 | 91精品国产高清一区二区三区 | 国产一区二区三区在线看 | 亚洲一区视频在线 | 亚洲一一在线 | 国产精品高潮呻吟久久av黑人 | 中文字幕乱码视频32 | 精品一区二区免费视频 | 91麻豆精品国产91久久久久久 | 色吧色综合 | 午夜精品久久久久久久 | 亚洲免费在线观看视频 | 成人国产精品色哟哟 | 欧美色999 | 国产一区二区精品在线观看 | 色婷婷在线视频 | 观看毛片| 成人妇女免费播放久久久 | 一区二区在线观看av | 国产乱码精品1区2区3区 | 欧美色综合一区二区三区 |