我有一個設置,看起來像:如何保證我連接到我的服務而不是其他人?
我使用Windows身份驗證加密連接。主服務是安全的,沒有人可以訪問它,因此可以安全地存儲每個節點服務的用戶名和密碼,以便在可用時連接它們。
主要服務向每個WCF節點服務發送機密信息。因爲連接是加密的,我知道有人很難解密它。 我的問題是如何確保我連接到我的WCF節點服務而不是其他人?
這裏是描述我的問題 比方說,湯姆是使用在WCF節點服務運行圖左上角的筆記本電腦用戶的情況。 WPF客戶端是管理員(圖中的底層用戶),他們可以在Tom的計算機上執行操作。 Tom需要查看加密文件的內容。 Tom無權解密該文件的密碼;因此,湯姆然後請管理員爲他解密該文件。然後管理員將密碼發送到主要服務加密,主要的wcf服務將找到Tom的計算機,並在Tom的計算機上執行方法UnencryptFile(string location, string password)
。
如何防止Tom獲取該密碼?如果他用自己替換WCF節點服務替換方法UnencryptFile(string location, string password) ... MesageBox.Show(password)
,他將能夠獲得密碼。 總之,我知道可以反編譯一個程序,所以我不介意讓湯姆知道我的程序在做什麼。我介意的是連接到一個不屬於我的服務。如果Tom調試WCF節點服務,會發生什麼情況。可以調試一個可執行文件嗎?如果是這種情況,那麼他將能夠以這種方式查看密碼。
我喜歡你的圖形的方式。非常專業:-) –
這是[** DRM **](http://en.wikipedia.org/wiki/Digital_rights_management)發生的問題,對嗎?例如,Netflix如何將電影的字節流式傳輸到計算機,但不能僅僅使用tcpdump來保存電影的字節並在離線後播放。 Valve的Steam可以讓你下載視頻遊戲的全部內容,但是如果你將這些視頻遊戲文件複製到朋友的電腦上,它們將不會運行。只是給你的問題一些更廣泛的背景(這個評論不打算成爲一個答案。) –
@MikeClark你是對的,雖然我不知道有人沒有打破任何DRM。這對於99.9999%的用戶來說是有效的,但總有人可以打破它。希望我們能弄清楚一個傻瓜式的方法,併成爲非常有錢的人:-) –