1. 程式人生 > >SSL/TLS的提出

SSL/TLS的提出

一 場景分析

Alice在Bob的書店買書,有一天,Alice讀到一本關於網路資訊保安的數,書上說“網際網路上傳輸的資料都是可以被竊聽的”。Alice感到非常擔心,自己在購買新書的時候輸入的信用卡號會不會被竊聽呢?

Alice看到Bob書店的網站下面寫著一行字:“在以https:// 開頭的網頁中輸入的資訊將通過SSL/TLS傳送以確保安全”。

的確,輸入信用卡號的網頁的URL是以http:// 開頭的,而不是一般的http:// 。此外,在瀏覽這個網頁時,Alice的Web瀏覽器上還顯示一個小鎖頭的圖示,看上去好像挺安全的。

但Alice心想,就算寫著“通過SSL/TLS傳送”我也不放心啊,到底在我的Web瀏覽器和Bob書店的網站之間都發生了哪些事呢?

當進行SSL/TLS通訊時,Web瀏覽器上就會顯示一個小鎖頭的圖示。

二 客戶端和伺服器

首先,將Alice和Bob書店的通訊過程整理成示意圖

Alice和Bob書店之間的通訊,實際上是Alice所使用的Web瀏覽器和Bob書店的Web伺服器之間的通訊。Web瀏覽器是Alice的計算機上執行的一個程式,而Web伺服器則是Bob書店的計算機上執行的一個程式,它們都遵循一種叫HTTP的協議來進行通訊。其中,Web瀏覽器稱為HTTP客戶端,Web伺服器稱為HTTP伺服器。

當Alice點選網頁上的連結或輸入URL時,Web瀏覽器就通過網路向Web伺服器傳送一個“我要瀏覽這個網頁”的請求。

Web伺服器則將請求的網頁內容傳送給Web瀏覽器,以便對請求作出響應,伺服器和客戶端之間所進行的處理就是請求和響應的往返。HTTP可以認為是在HTTP客戶端與HTTP伺服器之間進行請求和響應的規範。

Alice向Bob書店傳送信用卡號也是使用HTTP來完成的。

Alice輸入訊號卡號後按下提交按鈕,這時客戶端就會將信用卡號作為HTTP請求傳送給伺服器。伺服器則會將“生成訂單”的網頁作為HTTP響應返回給客戶端。

不過,如果直接傳送請求的話,信用卡號就很可能被竊聽。

三 用SSL/TLS承載HTTP

當Web瀏覽器傳送信用卡號時候,信用卡號的資料會作為客戶端請求傳送給伺服器。如果通訊內容被竊聽者所獲取,竊聽者就會得到信用卡號。

於是,我們可以用SSL或者TLS作為對通訊進行加密的協議,然後在此之上承載HTTP。通過這兩種協議進行疊加,我們就可以對HTTP的通訊進行加密,從而防止竊聽。通過SSL/TLS進行通訊時,URL不是以http://開頭,而是以https:// 開頭。