漸進式網(wǎng)頁應(yīng)用:可能被忽視了的陰暗面
本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)。
就像蘋果砸在牛頓頭上改變了人們理解萬有引力的方式,增強型網(wǎng)頁應(yīng)用通過提供web形式的類似應(yīng)用程序的體驗,正在改變?nèi)藗儗?yīng)用程序的理解方式。
增強型網(wǎng)頁應(yīng)用是谷歌最初提出的技術(shù)之一。“漸進式網(wǎng)頁應(yīng)用”(progressive web app)是由弗朗西斯·貝里曼(Frances Berriman)和亞歷克斯·拉塞爾(Alex Russell)于2015年首次提出的。
它是一種描述應(yīng)用程序的方法,這種應(yīng)用程序利用了現(xiàn)代瀏覽器支持的新特性,例如service worker和web應(yīng)用程序清單,無論何種本機操作系統(tǒng),用戶都能將web應(yīng)用程序升級為增強型網(wǎng)頁應(yīng)用。
PWAs也能夠聯(lián)網(wǎng),谷歌公司稱它有如下的特征:
- 可靠性:加載迅速,即使在不確定的網(wǎng)絡(luò)條件下也不會顯示那只霸王龍(Chrome斷網(wǎng)界面)。
- 迅速:快速響應(yīng)用戶交互,動畫如絲綢般順滑,不會卡頓。
- 參與性強:就像一個設(shè)備上自然的應(yīng)用程序,具有身臨其境的用戶體驗。
你可能已經(jīng)讀過PWA的相關(guān)信息了,大家都覺得它未來可期。但很可能你并沒有意識到它也有不常被提及的陰暗面。其隱患不少,但本文將主要集中在一項上:指紋識別。
指紋識別是什么?
“沒有兩個人的指紋是相同的,包括同卵雙胞胎。”指紋讓人類變得獨一無二,相互區(qū)分開來。類似地,指紋技術(shù)也可以應(yīng)用于其他實體,用于識別獨一無二的個體。瀏覽器指紋就是一個例子。
瀏覽器指紋是網(wǎng)站通過配置設(shè)置或其他可注意的屬性,從而識別或重新識別訪問者、用戶代理或設(shè)備的能力。瀏覽器指紋可作為一種安全措施,如用戶身份驗證。在某些情況下,指紋識別可用于:
- 辨認用戶
- 跟蹤并關(guān)聯(lián)用戶在會話內(nèi)和跨會話的瀏覽活動
- 收集信息,從中得出關(guān)于用戶的推測等
可能會導致何種危害?
指紋識別的最大威脅在于其可能威脅用戶隱私。
(1) 用戶辨認
用戶可能需要匿名上網(wǎng),這出自不同的原因,例如擔心被監(jiān)視和個人人身安全。瀏覽器的指紋識別可以與個人識別信息相關(guān)聯(lián),應(yīng)用程序或服務(wù)提供商能很容易地識別是否匿名的用戶。
(2) 瀏覽活動的意外關(guān)聯(lián)
即使不需個人信息識別,瀏覽也會被檢測。網(wǎng)絡(luò)平臺可以根據(jù)瀏覽器指紋來保存?zhèn)€人資料,所以這種情況完全有可能。這可能會導致在沒有用戶授權(quán)或內(nèi)容的情況下對用戶進行跟蹤,清除cookie等行為不會阻止或重置已經(jīng)通過瀏覽器指紋獲得的關(guān)聯(lián)。
(3) 關(guān)于用戶的推論
即使沒有上述的需要,僅基于很少的瀏覽器指紋相關(guān)特征,用戶也會被辨認出來或歸類。操作系統(tǒng)版本和設(shè)備細節(jié)可以用來推斷用戶的購買力。假如用戶為匿名,他們絕對不希望使用這種扣除方法。由于設(shè)備指紋識別技術(shù),已經(jīng)有一些相關(guān)事例,例如,Mac用戶會被指引到更貴的酒店消費。
PWA如何輔助指紋識別?
PWAs需要一個清單文件,是一個JSON格式的文件,包含描述應(yīng)用程序的各種特征的鍵。清單文件中的一個值是start_url。這個值決定了當用戶啟動web應(yīng)用程序時應(yīng)該加載的首選URL(例如用戶從設(shè)備的應(yīng)用程序菜單或主屏幕點擊web應(yīng)用程序的圖標時)。
W3C團隊認為這種機制包含了設(shè)備或瀏覽器指紋識別和用戶與瀏覽器活動關(guān)聯(lián)的潛在威脅。他們認為這將導致一種新的類似cookie的本地機制。
有可能 start_url用來表示應(yīng)用程序是從瀏覽器外部啟動的 (例如, "start_url":"index.html?launcher=homescreen")。這對于分析或其他定制可能很有用。然而,開發(fā)人員也可以將字符串編碼到唯一標識用戶的 start_url中(例如服務(wù)器分配的UUID)。這是用戶可能沒有意識到的指紋/隱私敏感信息。
即使在撰寫本文時,這個問題仍有待討論,適當?shù)慕鉀Q方案尚未提出。而且正如W3C團隊提到的,它甚至達到了Github問題已經(jīng)被解決的程度。
“我們同意,我在承認這個問題的同時已經(jīng)關(guān)閉了它,但這個問題是不可解決的,因為它是url固有的。我們讓實現(xiàn)者知道這是一個問題,并提供通過UI進行緩解的可能性。”
安全研究員Lukasz Olejnik對排名前1萬的網(wǎng)頁進行了一項研究,以檢查網(wǎng)頁指紋的使用情況。他的研究發(fā)現(xiàn):
- 1672頁包括manifest.json
- 828個使用了專用的start_url
- 274個使用了參數(shù)
- 沒有網(wǎng)頁使用隨機生成的標識符
他還指出,雖然他確實看到了明顯唯一標識符(例51606102_9527_7259_7770),但它們似乎并不是為每個新用戶隨機生成的。這個適度的測試結(jié)果相當謹慎:技術(shù)上可能的跟蹤目前似乎未被使用。
雖然情況暫時讓人松一口氣,跟蹤方法還沒有在當前的PWAs中實現(xiàn)。但它是一顆定時炸彈,因為正如我們所知,它可能很快就會成為針對用戶隱私的無聲殺手。
蘋果將如何反擊?
圖源:unsplash
蘋果以安全的設(shè)備生態(tài)系統(tǒng)聞名,這主要歸因于比其他任何設(shè)備制造商更嚴格的規(guī)則和政策。雖然一方面損失了產(chǎn)品的可定制性,但另一方面增加了系統(tǒng)的安全性。蘋果公司更傾向于代表用戶做決定,而非用戶自己做決定。
由于PWAs試圖像本地應(yīng)用程序那樣執(zhí)行操作,它們需要訪問設(shè)備硬件特性,如藍牙、NFC、磁場等。通過引入一些Web API,如Web藍牙API、Web NFC API、磁強計API等提供了這些功能,這已經(jīng)成為可能。
但蘋果最近拒絕在基于safari的瀏覽器中使用16個Web API,這表明了這樣一種事實,即它們?yōu)橹讣y識別提供了途徑,對用戶隱私構(gòu)成了威脅。這些API已經(jīng)在Chromium系統(tǒng)中實現(xiàn)了,其中部分在Mozilla系統(tǒng)中得以實現(xiàn)。
蘋果還聲稱,在線廣告商和數(shù)據(jù)分析公司可以操縱這些API,從而對用戶和他們的設(shè)備進行指紋識別。
以上情況給PWAs帶來了麻煩,這將成為開發(fā)人員試圖構(gòu)建利用本機特性的應(yīng)用程序的障礙。WebKit對指紋的第一道防線是不執(zhí)行增加指紋可操作性的web功能,也不使用安全的方法來保護用戶。
蘋果還表示,如果這些新技術(shù)中的任何一項“在未來降低了指紋識別能力”,它將重新考慮將其添加到Safari上。但PWAs是一項很有發(fā)展?jié)摿Φ募夹g(shù),以上提及的隱私問題不應(yīng)該讓客戶們遠離能根據(jù)他們喜好提供F.I.R.E的PWAs。