首页 > 软件列表 > DNSCrypt
DNSCrypt

DNSCrypt

软件语言:
软件授权:免费
适用系统:Windows
创建时间:2020-12-15
软件厂商/开发者信息: -

原理

DNSCrypt 将未修改的 DNS 查询与响应以密码学结构打包来检测是否被伪造。它尽管未使用端对端加密,但也足够抵御针对 DNS 的中间人攻击、DNS 缓存投毒攻击、DNS 劫持等,尤其是在局域网中。除此以外还缓解了基于 UDP 的请求查询至少与回应一样大的放大攻击。DNSCrypt 也可以用于访问控制。

尽管已有数个客户端及服务器实现,这一协议从未以征求意见稿(RFC)形式提交到互联网工程任务组(IETF)。目前 DNSCrypt 协议已发展至第二个版本。

协议概略

DNSCrypt 可以使用 UDP 端口或 TCP 端口。尽管与 HTTPS 完全不同,但两种情况下的默认端口号均为 443。

DNSCrypt 客户端必须明确信任所选提供者的公钥,而不依赖于常规浏览器中使用的证书颁发机构。

公钥将用于验证一整套以传统 DNS 查询接收的证书。这些证书包含用于密钥交换的短期公钥,以及即将使用的密码本标识符。客户端被鼓励为每次查询新建密钥,而服务器被鼓励为每 24 小时更换短期密钥对。

查询与回应都使用同一算法加密,并使用 64 字节的倍数填充来防止泄漏数据包大小。当使用 UDP 端口且回应多于查询产生的数据量时,服务器可以使用标记 TC(英语:truncated,截短)比特的短数据包回应。客户端此时应使用 TCP 端口重试,并增加后续查询的填充量。

该协议的第一、第二版采用 X25519 算法(Curve25519)进行密钥交换,EdDSA 算法进行签名,以及使用 XSalsa20-Poly1305 或 XChaCha20-Poly1305 算法认证加密。

基于公钥的客户端认证

DNSCrypt 协议也可以用于访问控制与审计,方法是仅接受一组预先定义的公钥。这可在商用 DNS 服务中辨识客户而不必依赖于其 IP 地址。

部署实现

服务器端

DNSCrypt-Wrapper 是服务器端程序,需要搭配 BIND、unbound 等 DNS 系统方可运行。

除了私有部署,DNSCrypt 协议已经被数个公共 DNS 解析服务器接纳,现存最大的成员是 OpenNIC 网络,它同时提供虚拟专用网(VPN)服务。

OpenDNS(现思科系统的子公司)在 2011 年 12 月宣布其公共 DNS 服务部署 DNSCrypt,紧接着奥地利的 CloudNS 也宣布部署。

2016 年 3 月 29 日,Yandex 宣布在其公共 DNS 服务器及网络浏览器上支持 DNSCrypt 协议。随后,Infoblox 宣布旗下的 ActiveTrust Cloud 将部署 DNSCrypt 服务。

2016 年 10 月,AdGuard 宣布为其提供阻挡电信运营商追踪广告推送服务的公共 DNS 服务器部署了 DNSCrypt。

2017 年 DNSCrypt v2 协议公布,随后相关的开放源代码实现项目相继出现,同时也有更多的公共 DNS 服务器加入(包括 Google Public DNS),所有部署 DNSCrypt 的 DNS 服务器清单可在 DNSCrypt 的 GitHub、Bitbucket 等源代码托管站上找到。

客户端

DNSCrypt-Proxy v1/v2、Pcap_DNSProxy、YourFriendlyDNS是跨平台、命令行界面的客户端程序,起到将本机或局域网内的DNS请求加密转发至部署了DNSCrypt的服务器之功用。其中DNSCrypt-Proxy的v2版还支持DoH、DoT,还可以实现类似dnsmasq的DNS指定转发、黑名单及白名单、hosts特性;Pcap_DNSProxy额外支持DNSSEC。

Simple DNSCrypt 是一个图形界面、基建于 DNSCrypt-Proxy 的前端,运行于 Windows 操作系统。也有类似的实现项目,如 macOS 的 dnscrypt-osx-client 等。

Yandex 则在其自家的浏览器产品上内置了自有的 DNSCrypt 客户端支持。

版本列表

  • DNSCrypt v1.1 官方版

    DNSCrypt v1.1 官方版

    DNSCrypt是一个确保客户与DNS服务器之间传输安全的DNS加密工具,基于DNS ...

    软件大小:553.8 KB 更新时间:2016-05-11
    详情