通過java腳本算法在客戶端創建公鑰和私鑰對,然後將公鑰傳輸到服務器。如果公共密鑰存儲在服務器上怎麼辦?
人員私鑰的副本以java腳本變量的形式存儲在用戶計算機上。
當用戶A將消息發送到用戶B
服務器加密與用戶B的公開密鑰對消息。
用戶B拿起消息並解密(用java腳本編寫的算法)它與用戶B的私有密鑰私有並保存在一個Java腳本變量中。
用戶B的私鑰在任何時候都不會在網絡上被披露。
這是安全嗎?
通過java腳本算法在客戶端創建公鑰和私鑰對,然後將公鑰傳輸到服務器。如果公共密鑰存儲在服務器上怎麼辦?
人員私鑰的副本以java腳本變量的形式存儲在用戶計算機上。
當用戶A將消息發送到用戶B
服務器加密與用戶B的公開密鑰對消息。
用戶B拿起消息並解密(用java腳本編寫的算法)它與用戶B的私有密鑰私有並保存在一個Java腳本變量中。
用戶B的私鑰在任何時候都不會在網絡上被披露。
這是安全嗎?
'public'和'private'只是給兩個鍵的名字。沒關係這兩個鍵中的哪個是公開的,哪些是私有的,只要你永遠不要混淆使用。一旦兩個密鑰同時對某個人可用,消息系統的安全性就會完全被破壞。
從技術上講,既然你說的關鍵字存儲在JavaScript變量,你暗示變量被髮送到嵌入在某些基於瀏覽器的HTML/JavaScript的CLEAR中。這進一步意味着沒有安全性 - 因爲這兩個密鑰都暴露在網絡中。
回覆:「既然你說的鍵存儲在JavaScript變量,你暗示變量被髮送到嵌入在一些基於瀏覽器的HTML/JavaScript中的CLEAR」:這是不正確的。 OP明確指出:「公鑰和私鑰對是通過Java腳本算法在客戶端創建的,然後將公鑰傳輸到服務器。」 – ruakh 2012-07-19 17:39:26
「'public'和'private'只是兩個鍵的名字,兩個鍵的哪一個是公共的,哪一個是私人的並不重要。」 - 這是一個泛化,並不總是如此。一些PK算法以這種方式是對稱的,但另一些則不是。 – 2012-07-23 05:07:12
它不會太安全,因爲:
要確定某件事是否「安全」,您必須知道安全要求是什麼。您的情況滿足幾個可能的要求,但有幾個可能的要求,它確實而不是滿足。例如:
所以,總體來說,我會不考慮這樣的設計是「安全的」。
如果以下任何答案對您有用,請將其標記爲已接受,以便人們不會再花時間處理此問題。 – techfoobar 2012-07-20 19:07:57
在任何人都可以回答「這是安全的」問題之前,您需要解釋您的威脅模型是什麼。也就是說,誰是你的攻擊者,他們的目標是什麼,他們有什麼資源? – 2012-07-23 05:08:02