陳文波 羅斌斌 深圳市貝斯達(dá)醫(yī)療器械有限公司 (東莞 523690)
基于SSL的遠(yuǎn)程醫(yī)療系統(tǒng)安全性設(shè)計(jì)與實(shí)現(xiàn)
陳文波 羅斌斌
深圳市貝斯達(dá)醫(yī)療器械有限公司 (東莞 523690)
隨著多媒體及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的高速發(fā)展,基于Internet的遠(yuǎn)程醫(yī)療系統(tǒng)面臨著嚴(yán)重的網(wǎng)絡(luò)安全問(wèn)題。目前,國(guó)外著名的商用瀏覽器和Web服務(wù)器都內(nèi)嵌支持SSL(Secure Socket Layer, 安全套接字層)協(xié)議,但其核心密碼算法都有出口限制,并且協(xié)議源代碼不公開(kāi),根本無(wú)法滿足我國(guó)遠(yuǎn)程醫(yī)療網(wǎng)實(shí)際應(yīng)用的安全需求。本文著重分析了SSL握手協(xié)議及SSL協(xié)議各部分的安全性和抗攻擊能力,詳細(xì)介紹了一個(gè)基于JAVA的SSL安全遠(yuǎn)程醫(yī)療系統(tǒng)的設(shè)計(jì)方案、技術(shù)特點(diǎn)與實(shí)現(xiàn)方法,測(cè)試結(jié)果能夠滿足需要。
遠(yuǎn)程醫(yī)療系統(tǒng) 網(wǎng)絡(luò)安全 安全套接層 SSL JAVA
遠(yuǎn)程醫(yī)療系統(tǒng)是通過(guò)信息和通信技術(shù)從事遠(yuǎn)距離健康活動(dòng)和服務(wù)的系統(tǒng)[1]。從技術(shù)上講,遠(yuǎn)程醫(yī)療就是利用現(xiàn)代電子以及通信網(wǎng)絡(luò)和生物醫(yī)學(xué)相結(jié)合來(lái)獲取和傳遞有關(guān)醫(yī)學(xué)診斷、治療、護(hù)理、及教育等信息數(shù)據(jù)。隨著遠(yuǎn)程醫(yī)療的發(fā)展,如何對(duì)醫(yī)療數(shù)據(jù)和信息進(jìn)行保密性是一項(xiàng)重要而且有挑戰(zhàn)性的問(wèn)題。本文描述了一個(gè)安全的基于SSL協(xié)議(安全套接字層,Secure Socket Layer,SSL)的遠(yuǎn)程醫(yī)療系統(tǒng),系統(tǒng)通過(guò)JAVA語(yǔ)言實(shí)現(xiàn),通過(guò)Internet可在醫(yī)生端瀏覽器、患者端瀏覽器和會(huì)診中心服務(wù)器端之間進(jìn)行醫(yī)療數(shù)據(jù)和信息的安全傳輸。
安全套接字層(Secure Socket Layer,SSL)技術(shù)是目前國(guó)際流行的基于WWW的網(wǎng)絡(luò)安全方案。它以多種密碼技術(shù)為基礎(chǔ),實(shí)現(xiàn)了用戶身份鑒別、數(shù)據(jù)加密傳輸、數(shù)據(jù)完整性校驗(yàn)、數(shù)字簽名等安全功能。SSL協(xié)議是基于公鑰體制的一個(gè)操作性很強(qiáng)的安全協(xié)議,能很好地完成身份認(rèn)證和安全傳輸?shù)娜蝿?wù)。高層應(yīng)用協(xié)議(如HTTP, FTP)可以在SSL協(xié)議之上透明傳輸,因此,SSL可以應(yīng)用于遠(yuǎn)程醫(yī)療網(wǎng)。
SSL協(xié)議的層次結(jié)構(gòu)如圖1所示。底層是SSL記錄層協(xié)議,它位于可靠的傳輸層TCP協(xié)議之上,用于封裝高層協(xié)議的數(shù)據(jù)。其中SSL握手協(xié)議(SSL Handshake Protocol)允許服務(wù)方和客戶方互相認(rèn)證,并在應(yīng)用層協(xié)議傳送數(shù)據(jù)之前協(xié)商出一個(gè)加密算法和會(huì)話密鑰,SSL握手協(xié)議是SSL協(xié)議的核心。
SSL協(xié)議提供的安全連接具有以下幾個(gè)基本特性:
? 連接是安全的,在初始化握手結(jié)束后,SSL使用加密方法來(lái)協(xié)商一個(gè)秘密的密鑰,數(shù)據(jù)加密使用對(duì)稱密鑰技術(shù)(如DES, RC4等)。
圖1 SSL協(xié)議層次結(jié)構(gòu)模型
? 可以通過(guò)非對(duì)稱(公鑰)加密技術(shù)(如RSA, DSA等)認(rèn)證對(duì)方的身份。
? 連接是可靠的,傳輸?shù)臄?shù)據(jù)包含有數(shù)據(jù)完整性的校驗(yàn)碼,使用安全的哈希函數(shù)(如SHA, MD5等)計(jì)算校驗(yàn)碼。
圖2 系統(tǒng)總體結(jié)構(gòu)
本系統(tǒng)的目標(biāo)是構(gòu)造一個(gè)保證遠(yuǎn)程醫(yī)療中的生理數(shù)據(jù)在醫(yī)生端瀏覽器、患者端瀏覽器和會(huì)診中心服務(wù)器端之間通過(guò)Internet進(jìn)行安全傳輸?shù)南到y(tǒng),系統(tǒng)將實(shí)現(xiàn)如下功能:
(1) 提供客戶端(醫(yī)生瀏覽器端、患者瀏覽器端)和會(huì)診服務(wù)器端的身份認(rèn)證SSL v3.0協(xié)議規(guī)定服務(wù)器端必須提供以電子證書(shū)為基礎(chǔ)的身份認(rèn)證,而對(duì)客戶端的身份認(rèn)證則由服務(wù)器端選擇限定。本系統(tǒng)應(yīng)嚴(yán)格遵守此規(guī)定,提供通信雙方認(rèn)證功能或單方認(rèn)證(對(duì)服務(wù)器端)功能。
(2) 提供高強(qiáng)度的信息加密機(jī)制。系統(tǒng)選用成熟可靠的算法和合適的鑰長(zhǎng)為用戶提供高強(qiáng)度的數(shù)字加密。
(3) 提供快速有效的完整性的檢驗(yàn)。系統(tǒng)選用高效快速的算法實(shí)現(xiàn)對(duì)所傳遞信息的完整性檢驗(yàn)
如圖2所示系統(tǒng)結(jié)構(gòu)為分塊和分層結(jié)構(gòu)。系統(tǒng)分為兩個(gè)相互獨(dú)立又能搭配使用的子系統(tǒng):SSL安全代理和SSL安全網(wǎng)關(guān)。系統(tǒng)介于應(yīng)用層和TCP層之間。
系統(tǒng)本身為分層結(jié)構(gòu):底層是記錄層處理模塊,此層直接建立在TCP層之上;高層包括身份認(rèn)證模塊、握手消息處理模塊、管理控制模塊。
如圖2,第一種情況下瀏覽器與服務(wù)器直接建立連接,不使用SSL安全代理和SSL安全網(wǎng)關(guān)。在這種情況下,如果服務(wù)器本身不能提供安全保障,則通信雙方的數(shù)據(jù)直接暴露在Internet之上,很容易造成信息的泄露和篡改。如果服務(wù)器本身是一個(gè)安全服務(wù)器,能夠提供安全功能,則通信雙方的數(shù)據(jù)的安全性很大程度上依賴于瀏覽器所能提供的加密算法的長(zhǎng)度。我們知道,由于國(guó)外對(duì)安全產(chǎn)品的出口限制,使得目前常用的瀏覽器最多只能支持40位的加密算法,這對(duì)于通信雙方的數(shù)據(jù)仍然不能提供足夠的安全保護(hù)。
如圖2,第二種情況下瀏覽器通過(guò)SSL安全代理和SSL安全網(wǎng)關(guān)與服務(wù)器建立安全連接。在這種情況下,SSL安全代理接管了瀏覽器的安全功能.可以提供對(duì)高強(qiáng)度加密算法的支持,數(shù)據(jù)的安全傳輸不受瀏覽器所能提供的安全能力的限制。
本系統(tǒng)的開(kāi)發(fā)環(huán)境為:安全客戶機(jī)使用的是Intel雙核2.8GHz,2G RAM PC機(jī),操作系統(tǒng)W indows2003,安全服務(wù)器使用的是SUN-SPARC,操作系統(tǒng)Solaris9.0。開(kāi)發(fā)工具為Java,它允許開(kāi)發(fā)者可以任意選擇開(kāi)發(fā)的平臺(tái),采用了PHAOS公司開(kāi)發(fā)的一套快速建立SSL應(yīng)用程序的軟件開(kāi)發(fā)工具Phaos SSLava Toolkit。
本系統(tǒng)主要包括身份認(rèn)證模塊、握手消息處理模塊、記錄層處理模塊以及管理配置模塊。下面詳細(xì)介紹各主要功能模塊的實(shí)現(xiàn)。
3.1 身份認(rèn)證模塊
由于本系統(tǒng)接管了瀏覽器端(醫(yī)生瀏覽器、患者瀏覽器)與遠(yuǎn)端會(huì)診服務(wù)器之間的SSL會(huì)話,因此瀏覽器原有的證書(shū)管理模塊己變?yōu)闊o(wú)效,有關(guān)CA證書(shū)、用戶證書(shū)、服務(wù)器證書(shū)的管理和維護(hù)以及身份認(rèn)證的過(guò)程應(yīng)由本系統(tǒng)來(lái)完成。
在建立SSL連接時(shí),瀏覽器端安全代理和會(huì)診服務(wù)器端安全網(wǎng)關(guān)需要分別從各自的證書(shū)庫(kù)中讀取證書(shū)。會(huì)診服務(wù)器端的證書(shū)庫(kù)中必須有兩類證書(shū),分別是服務(wù)器可信任的CA證書(shū)和被CA簽名的服務(wù)器端證書(shū)。同樣,瀏覽器端的證書(shū)庫(kù)中通常也有兩類證書(shū)。分別是瀏覽器端可信任的CA證書(shū)和被CA簽名的瀏覽器端站點(diǎn)證書(shū)。如果不需要對(duì)瀏覽器方進(jìn)行認(rèn)證,則瀏覽器端的證書(shū)庫(kù)只需要有瀏覽器端可信任的CA證書(shū)即可。
雙向身份認(rèn)證的具體流程如圖3所示:
圖3 雙向身份認(rèn)證流程圖
3.2 握手消息處理模塊
瀏覽器端的握手過(guò)程和會(huì)診服務(wù)器端的握手過(guò)程是相互交叉的,二者需要經(jīng)過(guò)多次消息的交互,才能完成整個(gè)握手過(guò)程。首先,客戶端向服務(wù)器發(fā)送一個(gè)ClientHello消息以建立連接,服務(wù)器必須響應(yīng)一個(gè)相應(yīng)的ServerHello消息,否則產(chǎn)生錯(cuò)誤并導(dǎo)致此次連接失敗。客戶端發(fā)送的消息和服務(wù)器響應(yīng)的消息不僅用于建立連接,還用于建立客戶端和服務(wù)器之間安全通信的協(xié)議版本、會(huì)話ID、密碼組和壓縮算法。
握手消息處理是本系統(tǒng)中的最重要也是最復(fù)雜的部分,在整個(gè)握手過(guò)程中通信雙方共有10種類型的消息需要處理,每一種消息都有它特定的數(shù)據(jù)結(jié)構(gòu)和內(nèi)容。在實(shí)際應(yīng)用中,客戶方的握手過(guò)程和服務(wù)器方的握手過(guò)程是相互交叉的,二者需要經(jīng)過(guò)多次消息的交互,才能完成整個(gè)握手過(guò)程。因此如何對(duì)各種握手消息進(jìn)行統(tǒng)一處理以及如何保證握手過(guò)程中通信雙方消息的同步,是握手消息處理模塊的關(guān)鍵問(wèn)題所在。在實(shí)現(xiàn)時(shí),采用“消息類型/狀態(tài)/動(dòng)作”機(jī)制采用這種機(jī)制處理所有的握手消息也提高了系統(tǒng)的確定性和可靠性。
當(dāng)瀏覽器端收到服務(wù)器端的消息以后,如果會(huì)診服務(wù)器端要求對(duì)瀏覽器進(jìn)行身份認(rèn)證,瀏覽器端將自己的證書(shū)發(fā)送給服務(wù)器方,然后發(fā)送消息,如果不需要對(duì)瀏覽器端進(jìn)行認(rèn)證,則直接發(fā)送該消息。瀏覽器端產(chǎn)生一個(gè)隨機(jī)數(shù)作為準(zhǔn)密數(shù),并用對(duì)方的公開(kāi)密鑰加密后作為消息的內(nèi)容發(fā)送給服務(wù)器方。服務(wù)器方收到該消息后用自己的私鑰對(duì)加密數(shù)據(jù)進(jìn)行解密,從而瀏覽器端與服務(wù)器端具有相同的準(zhǔn)密數(shù)然后雙方以此準(zhǔn)密數(shù)為基數(shù),經(jīng)過(guò)一定的算法計(jì)算出密數(shù)。
下面以加密套件SSL_RSA_W ITH_DES_CBC_ SHA為例說(shuō)明上述切分過(guò)程。由于加密所采用的算法是DES_CBC,其密鑰的長(zhǎng)度為7字節(jié);散列函數(shù)采用SHA,其M AC的長(zhǎng)度為20字節(jié),因此就得到了如下的切分過(guò)程:
其中key_block[0~19]表示key_block中的前20字節(jié),key_block[20~39]表示key_block中第21到第40字節(jié),其余各處的類似形式含義相同。
3.3 記錄層處理模塊
記錄層處理模塊主要完成數(shù)據(jù)的分段/組裝、填充/恢復(fù)、以及數(shù)據(jù)的完整性檢查,由于目前沒(méi)有合適的壓縮算法的支持,因此記錄層尚不能支持壓縮/解壓縮的功能。在SSL中,所有來(lái)自上層的數(shù)據(jù)(包括握手消息、改變密碼參數(shù)消息、報(bào)警消息、應(yīng)用數(shù)據(jù)等)部首先被分段和填充,每一數(shù)據(jù)段作為一個(gè)記錄,對(duì)每個(gè)記錄計(jì)算其MAC值并附加在該記錄的末尾,然后將整個(gè)記錄進(jìn)行加密,在加密后的記錄首部再添加一個(gè)記錄頭,記錄頭包括數(shù)據(jù)類型、數(shù)據(jù)長(zhǎng)度和協(xié)議版本信息。因此,每一個(gè)SSL記錄都包括記錄頭、實(shí)際數(shù)據(jù)、填充數(shù)據(jù)和MAC這幾部分。
圖4和圖5分別是記錄層自上而下和自下而上的處理流程圖,這里所說(shuō)的自上而下是指數(shù)據(jù)由握手層經(jīng)記錄層處理傳到TCP層的過(guò)程,自下而上是指數(shù)據(jù)由TCP層經(jīng)記錄層傳至握手層的過(guò)程,是上述過(guò)程的逆過(guò)程。
圖4 記錄層自上而下的處理流程
圖5 記錄層自下而上的流程圖
系統(tǒng)測(cè)試是保證軟件工程質(zhì)量的重要環(huán)節(jié)。在測(cè)試過(guò)程中,不僅能夠發(fā)現(xiàn)系統(tǒng)的錯(cuò)誤,還能對(duì)系統(tǒng)的性能做出客觀評(píng)價(jià)。基于SSL協(xié)議的遠(yuǎn)程醫(yī)療系統(tǒng)安全性研究的測(cè)試與傳統(tǒng)的軟件測(cè)試不同。它不但要檢查和驗(yàn)證是否按照設(shè)計(jì)的要求運(yùn)行,而且還要測(cè)試在不同用戶的瀏覽器端,其運(yùn)行是否正常。因而它是系統(tǒng)完成和驗(yàn)收過(guò)程中不可缺少的重要環(huán)節(jié)。基于SSL協(xié)議的遠(yuǎn)程醫(yī)療安全性研究采用如下圖6所示的路線。
按照?qǐng)D6所示的測(cè)試路線對(duì)系統(tǒng)進(jìn)行測(cè)試后得出,該系統(tǒng)應(yīng)用于我公司開(kāi)發(fā)的貝斯達(dá)醫(yī)學(xué)影像遠(yuǎn)程醫(yī)療診斷系統(tǒng),達(dá)到預(yù)期目標(biāo),具有遠(yuǎn)程醫(yī)療安全性的基本功能。
圖6 系統(tǒng)測(cè)試路線
[1] Rolf Stadler, Cristinna Aurrecoechea. Call for papers on high-speed network security-architecture, algorithms and implementation. Selected Areas in Communications, IEEE Journal on Volume 23, Issue 5, May 2005 Page(s): 1124-1125.
[2] 范江,馮登國(guó). 安全協(xié)議理論與方法[M]. 科學(xué)出版社,2003.
[3] 王偉,王東輝. 遠(yuǎn)程醫(yī)療會(huì)診的國(guó)內(nèi)外現(xiàn)狀及系統(tǒng)研究[J].1999,12(3):31-32.
[4] 施雪松,丁岳偉.基于Java2的SSL代理的實(shí)現(xiàn),計(jì)算機(jī)工程,2002,vol28(8).
[5] 譚毓安,在Java中實(shí)現(xiàn)SSI端到端加密,計(jì)算機(jī)應(yīng)用研究,2002, Vol19(8). ■
Design and Im p lement of Tele-medicine Security System Based on SSL
CHEN Wen-bo LUO Bin-bin
Shenzhen Basda Medical Apparatus Co., Ltd (Dongguan 523690)
With the development of multimedia and computer network, telemedicine system is confronted w ith serious network security. Presently, many of the famous commercial products of browsers and web servers support SSL(Secure Socket Layer) protocol internally. SSL has become the most prevailing WWW secure protocol. However, most of the electronic business secure protocols are subject to the lim itation of export regulations, and its source code isn't published. This paper analyzes SSL handshake protocol and describes the security of SSL in detail. Then, we propose the system design plan, critical technology and implement method of a secure web system based on JAVA In the end, the system was tested and it can satisfy the actual demand.
tele-medicine, network security, secure socket layer, SSL, JAVA
1006-6586(2010)09-0023-04
R197.324
A
2010-05-31
陳文波,總工程師;羅斌斌,總工程師