很多團隊做密評時總覺得 “流程復雜、標準難抓”,但多數(shù)不通過的情況,本質(zhì)是踩了 “基礎合規(guī)漏洞”—— 比如用錯算法、密鑰管理不當、測試數(shù)據(jù)不脫敏。下面結合政務、金融兩個真實案例,拆解密評不通過的核心問題、整改細節(jié),幫大家避開同類坑,少走返工路。
該平臺是省級政務核心系統(tǒng),服務全省 13 個地市的企業(yè)開辦、社保查詢、公積金辦理等業(yè)務,日均訪問量超 50 萬次,存儲著 3000 余萬企業(yè)和個人的敏感數(shù)據(jù)(如營業(yè)執(zhí)照號、社保繳費記錄)。按《密碼法》要求,作為等保三級系統(tǒng),需在上線前完成密評并備案。
測評機構通過 “文檔審查 + 現(xiàn)場檢查 + 工具測試”,很快鎖定了 3 個高風險漏洞,直接判定 “暫不合規(guī)”:
密鑰存儲不合規(guī):系統(tǒng)加密用的 SM4 密鑰,直接明文存放在 Tomcat 服務器的server.xml配置文件中,以 “encryption.key=abc123456789” 的形式暴露 —— 現(xiàn)場測試時,測評人員通過遠程登錄服務器,10 分鐘內(nèi)就獲取了密鑰,若被黑客利用,可解密所有存儲的敏感數(shù)據(jù);
傳輸協(xié)議版本過低:系統(tǒng)前后端數(shù)據(jù)傳輸用的是 TLS 1.0 協(xié)議,而《GB/T 39786-2021》明確要求 “數(shù)據(jù)傳輸需采用 TLS 1.2 及以上版本”,TLS 1.0 存在 “BEAST 攻擊” 等已知漏洞,無法抵御現(xiàn)代黑客攻擊;
密鑰未定期更換:查閱密鑰管理日志發(fā)現(xiàn),系統(tǒng)上線 1 年多,核心加密密鑰從未更換過 —— 按密評要求,“高敏感數(shù)據(jù)的加密密鑰需每 90 天更換 1 次”,長期不換會增加密鑰泄露后的風險(一旦密鑰被竊取,歷史數(shù)據(jù)也會被破解)。
針對問題,團隊聯(lián)合密碼廠商制定整改方案,重點突破 “密鑰安全管理” 和 “傳輸加密升級”:
密鑰遷移至合規(guī) KMS 系統(tǒng):放棄原來的配置文件存儲方式,采購某國產(chǎn)廠商的 GM-KMS 3.0 系統(tǒng)(已通過商用密碼產(chǎn)品認證),開發(fā) RESTful 接口實現(xiàn) “密鑰動態(tài)調(diào)用”—— 代碼中不再硬編碼密鑰,而是通過 “用戶身份認證 + Token 授權” 從 KMS 實時獲取,調(diào)用記錄自動同步至日志審計平臺,確保 “誰用密鑰、何時用” 可追溯;
傳輸協(xié)議升級與兼容處理:將所有接口的傳輸協(xié)議升級為 TLS 1.3,同時考慮到部分老舊政務終端(如鄉(xiāng)鎮(zhèn)社保大廳的舊電腦)不支持 TLS 1.3,臨時保留 TLS 1.2 作為過渡,通過服務器配置 “協(xié)議協(xié)商機制” 自動匹配終端版本,并推送公告引導用戶升級設備;
配置密鑰自動輪換:在 KMS 系統(tǒng)中設置 “每 90 天自動更換密鑰” 的規(guī)則,同時開發(fā) “密鑰過渡工具”—— 更換密鑰時,先保留舊密鑰用于解密歷史數(shù)據(jù),新密鑰用于加密新數(shù)據(jù),避免出現(xiàn) “新密鑰生效后,舊數(shù)據(jù)無法解密” 的問題,輪換過程全程記錄日志,供后續(xù)審計。
整改完成后,測評機構針對性復測:現(xiàn)場驗證密鑰需從 KMS 動態(tài)獲取,工具測試 TLS 1.3 加密強度達標,核查日志確認密鑰已自動輪換 1 次,最終出具 “合規(guī)” 評估報告。該平臺備案通過后,不僅順利完成政務項目驗收,后續(xù)運維中還因密鑰管理規(guī)范,避免了 1 次員工誤操作導致的密鑰泄露風險。
這款 APP 主打個人消費信貸業(yè)務,注冊用戶超 800 萬,日均交易筆數(shù)達 10 萬 +,涉及用戶身份證號、銀行卡號、信貸額度等高度敏感數(shù)據(jù)。作為金融領域關鍵信息基礎設施,按《商用密碼管理條例》要求,需每半年做 1 次密評,此次是首次評估。
測評機構重點核查 “數(shù)據(jù)存儲加密”“支付接口安全”“測試環(huán)境規(guī)范”,發(fā)現(xiàn) 3 個中高風險問題:
用戶密碼存儲算法過時:用戶登錄密碼用 MD5 哈希算法存儲,未加鹽值 —— 測評人員用公開的 “彩虹表” 工具,10 分鐘內(nèi)就破解了 5 條測試賬號的密碼,而 MD5 算法早在 2004 年就被證明存在安全漏洞,不符合密評 “高敏感數(shù)據(jù)需用國密算法保護” 的要求;
支付接口用境外算法:APP 與第三方支付機構對接的接口,用的是 RSA-1024 算法加密交易數(shù)據(jù),而《GB/T 35273-2020》明確 “金融領域需優(yōu)先采用國密算法”,且 RSA-1024 的密鑰長度低于安全標準(需≥2048 位),存在被暴力破解的風險;
測試環(huán)境用真實用戶數(shù)據(jù):開發(fā)和測試環(huán)境的數(shù)據(jù)庫中,存儲著 10 萬條未脫敏的真實用戶數(shù)據(jù)(身份證號、銀行卡號完整顯示),且測試服務器未做訪問控制 —— 測評人員通過弱密碼登錄測試庫,直接下載了全量數(shù)據(jù),違反 “非生產(chǎn)環(huán)境禁止使用真實敏感數(shù)據(jù)” 的要求。
團隊聯(lián)合安全廠商快速推進整改,聚焦 “算法替換” 和 “數(shù)據(jù)脫敏”:
密碼存儲升級為 SM3 + 隨機鹽值:廢棄 MD5 算法,改用 SM3 國密哈希算法,同時為每個用戶生成唯一鹽值(由 “用戶 ID 哈希值 + 8 位隨機字符串” 組成)—— 密碼加密時,先將明文密碼與鹽值拼接,再用 SM3 計算哈希值存儲;登錄驗證時,按相同邏輯計算后比對,確保即使數(shù)據(jù)庫泄露,黑客也無法逆向破解密碼;
支付接口替換為 SM2 國密算法:協(xié)調(diào)第三方支付機構,將接口加密算法從 RSA-1024 更換為 SM2,同時對接某國密認證的支付加密網(wǎng)關 —— 交易數(shù)據(jù)傳輸前,先用 SM2 加密,再通過 TLS 1.3 傳輸,雙重加密確保支付安全;整改后,用專用工具測試加密強度,30 分鐘內(nèi)無法破解,符合密評要求;
測試環(huán)境數(shù)據(jù)全量脫敏:開發(fā)基于 MyBatis 攔截器的脫敏插件,自動對手機號(顯示為 “138****5678”)、身份證號(隱藏中間 8 位)、銀行卡號(保留前 6 位和后 4 位)進行脫敏處理 —— 生產(chǎn)數(shù)據(jù)同步至測試環(huán)境時,觸發(fā)脫敏插件自動處理,同時刪除測試庫中已有的真實數(shù)據(jù);另外,為測試服務器添加 IP 白名單和強密碼認證,禁止非授權訪問。
復測時,測評機構確認密碼無法用彩虹表破解、支付接口加密達標、測試環(huán)境無真實數(shù)據(jù),最終出具 “合規(guī)” 報告。此次整改不僅讓 APP 通過密評,還提升了用戶數(shù)據(jù)安全性 —— 后續(xù)某測試服務器遭遇黑客掃描時,因數(shù)據(jù)已脫敏,未造成信息泄露。
從兩個案例能看出,密評不通過多是 “基礎合規(guī)沒做到位”,掌握以下 3 點,可避開 90% 的返工:
算法別踩 “過時 / 境外” 坑:優(yōu)先選 SM2(身份認證、數(shù)據(jù)簽名)、SM3(哈希校驗)、SM4(數(shù)據(jù)加密)等國密算法,避開 MD5、RSA-1024、RC4 等過時或境外算法,尤其金融、政務領域,國密是唯一合規(guī)選擇;
密鑰別 “裸奔”,靠 KMS 管起來:密鑰絕對不能存配置文件、代碼或普通數(shù)據(jù)庫,必須用國家認可的 KMS 系統(tǒng),同時設置 “90 天自動輪換” 規(guī)則,操作日志留存至少 6 個月,確保可追溯;
測試環(huán)境別 “用真數(shù)據(jù)”:開發(fā)、測試階段必須用脫敏數(shù)據(jù),可通過插件、腳本自動處理,避免因測試數(shù)據(jù)泄露影響密評,也能降低內(nèi)部數(shù)據(jù)濫用風險。
其實密評沒有想象中復雜,關鍵是 “提前對標、落地細節(jié)”—— 開發(fā)階段就嵌入密碼邏輯,前期自查補漏,比上線后突擊整改更高效,也能節(jié)省大量時間和成本。