題幹與適用場景
公司準備因應後量子密碼遷移,卻不知道哪些系統使用 RSA、橢圓曲線或共享密鑰。請設計密碼資產清單服務,說明採集、去重、風險評分、權限、變更偵測與遷移串接。
題目考察資產治理系統,不要求預測量子計算時間。RFC 9958 將密碼清單、密鑰建立與簽章用途、密碼敏捷性和遷移證據放在同一工程脈絡;NIST 已發布 ML-KEM、ML-DSA 與 SLH-DSA 標準。
面試官考察點
- 能否區分密碼演算法、密鑰、憑證、協定套件與業務資料壽命。
- 能否把程式碼掃描、執行期遙測、憑證與 HSM API 串成可追溯事實。
- 能否處理重複發現、過期資料、未知演算法與供應商黑盒。
- 能否設計租戶隔離、最小權限、版本化證據與稽核查詢。
- 能否把風險評分連到遷移批次、停止線與回滾,而非只做報表。
需要先釐清的問題
- 清單涵蓋哪些環境:原始碼、容器、行動端、韌體、雲端 KMS、HSM 與第三方 SaaS?
- 資產唯一鍵是密鑰、憑證、呼叫點、服務還是資料流?同一密鑰跨系統使用是否合法?
- 需要保存歷史多久,誰能看到密鑰材料、演算法名稱與業務敏感標籤?
- 風險評分要服務合規證明、工程排程,還是自動阻斷新部署?
- 採集失敗時可否估算,還是必須標記未知並阻止「已完成」結論?
端到端設計
採集器將靜態掃描、憑證解析、KMS/HSM 稽核事件、服務設定與執行期握手摘要寫入不可變事件流。正規化層把演算法、用途、密鑰識別、呼叫主體、資料保密期限、來源、時間與信心度映射到版本化 schema。實體解析層以 tenantid + assetnamespace + providerid + localid 作為候選鍵,並用憑證指紋、密鑰 ARN、部署 ID 與時間窗去重;無法證明相同的記錄保留關聯,不強行合併。
查詢服務只回傳中繼資料與證據連結,不回傳私鑰或完整密文。策略層按資料壽命、演算法狀態、暴露面、無法更新的客戶端比例與證據新鮮度計算風險。風險結果必須保存輸入快照、規則版本與人工覆寫理由。遷移編排器讀取高風險資產,產生批次、負責人、相容矩陣與驗收指標;不能直接替換生產密鑰。
資料一致性與變更偵測
事件流至少一次投遞,因此每個發現帶 sourceeventid 與採集器版本,消費者以冪等寫入表去重。資產狀態由事件折疊得到,刪除採用帶時間的撤銷事件,避免把一次掃描缺失誤判為資產消失。定期掃描與執行期心跳都要回報 last_seen;超出保鮮窗的記錄進入未知狀態。
對程式碼、憑證與設定分別計算內容摘要。摘要變化產生新版本,不覆蓋舊事實。規則升級要重算風險並保留舊分數,以便稽核「當時為何批准」。跨來源衝突時顯示衝突欄位、來源優先級與待確認任務,不能靜默選一個來源。
權限、隱私與可靠性
按租戶、業務域與資產標籤實施列級授權;安全團隊可看演算法與暴露面,應用團隊只看本域遷移任務。密鑰材料、權杖與原始流量永不進入清單;執行期只採集握手中繼資料與脫敏識別。所有讀取與人工修改都寫入稽核日誌。
採集器離線時先落本地佇列並重播,服務端以租戶配額與背壓保護事件流。查詢提供「截至時間」與證據新鮮度,避免把陳舊清單當即時事實。多地域部署使用分區寫入與全域查詢索引;跨地域複製失敗時標記覆蓋範圍,不回報虛假的全量狀態。
設計取捨與邊界
靜態掃描覆蓋廣但可能漏掉動態協商;執行期遙測接近真實使用,卻受流量與隱私限制。兩者應並列存證並以信心度區分。集中式圖譜方便依賴查詢,但爆炸半徑大;按域分區更易授權,跨域關係可透過唯讀引用連接。
自動阻斷新演算法部署能降低新增債務,卻會誤傷未知供應商。可先對高風險規則啟用審批門,再用誤報率、未知資產比例與回滾成功率決定是否強制。清單服務負責事實與排序,密碼庫升級、憑證簽發與業務遷移仍由專門管線執行。
失敗演練與評分標準
若某 HSM 不提供密鑰用途,記錄「用途未知」並建立補證任務;禁止按服務名稱猜測。若同一憑證在多個租戶出現,保留共享關係並觸發隔離審查。若掃描器版本變更導致資產數激增,先比較原始事件與規則版本,再決定是否接受新基線。
高品質回答應給出至少三類來源、不可變證據、冪等與過期語意、最小權限、風險可解釋性與遷移串接。加分點是明確未知狀態、資料保留期限、衝突處理、回滾邊界與「清單完整性」指標;只畫一個資料庫與儀表板不足以通過。
延伸追問與參考答案
為什麼不能用服務名稱推斷演算法?
同一服務可能呼叫多個函式庫、協定或供應商,服務名稱無法證明密鑰用途與實際協商結果。應保留來源證據,並把推斷標記為低信心度。
如何定義清單完整性?
按環境覆蓋率、來源新鮮度、未知資產比例、重複率、事件延遲與抽樣人工核驗準確率定義;資產總數本身不能證明完整。
遷移服務如何消費清單?
編排器按風險與可更新性產生批次,讀取相容矩陣與效能預算,執行灰度、觀測與回滾。清單只提供事實與證據,不直接修改生產密碼設定。