原文:A Deep Dive Into DNS Packet Sizes: Why Smaller Packet Sizes Keep The Internet Safe
譯者:杰微刊兼職翻譯汪建
昨天我們寫了一篇關(guān)于我們網(wǎng)絡(luò)遭受到每秒400G流量的攻擊的文章萝映,其中一種攻擊網(wǎng)站的方式是通過(guò)不斷重復(fù)執(zhí)行DNS查詢操作進(jìn)行DDoS攻擊盗痒,由于DNS查詢請(qǐng)求只是一個(gè)很小的包,而響應(yīng)包很大差牛,所以攻擊者可以通過(guò)偽造DNS請(qǐng)求包中的請(qǐng)求IP,從而將響應(yīng)包發(fā)往受攻擊的服務(wù)器上博肋,這種模式就是所謂的反射攻擊痒芝。
域名有DNS安全擴(kuò)展機(jī)制,因?yàn)镈NS請(qǐng)求響應(yīng)的包的大小不同静秆,這通常被濫用于這種類型的流量攻擊粮揉,許多DNS服務(wù)提供商掙扎著跟基于DNS安全擴(kuò)展機(jī)制的DDoS攻擊作斗爭(zhēng)。就在上個(gè)月抚笔,Akamai發(fā)布了一份關(guān)于使用DNS請(qǐng)求.gov域名去DDos攻擊其他域名的報(bào)告扶认,他們說(shuō)從十一月份以來(lái),他們已經(jīng)看到了400起這類的攻擊殊橙。
為了防止CloudFlare上的域名免遭受這種類型的DNS放大攻擊辐宾,我們采取了預(yù)防措施去確保大多數(shù)DNS的響應(yīng)都被我們裝到512字節(jié)的UDP數(shù)據(jù)包中,即使當(dāng)某域使用了DNS安全擴(kuò)展協(xié)議膨蛮。我們不得不對(duì)我們的DNS安全擴(kuò)展采取創(chuàng)新實(shí)現(xiàn)叠纹,我們使用了DNS安全擴(kuò)展協(xié)議中很少使用的一個(gè)簽名算法,甚至可以在請(qǐng)求訪問(wèn)期間讓DNS記錄類型過(guò)期敞葛。
橢圓曲線:確保破解難度
荷蘭著名數(shù)學(xué)家Arjen Lenstra從能量的角度討論了密碼學(xué)誉察,在我們之前的博客我們也曾經(jīng)提及過(guò)他。他將破解密碼需要花費(fèi)的精力與這些精力能燒沸騰多少水進(jìn)行形象比較惹谐,破解一個(gè)228位的RSA密鑰需要的能力等同于煮沸一茶匙的水持偏,而另一方面,要想破解一個(gè)228位的橢圓曲線密鑰則需要的能力等同于將地球上所有的水都煮沸豺鼻。
使用橢圓曲線密碼學(xué)中的ECDSA簽名算法综液,我們可以用更小的密鑰達(dá)到同樣的安全級(jí)別,而對(duì)于同等安全級(jí)別RSA密鑰則需要更大儒飒。我們的橢圓曲線密鑰長(zhǎng)度為256位谬莹,實(shí)力相當(dāng)于3100位長(zhǎng)度的RSA密鑰(大多數(shù)RSA密鑰只有1024位或2048位)。你可以比較下面的簽名后的DNSKEY集桩了,其中一個(gè)是RSA密鑰而另外一個(gè)是ECDSA密鑰附帽,我們的密鑰大小僅僅是RSA密鑰和簽名長(zhǎng)度的四分之一。
還有一個(gè)好處是井誉,ECDSA快如閃電蕉扮,并且實(shí)際上我們的工程師Vlad Krasnov對(duì)其進(jìn)行優(yōu)化幫助其跑得更快,通過(guò)匯編程序?qū)崿F(xiàn)本地方式的ECDSA颗圣,他使簽名速度增加了21%喳钟。他的優(yōu)化現(xiàn)在作為1.6版本Go語(yǔ)言的標(biāo)準(zhǔn)加密庫(kù)∑ㄊ梗現(xiàn)在僅僅需要一瞬間就能完成加密,只需0.0001秒奔则,就能對(duì)一個(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類型請(qǐng)求去最大限度地放大這個(gè)因素抽莱。ANY類型查詢都是一個(gè)內(nèi)置的調(diào)試工具范抓,意思就是說(shuō)DNS服務(wù)器將返回每個(gè)對(duì)應(yīng)域名的DNS記錄。不幸的是食铐,他們經(jīng)常被用于發(fā)動(dòng)大規(guī)模的DDoS攻擊匕垫。
九月份,我們停止了對(duì)ANY類型請(qǐng)求的響應(yīng)以及發(fā)布了一個(gè)關(guān)于反對(duì)ANY類型作為互聯(lián)網(wǎng)標(biāo)準(zhǔn)的互聯(lián)網(wǎng)草案璃岳,我們小心翼翼地進(jìn)行著這項(xiàng)工作年缎,并與剩下不多的還在使用ANY類型請(qǐng)求的軟件廠商密切合作悔捶,確保不會(huì)影響他們的生產(chǎn)系統(tǒng)铃慷。
一個(gè)DNS安全擴(kuò)展的ANY類型的查詢,cloudflare.com會(huì)返回231字節(jié)的響應(yīng)蜕该,而與Akamai's的報(bào)告中的域名長(zhǎng)度相比犁柜,同樣是ANY類型它幾乎要返回一個(gè)18倍大的包,多達(dá)4016字節(jié)堂淡。
橢圓曲線+拒絕ANY類型
通過(guò)保證我們的數(shù)據(jù)包足夠小并放進(jìn)512字節(jié)的UDP數(shù)據(jù)包馋缅,我們就已經(jīng)保證了我們域名的安全而免遭受放大因素的DDoS攻擊。如果你對(duì)在CloudFlare上使用DNS安全擴(kuò)展感興趣绢淀,這里有一些簡(jiǎn)單的步驟讓你設(shè)置萤悴。如果你對(duì)技術(shù)性挑戰(zhàn)感興趣,我們歡迎聽到你的消息皆的。