2011-08-04 31 views
2

我對我的SOA應用程序進行了wcf用戶名/密碼認證。安全模式是消息,密鑰是一個加密RSA 4096位的x509證書。每個客戶都在配置文件中相同的密鑰
我的wcf應用程序中是否存在安全錯誤?

<certificate encodedValue="VeryVeryBigRsaKey /> 

我很好奇,如果例如,一個應用程序的用戶,具有VeryVeryBigRsaKey可以嗅出其他用戶的數據包,共享同一個密鑰(VeryVeryBigRsaKey)。如果是,我認爲是一個非常嚴重的問題,我必須將安全模型更改爲TransportWithMessageCredential
編輯:
我生成使用pluralsight自我證書我的鑰匙,並將其輸入到與Base 64編碼一個* .cer文件。並打開生成* .cer與記事本,並給了我rsa密鑰(VeryVeryBigRsaKey):)

+0

我會假設它的代碼,然後說它在框架本身的錯誤。你沒有發佈你如何生成密鑰。如果每個用戶的密鑰相同,除非您只讓用戶A查看用戶A的信息,否則用戶B不會出現任何不同。 –

+0

我不認爲這是框架錯誤,我擔心如果它是一個錯誤。 – croisharp

+0

你甚至不應該害怕它是一個框架錯誤。這是非常非常不可能的。如果你仍然很擔心,你應該直接聯繫微軟,而不是問我們。 – BoltClock

回答

3

我認爲你的意思是你使用用戶名憑證類型和<證書>用於標識服務器,以便客戶端可以相信它會從正確的服務器獲取消息。

如果其他用戶想要嗅探軟件包,他需要只能由真實服務器擁有的服務器證書。

因此,你的擔心是沒有道理的。

1

我確定WCF中存在安全錯誤,但事實並非如此。

該證書用於

一個)驗證服務器
b)中加密的客戶機生成的對稱密鑰,並將其發送到服務器

另一個客戶不能打破在此。

+0

亨克,我使用消息級別的安全性,它加密xml,你在說什麼是 的工作a)驗證服務器 - 傳輸層安全(ssl) – croisharp

+0

SSL也這樣做。我不確定你的證書如何/在哪裏使用,但它的原理是一樣的。 –

2

你引用的配置是我認爲在端點標識元素。如果是這樣,這表示服務的身份,在與服務器通信之前,客戶端堆棧將檢查該服務的身份。因此它必須在每個客戶端都是一樣的。

用於保護消息流量的密鑰來源於客戶端憑證。基於此證書身份的恐懼是毫無根據的。

相關問題