5

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

4

4 回答 4

2

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

于 2013-01-14T10:13:30.017 回答
1

作为dnssd 框架的一部分,DNSSEC 在 iOS 10+ 的操作系统级别上可用。在使用DNSServiceQueryRecord查询 DNS 时,您可以使用kDNSServiceFlagsValidate标志来使用它。

如果你想保护你的 TLS 连接,你必须在URLSessions urlSession(_:didReceive:completionHandler:)方法中实现 dns 查询。

但是,您应该知道那里有不支持 DNSSEC的公共 dns 服务器(例如 OpenDNS) 。

于 2018-02-27T15:00:38.983 回答
0

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

这称为证书固定

于 2012-12-27T06:19:35.360 回答
-1

DNSSec 位于操作系统级别。您可以在应用程序中控制的唯一内容是连接到服务器的方法。只需在所有通信中使用安全套接字层 - SSL 。

于 2012-12-26T21:06:06.367 回答