在web應用程序的情況下,我可以理解客戶端認證和用戶認證之間沒有區別;忽略XSS和其他漏洞,Web客戶端由服務器/ servlet生成。客戶端(java獨立客戶端)應用程序認證和用戶認證之間的區別
但假設您有一個Java客戶端應用程序與Java服務器應用程序交談;服務器有一個與之關聯的證書,以便客戶端可以驗證並驗證服務器是否可信。現在客戶端還有一個證書(客戶端證書),以便服務器可以驗證這是否是可信的客戶端;一旦這種相互認證完成,用戶證書(用戶證書)就可以傳遞給服務器,而不是向用戶提供用戶名/密碼對話框。
問題是在這種情況下是否有任何優勢/使用(客戶證書);或者僅憑用戶證書就足以信任客戶端?
我知道這是一個明顯的問題/但不能創建一個胭脂客戶端應用程序?那麼客戶端證書可以抵禦這種情況。
「即使是不可信的客戶端也不能做比可信的客戶端更多的可信任的客戶端」我假設服務器當前沒有機制來判斷客戶端應用程序是否受到攻擊;假設不可信的客戶端通過服務器獲取敏感數據一個可信的用戶會話。由於方法簽名相同且參數清理,服務器將發送請求的數據;沒有什麼能夠防止欺詐應用程序濫用這些數據。我能想到的一件事是在客戶端m/c中使用完整性檢查器工具看看應用程序是否受到損害? – 2010-08-25 03:47:46
在網上做了一些搜索,發現這是一種常見的攻擊 - 排除 - http://www.ucl.ac.uk/cert/nix_intrusion.pdf 這個最簡單和經典的例子是取代/斌/登錄。 1.獲取Unix版本的/ bin/login的源代碼副本2.編輯源代碼到/ bin/login以包含一個「祕密」密碼,如果您輸入該密碼將始終允許您以root用戶身份登錄「後門」密碼。這個後門程序也不會在系統日誌文件中創建一個條目。編譯源代碼。 ..... – 2010-08-25 04:09:39
問題是您可以基於他們提供的憑據來信任用戶,但除非您處於封閉環境(真正鎖定企業環境),否則您不能信任客戶端應用程序。客戶端的完整性檢查程序存在的問題是受損的應用程序會僞造完整性檢查。無論有多複雜的完整性檢查,給予足夠的時間,一個人都可以繞過它。 – rancidfishbreath 2010-08-25 14:32:27