偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

淺析加密DNS(附子域名爆破工具)

運(yùn)維 服務(wù)器運(yùn)維
本文章簡(jiǎn)單介紹一下兩種加密DNS協(xié)議:DNS over HTTPS 和 DNS over TLS。這兩種協(xié)議主要為了解決DNS帶來(lái)的隱私和中間人篡改問(wèn)題。

本文章簡(jiǎn)單介紹一下兩種加密DNS協(xié)議:DNS over HTTPS 和 DNS over TLS。這兩種協(xié)議主要為了解決DNS帶來(lái)的隱私和中間人篡改問(wèn)題。

0x01 DNS的安全及隱私

DNS設(shè)計(jì)之初并沒(méi)有考慮安全問(wèn)題,所以大部分DNS查詢使用UDP傳輸,當(dāng)然也可以用TCP。這兩種方式既沒(méi)有加密也沒(méi)有簽名。這就意味著中間人可以監(jiān)聽(tīng)到用戶訪問(wèn)的域名,導(dǎo)致隱私泄露。另外因?yàn)闆](méi)有簽名驗(yàn)證,中間人也可以篡改DNS返回的IP地址,導(dǎo)致用戶訪問(wèn)釣魚(yú)網(wǎng)站。后來(lái)有了DNSSEC,引入了簽名機(jī)制,保證了從權(quán)威DNS服務(wù)器,到DNS遞歸服務(wù)器,再到客戶端都沒(méi)有被篡改。但是這依然沒(méi)有解決隱私問(wèn)題。

[[227853]]

其實(shí)隱私問(wèn)題之所以沒(méi)被重視,主要有幾點(diǎn):第一,中間人肯定能知道你要訪問(wèn)的服務(wù)器IP地址,多數(shù)情況下知道IP就知道是什么網(wǎng)站了。第二,有一些上層協(xié)議也會(huì)泄露域名,明文HTTP就不說(shuō)了,TLS協(xié)議也有Server Name Indication(SNI),會(huì)暴露明文域名。(注:IETF TLS工作組目前正在探討草案《SNI Encryption in TLS Through Tunneling》,計(jì)劃加密SNI)。第三,一些上層協(xié)議,如TLS,能夠識(shí)別DNS是否被篡改,這使得簽名DNS本身顯得不那么重要。[1]

但即使有上述三點(diǎn),加密DNS數(shù)據(jù)也有顯而易見(jiàn)的好處。第一,減小攻擊面。第二,用戶請(qǐng)求DNS之后,未必就非得訪問(wèn)它呀,比如本文下述的子域名爆破,我們只對(duì)DNS數(shù)據(jù)本身感興趣,而不訪問(wèn)其域名,這樣加密DNS就有了實(shí)際意義。

所以本文就要探討一下DNS over TLS和DNS over HTTPS。這兩個(gè)協(xié)議目前僅限于用戶客戶端和DNS遞歸服務(wù)器間的通信。截至2018年4月,遞歸服務(wù)器和權(quán)威服務(wù)器之間的通信不在這兩個(gè)協(xié)議的適用范圍內(nèi)。也許以后遞歸服務(wù)器和權(quán)威服務(wù)器也會(huì)納入DNS over TLS協(xié)議里,不過(guò)目前我沒(méi)聽(tīng)說(shuō)有人實(shí)現(xiàn)它。

0x01 兩個(gè)協(xié)議

DNS over TLS的標(biāo)準(zhǔn)文檔是RFC7858。文檔很短,也比較易懂。客戶端先和遞歸服務(wù)器進(jìn)行TLS握手,使用的TCP端口號(hào)是853。握手之后,把DNS數(shù)據(jù)包作為TLS的payload發(fā)給DNS遞歸服務(wù)器即可。請(qǐng)求和回答的報(bào)文與普通的DNS over TCP的報(bào)文格式一樣。

DNS over HTTPS目前沒(méi)有RFC文檔。只有草案《DNS Queries over HTTPS》。這個(gè)草案規(guī)定可以用GET和POST方法,如果用POST,就把普通的DNS over UDP報(bào)文作為HTTP的body發(fā)送,并且在HTTP Header中設(shè)置Content-Type為application/dns-message。如果用GET,就把普通DNS over UDP報(bào)文用base64編碼,把編碼后的字符串作為URL的dns參數(shù)發(fā)送。

有一些廠商還支持JSON格式的DNS over HTTPS協(xié)議,比如Google和CloudFlare的DNS服務(wù)器。出于兼容考慮,在格式方面,CloudFlare選擇和Google保持一致。具體格式參見(jiàn)Google文檔或CloudFlare文檔。

為了讓用戶好記,Google的DNS服務(wù)器是8.8.8.8和8.8.4.4,CloudFlare的DNS服務(wù)器是1.1.1.1和1.0.0.1。CloudFlare的DNS服務(wù)是2018年4月1日上線的,他們自稱是因?yàn)槲覀兊腎P有4個(gè)1,所以是4月1日。[2]

0x02 子域名爆破

我用C#寫了一個(gè)非常簡(jiǎn)易的子域名爆破工具,為了演示DNS over HTTPS。(僅為技術(shù)討論使用,請(qǐng)勿用于違法用途!)使用的是JSON格式的DNS over HTTPS,可以從UI上選服務(wù)器。純字典搜索,字典是從dnsrecon項(xiàng)目復(fù)制過(guò)來(lái)的。

這個(gè)工具我只測(cè)試了Windows 10 + Visual Studio 2017 + .NET Framework 4.6.1。特別是Windows 10以前的操作系統(tǒng)可能連不上https://1.1.1.1 。我記得老版Windows不支持IP地址作為證書(shū)的Subject Alt Name,所以證書(shū)校驗(yàn)可能會(huì)失敗。

 

工具的地址:【點(diǎn)擊底部閱讀原文下載】。歡迎大家提交issues和PR。

0x03 參考資料

[1] RFC7626 - DNS Privacy Considerations

[2] Announcing 1.1.1.1: the fastest, privacy-first consumer DNS service

[3] DNS over TLS - Cloudflare Resolver

[4] DNS over HTTPS - Cloudflare Resolver

責(zé)任編輯:武曉燕 來(lái)源: Freebuf
相關(guān)推薦

2011-03-04 13:39:11

DNS域名工具

2019-09-06 08:33:25

DNS域名服務(wù)器

2017-08-31 15:54:52

2010-04-16 12:57:20

Spatial數(shù)據(jù)加密

2018-09-28 09:45:50

2020-12-04 09:11:45

Python加密文件爆破字典

2011-05-19 10:57:45

DNSSEC密鑰加密

2020-12-16 05:46:58

算法加密算法MD5

2009-10-14 10:34:33

2014-09-01 16:45:06

DNS域名劫持

2022-07-10 21:33:31

DNS存儲(chǔ)公網(wǎng)

2021-11-12 09:35:33

網(wǎng)址URLLinux

2019-10-30 05:32:17

網(wǎng)址URLIP地址

2015-04-09 10:58:09

2009-12-18 16:12:11

Ruby加密

2009-10-14 10:08:05

VB.NET編寫DEC

2010-06-04 16:31:33

Linux網(wǎng)絡(luò)測(cè)試

2010-06-07 14:13:10

Linux 開(kāi)發(fā)工具

2024-09-25 08:15:52

DNS域名解析證書(shū)告警

2023-11-27 22:55:17

DNS域名解析
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)