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

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