證不是裝完證書就結(jié)束:連接驗(yàn)收清單)
證書文件復(fù)制到服務(wù)器和客戶端后連接成功只能證明某條路徑可用不能證明身份校驗(yàn)完整。客戶端可能沒(méi)有驗(yàn)證服務(wù)端服務(wù)端也可能只校驗(yàn)證書由可信 CA 簽發(fā)卻沒(méi)有把證書身份與數(shù)據(jù)庫(kù)用戶正確對(duì)應(yīng)。驗(yàn)收必須同時(shí)覆蓋信任鏈、名稱映射、認(rèn)證規(guī)則和證書生命周期。KES 官方安全指南說(shuō)明SSL 客戶端證書認(rèn)證會(huì)要求客戶端提供有效可信證書并將證書CN與請(qǐng)求的數(shù)據(jù)庫(kù)用戶名比較也可以通過(guò)用戶名映射處理二者不同的情況。這個(gè)映射邊界是驗(yàn)收重點(diǎn)不能只看證書“有效”。— 可信證書、正確身份和正確規(guī)則缺一不可。建立一套最小測(cè)試矩陣準(zhǔn)備合法用戶證書、另一用戶證書、非可信 CA 證書、過(guò)期測(cè)試證書和無(wú)證書客戶端。對(duì)同一數(shù)據(jù)庫(kù)執(zhí)行連接記錄期望結(jié)果合法證書與正確用戶名成功用戶名不匹配、非可信證書、過(guò)期證書和缺少證書應(yīng)失敗。如果配置了用戶名映射再增加映射內(nèi)與映射外兩組用例。映射規(guī)則應(yīng)精確到業(yè)務(wù)所需范圍不要用一個(gè)寬泛規(guī)則讓任意證書身份都能映射成高權(quán)限數(shù)據(jù)庫(kù)用戶。測(cè)試過(guò)程中不要把私鑰、口令或完整證書內(nèi)容貼進(jìn)問(wèn)題單。記錄證書序列號(hào)、指紋末尾、用途和有效期即可定位敏感文件通過(guò)受控渠道分發(fā)。檢查第一條匹配規(guī)則sys_hba.conf按連接類型、數(shù)據(jù)庫(kù)、用戶和來(lái)源地址從上到下匹配命中后認(rèn)證失敗不會(huì)自動(dòng)回退到后續(xù)規(guī)則。連接被拒絕時(shí)先找到實(shí)際匹配行不要在文件末尾不斷追加“臨時(shí)允許”。證書認(rèn)證規(guī)則還要與 SSL 服務(wù)端配置配套。若hostssl沒(méi)有生效問(wèn)題可能在證書文件、私鑰權(quán)限、服務(wù)端 SSL 開關(guān)或啟動(dòng)日志而不一定是用戶證書。按鏈路排查比反復(fù)修改認(rèn)證方法更安全。驗(yàn)證輪換不只驗(yàn)證首次部署證書系統(tǒng)最大的現(xiàn)場(chǎng)風(fēng)險(xiǎn)通常出現(xiàn)在到期和輪換。測(cè)試新舊證書重疊期、替換順序、客戶端重連和舊證書失效。連接池里的舊連接會(huì)延遲暴露問(wèn)題應(yīng)主動(dòng)關(guān)閉一部分連接確認(rèn)新建連接使用新證書。還要演練一張客戶端證書泄露后的處置如何阻斷、如何更新信任或吊銷信息、哪些應(yīng)用受影響、怎樣確認(rèn)舊證書不能再登錄。若只能“等它過(guò)期”證書生命周期管理就不完整。— 成功一條、失敗多條才能證明身份邊界存在。把時(shí)間同步納入檢查證書有效性依賴時(shí)間。數(shù)據(jù)庫(kù)服務(wù)器、客戶端和簽發(fā)系統(tǒng)時(shí)間偏差可能造成尚未生效或已過(guò)期判斷異常。將時(shí)間同步狀態(tài)加入巡檢并讓到期告警覆蓋所有實(shí)例、客戶端和備用節(jié)點(diǎn)。高可用環(huán)境中每個(gè)可能接管服務(wù)的節(jié)點(diǎn)都要具備正確證書和權(quán)限。只在當(dāng)前主節(jié)點(diǎn)驗(yàn)證一旦切換可能立刻失敗。通過(guò)實(shí)際切換演練或隔離驗(yàn)證確認(rèn)備用節(jié)點(diǎn)而不是僅比較文件名。最終驗(yàn)收材料應(yīng)包括測(cè)試矩陣、結(jié)果、匹配規(guī)則、證書有效期、輪換負(fù)責(zé)人和回滾步驟。證書認(rèn)證的完成標(biāo)志不是“文件裝好了”而是錯(cuò)誤身份確實(shí)進(jìn)不來(lái)正確身份在輪換和切換后仍能穩(wěn)定連接。證書分發(fā)也需要可追溯。客戶端私鑰只發(fā)給對(duì)應(yīng)運(yùn)行主體禁止多人共用同一份高權(quán)限證書自動(dòng)化分發(fā)平臺(tái)應(yīng)記錄目標(biāo)、版本和時(shí)間不在普通日志輸出文件內(nèi)容。設(shè)備或主機(jī)下線時(shí)同步回收證書不要只刪除應(yīng)用目錄。對(duì)于用戶名映射建議保留一份可審閱的規(guī)則表證書身份、數(shù)據(jù)庫(kù)角色、業(yè)務(wù)系統(tǒng)、批準(zhǔn)人和有效期。每次增加映射都做沖突檢查防止一張證書通過(guò)多條寬泛規(guī)則落到不同角色。刪除映射后用原證書做拒絕測(cè)試確認(rèn)緩存或舊連接沒(méi)有留下入口。最后抽查審計(jì)記錄能否識(shí)別證書登錄對(duì)應(yīng)的數(shù)據(jù)庫(kù)用戶和來(lái)源。認(rèn)證負(fù)責(zé)阻止非法進(jìn)入審計(jì)負(fù)責(zé)證明誰(shuí)曾進(jìn)入兩條鏈路需要在同一次演練中閉環(huán)。客戶端驗(yàn)收要覆蓋實(shí)際驅(qū)動(dòng)和連接池命令行成功不代表應(yīng)用使用的信任庫(kù)與主機(jī)名校驗(yàn)也正確。參考資料KES 官方安全指南SSL 客戶端證書認(rèn)證