2013-05-18 16 views
3

我正在考慮開發一個用於在服務器上安全存儲文件的軟件。使用HTTPS傳輸解密存儲的密鑰

比方說,我有一個祕密文件,最初存儲在我想要上傳到服務器的客戶端計算機上。這裏的要求是,服務器上的文件應該始終被加密,並且由於私鑰在客戶端上,所以任何人直接訪問服務器都是不可讀的。也許我可以用javascript來完成,或者我需要開發一個完整的應用程序來處理上傳。無論哪種方式都行,但我需要能夠使用網絡瀏覽器下載和解密文件。

這讓我思考。我可以配置HTTPS(SSL)嗎?我可以預先計算從服務器到客戶端的加密響應。在這種情況下,我可以在上傳時以及請求文檔時執行此操作,只需返回將由客戶端上的SSL堆棧解密的預加密數據即可。

我知道會有一個隨機數字交換來防止這種情況發生。但有沒有辦法配置SSL,以便從服務器到客戶端的響應始終是相同的。在這種情況下,從服務器到客戶端的重放攻擊是可以接受的,而不是問題。

+1

我想知道爲什麼你不從服務器獲取它之後才解密? IE瀏覽器。下載(http或https或者很好,因爲doc是用客戶端密鑰加密的),然後在下載後解密。這看起來像是過度設計的解決方案。當然你的要求可能會有所不同。 –

+0

這個想法是讓Web瀏覽器進行解密,並且正如我看到的,使用SSL進行解密是唯一沒有Web瀏覽器插件的方法?我已經看到了JavaScript實現,問題是客戶端存儲私有證書的地方,因爲JavaScript實現無法訪問客戶端上的證書存儲。 –

+0

爲什麼瀏覽器擴展名可能會問? –

回答

2

在SSL握手中,客戶端生成將用於派生會話密鑰的預主密鑰。由於您似乎只能通過服務器進行控制,因此無法阻止客戶端以特定(加密)方向轉向對話。