1. 程式人生 > 其它 >圖解大資料 | 大資料分析挖掘-Spark初步

圖解大資料 | 大資料分析挖掘-Spark初步

在 HTTP 協議中有可能存在資訊竊聽或身份偽裝等安全問題。使用HTTPS 通訊機制可以有效地防止這些問題。

1 HTTP的缺點

HTTP 主要有這些不足,例舉如下。

  1. 通訊使用明文(不加密),內容可能會被竊聽
  2. 不驗證通訊方的身份,因此有可能遭遇偽裝
  3. 無法證明報文的完整性,所以有可能已遭篡改

這些問題不僅在 HTTP 上出現,其他未加密的協議中也會存在這類問題。

除此之外,HTTP 本身還有很多缺點。而且,還有像某些特定的Web伺服器和特定的Web瀏覽器在實際應用中存在的不足(也可以說成是脆弱性或安全漏洞),另外,用Java和PHP等程式語言開發的Web應用也可能存在安全漏洞。

1.1 通訊使用明文可能會被竊聽

由於HTTP本身不具備加密的功能,所以也無法做到對通訊整體(使用 HTTP 協議通訊的請求和響應的內容)進行加密。即,HTTP報文使用明文(指未經過加密的報文)方式傳送。

1.1.1 TCP/IP 是可能被竊聽的網路

按TCP/IP 協議族的工作機制,通訊內容在所有的通訊線路上都有可能遭到窺視。

即使已經過加密處理的通訊,也會被窺視到通訊內容,這點和未加密的通訊是相同的。只是說如果通訊經過加密,就有可能讓人無法破解報文資訊的含義,但加密處理後的報文資訊本身還是會被看到的。

竊聽相同段上的通訊並非難事。只需要收集在網際網路上流動的數 據包(幀)就行了。像使用GET方法傳送請求、響應返回了200 OK,檢視HTTP響應報文的全部內容等一系列的事情都可以做到。

1.1.2 加密處理防止被竊聽

在目前大家正在研究的如何防止竊聽保護資訊的幾種對策中,最為普及的就是加密技術。加密的物件可以有這麼幾個。

1.1.2.1 通訊的加密

一種方式就是將通訊加密。HTTP 協議中沒有加密機制,但可以通過和SSL或TLS的組合使用, 加密HTTP的通訊內容。

用SSL建立安全通訊線路之後,就可以在這條線路上進行HTTP通訊了。與SSL組合使用的HTTP被稱為HTTPS(HTTP Secure,超文字傳輸安全協議)或HTTP over SSL。

1.1.2.2 內容的加密

還有一種將參與通訊的內容本身加密的方式。由於HTTP協議中 沒有加密機制,那麼就對HTTP協議傳輸的內容本身加密。

即把HTTP報文裡所含的內容進行加密處理。在這種情況下,客戶端需要對HTTP報文進行加密處理後再發送請求。

由於該方式不同於SSL或TLS將整個通訊線路加密處理,所以內容仍有被篡改的風險。

1.2 不驗證通訊方的身份就可能遭遇偽裝

HTTP 協議中的請求和響應不會對通訊方進行確認。

1.2.1 任何人都可發起請求

在 HTTP 協議通訊時,由於不存在確認通訊方的處理步驟,任何 人都可以發起請求。另外,伺服器只要接收到請求,不管對方是誰都會返回一個響應(若傳送端IP未受限)。

會存在很多隱患,無法確定客戶端資訊,甚至DOS攻擊。

1.2.2 查明證書

雖然使用 HTTP 協議無法確定通訊方,但如果使用 SSL則可以。 SSL不僅提供加密處理,而且還使用了一種被稱為證書的手段,可用於確定方。

證書由值得信任的第三方機構頒發,用以證明伺服器和客戶端是 實際存在的。通過使用證書,以證明通訊方就是意料中的伺服器。這對使用者個人來講,也減少了個人資訊洩露的危險性。另外,客戶端持有證書即可完成個人身份的確認,也可用於對Web 網站的認證環節。

1.3 無法證明報文完整性,可能已遭篡改

所謂完整性是指資訊的準確度。若無法證明其完整性,通常也就意味著無法判斷資訊是否準確。

1.3.1 接收到的內容可能有誤

由於HTTP協議無法證明通訊的報文完整性,因此,沒有任何辦法確認,發出的請求 / 響應和接收到的請求 / 響應是前後相同的。

 

請求或響應在傳輸途中,遭攻擊者攔截並篡改內容的攻 擊稱為中間人攻擊(Man-in-the-Middle attack,MITM)

為了有效防止弊端,有必要使用 HTTPS。SSL提供認證和加密處理及摘要功能。僅靠HTTP確保完整性是非常困難的,因此通過和其他協議組合使用來實現這個目標。

2 HTTP+加密+認證+完整性保護=HTTPS

2.1 HTTPS是身披SSL外殼的HTTP

HTTPS並非是應用層的一種新協議。只是HTTP通訊介面部分用 SSL(Secure Socket Layer)和 TLS(Transport Layer Security)協議代替而已。通常,HTTP直接和TCP通訊。當使用SSL時,則演變成先和SSL通訊,再由SSL和TCP通訊了。簡言之,所謂HTTPS,其實就是身披SSL協議這層外殼的HTTP。

在採用SSL後,HTTP就擁有了HTTPS的加密、證書和完整性保護這些功能。

2.2 為什麼不一直使用 HTTPS

既然HTTPS那麼安全可靠,那為何所有的Web網站不一直使用HTTPS?

其中一個原因是,加密通訊會消耗更多的CPU及記憶體資源。如果每次通訊都加密,會消耗相當多的資源,平攤到一臺計算機上時,能夠處理的請求數量必定也會隨之減少。

因此,如果是非敏感資訊則使用HTTP通訊,只有在包含個人資訊等敏感資料時,才利用HTTPS加密通訊。

除此之外,想要節約購買證書的開銷也是原因之一。

要進行HTTPS通訊,證書是必不可少的。而使用的證書必須向認 證機構(CA)購買。那些購買證書並不合算的服務以及一些個人網站,可能只會選擇採用 HTTP 的通訊方式。