密鑰管理系統概述
密鑰管理系統由部級密鑰系統和城市級密鑰系統組成。兩級密鑰系統基于不同的側重點分別產生不同用途的應用密鑰。部級密鑰系統和城市級密鑰系統間通過密鑰母卡或硬件加密機的方式傳遞密鑰。密鑰管理系統必須具備根密鑰的備份機制和密鑰一旦泄露后的密鑰緊急更新機制,密鑰產生后的轉移、復制、分散等環節一般應通過加密機或智能IC卡進行,并能保證密鑰的安全。
密鑰管理系統是各商業銀行的金融IC卡聯合試點中,各級銀行對密鑰的安全控制和管理,是應用系統安全的關鍵。密鑰管理系統采用3DES加密算法,運用中國人民銀行總行、人民銀行地區分行(商業銀行總行)、成員銀行三級管理體制,安全共享公共主密鑰的,實現卡片互通、機具共享。各商業銀行的金融IC卡聯合試點中,各級銀行對密鑰的安全控制和管理,是應用系統安全的關鍵。
密鑰管理系統架構
密鑰系統是社會保障(個人)卡的安全基礎和保障,其體系結構是多層次的,數據來源也比較復雜。因此,這部分軟件應能夠為用戶提供透明的服務(即用戶不需要知道密鑰的具體產生細節及物理地址,就可以方便地使用軟件完成相應的操作)并可按用戶需求完成相應的業務功能。
由于系統需要使用專用硬件(加密機、讀卡器等),因此軟件還應提供對這些硬件的設置與通訊操作。軟件的具體功能劃分與功能需求見下圖及說明。
1.省級新增密鑰管理:管理省級密鑰分散因子,產生省級種子密鑰卡。
2.部級密鑰導入:讀取國家勞動社會保障部提供的密鑰,并將其導入至省級加密機。
3.地市密鑰分散:分散國家級、省級密鑰到市級密鑰系統。
4.PSAM卡管理:PSAM卡資料管理、PSAM卡的制作。
5.操作員管理:管理操作員資料和操作員權限。
6.系統參數設置:設置接口參數(加密機地址、發卡機連接方式等)。
密鑰管理系統涉及的專用必備硬件包括:加密機1臺(需符合社保規范),用于存放密鑰;讀卡器1臺(至少雙卡座),用于用戶卡或PSAM卡的讀寫。
由于密鑰管理的安全需求比較高,因此密鑰管理軟件應安裝在一臺專用的PC機上與系統其他部分分開運行。為了備份密鑰資料,密鑰管理軟件在使用時應配裝OraclePersonal或SQLServerDesktop或ACCESS等數據庫。
密鑰管理設計原則
1,任何密碼不以明文的方式進行存儲,除非是放在足夠安全的密碼裝置內。人工分配的密鑰必須以密鑰分量方式分別由不同的多個可信任的實體保管,不得直接以明文方式由單個實體掌握,對密碼裝置的任何操作均無法使得密鑰以明文方式出現于密碼裝置之外;
2,保證密鑰的分離性,不同通信實體之間使用不同的密鑰,且這些密鑰不能存在相關性,即一對通信實體之間的安全通信出現問題,不應引起另一對實體的安全通信,包含這四個實體中有兩個實體相同的情況;
3,密鑰需要具備一定的備份機制,當系統出現故障導致密鑰的丟失,應該能通過對密鑰備份的回復,來確保系統是可修復的,但密鑰的備份不應該降低密鑰管理的安全性。
4,密鑰必須具備有效期,當舊密鑰過期時,需要及時進行密鑰的替換,同時,新密鑰安全性和舊密鑰的安全性應該分離,即舊密鑰即使泄漏也不應該引起新密鑰的安全性出現問題。
5,密鑰管理需要具備層次性。
網絡要求每次交易的PIN保密.MAC的計算以及其它信息的加密所使用的密鑰互不相同,作到一次一密。而為了保證交易的延續性,這些密鑰均要由一個實體產生并安全地傳輸到另一個與之通信的實體,這就要求通信雙方必須共同使用一個加密密鑰(KEK),以加密上述的各種工作密鑰,KEK不能通過網絡進行傳輸,而只能在系統使用前裝入,或者通過兩個實體各自分別產生一個相同的密鑰作為KEK,有了KEK,便解決了會話密鑰的傳輸問題。
在網絡中,商戶、發卡行均需要與為數眾多的實體進行安全通信,這就要求系統中具有大量的密鑰(會話密鑰和KEK),這些密鑰無法全部保存在安全密碼裝置中,因此需要使用主密鑰(MFK)對這些密鑰加密存儲于密碼裝置之外的主機數據庫中。
一級:MFK,主密鑰,存儲于密鑰裝作中,用于加密KEK和SK,以保存在密碼裝作外。
二級:KEK,密鑰加密密鑰,用于SK的加密傳送,每對通信實體都有一相同的KEK。
三級:SK,會話密鑰,用于加密PIN,產生MAC和驗證MAC等。
6,密鑰和密鑰屬性
KEK和SK都具有密鑰屬性,用于功能分離和使用合法性檢驗,以提高系統的邏輯安全。密鑰的屬性包含此密鑰的層次(標識KEK或SK)。使用有效次數.MFK序號。密鑰用途和密鑰校驗值等內容,密鑰屬性與密鑰一起使用,密碼裝置根據密鑰屬性校驗密鑰使用的合法性。控制密鑰的誤用。密鑰校驗值由相應密鑰值與屬性在MFK的加密下產生。密鑰屬性僅與相應密鑰的明文保存在主機中,也僅用于主機安全密碼裝置,不進行傳輸。
智能卡密鑰管理系統介紹
該體制完全支持《中國金融IC卡規范v1.0》,具體為:
1、IC卡的電子錢包和電子存折的消費。取現。查余額功能全國通用,并且采用脫機交易方式。
2、IC卡的圈存。圈提功能全國通用,但采用聯機交易方式,借助龍卡網絡實現。
3、IC卡PIN的改密。解鎖等其他功能僅在發卡行受理。
智能卡密鑰管理系統功能:
在充分保證密鑰安全性的基礎上,支持IC卡聯合試點密鑰的生成。導出。注入。備份。恢復。更新。服務等功能,實現密鑰的安全管理。
智能卡密鑰管理系統結構:
該體制分為兩個部分:在總行建立“總行密鑰管理系統(KMS/HQ)”,在各分行(發卡行)建立“分行密鑰管理系統(KMS/IB)”和“分行發卡系統(PERSO/IB)”。見圖一;
圖一
為實現“集中-分布”式密鑰管理制度,商業銀行總行。各分行以及卡片制造商三者之間的工作流程為:見圖二。
圖二
TDE密鑰管理架構

TDE密鑰管理架構圖
部署步驟
由于TDE對于現有的應用程序代碼(數據庫觸發器和試圖不需要)是透明的,相比傳統的API加密解決方案而言,這種加密加密過程更加簡單。以下是應用TDE的步驟:
1.初始化萬能密鑰
2.鑒定需要加密的敏感數據(PII數據和信用卡數據等)
3.明確TDE支持的數據類型并檢查外鍵使用方法
4.使用TDE加密敏感數據
初始化萬能密鑰
每個數據庫都有其特有的萬能密鑰,然而,任何萬能密鑰都可以被復制到一個次級數據庫,只要該萬能密鑰以前沒有建立在這個次級數據庫上,并且要在任何應用表格可以被加密之前。初始化萬能密鑰的語句如下:SQL》altersystemsetkeyidentifiedby“password”。
這個命令能夠創建一個wallet并使用密碼加密該wallet,根據PKCS#5標準的建議。OracleWallet存儲在過期萬能加密密鑰庫中,當需要從備份磁盤讀取使用舊密鑰加密的數據時則取出這些過期密鑰。
打開OracleWallet
包含萬能加密密鑰的wallet必須在數據庫可以解密表密鑰來加密或解密應用數據前被打開,因為數據庫可以在不打開wallet的情況下啟動和運行,然而,試圖訪問加密數據將會返回一個錯誤。在維護運行期間關閉wallet是很有用的,此時訪問數據庫必須是授權的人。
更改萬能密鑰
可以通過再次發出改變系統命令來更改萬能密鑰:
SQL》altersystemsetkeyidentifiedby“password”;
更改萬能密鑰將需要重新加密Oracle數據字典中所有的表密鑰,PCI數據安全標準(DSS)1.1要求“經常更新加密密鑰,至少一年一次”。更改萬能密鑰將需要使用新的萬能加密密鑰重新加密列密鑰,不能觸碰加密數據。
更改wallet密碼
Wallet密碼可以獨立于萬能加密密鑰進行更改,它僅用于加密磁盤中的wallet文件,更改密碼時可以使用OracleWalletManager或者“orapki”命令。
鑒別敏感數據
鑒別PII相關的數據(如社保號碼和信用卡)不是易事,特別是在復雜的應用程序中,其中一個有效的技巧就是搜索Oracle數據字典中經常被用來存儲這些信息的列名稱或者數據類型。命令如下:
SQL》selectcolumn_name,table_name,data_typefrom
dba_tab_colswherecolumn_namelike‘%SOCIAL%’or
column_namelike‘%SSN%’orcolumn_namelike‘%SECNUM%’or
column_namelike“%SOC%‘andowner=’‘;
評論