讀零信任網路:在不可信網路中構建安全系統10認證身份

躺柒發表於2024-08-06

1. 使用者所知道的資訊

1.1. 只有使用者本人知道的資訊

1.2. 密碼

  • 1.2.1. 密碼是常用的認證機制

  • 1.2.2. 密碼驗證就是確認使用者“所知”性的較好途徑

  • 1.2.3. 使用者可以利用密碼管理器來便捷地管理多個高強度密碼,從而有效降低資料洩露風險

  • 1.2.4. 長度足夠長

  • 1.2.4.1. 最近的NIST密碼標準建議密碼長度最小為8位

  • 1.2.4.2. 具有高度安全意識的個人通常使用的密碼長度為20位以上

  • 1.2.4.3. 使用密碼短語可以幫助使用者記住位數較長的密碼

  • 1.2.5. 難以猜測

  • 1.2.5.1. 使用者通常會高估他們選取隨機數的能力

  • 1.2.5.2. 最好利用隨機數生成器生成的數值作為密碼

  • 1.2.5.3. 它們的記憶難度可能會給使用者帶來不便

  • 1.2.6. 不重複使用

  • 1.2.6.1. 密碼會被儲存在某些應用服務資料庫中

  • 1.2.6.2. 在不同應用或服務中使用相同的密碼,那麼安全性最弱的系統決定了這個密碼的安全強度

  • 1.2.7. 在任何情況下,都不能以明文形式直接儲存密碼,而應該儲存密碼的加密雜湊值

  • 1.2.7.1. 雜湊演算法的複雜度決定了暴力破解密碼的開銷

  • 1.2.7.2. 由破解所需的時間和/或記憶體表示

  • 1.2.7.3. NIST週期性釋出的標準檔案中包含了推薦的加密演算法

  • 1.2.7.4. 最好根據最新的行業實踐選擇最佳演算法

2. 使用者所持有的憑證

2.1. 使用者可以提供的物理憑證

2.2. 時間型動態口令令牌

  • 2.2.1. 基於時間的一次型口令(TOTP)是一種常見的認證標準

  • 2.2.2. 它要求使用者提供隨時間改變的口令

  • 2.2.3. RFC 6238定義了適用於硬體裝置和軟體應用的TOTP演算法標準

  • 2.2.4. 推薦使用移動裝置/手機上的應用程式來產生動態口令

  • 2.2.5. TOTP都要求使用者和服務之間共享一個隨機的種子金鑰,將種子金鑰和當前時間戳結合,使用一個加密雜湊演算法就可生成一次性口令

  • 2.2.6. 種子金鑰在裝置和認證伺服器上的安全儲存至關重要

  • 2.2.6.1. 金鑰洩露將對這種認證機制造成永久性破壞

  • 2.2.6.2. RFC推薦使用類似TPM的硬體裝置儲存加密的金鑰,並限制對硬體裝置中加密資料的訪問

  • 2.2.6.3. 與認證伺服器相比,移動裝置上存放的種子金鑰更容易洩露,移動裝置無意間連線上一個惡意服務就可能導致金鑰洩露

  • 2.2.6.4. 可以使用一種TOTP的備選方案,透過加密通道給使用者手機傳送一個隨機驗證碼,然後在另外一臺裝置上輸入該驗證碼,驗證使用者目前是否持有對應的手機

  • 2.2.7. 只要使用者裝置和伺服器的時鐘大致同步,則二者計算的TOTP一定相同,透過對比這個口令就可以確認使用者是否擁有共享金鑰

  • 2.2.8. SMS並不是安全的通訊通道

  • 2.2.8.1. 利用隨機驗證碼認證,需要保證驗證碼送達目標裝置且確保沒有在傳輸過程中被暴露或劫持

  • 2.2.8.2. 以前通常將驗證碼作為簡訊傳輸,但是因為SMS系統對驗證碼的傳輸並沒有足夠的安全保證,所以不推薦使用SMS通道傳輸驗證碼

2.3. 證書

  • 2.3.1. 為每個使用者簽發X.509證書是認證使用者的另外一種有效方式

  • 2.3.1.1. X.509證書一般透過計算機進行提交和認證識別,它是“機器”憑證

  • 2.3.1.2. 其資訊量比密碼之類的“人類”憑證要大得多

  • 2.3.1.3. 作為認證憑證時可以提供更豐富的資訊

  • 2.3.1.4. 以將使用者的後設資料嵌入或繫結到證書,由於可信機構對證書進行了簽名,因此這些後設資料也成為可信資訊

  • 2.3.1.5. 在不成熟的網路下,採用這種做法在一定程度上可以減少對可信使用者目錄的建設需求

  • 2.3.2. 證書透過一個高強度的私鑰生成,然後使用簽發CA的私鑰對證書進行簽名

  • 2.3.3. 對證書進行任何修改都會導致CA的簽名無效,因此該證書可以作為任何信任其簽發CA的服務的認證憑證

  • 2.3.4. 推薦在特定硬體上產生和儲存私鑰以防數字盜竊

2.4. 安全令牌

  • 2.4.1. 一種主要應用於使用者認證的的硬體裝置,但它們也有一些額外的應用

  • 2.4.2. 憑證/私鑰本身就是由安全令牌生成的,並且憑證資訊永遠不會離開硬體令牌

  • 2.4.3. 使用者裝置透過API與硬體進行互動,代表使用者執行加密操作,以證明使用者確實持有安全令牌

  • 2.4.4. 企業傾向於使用硬體機制來認證使用者身份,諸如智慧晶片和Yubikey這類的硬體裝置提供1:1的身份斷言,將使用者身份與硬體裝置繫結,大大減小了使用者憑證被複制和盜竊的風險

  • 2.4.4.1. 可能只有真正盜取硬體裝置才能獲得使用者憑證

  • 2.4.5. 使用特定硬體裝置儲存私鑰是目前較安全的儲存方法,而這些私鑰是許多認證機制的基石

  • 2.4.6. 通用第二因子(Universal 2nd Factor, U2F)認證

  • 2.4.6.1. 作為成熟PKI機制的替代者,U2F針對網頁服務提供了一種輕量級的挑戰應答協議

  • 2.4.7. 無論選擇哪種認證機制,只要它依賴於非對稱加密演算法,那麼最好使用安全令牌

  • 2.4.8. 並不能保證自身的安全性

  • 2.4.8.1. 被盜

  • 2.4.8.2. 被濫用

  • 2.4.9. 需要意識到令牌雖然是構建安全系統的一個不錯的選擇,但並不能徹底代替其他使用者的身份驗證機制,如果需要確保某個使用者確實是其宣稱的身份,那麼仍然強烈建議使用附帶額外認證因子的安全令牌(如口令或者生物特徵)

3. 使用者所固有的特徵

3.1. 使用者的固有特徵

3.2. 透過物理特徵識別使用者被稱為生物特徵識別

3.3. 隨著日常使用的各種裝置越來越多地被嵌入各種高階感測器,生物特徵識別的採用正變得越來越普遍

  • 3.3.1. 指紋

  • 3.3.2. 掌紋

  • 3.3.3. 視網膜掃描

  • 3.3.4. 語言分析

  • 3.3.5. 人臉識別

3.4. 雖然生物特徵識別有助於提升系統安全性,但這種機制的一些天然缺陷也不可忽略

  • 3.4.1. 生物特徵認證極大地依賴於物理特徵的精準度量,攻擊者可能欺騙感測器,從而透過認證

  • 3.4.2. 針對指紋感測器的攻擊方式已經獲得成功,攻擊者設法獲取指紋圖片,然後透過3D列印技術進行復制,從而成功欺騙指紋感測器

3.5. 生物特徵的另一個缺點是它們不可變更

  • 3.5.1. 這是人類與生俱來的物理特徵

  • 3.5.2. 這會引發一些潛在的訪問問題

  • 3.5.2.1. 有些人天生就沒有指紋(皮紋病)

  • 3.5.2.2. 在一場事故中失去了指紋

3.6. 生物特徵識別還面臨意想不到的法律問題

  • 3.6.1. 在美國,法庭可以強制要求公民提供指紋從而解鎖一個裝置,但不可以強制要求公民說出他們的口令

  • 3.6.1.1. 根據《美國憲法第五修正案》中公民擁有的自證其罪的權利

4. 一種或多種方法認證使用者

4.1. 具體應該使用哪種/哪些認證方式取決於所需的信任等級

4.2. 對於需要多因子認證的高風險操作,最好不要選取同一型別的認證方式,即需要組合使用者所知道的資訊、所持有的憑證和所固有的特徵這3種型別的認證方式

  • 4.2.1. 因為攻擊向量在特定分組中通常是相似的

4.3. 如何選取認證因子進行組合,很大程度上和使用者所使用的裝置相關

  • 4.3.1. 使用者裝置是桌上型電腦,那麼可以將密碼(使用者所知道的資訊)和硬體令牌(使用者所持有的憑證)組合起來提供高強度的認證機制,以保證極高的安全性

  • 4.3.2. 移動裝置的場景,指紋(使用者所固有的特性)和密碼(使用者所知道的資訊)的組合是一個更好的選擇

5. 使用者的物理安全

5.1. 影響使用者信任度

5.2. 可以強迫使用者阻止這些機制

5.3. 使用者可能被威逼利誘,從而洩露他們的憑證或者授權某人操作他們的可信賬戶

5.4. 透過使用者行為分析和歷史操作日誌分析可以發現異常,緩解這些攻擊向量帶來的影響

6. 帶外認證

6.1. 採用帶外認證方式認證使用者時,會特意使用一個額外的通訊通道,這個通訊通道和使用者首次認證所用的通道完全不同

6.2. 使用帶外認證方式,可以提升賬號破解的難度,因為攻擊者必須控制/攻破帶外認證的通道才能得逞

6.3. 主要的帶外認證手段

  • 6.3.1. 郵件方式可以告知使用者最近發生的潛在敏感操作

  • 6.3.2. 完成請求前讓使用者二次確認

  • 6.3.3. 聯絡第三方以確認是否允許操作請求

  • 6.3.4. 究竟該選擇哪種形式取決於每次認證互動所需的認證強度

6.4. 帶外認證使用得當可以極大地增加系統的安全性

7. 單點登入

7.1. 使用者需要互動的服務數量越來越多,業界傾向於將認證和最終的服務實現解耦

7.2. 單點登入(SSO)是一個非常成熟的概念

  • 7.2.1. 在SSO模式下,使用者透過集中授權進行身份認證後會被授予令牌

  • 7.2.2. 此令牌會用於後續和其他受保護服務的通訊,這些服務收到帶有令牌的使用者請求後,透過安全的傳輸通道向認證服務驗證這些令牌的合法性

7.3. 使用者只需要與一項服務進行認證

7.4. 相關認證資訊儲存於一個有嚴格安全標準的特定服務上

7.5. 安全憑證存放位置的減少意味著暴露面減小,這降低了風險,並且更有利於變更憑證

7.6. 採用非集中式認證的零信任網路透過控制平面向資料平面推送憑證和訪問策略,這樣資料平面可以在任何時候按需完成認證,並且確保認證策略受控於控制平面

7.7. 需要儘可能確保到集中認證服務驗證令牌的頻率,因為每次呼叫控制平面驗證令牌都提供了潛在的撤銷令牌或趁機修改信任等級的機會

7.8. 服務在支援SSO認證的同時管理自己的登入機制

  • 7.8.1. 控制平面只負責對初次請求進行授權,剩下的所有認證授權決策則交由服務自己負責

  • 7.8.2. 信任的變更(甚至失效)是零信任網路的主要特點,因此,在採用這種模式之前需要謹慎評估

7.9. 已有的SSO技術

  • 7.9.1. SAML

  • 7.9.2. Kerberos

  • 7.9.3. CAS

7.10. 在零信任網路中,認證應該始終是控制平面的關注點

7.11. 設計零信任網路的認證體系時,應該儘可能多地考慮控制平面的參與性,並且理所當然地應該讓控制平面驗證授權請求的頻率儘可能高

8. 向本地認證解決方案轉移

8.1. 擴充套件本地認證,使其和遠端服務相結合,這種機制越來越受到認可

8.2. 使用者透過本地的一個可信裝置認證其存在性,可信裝置進一步和遠端服務進行認證,確認其身份的合法性

8.3. 一些開放標準(如FIDO聯盟的UAF標準)使用非對稱加密演算法和本地裝置認證系統(如口令和生物特徵)​,將信任從大量服務轉移到了數量相對較少的使用者可控的終端上

8.4. UAF也許更像是密碼管理器,但是它管理的是私鑰而非密碼,同時公鑰會被分發給認證服務,這樣它就可以確認使用者確實持有私鑰

8.5. 益處

  • 8.5.1. 挑戰應答系統減少了重放攻擊的威脅

  • 8.5.2. 減少了中間人攻擊

  • 8.5.3. 不存在同一憑證在不同服務中重複使用的情況,因為憑證和服務是1對1安全生成的

相關文章