然而,如果攻擊者有辦法騙過您的瀏覽器,讓瀏覽器透過 Secure Socket Layer (SSL) 連線傳送一些他們已知的純文字內(nèi)容,再加上如果攻擊者有辦法截取到加密過的傳送內(nèi)容復(fù)本,那么,他們就有可能解開信息中屬于純文字的部分。雖然,截取加密過的信息并不如取得金鑰來得有用,但卻能讓攻擊者對該信息執(zhí)行加密分析。
接下來,只要經(jīng)過一番努力,攻擊者就可解開使用者傳送至安全服務(wù)器的部分內(nèi)容。值得注意的是,這種手法一次只能針對一個通訊方向進行攻擊。此方法有可能解開同一信息中的其他純文字內(nèi)容 (當(dāng)然還有攻擊者所插入的文字)。BEAST 工具套件就是利用這種方法來解開連線階段的 Cookie,然后再用 Cookie 來挾持使用者的連線階段。
多年來,安全專家早就知道 TLS/SSL 含有這項先天的弱點。也就是說,BEAST 工具套件并未揭露任何我們先前所不知道的秘密。它只是將這項攻擊變成一種容易使用的套件,大幅減輕執(zhí)行這項攻擊所需的資源和技術(shù)能力。
BEAST 如何運作
很多人說這是一種中間人 (man-in-the-middle) 攻擊,但它卻可以輕易地透過瀏覽器在區(qū)域網(wǎng)絡(luò)上發(fā)動。視網(wǎng)絡(luò)的組態(tài)而定,網(wǎng)絡(luò)監(jiān)聽工具可以安裝在目標(biāo)主機或在鄰近的主機上。這一點在基礎(chǔ)架構(gòu)上有許多彈性。
首先第一步就是想辦法將程序代碼注入目前的瀏覽器連線階段。這可透過內(nèi)嵌式 iframe 或跨網(wǎng)站程序攻擊 (XSS) 這類技巧來達成。注入的程序代碼必須促使瀏覽器透過 SSL 通道將某段已知的純文字內(nèi)容傳送給服務(wù)器。此外,這也能透過簡單的 Javascript 來達成。在注入這段程序代碼之前,攻擊者還必須截取到 SSL 使用者的網(wǎng)絡(luò)通訊內(nèi)容,不論是在目標(biāo)機器上執(zhí)行一個網(wǎng)絡(luò)監(jiān)聽程序,或者透過中間人攻擊 (man-in-the-middle) 來截取通訊內(nèi)容。不管怎樣,在取得上述純文字內(nèi)容和加密過的信息之后,攻擊者就能利用一些加密分析工具來解開其中的 Cookie。
使用者能做些什么?
盡可能縮短 SSL 連線階段的時間。攻擊者需要一些時間來解開加密過的信息。如果連線階段 Cookie 在攻擊者解開之前就已失效,攻擊就無法得逞。
當(dāng)您離開某個采用 SSL 保護的網(wǎng)站時,請記得確實執(zhí)行注銷,而非只是前往其他的網(wǎng)站。在很多情況下,只要是確實做到注銷的動作,就能讓 Cookie 或連線階段資料失效,因此就算攻擊者已成功解開 Cookie 也無用武之地。
傳統(tǒng)的標(biāo)準(zhǔn)安全實務(wù)原則依然有效。因為這項攻擊的成功條件之一是攻擊者必須能夠進入您的網(wǎng)絡(luò)或您的電腦。至少,隨時保持資訊安全軟體更新,就能讓駭客不易得逞。
但是,修正此問題的最終責(zé)任還是在網(wǎng)站系統(tǒng)管理員身上。系統(tǒng)管理員能做些什么?
確定您的注銷動作確實做到預(yù)定的功能。當(dāng)使用者按下“注銷”時,如果您的網(wǎng)站未確實讓連線階段 Cookie 失效,那么使用者就會處于危險狀態(tài)。
確定在連線階段建立時將連線階段 Cookie 與 IP 位址綁定。如果 IP 位址改變,最好再確認一次通訊請求的來源是否為原本的使用者。雖然這樣的作法無法杜絕這項攻擊,但可讓您的使用者較不易受到利用。
在未仔細評估風(fēng)險之前,別輕易改變 SSL 加密方法。沒錯,RC4 的確沒有這類風(fēng)險,但是它的風(fēng)險比 AES 大得多。而且,您最好隨時注意一下IETF TLS 工作小組的最新動態(tài)。
新版的 TLS 標(biāo)準(zhǔn)已經(jīng)消除了這項漏洞。但很不幸地,市面上的 HTTP 服務(wù)器和瀏覽器尚未全面支持這些新的標(biāo)準(zhǔn)。因此,在您做這類改變之前,請務(wù)必仔細評估您的環(huán)境和您的使用者族群。