iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0

https://ithelp.ithome.com.tw/upload/images/20230918/2014532958PGAdyV9r.png
圖1. 架構組件:Device Inventory Database 和 User/Group Database(圖片來源:https://www.beyondcorp.com/ )

上回說到了 BeyondCorp 的架構組成元件以及大致看了一下各組件之間的關聯(如上圖),這回我們將視角縮進,來看一下上圖中的兩個組件:Device Inventory Database 和 User/Group Database。

本篇大部分爲論文翻譯,詳見出處:An overview: "A New Approach to Enterprise Security"

安全地識別設備

設備庫存數據庫 (Device Inventory Database)

BeyondCorp 中使用 “managed device“ 的概念,指的是由企業采購並主動管理的設備。只有 “managed device“ 可以訪問企業應用程序。其中,圍繞設備庫存數據庫 (device inventory database) 的設備跟蹤和采購流程是模型的基石之一。

Google 會追蹤並記錄設備的狀態更新,對這些設備信息進行分析,並將這些信息提供給 BeyondCorp 架構中的其他組件使用。

由於 Google 擁有多個庫存數據庫,因此,Google 在這些多個庫存數據庫之上使用了一個元庫存數據庫 (meta-inventory database),用來匯總和規範來自多個庫存數據庫的設備信息,並將該信息提供給 BeyondCorp 的下游組件。元庫存數據庫讓我們能夠了解到所有需要訪問企業的設備。

總結:將企業設備的生命周期信息通過數據庫進行統一集中管理,並提供給下游使用。

設備身份 (Device Identity)

在數據庫中,所有設備都需要一個唯一的標示,一個 unique id。實現這種唯一標示的一種方法是給每個設備一個設備證書 (device certificate)。

擁有設備證書的前提是,設備必須在數據庫中是存在且正確的。設備證書會被存儲在硬件或軟件 TPM (Trusted Platform Module) 或合格的證書庫 (certificate store) 中。

TPM (Trusted Platform Module) 是一種物理或嵌入式安全技術(微控制器),位於計算機主板或處理器中。TPM 使用加密技術幫助安全地存儲個人電腦上的重要信息,以實現平台驗證。

檢驗設備是否是 “managed device" 的驗證過程中,會檢驗設備證書的有效性,只有被認為足夠安全的設備才能被歸為 "managed device"。由於設備證書會定期更新,因此設備的驗證過程會在每次證書更新時被強制執行。一旦安裝,該證書將在所有與企業服務的通信中使用。

設備證書作爲設備的唯一標示,它本身並不授予設備訪問權限,也就是說它和權限無關。它被作爲關於設備信息的一組密鑰被使用。

總結:在設備庫存數據庫中,透過設備證書來實現設備的唯一標示。

安全地識別用戶

用戶和群組數據庫 (User and Group Database)

除了驗證設備之外,BeyondCorp 也驗證身份。BeyondCorp 透過用戶和群組數據庫 (User and Group Database) 追蹤和管理所有用户。該數據庫與 Google 的人力資源流程緊密結合,記錄了 Google 內部員工的職位分類、用戶名稱和群組權限,當員工加入公司、職位異動或離開公司時,數據庫就會更新。

總結:透過用戶和群組數據庫集中管理員工信息,這些信息和 HR 系統聯動,比如員工入職、轉職等。

Single Sign-On

(論文中只是簡單講一下 Single Sign-On 是什麼。)SSO 是一個集中的用戶身份驗證授權機制,讓用戶可以使用一組身份驗證憑證(例如用戶名和密碼)一次登錄到多個不同的應用程序或網站。在驗證用戶和群組數據庫中的信息後,會生成短期的 token,這個短期 token 會作爲授權過程的一部分。

由於如果只寫到這裡的話篇幅太短,所以我們來複習一下 SSO。

https://ithelp.ithome.com.tw/upload/images/20230918/20145329waFXYiP72c.png
圖2. 架構組件:Single Sign-On (SSO)(圖片來源:https://www.beyondcorp.com/ )

SSO 主要仰賴一個中央身份驗證 (Central Authentication Service (CAS)) 伺服器。下面是 SSO 流程的分步圖:

https://ithelp.ithome.com.tw/upload/images/20230918/20145329tU9zo6jyXI.png
圖3. SSO flow(圖片來源:https://blog.bytebytego.com/ )

Breakdown 下來的話,SSO 流程如下:

  1. 當用戶試圖初次登入應用程序(例如 Gmail )的時候,用戶訪問被導到 CAS (Central Authentication Service)
  2. 用戶輸入帳號密碼,而 CAS 負責驗證密碼並產生一組 Ticket Granting Ticket (TGT) 和 Service Ticket (ST)。其中,TGT 會被存放在用戶瀏覽器中的 Ticket Granting Cookie (TGC),表示 global session,而 ST 則是用戶訪問被導回應用程序時會帶著回去的東西。
  3. 當用戶帶著 ST 被導回應用程序時,應用程序會向 CAS 驗證這組 ST,如果驗證通過則登入成功。
  4. 當有下一次登入時,例如登入 Youtube,用戶訪問一樣被導到 CAS
  5. 由於上一次初次登入已生成過 TGC,CAS 認可我們當初的驗證,於是 CAS 直接產生一組新的 ST,我們不用再次輸入帳號密碼
  6. 和步驟 3. 一樣,當用戶帶著 ST 被導回應用程序時,應用程序會向 CAS 驗證這組 ST,如果驗證通過則登入成功。

常見的 SSO protocols 有 LDAP、SAML、OIDC 等,適用場景各異,在此不贅述。

好這就是今天的部分~明天我們來學習架構圖中的 Unprivileged Network 和 Radius server。明天見!


上一篇
Day2 BeyondCorp 架構概覽
下一篇
Day4 架構元件—Unprivileged Network 和 RADIUS
系列文
Google BeyondCorp 零信任模型:從概念到實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言