Zh-tw:NeMo-BrowserID
NeMo 文件庫
讓我們來解釋一下什麼是 Browser ID
回文件庫 | NeMo 首頁
Dwaraka Nath 撰寫 / Linear 翻譯 / 極地狐、Irvin 編輯
Contents
Browser ID
一個沒聽過,好像有點怪的名詞。這個詞很容易讓人聯想到 Mozilla 最著名的專案 Firefox 瀏覽器。事實上,這跟瀏覽器或者瀏覽器的「身分」沒有關係。Mozilla 只是想讓使用者在登入以及管理不同網站間的帳號密碼時,能夠更簡單罷了。
昨天下午,我為了幫我老爸註冊某些論壇,填了很多雜七雜八的欄位。這些註冊過程真的很煩人,而且要花很多時間。首先你要先選一個暱稱,確定還沒有人使用,接下來還要選一個密碼、再加上填驗證碼。然後還要驗證填寫的電子信箱可以正常使用。這整個註冊過程簡直就是要我的命,當我終於完成所有步驟以後,我發現我老爸已經無聊到開始打呼了。 :P
這些麻煩的要死的帳號註冊過程,是時候該想個簡單的解決方案了。我們需要的是一個新的突破,而且沒錯,現在就是對的時間點──快來認識 Browser ID 吧!
Browser ID 是一個安全的分散式架構,讓使用者提供個人資訊給各個網站。主要的身分識別是你的電子郵件信箱。簡單的說,Browser ID 會負責幫你告訴這些網站:「相信我,我真的就是這個郵件信箱的使用者!」
Browser ID 始於 Mozilla Lab 的一個小實驗,隨即而來的一片叫好聲,驅使了這個計畫在團隊成員的加倍努力下,從幕後被帶到幕前來。以下是幾個 Browser ID 的核心概念:
- Browser ID 的主要認證機制就是你的電子郵件信箱,沒有什麼使用者名稱、密碼這些亂七八糟的東西。
- 高安全性以及更友善的使用經驗:登入時不再需要輸入密碼,在任何地方,像是使用公眾熱點、或者咖啡店內提供的無線網路都會是安全的。未來我們更期待其他瀏覽器也能內建支援。
- 完全的分散式架構:實作 Browser ID 的網站擁有者,可以擁有使用認證方式的自主權,完全不會有第三方介入。
- 從現在開始,採用 Browser ID 的網站,不用擔心有假冒電子郵件信箱的問題。所有使用 Browser ID 的電子郵件信箱都是有效的。
痾,聽起來好像不錯,不過,到底是怎麼辦到的?!
介紹
是的,這是我第一件要做的事,不過在往下介紹這個系統是如何運作之前,有一些名詞你必須知道。
- Primary Identity Authority:一個電子郵件帳號,例如 Gmail、Hotmail 或者 Yahoo。
- Relying Party:採用 Browser ID 作為身分驗證的各網站。(又稱 RP)
- Implementation Provider:由瀏覽器內建、或者 browserid.org,負責在使用者端做好 Browser ID 的實作。(又稱 IP)
運作流程
產生帳號
- 一開始你要先打開瀏覽器,登入你的電子郵件信箱。
- 你的電子郵件供應商(像是 Gmail)會呼叫一段 Javascript 程式碼,產生一對金鑰(公開金鑰以及私密金鑰),並且把公開金鑰透過安全連線送到電子郵件提供商那邊去做簽核。
- 此時,電子郵件供應商會簽核了這一組公開金鑰,認證了這個電子郵件帳號是有效的。接著,加上簽核的有效期限後包在一起,再傳回瀏覽器。
- 此時瀏覽器會把回傳的整包資訊以及私密金鑰,存在它的暫存(cache)中,並且產生可用的帳號認證,讓使用者可以透過 Browser ID 登入網站。
帳號驗證
- 如同 Browser ID 設計的運作方式,當你點選「用 Browser ID 登入」時,你可以選擇其中一個已經在 Browser ID 上通過的有效電子郵件信箱登入。
- 瀏覽器這時會把 RP (Relaying Party) 的身分識別、加上你的電子郵件信箱、先前得到的公開金鑰跟有效期限包成一包,傳回給要登入的網站。
- 接下來要登入的網站把收到的認證相關資訊,拿來跟主要帳號認證(Primary Identity Authority)做比對。
- 如果比對無誤,該網站就知道這次的帳號驗證是對的。
我覺得這樣還滿合理的,至少我希望是合理的。
這就產生了一個使用者普遍會有的疑問:那這跟 Open ID 有什麼不同?
- 關於這個嘛,Open ID 也是試著用一組帳號走遍所有網站。但是 Brower ID 與之不同的是,使用的帳號是一組電子郵件信箱。
- 在 Browser ID 的認證過程中,並不會有帳號認證提供者(這裡指的是 Browser ID)參與其中。公開金鑰的比對是在離線的狀態下進行,不會暴露使用者上網的使用情形給 Open ID 提供者,而且也不能被追蹤,因此使用者在使用 Browser ID 的時候更為安全。
- 使用 Browser ID 並不需要輸入密碼,因此是安全的。如果能整合進瀏覽器的話,當然會更安全、能提供更友善的使用者經驗。
附註:Browser ID 這個專案已經被正式命名為 Mozilla Persona,但是 Browser ID 這個名詞對開發者來說仍然不變。