Open ID 的登出:易用性與安全性問題

之前在 Twitter 和 Irvin 討論過,後來又在 xditeptt2 個人板上面也討論過 PIXNET 的 implement 方法,但我一直都沒有講清楚(阿表達能力薄弱呀orz)所以試著在這裡用長篇幅表達看看:

Open ID 對許多使用者來說,是首次能將「登入認證」和「登入狀態」兩者拆開的全新體驗。因為是認證機制,所以要在易用性上確保使用者能認知 Open ID 幫他做了什麼,且他自己要做什麼以免身分遭到冒用

定義一下,「登入認證」就是那組帳號密碼(或是指紋、掌紋、聲音辨識,隨便),「登入狀態」則是使用者是否已經登入的判斷,在網頁上面就是 cookie。

Open ID 的設計讓使用者看起來1可以共用「登入認證」(即,用同一個身份登入不同的網站),甚至看起來2是直接複製「登入狀態」(因為許多 Open ID sp 的作法是如果已經登入 rp 來要認證的話就直接發 token,不顯示確認畫面)。

因為沒有 single sign-off 能力,當使用者登出 sp 的時候,rp 的「登入狀態」不會因此更新。反過來登出 rp 的時候當然不能讓 rp 去登出 sp(想像你去逛一下抓火狐然後按登出結果連 GMail 都登出了…),只是就以上的情況與 UI 暗示,使用者真的知道登出 PIXNET 主站的時候 murmur.tw 不會跟著登出嗎?

如果不知道,這就是個安全性問題。使用者去 PIXNET 發完部落格文章然後去 murmur 碎碎念一下,結果只按了 PIXNET 的登出卻不知道要按 murmur 的登出… 更何況 murmur 的首頁上只用了一個「使用痞客邦 PIXNET 帳號登入」的按鈕就直接用 OpenID 交換認證。

在我和 xdite 反應這件事情之後,PIXNET 在 sp 端輸入帳號密碼的畫面加上了[同時也登入痞客邦 PIXNET]的勾勾。雖說這個勾勾能讓使用者正確意識到 murmur 和 PIXNET 兩者的「登入狀態」是獨立的,但是因為 PIXNET 做的 Open ID sp 在已認證的狀態下會跳過這個畫面,所以大部分的時候是白搭,使用者根本看不到。

重新整理一次:

Open ID:

  • 共用登入認證,sp 端登入後 rp 可以直接拿 token
  • 不共用登入狀態,要分別登出

但使用者看起來:

  • 因為登入不用重新輸入認證,所以登入狀態好像是共用的
  • 那在 sp 登出的時候 rp 好像會一起登出
  • 實際上不會,所以這造成了安全性問題

這樣的暗示問題在 PIXNET 會比其他網站嚴重,因為使用者明知 murmur 或是 belovely 就是 PIXNET 的網站,要意識到同一家公司的不同網站「登入狀態」竟然是獨立的這還滿難的。畢竟我們都被 Google 或是 Yahoo! 跳來跳去的登入畫面養壞胃口了。

倒是我想不透除了背後從資料庫每次查詢認證以外,Google 怎麼從 google.com 把 blogger.com 的認證拿掉的;不同 domain 的 cookie 不是沒辦法存取嗎?會不會搞半天其實這是唯一的解法…

WebGL

用 JavaScript 在網頁上不經由外掛直接 access 機器的 OpenGL 硬體加速。超級誘人的呀!連 AjaxianDion AlmaerRT 說

Your next 3D shooter will sport a nice “Your browser is not supported please install Chrome, Safari or Firefox.”

但我想到的事情是 OpenGL 真正 implement 的情況。記得之前和 WalkerStellarium 的地景的時候,就發現有些電腦 PNG 檔可以超過 3600px,有些不行;有些電腦上有些行星的材質會亂閃,有些不會;有些電腦 Stellarium 會錯誤根本無法啟動。所以標準是一回事,以後要用 Web 寫 3D 遊戲可能要有財力買個五六張顯示卡,加上瀏覽器/作業系統做排列組合測試。真正可能會出現的訊息是:

Your graphics card, browser, and OS combination is untested. Use at your own risk!

漫畫《死亡預告》

死亡預告》是一部前幾個星期在看的漫畫。它的背景是:國家為了使國民體認生命的價值,進而增進國家的繁榮所以實施了《國家繁榮法》,每個人在進入小學時接受國繁預防接種,其中 0.1% 的疫苗混入了奈米膠囊。膠囊在該國民 18-24 歲之間會破裂而奪去死者的生命。在死亡前 24 小時,死者會收到區公所的配送員送來的「死亡預告證」,簡稱逝紙。

每個章節紀錄了一名「國繁死」死者的過程。故事環繞在死者,和死者週邊的親人、朋友會如何接受與轉化這個事實。有些死者會在生命的最後 24 小時去尋仇,有些則是會做一些過去來不及做的事情,彌補一些來不及處理的關係。「國繁死」是一個值得尊敬的事;「國繁思想」必須要維護,反對國繁的人會被指為「思想頹廢者」,會被國繁警察逮捕,甚至是被注入膠囊。漫畫也描述了國繁制度的歷史背景,與許多人們對這個制度的掙扎和抵抗,以及接受。

對我來說,這個作品是很震撼的。如果有一個制度必須殺掉千分之一的國民以維繫國家的繁榮,它是怎麼產生的?更震撼的是,它是怎麼被社會接受的?它如何型塑社會,使它所代表的觀點與理念變成社會整體的價值觀,甚至是文化、「民族性」?

雖說故事的背景牽涉到了一個可以在人體中存活幾十年然後準時破裂的奈米裝置,但我實在不知這部作品是否屬於科幻。而故事描述的社會如此熟悉,卻又如此扭曲,如同科幻或是其他另類歷史的作品一樣。

我試著憋住呼吸,保持看完連載進度的勇氣。若不能接受那樣的時代,或許也無力忍受現實。