阿里云最新優(yōu)惠券:阿里云DNS正式支持DNSSEC
近日,云解析DNS正式發(fā)布DNSSEC(Domain Name System Security Extensions)功能。DNSSEC功能的發(fā)布,意味著云解析DNS在保護網(wǎng)站訪問安全的方面,又前進了一大步。那到底什么是DNSSEC,這項技術的給我們帶來了什么好處呢。接下來我們一一道來。
DNS的工作原理
在講DNSSEC這個功能之前,讓我們先來看看DNS的工作原理。我們每個用戶,在進行網(wǎng)頁瀏覽的時候,都會輸入域名,來打開相應的網(wǎng)頁,比如要打開淘寶,我們在瀏覽器中輸入www.taobao.com,瀏覽器就會將淘寶的頁面呈到我們的眼前。當電腦在訪問某一個頁面的時候,是需要指定IP地址才能進行訪問,那么輸入域名后,到頁面展示中間,發(fā)生了一些什么事情呢?首先會去本地DNS服務器去查詢,是否存在www.taobao.com這個域名的解析記錄,如果能查到,那么就直接將結(jié)果返回給用戶了??墒侨绻麤]有查到怎么辦,就需要本地DNS進行遞歸的流程,依次去根服務器、.com服務器、taobao.com服務器、www.taobao.com服務器上查詢,最終獲得www.taobao.com 的IP地址,從而瀏覽器可以展示出淘寶頁面。
DNS并非無懈可擊
(1)遞歸鏈路有被劫持的風險
通過工作原理中的例子我們可以看出,在進行一次遞歸查詢的時候,需要對鏈路上每一個權(quán)威服務器進行請求,接收到應答后再去下一個權(quán)威服務器進行查詢。有攻擊者利用了其中的漏洞:當本地DNS去請求某一個權(quán)威DNS服務器的時候,中間的請求很容易就被攻擊者冒充或偽造,返回給本地DNS一個錯誤的解析結(jié)果。而由于沒有驗證手段,此時本地DNS就會拿到錯誤的解析結(jié)果去進行后續(xù)的解析,從而網(wǎng)站被重定向到可能有潛在危險的惡意網(wǎng)站。
(2)Local DNS有被投毒的風險
遞歸解析器可以從權(quán)威服務器中接收到DNS數(shù)據(jù),并將其進行緩存,當有后續(xù)請求時,可以使用緩存數(shù)據(jù)進行應答,從而加速解析流程。當緩存數(shù)據(jù)被攻擊者模擬權(quán)威DNS響應而被遞歸解析器接收后,緩存中的數(shù)據(jù)就會變?yōu)楣粽叩臄?shù)據(jù)。那么后續(xù)再進行解析的時候,就都是具有危險性的解析結(jié)果了。比如此地址指向了一個釣魚網(wǎng)站,用戶就會在在不知情的情況下丟失了用戶密碼,給用戶和企業(yè)帶來損失。
如何來確定解析結(jié)果是真正權(quán)威的結(jié)果呢?DNSSEC技術順勢而生,有效保障了解析結(jié)果的正確性。
什么是DNSSEC?
(1)DNSSEC的介紹
DNS安全擴展是Internet工程任務組(IETF)提供的一系列DNS安全認證的機制。它是DNS提供給DNS客戶端的DNS數(shù)據(jù)來源進行認證,保證Local DNS(resolver)和權(quán)威之間的數(shù)據(jù)不被篡改(中間人攻擊)。當解析數(shù)據(jù)被篡改后,開啟DNSSEC功能的域名,會對獲取到的解析數(shù)據(jù)上的簽名進行驗簽,在驗簽的過程中,如果失敗,則說明獲取的解析數(shù)據(jù)是異常的,則不會使用此解析結(jié)果,從而保證用戶拿到的解析結(jié)果一定是真實可信的。
(2)國內(nèi)DNSSEC的使用情況
DNSSEC的提議在2009年12月1日宣布,目前正在逐漸普及起來。根據(jù)亞太網(wǎng)絡信息中心(APNIC)提供的數(shù)據(jù)顯示,全球DNSSEC驗證目前為 24.12%。如下圖白框內(nèi)所示,在我國目前只有1.03%的域名使用了DNSSEC功能,如今阿里云云解析DNS已支持了DNSSEC功能,可以為廣大用戶提供更加穩(wěn)定的域名解析服務。
b420d9ff1726598a79dc2e83c803046382d5f766.jpeg
圖1. 我國DNSSEC占比圖
(3)DNSSEC的原理介紹
DNSSEC 的記錄類型
? RRSIG(Resource Record Signature): RRset的加密簽名
? DNSKEY(DNS Public Key): 公鑰,包含KSK(Key Signing Key)和ZSK(Zone Signing Key)公鑰兩種
? DS(Delegation Signer): KSK公鑰的摘要
? NSEC/NSEC3(Next Secure): 用來證明否定應答(no name error, no data error, etc.)
? CDNSKEY和CDS: 子zone用來自動更新在父zone中的DS記錄
一個域名,多個相同類型的資源記錄的集合成為資源記錄集(RRset) ,RRset是DNS傳輸?shù)幕締卧N覀兿攘私庀翿Rset(esource Record Set)的原理。
RRSET介紹
-即相同owner,type,class的若干RR的集合。如圖所示:當有一個域名(example.taobao.com.)下有3個A記錄,那么這3個A記錄都將綁定到單個 A RRset 中。
a51d847a53752aa76cea6d7e9a2065fe4055badd.jpeg
圖2. RRset介紹
知道了rrset之后,接下來我們來看下簽名的工作原理。
ZSK(Zone Signing Key)介紹
ZSK私鑰簽名RRset生成RRSIG,公鑰以DNSKEY RRset的形式發(fā)布
僅權(quán)威服務器RRset簽名生成RRSIG
RRSIG的TTL和RRSET的TTL相同
DNS解析時,查詢RRset時,會同時獲取RRSIG,以及DNSKEY,利用ZSK的公鑰驗證簽名
如果權(quán)威DNS是可信的,那么驗證過程到這里就可以結(jié)束了??墒侨绻鸝SK是偽造的,那該如何處理呢?這就需要有一種方法來對ZSK進行驗證
9989c5b90f96dedb20d3e717592eeed2c54bdb86.jpeg
圖3. A記錄簽名流程
21ebdd125aa51ba8a9e65dbe044daa60159dd5d2.jpeg
圖4. A記錄簽名的驗簽流程
KSK(Key Signing Key)介紹
KSK用于驗證ZSK
KSK私鑰簽名DNSKEY RRset(包含ZSK和KSK的公鑰)生成DNSKEY RRSIG
本zone的信任可以建立,但KSK自己簽名驗證自己,不可信,所以需要建立信任鏈打通本zone和父zone之間的信任
_DNSSEC_
圖5. DNSKEY的簽名流程
DS(Delegation Signer)介紹
子zone KSK公鑰的哈希,提交到父zone上,子zone提交DS記錄后,則意味著子zone的DNSSEC已經(jīng)準備就緒
遞歸DNS在迭代查詢過程中,權(quán)威DNS在返回NS記錄的同時會返回DS記錄
遞歸查到KSK公鑰后進行哈希,和父zone里的DS記錄進行比較,如果能匹配成功,則證明KSK沒有被篡改
_DS_
圖6. DS記錄的工作原理
解決眾多DNSSEC技術難題,只為保護你的域名安全
DNSSEC目前是一個更加安全可靠的DNS解決方案,可以保證用戶的解析不被劫持和投毒所影響,使得解析更準確。
這種安全可靠的背后,又有哪些技術挑戰(zhàn)需要去克服呢?
(1) 計算量 & 存儲量
DNSSEC的擁有兩種簽名模式:a.在線簽名; b.離線簽名
在線簽名,可以實時的返回最新的簽名結(jié)果,不需要將簽名結(jié)果存儲在權(quán)威DNS上,節(jié)省了存儲空間,可因為其需要進行實時計算,對CPU的性能帶來了很大的考驗。
離線簽名,可以返回穩(wěn)定的簽名結(jié)果,簽名結(jié)果存儲在權(quán)威DNS上,節(jié)約了計算消耗的時間以及CPU的使用,但對磁盤空間有不小的負擔。
云解析DNS在技術上,利用本身的高容量,高性能的優(yōu)勢,解決了DNSSEC功能所帶來的計算和存儲的壓力,保證了用戶域名的解析穩(wěn)定
(2) 簽名算法的選擇
DNSSEC的簽名有多種算法可以選擇:
密鑰類型編碼 密鑰類型
1 RSA/MD5
2 Diffie-Hellman
3 DSA/SHA-1
4 Elliptic Curve
5 RSA/SHA-1
6 DSA-NSEC3-SHA1
7 RSASHA1-NSEC3-SHA1
8 RSA/SHA-256
10 RSA/SHA-512
13 ECDSA Curve P-256 with SHA-256
14 ECDSA Curve P-384 with SHA-384
252 Indirect
253 Private DNS
254 Private OID
ECDSA與類似的RSA簽名相比,生成ECDSA簽名的計算成本要低10倍,對于云解析DNS現(xiàn)在每天有海量的DNS解析請求,我們解決了高性能的簽名計算難題,使得DNSSEC在技術上擁有了可行性。
使用ECDSA實現(xiàn)128位簽名需要一個256位密鑰,而類似的RSA密鑰則需要3072位。
綜合多種因素,云解析DNS采用的是算法 13: ECDSA Curve P-256 with SHA-256,這種算法簽名得到的結(jié)果安全性高,并且字符長度適中,在兼顧了安全性的同時,也降低了傳輸時數(shù)據(jù)的大小。
(3) 密鑰安全性的保障
DNSSEC擁有兩種密鑰,一種是ZSK,一種是KSK。
其中ZSK是用于對域名的解析記錄(例如A記錄、CNAME記錄等)進行簽名使用的。
而KSK是用于對域名的DNSKEY記錄進行簽名的。
眾所周知的Root KSK Ceremonies,就是ICANN為了保證根密鑰的安全性,定期輪轉(zhuǎn)ZSK的儀式。
在密鑰安全性方面,云解析DNS下了非常大的功夫。為了保證這兩種密鑰的安全性,云解析使用了全托管的密碼機,將密鑰托管在密碼機中,密鑰運算也是在密碼機內(nèi)部進行,從而保證任何人無法看到密鑰明文。同時云解析DNS也會定期對密鑰進行輪轉(zhuǎn),通過減少每個密鑰加密的數(shù)據(jù)量,再次提高了密鑰的安全性。
DNSSEC 通過使用公鑰加密來為授權(quán)區(qū)域數(shù)據(jù)進行數(shù)字簽名,給用戶的域名帶來穩(wěn)定的保障,避免解析記錄被人篡改和投毒。阿里云云解析DNS已支持DNSSEC,全力為您的域名保駕護航。
