大多數的系統,為了區分使用者權限,都會存在著身分與角色功能,像是如同超人一般的 root,抑或是毫無存在感的 guest。系統的身分驗證功能,是非常需要注重安全的,不然人人都是 root 豈不天下大亂?未來三十天將會跟大家討論,在網頁架構下如何安全地做身分驗證。
身分驗證是一個範圍非常大的主題,要在有限的三十天內寫出完整的系列文是不太可能的,因此一開始先定義好範圍。 僅限 web,主要討論 HTTP 協定上所建立的身分...
本鐵人賽的主題是「身分驗證」,那第一步得先來定義一下什麼是「身分驗證」。 引用 OpenID Connect Core 1.0 所提到的術語(terminolo...
在一開始定義範圍有提到,此系列文將會專注在討論 web 的身分驗證,因此我們第一步應該先了解 web 的基本協定--HTTP,它的規範與特性,後續才會知道,基於...
即便 HTTP 是無狀態的協定,但大家還是會期望驗證完了身分後,這個狀態能保存到下一個 HTTP 請求。 若是熟悉 web 開發的開發者,相信對 Cookie...
Cookie 固然方便,但畢竟它存在著安全隱患(security pitfalls),使得我們無法隨意地將極機密的資訊保存在 Cookie。 RFC 6265...
HTTP 與 Cookie 都是明碼傳輸,這對做身分驗證並不是件有利的事。這就像是結帳刷卡的時候,大喊自己的帳號密碼一樣,路人聽到就能盜刷了。 最理想的情況當然...
密碼學基礎為數學與電腦科學,雖然有分為古典密碼學與現代密碼學兩種,因 web 身分驗證都跟現代密碼學息息相關,所以本主題提到的密碼學都是指現代密碼學。密碼學旨在...
今天來討論概念上最好理解的編碼與加密。嚴格說起來編碼跟加密目的相差很多,但行為或過程有點類似,所以放在一起講。 編碼 編碼(encode)是把資訊轉換另一種格式...
雜湊(hash)也是密碼學重要的討論主題。在簡介密碼學時,有簡單講過雜湊的特性,今天聊一下這個主題。 雜湊比較廣為人知的實作如下: MD5(全名為 Mess...