2009-10-11 43 views
4

我正在處理一羣特別偏執狂的用戶羣,他們可能希望他們在我的網站上提交的文稿在提交之前進行簽名(例如使用GPG密鑰)。基於JavaScript的加密簽名?

雖然我可以向他們展示一個「代碼片段」來複制並粘貼到他們的GPG工具中,但瀏覽器這樣做肯定會更好。隨着最近瀏覽器的JS性能,我不確定這個請求是否像聽起來那麼愚蠢。

是否有一個現有的解決方案,或者你可以提出一個很好的理由來反對這種方法?

回答

4
+0

另請參閱JavaScrypt(http://www.fourmilab.ch/javascrypt/)的對稱算法。 – erickson 2009-10-11 18:58:32

+0

這是一個相當不完整的實現:沒有簽名,沒有填充,沒有密鑰管理。與GPG一起工作很難。 – Accipitridae 2009-10-11 19:54:53

-1

反對的理由則

  1. 你會需要解鎖私鑰 - 你不能用JavaScript
  2. 做到這一點你會再需要加載私鑰到瀏覽器。其中,即使可能,也會帶來巨大的風險,因爲JavaScript可以將它發送到其他地方
  3. 加密的計算量很大。 JavaScript足夠慢,因爲它是。
  4. 跨站點腳本和JSON注入意味着如果您的網站存在漏洞,您的JavaScript可能會被替換 - 即使您的代碼本身在運行,攻擊者也許可以注入不符合要求的腳本。

原因

不,不能認爲任何。

+1

[CSP](https://wiki.mozilla.org/Security/CSP/Spec)解決了數字2和4。另外,1號是無效的。 – 2009-10-11 19:37:48

+0

如果他想要與GPG集成,那麼JavaScript不會與GPG交談。 Mozilla的解決方案僅適用於Mozilla,對稱並不適用於那些希望自己發行密鑰的偏執型用戶,並且對於這種類型的安全性不夠。 – blowdart 2009-10-11 20:22:04