我需要確保我的IOS應用程序在連接到給定服務器時需要DNSSec。我如何確保DNS調用始終使用此?如何製作IOS應用*需要* DNSSec?
回答
DNSSec位於操作系統級別。您可以在應用程序中控制的唯一一件事是連接到您的服務器的方法。只需在您的所有通信中使用Secure Sockets Layer - SSL即可。
由於DNSSEC在操作系統級別上不可用,我認爲您的最佳選擇是通過比操作系統自然更仔細地檢查您的SSL服務器來保護您的應用程序。詳情請參閱this question。我建議將您希望收到的CA證書嵌入到您的應用中,並將其逐字節地與信任鏈的根進行比較。
您必須將DNS庫合併到您的源代碼中。嘗試使用libunbound。通過libunbound,您可以驗證DNSSEC答案。有了這個,你可以嘗試使用DANE來保護你的SSL證書。
但是,如何使用此方法使用高級(例如)HTTP API?一旦你發送了URL,它就全部結束了。您無法比較DNS答覆的準確性。在做DNS查詢之後,你甚至不能發送'http://
如果您的高級HTTP庫不支持DNSSEC,那麼您需要自己進行DNS查找(使用未綁定),然後如果驗證結果,請使用HTTP API發出該命令。請注意,您不能在HTTP請求中使用域,因爲HTTP庫可能會以非DNSSEC方式進行DNS查找,並且如果域是dns中毒,則該庫仍將連接到流氓站點。您需要將您驗證的IP地址傳遞給HTTP庫(並根據需要使用/添加主機頭) –
作爲dnssd Framework的一部分,DNSSEC可在OS級別上使用iOS 10+。在使用DNSServiceQueryRecord查詢DNS時,通過使用kDNSServiceFlagsValidate標誌來使用它。
如果要保護您的TLS連接,您必須在URLSessionsurlSession(_:didReceive:completionHandler:)
方法中實施dns查詢。
但是,你應該知道有公共DNS服務器(如OpenDNS),即do not support DNSSEC。
- 1. iOS應用需要arm64嗎?
- 2. Excel - 需要學習如何製作它?
- 3. 是否需要在IOS中爲鍵盤擴展製作通用應用程序?
- 4. 我需要爲通用iOS應用製作圖片需要什麼樣的分辨率?
- 5. 需要MDM到iOS應用程序
- 6. iOS應用程序需要的圖標
- 7. 需要2G內存iOS應用
- 8. iOS應用內購買。需要澄清
- 9. 應用升級需要升級IOS
- 10. 需要在我的iOS應用
- 11. 需要幫助瞭解如何版本iOS應用程序
- 12. 如何指定我們的應用程序需要IOS 6?
- 13. DNSSEC使用DNSPython登錄RRSET
- 14. 需要IOS
- 15. 需要使用eclipse爲Chrome製作打包的應用程序
- 16. iPhone iOS如何根據需要重新繪製UINavigationBar?
- 17. 需要如何工作?
- 18. 需要控制窗口的WPF應用
- 19. 如何使用反應需要語法?
- 20. xCode/iOS - 需要幫助製作核心數據搜索謂詞
- 21. 如何使用Django製作ios應用程序的API
- 22. 如何在Gamesalad for iOS中製作通用應用程序?
- 23. 如何使用3D元素製作iOS應用程序?
- 24. 根據上下文,您如何製作需要或不需要的XSD元素?
- 25. 不需要App Store來製作應用程序了嗎?
- 26. 需要在Silverlight應用程序中製作wcf
- 27. 需要幫助在Android上製作GPS跟蹤應用程序
- 28. 需要幫助製作android應用程序
- 29. 我是否需要Mac來製作Java應用程序包?
- 30. 製作android應用時需要做什麼?
看起來像ios不支持dnssec呢。檢查https://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/NetworkingConcepts/AddressingSchemesandDomainNames/AddressingSchemesandDomainNames.html –
只是好奇,爲什麼你想要這個? – mpontillo
@Mike我的iOS用戶使用Wifi,並且[很容易被黑客攻擊(鏈接)](http://security.stackexchange.com/q/6827/396) – LamonteCristo