fbpx
维基百科

DNSCrypt

DNSCrypt是由Frank Denis及付业成(Yecheng Fu)主導设计的网络协议,用于用户计算机与递归域名服务器之间的域名系统(DNS)通信的身份验证。[1]

DNSCrypt logo

DNSCrypt将未修改的DNS查询与响应以密码学结构打包来检测是否被伪造。它儘管未使用端對端加密,但也足夠抵禦針對DNS的中間人攻擊DNS快取投毒攻擊DNS劫持等,尤其是在區域網路中。[2]除此以外還缓解了基于UDP的请求查询至少与回应一样大的放大攻击。DNSCrypt也可以用于访问控制

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

协议概略 编辑

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

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

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

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

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

基于公钥的客户端认证 编辑

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

部署實作 编辑

伺服器端 编辑

DNSCrypt-Wrapper是伺服器端程式,需要搭配BINDunbound英语unbound (DNS server)等DNS系統方可運行。[4]

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

OpenDNS(現思科系統的子公司)在2011年12月宣布其公共DNS服務部署DNSCrypt,[5]緊接著奧地利的CloudNS也宣布部署。

2016年3月29日,Yandex宣布在其公共域名解析服務网络浏览器上支持DNSCrypt协议。[6]隨後,Infoblox宣布旗下的ActiveTrust Cloud將部署DNSCrypt服務。

2016年10月,AdGuard宣布為其提供阻擋電信業者追踪廣告推播服務的公共DNS伺服器部署了DNSCrypt。[7][8]

2017年DNSCrypt v2協定公佈,隨後相關的開放原始碼實作專案相繼出現,同時也有更多的公共DNS伺服器加入(包括Google Public DNS),所有部署DNSCrypt的DNS伺服器清單可在DNSCrypt的GitHubBitbucket等原始碼託管站上找到。[9]

客户端 编辑

 
dnscrypt-proxy在Linux上运行

DNSCrypt-Proxy v1/v2、Pcap_DNSProxy、YourFriendlyDNS是跨平台命令列界面的客户端程式,起到將本機或區域網路內的DNS請求加密轉發至部署了DNSCrypt的伺服器之功用。其中DNSCrypt-Proxy的v2版還支援DoHDoT,還可以實現類似dnsmasq的DNS指定轉發、黑名單及白名單、hosts特性;Pcap_DNSProxy額外支援DNSSEC[10][11][12][13]

是一個圖形界面、基建於DNSCrypt-Proxy的前端,運行於Windows作業系統。[14]也有類似的實作專案,如macOS的dnscrypt-osx-client等。[15]

Yandex則在其自家的瀏覽器產品上內建了自有的DNSCrypt客户端支援。[16]

参见 编辑

参考资料 编辑

  1. ^ [dnscrypt]写了一个 dnscrypt 的服务器端代理 dnscrypt-wrapper. V2EX. 2012-11-20 [2018-07-14]. (原始内容于2018-07-15). 
  2. ^ DNSCrypt Proxy README.md. Github. [2017-02-16]. (原始内容于2016-01-20). 
  3. ^ DNSCrypt/dnscrypt-protocol. GitHub. [2018-07-14]. (原始内容于2018-11-03) (英语). 
  4. ^ cofyc/dnscrypt-wrapper. GitHub. [2018-07-14]. (原始内容于2018-06-11) (英语). 
  5. ^ DNS Security with DNSCrypt. OpenDNS. [2018-07-14]. (原始内容于2018-07-15). 
  6. ^ Protect: secure DNS requests. Yandex. [2018-07-14]. (原始内容于2018-07-15) (英语). 
  7. ^ Vladimir Ozersky. . blog.adguard.com. 2016-10-14 [2018-07-14]. (原始内容存档于2017-09-12) (英语). 
  8. ^ DNS Filtering Android. [2018-07-14]. (原始内容于2017-09-11). 
  9. ^ DNSCrypt Resolvers. [2018-07-14]. (原始内容于2020-06-19). 
  10. ^ jedisct1/dnscrypt-proxy. GitHub. [2017-02-16]. (原始内容于2016-01-20) (英语). 
  11. ^ chengr28/Pcap_DNSProxy. GitHub. [2018-07-14]. (原始内容于2018-06-11) (英语). 
  12. ^ softwareengineer1/YourFriendlyDNS. GitHub. [2018-07-14]. (原始内容于2018-09-02) (英语). 
  13. ^ Andrew. DNSCrypt: How To Encrypt DNS Traffic In Ubuntu Or Linux Mint. webupd8.org. 2015-01-14 [2017-02-16]. (原始内容于2017-03-15) (英语). 
  14. ^ bitbeans/SimpleDnsCrypt. GitHub. [2018-07-14]. (原始内容于2018-07-16) (英语). 
  15. ^ stammy/dnscrypt-osx-client. GitHub. [2018-07-14]. (原始内容于2018-06-11) (英语). 
  16. ^ BarakAdama. Решаем проблему перехвата и подмены DNS-запросов. DNSCrypt в Яндекс.Браузере. 2016-03-29 [2017-02-16]. (原始内容于2017-03-05) (俄语). 

外部链接 编辑

  • 官方网站  
  • GitHub上的DNSCrypt頁面
  • DNSCrypt协议详述

dnscrypt, 此條目過於依赖第一手来源, 2020年4月10日, 请補充第二手及第三手來源, 以改善这篇条目, 是由frank, denis及付业成, yecheng, 主導设计的网络协议, 用于用户计算机与递归域名服务器之间的域名系统, 通信的身份验证, logo将未修改的dns查询与响应以密码学结构打包来检测是否被伪造, 它儘管未使用端對端加密, 但也足夠抵禦針對dns的中間人攻擊, dns快取投毒攻擊, dns劫持等, 尤其是在區域網路中, 除此以外還缓解了基于udp的请求查询至少与回应一样大的放大攻击. 此條目過於依赖第一手来源 2020年4月10日 请補充第二手及第三手來源 以改善这篇条目 DNSCrypt是由Frank Denis及付业成 Yecheng Fu 主導设计的网络协议 用于用户计算机与递归域名服务器之间的域名系统 DNS 通信的身份验证 1 DNSCrypt logoDNSCrypt将未修改的DNS查询与响应以密码学结构打包来检测是否被伪造 它儘管未使用端對端加密 但也足夠抵禦針對DNS的中間人攻擊 DNS快取投毒攻擊 DNS劫持等 尤其是在區域網路中 2 除此以外還缓解了基于UDP的请求查询至少与回应一样大的放大攻击 DNSCrypt也可以用于访问控制 尽管已有数个客户端及服务器实现 这一协议从未以征求意见稿 RFC 形式提交到互联网工程任务组 IETF 目前DNSCrypt協定已發展至第二個版本 3 目录 1 协议概略 2 基于公钥的客户端认证 3 部署實作 3 1 伺服器端 3 2 客户端 4 参见 5 参考资料 6 外部链接协议概略 编辑DNSCrypt可以使用UDP端口或TCP端口 尽管与HTTPS完全不同 但两种情况下的默认端口号均为443 DNSCrypt客户端必须明确信任所选提供者的公钥 而不依赖于常规浏览器中使用的证书颁发机构 公钥将用于验证一整套以传统DNS查询接收的证书 这些证书包含用于密钥交换的短期公钥 以及即将使用的密码本标识符 客户端被鼓励为每次查询新建密钥 而服务器被鼓励为每24小时更换短期密钥对 查询与回应都使用同一算法加密 并使用64字节的倍数填充来防止泄漏封包大小 当使用UDP端口且回应多于查询产生的数据量时 服务器可以使用标记TC 英語 truncated 截短 位元的短封包回应 客户端此时应使用TCP端口重试 并增加后续查询的填充量 该协议的第一 第二版采用X25519算法 Curve25519 进行密钥交换 EdDSA 英语 EdDSA 算法进行签名 以及使用XSalsa20 Poly1305或XChaCha20 Poly1305算法认证加密 基于公钥的客户端认证 编辑DNSCrypt协议也可以用于访问控制与审计 方法是仅接受一组预先定义的公钥 这可在商用DNS服务中辨识客户而不必依赖于其IP地址 部署實作 编辑伺服器端 编辑 DNSCrypt Wrapper是伺服器端程式 需要搭配BIND unbound 英语 unbound DNS server 等DNS系統方可運行 4 除了私有部署 DNSCrypt协议已经被数个公共DNS解析服务器接纳 现存最大的成员是OpenNIC网络 它同时提供虚拟专用网 VPN 服务 OpenDNS 現思科系統的子公司 在2011年12月宣布其公共DNS服務部署DNSCrypt 5 緊接著奧地利的CloudNS也宣布部署 2016年3月29日 Yandex宣布在其公共域名解析服務及网络浏览器上支持DNSCrypt协议 6 隨後 Infoblox宣布旗下的ActiveTrust Cloud將部署DNSCrypt服務 2016年10月 AdGuard宣布為其提供阻擋電信業者追踪廣告推播服務的公共DNS伺服器部署了DNSCrypt 7 8 2017年DNSCrypt v2協定公佈 隨後相關的開放原始碼實作專案相繼出現 同時也有更多的公共DNS伺服器加入 包括Google Public DNS 所有部署DNSCrypt的DNS伺服器清單可在DNSCrypt的GitHub Bitbucket等原始碼託管站上找到 9 客户端 编辑 nbsp dnscrypt proxy在Linux上运行DNSCrypt Proxy v1 v2 Pcap DNSProxy YourFriendlyDNS是跨平台 命令列界面的客户端程式 起到將本機或區域網路內的DNS請求加密轉發至部署了DNSCrypt的伺服器之功用 其中DNSCrypt Proxy的v2版還支援DoH DoT 還可以實現類似dnsmasq的DNS指定轉發 黑名單及白名單 hosts特性 Pcap DNSProxy額外支援DNSSEC 10 11 12 13 Simple DNSCrypt是一個圖形界面 基建於DNSCrypt Proxy的前端 運行於Windows作業系統 14 也有類似的實作專案 如macOS的dnscrypt osx client等 15 Yandex則在其自家的瀏覽器產品上內建了自有的DNSCrypt客户端支援 16 参见 编辑Curve25519 DNSCurve DNS over HTTPS DoH DNS over TLS DoT 域名系统安全扩展 DNSSEC 椭圆曲线密码学参考资料 编辑 dnscrypt 写了一个 dnscrypt 的服务器端代理 dnscrypt wrapper V2EX 2012 11 20 2018 07 14 原始内容存档于2018 07 15 DNSCrypt Proxy README md Github 2017 02 16 原始内容存档于2016 01 20 DNSCrypt dnscrypt protocol GitHub 2018 07 14 原始内容存档于2018 11 03 英语 cofyc dnscrypt wrapper GitHub 2018 07 14 原始内容存档于2018 06 11 英语 DNS Security with DNSCrypt OpenDNS 2018 07 14 原始内容存档于2018 07 15 Protect secure DNS requests Yandex 2018 07 14 原始内容存档于2018 07 15 英语 Vladimir Ozersky AdGuard DNS Now Supports DNSCrypt blog adguard com 2016 10 14 2018 07 14 原始内容存档于2017 09 12 英语 DNS Filtering Android 2018 07 14 原始内容存档于2017 09 11 DNSCrypt Resolvers 2018 07 14 原始内容存档于2020 06 19 jedisct1 dnscrypt proxy GitHub 2017 02 16 原始内容存档于2016 01 20 英语 chengr28 Pcap DNSProxy GitHub 2018 07 14 原始内容存档于2018 06 11 英语 softwareengineer1 YourFriendlyDNS GitHub 2018 07 14 原始内容存档于2018 09 02 英语 Andrew DNSCrypt How To Encrypt DNS Traffic In Ubuntu Or Linux Mint webupd8 org 2015 01 14 2017 02 16 原始内容存档于2017 03 15 英语 bitbeans SimpleDnsCrypt GitHub 2018 07 14 原始内容存档于2018 07 16 英语 stammy dnscrypt osx client GitHub 2018 07 14 原始内容存档于2018 06 11 英语 BarakAdama Reshaem problemu perehvata i podmeny DNS zaprosov DNSCrypt v Yandeks Brauzere 2016 03 29 2017 02 16 原始内容存档于2017 03 05 俄语 外部链接 编辑官方网站 nbsp GitHub上的DNSCrypt頁面 DNSCrypt协议详述 取自 https zh wikipedia org w index php title DNSCrypt amp oldid 75452308, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。