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