• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      高級加密標(biāo)準在XML文檔傳輸中的安全性研究

      2014-01-15 10:00:42趙登攀
      電子設(shè)計工程 2014年19期
      關(guān)鍵詞:數(shù)字簽名加密技術(shù)解密

      趙登攀,高 凱

      (陜西理工學(xué)院教務(wù)處 陜西 漢中 723000)

      電子商務(wù)從出現(xiàn)以來就以其巨大的能量和動力給整個世界的經(jīng)濟運行方式和社會生活形態(tài)帶來了深刻的變化。它不僅開辟一條新的網(wǎng)上銷售渠道,而且改善企業(yè)經(jīng)營模式、優(yōu)化交易過程、降低庫存損耗、保持資金全部周轉(zhuǎn)和降低實際銷售支出,進而降低經(jīng)營成本,增加企業(yè)收入和效率,并幫助企業(yè)與客戶、供應(yīng)商以及合作伙伴建立更為密切的合作關(guān)系??梢哉f誰掌握了電子商務(wù)、誰就在未來的商戰(zhàn)中掌握了制勝的商機[1]。可擴展標(biāo)記語言XML由于其自身的優(yōu)點迅速成為在電子商務(wù)網(wǎng)絡(luò)數(shù)據(jù)表示和信息交換的事實標(biāo)準。本文正是基于以上背景,提出一種新的XML安全策略來保證電子商務(wù)信息的安全。

      1 XML的應(yīng)用

      擴展標(biāo)記語言XML(Extensible Markup Language)是世界萬維網(wǎng)聯(lián)盟W3C制定的一種數(shù)據(jù)標(biāo)準。它以其結(jié)構(gòu)化、互操作性、易于交換和可擴展性的特點在很多行業(yè)得到了廣泛的應(yīng)用[2]。由于XML具有良好的數(shù)據(jù)存儲格式、可擴展性、高度結(jié)構(gòu)化和便于網(wǎng)絡(luò)傳輸,非常適合電子商務(wù)應(yīng)用的需要。由于其卓越的性能表現(xiàn)以及為其所制訂的一些與電子商務(wù)相關(guān)的規(guī)范,使XML成為一種廣泛應(yīng)用的電子商務(wù)描述語言,并在電子商務(wù)的各種信息交換中發(fā)揮重大作用[3-4]。

      2 目前XML的安全加密技術(shù)

      隨著XML技術(shù)在互聯(lián)網(wǎng)的廣泛應(yīng)用和發(fā)展,XML數(shù)據(jù)的安全得到了廣泛關(guān)注,XML安全技術(shù)包括XML加密標(biāo)準、XML數(shù)字簽名標(biāo)準、XML公鑰管理規(guī)范、XML存取控制標(biāo)記語言以及XML權(quán)利標(biāo)記語言(XrML)等[5]。

      2.1 XML加密技術(shù)

      XML加密技術(shù)的基礎(chǔ)是XML加密規(guī)范,此規(guī)范由W3C制定。XML加密的最主要特點是可以對整個XML文檔加密,還可以對XML文檔中的任意元素和元素內(nèi)容進行加密。XML加密技術(shù)用于對網(wǎng)絡(luò)數(shù)據(jù)進行加密,形成加密后的XML格式文件后再安全地發(fā)送給接收方,達到了提高文件傳送安全性的目標(biāo)。

      2.2 XML加密技術(shù)特點和方法

      XML加密技術(shù)能夠?qū)φ麄€文件加密。但是其最主要的特點是其作為一種結(jié)構(gòu)化數(shù)據(jù),能夠控制對不同元素的授權(quán)查看[6-7]。

      XML加密技術(shù)的主要特點有:

      1)在數(shù)據(jù)傳輸過程中的每個節(jié)點都能保持數(shù)據(jù)的安全性;

      2)支持包括XML文檔在內(nèi)的任意內(nèi)容的加密;

      3)以XML形式表現(xiàn)被加密的數(shù)據(jù);

      4)可以從XML文檔中選出一部分內(nèi)容進行加密。

      XML加密技術(shù)實現(xiàn)這種應(yīng)用的方法是引入了加密顆粒度(Encryption Granularity)的概念,即對每個 XML文件都可以進行如下操作:

      1)加密整個XML文檔;

      2)加密文檔中的任意元素;

      3)加密文件中元素的內(nèi)容;

      4)對加密過的元素或內(nèi)容進行再加密。

      2.3 XML加密與傳統(tǒng)加密的比較

      目前已經(jīng)存在一些Internet加密和安全協(xié)議,SSL/TLS則只能是對整個文檔進行加密。XML加密并不能替代這些己有的安全協(xié)議,不過它能解決完全不同類型的安全性問題。目前對XML文檔加密的研究都只限于一般加密標(biāo)準的使用,國外近幾年在新的加密標(biāo)準上也有所研究,特別是將高級加密標(biāo)準結(jié)合XML文件傳輸在電子商務(wù)平臺應(yīng)用的也較少,為此正是本文研究的意義。

      3 XML安全技術(shù)在電子商務(wù)平臺中的實現(xiàn)

      本節(jié)首先提出結(jié)合XML文檔傳送的電子商務(wù)平臺安全框架,并結(jié)合使用高級加密標(biāo)準 (AES)算法,以.NET開發(fā)的電子商務(wù)平臺中訂單轉(zhuǎn)化XML文件,并對該訂單進行加密解密處理,最后測試實現(xiàn)了XML文檔加密解密的模塊功能,提高了電子商務(wù)交易中的在線支付的安全性。

      3.1 系統(tǒng)的安全框架設(shè)計

      為了保證購物中訂單信息的安全性,根據(jù)網(wǎng)站平臺對XML數(shù)據(jù)安全的要求,所設(shè)計的電子商務(wù)平臺XML數(shù)據(jù)安全框架如圖1所示,首先需要把訂單在發(fā)送端轉(zhuǎn)化為XML文檔,然后進行安全處理并通過網(wǎng)絡(luò)傳送。

      圖1 XML安全系統(tǒng)框架Fig.1 The XML security system framework

      3.2 高級加密標(biāo)準(AES)算法的使用

      隨著對稱密碼的發(fā)展,DES數(shù)據(jù)加密標(biāo)準算法由于密鑰長度較小(56位),已經(jīng)不適應(yīng)當(dāng)今分布式開放網(wǎng)絡(luò)對數(shù)據(jù)加密安全性的要求,因此1997年NIST公開征集新的數(shù)據(jù)加密標(biāo)準,即AES。經(jīng)過三輪的篩選,比利時Joan Daeman和Vincent Rijmen提交的Rijndael算法被提議為AES的最終算法。此算法將成為美國新的數(shù)據(jù)加密標(biāo)準而被廣泛應(yīng)用在各個領(lǐng)域中。盡管人們對AES還有不同的看法,但總體來說,AES作為新一代的數(shù)據(jù)加密標(biāo)準匯聚了強安全性、高性能、高效率、易用和靈活等優(yōu)點。AES設(shè)計有3個密鑰長度:128,192,256位,相對而言,AES的 128密鑰比 DES的 56密鑰強1 021倍。AES算法主要包括3個方面:輪變化、圈數(shù)和密鑰擴展。綜上所訴,AES是指定的標(biāo)準密碼系統(tǒng),未來將由政府和銀行業(yè)用戶使用。為了進一步提高電子商務(wù)應(yīng)用領(lǐng)域電子訂單加密的安全性,在后面的設(shè)計中將采用這種算法。

      3.3 加密解密和數(shù)字簽名的流程設(shè)計

      根據(jù)設(shè)計分析和前面章節(jié)對數(shù)據(jù)加密算法的分析結(jié)果,從加解密速度、系統(tǒng)開銷、密鑰管理和安全性等方面考慮,該電子商務(wù)平臺中的重要關(guān)鍵信息用到AES加解密算法進行加密。再結(jié)合System.Security.Cryptography.Xml命名空間中的類設(shè)計數(shù)字簽名模塊。首先設(shè)計出整個加密解密的系統(tǒng)流程圖如圖2所示。

      圖2 XML文檔加密和數(shù)字簽名流程圖Fig.2 XML encryption and digital signature flow chart

      3.4 XML訂單加密和數(shù)字簽名的設(shè)計方案

      在后臺登錄管理新添加一個加密設(shè)置模塊頁面Manager Security.aspx,管理員通過登錄后臺管理界面,在“加密信息設(shè)置”菜單內(nèi)設(shè)置加密和數(shù)字簽名的方案,并且可以靈活的設(shè)置需要加密的字段。這個管理權(quán)限只有管理員可以使用,這樣即使前臺用戶查看已經(jīng)加密的訂單,也無法獲知本平臺是設(shè)置的何種加密方式,保證了訂單在網(wǎng)上傳送的安全性。如圖3電子商務(wù)平臺后臺管理界面中的加密信息設(shè)置模塊。管理員可以在后臺管理中設(shè)置需要加密的字段,如在購物過程中中的信息不需要賣方知道,只需要銀行知道,那就可以在圖3的表單中框填寫CreditCard字段,設(shè)置對其的加密,也可輸入多個需要加密的字段,中間用“,”分開即可。

      圖3 后臺管理界面中的加密信息設(shè)置模塊Fig.3 Encryption information background management interface settings module

      3.5 加密解密和數(shù)字簽名核心算法的實現(xiàn)

      通過上面的分析過程,目前完成Signature.cs、Asymmetric.cs和SymmetricKey.cs這3個類的設(shè)計是系統(tǒng)的核心問題,結(jié)合高級加密標(biāo)準 (AES)算法和C#編程的方式,下面具體分析一下其實現(xiàn)的核心算法程序。

      1)用對稱密鑰對XML元素進行加密的實現(xiàn)過程

      可以使用 System.Security.Cryptography.Xml命名空間中的類對XML文檔中的元素進行對稱加密。此加密使用高級加密標(biāo)準(AES)算法對XML元素進行加密。主要程序如下:

      public class SymmetricKey

      {public static RijndaelManaged CryptographyXml(string fileUrl, string targetUrl, string tagName){RijndaelManaged key=null;

      try{

      key=new RijndaelManaged();

      XmlDocument xmlDoc=new XmlDocument();

      xmlDoc.PreserveWhitespace=true;

      xmlDoc.Load(fileUrl);

      Encrypt(xmlDoc, tagName, key);xmlDoc.Save(targetUrl);}

      catch (Exception e)

      {throw new Exception("出現(xiàn)異常"); }

      return key;}

      2)對稱密鑰對XML元素解密的方案

      當(dāng)使用對稱算法對XML數(shù)據(jù)進行加密時,必須考慮使用相同的密鑰對XML數(shù)據(jù)進行解密。上述的方案不在加密的XML中存儲或加密AES密鑰。

      使用System.Security.Cryptography.Xml命名空間中的類對XML文檔中的元素進行非對稱加密。使用了兩個密鑰對一個XML元素進行加密。它生成RSA公鑰/私鑰對,并將密鑰對保存到安全密鑰容器中。然后使用高級加密標(biāo)準(AES)算法創(chuàng)建一個單獨的會話密鑰XML數(shù)據(jù)保存到XML文檔中的新 元素中。用非對稱密鑰對XML元素進行加密的實現(xiàn)方案,主要程序如下:

      public class Asymmetric

      {public static void CryptographyXml (string fileUrl, string targetUrl, string tagName)

      {XmlDocument xmlDoc=new XmlDocument();

      try{

      xmlDoc.PreserveWhitespace=true;

      xmlDoc.Load(fileUrl);}

      catch

      {throw new Exception(“加載文件錯誤”);}

      CspParameters cspParams=new CspParameters();

      cspParams.KeyContainerName= “XML_ENC_RSA_KEY”;

      RSACryptoServiceProvider rsaKey=new

      RSACryptoServiceProvider(cspParams);

      try

      {Encrypt(xmlDoc, tagName, “EncryptedElement1”,rsaKey, “rsaKey”);

      xmlDoc.Save(targetUrl);}

      catch

      {throw new Exception("加密文件失敗");}

      finally

      {rsaKey.Clear();}}

      對XML元素進行非對稱密鑰解密,可從密鑰容器中檢索出 RSA私鑰,用它對密鑰進行解密,然后使用會話密鑰對文檔進行解密。

      3)XML數(shù)字簽名和驗證的實現(xiàn)過程

      可以使用 System.Security.Cryptography.Xml命名空間中的類通過數(shù)字簽名對XML文檔或XML文檔的部分進行簽名。數(shù)字簽名后還可以驗證簽名數(shù)據(jù)沒有被更改。下面的程序算法創(chuàng)建一個RSA簽名密鑰,將該密鑰添加到安全密鑰中,然后使用該密鑰對XML文檔進行數(shù)字簽名。最后我們可以檢索該密鑰來驗證XML數(shù)字簽名。對 XML文檔進行數(shù)字簽名的算法實現(xiàn)方案,主要程序如下:

      ///

      public class Signature

      {public static void CryptographyXml (string fileUrl,string targetUrl,string tagName)

      {XmlDocument xmlDoc=new XmlDocument();

      try{xmlDoc.PreserveWhitespace=true;

      xmlDoc.Load(fileUrl);}

      catch{}

      CspParameters cspParams=new CspParameters();

      cspParams.KeyContainerName= “XML_DSIG_RSA_KEY”;

      RSACryptoServiceProvider rsaKey=new

      RSACryptoServiceProvider(cspParams);

      try{

      SignXml(xmlDoc, rsaKey);

      xmlDoc.Save(targetUrl);}

      catch{}

      finally{rsaKey.Clear();}}

      驗證 XML文檔的數(shù)字簽名算法實現(xiàn)方案:

      ①必須使用與簽名時所使用的非對稱密鑰相同的密鑰。

      ②使用RSACryptoServiceProvider類檢索公鑰。

      ③通過從磁盤加載XML文件創(chuàng)建的對象。

      ④創(chuàng)建一個新的 SignedXml對象,并將 XmlDocument對象傳遞給它。

      ⑤找到元素,并創(chuàng)建新的XmlNodeList對象。

      ⑥將第一個元素的 XML加載到 SignedXml對象中。

      ⑦使用CheckSignature方法和 RSA公鑰檢查簽名。此方法將返回指示成功或失敗的布爾值。

      4 系統(tǒng)測試與分析

      由于網(wǎng)上交易涉及到買賣雙方和銀行,買賣雙方只需要知道購買的訂單信息和客戶的聯(lián)系方式,而不需要知道客戶的信用卡信息。而作為雙方中介的銀行不需要知道客戶的訂單信息,只需要知道客戶的信用卡信息。這樣我們就需要對訂單中需要加密和保護隱私的元素進行選擇加密,然后再把訂單信息通過網(wǎng)絡(luò)發(fā)送出去,完成網(wǎng)上交易,保證信息的安全性。以加密訂單文件中的最為重要的信用卡信息為例進行測試。

      選擇的系統(tǒng)測試環(huán)境如下:

      1)測試軟件:Microsoft Visual Studio 2008,C# 編程

      2)測試環(huán)境:Windows XP SP2,NET Framework 3.5,Internet Explorer 7.0,IIS 5.1

      3)引用組件:System.Security.dll

      4)命名空間:System.Xml、System.Security.Cryptography 和System.Security.Cryptography.Xml。

      4.1 對稱密鑰對XML元素加密和解密的測試

      電子商務(wù)網(wǎng)站生成一個名為 “20091218204059.xml”的訂單文件。 且該文件中包含一個“”元素。 在后臺設(shè)置對“”元素進行加密,選擇用對稱密鑰方式進行加密測試。

      1)用對稱密鑰對進行加密,平臺測試成功。

      加密后生成一個20091218204059_3.xml的訂單文件,表示對源XML文件加密已經(jīng)成功。

      2)對稱密鑰解密程序在此省略。用對稱密鑰對進行解密。

      非對稱密鑰對XML元素加密和解密的測試和XML數(shù)字簽名和驗證的測試在此省略。

      4.2 測試結(jié)果分析

      通過對稱密鑰對 XML元素加密和解密測試,在XML文檔編寫符合規(guī)范情況下,可以對任意需要加密的XML元素進行加密,這樣就提高了XML文檔在網(wǎng)絡(luò)中傳輸?shù)陌踩?。通過非對稱密鑰對XML元素加密和解密測試,也達到了加密任意XML元素的目的。通過XML元素數(shù)字簽名和驗證的測試,達到了XML文檔在網(wǎng)絡(luò)傳輸中簽名和驗證的需要,進一步提高了電子商務(wù)平臺的安全性。

      5 結(jié)束語

      本文對電子商務(wù)的概念及其安全性做了相關(guān)的介紹說明,探討了如何利用XML技術(shù)加強其安全性,即XML加密和XML數(shù)字簽名不但可以保護數(shù)據(jù)的私有性,還能對整個交易提供數(shù)字證明,保證交易的不可抵賴性。同時,基于軟件復(fù)用性的思想,將XML簽名與加密技術(shù)的實現(xiàn)進行組件化封裝,在保護數(shù)據(jù)安全的同時也提高了軟件的可重用性。

      [1]Gray P Schneider,James T Perry.電子商務(wù)[M].成棟,譯.北京:中國機械工業(yè)出版社,2000.

      [2]傅海英,李輝,王育名.XML及相關(guān)安全研究進展[J].計算機應(yīng)用研究,2004(4):86-88.FU HAI-ying,LI Hiu,WANG Yu-ming.An overview of XML and XML-related security[J].Application Research of Computers,2004(4):86-88.

      [3]Mark Birbeck.XML高級編程[M].北京:機械工業(yè)出版社,2005.

      [4]趙克立.XML1.x編程培訓(xùn)教程[M].清華大學(xué)出版社,2002.

      [5]XrML [EB/OL].http://technet.microsoft.com/zh-cn/library/cc747717(WS.10).aspx.

      [6]耿建勇.XML安全技術(shù)的應(yīng)用研究[D].北京:中國科學(xué)院,2005.

      [7]耿建勇,魯士文.基于XML加密規(guī)范的安全數(shù)據(jù)交換的實現(xiàn)[J].計算機應(yīng)用與軟件,2005(2):99-101.GENG Jian-yong,LU Shi-wen.Safe data exchange based on XML encryption[J].Computer Applications and Software,2005(2):99-101.

      猜你喜歡
      數(shù)字簽名加密技術(shù)解密
      解密“熱脹冷縮”
      海洋水文信息加密技術(shù)方案設(shè)計與測試
      解密“一包三改”
      少先隊活動(2020年9期)2020-12-17 06:17:31
      淺析計算機安全防護中數(shù)字簽名技術(shù)的應(yīng)用
      炫詞解密
      數(shù)據(jù)加密技術(shù)在計算機網(wǎng)絡(luò)通信安全中的應(yīng)用
      電子制作(2018年16期)2018-09-26 03:27:10
      基于數(shù)字簽名的QR碼水印認證系統(tǒng)
      在計算機網(wǎng)絡(luò)安全中數(shù)據(jù)加密技術(shù)的應(yīng)用
      基于四叉樹網(wǎng)格加密技術(shù)的混凝土細觀模型
      解密“大調(diào)解”
      全椒县| 墨江| 鹤壁市| 新晃| 招远市| 禄劝| 淳安县| 犍为县| 西和县| 德江县| 辽源市| 响水县| 广州市| 平罗县| 灯塔市| 龙口市| 乌鲁木齐市| 渑池县| 庆城县| 沭阳县| 西峡县| 大兴区| 仲巴县| 泗洪县| 永宁县| 浙江省| 仪陇县| 陕西省| 剑河县| 铜梁县| 新兴县| 桂平市| 曲水县| 北海市| 双流县| 中牟县| 福清市| 苏州市| 岢岚县| 买车| 墨脱县|