教育專題
防騙小課堂-警惕!IDNs網(wǎng)絡(luò)釣魚欺詐
網(wǎng)絡(luò)釣魚,通常是指通過大量發(fā)送聲稱來自于銀行或者其它知名機構(gòu)的欺騙性垃圾郵件,意圖引誘收件人提交用戶名、密碼等隱私信息的一種攻擊方式。隨著互聯(lián)網(wǎng)日新月異的發(fā)展,釣魚攻擊的形式多種多樣,比如謊稱用戶游戲中獎,然后給一個足以以假亂真的領(lǐng)獎頁面,一旦登錄填入用戶名密碼,賬號將面臨被盜的風險;又或者謊稱“淘寶訂單出問題,需要退款”,提供一個模仿“淘寶”的登錄頁面讓用戶操作,一旦用戶毫無防備地填入信息,很大可能遭受金錢損失。
在一次次釣魚和反釣魚的爭斗中,普通用戶或多或少學習了一定的識別釣魚網(wǎng)站的技巧,其中很重要的一個技巧,就是仔細檢查訪問的URL。通常情況下,除非遇到的是DNS劫持(從域名轉(zhuǎn)換成IP,需要一次完整的DNS查詢過程,如果劫持了用戶的DNS,會導(dǎo)致域名解析到錯誤的IP,從而引導(dǎo)用戶訪問錯誤的站點,實現(xiàn)欺騙用戶的目的),釣魚網(wǎng)站的URL和真實URL并不一樣,比如www.baidu.com.abcdefg.com。雖然在寬度有限的移動端瀏覽器地址欄中,用戶很容易因為疏忽導(dǎo)致被欺騙,但是如果仔細辨別,還是能夠發(fā)現(xiàn)的。然而,就像中文中的“己”和“已”,西文字符中,同樣存在這樣的近似字形。通過構(gòu)造同形異義的域名來實行釣魚攻擊,哪怕是反釣魚經(jīng)驗豐富的用戶,都可能陰溝里翻船,何況普通用戶。
來看這樣一個例子:
?
第一個圖是蘋果官網(wǎng),第二個圖是仿冒的一個蘋果官網(wǎng),可以看到,僅僅憑借檢查地址欄,用戶肉眼很難看出區(qū)別。試想,如果第二個域名用來建設(shè)一個外觀上同蘋果一模一樣的站點,用戶將防不勝防。
要探究產(chǎn)生這個問題的原因和解決方案,不妨簡單討論一下域名演變的歷史。最早的時候,如何標識一個網(wǎng)絡(luò)地址,使用的是點分十進制,也就是所謂IP地址。因為IP不具備語義,不方便記憶,從而誕生了DNS,即域名系統(tǒng)(有興趣的朋友可以參閱RFC1034和RFC1035),根據(jù)協(xié)議,域名的合法字符為“a-z”、“A-Z”、“0-9”、“-”和“.”等64個字符。如果僅僅是上述字符,完全不可能遇到上述的同形異義字問題,然而2003年,IETF通過互聯(lián)網(wǎng)正式公布了與IDNs(Internationalized Domain Names,國際化域名)相關(guān)三個標準(RFC3490、RFC3491、RFC3492),可以將八位的國際化統(tǒng)一編碼Unicode和ASCII字符之間進行編碼轉(zhuǎn)換,能夠構(gòu)成域名的字符集不再局限于ASCII,引入了與英文形狀相似的其他語系的字符,從而使得同形異義字的欺騙成為可能;另一方面,某些現(xiàn)代瀏覽器(如Google Chrome)雖然有一定的防IDNs欺騙機制,然而如果域名的一個完整label使用的字符屬于同一個字符集,將不會地址欄在顯示Punycode,更有甚者,還會對Punycode自動解碼(為了向下兼容舊有的標準,在實際處理中,Unicode字符轉(zhuǎn)換成了Punycode,如上面“https://www.apple.com”例子,同形異義字的Punycode編碼是“https://www.xn--80ak6aa92e.com”,如果直接看到的是Punycode編碼結(jié)果,上當?shù)目赡苄詴〉枚啵?/span>
那么,要如何防范呢?首先,如果看到的URL,直接就是這種以“xn--”開頭的,就要引起警覺,符合這種格式的,大概率就是國際化域名,不要盲目相信地址欄顯示的內(nèi)容;其次,如果看到的是諸如“https://www.арр?е.com”形式的域名,可以復(fù)制域名到瀏覽器打開,然后再復(fù)制地址欄的內(nèi)容粘貼出來,能夠自動解碼顯示的瀏覽器一般也是可以自動編碼的,一進一出,顯示的就是正常的Punycode內(nèi)容了。另一方面,對于信息類APP開發(fā)者而言,可以針對http開頭的信息做正則校驗,不符合ASCII字符編碼的,拒絕識別為URL,不可點擊,一定程度上,也能遏制這種類別的欺詐信息傳播。
?