2013-11-04 48 views
3

我們將建立一個應用程序,其中網絡安全是最大的問題之一。應用程序通過互聯網(公共網絡)提供,但應傳輸敏感數據和敏感的機密文檔,這些文檔應儘可能安全以抵禦可能的攻擊,例如,人在這方面的中間人。使用SSL和JavaScript客戶端加密的安全網絡通信?

當然,應用程序將使用SSL進行加密。但是,SSL已被黑客入侵,我們不知道它是否足夠安全,只能使用SSL。

所以我的問題是:有沒有使用SSL,如果我們用JavaScript進行追加(對稱或非對稱加密)網絡傳輸之前對數據進行加密的在線應用程序的安全有任何好處?

所以數據將是雙重加密,這將使其難以閱讀的攻擊者,即使他們會設法破解SSL加密。

另一個問題:是否有一個良好的JavaScript庫,用於傳送這些在網絡上之前,對客戶端的加密文件? (注意:我們知道加密和解密文件客戶端的可能性,所以它們在服務器上是不可讀的(因爲客戶端密鑰是未知的)。但是,將會有文件應該可用於服務器讀取,如果有用的話,應該雙重加密,但每個客戶端使用不同的密鑰)。

+4

儘管存在一些針對SSL的攻擊,但我認爲「SSL已被黑客攻擊」這個一攬子聲明是錯誤的。這就是說,這可能是你想要的:http://stackoverflow.com/questions/793812/javascript-aes-encryption –

+0

好吧,感謝您的提示,你說得對,一言以蔽之「SSL已被黑客攻擊」是假。然而,如果你真的偏執狂,你也可能不信任你的證書工廠,在NSA討論的時候你可能會擔心你的在線數據的安全性。 – Blackbam

+0

我會建議說清楚幾件事情:你試圖保護誰?你的攻擊者有什麼資源?爲什麼攻擊者可以訪問?只有在這之後,決定採取何種技術解決方案才能防範攻擊是有道理的。否則,你是把馬車放在馬前。 –

回答

1

對於SSL/TLS,取決於您對客戶端有多少控制權,您可以使用證書鎖定,這非常有效。其基本思想是,不是硬編碼根證書,而是硬編碼連接到的服務器的實際證書(或者您信任的用來簽署其他證書的證書)。

作爲一個良好的JavaScript的加密庫,嘗試sjcl。使用JavaScript加密存在一些潛在的缺陷,特別是如果您不信任SSL/TLS(例如,攻擊者可以更改您正在下載的加密庫),但我已經使用了sjcl一段時間並且很滿意。

如果您需要更多的信息,請發表你的威脅模型,軟件,和你正在你的客戶端和服務器端軟件的假設的更多信息。

+0

感謝您的回答。據我所知,是否有可能使用sjcl來加密文件(或只是表格數據),這隻能通過例如。 Java小程序,但不是普通的JavaScript?應用程序使用強認證保護和角色管理。應用程序應該提供基於瀏覽器的解決方案,但如果需要的話,也可以考慮使用Java客戶端。將對證書鎖定做一些研究。 – Blackbam

0

是的,因爲你有過它的起點和終點完全控制了額外的加密可以提供減輕對某些非常特殊的攻擊。 SSL終止於Web服務器,有時甚至更早(例如,如果您的數據中心正在使用深度數據包檢測或SSL卸載);附加加密可以保護數據以明文方式發送的區域中的數據。

這就是說,雙重加密並不常見。我爲那些價值非常高的組織工作,我們不這樣做。

不管你做什麼,都不要更換SSL。它給你的不僅僅是加密;它給你認證,這可以說是更重要的。

+0

因此,即使您爲被認爲是高價值目標的組織工作,您在網絡安全方面依賴於SSL?當然,網絡安全只是整個應用程序安全性的一小部分。你能想出任何可能改善網絡安全性嗎? – Blackbam

相關問題