密鑰管理系統(tǒng)架構(gòu)圖
密鑰管理系統(tǒng)概述
密鑰管理系統(tǒng)由部級(jí)密鑰系統(tǒng)和城市級(jí)密鑰系統(tǒng)組成。兩級(jí)密鑰系統(tǒng)基于不同的側(cè)重點(diǎn)分別產(chǎn)生不同用途的應(yīng)用密鑰。部級(jí)密鑰系統(tǒng)和城市級(jí)密鑰系統(tǒng)間通過密鑰母卡或硬件加密機(jī)的方式傳遞密鑰。密鑰管理系統(tǒng)必須具備根密鑰的備份機(jī)制和密鑰一旦泄露后的密鑰緊急更新機(jī)制,密鑰產(chǎn)生后的轉(zhuǎn)移、復(fù)制、分散等環(huán)節(jié)一般應(yīng)通過加密機(jī)或智能IC卡進(jìn)行,并能保證密鑰的安全。
密鑰管理系統(tǒng)是各商業(yè)銀行的金融IC卡聯(lián)合試點(diǎn)中,各級(jí)銀行對(duì)密鑰的安全控制和管理,是應(yīng)用系統(tǒng)安全的關(guān)鍵。密鑰管理系統(tǒng)采用3DES加密算法,運(yùn)用中國人民銀行總行、人民銀行地區(qū)分行(商業(yè)銀行總行)、成員銀行三級(jí)管理體制,安全共享公共主密鑰的,實(shí)現(xiàn)卡片互通、機(jī)具共享。各商業(yè)銀行的金融IC卡聯(lián)合試點(diǎn)中,各級(jí)銀行對(duì)密鑰的安全控制和管理,是應(yīng)用系統(tǒng)安全的關(guān)鍵。
密鑰管理系統(tǒng)架構(gòu)
密鑰系統(tǒng)是社會(huì)保障(個(gè)人)卡的安全基礎(chǔ)和保障,其體系結(jié)構(gòu)是多層次的,數(shù)據(jù)來源也比較復(fù)雜。因此,這部分軟件應(yīng)能夠?yàn)橛脩籼峁┩该鞯姆?wù)(即用戶不需要知道密鑰的具體產(chǎn)生細(xì)節(jié)及物理地址,就可以方便地使用軟件完成相應(yīng)的操作)并可按用戶需求完成相應(yīng)的業(yè)務(wù)功能。
由于系統(tǒng)需要使用專用硬件(加密機(jī)、讀卡器等),因此軟件還應(yīng)提供對(duì)這些硬件的設(shè)置與通訊操作。軟件的具體功能劃分與功能需求見下圖及說明。
1.省級(jí)新增密鑰管理:管理省級(jí)密鑰分散因子,產(chǎn)生省級(jí)種子密鑰卡。
2.部級(jí)密鑰導(dǎo)入:讀取國家勞動(dòng)社會(huì)保障部提供的密鑰,并將其導(dǎo)入至省級(jí)加密機(jī)。
3.地市密鑰分散:分散國家級(jí)、省級(jí)密鑰到市級(jí)密鑰系統(tǒng)。
4.PSAM卡管理:PSAM卡資料管理、PSAM卡的制作。
5.操作員管理:管理操作員資料和操作員權(quán)限。
6.系統(tǒng)參數(shù)設(shè)置:設(shè)置接口參數(shù)(加密機(jī)地址、發(fā)卡機(jī)連接方式等)。
密鑰管理系統(tǒng)涉及的專用必備硬件包括:加密機(jī)1臺(tái)(需符合社保規(guī)范),用于存放密鑰;讀卡器1臺(tái)(至少雙卡座),用于用戶卡或PSAM卡的讀寫。
由于密鑰管理的安全需求比較高,因此密鑰管理軟件應(yīng)安裝在一臺(tái)專用的PC機(jī)上與系統(tǒng)其他部分分開運(yùn)行。為了備份密鑰資料,密鑰管理軟件在使用時(shí)應(yīng)配裝OraclePersonal或SQLServerDesktop或ACCESS等數(shù)據(jù)庫。
密鑰管理設(shè)計(jì)原則
1,任何密碼不以明文的方式進(jìn)行存儲(chǔ),除非是放在足夠安全的密碼裝置內(nèi)。人工分配的密鑰必須以密鑰分量方式分別由不同的多個(gè)可信任的實(shí)體保管,不得直接以明文方式由單個(gè)實(shí)體掌握,對(duì)密碼裝置的任何操作均無法使得密鑰以明文方式出現(xiàn)于密碼裝置之外;
2,保證密鑰的分離性,不同通信實(shí)體之間使用不同的密鑰,且這些密鑰不能存在相關(guān)性,即一對(duì)通信實(shí)體之間的安全通信出現(xiàn)問題,不應(yīng)引起另一對(duì)實(shí)體的安全通信,包含這四個(gè)實(shí)體中有兩個(gè)實(shí)體相同的情況;
3,密鑰需要具備一定的備份機(jī)制,當(dāng)系統(tǒng)出現(xiàn)故障導(dǎo)致密鑰的丟失,應(yīng)該能通過對(duì)密鑰備份的回復(fù),來確保系統(tǒng)是可修復(fù)的,但密鑰的備份不應(yīng)該降低密鑰管理的安全性。
4,密鑰必須具備有效期,當(dāng)舊密鑰過期時(shí),需要及時(shí)進(jìn)行密鑰的替換,同時(shí),新密鑰安全性和舊密鑰的安全性應(yīng)該分離,即舊密鑰即使泄漏也不應(yīng)該引起新密鑰的安全性出現(xiàn)問題。
5,密鑰管理需要具備層次性。
網(wǎng)絡(luò)要求每次交易的PIN保密.MAC的計(jì)算以及其它信息的加密所使用的密鑰互不相同,作到一次一密。而為了保證交易的延續(xù)性,這些密鑰均要由一個(gè)實(shí)體產(chǎn)生并安全地傳輸?shù)搅硪粋€(gè)與之通信的實(shí)體,這就要求通信雙方必須共同使用一個(gè)加密密鑰(KEK),以加密上述的各種工作密鑰,KEK不能通過網(wǎng)絡(luò)進(jìn)行傳輸,而只能在系統(tǒng)使用前裝入,或者通過兩個(gè)實(shí)體各自分別產(chǎn)生一個(gè)相同的密鑰作為KEK,有了KEK,便解決了會(huì)話密鑰的傳輸問題。
在網(wǎng)絡(luò)中,商戶、發(fā)卡行均需要與為數(shù)眾多的實(shí)體進(jìn)行安全通信,這就要求系統(tǒng)中具有大量的密鑰(會(huì)話密鑰和KEK),這些密鑰無法全部保存在安全密碼裝置中,因此需要使用主密鑰(MFK)對(duì)這些密鑰加密存儲(chǔ)于密碼裝置之外的主機(jī)數(shù)據(jù)庫中。
一級(jí):MFK,主密鑰,存儲(chǔ)于密鑰裝作中,用于加密KEK和SK,以保存在密碼裝作外。
二級(jí):KEK,密鑰加密密鑰,用于SK的加密傳送,每對(duì)通信實(shí)體都有一相同的KEK。
三級(jí):SK,會(huì)話密鑰,用于加密PIN,產(chǎn)生MAC和驗(yàn)證MAC等。
6,密鑰和密鑰屬性
KEK和SK都具有密鑰屬性,用于功能分離和使用合法性檢驗(yàn),以提高系統(tǒng)的邏輯安全。密鑰的屬性包含此密鑰的層次(標(biāo)識(shí)KEK或SK)。使用有效次數(shù).MFK序號(hào)。密鑰用途和密鑰校驗(yàn)值等內(nèi)容,密鑰屬性與密鑰一起使用,密碼裝置根據(jù)密鑰屬性校驗(yàn)密鑰使用的合法性??刂泼荑€的誤用。密鑰校驗(yàn)值由相應(yīng)密鑰值與屬性在MFK的加密下產(chǎn)生。密鑰屬性僅與相應(yīng)密鑰的明文保存在主機(jī)中,也僅用于主機(jī)安全密碼裝置,不進(jìn)行傳輸。
智能卡密鑰管理系統(tǒng)介紹
該體制完全支持《中國金融IC卡規(guī)范v1.0》,具體為:
1、IC卡的電子錢包和電子存折的消費(fèi)。取現(xiàn)。查余額功能全國通用,并且采用脫機(jī)交易方式。
2、IC卡的圈存。圈提功能全國通用,但采用聯(lián)機(jī)交易方式,借助龍卡網(wǎng)絡(luò)實(shí)現(xiàn)。
3、IC卡PIN的改密。解鎖等其他功能僅在發(fā)卡行受理。
智能卡密鑰管理系統(tǒng)功能:
在充分保證密鑰安全性的基礎(chǔ)上,支持IC卡聯(lián)合試點(diǎn)密鑰的生成。導(dǎo)出。注入。備份?;謴?fù)。更新。服務(wù)等功能,實(shí)現(xiàn)密鑰的安全管理。
智能卡密鑰管理系統(tǒng)結(jié)構(gòu):
該體制分為兩個(gè)部分:在總行建立“總行密鑰管理系統(tǒng)(KMS/HQ)”,在各分行(發(fā)卡行)建立“分行密鑰管理系統(tǒng)(KMS/IB)”和“分行發(fā)卡系統(tǒng)(PERSO/IB)”。見圖一;
圖一
為實(shí)現(xiàn)“集中-分布”式密鑰管理制度,商業(yè)銀行總行。各分行以及卡片制造商三者之間的工作流程為:見圖二。
圖二
TDE密鑰管理架構(gòu)
TDE密鑰管理架構(gòu)圖
部署步驟
由于TDE對(duì)于現(xiàn)有的應(yīng)用程序代碼(數(shù)據(jù)庫觸發(fā)器和試圖不需要)是透明的,相比傳統(tǒng)的API加密解決方案而言,這種加密加密過程更加簡單。以下是應(yīng)用TDE的步驟:
1.初始化萬能密鑰
2.鑒定需要加密的敏感數(shù)據(jù)(PII數(shù)據(jù)和信用卡數(shù)據(jù)等)
3.明確TDE支持的數(shù)據(jù)類型并檢查外鍵使用方法
4.使用TDE加密敏感數(shù)據(jù)
初始化萬能密鑰
每個(gè)數(shù)據(jù)庫都有其特有的萬能密鑰,然而,任何萬能密鑰都可以被復(fù)制到一個(gè)次級(jí)數(shù)據(jù)庫,只要該萬能密鑰以前沒有建立在這個(gè)次級(jí)數(shù)據(jù)庫上,并且要在任何應(yīng)用表格可以被加密之前。初始化萬能密鑰的語句如下:SQL》altersystemsetkeyidenTIfiedby“password”。
這個(gè)命令能夠創(chuàng)建一個(gè)wallet并使用密碼加密該wallet,根據(jù)PKCS#5標(biāo)準(zhǔn)的建議。OracleWallet存儲(chǔ)在過期萬能加密密鑰庫中,當(dāng)需要從備份磁盤讀取使用舊密鑰加密的數(shù)據(jù)時(shí)則取出這些過期密鑰。
打開OracleWallet
包含萬能加密密鑰的wallet必須在數(shù)據(jù)庫可以解密表密鑰來加密或解密應(yīng)用數(shù)據(jù)前被打開,因?yàn)閿?shù)據(jù)庫可以在不打開wallet的情況下啟動(dòng)和運(yùn)行,然而,試圖訪問加密數(shù)據(jù)將會(huì)返回一個(gè)錯(cuò)誤。在維護(hù)運(yùn)行期間關(guān)閉wallet是很有用的,此時(shí)訪問數(shù)據(jù)庫必須是授權(quán)的人。
更改萬能密鑰
可以通過再次發(fā)出改變系統(tǒng)命令來更改萬能密鑰:
SQL》altersystemsetkeyidenTIfiedby“password”;
更改萬能密鑰將需要重新加密Oracle數(shù)據(jù)字典中所有的表密鑰,PCI數(shù)據(jù)安全標(biāo)準(zhǔn)(DSS)1.1要求“經(jīng)常更新加密密鑰,至少一年一次”。更改萬能密鑰將需要使用新的萬能加密密鑰重新加密列密鑰,不能觸碰加密數(shù)據(jù)。
更改wallet密碼
Wallet密碼可以獨(dú)立于萬能加密密鑰進(jìn)行更改,它僅用于加密磁盤中的wallet文件,更改密碼時(shí)可以使用OracleWalletManager或者“orapki”命令。
鑒別敏感數(shù)據(jù)
鑒別PII相關(guān)的數(shù)據(jù)(如社保號(hào)碼和信用卡)不是易事,特別是在復(fù)雜的應(yīng)用程序中,其中一個(gè)有效的技巧就是搜索Oracle數(shù)據(jù)字典中經(jīng)常被用來存儲(chǔ)這些信息的列名稱或者數(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%‘andowner=’‘;