我有一個需要連接到服務器的java應用程序。它很簡單,以確保服務器不被欺騙使用SSL,但我似乎無法繞過我的頭如何服務器將驗證客戶端,以確保請求只來自可信方。只有第一個通信需要被認證。在通信步驟中,客戶端和服務器將交換一些將用於隨後認證客戶端的信息。由服務器進行的客戶端身份驗證
我能想到的一種方法是對應用程序進行數字簽名,然後將應用程序的數字簽名發送到服務器。服務器驗證數字簽名以認證客戶端。現在我有這方面幾個問題:
- 是否有可能從 獲得內本身 應用程序的數字簽名。如果是,那麼如何? (我試過尋找這對 互聯網,但找不到任何 辦法這樣做)
- 是否可以用其他的方法,如 十六進制編輯器中提取此簽名。如果這是已知的,則 任何人都可以將該簽名 發送到服務器並欺騙客戶端。
另外,請讓我知道如果我是完全錯誤的軌道在這裏:)
編輯上:通過「可信方」我的意思是「未修飾的客戶端」
公私鑰加密可能有效。將公鑰分配給受信任方。 – 2010-10-01 08:30:50
@Sagar V,客戶將自由分配,我無法控制它最終運行的位置。如果可以取出,則將公鑰分發給客戶端不是一種選擇。 – Prashast 2010-10-01 08:44:55
什麼會阻止修改後的客戶端發送未修改的客戶端的數字簽名? – Christoffer 2010-10-01 08:47:12