蘋(píng)果iOS 15中引入的iCloud private relay服務(wù)漏洞致使用戶(hù)真實(shí)IP地址泄露。
iCloud Private Relay服務(wù)是蘋(píng)果iOS 15 測(cè)試版中引入的新功能,可以讓用戶(hù)通過(guò)Safari瀏覽器以一種更加安全和隱私的方式來(lái)瀏覽器網(wǎng)絡(luò)。該服務(wù)確保離開(kāi)設(shè)備的流量是加密的,分別使用2個(gè)互聯(lián)網(wǎng)中繼讓用戶(hù)可以不使用真實(shí)的IP地址和位置來(lái)瀏覽網(wǎng)絡(luò)。
使用iCloud Private Relay的客戶(hù)端IP地址泄露
FingerprintJS安全研究人員發(fā)現(xiàn),用戶(hù)通過(guò)服務(wù)器收到的HTTP請(qǐng)求,就可以獲取代理的IP地址。也可以通過(guò)webRTC來(lái)獲取客戶(hù)端的真實(shí)IP 地址。WebRTC(web實(shí)時(shí)通信)是一個(gè)開(kāi)源計(jì)劃旨在通過(guò)API來(lái)提供實(shí)時(shí)通信的web瀏覽器和移動(dòng)應(yīng)用,可以在無(wú)需安裝插件或APP的情況下實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)音視頻通信。
兩個(gè)終端之間的實(shí)時(shí)媒體信息交換是通過(guò)一個(gè)名為signaling的發(fā)現(xiàn)和協(xié)商過(guò)程來(lái)建立的,signaling中使用了一個(gè)名為interactive connectivity establishment(ICE,交互式連接創(chuàng)建)的框架,該框架中有2個(gè)方法可以用來(lái)找到和建立連接。
FingerprintJS研究人員發(fā)現(xiàn)數(shù)據(jù)需要在終端之間NAT(網(wǎng)絡(luò)地址翻譯)協(xié)議進(jìn)行傳播時(shí),STUN服務(wù)器會(huì)生成一個(gè)“Server Reflexive Candidate”。STUN是用來(lái)提取NAT背后的網(wǎng)絡(luò)設(shè)備的公網(wǎng)IP地址和端口號(hào)的工具。
漏洞源于STUN請(qǐng)求并不是通過(guò)iCloud Private Relay來(lái)代理的,會(huì)引發(fā)signaling過(guò)程中ICE candidate交換時(shí)客戶(hù)端的真實(shí)IP地址暴露。
FingerprintJS稱(chēng)已經(jīng)向蘋(píng)果公司報(bào)告了該安全漏洞,蘋(píng)果公司已經(jīng)在最新版本的macOS Monterey修復(fù)了該漏洞。但在使用iCloud Private Relay的iOS 15系統(tǒng)中仍然沒(méi)有修復(fù)。
這一問(wèn)題表明,iCloud Private Relay并不能取代VPN,想要隱藏真實(shí)IP地址的用戶(hù)還是應(yīng)該考慮使用VPN或通過(guò)Tor來(lái)瀏覽互聯(lián)網(wǎng),并在使用Safari瀏覽器時(shí)就用JS來(lái)關(guān)閉WebRTC相關(guān)的特征。