[譯]揭秘為什么更小的DNS數(shù)據(jù)包使網(wǎng)絡(luò)更安全

原文:A Deep Dive Into DNS Packet Sizes: Why Smaller Packet Sizes Keep The Internet Safe

譯者:杰微刊兼職翻譯汪建


昨天我們寫了一篇關(guān)于我們網(wǎng)絡(luò)遭受到每秒400G流量的攻擊的文章,其中一種攻擊網(wǎng)站的方式是通過不斷重復(fù)執(zhí)行DNS查詢操作進(jìn)行DDoS攻擊,由于DNS查詢請求只是一個(gè)很小的包,而響應(yīng)包很大,所以攻擊者可以通過偽造DNS請求包中的請求IP,從而將響應(yīng)包發(fā)往受攻擊的服務(wù)器上,這種模式就是所謂的反射攻擊。

域名有DNS安全擴(kuò)展機(jī)制,因?yàn)镈NS請求響應(yīng)的包的大小不同,這通常被濫用于這種類型的流量攻擊,許多DNS服務(wù)提供商掙扎著跟基于DNS安全擴(kuò)展機(jī)制的DDoS攻擊作斗爭。就在上個(gè)月,Akamai發(fā)布了一份關(guān)于使用DNS請求.gov域名去DDos攻擊其他域名的報(bào)告,他們說從十一月份以來,他們已經(jīng)看到了400起這類的攻擊。

為了防止CloudFlare上的域名免遭受這種類型的DNS放大攻擊,我們采取了預(yù)防措施去確保大多數(shù)DNS的響應(yīng)都被我們裝到512字節(jié)的UDP數(shù)據(jù)包中,即使當(dāng)某域使用了DNS安全擴(kuò)展協(xié)議。我們不得不對我們的DNS安全擴(kuò)展采取創(chuàng)新實(shí)現(xiàn),我們使用了DNS安全擴(kuò)展協(xié)議中很少使用的一個(gè)簽名算法,甚至可以在請求訪問期間讓DNS記錄類型過期。

橢圓曲線:確保破解難度

荷蘭著名數(shù)學(xué)家Arjen Lenstra從能量的角度討論了密碼學(xué),在我們之前的博客我們也曾經(jīng)提及過他。他將破解密碼需要花費(fèi)的精力與這些精力能燒沸騰多少水進(jìn)行形象比較,破解一個(gè)228位的RSA密鑰需要的能力等同于煮沸一茶匙的水,而另一方面,要想破解一個(gè)228位的橢圓曲線密鑰則需要的能力等同于將地球上所有的水都煮沸。

使用橢圓曲線密碼學(xué)中的ECDSA簽名算法,我們可以用更小的密鑰達(dá)到同樣的安全級(jí)別,而對于同等安全級(jí)別RSA密鑰則需要更大。我們的橢圓曲線密鑰長度為256位,實(shí)力相當(dāng)于3100位長度的RSA密鑰(大多數(shù)RSA密鑰只有1024位或2048位)。你可以比較下面的簽名后的DNSKEY集,其中一個(gè)是RSA密鑰而另外一個(gè)是ECDSA密鑰,我們的密鑰大小僅僅是RSA密鑰和簽名長度的四分之一。

還有一個(gè)好處是,ECDSA快如閃電,并且實(shí)際上我們的工程師Vlad Krasnov對其進(jìn)行優(yōu)化幫助其跑得更快,通過匯編程序?qū)崿F(xiàn)本地方式的ECDSA,他使簽名速度增加了21%。他的優(yōu)化現(xiàn)在作為1.6版本Go語言的標(biāo)準(zhǔn)加密庫?,F(xiàn)在僅僅需要一瞬間就能完成加密,只需0.0001秒,就能對一個(gè)DNS響應(yīng)記錄進(jìn)行簽名。

拒絕ANY查詢類型:一個(gè)DNS記錄類型的死亡

在Akamai的安全報(bào)告中,作者得出結(jié)論:DNS安全擴(kuò)展是造成DDoS攻擊的唯一原因,因?yàn)樗幸粋€(gè)很大的響應(yīng)包,但是另外一個(gè)關(guān)于大響應(yīng)包的原因是,攻擊者使用ANY類型請求去最大限度地放大這個(gè)因素。ANY類型查詢都是一個(gè)內(nèi)置的調(diào)試工具,意思就是說DNS服務(wù)器將返回每個(gè)對應(yīng)域名的DNS記錄。不幸的是,他們經(jīng)常被用于發(fā)動(dòng)大規(guī)模的DDoS攻擊。

九月份,我們停止了對ANY類型請求的響應(yīng)以及發(fā)布了一個(gè)關(guān)于反對ANY類型作為互聯(lián)網(wǎng)標(biāo)準(zhǔn)的互聯(lián)網(wǎng)草案,我們小心翼翼地進(jìn)行著這項(xiàng)工作,并與剩下不多的還在使用ANY類型請求的軟件廠商密切合作,確保不會(huì)影響他們的生產(chǎn)系統(tǒng)。

一個(gè)DNS安全擴(kuò)展的ANY類型的查詢,cloudflare.com會(huì)返回231字節(jié)的響應(yīng),而與Akamai's的報(bào)告中的域名長度相比,同樣是ANY類型它幾乎要返回一個(gè)18倍大的包,多達(dá)4016字節(jié)。


橢圓曲線+拒絕ANY類型

通過保證我們的數(shù)據(jù)包足夠小并放進(jìn)512字節(jié)的UDP數(shù)據(jù)包,我們就已經(jīng)保證了我們域名的安全而免遭受放大因素的DDoS攻擊。如果你對在CloudFlare上使用DNS安全擴(kuò)展感興趣,這里有一些簡單的步驟讓你設(shè)置。如果你對技術(shù)性挑戰(zhàn)感興趣,我們歡迎聽到你的消息。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容