簡體   English   中英

客戶端加密:Javascript,Java Applet,Adobe Air

[英]Client side encryption: Javascript vs Java Applet vs Adobe Air

我正在考慮在我正在開發的Web項目中實現客戶端加密。 目的是確保數據對用戶是“私有”的,服務器無法解密。

最初,我以為可以在將瀏覽器中的數據發送到服務器之前使用一些Javascript庫對數據進行加密/解密,但是像這樣的文章使我確信,在加密和安全性方面,javascript仍然相當“弱”。

我現在正在考慮使用Java Applets (我的代碼庫是Java,這是很自然的選擇)作為JS代碼和服務器端代碼之間的“橋梁”,但是我可以看到一些陷阱:

  1. 沒有人(以我的經驗)不再使用Java applet,這可能是有充分原因的
  2. 用戶需要安裝/升級Java(有時可能是不愉快的操作)
  3. 平板電腦/智能手機不存在支持(但是可以通過提供本機應用程序“解決”)
  4. 似乎瀏覽器傾向於阻止Java並使其難以啟用

另一種可能是采用Adobe Air 同樣,我可以看到一些麻煩:

  1. 用戶需要安裝/更新
  2. 似乎對移動設備有一些支持,但是我想知道它是否可以在移動瀏覽器中工作(我猜是嗎?否)
  3. 它在那里仍在積極使用/支持嗎? 我注意到Adobe已開源Flex並將其捐贈給Apache,這可能意味着對Flex未來的興趣不足。

最好的解決方案是什么? 是否有其他選擇(也許是Google Dart ?)? 客戶端加密的最佳做法是什么?

javascript真的是圖片嗎?


編輯:我想實施客戶端加密的某些原因(如評論所述):

  1. 用戶將存儲機密數據,並希望將其盡可能保密。
  2. 如果數據庫遭到破壞,則數據泄漏的可能性較小
  3. 我非常重視隱私,並希望將其作為功能提供給我的用戶
  4. 更好地防范內部攻擊

您可以嘗試Java WebStart,它一旦安裝就可以作為沙盒Java應用程序運行。 對於移動支持,我想那意味着要在應用商店中創建一個應用。 對於Android,業務邏輯和加密相對容易實現; Android和Java API在很大程度上相似。

JavaScript並非完全無法實現。 但是沒有SSL的 JavaScript。 但是,還有很多其他挑戰,例如缺少標准化API的隨機數生成器。 請注意,無論您嘗試哪種解決方案,用戶都必須對您的服務有所信任。 在控制代碼時,您還可以控制該代碼內發生的事情。

不了解Air,否則我會在沒有充分理由的情況下安裝它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM