《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于JAVA的XKMS服務簡單模型實現
基于JAVA的XKMS服務簡單模型實現
孟 翔1,3,薛萬國2
1.中國科學技術大學,北京100039; 2.解放軍總醫院 計算機中心,北京100853;3.解放軍
摘要: 使用JAVA語言及相應的軟件包,按照XKMS服務規范,建立XKMS服務模型,解決在電子病歷系統中涉及PKI系統的密鑰服務問題。
Abstract:
Key words :

摘   要: 使用JAVA語言及相應的軟件包,按照XKMS服務規范,建立XKMS服務模型,解決在電子病歷系統中涉及PKI系統的密鑰服務問題。
關鍵詞: XKMS  XML語言  公鑰體系認證PKI  電子病歷

  電子病歷是以電子化方式管理的有關個人健康狀態和醫療保健行為的信息。本文所述的電子病歷是基于可擴展標記語言XML(Extensible Markup Language1.0)技術實現的。電子病歷的安全性問題涉及完整性、非否認性、機密性等,這些問題都需要PKI系統的支持。本文將以一個簡單示例介紹XKMS(XML Key Management Specification,XML密鑰管理規范)的模型實現,實現一個請求公鑰的服務,為電子病歷XML文檔的加密和簽名提供基于公鑰體系結構PKI(Public Key Infrastructure)的XKMS服務基礎。
1  XKMS概述
  在加強Web業務的安全性方面功不可沒。但從技術層面講,它要求每個用戶和應用程序都要驗證與之通信的每個用戶的身份,以確保對方的身份真實有效。實際上PKI將所有的信任決定都拋給了用戶,這要求復雜的程序庫和配置信息。由于PKI的部署過于復雜繁瑣,成本昂貴,因此一直沒有得到普及應用。
  XML簽名規范和加密規范規定了如何簽名和加密XML文檔,這有助于執行關鍵任務的應用程序使用基于XML的Web服務。在處理數字簽名和加密文檔時要使用PKI。為方便PKI與XML應用程序以及使用這些程序的Web服務進行集成,Microsoft、Verisign和WebMethods共同發起,由W3C發布了XKMS。XKMS的目標就是解決PKI的這些問題。XKMS綜合了XML的互操作性和PKI的安全性,提供了基于PKI保密應用程序的一個簡單方法。應用程序可以簡單地將所有PKI處理程序任務委托給某個第三方信任服務,而不是由自己對復雜的PKI函數進行編碼,這樣就可以將工作重點集中在業務邏輯上。
  XKMS簡化了XML簽名和加密機制在XML應用程序中的使用。XKMS將PKI協議和數據格式替換成基于XML的協議,使用XML詞匯來表示PKI并且支持SOAP消息和WSDL,使得XKMS服務對于平臺、供應商和傳輸協議都是中立的,能夠平穩地適應Web服務的開發環境等。XKMS主要應用在客戶對客戶、應用服務器對客戶、服務器對服務器等環境中,信任的決定由一個公共的服務器完成,XKMS客戶僅需配置服務器的URI地址和服務器用來簽名答復的證書。使用不同的URI,可支持不同的信任模型。XKMS的請求/響應都是封裝在SOAP請求/響應中的。
2  XKMS內容
  XKMS由XML密鑰信息服務規范(XKISS)和XML密鑰注冊服務規范(XKRSS)組成。XKISS負責處理與XML簽名和加密相關的公鑰處理及驗證;XKRSS則用于對密鑰對進行注冊。
  XKISS服務主要支持定位服務和驗證服務二種操作。利用定位服務可以基于標識符信息來定位和檢索已經注冊的公鑰。在XML簽名環境中,<ds:KeyInfo>元素使服務可以對數字簽名進行驗證,在XML加密環境中,<ds:KeyInfo>元素則指定了用于對文檔進行加密的密鑰信息,<ds:KeyInfo>元素構成了這二大密碼學功能的基礎。定位服務能夠解析<ds:KeyInfo>元素并向客戶提供所需的公鑰信息。定位服務僅限于檢索而不能進行驗證。驗證服務能夠驗證密鑰對標識符信息的綁定和有效性狀態。
  XKRSS的目的是為了響應一個完整的、基于XML的密鑰生命周期管理協議的需求,它支持四種操作,即密鑰的注冊、重發、取消和恢復。
  XKMS目前最新的工作草案是2004年4月發布的(見http://www.w3.org/TR/2004/CR-xkms2-20040405),其中定義了具體的XKMS語法和元素。
3  實現過程
  本文示例使用JAVA語言,利用JAXM(Java API for XML Messaging)軟件包和Apache Axis 1.1工程,在Jakarta Tomcat5服務器上簡單演示XKMS中的一種LocateRequest服務。JAXM使用JAVA平臺進行XML消息通信。AXIS是Apache的一個開放源代碼項目,是基于JAVA、SOAP規范的Web服務的實現,它是目前比較出色的SOAP Web容器。Tomcat也是Apache的一個開放源代碼項目,是一個優秀的Servlet/JSP容器。
3.1 客戶端
  在客戶端程序中,按照XKMS規范格式,生成一個簡單的XKMS請求的SOAP消息,請求內容是定位一個使用者在PKI密鑰庫中的公鑰??蛻舳顺绦蛉缦拢?br /> public class Request {
   public static void main(String[] args) {
      try {
  SOAPConnectionFactory scFactory=SOAPConnection-Factory.newInstance( );
  SOAPConnection con=scFactory.createConnection( );
                  //創建SOAP連接
  MessageFactory factory=MessageFactory.newInstance( );
  SOAPMessage message=factory.createMessage( );
                   //創建消息
  SOAPPart soapPart=message.getSOAPPart( );//獲取SOAPPart對象
  SOAPEnvelope envelope=soapPart.getEnvelope( );
                   //獲取SOAPEnvelope對象
  SOAPBody body=envelope.getBody( );//獲取SOAPBody對象
  Name NLocate=envelope.createName(″LocateRequest″,
  ″xkms″,″http://www.w3.org/TR/CR-xkms2-20040405″);
                 //創建LocateRequest元素
  SOAPElement Locate=body.addBodyElement(NLocate);
                 //添加LocateRequest元素
    //根據XKMS格式創建XML元素及內容,代碼省略…,創建的內容結果見下面的請求信息
  URLEndpoint endpoint=new URLEndpoint(//創建
                  //URLEndpoint對象
  ″http://localhost:9999/axis/services/XKMSServices″);
  SOAPMessage response=con.call(message, endpoint);
                  //發送請求消息,接收響應消息
  con.close( );
  response.writeTo(System.out);//顯示接收到的消息
  啟用Apache AXIS 的TCPMonitor收到發送的SOAP消息,如下:

  在上面的SOAP消息中,<soapenv:Body>元素中的內容就是XKMS的請求信息,以<xkms:LocateRequest>元素為開始,請求返回一個用戶的公鑰名稱KeyName和公鑰值KeyValue。
3.2 服務器端
  服務器端由Tomcat5+AXIS1.1構成SOAP服務器,接收客戶端程序發送的消息,對消息進行解析,提取請求信息和要求返回的信息,進行處理,返回XKMS響應。服務器端應先建立PKI,這里使用Keytools工具,先建立一個用戶的RSA密鑰對,存儲在Keystore中,以便使用。
  keytool-genkey-alias mengxiang-keyalg RSA-dname ″CN=301,OU=301,O=301,L=HaiDian,S=BeiJing,C=CN″-keypass password-keystore KeyStore-storepass password-storetype JKS
服務器端接收請求消息,解析內容,檢索密鑰庫中用戶的公鑰,進行BASE64轉換,按照XKMS規范生成XKMS響應消息,返回響應消息。服務器端程序簡示代碼如下:
  public class XKMSServices {
  public Document echoElements(Document elems) {
try {
  MessageContext msgC=MessageContext.getCurrentContext( );
             //獲取MessageContext對象
  Message request=msgC.getRequestMessage( );//獲取消息
  SOAPPart sp=request.getSOAPPart( );
  SOAPEnvelope se=sp.getEnvelope( );
  SOAPBody sb=se.getBody( );
  Iterator it1=sb.getChildElements( );//遍歷元素,提取信息
  FileInputStream in=new FileInputStream(name);
               //導入Keystore
  KeyStore ks=KeyStore.getInstance(″JKS″);
  ks.load(in,pass.toCharArray());
  Certificate c=ks.getCertificate(alias);//獲取用戶數字證書
  in.close( );
  RSAPublicKey PKey=(RSAPublicKey)c.getPublicKey( );
              //獲取用戶RSA公鑰
  BigInteger BE=PKey.getPublicExponent( );//提取指數
  BigInteger BM=PKey.getModulus( );//提取模數
  byte[ ] bbe=BE.toByteArray( );
  byte[ ] bbm=BM.toByteArray( );
  sun.misc.BASE64Encoder encoder=new sun.misc.
  BASE64Encoder( );//BSAE64轉換類
  String sbe=encoder.encode(bbe);//BSAE64轉換
  String sbm=encoder.encode(bbm);
  DocumentBuilderFactory dbf=DocumentBuilderFactory.
          newInstance( );//生成響應消息
  DocumentBuilder db=dbf.newDocumentBuilder( );
  document=db.newDocument( );
  Element root=document.createElement(″xkms:LocateResult″);
  root.setAttribute(″xmlns:ds″,″http://www.w3.org/2000/09/
     xmldsig#″);
      //按照XKMS語法格式創建響應消息,代碼省略創建的內容結果見下面的響應SOAP消息
  document.appendChild(root);
  return document;//返回響應
  AXIS 的TCPMonitor接收到響應的SOAP消息,省略SOAP頭形式如下:

  在以上響應消息中,<xkms:LocateResult>元素中包含了XKMS的響應內容,其中返回了用戶的公鑰名和公鑰值。<ds:Modulus>中包含了公鑰的模數的BSAE64編碼后的值,<ds:Exponent>中包含了公鑰的指數的BSAE64編碼后的值??蛻舳顺绦蚪邮盏巾憫畔⒑螅蓪ζ溥M行解析,提取出模數和指數字符串,進行反BASE64編碼,就獲得了真正的模數和指數。這樣就可以對電子病歷XML文檔進行加密處理。
4  總  結
  XKMS目前仍處于發展階段,還將會進一步修訂。實用過程中,還需開發緊密結合XKMS的API,將XKMS客戶端和服務器端的程序模塊化,實現XKISS和XKRSS中的其他服務。
參考文獻
1   Nagappan R,Skoczylas R著,龐太剛,陶程譯.JAVA Web服務開發.北京:清華大學出版社,2004
2   Galbraith B著,吳旭超,王黎譯.WEB服務安全性高級編程. 北京:清華大學出版社,2003
3   徐迎曉.JAVA安全性編程實例.北京:清華大學出版社,2003
4   Dournaee B著,周永彬,賀也平,劉娟譯.XML安全基礎.北京:清華大學出版社,2003

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美成人一区二免费视频软件| 亚洲一区在线免费观看| 久久久久国产精品一区三寸| 亚洲国产欧美精品| 欧美黑人国产人伦爽爽爽| 亚洲自拍偷拍视频| 亚洲精品色婷婷福利天堂| 国产精品久久久久毛片软件| 国产美女一区| 在线免费观看成人网| 午夜国产精品视频| 久久天天躁夜夜躁狠狠躁2022| 久久精品av麻豆的观看方式| 久久久久se| 亚洲欧洲精品成人久久奇米网| 国产精品亚洲网站| 欧美中文字幕视频在线观看| 蜜臀av性久久久久蜜臀aⅴ| 欧美成人午夜激情视频| 亚洲精品少妇30p| 久久国内精品视频| 欧美sm重口味系列视频在线观看| 久久午夜激情| 欧美日韩国产色站一区二区三区| 欧美日韩三级在线| 在线一区观看| 国产有码在线一区二区视频| 精品88久久久久88久久久| 亚洲专区一二三| 欧美一区在线直播| 欧美日韩一区二区在线观看视频| 亚洲午夜av| 欧美成人午夜免费视在线看片| 久久久爽爽爽美女图片| 欧美 日韩 国产精品免费观看| 国产精品jizz在线观看美国| 国产精品自拍小视频| 亚洲久久成人| 亚洲欧美日韩综合一区| 性欧美大战久久久久久久免费观看| 国产色综合久久| 欧美一区二区在线免费播放| 欧美喷水视频| 国产精品欧美经典| 日韩视频免费在线| 国产精品高潮视频| 国产精品激情偷乱一区二区∴| 欧美一区二区啪啪| 在线观看一区二区精品视频| 亚洲精品久久久久久久久| 亚洲一区二区在线免费观看视频| 欧美77777| 黄色免费成人| 香蕉成人久久| 欧美一区久久| 国产精品magnet| 麻豆成人小视频| 亚洲免费福利视频| 国产网站欧美日韩免费精品在线观看| 国产一区二区三区不卡在线观看| 亚洲欧美日韩网| 欧美日韩一区二区欧美激情| 亚洲永久在线| 亚洲国产高清一区| 欧美成人午夜激情视频| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产精品福利片| 欧美国产精品人人做人人爱| av成人激情| 欧美国产日韩一区| 久久蜜桃资源一区二区老牛| 亚洲伦理网站| 欧美福利电影在线观看| 日韩一级欧洲| 日韩视频中文| 国产嫩草一区二区三区在线观看| 国产精品男gay被猛男狂揉视频| 性刺激综合网| 久久精品国产欧美激情| 国产欧美日韩不卡| 欧美精品日韩精品| 久久久噜噜噜久久狠狠50岁| 欧美大片在线观看一区| 99re视频这里只有精品| 亚洲尤物影院| 亚洲精品国产精品国产自| 在线视频欧美精品| 久久一本综合频道| 亚洲人妖在线| 欧美成人免费va影院高清| 国产亚洲精品一区二555| 亚洲一区二区久久| 欧美在线观看视频一区二区三区| 国产精品一区视频| 欧美午夜一区| 国产精品色一区二区三区| 欧美激情欧美狂野欧美精品| 日韩视频中文字幕| 国产精品ⅴa在线观看h| 国产精品影音先锋| 在线观看免费视频综合| 亚洲国产日本| 欧美国产日韩a欧美在线观看| 99热精品在线观看| 午夜免费电影一区在线观看| 国产一区二区无遮挡| 亚洲国产精品成人久久综合一区| 亚洲欧美日韩成人高清在线一区| 销魂美女一区二区三区视频在线| 欧美体内she精视频在线观看| 欧美高清在线观看| 亚洲精品九九| 日韩系列欧美系列| 久久se精品一区精品二区| 亚洲精品少妇| 一区二区激情视频| 久久人人爽国产| 久久久久国色av免费观看性色| 在线一区二区三区四区| 久久综合一区| 亚洲欧美日韩电影| 欧美中文在线观看国产| 国产欧美日韩综合一区在线播放| 国产精品盗摄一区二区三区| 久久精品国产第一区二区三区| 亚洲国产小视频在线观看| 亚洲激情一区| 一区二区欧美日韩| 久久精品视频在线播放| 嫩模写真一区二区三区三州| 国产精品夜色7777狼人| 中文成人激情娱乐网| 久久精品夜色噜噜亚洲aⅴ| 欧美日韩国产电影| 国产麻豆精品theporn| 欧美日韩精品久久久| 欧美aⅴ一区二区三区视频| 一本色道久久综合亚洲精品不卡| 久久婷婷国产综合精品青草| 久久精品一区二区国产| 亚洲图片自拍偷拍| 欧美影院在线播放| 国产婷婷精品| 欧美在线你懂的| 国语自产精品视频在线看一大j8| 亚洲性视频网站| 欧美黄免费看| 久久在线视频在线| 久久久久一区二区三区| 亚洲免费视频观看| 亚洲国产专区| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲视频精选在线| 久久九九国产精品怡红院| 欧美高清视频一区二区三区在线观看| 正在播放亚洲一区| 久久激情视频久久| 国产在线精品一区二区夜色| 国产精品羞羞答答xxdd| 亚洲视频每日更新| 小辣椒精品导航| 欧美一区二区在线观看| 欧美成人精品一区二区三区| 亚洲人成毛片在线播放| 午夜精品网站| 欧美一区二区高清在线观看| 免费不卡在线观看| 欧美日韩国产综合在线| 亚洲在线视频一区| 国产精品亚洲а∨天堂免在线| 国产欧美日韩一区| 亚洲二区视频在线| 亚洲国产成人porn| 久久国产日韩欧美| 久久激情综合网| 欧美大片免费| 国产欧美激情| 性欧美xxxx视频在线观看| 亚洲天堂av电影| 亚洲精品一区二区三区99| 欧美日韩一级黄| 国产精品亚洲综合天堂夜夜| 一区二区三区视频在线播放| 国产精品网站在线播放| 国产精品―色哟哟| 久久综合色天天久久综合图片| 欧美电影在线免费观看网站| 午夜精品久久久99热福利| 国产伦精品一区二区三区照片91| 亚洲一区999| 国产亚洲人成网站在线观看| 亚洲色诱最新| 久久久国产亚洲精品| 国产精品久久国产精麻豆99网站| 日韩午夜av| 欧美亚洲三级| 亚洲影院免费| 亚洲欧美激情诱惑| 一区二区三区四区五区精品| 日韩视频中文字幕| 亚洲国产精品久久久久久女王| 欧美三级欧美一级| 精东粉嫩av免费一区二区三区| 亚洲日本一区二区三区| 蜜臀av在线播放一区二区三区| 欧美激情中文字幕一区二区| 韩日精品视频一区| 中文欧美字幕免费| 羞羞视频在线观看欧美| 午夜精品美女久久久久av福利| 国产精品久久久久久久久免费樱桃| 国产亚洲综合精品| 亚洲综合欧美日韩| 亚洲影院污污.| 韩国在线一区| 亚洲精品国产精品国产自| 亚洲视频免费看| 亚洲欧美欧美一区二区三区| 一本色道久久综合精品竹菊| 国产精品色婷婷久久58| 狠狠久久亚洲欧美| 亚洲精品视频在线看| 欧美激情在线狂野欧美精品| 一本高清dvd不卡在线观看| 亚洲青色在线| 一区二区毛片| 国产精品日韩在线观看| 欧美久久精品午夜青青大伊人| 欧美日韩mp4| 激情欧美一区二区三区在线观看| 尤物网精品视频| 国产精品二区三区四区| 欧美极品在线播放| 亚洲欧美变态国产另类| 韩国精品久久久999| 国产人成一区二区三区影院| 国产精品人人做人人爽人人添| 国产欧美午夜| 欧美一区二区观看视频| 欧美日韩亚洲不卡| 国内成人精品视频| aa成人免费视频| 夜夜嗨av色综合久久久综合网| 韩国精品久久久999| 亚洲精品中文字| 亚洲激情成人| 欧美日韩黄视频| 亚洲区欧美区| 中文一区字幕| 国产亚洲一二三区| 老妇喷水一区二区三区| 久久九九热re6这里有精品| 尤物九九久久国产精品的分类| 亚洲欧洲精品成人久久奇米网| 在线观看不卡| 亚洲欧洲另类国产综合| 亚洲欧美国产另类| 欧美在线91| 国产精品乱码久久久久久| 激情欧美一区二区三区在线观看| 久久青青草原一区二区| 国产热re99久久6国产精品| 欧美激情一区二区三区在线视频| 一本在线高清不卡dvd| 99精品热6080yy久久| 亚洲婷婷综合久久一本伊一区| 亚洲精品美女久久久久| 亚洲一卡二卡三卡四卡五卡| 老司机精品久久| 亚洲人成网站精品片在线观看| 国产欧美日韩视频一区二区三区| 午夜亚洲福利| 99国内精品久久| 久久亚洲私人国产精品va| 男女激情视频一区| 久久中文字幕导航| 亚洲精品一区二区三区婷婷月| 久久精品视频在线| 精久久久久久| 噜噜噜躁狠狠躁狠狠精品视频| 欧美va天堂在线| 亚洲自拍偷拍网址| 亚洲第一中文字幕在线观看| 蜜臀99久久精品久久久久久软件| 久久久久国产精品一区三寸| 一区二区三区四区五区视频| 欧美精品三区| 老司机成人在线视频| 国产亚洲精品久| 欧美国产综合视频| 欧美日韩一区二区三区免费看| 韩国精品主播一区二区在线观看| 欧美日韩一区成人| 久久亚洲影音av资源网| 国产精品hd| 一区二区三区日韩在线观看| 国产精品高潮粉嫩av| 亚洲一区在线直播| 久久久久久一区二区三区| 亚洲精品综合久久中文字幕| 欧美在线视频一区二区三区| 亚洲日本成人网| 欧美日韩精品三区| 国内自拍亚洲| 午夜日韩电影| 国产精品性做久久久久久| 黑人中文字幕一区二区三区| 亚洲欧美日韩天堂一区二区| 亚洲精品一区二区三区在线观看| 亚洲国内精品在线| 亚洲高清久久| 欧美日韩免费观看一区三区| 亚洲美女电影在线| 欧美午夜精品久久久久久孕妇| 亚洲二区三区四区| 国产在线精品自拍| 亚洲区一区二| 亚洲深夜av| 一区二区三区欧美| 亚洲作爱视频| 欧美成人官网二区| 国内外成人免费激情在线视频网站| 亚洲精品久久久久| 国产精品热久久久久夜色精品三区| 国产精品成人一区二区网站软件| 欧美日韩国产综合视频在线| 91久久久国产精品| 国产日本欧洲亚洲|