畢業(yè)論文-基于XML電子病歷數(shù)字簽名算法的研究與實現(xiàn)_第1頁
畢業(yè)論文-基于XML電子病歷數(shù)字簽名算法的研究與實現(xiàn)_第2頁
畢業(yè)論文-基于XML電子病歷數(shù)字簽名算法的研究與實現(xiàn)_第3頁
畢業(yè)論文-基于XML電子病歷數(shù)字簽名算法的研究與實現(xiàn)_第4頁
畢業(yè)論文-基于XML電子病歷數(shù)字簽名算法的研究與實現(xiàn)_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

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

評論

0/150

提交評論