1. 前言、?
由于傳統(tǒng)DNS解析中存在的一些問(wèn)題(見DNS解析過(guò)程),所以出現(xiàn)了類似于DOH 之類的技術(shù),那么什么是DOH 呢?
2. 什么是DOH
DoH(DNS-over HTTPS) 。由于DNS查詢會(huì)通過(guò)未加密的UDP連接 發(fā)送請(qǐng)求,任何在網(wǎng)絡(luò)上偵聽數(shù)據(jù)包的人都會(huì)知道我正在嘗試訪問(wèn)xx.xx 網(wǎng)站。
DNSSEC 還通過(guò)提供一種檢查DNS答案的有效性的機(jī)制來(lái)解決此問(wèn)題,但是只有百分之幾的域使用DNSSEC 。
為了提高用戶的安全性和隱私性,需要對(duì)DNS查詢進(jìn)行加密 。DoH就是其中的一種方式,它是通過(guò)HTTPS發(fā)送DNS查詢請(qǐng)求 。
RFC 8484 中定義了DoH的相關(guān)規(guī)范。支持DoH協(xié)議的服務(wù)器被稱作DoH服務(wù)器 ,支持DoH協(xié)議的客戶端被稱作DoH客戶端 。
從前面的介紹,我們知道傳統(tǒng)DNS的查詢使用的是未加密的UDP協(xié)議發(fā)送和接受數(shù)據(jù) ,這十分的不安全。
RFC 8484規(guī)范 中定義了DoH的一些規(guī)范。如: DoH一次TCP連接可多次發(fā)送DNS請(qǐng)求,長(zhǎng)連接的方式提高了性能。通常情況下,DoH服務(wù)器不應(yīng)該接受DoH客服端提供的cookies。DoH服務(wù)器必須實(shí)現(xiàn)GET 、POST 。DoH server 必須能夠處理 application/dns-message 的請(qǐng)求。
dnscrypt 是位于DOH服務(wù)器上的一個(gè)客戶端,dnscrypt 負(fù)責(zé)安全地轉(zhuǎn)發(fā)DNS請(qǐng)求
3. DNSSEC、HTTPDNS、DoT和DoH的區(qū)別
DNSSEC
即Domain Name System Security Extensions ,DNS安全擴(kuò)展 ,是由IETF提供的一系列DNS安全認(rèn)證機(jī)制 。DNSSEC通過(guò)數(shù)字簽名來(lái)保證DNS應(yīng)答報(bào)文的真實(shí)性和完整性 。簡(jiǎn)單來(lái)說(shuō),權(quán)威服務(wù)器使用私鑰對(duì)資源記錄進(jìn)行簽名,遞歸服務(wù)器利用權(quán)威服務(wù)器的公鑰對(duì)應(yīng)答報(bào)文進(jìn)行驗(yàn)證。如果驗(yàn)證失敗,則說(shuō)明這一報(bào)文可能是有問(wèn)題的。缺點(diǎn)是,不能保證可用性、對(duì)DNS解析性能有一定影響(占用更多的CPU、內(nèi)存、磁盤等資源)。
HTTPDNS
HTTPDNS 使用HTTP協(xié)議進(jìn)行域名解析,代替現(xiàn)有基于UDP的DNS協(xié)議 ,域名解析請(qǐng)求直接發(fā)送到配置的HTTPDNS服務(wù)器,從而繞過(guò)運(yùn)營(yíng)商的Local DNS ,能夠避免Local DNS 造成的域名劫持問(wèn)題 和調(diào)度不精準(zhǔn)問(wèn)題 。
DoT
即DNS over TLS ,使用TLS對(duì)DNS查詢進(jìn)行加密 ,保證數(shù)據(jù)的隱私性,不易被中間人竊聽篡改,然后使用TCP傳輸DNS查詢 。缺點(diǎn)是DoT使用固定的端口853 ,中間人可以通過(guò)是否為853端口知道請(qǐng)求是否是DNS查詢請(qǐng)求。
DoH
即DNS over HTTPS ,使用HTTPS協(xié)議發(fā)送DNS查詢 ,使用HTTPS的443端口 ,中間人無(wú)法通過(guò)查看端口的方式來(lái)分別此請(qǐng)求是否為DNS查詢請(qǐng)求。相比于DoT而言,DoH能夠更好地隱藏DNS查詢流量 。
4. 常用的DoH
國(guó)外****DoH
國(guó)內(nèi)****DoH
-
阿里 https://www./ DNS over HTTPs(DoH)的URI接口 :(僅提供TLS API) https://dns./dns-query? https://alidns_ip/dns-query? -
360 https://doh.#/ 通過(guò)curl發(fā)送一個(gè)DoH查詢請(qǐng)求: curl --location --request GET "htts://doh.#/query?name=www.baidu.com" --header "Accet:application/dns-json" DoH服務(wù)器返回的響應(yīng)如下邊所示:
5. 參考文獻(xiàn)
|