2015-07-09 140 views
0

我目前正在設計使用套接字從服務器到多個客戶端進行通信的基本Java程序。我想客戶是沒有修改過,但是,防止對用戶嘗試使用該軟件不是它是如何打算。我使用的是MD5校驗考慮並將其發送到服務器,以它什麼校驗應該是比較,但是修改的客戶可以簡單地發送一個不正確的校驗和假冒服務器以爲客戶端是不變。驗證客戶端與服務器

簡單地說,我將如何去以這樣的方式驗證客戶端,該修改的客戶端無法僞造是未經修飾的?

(注:這是從security stackexchange問題交叉貼,由於建議它張貼在這裏)

回答

0

這是一個非常大的問題,簡單的答案是,你不能保證客戶端代碼未被修改,特別是不在「基本」程序中。

您的服務器不應該依賴於處理客戶的信任,而是處理在其結束所有訪問控制,驗證和這樣的。

一種可能會減慢或阻止可能想要修改代碼的人的方法是要求同時描述散列和簽名,這會使其更令人討厭 - 但不幸的是,您無法驗證客戶端絕對是100%未修改的。

+0

通過簽名,你的意思是文件的簽名?由於這是用Java設計的,因此文件簽名/幻數始終爲CA FE BA BE。如果你在談論另一種簽名,那是什麼? – DonkeyCore

相關問題