版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于XML電子病歷數(shù)字簽名算法的研究與實(shí)現(xiàn)摘要:病歷是病人病情、診斷、和處理方法的記錄,是醫(yī)護(hù)人員進(jìn)行醫(yī)療活動(dòng)的信息傳遞媒介和執(zhí)行依據(jù),是臨床教學(xué)和科研的主要信息源。隨著醫(yī)院信息化的發(fā)展,病歷逐步從紙張病歷過(guò)渡到電子病歷。電子病歷具有超越紙張病歷的很多優(yōu)點(diǎn),但也存在一些巫待解決的問(wèn)題。電子病歷的安全性保護(hù)就是這樣一個(gè)突出并且重要的問(wèn)題。病歷內(nèi)容的機(jī)密性、完整性和不可否認(rèn)性是病歷安全的基本要求。電子病歷的安全性有賴(lài)于法律、管理和技術(shù)三個(gè)方面。數(shù)字簽名技術(shù)為電子病歷的安全提供了技術(shù)支持。本論文于XML的電子病歷系統(tǒng),探討了數(shù)字簽名技術(shù)及其在此系統(tǒng)中的應(yīng)用和實(shí)現(xiàn)。關(guān)鍵字:電子病歷;數(shù)字簽名;XML簽名目錄第一章緒論 41.1病歷及電子病歷 41.2電子病歷安全性 7第二章XML簽名標(biāo)準(zhǔn)及實(shí)現(xiàn) 162.1研究目的 162.2設(shè)計(jì)思想 162.2.1XML簽名概述 162.2.2XML病歷文檔結(jié)構(gòu) 172.2.3XML簽名類(lèi)型 202.2.4簽名程序的應(yīng)用 212.2.5對(duì)簽名的驗(yàn)證過(guò)程 2823小結(jié) 29第三章總結(jié)和展望 29參考文獻(xiàn) 30附錄 31第一章緒論1.1病歷及電子病歷病歷是病人病情、診斷、和處理方法的記錄,是醫(yī)護(hù)人員進(jìn)行醫(yī)療活動(dòng)的信息傳遞媒介和執(zhí)行依據(jù),是臨床教學(xué)和科研的主要信息源。病歷在醫(yī)療工作中的基礎(chǔ)地位,決定了它對(duì)醫(yī)療、教學(xué)和科研水平的重要影響。如何提高病歷的記錄質(zhì)量和管理利用水平,是醫(yī)院管理的一個(gè)重要目標(biāo)。病歷的內(nèi)容涵蓋了醫(yī)療工作的各個(gè)過(guò)程,是各過(guò)程記錄的集合,包括病人自然信息、住院病案首頁(yè)、醫(yī)囑記錄單、生命體征記錄、檢驗(yàn)檢查報(bào)告、入院記錄、病程記錄、以及各種影像圖片等。多少年來(lái),病歷一直是以紙張為介質(zhì),完全靠手工記錄。盡管飛速發(fā)展的計(jì)算機(jī)信息處理技術(shù)不斷地應(yīng)用到醫(yī)院管理的各個(gè)領(lǐng)域,但病歷的記錄、管理、利用的手工方式并沒(méi)有發(fā)生實(shí)質(zhì)性的變化。在醫(yī)院信息化的發(fā)展進(jìn)程中,如何利用計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)來(lái)改變這一現(xiàn)狀,實(shí)現(xiàn)病歷的電子化,支持醫(yī)院提高醫(yī)療效率、改善醫(yī)療質(zhì)量、降低醫(yī)療成本,成為醫(yī)務(wù)工作者和信息技術(shù)工作者的共同期待。電子病歷是以電子化方式管理的有關(guān)個(gè)人終生健康狀態(tài)和醫(yī)療保健行為的信息,它可在醫(yī)療中作為主要的信息源取代紙張病歷,提供超越紙張病歷的服務(wù),滿(mǎn)足所有的醫(yī)療、法律和管理需求。電子病歷依靠電子病歷系統(tǒng)提供服務(wù)。電子病歷系統(tǒng)是包括支持病歷信息的采集、存儲(chǔ)、處理、傳遞、保密和表現(xiàn)服務(wù)的所有元素構(gòu)成的系統(tǒng)。隨著計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的發(fā)展,電子病歷給我們帶來(lái)了傳統(tǒng)紙張病歷所不具有的一些優(yōu)點(diǎn)。1.電子病歷能加快醫(yī)療信息的傳遞共享提高工作的效率。通過(guò)方便的編輯工具,典型病歷模板,可以極大提高病歷書(shū)寫(xiě)效率;比如像病人基本信息這樣的病歷內(nèi)容可以直接從數(shù)據(jù)庫(kù)中獲得,可以建立相關(guān)知識(shí)庫(kù)供病歷編輯時(shí)選擇錄入。2.電子病歷能夠輔助醫(yī)生作出判斷,提高醫(yī)療工作質(zhì)量。這方面的服務(wù)包括:同類(lèi)疾病的病歷查閱,幫助醫(yī)生選擇最佳醫(yī)療方案;智能知識(shí)庫(kù),輔助醫(yī)生確立醫(yī)療方案;醫(yī)療違規(guī)警告,象藥品相互作用配伍禁忌等,避免醫(yī)療錯(cuò)誤;聯(lián)機(jī)專(zhuān)業(yè)數(shù)據(jù)庫(kù),象藥品數(shù)據(jù)庫(kù),供醫(yī)生查詢(xún)。另一方面,電子病歷有助于規(guī)范醫(yī)療行為。比如:通過(guò)病歷模板,可以提示醫(yī)生進(jìn)行必要的檢查,避免遺漏,醫(yī)囑模板可以規(guī)范醫(yī)療操作。3.能夠加強(qiáng)環(huán)節(jié)管理。實(shí)現(xiàn)了電子病歷系統(tǒng)后,各種原始數(shù)據(jù)可以在醫(yī)療過(guò)程中及時(shí)地采集,形成管理指標(biāo)并及時(shí)反饋,達(dá)到環(huán)節(jié)控制的目標(biāo)。象對(duì)三日確診、術(shù)前住院日限制的實(shí)時(shí)監(jiān)控,根據(jù)病人的用藥情況,自動(dòng)判斷是否發(fā)生了感染等等。4.電子病歷為病人信息的異地共享提供了方便。實(shí)現(xiàn)電子病歷,為遠(yuǎn)程病人信息共享和傳遞提供了有力支持。當(dāng)病人轉(zhuǎn)診時(shí),電子病歷可以隨病人轉(zhuǎn)入新就診醫(yī)院的電子病歷系統(tǒng)中。電子病歷發(fā)展的下一步,是實(shí)現(xiàn)個(gè)人健康記錄,可以伴隨病人流動(dòng)。5.電子病歷為宏觀醫(yī)療管理提供了基礎(chǔ)信息源。管理部門(mén)可以從中提取各種分析數(shù)據(jù),用于指導(dǎo)管理政策的制定。象疾病的發(fā)生及治療狀況、用藥統(tǒng)計(jì)、醫(yī)療消耗等。當(dāng)前正在實(shí)施的社會(huì)醫(yī)療保險(xiǎn)制度,不僅在運(yùn)行過(guò)程中,需要病歷信息實(shí)施對(duì)供需雙方的制約,而且在醫(yī)保政策及方案的制定上,也需要大樣本病歷作為依據(jù)。電子病歷的發(fā)展過(guò)程是對(duì)病人信息或健康信息不斷覆蓋的過(guò)程,是電子病歷系統(tǒng)功能不斷增強(qiáng)的過(guò)程。從病歷包含的信息內(nèi)容來(lái)說(shuō)要經(jīng)過(guò)幾個(gè)發(fā)展階段:第一階段是電子病案階段。特征是醫(yī)療業(yè)務(wù)環(huán)節(jié)的信息化,病人在院期間的信息處理都已經(jīng)計(jì)算機(jī)化。第二階段是電子病歷階段。特征是病人歷次就診和住院信息是以病人為中心集成化存儲(chǔ)、管理的,并且實(shí)現(xiàn)計(jì)算機(jī)長(zhǎng)期保存和訪問(wèn)。第三階段是個(gè)人健康記錄階段。此時(shí)病人信息已不單純是某一個(gè)醫(yī)院或醫(yī)療機(jī)構(gòu),區(qū)域醫(yī)療機(jī)構(gòu)之間可以共享訪問(wèn)病人健康信息。從功能上看電子病歷的發(fā)展將會(huì)經(jīng)歷從單純利用計(jì)算機(jī)代替手工完成對(duì)醫(yī)療文書(shū)的記錄和處理工作到利用計(jì)算機(jī)主動(dòng)化、智能化服務(wù),指導(dǎo)醫(yī)療工作。理想的電子病歷系統(tǒng)中,醫(yī)生、患者或其它獲得授權(quán)的人,在共享區(qū)域內(nèi)需要了解一個(gè)個(gè)體的任何健康資料或相關(guān)信息時(shí),在任何情況下都可完整、準(zhǔn)確、及時(shí)獲得它們,并可得到準(zhǔn)確的釋義,在需要時(shí)可以最大限度地得到詳細(xì)、準(zhǔn)確、全面的相關(guān)知識(shí)。電子病歷可以根據(jù)自身掌握的信息和知識(shí),主動(dòng)進(jìn)行判斷,在個(gè)體健康狀態(tài)需要調(diào)整時(shí),做出及時(shí)、準(zhǔn)確的提示,并給出最優(yōu)方案和實(shí)施計(jì)劃。由于電子病歷能給醫(yī)療效益和醫(yī)療質(zhì)量帶來(lái)巨大的改善,各國(guó)都特別重視電子病歷的發(fā)展。美國(guó)醫(yī)療保健信息與管理系統(tǒng)協(xié)會(huì)(HIMSS,HealthcareInformation&Mangaementsystemsociety)做的在未來(lái)兩年醫(yī)院信息化最重要的應(yīng)用調(diào)查中,電子病歷排在了第一位。美國(guó)總統(tǒng)布什在2004年國(guó)情咨文中特別提到加快醫(yī)院信息化建設(shè)步伐。他說(shuō):“將健康記錄計(jì)算機(jī)化,我們可以避免嚴(yán)重的醫(yī)療事故,降低費(fèi)用,提高醫(yī)療水平”。英國(guó)國(guó)民衛(wèi)生服務(wù)體系(NHS,NationalHealthService)制定了1998年至2005年醫(yī)療信息的8年發(fā)展規(guī)劃,明確提出將病人信息在基層保健醫(yī)生到各級(jí)醫(yī)療機(jī)構(gòu)之間的實(shí)時(shí)共享的發(fā)展目標(biāo)。日本醫(yī)藥信息協(xié)會(huì)健康信息系統(tǒng)工業(yè)協(xié)會(huì)正在開(kāi)展病歷安全規(guī)范和臨床信息交換標(biāo)準(zhǔn)的研究。香港醫(yī)院管理局所屬的醫(yī)院;已經(jīng)實(shí)現(xiàn)了院際間病人檢驗(yàn)、檢查報(bào)告信息的共享,并將逐步實(shí)現(xiàn)其他信息的院際共享。國(guó)內(nèi)醫(yī)院也在逐步推進(jìn)電子病歷的發(fā)展,目前信息系統(tǒng)正在經(jīng)歷從以經(jīng)濟(jì)管理為中心的管理模式向以病人為中心的臨床信息模式轉(zhuǎn)移。對(duì)于一些大醫(yī)院,己經(jīng)或即將實(shí)現(xiàn)醫(yī)療文書(shū)的電子化,病人信息的集成化、結(jié)構(gòu)化,知識(shí)庫(kù)的建立,簡(jiǎn)單的智能處理。但離理想的電子病歷系統(tǒng)還有一定的差距,在電子病歷應(yīng)用及研究中存在以下一些亞待解決的問(wèn)題:1.目前一些發(fā)達(dá)國(guó)家對(duì)電子病歷的實(shí)施有比較完善的法律體系,從電子病歷的書(shū)寫(xiě)簽名到存儲(chǔ)調(diào)用都有相應(yīng)的法規(guī)及安全措施,病歷是作為社會(huì)文件的一部分加以管理。而我國(guó)目前只作為單位醫(yī)療文件加以管理與利用,規(guī)范性、嚴(yán)肅性、安全性不夠,如果沒(méi)有相應(yīng)的法律法規(guī)來(lái)規(guī)范保障它的實(shí)施,電子病歷很難有序開(kāi)展。2.電子病歷會(huì)集成各種不同的數(shù)據(jù),數(shù)據(jù)龐大、內(nèi)容豐富、成分復(fù)雜,不僅有文本文件還有圖像、數(shù)據(jù)表、視頻等文件類(lèi)型。我國(guó)醫(yī)學(xué)信息標(biāo)準(zhǔn)缺乏,形成的標(biāo)準(zhǔn)在信息系統(tǒng)中也未得到充分的體現(xiàn),使得信息無(wú)法有效整合與交換,院際間的信息也無(wú)法共享,標(biāo)準(zhǔn)化是電子病歷健康發(fā)展的必由之路。3.數(shù)據(jù)的多樣性和復(fù)雜性決定集中式數(shù)據(jù)集成是一個(gè)問(wèn)題。電子病歷要求有海量的存儲(chǔ)空間,病歷一旦建立,隨時(shí)可能調(diào)用,如何有效地調(diào)出病歷也是需要解決的問(wèn)題。4.病歷既是病人的個(gè)人信息,涉及到病人的隱私,又是醫(yī)療過(guò)程的記錄,具有法律效果,它的安全性必須得到保證,也是一個(gè)難點(diǎn)。這一點(diǎn)在下一節(jié)會(huì)重點(diǎn)討論。1.2電子病歷安全性對(duì)于任何一個(gè)信息系統(tǒng),其安全性的內(nèi)涵都涉及到以下幾個(gè)方面:機(jī)密性:信息不泄露給非授權(quán)的用戶(hù)、實(shí)體或過(guò)程,或供其利用的特性。完整性:數(shù)據(jù)未經(jīng)授權(quán)不能進(jìn)行改變的特性,即信息在存儲(chǔ)或傳輸過(guò)程中保持不被修改、不被破壞和丟失的特性??捎眯?可被授權(quán)實(shí)體訪問(wèn)并按需求使用的特性,即當(dāng)需要時(shí)應(yīng)能存取所要的信息。網(wǎng)絡(luò)環(huán)境下拒絕服務(wù)、破壞網(wǎng)絡(luò)和有關(guān)系統(tǒng)的正常運(yùn)行等都屬于對(duì)可用性的攻擊??煽匦?對(duì)信息的傳播、使用和內(nèi)容具有控制能力。信息系統(tǒng)安全保護(hù)方式由技術(shù)保護(hù)方式和管理保護(hù)方式構(gòu)成。技術(shù)保護(hù)方式系根據(jù)風(fēng)險(xiǎn)產(chǎn)生的技術(shù)特點(diǎn)和安全目標(biāo)的要求而采用相應(yīng)的安全機(jī)制、技術(shù)措施和專(zhuān)用設(shè)備。管理保護(hù)方式則根據(jù)有關(guān)法律法規(guī)和安全目標(biāo)的要求,針對(duì)信息系統(tǒng)的運(yùn)行,有關(guān)人員的行為和技術(shù)過(guò)程而制定相應(yīng)的管理制度。在實(shí)際構(gòu)建安全保障體系時(shí)可以分為六個(gè)層次分步實(shí)施:第一步:安全組織建立首先建立健全安全組織體系,明確負(fù)責(zé)安全管理的主管領(lǐng)導(dǎo)、主管部門(mén)、技術(shù)支持部門(mén)和宣傳、保衛(wèi)部門(mén)。第二步:監(jiān)督機(jī)制運(yùn)行系統(tǒng)風(fēng)險(xiǎn)分析,根據(jù)安全需求和法律法規(guī)的要求,確定安全建設(shè)或安全改造投資規(guī)模,制定安全策略。第三步:物理安全保證確保物理環(huán)境和物理保障系統(tǒng)的安全。它包括:機(jī)房場(chǎng)地、機(jī)房的防電磁輻射和電氣特性、機(jī)房有完善的防自然災(zāi)害的防護(hù)措施;信息存儲(chǔ)場(chǎng)地和器具具有完善的防水、防火、防雷、防磁、防塵措施等。第四步:安全基礎(chǔ)建立保證信息、系統(tǒng)處理平臺(tái)的安全。它包括硬件方面的,如服務(wù)器、網(wǎng)絡(luò)設(shè)備、通信線路等的安全,軟件方面的,如操作系統(tǒng)、數(shù)據(jù)庫(kù)等的安全。第五步:安全屏障建立在上述物理安全和安全基礎(chǔ)的前提下,考慮設(shè)置安全屏障包括安全通道、安全隧道和安全門(mén)衛(wèi)。第六步:安全技術(shù)服務(wù)提供在前述安全建立的基礎(chǔ)上,多方面技術(shù)綜合使用,包括實(shí)時(shí)監(jiān)控、身份驗(yàn)證、數(shù)字簽名、訪問(wèn)控制、審計(jì)跟蹤、信息加密、數(shù)據(jù)恢復(fù)、系統(tǒng)學(xué)習(xí)等,不斷提高安全保障體系的完善性。第七步:安全管理完善在上述幾步的基礎(chǔ)上,加強(qiáng)安全管理,完善各種安全管理制度。所以,實(shí)施一個(gè)安全的電子病歷系統(tǒng)所考慮的也不光是醫(yī)療技術(shù)層面,還受到法律法規(guī)是否健全的影響。首先,確立電子病歷的法律地位,建立電子病歷的所有權(quán)、授權(quán)范圍統(tǒng)一的明確的界定,是保證電子病歷安全的基礎(chǔ)。有具體的法律法規(guī)做指導(dǎo),就可以建立一個(gè)有效的信息安全政策來(lái)指導(dǎo)安全措施的建立和維護(hù)。例如,1996年,美國(guó)政府頒布了人壽保險(xiǎn)責(zé)任法案(HIPAA)。該法案針對(duì)醫(yī)療信息化中的交易規(guī)則、醫(yī)療服務(wù)機(jī)構(gòu)的識(shí)別、從業(yè)人員的識(shí)別、醫(yī)療信息安全、醫(yī)療隱私、健康計(jì)劃識(shí)別、第一傷病報(bào)告、病人識(shí)別等問(wèn)題,制定了詳細(xì)的法律規(guī)定,以保護(hù)醫(yī)療數(shù)據(jù)的安全和患者的隱私權(quán)。HIPAA作為政府強(qiáng)制性法令,要求醫(yī)療機(jī)構(gòu)限期必須執(zhí)行。針對(duì)HIPAA的要求,各醫(yī)療機(jī)構(gòu)、系統(tǒng)開(kāi)發(fā)廠家都緊鑼密鼓地修改現(xiàn)有系統(tǒng),以滿(mǎn)足HIP從的要求。HIP從代表了醫(yī)療保險(xiǎn)信息標(biāo)準(zhǔn)化、規(guī)范化的重要發(fā)展方向,十分值得國(guó)內(nèi)醫(yī)療信息界研究和借鑒。對(duì)于國(guó)內(nèi),目前法律上還沒(méi)有電子病歷相關(guān)的法律法規(guī),電子病歷的形成、使用、儲(chǔ)存、保管及權(quán)屬和真實(shí)性的確認(rèn)尚沒(méi)有統(tǒng)一的法律規(guī)定和法規(guī)的規(guī)范與約束。雖然在技術(shù)上能采用身份認(rèn)證、訪問(wèn)控制、數(shù)字簽名、傳輸安全等安全措施,但因?yàn)闆](méi)有相應(yīng)的法規(guī)出臺(tái),強(qiáng)制性不夠,實(shí)際中應(yīng)用這些安全技術(shù)的并不多見(jiàn)。但對(duì)于電子病歷系統(tǒng)來(lái)說(shuō),它的安全需求還是很明顯的,主要體現(xiàn)在以下幾個(gè)方面:1.社會(huì)需求。a)病歷涉及病人個(gè)人隱私,病人個(gè)人或法律規(guī)定不允許病歷信息被隨意泄露。b)病歷數(shù)據(jù)對(duì)于授權(quán)公眾必須可用。2.醫(yī)療提供者需求a)發(fā)生緊急情況時(shí)能繼續(xù)醫(yī)療服務(wù)并于事后復(fù)原,必須事先擬定系統(tǒng)損壞程度評(píng)估程序、資料備份計(jì)劃、災(zāi)難復(fù)原計(jì)劃、緊急模式操作計(jì)劃及定期演練與計(jì)劃修訂程序。b)保證病歷數(shù)據(jù)對(duì)于研究和教育可用。c)保護(hù)醫(yī)療服務(wù)人員的隱私。3.法律和行政需求a)病歷是醫(yī)療診斷、治療操作的依據(jù),為了醫(yī)療過(guò)程本身的安全,它的信息不能篡改,防止病歷記錄的改動(dòng)和刪除。b)病歷要有簽名和時(shí)間戳。c)病歷要滿(mǎn)足行政和醫(yī)療的審計(jì)。d)阻止對(duì)病歷的非法訪問(wèn)。e)確保病歷記錄的真實(shí)性即原始性。電子病歷系統(tǒng)是一個(gè)網(wǎng)絡(luò)環(huán)境下的多用戶(hù)系統(tǒng),根據(jù)系統(tǒng)特點(diǎn)和安全需求,在存儲(chǔ)安全、傳輸安全和處理安全三方面分析安全威脅,制定技術(shù)服務(wù)措施。在制定技術(shù)規(guī)劃時(shí)要考慮到事前(攻擊發(fā)生前)、事中(攻擊發(fā)生時(shí))、事后(攻擊發(fā)生后)三方面,具體來(lái)說(shuō)就是“技術(shù)防御+實(shí)時(shí)檢測(cè)+數(shù)據(jù)恢復(fù)”。下面分別予以敘述:技術(shù)防御是最主要的防范手段,“防范于未然”是安全措施的最大目標(biāo)。在電子病歷系統(tǒng)中可以采用以下幾種技術(shù)手段:1.身份認(rèn)證。電子病歷系統(tǒng)象所有的信息系統(tǒng)一樣,身份認(rèn)證是最重要的安全服務(wù)之一,因?yàn)樗衅渌陌踩?wù)都依賴(lài)于該服務(wù)。認(rèn)證有的依賴(lài)于密碼技術(shù),而有的與密碼技術(shù)無(wú)關(guān)。其認(rèn)證方法可能是基于下列原理中的任何一種:1)聲稱(chēng)者證明他知道某事或某物,例如口令;2)聲稱(chēng)者證明他擁有某事或某物,例如物理密鑰或CI卡;3)聲稱(chēng)者展示某些必備的不變特性,例如指紋、視網(wǎng)膜等;4)聲稱(chēng)者在某一特定場(chǎng)所(也可能在某一特定時(shí)間)提供證據(jù);5)驗(yàn)證者認(rèn)可某已經(jīng)通過(guò)認(rèn)證的可信方。僅僅用)l到4)中的任何一種原理來(lái)進(jìn)行認(rèn)證往往是不充分的。最好的辦法是綜合應(yīng)用這些原理來(lái)建立認(rèn)證系統(tǒng)。最常見(jiàn)的認(rèn)證機(jī)制是口令機(jī)制,但口令機(jī)制有很多安全脆弱點(diǎn),最嚴(yán)重的脆弱點(diǎn)是外部泄漏和口令猜測(cè),別的脆弱點(diǎn)還有線路竊聽(tīng)、危及驗(yàn)證者和重放等。可以采取一些變通來(lái)改善口令機(jī)制,比如聲稱(chēng)者和驗(yàn)證者之間傳輸?shù)膶?shí)際是一個(gè)用戶(hù)輸入口令的單向函數(shù)值,這樣就防止了傳輸時(shí)口令泄漏以及危及驗(yàn)證者的口令文件或數(shù)據(jù)庫(kù);又比如驗(yàn)證信息作為口令和隨機(jī)值的函數(shù)值,將這個(gè)隨機(jī)值和函數(shù)值一同發(fā)給驗(yàn)證方進(jìn)行驗(yàn)證,避免了重放攻擊。在密碼技術(shù)的應(yīng)用中,系統(tǒng)每一個(gè)用戶(hù)都有一個(gè)在網(wǎng)絡(luò)世界是標(biāo)志自己的證書(shū),證書(shū)中有自己唯一擁有的私鑰。用戶(hù)登錄系統(tǒng)時(shí),系統(tǒng)會(huì)通過(guò)密碼技術(shù)驗(yàn)證用戶(hù)證書(shū)的合法性從而進(jìn)行身份認(rèn)證,著名的SSL協(xié)議(安全鏈路層協(xié)議)包含身份認(rèn)證功能,就是這種密碼技術(shù)的一種實(shí)現(xiàn)。2.訪問(wèn)控制。訪問(wèn)控制的目標(biāo)是防止對(duì)任何資源(如計(jì)算資源、通信資源或信息資源,在這是與病歷相關(guān)的數(shù)據(jù))進(jìn)行未授權(quán)的訪問(wèn)。所謂未授權(quán)訪問(wèn)包括未經(jīng)授權(quán)的使用、泄漏、修改、銷(xiāo)毀以及頒發(fā)指令等。訪問(wèn)控制直接支持機(jī)密性、完整性、可用性以及合法使用的安全目標(biāo)。其中對(duì)可用性的支持取決于對(duì)以下幾個(gè)方面進(jìn)行有效的控制:1)誰(shuí)能夠頒發(fā)會(huì)影響網(wǎng)絡(luò)可用性的網(wǎng)絡(luò)管理指令;2)誰(shuí)能夠?yàn)E用資源以達(dá)到占用資源的目的;3)誰(shuí)能夠獲得可以用于拒絕服務(wù)攻擊的信息。通常有兩種方法用來(lái)阻止非授權(quán)用戶(hù)訪問(wèn)目標(biāo):1)訪問(wèn)請(qǐng)求過(guò)濾器:當(dāng)一個(gè)發(fā)起者試圖訪問(wèn)一個(gè)目標(biāo)時(shí),需要檢查發(fā)起者是否被準(zhǔn)予以請(qǐng)求的方式訪問(wèn)目標(biāo);2)分離:防止非授權(quán)用戶(hù)有機(jī)會(huì)去訪問(wèn)敏感的目標(biāo)。上面兩種方法由相同的策略來(lái)驅(qū)動(dòng)。安全策略有以下一些類(lèi)型:1)基于個(gè)人的策略一個(gè)基于個(gè)人的策略根據(jù)哪些用戶(hù)可對(duì)一個(gè)目標(biāo)實(shí)施哪一種行為的列表來(lái)表示。等價(jià)于用一個(gè)目標(biāo)的訪問(wèn)矩陣列來(lái)描述。2)基于組的策略一個(gè)基于組的策略是基于身份的策略的另一種情形,一些用戶(hù)被允許對(duì)一個(gè)目標(biāo)具有同樣的訪問(wèn)許可。3)基于規(guī)則的策略通過(guò)分配給每個(gè)目標(biāo)一個(gè)密級(jí)(強(qiáng)制式)來(lái)操作。4)基于角色的策略既具有基于身份的策略的特征又具有基于規(guī)則策略的特征。一個(gè)角色可以看作一個(gè)組的變形。3.信息加密病歷信息在存儲(chǔ)、處理和傳遞的過(guò)程中可以通過(guò)不同的渠道泄露出去,機(jī)密性服務(wù)需要保護(hù)所有這些泄露信息的渠道。提供機(jī)密性的方法總的說(shuō)來(lái)有以下幾種方式:1)訪問(wèn)控制方法:防止入侵者觀察敏感信息的表示;2)信息隱藏方法:可允許一個(gè)入侵者觀測(cè)信息的表示,但使他從表示中無(wú)法推出所表示的信息內(nèi)容或提煉出有用的信息。訪問(wèn)控制方法包括以下一些策略:1)訪問(wèn)控制機(jī)制,它過(guò)濾每個(gè)尋找讀訪問(wèn)信息資源的請(qǐng)求;2)流控制措施,它防止信息流從一個(gè)環(huán)境(敏感的)流動(dòng)到另一個(gè)環(huán)境(保護(hù)級(jí)別低);3)物理安全措施,它防止物理上侵入一個(gè)有敏感信息的環(huán)境;4)輻射安全保護(hù),它防止電磁場(chǎng)振動(dòng)的發(fā)射以免敏感信息被析出;5)信息分離技術(shù),例如,通過(guò)多個(gè)獨(dú)立的通道傳輸不同的數(shù)據(jù)項(xiàng)的分量;6)保護(hù)傳輸技術(shù),如擴(kuò)頻技術(shù)或跳頻技術(shù)。信息隱藏方式最主要的就是利用密碼技術(shù)的加密,如SLS就是一種利用密碼技術(shù)給傳輸通道加密的方法。4.數(shù)據(jù)完整性有兩種基本的方法來(lái)保證病歷數(shù)據(jù)的完整性:1)訪問(wèn)控制方法:用于避免入侵者有機(jī)會(huì)會(huì)損壞病歷數(shù)據(jù);2)損壞一檢測(cè)方法:承認(rèn)病歷數(shù)據(jù)會(huì)有損壞(無(wú)意或有意),但能確保這些損壞會(huì)被檢測(cè)出來(lái),并且能夠被糾正或向接收者提出警告。利用訪問(wèn)控制的方法類(lèi)似于機(jī)密性情況,若病歷數(shù)據(jù)在可信環(huán)境中應(yīng)用的話,數(shù)據(jù)被有意地破壞的風(fēng)險(xiǎn)能被消除。然而,我們要注意訪問(wèn)控制不能保護(hù)無(wú)意的數(shù)據(jù)損壞?;诿艽a技術(shù)的封裝和數(shù)字簽名是一種主要的保證數(shù)據(jù)完整性方法。它通過(guò)加密辦法產(chǎn)生一個(gè)作為明文的附件傳送的值。當(dāng)需要特定的數(shù)據(jù)完整性的要求時(shí),這樣一個(gè)附件通常被稱(chēng)為完整性校驗(yàn)值。數(shù)字簽名再本節(jié)單獨(dú)討論。5.不可否認(rèn)性非否認(rèn)服務(wù)為一個(gè)通信用戶(hù)提供保護(hù)以免另一個(gè)用戶(hù)后來(lái)否認(rèn)所發(fā)生的一些通信交換。當(dāng)這些服務(wù)不能防止一個(gè)用戶(hù)否認(rèn)另一個(gè)用戶(hù)所聲稱(chēng)發(fā)生的某事時(shí),他們確??色@得無(wú)可辯駁的證據(jù)以支持任何類(lèi)似糾紛的迅速解決。不可否認(rèn)可分為起源的非否認(rèn)和傳遞的非否認(rèn)兩種形式。對(duì)于電子病歷系統(tǒng)來(lái)說(shuō),醫(yī)師創(chuàng)建、修改病歷的過(guò)程必須不可否認(rèn),也就是病歷主要涉及到起源的非否認(rèn)。對(duì)于非否認(rèn)服務(wù)主要是通過(guò)數(shù)字簽名來(lái)實(shí)現(xiàn),將在本節(jié)單獨(dú)討論。6.防火墻防火墻是一組實(shí)施訪問(wèn)控制策略的系統(tǒng)。通常防火墻安放在內(nèi)部網(wǎng)和外部網(wǎng)之間實(shí)施安全防范,控制網(wǎng)絡(luò)傳輸。對(duì)于電子病歷系統(tǒng),可以在病歷網(wǎng)絡(luò)訪問(wèn)的出口處安裝防火墻。防火墻的主要作用有:1)限制某些用戶(hù)或信息進(jìn)入一個(gè)被嚴(yán)格控制的站點(diǎn);2)防止進(jìn)攻者接近其他防御工具;3)限制某些用戶(hù)或信息離開(kāi)一個(gè)被嚴(yán)格控制的站點(diǎn)。防火墻一般通過(guò)包過(guò)濾和應(yīng)用網(wǎng)關(guān)的方式實(shí)現(xiàn),前者處理進(jìn)出網(wǎng)絡(luò)的PI包的信息實(shí)現(xiàn)安全控制,后者檢查進(jìn)出網(wǎng)絡(luò)的各種服務(wù),過(guò)濾掉不可信的服務(wù)。但是防火墻一些脆弱性。防火墻采取的訪問(wèn)控制機(jī)制犧牲了網(wǎng)絡(luò)訪問(wèn)的方便性;其次,防火墻不能對(duì)抗私有網(wǎng)絡(luò)中的后門(mén),使攻擊者能有效跳過(guò)防火墻的保護(hù);另外,防火墻不能阻止來(lái)自?xún)?nèi)部網(wǎng)的攻擊。實(shí)時(shí)檢測(cè)是基于實(shí)時(shí)事件序列和/或積累的記錄進(jìn)行分析,檢測(cè)異?;顒?dòng),自動(dòng)地向安全管理者警告可能的安全侵犯。檢測(cè)的基本方法有兩類(lèi):一類(lèi)是基于統(tǒng)計(jì)分析的;另一類(lèi)是基于規(guī)則的?;诮y(tǒng)計(jì)監(jiān)測(cè)方法定期收集與合法用戶(hù)行為有關(guān)的數(shù)據(jù),而后用于對(duì)觀察的行為統(tǒng)計(jì)檢驗(yàn),以高可信度決定是否與合法用戶(hù)的行為相符?;谝?guī)則的檢測(cè)方法的基本觀點(diǎn)是試圖以預(yù)先定義的一組規(guī)則來(lái)檢測(cè)一個(gè)入侵者的行為。例如很多防病毒軟件都有實(shí)時(shí)檢測(cè)的功能。安全審計(jì)是對(duì)系統(tǒng)記錄和過(guò)程的檢查。其目的是測(cè)試安全策略是否充分,協(xié)助攻擊的分析,收集證據(jù)用于起訴攻擊者等。安全審計(jì)追蹤是記錄用于入侵檢測(cè)和/或安全審計(jì)的相關(guān)事件的一個(gè)日志,審計(jì)追蹤是檢測(cè)入侵的一個(gè)基本工具。攻擊發(fā)生后或出現(xiàn)緊急意外后為了系統(tǒng)的可持續(xù)性,必須有一套數(shù)據(jù)恢復(fù)機(jī)制。比如病歷數(shù)據(jù)庫(kù)、病歷資料、應(yīng)用服務(wù)器、應(yīng)用系統(tǒng)的備份和恢復(fù)。由此可知,電子病歷是一個(gè)網(wǎng)絡(luò)系統(tǒng),要在存在安全威脅的系統(tǒng)各個(gè)位置綜合考慮。本論文所探討的電子病歷安全性主要是指數(shù)字簽名技術(shù)在電子病歷系統(tǒng)中的應(yīng)用和研究。數(shù)字簽名是一種基于密碼的技術(shù)。它使用密碼算法對(duì)待發(fā)的數(shù)據(jù)(報(bào)文、票證等)進(jìn)行加密處理,生成一段信息,附著在原文上一起發(fā)送,這段信息類(lèi)似現(xiàn)實(shí)中的簽名或印章,接收方對(duì)其進(jìn)行驗(yàn)證,判斷原文真?zhèn)?。?shù)字簽名一般利用非對(duì)稱(chēng)密碼體制來(lái)完成。整個(gè)過(guò)程如圖1.1所示。圖1.1.公鑰密碼算法數(shù)字簽名過(guò)程為了提高數(shù)字簽名方案的有效性,使用Hash(散列)函數(shù)先對(duì)要簽名的消息進(jìn)行壓縮,然后再對(duì)壓縮后的消息即消息摘要進(jìn)行簽名獲得附件,最后將消息和附件一起發(fā)送給接收者。在消息的接收端,接受者重新計(jì)算消息摘要,并解密附件獲得發(fā)送者計(jì)算的消息摘要,然后比較二者,若二者一樣,則接受者認(rèn)為數(shù)字簽名是合法的。電子病歷是醫(yī)療過(guò)程的一記錄,具有法律效應(yīng),醫(yī)師或醫(yī)技人員為了對(duì)自己的病歷行為(創(chuàng)建、添加記錄、以及修改病歷)負(fù)責(zé),必須添加上自己的簽名。目前電子病歷系統(tǒng)中還是普遍采用將電子病歷先打印后手寫(xiě)簽名的方式,但這種簽名方式不適應(yīng)電子病歷的特征和發(fā)展。具體表現(xiàn)在:1.只有打印后手寫(xiě)簽名的電子病歷才具有一定的法律效應(yīng),而電子版的病歷文件完整性和不可否認(rèn)仍然不能得到保證;2.因?yàn)榫哂蟹尚?yīng)的病歷只是紙張病歷,所以不能隨時(shí)隨地驗(yàn)證病歷合法性,而只能在保存有紙張病歷的病歷中心進(jìn)行驗(yàn)證;3.手寫(xiě)簽名無(wú)法保證簽名的具體時(shí)間的確定,而病歷文件中醫(yī)師的簽名時(shí)間是一個(gè)很重要需要驗(yàn)證的項(xiàng)目。之前已討論,數(shù)字簽名技術(shù)能夠?qū)Σv的完整性和病歷行為不可否認(rèn)提供保證。每個(gè)醫(yī)師都有一個(gè)自己的私鑰及證書(shū),病歷記錄(修改)完后醫(yī)師用自己的私鑰對(duì)其簽名,得到一個(gè)簽名值。以后病歷內(nèi)容的任何篡改都會(huì)使得對(duì)這個(gè)簽名的驗(yàn)證無(wú)法通過(guò);對(duì)于病歷行為的不可否認(rèn),當(dāng)糾紛發(fā)生時(shí),驗(yàn)證方從經(jīng)過(guò)認(rèn)可的認(rèn)證機(jī)構(gòu)那里取得需要驗(yàn)證的醫(yī)師證書(shū),利用證書(shū)中的公鑰信息及時(shí)間戳信息驗(yàn)證簽名和簽名時(shí)間。因?yàn)橹挥凶鳛樽C書(shū)擁有者的醫(yī)師才一擁有與證書(shū)對(duì)應(yīng)的私鑰,這個(gè)私鑰別人是無(wú)法得到并使用的,驗(yàn)證一旦通過(guò)醫(yī)師的身份及醫(yī)師簽名的具體時(shí)間就不可否認(rèn)了。數(shù)字簽名的實(shí)現(xiàn)也受法律法規(guī)和人們習(xí)慣以及認(rèn)可程度的影響。目前國(guó)內(nèi)雖然實(shí)施了一些電子病歷系統(tǒng),但對(duì)于醫(yī)師簽名還普遍采用打印后手簽,沒(méi)有一家醫(yī)院使用數(shù)字簽名技術(shù)。值得注意的是《中華人民共和國(guó)電子簽名法》已在人大常委會(huì)得到通過(guò),于2005年4月1日起正式施行,這標(biāo)志著數(shù)字簽名己經(jīng)得到了法律的認(rèn)可,可靠的數(shù)字簽名與手寫(xiě)簽名或者蓋章一樣具有同等的法律效力,這將極大推動(dòng)和保障依靠數(shù)字簽名的電子商務(wù)和其他應(yīng)用包括醫(yī)療行業(yè)的發(fā)展。隨著相關(guān)行業(yè)的完善(認(rèn)證機(jī)構(gòu))第二章XML簽名標(biāo)準(zhǔn)及實(shí)現(xiàn)2.1研究目的XRP系統(tǒng)中病歷文檔都是以XML文檔的形式保存和處理的,這是系統(tǒng)的優(yōu)勢(shì)所在。XML文檔是一種結(jié)構(gòu)化的文檔,對(duì)它的數(shù)字簽名有其自己的特點(diǎn)。XML簽名標(biāo)準(zhǔn)定義了MXL文檔的簽名語(yǔ)法及簽名處理和驗(yàn)證過(guò)程,是數(shù)字簽名在XML文檔中的表現(xiàn)形式。本章要討論的就是這個(gè)標(biāo)準(zhǔn)以及標(biāo)準(zhǔn)在XPR系統(tǒng)中的應(yīng)用和實(shí)現(xiàn)。2.2設(shè)計(jì)思想2.2.1XML簽名概述要了解XML簽名,首先我們討論一下XML概念。XML(可擴(kuò)展的標(biāo)記語(yǔ)言)是由W3C(萬(wàn)維網(wǎng)聯(lián)盟,WorldWideWebConsortium)組織于1998年2月發(fā)布的一個(gè)標(biāo)準(zhǔn)。XML是一套定義語(yǔ)義標(biāo)記的規(guī)則,這些標(biāo)記將文檔分成許多部件并對(duì)這些部件加以標(biāo)識(shí)。它也是元標(biāo)記語(yǔ)言,即定義了用于定義其他與特定領(lǐng)域有關(guān)的、語(yǔ)義的、結(jié)構(gòu)化的標(biāo)記語(yǔ)言的句法語(yǔ)言。關(guān)于XML要理解的第一件事是,它不只是像超文本標(biāo)記語(yǔ)言HTML或是格式化的程序。這些語(yǔ)言定義了一套固定的標(biāo)記,用來(lái)描述一定數(shù)目的元素。如果標(biāo)記語(yǔ)言中沒(méi)有所需的標(biāo)記,用戶(hù)也就沒(méi)有辦法了。這時(shí)只好等待標(biāo)記語(yǔ)言的下一個(gè)版本,希望在新版本中能夠包括所需的標(biāo)記,但是這樣一來(lái)就得依賴(lài)于軟件開(kāi)發(fā)商的選擇了。但是XML是一種元標(biāo)記語(yǔ)言。用戶(hù)可以定義自己需要的標(biāo)記。這些標(biāo)記必須根據(jù)某些通用的原理來(lái)創(chuàng)建,但是在標(biāo)記的意義上,也具有相當(dāng)?shù)撵`活性。例如,假如用戶(hù)正在處理與家譜有關(guān)的事情,需要描述人的出生、死亡、埋葬地、家庭、結(jié)婚、離婚等,這就必須創(chuàng)建用于每項(xiàng)的標(biāo)記。新創(chuàng)建的標(biāo)記可在文檔類(lèi)型定義DTD(文檔類(lèi)型定義文件)中加以描述。XML定義了一套元句法,與特定領(lǐng)域有關(guān)的標(biāo)記語(yǔ)言(如MusicML、MathML和CML)都必須遵守。如果一個(gè)應(yīng)用程序可以理解這一元句法,那么它也就自動(dòng)地能夠理解所有的由此元語(yǔ)言建立起來(lái)的語(yǔ)言。瀏覽器不必事先了解多種不同的標(biāo)記語(yǔ)言使用的每個(gè)標(biāo)記。事實(shí)上,瀏覽器在讀入文檔或是它的DTD時(shí)才了解了給定文檔使用的標(biāo)記。關(guān)于如何顯示這些標(biāo)記的內(nèi)容的詳細(xì)指令是附加在文檔上的另外的樣式單提供的。XML標(biāo)記描述的是文檔的結(jié)構(gòu)和意義,它的數(shù)據(jù)存儲(chǔ)格式不受顯示方式的制約,它把文檔的三要素:數(shù)據(jù)、結(jié)構(gòu)和顯示分開(kāi)處理。XML簽名標(biāo)準(zhǔn)由負(fù)責(zé)Web技術(shù)標(biāo)準(zhǔn)制訂的W3C組織于2002年2月14號(hào)發(fā)布的。這個(gè)標(biāo)準(zhǔn)提供了XML文檔的簽名語(yǔ)法及簽名處理和驗(yàn)證過(guò)程,文檔在簽名前后都是結(jié)構(gòu)化的。在XPR系統(tǒng)中,病歷是以XML文檔形式保存的,對(duì)病歷的數(shù)字簽名實(shí)際上就是對(duì)XML文檔的數(shù)字簽名。XML簽名正好能適應(yīng)這種結(jié)構(gòu)化的簽名形式。XML簽名相對(duì)于一般的數(shù)字簽名有以下一些優(yōu)點(diǎn):1.XML簽名是一種結(jié)構(gòu)化表達(dá)的簽名方式。簽名的語(yǔ)法,包括簽名內(nèi)容、簽名結(jié)果都是結(jié)構(gòu)化的,正符合XML文檔結(jié)構(gòu)化的特點(diǎn)。2.XML簽名能夠?qū)ML文檔進(jìn)行局部分段簽名,符合同一個(gè)電子病歷文檔中不同醫(yī)療文檔部分由不同醫(yī)師簽名的特征。2.2.2XML病歷文檔結(jié)構(gòu)如前所述,XPR系統(tǒng)中病歷以病人為中心以XML文檔形式保存,系統(tǒng)為每個(gè)病人創(chuàng)建一個(gè)文檔,包含了在院期間的所有病歷資料。一個(gè)病人病歷文檔又由一些不同類(lèi)型的醫(yī)療文檔所構(gòu)成,每一個(gè)醫(yī)療文檔對(duì)應(yīng)著一個(gè)醫(yī)療過(guò)程記錄,是簽名內(nèi)容的基本單位,這些醫(yī)療文檔在病人出院時(shí)由歸檔程序把它們集成并保存到病歷庫(kù)中。電子病歷XML文檔的DTD文件反應(yīng)了電子病歷文檔的基本結(jié)構(gòu),如下所示(部分):<!ELEMENTcdocs(cdoc)+><!ATTLISTcdocspidCDATA#REQUIRED//病人唯一標(biāo)識(shí)元素vidCDATA#REQUIRED//版本號(hào)statusCDATA#REQUIRED//文件狀態(tài)cdtCDATA#REQUIRED//文件創(chuàng)建日期udtCDATA#REQUIRED//病歷文件最后修改日期及時(shí)間adtCDATA#REQUIRED//最近一次訪問(wèn)病歷文件的日期及時(shí)間。fdtCDATA#IMPLIED//記錄完成日期。secleyCDATA#REQUIRED//病歷內(nèi)容的安全等級(jí)。><!ELEMENTcdoc(pidinf,(demog|inhabst|ords|vtsign|labrpt|exrpt|admr|progres))>醫(yī)療文檔節(jié)點(diǎn)(病人簡(jiǎn)要信息(病人自然信息|住院病案首頁(yè)|醫(yī)囑記錄單|生命體征記錄|檢驗(yàn)報(bào)告|檢查報(bào)告|入院記錄|病程記錄))電子病歷文檔的根節(jié)點(diǎn)名為“cdocs”,醫(yī)療文檔作為cdocs的子節(jié)點(diǎn),其節(jié)點(diǎn)名為“cdocs”,cdoc有很多種類(lèi)型,如病人自然信息、醫(yī)囑單等。不同類(lèi)型的醫(yī)療文檔又有不同的結(jié)構(gòu),在文件中以節(jié)點(diǎn)樹(shù)的形式表現(xiàn)出,具體請(qǐng)參考電子病歷DTD文檔。例如入院記錄包括病人自然信息、采集信息、主訴、現(xiàn)病史、過(guò)去史、家族史等。作為實(shí)例,以下給出一個(gè)包含“出院記錄”的電子病歷XML文檔。<?xmlversion="1.0"encoding="GB2312"?><!DOCTYPEcdocsSYSTEM"mr.dtd"><?xml-stylesheettype="text/xsl"href="MR.XSL"?><cdocspid="319761"vid="1"status="editing"cdt="2002-02-11"udt="2003-02-12"adt="2003-02-13"secley="1"><cdocdocid="cdoc0004"ver="1"type="病程記錄"status="edit"title="出院記錄”cdt="2003-04-28"udt="2003-04-28"fdt="2002-04-28"creator="taos"><pidinf><pid>319761</pid><nm>張三<</nm><sex>男性</sex><dob>1954年10月7日</dob></pidinf><progrestype="dchsumm"subject=“出院記錄’‘><dchsumm><extreftype="pic"ref="pic319761_0001"height="194"width="229"/><paragraph>張三,男性,34歲,漢族,己婚,內(nèi)蒙古籍。本院腦外科醫(yī)生。因右手外傷術(shù)后1小時(shí)。2003年4月24日入院,2003-4-28日出院,共住院5天。</paragraph><paragraph>入院時(shí)情況:一般情況好,心肺檢查未見(jiàn)異常,腹部平坦,肝脾肋下未及。右手小魚(yú)際有一長(zhǎng)5cm、寬3cm的逆行撕脫皮膚,有活動(dòng)性出血,右手各指無(wú)麻木感,痛覺(jué)存在,無(wú)感覺(jué)缺失,手指活動(dòng)好。撓動(dòng)脈搏動(dòng)良好,手指末梢充盈好。</paragraph><paragraph>入院診斷:右手皮膚撕脫傷術(shù)后</paragraph><paragraph>診療過(guò)程:入院經(jīng)抗感染治療,傷口無(wú)感染,皮膚無(wú)壞死。住院期間未發(fā)生院內(nèi)感染及并發(fā)癥。</paragraph><paragraph>出院時(shí)情況:一般情況好,生命體征平穩(wěn),手術(shù)切口換藥,無(wú)滲出,皮膚切口對(duì)合佳,皮膚感覺(jué)手指運(yùn)動(dòng)正常。</paragraph><paragraph>出院診斷:右手皮膚撕脫傷術(shù)后</paragraph><paragraph>出院后注意事項(xiàng):繼續(xù)口服抗凝藥物,術(shù)后兩周拆線,功能鍛煉,門(mén)診隨診。</paragraph></dchsumm></progres></cdoc><cdoc>……</cdoc></cdocs>2.2.3XML簽名類(lèi)型XML是一種結(jié)構(gòu)化的文檔類(lèi)型,數(shù)字簽名的處理過(guò)程及簽名相關(guān)數(shù)據(jù)也以XML格式來(lái)表示,并用作為根元素的<Signature>元素來(lái)表示。根據(jù)XML簽名標(biāo)準(zhǔn)(參考RFC3275),數(shù)據(jù)對(duì)象和它們的XML簽名(用<Signature>元素來(lái)表示)進(jìn)行關(guān)聯(lián)時(shí)存在以下3種不同的方法,也就是W3C所定義的三種簽名類(lèi)型:封裝的XML簽名(EnvelopedSignature),封裝用XML簽名(EnvelopingSignature),分離的XML簽名(DetachedSignature):1.封裝的XML簽名。簽名元素在待簽名的XML文檔中,具有以下的XML格式:<original_document><Signature>……</Signature></original_document>2.封裝用XML簽名。簽名必須是被簽名元素的父元素。此種類(lèi)型具有以下格式:<Signature><referenceurl=ID></reference><objectID></original_document>………<original_document></object></Signature>3.分離的XML簽名。簽名既不是被簽名數(shù)據(jù)的父元素,也不是其子元素。簽名數(shù)據(jù)作為一個(gè)單獨(dú)的文件而存在。此種類(lèi)型具有的格式是:<Signature><referenceurl=original_document></reference>……</Signature>本系統(tǒng)采用封裝的XML簽名,簽名元素signature作為醫(yī)療文檔cdoc的一個(gè)子節(jié)點(diǎn)保存在文檔中。使用封裝的XML簽名類(lèi)型好處是在應(yīng)用數(shù)字簽名后,電子病歷文檔原來(lái)關(guān)于病歷內(nèi)容的結(jié)構(gòu)沒(méi)有任何改變,不影響病歷XML解析程序?qū)υ臋n的解析。并且能直觀、準(zhǔn)確地反映醫(yī)療文檔的簽名過(guò)程。2.2.4簽名程序的應(yīng)用我們?cè)诘谝徽轮幸呀?jīng)討論了系統(tǒng)中數(shù)字簽名的時(shí)機(jī)和數(shù)字簽名的兩種應(yīng)用模式。簽名程序在系統(tǒng)中的位置有以下一些方面:1.在HSI某些業(yè)務(wù)系統(tǒng)涉及到病歷的一些業(yè)務(wù)中,醫(yī)師或醫(yī)技人員完成后需要簽名。這時(shí)簽名程序放在客戶(hù)端業(yè)務(wù)程序當(dāng)中,簽名證書(shū)就是登陸的用戶(hù)證書(shū)。2.某些業(yè)務(wù)系統(tǒng)的簽名發(fā)生在病歷行為的后面,比如醫(yī)生開(kāi)醫(yī)囑單,在病人出院時(shí)才將病人在院的所有醫(yī)囑統(tǒng)一歸檔并由系統(tǒng)用自己的系統(tǒng)證書(shū)簽名。這種情況數(shù)字簽名程序伴隨著應(yīng)用服務(wù)器的歸檔程序,歸檔所用的是系統(tǒng)證書(shū)。3.系統(tǒng)中有一個(gè)電子病歷編輯器軟件,實(shí)際上它也可以看成是一個(gè)HSI業(yè)務(wù)系統(tǒng)軟件的實(shí)例。它能夠直接創(chuàng)建、編輯及修改XML類(lèi)型的電子病歷,病歷提交到病歷庫(kù)時(shí)不用進(jìn)行XML轉(zhuǎn)換和歸檔。我們直接在軟件中嵌入數(shù)字簽名程序進(jìn)行簽名。XML簽名標(biāo)準(zhǔn)中定義了XML簽名元素的結(jié)構(gòu),它反映了XML簽名處理的過(guò)程。簽名元素以<Signature>元素作為根節(jié)點(diǎn),<Signature>元素的結(jié)構(gòu)能夠隨同摘要攜帶其它的信息,除了引用被簽名的數(shù)字內(nèi)容之外,<Signature>元素還包括了有關(guān)如下方面的信息:1.用于使數(shù)字內(nèi)容規(guī)范化的方法。2.為待簽名的規(guī)范化元素生成簽名的算法。3.指定在整理之前如何處理待簽名元素的附加信息。首先解釋一下規(guī)范化的概念:規(guī)范化是一個(gè)應(yīng)用一致策略的過(guò)程,其目的是為了讓給定的XML文檔在任何應(yīng)用程序上下文中都能生成相同的文本表示格式。這些策略被應(yīng)用于具有不同物理形式的XML文檔的各個(gè)方面,但不會(huì)對(duì)其邏輯形式產(chǎn)生影響。為計(jì)算數(shù)字簽名,需要一個(gè)通用的方法表示所有的XML文件。即使兩個(gè)XML文件不完全相同,它們?cè)赬ML應(yīng)用中的作用可能是一樣的。下面是兩個(gè)元素等價(jià)但不相同的XML:<imgsrc=“dwlogo.gif”width=“225”height=“30”/><imgsrc=“dwlogo.gif”width=“30”height=“225”/>如果對(duì)這兩個(gè)元素進(jìn)行簡(jiǎn)單的字符串比較,它們顯然是不同的。然而從對(duì)XML處理的角度看,它們是等價(jià)的。按照XML1.0推薦標(biāo)準(zhǔn),屬性的順序是不重要的。在XML源碼文件中,其它非重要差異還包括屬性間的空格數(shù)量以及源文件中是否實(shí)際包含帶默認(rèn)值的屬性。為解決這一問(wèn)題,W3C正在為XML文檔定義一個(gè)規(guī)范形式。因?yàn)閄ML簽名代碼使用規(guī)范形式產(chǎn)生數(shù)字簽名,所以可以對(duì)原始文件進(jìn)行適當(dāng)改動(dòng)而不影響數(shù)字簽名的有效性。例如,在標(biāo)記中添加一些空格。XML簽名定義了兩個(gè)規(guī)范化算法。以下列出了有關(guān)它們的名稱(chēng)和標(biāo)識(shí)符:1.名稱(chēng):CanonicalXML(無(wú)注釋)必需的ID:/TR/20001/REC-xml-200103152.名稱(chēng):CanonicalXML(有注釋)推薦的ID:/TR/20001/REC-xml-20010315#WithComments以下給出了<Signature>元素的基本結(jié)構(gòu)(?表示零個(gè)或一個(gè)匹配項(xiàng),*表示零個(gè)或者多個(gè)匹配項(xiàng),+表示一個(gè)或多個(gè)匹配項(xiàng)):<Signature><SignedInfo><CanonicalizationMethod><SignatureMethod><Reference(URI=)?><Transforms?><DigestMethod><DigestValue></Reference+></SignedInfo><SignatureValue><KeyInfo?><Object*></Signature>必需的SignedInfo元素是實(shí)際簽名的信息。SignatureValue元素是簽名結(jié)果。CanonicalizationMethod標(biāo)識(shí)了一種算法,這種算法被用來(lái)規(guī)范化SignedIof。元素,然后該元素作為簽名操作的一部分被編摘。SignatureMethod是用于將己規(guī)范化的SignedInfo轉(zhuǎn)換成SignatureValue的算法。這是編摘算法、密鑰從屬算法和可能的其它算法的組合。為算法名簽名以抵抗攻擊,該攻擊是基于替換成效率更低的算法。要提高應(yīng)用程序的互操作性,候選方案指定一組需要實(shí)現(xiàn)的簽名算法,雖然它們的使用任憑簽名創(chuàng)建者處理。每個(gè)Reference元素都包括摘要方法和對(duì)己標(biāo)識(shí)數(shù)據(jù)對(duì)象計(jì)算得出的摘要值。它還可能包括產(chǎn)生對(duì)摘要操作的輸入的轉(zhuǎn)換。數(shù)據(jù)對(duì)象的簽名是通過(guò)計(jì)算其摘要值并對(duì)該值的簽名進(jìn)行的。稍后通過(guò)引用和簽名驗(yàn)證來(lái)檢查該簽名,這些驗(yàn)證將重新創(chuàng)建摘要值并確保它與該數(shù)據(jù)對(duì)象中的內(nèi)容匹配。Transforms是一種可選的處理步驟排序列表,在編摘資源內(nèi)容之前,對(duì)它應(yīng)用這些步驟。這是解密所需遵循的軌跡。Transforms可以包括如規(guī)范化、編碼/解碼(包括壓縮/擴(kuò)張)、XSLT和XPath等操作。XPath轉(zhuǎn)換有些復(fù)雜,因?yàn)樗鼈冊(cè)试S簽名者派生出省略一部分源文檔的XML文檔,并將XML樹(shù)限制為它原來(lái)的那樣。因此,未包含部分可以更改,而不影響簽名有效性。如果不存在Transforms元素,則直接編摘資源內(nèi)容。DigestMethod是在應(yīng)用Transforms(如果已經(jīng)指定它)之后對(duì)數(shù)據(jù)應(yīng)用以產(chǎn)生DigestValue的算法。DigestValue的簽名是將資源內(nèi)容與簽名者密鑰綁定的機(jī)制。KeyInfo表示用于驗(yàn)證簽名的密鑰。標(biāo)識(shí)機(jī)制可以包括證書(shū)、密鑰名稱(chēng)和密鑰協(xié)議算法。KeyInfo是可選的有兩個(gè)原因。首先,簽名者可能不希望向所有文檔處理方披露任何密鑰信息。其次,該信息在應(yīng)用程序上下文中可能是己知的,并且不需要明確表示。由于KeyInfo在SignedInfo之外,所以如果簽名者希望將密鑰信息與簽名綁定,那么Reference可以容易地將KeyInfo作為簽名的一部分標(biāo)識(shí)并將其包括在內(nèi)。這種節(jié)點(diǎn)結(jié)構(gòu)實(shí)際上反映了XML簽名的處理過(guò)程。整個(gè)簽名處理過(guò)程如圖2.1所示,所要簽名的資源或數(shù)據(jù)對(duì)象的位置是由URI標(biāo)志的。圖2.1:XML簽名流程1.計(jì)算每一個(gè)資源的摘要信息:包括為每一個(gè)需要簽名的數(shù)據(jù)對(duì)象計(jì)算摘要值,并在<Reference>元素內(nèi)收集摘要值。此過(guò)程如下:1)根據(jù)應(yīng)用程序指定對(duì)數(shù)據(jù)對(duì)象應(yīng)用轉(zhuǎn)換。這些轉(zhuǎn)換可能會(huì)包括許多轉(zhuǎn)換步驟,每個(gè)步驟都在一個(gè)<Transforms>元素內(nèi),收集順序和應(yīng)用順序相同。2)對(duì)轉(zhuǎn)換后的數(shù)據(jù)對(duì)象計(jì)算摘要值。通常地,摘要值通過(guò)在原始的數(shù)據(jù)上應(yīng)用報(bào)文摘要算法來(lái)進(jìn)行計(jì)算。摘要算法對(duì)于為數(shù)據(jù)所作的修改必須很敏感,這樣才能保持簽名的完整性。3)向摘要值應(yīng)用base64編碼,并將它們收集到<DigestValue>元素內(nèi)。4)在<DigestMethod>元素中包括<DigestValue>元素和消息摘要算法的標(biāo)識(shí)符,以此來(lái)創(chuàng)建<<Reference>元素。包括可選的<Transforms>元素和原始數(shù)據(jù)對(duì)象可選的URI標(biāo)識(shí)。5)對(duì)每個(gè)數(shù)據(jù)對(duì)象重復(fù)以上步驟。2.創(chuàng)建<SignedInfo>元素:步驟如下:1)創(chuàng)建一個(gè)<SignedInfo>元素,并將上一步創(chuàng)建的全部<<Reference>元素收集到<SignedInfo>元素內(nèi)。2)包括<SignatureMethod>元素和<CanonicalizationMethod>元素,前者為用于生成簽名的算法指定標(biāo)識(shí)符,后者為用于規(guī)范化<SignedInfo>元素的算法指定標(biāo)識(shí)符。3)基于<CanonicalizationMethod>元素中指定的算法規(guī)范化。由于不同的數(shù)據(jù)流具有相同XML,因而所設(shè)置的信息可能會(huì)有不同的文本標(biāo)識(shí)法。規(guī)范化是為防止簽名的錯(cuò)誤驗(yàn)證的必須步驟。簽名是基于<SignedInfo>元素的這種規(guī)范化以后的表示方式而生成的。3.生成簽名值:包括以下步驟:1)通過(guò)使用<SignedInfo>元素的<SignatureMethod>元素中所指定的簽名算法來(lái)計(jì)算<SignedInfo>元素的簽名值。2)將所得的簽名值收集到<SignatureValue>元素中。4.創(chuàng)建<Signature>元素:將先前步驟的結(jié)果放到一起創(chuàng)建<signature>元素:創(chuàng)建<signature>元素,該元素包括從前面步驟獲得的規(guī)范化<SignedInfo>元素和<SignatureValue>元素。根據(jù)需要包括可選的<KeyInfo>元素和<object>元素。這個(gè)<Signature>元素代表了數(shù)據(jù)對(duì)象的XML簽名。XPR系統(tǒng)中對(duì)電子病歷的數(shù)字簽名有自己的特點(diǎn),這些特點(diǎn)決定了應(yīng)用中XML簽名的處理過(guò)程,也決定了XML簽名元素的結(jié)構(gòu)。Reference引用資源的位置URI標(biāo)識(shí)設(shè)為空,它表明簽名內(nèi)容是signature元素的父節(jié)點(diǎn);Transfroms元素里添加一個(gè)Transform轉(zhuǎn)換節(jié)點(diǎn),其算法是/2000/09/xmldsig#enveloped-signature。它表明簽名內(nèi)容即signature的父節(jié)點(diǎn)中除去signature這個(gè)節(jié)點(diǎn)本身。這兩點(diǎn)是由封裝的XML簽名結(jié)構(gòu)所決定的。另外,轉(zhuǎn)換類(lèi)型集合transforms節(jié)點(diǎn)中還包含另外一個(gè)轉(zhuǎn)換節(jié)點(diǎn)。此轉(zhuǎn)換為XPATH變換,作用是在簽名內(nèi)容中去除節(jié)點(diǎn)名為extref的元素。語(yǔ)句為:count(.|/descendant::extref/descendant-or-self::node())>count(/descendant::extref/descendant-or-self::node()),請(qǐng)參考XPATH語(yǔ)法規(guī)則。extref元素的作用是鏈接文本文檔外部的資源,如醫(yī)學(xué)影像等。對(duì)于這些資源文件,是病歷的一部分,同樣需要保證其完整性和不可否認(rèn)性,XML簽名標(biāo)準(zhǔn)中也有對(duì)圖像等非文本類(lèi)型元素的簽名方式。但是,實(shí)際當(dāng)中,需要保護(hù)的更多是醫(yī)師或醫(yī)技人員對(duì)這些資源的評(píng)測(cè)報(bào)告,這些報(bào)告也是電子病歷文本文檔的一部分,這些資源只是作為一種附件;另外,對(duì)這些資源的數(shù)字簽名開(kāi)銷(xiāo)太大,得不償失,所以不考慮對(duì)這些鏈接內(nèi)容簽名。需要注意的是,資源文件的存放位置發(fā)生變化時(shí),鏈接元素extref的地址屬性會(huì)發(fā)生變化,但這不應(yīng)影響簽名的結(jié)果。舉個(gè)例子,<extrefheight="194"ref="body.jpg"type="pic"width="229"/>。當(dāng)圖像位置變成zz/body.jpg時(shí),<extrefheight="194"ref="zz/body.jpg"type="pic"width="229"/>,extref但元素的變化不應(yīng)影響簽名結(jié)果。keyinfo元素中包含了簽名的私鑰即對(duì)應(yīng)證書(shū)的信息。如果簽名后的簽名節(jié)點(diǎn)中包含keyinfo元素,以后需要驗(yàn)證簽名時(shí),可以直接從文件中獲取當(dāng)時(shí)簽名者的證書(shū)信息,而不需要到證書(shū)庫(kù)中去取,提高了效率。對(duì)于完整性的驗(yàn)證這是有效的,但是如果是驗(yàn)證不可否認(rèn)性就不夠了。因?yàn)楹灻?jié)點(diǎn)中的證書(shū)是孤立的,沒(méi)有辦法確認(rèn)其當(dāng)前的合法性,而且不可否認(rèn)本身需要可信第三方—CA中心的參與。本XPR系統(tǒng)中簽名節(jié)點(diǎn)不包含keyinfo元素。因?yàn)閗eyinfo元素是證書(shū)信息的base64編碼,比較占用存儲(chǔ)空間,每一小段醫(yī)療文檔節(jié)點(diǎn)都加一個(gè)證書(shū)節(jié)點(diǎn)項(xiàng)負(fù)擔(dān)太重。綜合以上的簽名處理要求,簽名后文檔最終生成的簽名項(xiàng)signature內(nèi)容如下:<Signaturexmlns="/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethodAlgorithm="/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod><SignatureMethodAlgorithm='"/2000/09/xmldsig#rsa-shal“></SignatureMethod><ReferenceURI=""><Transforms><TransformAlgorithm="/2000/09/xmldsig#enveloped-signature";</Transform><TransformAlgorithm="/TR/1999/REC-xpath-19991116"><XPath>count(.|/descendant::extref/descendant-or-self::node())>count(/descendant::extref/descendant-or-self::node())</XPath></Transform></Transforms><DigestMethodAlgorithm="http://www.w3.or};/2000/09/xmlds
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年新聞采編與傳播策略測(cè)試題目
- 2026年系統(tǒng)集成項(xiàng)目管理工程師實(shí)踐與考試指南
- 天文知識(shí)初步課件
- 客運(yùn)企業(yè)安全生產(chǎn)培訓(xùn)
- 2026年蘭州科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試備考題庫(kù)含詳細(xì)答案解析
- 2026年天津理工大學(xué)中環(huán)信息學(xué)院?jiǎn)握新殬I(yè)技能考試模擬試題含詳細(xì)答案解析
- 2026年青海交通職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試模擬試題含詳細(xì)答案解析
- 2026年青島遠(yuǎn)洋船員職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考試題含詳細(xì)答案解析
- 2026年太原旅游職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試備考題庫(kù)及答案詳細(xì)解析
- 2026年廣西物流職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試備考試題及答案詳細(xì)解析
- 《微生物與殺菌原理》課件
- 醫(yī)療機(jī)構(gòu)藥事管理規(guī)定版
- DB34T 1909-2013 安徽省鉛酸蓄電池企業(yè)職業(yè)病危害防治工作指南
- 北京市歷年中考語(yǔ)文現(xiàn)代文之議論文閱讀30篇(含答案)(2003-2023)
- 檔案學(xué)概論-馮惠玲-筆記
- 全國(guó)民用建筑工程設(shè)計(jì)技術(shù)措施-結(jié)構(gòu)
- (正式版)YST 1693-2024 銅冶煉企業(yè)節(jié)能診斷技術(shù)規(guī)范
- 1999年勞動(dòng)合同范本【不同附錄版】
- 全國(guó)優(yōu)質(zhì)課一等獎(jiǎng)職業(yè)學(xué)校教師信息化大賽《語(yǔ)文》(基礎(chǔ)模塊)《我愿意是急流》說(shuō)課課件
- 初三寒假家長(zhǎng)會(huì)ppt課件全面版
- 2023年中國(guó)造紙化學(xué)品發(fā)展現(xiàn)狀與趨勢(shì)
評(píng)論
0/150
提交評(píng)論