DNSCrypt是一個(gè)確保客戶與DNS服務(wù)器之間傳輸安全的工具,基于DNSCurve修改而來。
由于Domain Name System(DNS)設(shè)計(jì)上的缺陷,用戶在瀏覽器里輸入很多海外網(wǎng)址以后,如果遭遇MITM或者DNS污染,瀏覽器就可能接收到錯(cuò)誤的IP,而存在安全問題。為了解決這樣的問題,IETF在十幾年前便開始制定DNS的安全擴(kuò)展(DNSSEC)。利用公開密鑰加密技術(shù),通過對(duì)DNS數(shù)據(jù)進(jìn)行數(shù)字簽名,DNSSEC能夠驗(yàn)證DNS數(shù)據(jù)來源和驗(yàn)證在傳輸過程中DNS是否被篡改。
但是DNSSEC不保證DNS數(shù)據(jù)的機(jī)密性,DNS數(shù)據(jù)本身并沒有被加密,加之DNS的階層式模式,這便為一些機(jī)構(gòu)提供監(jiān)視,控制網(wǎng)絡(luò)的手段。典型的例子就是不能訪問一些海外的網(wǎng)站。DNSSEC也不提供免于DOS(Deny of Service)攻擊的辦法,由于數(shù)字簽名和簽名驗(yàn)證需要額外的數(shù)據(jù)運(yùn)算,DNSSEC反而更容易受到DOS攻擊。DNSCurve相對(duì)于DNSSEC的好處是,DNSCurve使用了更有效率的橢圓曲線加密算法而可以負(fù)擔(dān)的起每條查詢都單獨(dú)加密,從而更加安全。
DNSCrypt協(xié)議是非常類似DNSCurve的,作為一個(gè)DNS代理運(yùn)行,側(cè)重于客戶端和第一級(jí)DNS服務(wù)器之間的通信安全,能夠緩存DNS解析。DNSCrypt的上游DNS服務(wù)器是著名的OpenDNS服務(wù),簡(jiǎn)單而言DNSCrypt就是加密了本機(jī)到OpenDNS服務(wù)器之間的DNS查詢通信過程(使用橢圓曲線加密算法),所以可以不受GreatFireWall的DNS污染干擾。
首先下載對(duì)應(yīng)平臺(tái)的dnscrypt client然后運(yùn)行,接著修改本地或者router的dns server為127.0.0.1. 然后你的所有dns請(qǐng)求都會(huì)加密進(jìn)行從而繞過GreatFireWall的dns污染順利解析到正確IP,以下是Win7系統(tǒng)設(shè)置的圖示:(DNSCrypt可以在Windows/Linux/BSD/OSX/iOS系統(tǒng)上運(yùn)行)

更多詳情:https://github.com/opendns/dnscrypt-proxy/
下載地址:https://github.com/opendns/dnscrypt-proxy/downloads
使用后即可直接訪問一些遭到DNS污染的網(wǎng)站,如果網(wǎng)站還支持https也可以訪問其https網(wǎng)址,比如一些Google服務(wù)。