2013-04-15 20 views
0

HTTPS廣泛用於安全在線。它提供安全性和完整性,但不提供認證。爲了確保客戶不與中間人交談,我們有數字證書和PKI。這一切都工作得非常好,除了在以下條件適用的情況:HTTPS密鑰協商和使用Javascript通過HTTP進行隧道傳輸

  • 服務器和客戶端不共享一個共同的,受信任的根CA,因此,他們無法驗證彼此的證書
  • 情況下(如。防火牆,權限等),不允許使用常規HTTPS協議的

的問題是:我們仍然可以發送客戶端和服務器之間的安全,經過驗證的消息,也許使用Javascript?

東西線沿線的:

  1. 客戶定期發送HTTP請求到服務器
  2. 服務器包含頁面的JavaScript代碼進行響應
  3. 客戶端的JavaScript異步地將數據發送到用於協商
  4. 服務器服務器運行某種腳本(例如PHP)來建立隧道
  5. 客戶端和服務器通過加密隧道進行通信

我可以看到它是可以發送以這種方式安全性和完整性的消息,但有可能通過利用這樣的事實,該服務器可以動態重寫的Javascript發送到未做使用PKI的認證,或許客戶端?

回答

1

步驟2中存在問題 - Server responds with page containing Javascript code: 您如何知道坐在電話上的某人不會修改此Javascript,因爲它正在以明文形式傳輸?基本上,當X想驗證Y時,X應該知道Y的一些信息 - 它可以是公共信息,如公鑰/證書或可以驗證的共享密鑰

+0

這就是問題的關鍵,我的問題是有一些方法可以利用服務器可以在發送給客戶端的文檔中嵌入一些祕密這一事實來解決這個問題 – ose

+1

不,沒有,如果沒有至少一些知識,就不能進行身份驗證。 –

相關問題