2016-03-08 74 views
1

我想在POST請求上發送一些「私人」數據。這些數據被放置在主體中,並通過TLS發送,因此被加密。安全地在POST中發送數據到REST API

除了TLS加密之外,還有其他什麼機制應該通過應用來保護數據?

更新

爲了不僅傳輸層加密,但應用層加密來保證保密,因爲NinjaSecurity目前建議我的客戶端加密與私鑰和服務器的公鑰解密。這種機制需要在服務器和客戶端之間進行密鑰交換,客戶端必須能夠執行不對稱的註冊,這可能會有點痛苦,這取決於客戶端使用的語言。問題是:傳輸層加密足以確保機密性或數據可能會從傳輸層泄漏到應用層?

謝謝, 伊萬。

+0

什麼是您的威脅模型?你是從誰那裏保護這些數據的? –

回答

1

誠實地說,你不需要通過TLS/SSL的另一層。 SSL的安全性對於安全證書已經很成熟,並且這是一個全球性的標準。保護傳輸層足以阻止竊聽者,並且任何有足夠權限訪問客戶端或服務器以危害TLS的攻擊者肯定能夠檢索任何應用層加密使用的密鑰。另外,如果沒有現有的安全連接,您將無法爲您的客戶端(即,JavaScript)提供安全的加密代碼;如果您不能相信TLS,您的客戶如何信任您提供的代碼?你怎麼能建立一個安全的連接與您的客戶端的瀏覽器,而不給他們的代碼運行?

0

你想通過添加額外的安全層,機密性或完整性來實現什麼?如果你認爲TLS已經被攻破,那麼你的服務器必須被破壞,所以任何額外的控制層,即額外的加密都不會有幫助。它也會影響你的應用程序性能。

+0

機密性。目標是在應用層不僅在傳輸層中進行加密。 –

+0

我認爲是......那麼最好的方法是使用公鑰添加客戶端加密,並在服務器端使用私鑰解密。很久以前,斯坦福大學已經發布了加密庫,我從來沒有使用它,但你可以嘗試https://crypto.stanford.edu/sjcl/ .. – SecurityNinja

+0

感謝忍者,目前我正在使用它,但它需要服務器之間的密鑰交換客戶端和客戶端必須能夠執行不對稱的甄別,這可能會有點痛苦,這取決於客戶端使用的語言。問題是:傳輸層加密是足夠的,或者數據可能會從傳輸層泄漏到應用層。 (我會更新我的問題發佈) –