2012-07-04 34 views
1

我需要在SilverLight應用程序之間發送數據。我有要求說數據應該使用SSL/TLS等安全協議傳輸。由於性能原因,使用TCP套接字發送數據。不幸的是,SilverLight不支持SslStream。如果我想通過SSL/TLS傳輸數據,我需要購買第三方庫,例如SecureBlackbox。在處理傳輸層時,我不想依賴第三方庫。我可以將CryptoStream作爲SslStream的替代品嗎?

但是,SilverLight有CryptoStream類。我正在考慮使用WCF over SSL交換對稱加密密鑰(SilverLight支持),然後使用CryptoStream使用AES加密數據。

該解決方案是否安全?就安全性而言,它可以與使用SSL/TLS進行比較嗎?是否有一些明顯的安全漏洞,我錯過了?

+3

SSL提供的不僅僅是加密,還包括其他一些事情,如數據包完整性檢查,認證加密,安全密鑰生成,適當的加密模式等,壓縮等。 –

+0

@ EugeneMayevski'EldoSCorp我完全控制交換信息的雙方。密鑰使用SSL進行交換,我知道雙方都可以使用AES。我想在沒有知道密鑰的情況下,任何人都無法解密數據。我同意有人可以中斷傳輸,但它只會是噪聲,因爲他必須知道使用它加密數據的密鑰。你是否發現了郵件安全方面的任何缺陷(通過它,我的意思是說一個沒有理由的人發送他的數據作爲傳輸的一部分或者從我的傳輸中讀取數據)? – empi

+0

應該選擇AES的可靠加密模式,並且您需要協商密鑰和IV。但是,如果您可以通過SSL連接使用WCF,是否有理由不使用WCF進行進一步通信? –

回答

1

我想AES方法的主要問題是密鑰管理和密鑰驗證。我確定您知道SSL使用'握手',它使用CA鏈(證書頒發機構)來驗證SSL證書的有效性。這一切發生在爲SSL會話生成AES密鑰之前。所以,通過不使用SSL,你會錯過這個重要的步驟。

這意味着您需要負責驗證密鑰的安全性並以安全的方式進行交換。

+1

如果使用SSL/TLS連接來交換會話密鑰,那麼應該沒有驗證問題。 –

+0

密鑰以安全的方式交換 - 我將通過https使用web服務調用。 – empi

相關問題