2009-07-15 69 views
11

RSA密鑰我最近發現這個RSA JavaScript庫:http://www.ohdave.com/rsa/。但是,它要求預先生成密鑰。這裏是我的問題/問題:生成的JavaScript

  1. 我想產生JavaScript的RSA密鑰

  2. (這樣我就沒有我想要一個新的密鑰對每一次修改代碼。)
  3. 雖然我明白這可以用來發送安全數據,如果我沒有記錯這個庫不能用於客戶端從服務器接收安全數據(因爲公共和私營指數,和模量,傳輸來自服務器的純文本)。我錯了嗎?

我想談談這件事。我不是安全專家,但我對非對稱加密有非常牢固的把握。

+0

難道你不能只使用SSL發送數據?它是安全的,更重要的是它對你來說是透明的,所以你不需要在任何方面進行任何類型的加密/解密。 – RaYell 2009-07-17 05:32:26

+2

也許我可以做SSL。但是如果我使用不支持它的主機怎麼辦?就我個人而言,我不知道如何配置SSL - 我在網上找到的所有東西都不是直截了當的。 無論如何,SSL與我的問題無關。 – 2009-07-17 08:36:35

回答

1

生成密鑰對需要一個強大的隨機數發生器(我不認爲你有一個在JavaScript中),以及相當多的計算(素性測試)。然後,一旦你擁有了你的配對,當你將公共密鑰傳遞給對方時,由於沒有對公鑰傳輸進行完整性檢查,因此存在中間人攻擊的機會。

你會得到安全的傳輸到誰擁有私人密鑰。從你的問題來看,不清楚這是客戶還是服務器。您可以通過讓只有公鑰的任何人生成共享密鑰來初始化共享密鑰,對其進行加密並將其發送給擁有公鑰的任何人。

您可以通過執行Diffie-Hellman密鑰交換來獲得類似的功能集(依賴於隨機數生成器,MITM的脆弱性,創建用作會話密鑰的共享密鑰的能力),但計算量更少。

你可能關閉搞清楚如何在服務器上配置SSL更好。