一、需求描述
大型醫(yī)院(三甲醫(yī)院)對(duì)為其提供醫(yī)療器械和藥品等供貨商通常有6個(gè)月左右的賬期,考慮到三甲醫(yī)院的運(yùn)營(yíng)狀態(tài)和付款能力,銀行可以將醫(yī)院開(kāi)出的應(yīng)付賬單作為醫(yī)院耗材供應(yīng)商貸款具備償還能力的憑證。本平臺(tái)用于醫(yī)院、供應(yīng)商、銀行之間的對(duì)接,為耗材供應(yīng)商向銀行貸款和銀行放款風(fēng)險(xiǎn)評(píng)估作為參考,主要解決此憑證(應(yīng)付賬單)的身份認(rèn)證、機(jī)密性保護(hù)、有效性和不可篡改性的驗(yàn)證功能。
(1) 醫(yī)院通過(guò)MIS或者手工導(dǎo)出應(yīng)付賬單,操作員-財(cái)務(wù)-主管院長(zhǎng)簽名認(rèn)證;
(2) 醫(yī)院的應(yīng)付賬單通過(guò)系統(tǒng),可發(fā)送給相應(yīng)銀行,同時(shí)每份單據(jù)在系統(tǒng)有存檔(醫(yī)院和銀行可具備N對(duì)N的機(jī)制,提供給供貨商更多貸款選擇);
(3) 供貨商可根據(jù)單據(jù),向銀行協(xié)商貸款;
(4) 醫(yī)院的應(yīng)付賬單在簽名審批后在傳輸過(guò)程中,具備身份認(rèn)證功能,數(shù)據(jù)機(jī)密性、不可篡改性需要保證,同時(shí)憑證具備可驗(yàn)證性。
二、系統(tǒng)方案
本方案用來(lái)處理醫(yī)院生成的憑據(jù),由醫(yī)院產(chǎn)生,銀行使用,平臺(tái)運(yùn)營(yíng)者有存檔,客戶可查詢。該系統(tǒng)需要具備數(shù)字簽名技術(shù)、身份認(rèn)證、加密、完整性認(rèn)證等功能。系統(tǒng)在WORD、EXCEL文件格式上實(shí)現(xiàn)電子簽名,移動(dòng)終端上的安全芯片進(jìn)行身份認(rèn)證,可將簽章和文件綁定在一起;系統(tǒng)通過(guò)密碼驗(yàn)證、簽名驗(yàn)證、數(shù)字證書確保文檔有效性、性和不可抵賴性。
1、數(shù)字簽名基本原理
數(shù)字簽名基于對(duì)稱加密算法、非對(duì)稱加密算法以及單向散列算法(Hash函數(shù)),其原理如下:
(1) 醫(yī)院先預(yù)設(shè)一個(gè)對(duì)稱密鑰并生成賬單明文;
(2) 醫(yī)院用Hash函數(shù)對(duì)賬單明文進(jìn)行摘要,并用自己的私鑰加密該摘要以及預(yù)設(shè)的對(duì)稱密鑰;
(3) 醫(yī)院使用預(yù)設(shè)的對(duì)稱密鑰對(duì)賬單明文進(jìn)行加密,得到賬單密文;
(4) 醫(yī)院將賬單密文、私鑰加密后的摘要和對(duì)稱密鑰進(jìn)行綁定發(fā)送給銀行;
(5) 銀行用醫(yī)院提供的公鑰解密接收到的加密摘要和對(duì)稱密鑰,并得到摘要和對(duì)稱密鑰;
(6) 銀行使用對(duì)稱密鑰對(duì)接收到的賬單密文解密得到賬單明文;
(7) 銀行對(duì)賬單明文用同一Hash函數(shù)進(jìn)行摘要;
(8) 銀行需要對(duì)兩次所得的摘要進(jìn)行對(duì)比,如果相同,即可通過(guò)驗(yàn)證。
2、 CA數(shù)字證書認(rèn)證
CA數(shù)字證書受理系統(tǒng)有兩種選擇:自建CA數(shù)字證書系統(tǒng)和采用基于權(quán)威第三方CA數(shù)字證書受理系統(tǒng)。兩者優(yōu)缺點(diǎn)如下表所示:
從表中可以得知:
? 若用戶數(shù)量不多且需要在較短的時(shí)間內(nèi)完成項(xiàng)目,可選擇第三方CA數(shù)字認(rèn)證服務(wù)。
? 若用戶數(shù)量眾多、有充分項(xiàng)目時(shí)間、對(duì)長(zhǎng)期的成本來(lái)算,自建CA數(shù)字認(rèn)證受理系統(tǒng)較好
1)使用第三方CA數(shù)字證書受理系統(tǒng)如圖2
2)自建CA證書受理業(yè)務(wù)流程如圖3
3、系統(tǒng)總體架構(gòu)
系統(tǒng)的總體架構(gòu)如圖4所示,主要由業(yè)務(wù)系統(tǒng)、數(shù)字簽名認(rèn)證系統(tǒng)、CA數(shù)字證書受理系統(tǒng)三大部分組成。
利用CA證書驗(yàn)證簽名數(shù)據(jù)時(shí),都遵循相同的驗(yàn)證流程,一個(gè)完整的驗(yàn)證過(guò)程由以下幾步:
(1) 將接收的數(shù)據(jù)分為原始數(shù)據(jù)流、簽名數(shù)據(jù)和用戶證書三部分;
(2) 用CA根證書驗(yàn)證用戶證書的簽名完整性;
(3) 檢查用戶證書是否有效(當(dāng)前時(shí)間在證書的有效期內(nèi)為有效);
(4) 檢查用戶證書是否作廢 (OCSP方式或證書撤銷列表CRL方式);
(5) 驗(yàn)證用戶證書結(jié)構(gòu)中的證書用途;
(6) 用戶證書驗(yàn)證原始數(shù)據(jù)的簽名完整性。
如果上述各項(xiàng)均驗(yàn)證通過(guò),則接受該數(shù)據(jù);只要有一項(xiàng)未通過(guò),則驗(yàn)證失敗。
三、 硬件方案
1. 證書下載到專用的安全存儲(chǔ)卡內(nèi),安全存儲(chǔ)卡內(nèi)置SE單元,此SE芯片可裝載證書,內(nèi)嵌的用于安全應(yīng)用的32位ARM核,可利用RSA 1024/2048完成簽名和密鑰對(duì)生成等功能,同時(shí)支持AES/DES/3DES等分組加密功能,可生成數(shù)據(jù)摘要。此安全芯片可以有效防止溫度、電壓、頻率攻擊。上述操作均在安全存儲(chǔ)卡內(nèi)安全芯片完成,有效避免了基帶處理器的運(yùn)行敏感程序帶來(lái)的風(fēng)險(xiǎn)。
2. 可通過(guò)醫(yī)院發(fā)放此專用安全存儲(chǔ)卡來(lái)進(jìn)行授權(quán),進(jìn)行憑據(jù)的生成、簽名、審批、發(fā)送等操作。上述過(guò)程可通過(guò)手機(jī)APP完成,也可通過(guò)PAD插安全存儲(chǔ)卡進(jìn)行,也可設(shè)計(jì)專門的硬件,只需留下ISO7816接口和卡槽即可。后續(xù)設(shè)計(jì)中,如果能結(jié)合指紋來(lái)設(shè)計(jì)授權(quán)訪問(wèn),則安全性有更高的保障。
3. 銀行端可類似的利用PAD+安全存儲(chǔ)卡的方式來(lái)進(jìn)行,數(shù)據(jù)的解密、簽名認(rèn)證、數(shù)據(jù)完整性檢查等功能。醫(yī)院端數(shù)據(jù)進(jìn)行加密+簽名摘要,即打包數(shù)據(jù)這個(gè)在銀行端是無(wú)法生成,可能的風(fēng)險(xiǎn)在于憑據(jù)解密后數(shù)據(jù)的篡改,因此為保障銀行端的人為的數(shù)據(jù)完整性,可增加層級(jí)審批,即不止一個(gè)人可看到醫(yī)院的數(shù)據(jù),并進(jìn)行審批。