利用WSE 加密SOAP報文(2)

來源:互聯網
上載者:User
加密 一個加密後的SOAP 報文

下面的SOAP報文樣本有一個payment節點,含有一些敏感的客戶資訊.

OAP:Envelope SOAP:xmlsn="http://www.w3.org/2002/12/SOAP-envelope">

<SOAP:Header>

...

</SOAP:Header>

<SOAP:Body>

...

<x:Order Type="Purchase" x:xmlns="http://example.com/order">

<x:Payment Type="CreditCard">

<x:CreditCard Type="Visa">

<x:CardNumber>123456789123456</CardNumber>

<x:ExperationDate>1108</ExperationDate>

</x:CreditCard>

</x:Payment>

...

</x:Order>

...

</SOAP:Body>

</SOAP:Envelope>

因為payment節點含有敏感的資料,所以它應該被加密.下面的例子顯示了相同的資訊,但是payment節點被EncryptedData節點代替了.EncryptedData節點內含有對payment 節點內部內容加密後的密文. EncryptedData節點是參考自security頭中的DataReference 節點的

<SOAP:Envelope SOAP:xmlsn="http://www.w3.org/2002/12/SOAP-envelope"

xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"

xmlns:xsig="http://www.w3.org/2000/09/xmldsig#"

xmlns:WSse="http://schemas.xmlSOAP.org/WS/2002/04/secext">

<SOAP:Header>

<WSse:Security>

<xenc:ReferenceList>

<xenc:DataReference URI="#OrderID"/>

</xenc:ReferenceList>

</WSse:Security> ...

</SOAP:Header>

<SOAP:Body>

...

<x:Order Type="Purchase" x:xmlns="http://example.com/order">

<xenc:EncryptedData Id="OrderId">

<xenc:EncryptionMethod

Algorithm= "http://www.w3.org/2001/04/xmlenc#tripledes-cbc"

<xsig:KeyInfo>

<xsig:KeyName>My Symmetric Key</xsig:KeyName>

</xsig:KeyInfo>

<xenc:CipherData>

<xenc:CipherValue>...</CipherValue>

</xenc:CipherData>

</xenc:EncryptedData>

...

</x:Order>

...

</SOAP:Body>

</SOAP:Envelope>

當然,在這個例子中,你可以用數位簽章來簽署該報文,來防止懷有惡意的人來竄改資料,或者用時間戳記或者其他唯一的標識來判斷資訊是否受到攻擊.

加密的種類

對稱式加密和不對成加密

加密得演算法可以分為對稱式加密和不對稱式加密.在對稱式加密演算法中,一個密鑰被用來進行資訊交換得兩方共用.發送方利用私密金鑰得拷貝來加密資料.在接收方,利用同樣得私密金鑰的拷貝來解密資料.絕大多數得加密,如基於共用密碼和共用安全標識都是對成加密得例子.

在這種類型的系統中,一個中心的伺服器分發共用的密鑰給需要安全互動的使用者.對稱式加密的缺點是共用密鑰的管理,分發和保護它們的安全性,特別是在象internet這樣的公網上.

為了克服在公用網路中管理密鑰的的難度,使用成對的密鑰來取代單一的密鑰.在不對成密碼編譯演算法中,雙方都互相擁有一個私密金鑰和一個密鑰.

公開金鑰是利用一種無法復原的方法對私密金鑰進行操作後產生的,因此一旦兩者中的一種用來加密資料,另外一種就可以用來解密.另外,不可由公開金鑰來推測出私密金鑰,而且只有用私密金鑰來解密用公開金鑰加密的資料.當發送非同步加密的報文時,寄件者利用接收者的公開金鑰加密報文,確保只有接收者可以利用他的私密金鑰來解密報文.如果你用另外一種方式來處理,任何人都可利用可利用的公開金鑰來解密報文.不對稱式加密是PKI的基礎,pki是x.509安全標準的基礎.不對成密碼編譯演算法是一種典型基於對大數處理的演算法,如指數合對數運算.它比對成密碼編譯演算法需要更多的cpu時間來進行加密和解密.,因為這個原因,不對稱式加密經常用來安全的傳送一個對稱的”會話”密鑰,用來加密互動的剩餘部分,這也只是在資訊交換的持續周期內有效.

因為公開金鑰可以很容易的獲得,使用公開金鑰進行加密減輕了分發和管理密鑰的難度.不幸的是,這種方便性的代價是不對成密碼編譯演算法通常比對成密碼編譯演算法慢幾個數量級.由於此,不對稱式加密方法只用來處理比較小的資料.例如安全密鑰和標識以及數位簽章.


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。