我正在開發一個安全連接到服務器以登錄的J2ME應用程序。我在兩者之間建立SSL時遇到了很多困難,所以我想到了一個更簡單的解決方案,我希望您可以對此發表看法。證書頒發機構vs存儲的公鑰
J2ME Midlet隨附服務器的公鑰,在連接消息(用戶名,密碼哈希和隨機)時使用該公鑰加密併發送到服務器。服務器然後解密並使用它來驗證客戶端。
證書頒發機構的主要思想是說誰是誰,如果雙方知道已經並且同意不會改變(除非通過已經通過身份驗證的連接),那麼不要繞過需要一個?
感謝, 弗拉基米爾
我正在開發一個安全連接到服務器以登錄的J2ME應用程序。我在兩者之間建立SSL時遇到了很多困難,所以我想到了一個更簡單的解決方案,我希望您可以對此發表看法。證書頒發機構vs存儲的公鑰
J2ME Midlet隨附服務器的公鑰,在連接消息(用戶名,密碼哈希和隨機)時使用該公鑰加密併發送到服務器。服務器然後解密並使用它來驗證客戶端。
證書頒發機構的主要思想是說誰是誰,如果雙方知道已經並且同意不會改變(除非通過已經通過身份驗證的連接),那麼不要繞過需要一個?
感謝, 弗拉基米爾
如果雙方已經知道了,並一致認爲,它不會改變......那麼就不要我繞過一個需要?
是的,但我認爲你錯過了這一點。該程序附帶密鑰,但用戶無法知道他們下載的程序實際上來自您,而不是某些惡意黑客攔截/重寫通信;所有用戶看到的都是從牆上的電線進入的。
通常情況下,您要做的就是用鑰匙在罐子上簽名,然後用程序發運鑰匙。現在我們有一個雞與雞蛋的問題:他們怎麼知道鑰匙是從你那裏來的?
這是證書頒發機構進入的地方; CA的密鑰已經在他們的計算機上,因此他們將它留給CA來驗證您的身份並簽署您的公鑰。然後,當用戶獲得公鑰時,驗證它是由CA簽署的,並驗證該密鑰是由密鑰簽署的,他們知道密鑰是你的,因此該密碼必須來自你,因爲你是唯一可以用私鑰簽名的人。
現在,如果您的密鑰提前在計算機上(例如,在公司內部,密鑰在設置時物理放置在計算機上),那麼他們肯定不會需要簽署密鑰。