如何制作IOS应用*需要* DNSSec?

时间:2012-12-25 17:24:51

标签: security ios networking iphone

我需要确保我的IOS应用程序在连接到给定服务器时需要DNSSec。如何确保DNS调用始终使用此?

4 个答案:

答案 0 :(得分:2)

您必须将DNS库合并到源代码中。尝试使用libunbound。使用libunbound,您可以验证DNSSEC答案。有了它,您可以尝试使用DANE来保护您的SSL证书。

答案 1 :(得分:1)

DNS操作系统级别提供iOS 10+作为dnssd Framework的一部分。您在使用kDNSServiceFlagsValidate查询DNS时使用DNSServiceQueryRecord标志来使用它。

如果您想保护TLS连接,则必须使用URLSessions urlSession(_:didReceive:completionHandler:)方法实现dns查询。

但是,您应该知道那里有公共DNS服务器(例如OpenDNS)do not support DNSSEC

答案 2 :(得分:0)

由于操作系统级别不提供DNSSEC,我认为您最好的选择是通过检查您的SSL服务器比操作系统自然更加谨慎来保护您的应用程序。有关详细信息,请参阅this question。我建议将您希望收到的CA证书嵌入到您的应用中,并将其逐字节地与信任链的根进行比较。

这称为certificate pinning

答案 3 :(得分:-1)

DNSSec位于操作系统级别。您可以在应用中控制的唯一方法是连接到服务器的方法。只需在所有通信中使用Secure Sockets Layer - SSL即可。