2012-01-05 30 views
0

Cryptico看起來像一個超級漂亮的RSA加密庫。cryptico.js的實際應用

cryptico.wwwtyro.net

在問候的JavaScript應用程序,假設我想將數據發送給客戶,讓他們做一些事來的數據,並把它傳遞回來。我如何使用RSA確保數據客戶端發回服務器不被篡改?由於JavaScript易於反向設計,是否有任何實際的cryptico客戶端應用程序?

回答

0

你是否 - 通過你的例子 - 意味着你想隱藏他的客戶正在處理的數據?如果是這樣 - 這是不可能的。 你永遠不要相信來自客戶端的任何數據。 如果您發送加密數據給客戶端進行處理 - 您必須假定用戶知道(或將知道他是否想要)加密密鑰,否則將無法處理。換句話說,沒有安全的方法來隱藏用戶的客戶處理過程。混淆 - 就像你注意到的一樣,無論你使用什麼語言,都會被破解。

我認爲這個庫最常見和實用的客戶端應用程序將加密用戶的數據並將它們發送到服務器,反之亦然。可能有些情況下您不能使用SSL。此外,你可以在Facebook上製作一個加密的帖子,只有你的朋友才能解密(因爲他知道密鑰)。

0

有一個解決方案,你所尋找的(我確定有不止一個)。我的回答需要兩種非傳統的方法來實現我們所說的「安全連接」以及如何接收「客戶端代碼」。

  1. 你需要一個物理預共享密鑰啓動安全連接,因爲它是預共享它不必是RSA,然後打開了你的速度機會和加密的安全性更高的水平。

  2. 以類似的方式物理地預先分享您的客戶代碼,即從雜誌中的cd下載代碼或從市場上銷售的預付卡中下載代碼。這可以阻止MITM向您發送被篡改和利用的客戶端,這些客戶端可以使用SSL。一旦客戶端被認爲是安全的,並且建立了(1)中提到的真正的安全連接,則可以更新客戶端代碼。

利用,開發安全的連接和客戶端代碼,可以通過校驗和的預共享密鑰的組合,可以實現你所追求的。

理想情況下,我們應該在市場上提供預共享的安全連接密鑰,但我們不這樣做。因此,爲了您單獨做到這一點,需要專門爲您的網站實施類似的措施,直到該國的人們以一些真正的安全措施與他們一起行動。您必須通過電話,郵件等方式爲他們提供密鑰。由於跨域安全問題,您的客戶端代碼很可能必須是瀏覽器擴展才能安裝。